# hashaleen420/flixorent architecture

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

- Interactive diagram: https://gitdiagram.com/hashaleen420/flixorent
- Repository: https://github.com/hashaleen420/flixorent
- Video tour (about a minute): https://gitdiagram.com/hashaleen420/flixorent/video

## Overview

Flixorent is a native Android movie and TV streaming app. Users browse TMDB-backed catalogs, open a title, select a stream, and play it internally, externally, or via casting; optional Debrid providers resolve sources, while TorrentService supports direct streaming and local downloads. Separate flows cover offline-download management, watch progress and favorites, and Trakt watchlists and schedules. The graph reflects README capabilities where source excerpts are incomplete; detailed wiring for several integrations and screens could not be verified from the sampled code.

Main entry points: [`app/src/main/java/com/adeloc/app/ui/PlayerActivity.kt`](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/PlayerActivity.kt) (Player), [`app/src/main/java/com/adeloc/app/data/db/AppDatabase.kt`](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/db/AppDatabase.kt) (App database), [`app/src/main/java/com/adeloc/app/ui/DetailsActivity.kt`](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/DetailsActivity.kt) (Title details), [`app/src/main/java/com/adeloc/app/ui/fragments/TraktFragment.kt`](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/fragments/TraktFragment.kt) (Trakt sections)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Discovery and metadata"]
  node_home["Home catalog<br/>[MainActivity.kt]"]
  node_details["Title details<br/>[DetailsActivity.kt]"]
  node_tmdb["TMDB client<br/>[TmdbApi.kt]"]
end

subgraph group_streaming["Streaming and playback"]
  node_player["Player<br/>[PlayerActivity.kt]"]
  node_torrentio["Torrentio client<br/>[TorrentioApi.kt]"]
  node_scraper["Web source scraper<br/>[WebScraper.kt]"]
  node_debrid["Debrid resolver<br/>[DebridResolver.kt]"]
  node_provider_apis["Debrid provider APIs<br/>[RetrofitClient.kt]"]
  node_torrent_service["Torrent engine<br/>[TorrentService.kt]"]
end

subgraph group_library["Library and downloads"]
  node_downloads["Downloads screen"]
  node_download_adapter["Download controls"]
  node_database[("App database<br/>[AppDatabase.kt]")]
end

subgraph group_accounts["Accounts and integrations"]
  node_settings["Settings"]
  node_trakt_fragment["Trakt sections<br/>[TraktFragment.kt]"]
  node_trakt_tokens["Trakt token manager"]
  node_trakt_api["Trakt client<br/>[TraktApi.kt]"]
end

node_user(("Viewer"))
node_tmdb_service(("TMDB"))
node_torrentio_service(("Torrentio"))
node_providers(("Debrid providers"))
node_external_player(("External players"))
node_cast(("Chromecast"))
node_trakt_service(("Trakt"))

node_user -->|"browses"| node_home
node_home -->|"loads catalog"| node_tmdb
node_tmdb -->|"requests metadata"| node_tmdb_service
node_user -->|"opens title"| node_details
node_details -->|"loads details"| node_tmdb
node_details -->|"reads favorites"| node_database
node_details -->|"starts playback"| node_player
node_player -->|"searches sources"| node_torrentio
node_torrentio -->|"requests streams"| node_torrentio_service
node_player -.->|"searches sources"| node_scraper
node_player -.->|"resolves source"| node_debrid
node_debrid -->|"uses provider"| node_provider_apis
node_provider_apis -->|"calls API"| node_providers
node_player -.->|"starts direct stream"| node_torrent_service
node_player -.->|"launches media"| node_external_player
node_player -.->|"casts media"| node_cast
node_player -->|"saves progress"| node_database
node_player -->|"records downloads"| node_database
node_user -->|"manages downloads"| node_downloads
node_downloads -->|"loads downloads"| node_database
node_downloads -->|"displays items"| node_download_adapter
node_download_adapter -->|"deletes download"| node_database
node_download_adapter -->|"plays offline"| node_player
node_torrent_service -->|"updates download"| node_database
node_user -->|"configures accounts"| node_settings
node_settings -->|"stores tokens"| node_trakt_tokens
node_settings -->|"authorizes"| node_trakt_api
node_user -->|"views Trakt lists"| node_trakt_fragment
node_trakt_fragment -->|"reads token"| node_trakt_tokens
node_trakt_fragment -->|"loads lists"| node_trakt_api
node_trakt_api -->|"requests account data"| node_trakt_service
node_trakt_fragment -->|"fetches posters"| node_tmdb

