package melody.offline.music import android.app.Application import android.content.Context import android.util.Log import androidx.annotation.OptIn import androidx.media3.common.util.UnstableApi import com.google.android.gms.ads.MobileAds import com.lol.apex.ok.google.adlibrary.LoLAds import com.lol.apex.ok.google.adlibrary.bean.constants.TestMode import melody.offline.music.bean.Audio import melody.offline.music.bean.CurrentPlayingAudio import melody.offline.music.bean.ResourcesList import melody.offline.music.database.AppOfflineDBManager import melody.offline.music.database.CurrentAudioManager import melody.offline.music.database.DatabaseManager import melody.offline.music.media.LocalMediaControllerManager import melody.offline.music.media.MediaControllerManager import melody.offline.music.util.CacheManager import melody.offline.music.util.DownloadUtil import melody.offline.music.util.parseResources import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import melody.offline.music.database.AppFavoriteDBManager import melody.offline.music.database.AppPlaylistDBManager import melody.offline.music.firebase.RemoteConfig import melody.offline.music.http.CommonIpInfoUtil import melody.offline.music.http.UploadEventName import melody.offline.music.sp.AppStore import melody.offline.music.util.AnalysisUtil import melody.offline.music.util.AppLifecycleHandler import java.io.BufferedReader import java.io.InputStreamReader import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicLong @OptIn(UnstableApi::class) class App : Application() { companion object { lateinit var app: App private set lateinit var appPlaylistDBManager: AppPlaylistDBManager 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