feat: Native Android TV Recommendation Channels (Simplified)#203
Open
halibiram wants to merge 14 commits intotapframe:devfrom
Open
feat: Native Android TV Recommendation Channels (Simplified)#203halibiram wants to merge 14 commits intotapframe:devfrom
halibiram wants to merge 14 commits intotapframe:devfrom
Conversation
|
Love it |
- Add TvContractCompat channels: Continue Watching, Next Up, Trending - Add ProgramBuilder for PreviewProgram/WatchNextProgram conversion - Add ChannelManager for idempotent channel CRUD via ContentResolver - Add TvRecommendationManager as top-level coordinator - Add TvRecommendationWorker (WorkManager periodic sync every 30 min) - Add RecommendationReceiver for INITIALIZE_PROGRAMS broadcast - Add RecommendationDataStore for channel ID persistence - Add deep link handling (nuviotv://content/) in MainActivity - Hook into WatchProgressRepositoryImpl for real-time updates - Hook into HomeViewModel for Next Up and Trending channel updates - Configure HiltWorkerFactory and disable default WM initializer - Add ProGuard keep rules for Worker/Receiver/TvProvider - Add WRITE_EPG_DATA permission and deep link intent-filter
- Fix tvProvider version 1.1.0-alpha02 -> 1.1.0 (non-existent artifact) - Fix ProgramBuilder: setSeasonNumber/setEpisodeNumber expect Int, not String - Fix MainActivity: add missing closing brace for class body
- #1: removeProgress/removeFromHistory now triggers Watch Next cleanup - #2: clearAll() removes Watch Next system row entries - #3: consumeDeepLink reads name/poster/backdrop from URI - #4: onProgressUpdated refactored to avoid nested mutex risk - #5: updateWatchNext wrapped in mutex.withLock - #7: update methods use getOrCreateChannel for stale ID recovery - tapframe#8: trending updates deduplicated with signature check - tapframe#9: both Trakt auth paths trigger recommendation cleanup - tapframe#10: findWatchNextByInternalId uses WHERE clause - tapframe#12: buildNextUpPlayUri includes content metadata
a437ac4 to
3a05d22
Compare
|
@tapframe are there plans for playstore introduction with integration as deep as this? |
Contributor
Author
Contributor
Author
|
just a quick update: I got the background syncing working so the TV rows update themselves every 30 mins or so. Also changed how the New Releases are merged, it strictly sorts by release date now so the freshest content is always first |
|
Amazing work. |
Contributor
Author
|
Hi @tapframe, Hope you're doing well! Just wanted to follow up and see if you've had a chance to review this PR yet. I understand you're likely busy with other priorities, so absolutely no rush. I'm available to:
Just let me know what would be most helpful! Thanks for your time! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
I appreciate the previous feedback on the project's direction and aesthetics. Based on that, I've completely stripped out the custom UI cards and excessive channels that felt misaligned and overly generated.
This updated revision strips the feature down to the bare essentials, strictly using existing catalog data to natively integrate with the Android TV home screen:
HomeViewModelrows.The bloated code is gone, and this just bridges the existing app data to the native TV launcher APIs. Let me know if this minimal approach fits the roadmap better!