click node_home "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/MainActivity.kt"
click node_details "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/DetailsActivity.kt"
click node_tmdb "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TmdbApi.kt"
click node_player "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/PlayerActivity.kt"
click node_torrentio "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TorrentioApi.kt"
click node_scraper "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/scraper/WebScraper.kt"
click node_debrid "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/DebridResolver.kt"
click node_provider_apis "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/RetrofitClient.kt"
click node_torrent_service "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/service/TorrentService.kt"
click node_downloads "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/DownloadsActivity.kt"
click node_download_adapter "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/adapters/DownloadsAdapter.kt"
click node_database "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/db/AppDatabase.kt"
click node_settings "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/SettingsActivity.kt"
click node_trakt_fragment "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/fragments/TraktFragment.kt"
click node_trakt_tokens "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/manager/TraktTokenManager.kt"
click node_trakt_api "https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TraktApi.kt"

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_home,node_details,node_tmdb,node_user toneBlue
class node_player,node_torrentio,node_scraper,node_debrid,node_provider_apis,node_torrent_service toneAmber
class node_downloads,node_download_adapter,node_database toneMint
class node_settings,node_trakt_fragment,node_trakt_tokens,node_trakt_api toneRose
class node_tmdb_service,node_torrentio_service,node_providers,node_external_player,node_cast,node_trakt_service toneIndigo
```

## Components

### Discovery and metadata

- [Home catalog](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/MainActivity.kt): `app/src/main/java/com/adeloc/app/ui/MainActivity.kt`
- [Title details](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/DetailsActivity.kt): `app/src/main/java/com/adeloc/app/ui/DetailsActivity.kt`
- [TMDB client](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TmdbApi.kt): `app/src/main/java/com/adeloc/app/data/api/TmdbApi.kt`

### Streaming and playback

- [Player](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/PlayerActivity.kt): `app/src/main/java/com/adeloc/app/ui/PlayerActivity.kt`
- [Torrentio client](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TorrentioApi.kt): `app/src/main/java/com/adeloc/app/data/api/TorrentioApi.kt`
- [Web source scraper](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/scraper/WebScraper.kt): `app/src/main/java/com/adeloc/app/data/scraper/WebScraper.kt`
- [Debrid resolver](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/DebridResolver.kt): `app/src/main/java/com/adeloc/app/data/api/DebridResolver.kt`
- [Debrid provider APIs](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/RetrofitClient.kt): `app/src/main/java/com/adeloc/app/data/api/RetrofitClient.kt`
- [Torrent engine](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/service/TorrentService.kt): `app/src/main/java/com/adeloc/app/service/TorrentService.kt`

### Library and downloads

- [Downloads screen](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/DownloadsActivity.kt): `app/src/main/java/com/adeloc/app/ui/DownloadsActivity.kt`
- [Download controls](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/adapters/DownloadsAdapter.kt): `app/src/main/java/com/adeloc/app/ui/adapters/DownloadsAdapter.kt`
- [App database](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/db/AppDatabase.kt): `app/src/main/java/com/adeloc/app/data/db/AppDatabase.kt`

### Accounts and integrations

- [Settings](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/SettingsActivity.kt): `app/src/main/java/com/adeloc/app/ui/SettingsActivity.kt`
- [Trakt sections](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/ui/fragments/TraktFragment.kt): `app/src/main/java/com/adeloc/app/ui/fragments/TraktFragment.kt`
- [Trakt token manager](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/manager/TraktTokenManager.kt): `app/src/main/java/com/adeloc/app/data/manager/TraktTokenManager.kt`
- [Trakt client](https://github.com/hashaleen420/flixorent/blob/master/app/src/main/java/com/adeloc/app/data/api/TraktApi.kt): `app/src/main/java/com/adeloc/app/data/api/TraktApi.kt`

### Other components

- **Viewer**
- **TMDB**
- **Torrentio**
- **Debrid providers**
- **External players**
- **Chromecast**
- **Trakt**

## Connections

- Viewer → Home catalog: browses
- Home catalog → TMDB client: loads catalog
- TMDB client → TMDB: requests metadata
- Viewer → Title details: opens title
- Title details → TMDB client: loads details
- Title details → App database: reads favorites
- Title details → Player: starts playback
- Player → Torrentio client: searches sources
- Torrentio client → Torrentio: requests streams
- Player → Web source scraper: searches sources
- Player → Debrid resolver: resolves source
- Debrid resolver → Debrid provider APIs: uses provider
- Debrid provider APIs → Debrid providers: calls API
- Player → Torrent engine: starts direct stream
- Player → External players: launches media
- Player → Chromecast: casts media
- Player → App database: saves progress
- Player → App database: records downloads
- Viewer → Downloads screen: manages downloads
- Downloads screen → App database: loads downloads
- Downloads screen → Download controls: displays items
- Download controls → App database: deletes download
- Download controls → Player: plays offline
- Torrent engine → App database: updates download
- Viewer → Settings: configures accounts
- Settings → Trakt token manager: stores tokens
- Settings → Trakt client: authorizes
- Viewer → Trakt sections: views Trakt lists
- Trakt sections → Trakt token manager: reads token
- Trakt sections → Trakt client: loads lists
- Trakt client → Trakt: requests account data
- Trakt sections → TMDB client: fetches posters
