Skip to content

[Worker] StatsCollectionWorker with WorkManager #41

@LeGeRyChEeSe

Description

@LeGeRyChEeSe

Description

Implement a WorkManager Worker for daily periodic statistics collection.

File to create

  • app/src/main/java/com/vrhub/worker/StatsCollectionWorker.kt

Specifications

  • Type: CoroutineWorker
  • Frequency: Daily (PeriodicWorkRequestBuilder<StatsCollectionWorker>(1, TimeUnit.DAYS))
  • Constraints: Network connected (NetworkType.CONNECTED)
  • Backoff: Exponential (WorkRequest.MIN_BACKOFF_MILLIS)
  • Work Name: stats_collection_work (unique periodic work)

Lifecycle

  • Consent grantedStatsCollectionWorker.enqueue(context) (use ExistingPeriodicWorkPolicy.KEEP)
  • Consent revokedStatsCollectionWorker.cancel(context)

doWork() implementation

  1. Check consentPreferences.consentEnabled
  2. If falseResult.success() (do not retry)
  3. Retrieve installed games + favorites list
  4. Build StatsCollectRequest with user tier
  5. Call statsApiService.collectStats()
  6. If success → Result.success(), else Result.retry()

Reference

  • docs/CLIENT_SPEC.md §3.1, §3.4
  • docs/CLIENT_IMPLEMENTATION.md §9

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions