Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Android TV App #4

Merged
merged 17 commits into from
Jul 22, 2024
Merged

Initial Android TV App #4

merged 17 commits into from
Jul 22, 2024

Conversation

jnelle
Copy link
Member

@jnelle jnelle commented Jul 22, 2024

No description provided.

jnelle and others added 17 commits July 14, 2024 12:50
- Remove unused imports related to component interactions and state management in `Platform.android.kt`
- Remove coroutine scope and related functions to simplify `VideoPlayer` implementation

Signed-off-by: jnelle <[email protected]>
- Reduce horizontal padding in `EpisodeListItem` from 16dp to 4dp
- Adjust the shape corner radius from 10dp to 12dp and change height from 83dp to 81dp for the image container
- Change `contentScale` property from `Fit` to `Crop` for images in `EpisodeListItem`
- Update the text style from `titleSmall` to `bodyMedium` in the episode description display

Signed-off-by: jnelle <[email protected]>
- Add dependency `:shared-core` to `build.gradle.kts` and `mgtvApi/build.gradle.kts`
- Introduce a new module `shared-core` with various Kotlin and Android configurations
- Replace `ResultState` with `ViewState` in Kotlin files across multiple screens and view models
- Define new `ViewState` class encompassing states like Loading, Success, and Error
- Remove deprecated `ResultState` class from the project
- Add platform-specific functionality to `shared-core` with implementations for Android and iOS

Signed-off-by: jnelle <[email protected]>
- Update Kotlin, Coroutines, Ktor, and multiple dependencies in `libs.versions.toml`
- Add new dependencies for various AndroidX components
- Add navigation bundles for AndroidX Navigation components
- Create new `mgplayertv` module with initial setup and dependencies
- Add drawable resources and update app theme in `mgplayertv` module
- Implement new UI components like `BorderedFocusableItem`, `ThumbnailImageCard`, and more in the `mgplayertv` module
- Set up basic navigation and theme handling in `mgplayertv` module

Signed-off-by: jnelle <[email protected]>
- Remove `rememberCoroutineScope` import in `Platform.android.kt`
- Reduce delay in `MediaPlayerController.kt` from 15 to 10 seconds

Signed-off-by: jnelle <[email protected]>
- Add 'androidx-material-icons-extended' to the Gradle library versions file
- Include Kotlinx datetime library in 'build.gradle.kts'
- Import and use 'Instant' from Kotlinx.datetime for the 'time' field in 'Clip' model
- Introduce new 'ProgressResponse' data model including progress details for clips
- Add optional 'next' station and participants list in 'WatchResponse' model
- Implement a new 'getRecentlyWatched' method in the MGTVApiRepository and its corresponding implementation to handle fetch and error logic
- Implement remote service method for fetching recently watched progress from the server
- Update HomeViewModel to handle recently watched clips and manage states for combined data display

Signed-off-by: jnelle <[email protected]>
- Add Coil library for image loading in `MainActivity`
- Add image loader and disk cache setup for Coil in `MainActivity`
- Integrate Okio library and FileSystem for managing disk cache in `MainActivity`
- Remove unused constants related to movies in `StringConstants.kt`
- Remove unused movie detail UI components
- Add customization options for Clip rows layout in `MoviesRow` and related classes
- Remove tabs and movie list screens: Movies and Search
- Remove ViewModel classes related to viewing movie categories in the categories directory
- Modify content and bundle key for `Category Movie List` to magazine specific
- Simplify the dashboard by focusing on magazine content over movies
- Switch `DashboardTopBar` to use the updated icon and string resources
- Remove visual shadows on elements within `MoviesRowItem`
- Introduce player setup in `VideoPlayerScreen` with cleaner URI handling
- Use new icon and amended strings in `DashboardTopBar` and `VideoPlayerScreen` for simplicity and clarity
- Streamline handling of user navigation based on system button presses in various UI components

Signed-off-by: jnelle <[email protected]>
- Change `time` field type from `Instant` to `Long` in `Clip` model
- Add formatting methods for duration, release date, and vertical image in `Clip` model
- Add `Serializable` annotation to `ProgressResponse` and `ProgressTrace`
- Replace `lastAccessed` field type from `Instant` to `Long` in `ProgressClip`
- Modify the `getRecentlyWatched` method to include authentication parameters and update API endpoint call
- Add `basicAuth` method in the API service call for user authentication
- Include new data class `ClipData` with properties for progress, clip, file, and clip ID in the `CommonViewModel`
- Implement getters and setters for `progress`, `clip`, `file`, and `clipID` in `CommonPostModel` ensuring updates reflect in UI state management

Signed-off-by: jnelle <[email protected]>
- Remove unused content description functions and constants for various UI components
- Add a placeholder constant for cast and crew information
- Rename navigation parameters and use dynamic types for navigation arguments
- Introduce active state for magazine clips for enhanced navigation handling
- Transition from using the Movie prefix to Clip across different screens and components
- Update the ClipsRow component to reflect new data structure and interaction patterns
RESET USER DATA:
- Adjust the string resources to better fit the context
- Reformulate content descriptions and error messages for clarity
- Standardize data model API responses and formatting methods

Signed-off-by: jnelle <[email protected]>
- Remove the `BorderedFocusableItem` widget and associated functionality
- Delete the `CardItemDefaults` object definition file
- Remove the `FocusableItem` widget from the project
- Delete the `ThumbnailImageCard` widget and related UI design
- Remove `TvButton` widget along with its design properties and behaviors

Signed-off-by: jnelle <[email protected]>
- Update the function signature for `goToMoviePlayer` in `ClipDetailsScreen` to include a clip parameter alongside the file parameter
- Replace the `Categories` screen with `Magazine` in different parts of the navigation and routing setup
- Modify layout components in `MagazineClipsListScreen`, replacing `MovieCard` with `WideClassicCard` and updating layout configurations
- Remove unused imports and simplify UI animations in `MagazineOverviewScreen`
- Update media title attribute in `VideoPlayerControls` from `releaseDateFormatted` to `projectTitle` for secondary text display

Signed-off-by: jnelle <[email protected]>
- Add a ProGuard rule to ignore warnings for `org.slf4j.impl.StaticLoggerBinder`

Signed-off-by: jnelle <[email protected]>
@jnelle jnelle merged commit c6c0019 into master Jul 22, 2024
1 check failed
@jnelle jnelle deleted the android-tv branch July 27, 2024 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant