Skip to the content.

26.10.13 14:51

Architecture Overview

Technical specification Technology stack Requirements

The application uses MVVM, Hilt dependency injection, repositories and use cases. Its runtime flow resembles Clean Architecture, but compile-time dependencies are intentionally pragmatic.

Layered flow

UI → ViewModel → UseCase → Repository → DataSource

ViewModels expose observable state and events. Use cases coordinate operations. Repository interfaces provide a testable seam; implementations manage persistence and local, network or cloud access. Domain code also reuses selected data-layer types, so this is not a claim of strict dependency inversion throughout the project.

Modules

Key implementation notes

Internet Streams subsystem

StreamsActivity and StreamsViewModel present the list. Catalog import uses ImportStreamCatalogUseCase and StreamSourceRepository, backed by Room entities and DAOs. StreamInlineAudioManager owns list-side audio playback and ICY metadata; fullscreen video uses the existing player path.

Protocol support and screen availability depend on the edition. Consult the generated capability matrix, rather than treating every declared flavor as equivalent. Remote endpoint availability and codec compatibility are not guaranteed by the catalog.

File operations and launcher

File operations dispatch through protocol-specific strategies. Cross-protocol folder transfers process entries incrementally; completed destination entries can remain after cancellation, and a move removes an entry only after its copy is confirmed. This does not provide whole-folder transactional undo.

Launcher-enabled builds offer a desktop, taskbar and gadgets, but Android Home-role activation is chosen by the user. Portrait and landscape desktop layouts are independent application state.

Authoritative implementation references

For practical setup instructions, use the user documentation portal.