package relax.offline.music import android.app.Application import android.content.Context import androidx.annotation.OptIn import androidx.media3.common.util.UnstableApi import relax.offline.music.bean.Audio import relax.offline.music.bean.CurrentPlayingAudio import relax.offline.music.bean.ResourcesList import relax.offline.music.database.AppOfflineDBManager import relax.offline.music.database.CurrentAudioManager import relax.offline.music.database.DatabaseManager import relax.offline.music.media.LocalMediaControllerManager import relax.offline.music.media.MediaControllerManager import relax.offline.music.util.CacheManager import relax.offline.music.util.DownloadUtil import relax.offline.music.util.parseResources import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import relax.offline.music.database.AppFavoriteDBManager import relax.offline.music.firebase.RemoteConfig import relax.offline.music.http.CommonIpInfoUtil import relax.offline.music.http.UploadEventName import relax.offline.music.util.AnalysisUtil import relax.offline.music.util.AppLifecycleHandler import java.io.BufferedReader import java.io.InputStreamReader import java.util.concurrent.atomic.AtomicBoolean @OptIn(UnstableApi::class) class App : Application() { companion object { lateinit var app: App private set lateinit var appFavoriteDBManager: AppFavoriteDBManager private set lateinit var appOfflineDBManager: AppOfflineDBManager private set lateinit var currentAudioManager: CurrentAudioManager private set lateinit var databaseManager: DatabaseManager private set var currentPlayingAudio: CurrentPlayingAudio? = null private set lateinit var importList: List