# geoffledak/exoplayerfullscreen architecture

> Architecture diagram of the GitHub repository geoffledak/exoplayerfullscreen, 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/geoffledak/exoplayerfullscreen
- Repository: https://github.com/geoffledak/exoplayerfullscreen

## Overview

ExoplayerFullscreen is a small Android sample demonstrating HLS playback and a fullscreen toggle. The principal workflow is opening the activity, playing the configured stream, and moving the player view into or out of a fullscreen dialog; the activity also saves playback position and fullscreen state across lifecycle changes. Source confirms the activity behavior, but the layout contents and dependency configuration were not sampled, so their detailed wiring is not inferred.

Main entry points: [`app/src/main/java/com/geoffledak/exoplayerfullscreen/MainActivity.java`](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/java/com/geoffledak/exoplayerfullscreen/MainActivity.java) (Main activity), [`app/src/main/res/layout/exo_simple_player_view.xml`](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_simple_player_view.xml) (Player view), [`app/src/main/res/layout/activity_main.xml`](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/activity_main.xml) (Activity layout), [`app/src/main/res/layout/exo_playback_control_view.xml`](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_playback_control_view.xml) (Playback controls)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_playback["Playback and lifecycle"]
  node_activity["Main activity<br/>[MainActivity.java]"]
  node_player_view["Player view"]
end

subgraph group_fullscreen["Fullscreen interface"]
  node_main_layout["Activity layout<br/>[activity_main.xml]"]
  node_controls["Playback controls"]
end

node_user(("Viewer"))
node_hls_origin(("HLS media origin"))

node_user -->|"opens and operates"| node_activity
node_activity -->|"sets content view"| node_main_layout
node_activity -->|"configures player"| node_player_view
node_player_view -->|"provides controls"| node_controls
node_activity -->|"requests HLS stream"| node_hls_origin

click node_activity "https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/java/com/geoffledak/exoplayerfullscreen/MainActivity.java"
click node_main_layout "https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/activity_main.xml"
click node_player_view "https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_simple_player_view.xml"
click node_controls "https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_playback_control_view.xml"

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_activity,node_player_view,node_user toneBlue
class node_main_layout,node_controls toneAmber
class node_hls_origin toneIndigo
```

## Components

### Playback and lifecycle

- [Main activity](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/java/com/geoffledak/exoplayerfullscreen/MainActivity.java): `app/src/main/java/com/geoffledak/exoplayerfullscreen/MainActivity.java`
- [Player view](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_simple_player_view.xml): `app/src/main/res/layout/exo_simple_player_view.xml`

### Fullscreen interface

- [Activity layout](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/activity_main.xml): `app/src/main/res/layout/activity_main.xml`
- [Playback controls](https://github.com/geoffledak/exoplayerfullscreen/blob/master/app/src/main/res/layout/exo_playback_control_view.xml): `app/src/main/res/layout/exo_playback_control_view.xml`

### Other components

- **Viewer**
- **HLS media origin**

## Connections

- Viewer → Main activity: opens and operates
- Main activity → Activity layout: sets content view
- Main activity → Player view: configures player
- Player view → Playback controls: provides controls
- Main activity → HLS media origin: requests HLS stream
