diff --git a/app/src/main/java/com/aurora/store/AuroraApp.kt b/app/src/main/java/com/aurora/store/AuroraApp.kt index 9aeb08ef5..a9fc94e0c 100644 --- a/app/src/main/java/com/aurora/store/AuroraApp.kt +++ b/app/src/main/java/com/aurora/store/AuroraApp.kt @@ -31,7 +31,7 @@ import com.aurora.extensions.setAppTheme import com.aurora.store.data.event.EventFlow import com.aurora.store.data.receiver.PackageManagerReceiver import com.aurora.store.util.CommonUtil -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.util.NotificationUtil import com.aurora.store.util.PackageUtil import com.aurora.store.util.Preferences @@ -53,7 +53,7 @@ class AuroraApp : Application(), Configuration.Provider, ImageLoaderFactory { lateinit var workerFactory: HiltWorkerFactory @Inject - lateinit var downloadWorkerUtil: DownloadWorkerUtil + lateinit var downloadHelper: DownloadHelper override val workManagerConfiguration: Configuration get() = Configuration.Builder() @@ -87,7 +87,7 @@ class AuroraApp : Application(), Configuration.Provider, ImageLoaderFactory { NotificationUtil.createNotificationChannel(this) // Initialize DownloadWorker to observe and trigger downloads - downloadWorkerUtil.init() + downloadHelper.init() //Register broadcast receiver for package install/uninstall ContextCompat.registerReceiver( diff --git a/app/src/main/java/com/aurora/store/util/DownloadWorkerUtil.kt b/app/src/main/java/com/aurora/store/data/helper/DownloadHelper.kt similarity index 96% rename from app/src/main/java/com/aurora/store/util/DownloadWorkerUtil.kt rename to app/src/main/java/com/aurora/store/data/helper/DownloadHelper.kt index 269d1e60b..63ee5b49b 100644 --- a/app/src/main/java/com/aurora/store/util/DownloadWorkerUtil.kt +++ b/app/src/main/java/com/aurora/store/data/helper/DownloadHelper.kt @@ -1,4 +1,4 @@ -package com.aurora.store.util +package com.aurora.store.data.helper import android.content.Context import android.util.Log @@ -14,6 +14,7 @@ import com.aurora.store.data.room.download.Download import com.aurora.store.data.room.download.DownloadDao import com.aurora.store.data.room.update.Update import com.aurora.store.data.work.DownloadWorker +import com.aurora.store.util.PathUtil import com.google.gson.Gson import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.SharingStarted @@ -27,7 +28,7 @@ import javax.inject.Inject /** * Helper class to work with the [DownloadWorker]. */ -class DownloadWorkerUtil @Inject constructor( +class DownloadHelper @Inject constructor( @ApplicationContext private val context: Context, private val downloadDao: DownloadDao, private val gson: Gson @@ -46,7 +47,7 @@ class DownloadWorkerUtil @Inject constructor( val downloadsList = downloadDao.downloads() .stateIn(AuroraApp.scope, SharingStarted.WhileSubscribed(), emptyList()) - private val TAG = DownloadWorkerUtil::class.java.simpleName + private val TAG = DownloadHelper::class.java.simpleName /** * Removes failed download from the queue and starts observing for newly enqueued apps. @@ -180,7 +181,7 @@ class DownloadWorkerUtil @Inject constructor( // Ensure all app downloads are unique to preserve individual records WorkManager.getInstance(context) .enqueueUniqueWork( - "${DOWNLOAD_WORKER}/${download.packageName}", + "$DOWNLOAD_WORKER/${download.packageName}", ExistingWorkPolicy.KEEP, work ) } diff --git a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt index 6610a82c1..1c7ba4e72 100644 --- a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt @@ -33,7 +33,7 @@ import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.download.Download import com.aurora.store.data.room.download.DownloadDao import com.aurora.store.util.CertUtil -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.util.NotificationUtil import com.aurora.store.util.PathUtil import com.google.gson.Gson @@ -53,7 +53,7 @@ import com.aurora.gplayapi.data.models.File as GPlayFile /** * An expedited long-running worker to download and trigger installation for given apps. * - * Avoid using this worker directly and prefer using [DownloadWorkerUtil] instead. + * Avoid using this worker directly and prefer using [DownloadHelper] instead. */ @HiltWorker class DownloadWorker @AssistedInject constructor( @@ -92,7 +92,7 @@ class DownloadWorker @AssistedInject constructor( // Try to parse input data into a valid app try { - val downloadData = inputData.getString(DownloadWorkerUtil.DOWNLOAD_DATA) + val downloadData = inputData.getString(DownloadHelper.DOWNLOAD_DATA) download = gson.fromJson(downloadData, Download::class.java) val bitmap = BitmapFactory.decodeStream(withContext(Dispatchers.IO) { diff --git a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt index 51a2448c2..f96466296 100644 --- a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt @@ -18,7 +18,7 @@ import com.aurora.extensions.isMAndAbove import com.aurora.store.data.installer.AppInstaller import com.aurora.store.data.providers.AuthProvider import com.aurora.store.util.AppUtil -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.util.NotificationUtil import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO @@ -39,7 +39,7 @@ import java.util.concurrent.TimeUnit.MINUTES @HiltWorker class UpdateWorker @AssistedInject constructor( private val appUtil: AppUtil, - private val downloadWorkerUtil: DownloadWorkerUtil, + private val downloadHelper: DownloadHelper, private val authProvider: AuthProvider, @Assisted private val appContext: Context, @Assisted workerParams: WorkerParameters @@ -143,7 +143,7 @@ class UpdateWorker @AssistedInject constructor( if (list.isEmpty()) return@let Log.i(TAG, "Found auto-update enabled apps, updating!") - list.forEach { downloadWorkerUtil.enqueueUpdate(it) } + list.forEach { downloadHelper.enqueueUpdate(it) } } // Notify about remaining apps (if any) diff --git a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt index 50fe7c28e..2af049730 100644 --- a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt @@ -30,7 +30,7 @@ import com.aurora.extensions.browse import com.aurora.store.R import com.aurora.store.data.room.download.Download import com.aurora.store.databinding.FragmentDownloadBinding -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.view.epoxy.views.DownloadViewModel_ import com.aurora.store.view.epoxy.views.app.NoAppViewModel_ import com.aurora.store.view.ui.commons.BaseFragment @@ -44,7 +44,7 @@ import javax.inject.Inject class DownloadFragment : BaseFragment() { @Inject - lateinit var downloadWorkerUtil: DownloadWorkerUtil + lateinit var downloadHelper: DownloadHelper private lateinit var downloadList: List @@ -62,19 +62,19 @@ class DownloadFragment : BaseFragment() { when (it.itemId) { R.id.action_force_clear_all -> { viewLifecycleOwner.lifecycleScope.launch(NonCancellable) { - downloadWorkerUtil.clearAllDownloads() + downloadHelper.clearAllDownloads() } } R.id.action_cancel_all -> { viewLifecycleOwner.lifecycleScope.launch(NonCancellable) { - downloadWorkerUtil.cancelAll() + downloadHelper.cancelAll() } } R.id.action_clear_completed -> { viewLifecycleOwner.lifecycleScope.launch(NonCancellable) { - downloadWorkerUtil.clearFinishedDownloads() + downloadHelper.clearFinishedDownloads() } } } @@ -83,7 +83,7 @@ class DownloadFragment : BaseFragment() { } viewLifecycleOwner.lifecycleScope.launch { - downloadWorkerUtil.downloadsList.collectLatest { + downloadHelper.downloadsList.collectLatest { downloadList = it updateController(it.reversed()) } diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/DownloadMenuSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/DownloadMenuSheet.kt index 451396338..e4be605e4 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/DownloadMenuSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/DownloadMenuSheet.kt @@ -33,7 +33,7 @@ import com.aurora.store.R import com.aurora.store.data.installer.AppInstaller import com.aurora.store.data.model.DownloadStatus import com.aurora.store.databinding.SheetDownloadMenuBinding -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.aurora.store.util.PathUtil import com.aurora.store.viewmodel.sheets.SheetsViewModel import dagger.hilt.android.AndroidEntryPoint @@ -62,7 +62,7 @@ class DownloadMenuSheet : BaseDialogSheet() { } @Inject - lateinit var downloadWorkerUtil: DownloadWorkerUtil + lateinit var downloadHelper: DownloadHelper @Inject lateinit var appInstaller: AppInstaller @@ -101,14 +101,14 @@ class DownloadMenuSheet : BaseDialogSheet() { R.id.action_cancel -> { findViewTreeLifecycleOwner()?.lifecycleScope?.launch(NonCancellable) { - downloadWorkerUtil.cancelDownload(args.download.packageName) + downloadHelper.cancelDownload(args.download.packageName) } dismissAllowingStateLoss() } R.id.action_clear -> { findViewTreeLifecycleOwner()?.lifecycleScope?.launch(NonCancellable) { - downloadWorkerUtil.clearDownload( + downloadHelper.clearDownload( args.download.packageName, args.download.versionCode ) diff --git a/app/src/main/java/com/aurora/store/viewmodel/all/UpdatesViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/all/UpdatesViewModel.kt index 20a5b68c8..10ea0b1a8 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/all/UpdatesViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/all/UpdatesViewModel.kt @@ -24,7 +24,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.aurora.store.data.room.update.Update import com.aurora.store.util.AppUtil -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow @@ -35,13 +35,13 @@ import javax.inject.Inject @HiltViewModel class UpdatesViewModel @Inject constructor( private val appUtil: AppUtil, - private val downloadWorkerUtil: DownloadWorkerUtil, + private val downloadHelper: DownloadHelper, ) : ViewModel() { private val TAG = UpdatesViewModel::class.java.simpleName var updateAllEnqueued: Boolean = false - val downloadsList get() = downloadWorkerUtil.downloadsList + val downloadsList get() = downloadHelper.downloadsList val updates get() = appUtil.updates private val _fetchingUpdates = MutableStateFlow(false) @@ -59,14 +59,14 @@ class UpdatesViewModel @Inject constructor( } fun download(update: Update) { - viewModelScope.launch { downloadWorkerUtil.enqueueUpdate(update) } + viewModelScope.launch { downloadHelper.enqueueUpdate(update) } } fun cancelDownload(packageName: String) { - viewModelScope.launch { downloadWorkerUtil.cancelDownload(packageName) } + viewModelScope.launch { downloadHelper.cancelDownload(packageName) } } fun cancelAll() { - viewModelScope.launch { downloadWorkerUtil.cancelAll(true) } + viewModelScope.launch { downloadHelper.cancelAll(true) } } } diff --git a/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt index 68f6d305c..08403bdd4 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/details/AppDetailsViewModel.kt @@ -16,7 +16,7 @@ import com.aurora.store.data.model.Report import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.room.favourites.Favourite import com.aurora.store.data.room.favourites.FavouriteDao -import com.aurora.store.util.DownloadWorkerUtil +import com.aurora.store.data.helper.DownloadHelper import com.google.gson.GsonBuilder import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext @@ -34,7 +34,7 @@ import com.aurora.gplayapi.data.models.datasafety.Report as DataSafetyReport @HiltViewModel class AppDetailsViewModel @Inject constructor( @ApplicationContext private val context: Context, - private val downloadWorkerUtil: DownloadWorkerUtil, + private val downloadHelper: DownloadHelper, private val authProvider: AuthProvider, private val favouriteDao: FavouriteDao, private val httpClient: IHttpClient @@ -75,7 +75,7 @@ class AppDetailsViewModel @Inject constructor( private val _favourite = MutableStateFlow(false) val favourite = _favourite.asStateFlow() - val downloadsList get() = downloadWorkerUtil.downloadsList + val downloadsList get() = downloadHelper.downloadsList fun fetchAppDetails(packageName: String) { viewModelScope.launch(Dispatchers.IO) { @@ -179,11 +179,11 @@ class AppDetailsViewModel @Inject constructor( } fun download(app: App) { - viewModelScope.launch { downloadWorkerUtil.enqueueApp(app) } + viewModelScope.launch { downloadHelper.enqueueApp(app) } } fun cancelDownload(app: App) { - viewModelScope.launch { downloadWorkerUtil.cancelDownload(app.packageName) } + viewModelScope.launch { downloadHelper.cancelDownload(app.packageName) } } fun toggleFavourite(app: App) {