From d351f3bf133e214b9ab867b6a44897e5e28ac322 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 20 Jul 2023 14:24:24 +0530 Subject: [PATCH] AppMenuSheet: Drop dependency upon kovenant Signed-off-by: Aayush Gupta --- .../store/view/ui/sheets/AppMenuSheet.kt | 22 +++++++++---------- .../store/viewmodel/sheets/SheetsViewModel.kt | 7 ++++++ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt index 531224b4a..d56746741 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/AppMenuSheet.kt @@ -32,6 +32,7 @@ import android.view.View import android.view.ViewGroup import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat +import androidx.fragment.app.viewModels import com.aurora.Constants import com.aurora.extensions.isRAndAbove import com.aurora.gplayapi.data.models.App @@ -40,11 +41,10 @@ import com.aurora.store.data.event.BusEvent import com.aurora.store.data.installer.AppInstaller import com.aurora.store.data.providers.BlacklistProvider import com.aurora.store.databinding.SheetAppMenuBinding -import com.aurora.store.util.ApkCopier import com.aurora.store.util.PackageUtil import com.aurora.extensions.openInfo import com.aurora.extensions.toast -import nl.komponents.kovenant.task +import com.aurora.store.viewmodel.sheets.SheetsViewModel import org.greenrobot.eventbus.EventBus class AppMenuSheet : BaseBottomSheet() { @@ -52,10 +52,12 @@ class AppMenuSheet : BaseBottomSheet() { private lateinit var B: SheetAppMenuBinding private lateinit var app: App + private val viewModel: SheetsViewModel by viewModels() + private val startForPermissions = registerForActivityResult(ActivityResultContracts.RequestPermission()) { if (it) { - task { ApkCopier(requireContext(), app.packageName).copy() } + viewModel.copyApk(requireContext(), app.packageName) } else { toast(R.string.permissions_denied) } @@ -123,10 +125,8 @@ class AppMenuSheet : BaseBottomSheet() { } R.id.action_uninstall -> { - task { - AppInstaller.getInstance(requireContext()) - .getPreferredInstaller().uninstall(app.packageName) - } + AppInstaller.getInstance(requireContext()) + .getPreferredInstaller().uninstall(app.packageName) } R.id.action_info -> { @@ -144,9 +144,7 @@ class AppMenuSheet : BaseBottomSheet() { if (!Environment.isExternalStorageManager()) { startActivity(Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)) } else { - task { - ApkCopier(requireContext(), app.packageName).copy() - } + viewModel.copyApk(requireContext(), app.packageName) } } else { if (ContextCompat.checkSelfPermission( @@ -154,7 +152,7 @@ class AppMenuSheet : BaseBottomSheet() { Manifest.permission.WRITE_EXTERNAL_STORAGE ) == PackageManager.PERMISSION_GRANTED ) { - task { ApkCopier(requireContext(), app.packageName).copy() } + viewModel.copyApk(requireContext(), app.packageName) } else { startForPermissions.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE) } @@ -164,4 +162,4 @@ class AppMenuSheet : BaseBottomSheet() { companion object { const val TAG = "APP_MENU_SHEET" } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt b/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt index 77eeda6a3..6913a298b 100644 --- a/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt +++ b/app/src/main/java/com/aurora/store/viewmodel/sheets/SheetsViewModel.kt @@ -8,6 +8,7 @@ import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.helpers.PurchaseHelper import com.aurora.store.data.event.BusEvent import com.aurora.store.data.providers.AuthProvider +import com.aurora.store.util.ApkCopier import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow @@ -39,4 +40,10 @@ class SheetsViewModel : ViewModel() { } } } + + fun copyApk(context: Context, packageName: String) { + viewModelScope.launch(Dispatchers.IO) { + ApkCopier(context, packageName).copy() + } + } }