Loading app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import androidx.work.Configuration import dagger.hilt.android.HiltAndroidApp import foundation.e.apps.manager.pkg.PkgManagerBR import foundation.e.apps.manager.pkg.PkgManagerModule import foundation.e.apps.manager.workmanager.InstallWorkManager import kotlinx.coroutines.DelicateCoroutinesApi import java.util.concurrent.Executors import javax.inject.Inject Loading @@ -40,6 +41,7 @@ class AppLoungeApplication : Application(), Configuration.Provider { override fun onCreate() { super.onCreate() InstallWorkManager.context = this // Register broadcast receiver for package manager val pkgManagerBR = object : PkgManagerBR() {} registerReceiver(pkgManagerBR, pkgManagerModule.getFilter()) Loading app/src/main/java/foundation/e/apps/MainActivity.kt +2 −2 Original line number Diff line number Diff line Loading @@ -239,7 +239,7 @@ class MainActivity : AppCompatActivity() { return@launch } viewModel.updateAwaiting(it) InstallWorkManager.enqueueWork(applicationContext, it) InstallWorkManager.enqueueWork(it) Log.d(TAG, "===> onCreate: AWAITING ${it.name}") } } Loading @@ -251,7 +251,7 @@ class MainActivity : AppCompatActivity() { lifecycleScope.launch { val fusedDownload = viewModel.updateAwaitingForPurchasedApp(it) if (fusedDownload != null) { InstallWorkManager.enqueueWork(applicationContext, fusedDownload) InstallWorkManager.enqueueWork(fusedDownload) } else { showSnackbarMessage(getString(R.string.paid_app_anonymous_message)) } Loading app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.manager.database.fusedDownload.FusedDownload import foundation.e.apps.manager.fused.FusedManagerRepository import foundation.e.apps.manager.pkg.PkgManagerModule import foundation.e.apps.manager.workmanager.InstallWorkManager import foundation.e.apps.utils.enums.Origin import foundation.e.apps.utils.enums.Status import foundation.e.apps.utils.enums.Type Loading Loading @@ -271,6 +272,7 @@ class MainActivityViewModel @Inject constructor( val fusedDownload = fusedManagerRepository.getFusedDownload(packageName = app.package_name) fusedManagerRepository.cancelDownload(fusedDownload) InstallWorkManager.cancelWork(app.name) } } Loading app/src/main/java/foundation/e/apps/manager/database/fusedDownload/FusedDownloadDAO.kt +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ import androidx.room.Update @Dao interface FusedDownloadDAO { @Insert(onConflict = OnConflictStrategy.IGNORE) @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun addDownload(fusedDownload: FusedDownload) @Query("SELECT * FROM fuseddownload") Loading app/src/main/java/foundation/e/apps/manager/workmanager/InstallWorkManager.kt +8 −2 Original line number Diff line number Diff line package foundation.e.apps.manager.workmanager import android.content.Context import android.app.Application import androidx.work.Data import androidx.work.ExistingWorkPolicy import androidx.work.OneTimeWorkRequestBuilder Loading @@ -9,7 +9,9 @@ import foundation.e.apps.manager.database.fusedDownload.FusedDownload object InstallWorkManager { const val INSTALL_WORK_NAME = "APP_LOUNGE_INSTALL_APP" fun enqueueWork(context: Context, fusedDownload: FusedDownload) { lateinit var context: Application fun enqueueWork(fusedDownload: FusedDownload) { WorkManager.getInstance(context).enqueueUniqueWork( INSTALL_WORK_NAME, ExistingWorkPolicy.APPEND_OR_REPLACE, Loading @@ -21,4 +23,8 @@ object InstallWorkManager { .build() ) } fun cancelWork(tag: String) { WorkManager.getInstance(context).cancelAllWorkByTag(tag) } } Loading
app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import androidx.work.Configuration import dagger.hilt.android.HiltAndroidApp import foundation.e.apps.manager.pkg.PkgManagerBR import foundation.e.apps.manager.pkg.PkgManagerModule import foundation.e.apps.manager.workmanager.InstallWorkManager import kotlinx.coroutines.DelicateCoroutinesApi import java.util.concurrent.Executors import javax.inject.Inject Loading @@ -40,6 +41,7 @@ class AppLoungeApplication : Application(), Configuration.Provider { override fun onCreate() { super.onCreate() InstallWorkManager.context = this // Register broadcast receiver for package manager val pkgManagerBR = object : PkgManagerBR() {} registerReceiver(pkgManagerBR, pkgManagerModule.getFilter()) Loading
app/src/main/java/foundation/e/apps/MainActivity.kt +2 −2 Original line number Diff line number Diff line Loading @@ -239,7 +239,7 @@ class MainActivity : AppCompatActivity() { return@launch } viewModel.updateAwaiting(it) InstallWorkManager.enqueueWork(applicationContext, it) InstallWorkManager.enqueueWork(it) Log.d(TAG, "===> onCreate: AWAITING ${it.name}") } } Loading @@ -251,7 +251,7 @@ class MainActivity : AppCompatActivity() { lifecycleScope.launch { val fusedDownload = viewModel.updateAwaitingForPurchasedApp(it) if (fusedDownload != null) { InstallWorkManager.enqueueWork(applicationContext, fusedDownload) InstallWorkManager.enqueueWork(fusedDownload) } else { showSnackbarMessage(getString(R.string.paid_app_anonymous_message)) } Loading
app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +2 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import foundation.e.apps.api.fused.data.FusedApp import foundation.e.apps.manager.database.fusedDownload.FusedDownload import foundation.e.apps.manager.fused.FusedManagerRepository import foundation.e.apps.manager.pkg.PkgManagerModule import foundation.e.apps.manager.workmanager.InstallWorkManager import foundation.e.apps.utils.enums.Origin import foundation.e.apps.utils.enums.Status import foundation.e.apps.utils.enums.Type Loading Loading @@ -271,6 +272,7 @@ class MainActivityViewModel @Inject constructor( val fusedDownload = fusedManagerRepository.getFusedDownload(packageName = app.package_name) fusedManagerRepository.cancelDownload(fusedDownload) InstallWorkManager.cancelWork(app.name) } } Loading
app/src/main/java/foundation/e/apps/manager/database/fusedDownload/FusedDownloadDAO.kt +1 −1 Original line number Diff line number Diff line Loading @@ -11,7 +11,7 @@ import androidx.room.Update @Dao interface FusedDownloadDAO { @Insert(onConflict = OnConflictStrategy.IGNORE) @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun addDownload(fusedDownload: FusedDownload) @Query("SELECT * FROM fuseddownload") Loading
app/src/main/java/foundation/e/apps/manager/workmanager/InstallWorkManager.kt +8 −2 Original line number Diff line number Diff line package foundation.e.apps.manager.workmanager import android.content.Context import android.app.Application import androidx.work.Data import androidx.work.ExistingWorkPolicy import androidx.work.OneTimeWorkRequestBuilder Loading @@ -9,7 +9,9 @@ import foundation.e.apps.manager.database.fusedDownload.FusedDownload object InstallWorkManager { const val INSTALL_WORK_NAME = "APP_LOUNGE_INSTALL_APP" fun enqueueWork(context: Context, fusedDownload: FusedDownload) { lateinit var context: Application fun enqueueWork(fusedDownload: FusedDownload) { WorkManager.getInstance(context).enqueueUniqueWork( INSTALL_WORK_NAME, ExistingWorkPolicy.APPEND_OR_REPLACE, Loading @@ -21,4 +23,8 @@ object InstallWorkManager { .build() ) } fun cancelWork(tag: String) { WorkManager.getInstance(context).cancelAllWorkByTag(tag) } }