package com.parkplants import android.app.Application import android.content.res.Configuration import androidx.appcompat.app.AppCompatDelegate import androidx.hilt.work.HiltWorkerFactory import androidx.work.Configuration as WorkConfiguration import androidx.work.WorkManager import com.parkplants.map.TilePrefetchWorker import dagger.hilt.android.HiltAndroidApp import javax.inject.Inject @HiltAndroidApp class ParkPlantsApp : Application(), WorkConfiguration.Provider { @Inject lateinit var workerFactory: HiltWorkerFactory override val workManagerConfiguration: WorkConfiguration get() = WorkConfiguration.Builder() .setWorkerFactory(workerFactory) .build() override fun onCreate() { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) super.onCreate() val config = resources.configuration config.uiMode = (config.uiMode and Configuration.UI_MODE_NIGHT_MASK.inv()) or Configuration.UI_MODE_NIGHT_NO @Suppress("DEPRECATION") resources.updateConfiguration(config, resources.displayMetrics) // Pre-download park map tiles when network is available. // KEEP policy: only runs if not already queued/running. TilePrefetchWorker.enqueue(WorkManager.getInstance(this)) } }