# asksi-vip/blue-plus architecture

> Architecture diagram of the GitHub repository asksi-vip/blue-plus, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/asksi-vip/blue-plus
- Repository: https://github.com/asksi-vip/blue-plus
- Video tour (about a minute): https://gitdiagram.com/asksi-vip/blue-plus/video

## Overview

Blue Plus is an Android IPTV and media-streaming app. The principal workflow is entering the app, browsing live channels or series, selecting media, and watching it; playback also supports casting. The tree and sampled code support separate live, series, playback, and infrastructure areas. The README is empty, and excerpts are partial, so links among unsampled screens and services are omitted where their wiring cannot be verified.

Main entry points: [`app/src/main/java/com/blue/plus/MainActivity.java`](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/MainActivity.java) (Home), [`app/src/main/java/com/blue/plus/player/core/Media3PlayerEngine.java`](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/core/Media3PlayerEngine.java) (Media3 Engine), [`app/src/main/java/com/blue/plus/PlayerActivity.java`](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/PlayerActivity.java) (Media Player), [`app/src/main/java/com/blue/plus/LoginActivity.java`](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/LoginActivity.java) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["App Access"]
  node_login["Login<br/>[LoginActivity.java]"]
  node_home["Home<br/>[MainActivity.java]"]
end

subgraph group_browse["Media Browsing"]
  node_live["Live Channels<br/>[LiveActivity.java]"]
  node_series["Series Catalog"]
  node_series_detail["Series Details"]
  node_episodes["Episodes"]
  node_sports["Sports"]
end

subgraph group_playback["Playback"]
  node_player["Media Player"]
  node_cast["Casting<br/>[CastManager.java]"]
end

subgraph group_services["Playback Services"]
  node_engine["Media3 Engine"]
  node_engine_contract["Player Contract<br/>[PlayerEngine.java]"]
  node_cache[("Media Cache")]
  node_watchdog["Live Watchdog<br/>[LiveWatchdog.java]"]
  node_request["Network Requests"]
end

node_viewer(("Viewer"))
node_cast_device(("Cast Device"))

node_viewer -->|"opens"| node_login
node_login -->|"continues"| node_home
node_home -->|"opens"| node_live
node_home -->|"opens"| node_series
node_home -->|"opens"| node_sports
node_series -->|"selects"| node_series_detail
node_series_detail -->|"lists"| node_episodes
node_episodes -->|"plays"| node_player
node_live -->|"plays"| node_player
node_player -->|"connects"| node_cast
node_cast -->|"streams"| node_cast_device
node_engine -->|"implements"| node_engine_contract
node_engine -->|"reads and writes"| node_cache
node_engine -->|"monitors"| node_watchdog

click node_login "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/LoginActivity.java"
click node_home "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/MainActivity.java"
click node_live "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/LiveActivity.java"
click node_series "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesActivity.java"
click node_series_detail "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesdetailActivity.java"
click node_episodes "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesepisodesActivity.java"
click node_sports "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SportsActivity.java"
click node_player "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/PlayerActivity.java"
click node_cast "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/CastManager.java"
click node_engine "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/core/Media3PlayerEngine.java"
click node_engine_contract "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/core/PlayerEngine.java"
click node_cache "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/cache/MediaCacheManager.java"
click node_watchdog "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/watchdog/LiveWatchdog.java"
click node_request "https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/RequestNetworkController.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login,node_home,node_viewer toneBlue
class node_live,node_series,node_series_detail,node_episodes,node_sports toneAmber
class node_player,node_cast toneMint
class node_engine,node_engine_contract,node_cache,node_watchdog,node_request toneRose
class node_cast_device toneIndigo
```

## Components

### App Access

- [Login](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/LoginActivity.java): `app/src/main/java/com/blue/plus/LoginActivity.java`
- [Home](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/MainActivity.java): `app/src/main/java/com/blue/plus/MainActivity.java`

### Media Browsing

- [Live Channels](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/LiveActivity.java): `app/src/main/java/com/blue/plus/LiveActivity.java`
- [Series Catalog](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesActivity.java): `app/src/main/java/com/blue/plus/SeriesActivity.java`
- [Series Details](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesdetailActivity.java): `app/src/main/java/com/blue/plus/SeriesdetailActivity.java`
- [Episodes](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SeriesepisodesActivity.java): `app/src/main/java/com/blue/plus/SeriesepisodesActivity.java`
- [Sports](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/SportsActivity.java): `app/src/main/java/com/blue/plus/SportsActivity.java`

### Playback

- [Media Player](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/PlayerActivity.java): `app/src/main/java/com/blue/plus/PlayerActivity.java`
- [Casting](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/CastManager.java): `app/src/main/java/com/blue/plus/CastManager.java`

### Playback Services

- [Media3 Engine](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/core/Media3PlayerEngine.java): `app/src/main/java/com/blue/plus/player/core/Media3PlayerEngine.java`
- [Player Contract](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/core/PlayerEngine.java): `app/src/main/java/com/blue/plus/player/core/PlayerEngine.java`
- [Media Cache](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/cache/MediaCacheManager.java): `app/src/main/java/com/blue/plus/player/cache/MediaCacheManager.java`
- [Live Watchdog](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/player/watchdog/LiveWatchdog.java): `app/src/main/java/com/blue/plus/player/watchdog/LiveWatchdog.java`
- [Network Requests](https://github.com/asksi-vip/blue-plus/blob/main/app/src/main/java/com/blue/plus/RequestNetworkController.java): `app/src/main/java/com/blue/plus/RequestNetworkController.java`

### Other components

- **Viewer**
- **Cast Device**

## Connections

- Viewer → Login: opens
- Login → Home: continues
- Home → Live Channels: opens
- Home → Series Catalog: opens
- Home → Sports: opens
- Series Catalog → Series Details: selects
- Series Details → Episodes: lists
- Episodes → Media Player: plays
- Live Channels → Media Player: plays
- Media Player → Casting: connects
- Casting → Cast Device: streams
- Media3 Engine → Player Contract: implements
- Media3 Engine → Media Cache: reads and writes
- Media3 Engine → Live Watchdog: monitors
