Skip to content

feat(android): add Simkl authentication, scrobbling, and sync support - #555

Closed
Himanth-reddy wants to merge 4 commits into
mainfrom
simkl/android
Closed

feat(android): add Simkl authentication, scrobbling, and sync support#555
Himanth-reddy wants to merge 4 commits into
mainfrom
simkl/android

Conversation

@Himanth-reddy

@Himanth-reddy Himanth-reddy commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary of Changes

This PR adds native Android & Android TV support for Simkl tracking, scrobbling, authentication, and watch history synchronization.

1. Retrofit API & Models (SimklApi.kt)

  • Added SimklApi interface with DTO models for PIN authentication, scrobble events, activities, watched history, and watchlists.
  • Registered provideSimklApi in AppModule.kt.

2. Decoupled Architecture (com.arflix.tv.data.repository.simkl.*)

  • SimklAuthManager: Manages PIN device code auth, token storage in DataStore (simkl_access_token), and session disconnects.
  • SimklScrobbler: Handles real-time scrobbling (scrobbleStart, scrobblePause, scrobbleStop) and progress calculation with >=80% completion thresholding.
  • SimklSyncService: Manages watched history fetching, delta updates via /sync/activities, and watchlist modifications.
  • SimklRemoteProvider: Adapter implementing RemoteSyncProvider.

3. Provider Resolution & Settings UI

  • Updated SyncProvider enum with SIMKL.
  • Integrated SimklRemoteProvider into RemoteSyncManager.
  • Added Simkl UI state and authentication actions in SettingsViewModel.kt.

4. Automated Tests

  • Added unit test suite in SimklIntegrationTest.kt verifying PIN auth polling, scrobble payload building, and sync logic.

Testing & Verification

  • Gradle build ./gradlew compileSideloadDebugKotlin succeeded.
  • All unit tests in SimklIntegrationTest.kt passed.

@Himanth-reddy
Himanth-reddy changed the base branch from simkl/web to main August 12, 2026 05:00
@Himanth-reddy

Copy link
Copy Markdown
Collaborator Author

Superseded by #559 (from Himanth-reddy:simkl/android into main)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: android Changes to the Android app or Gradle build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant