AppMenuSheet: Drop dependency upon kovenant

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-07-20 14:24:24 +05:30
parent 7ac38778da
commit d351f3bf13
2 changed files with 17 additions and 12 deletions

View File

@@ -32,6 +32,7 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.viewModels
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.isRAndAbove import com.aurora.extensions.isRAndAbove
import com.aurora.gplayapi.data.models.App 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.installer.AppInstaller
import com.aurora.store.data.providers.BlacklistProvider import com.aurora.store.data.providers.BlacklistProvider
import com.aurora.store.databinding.SheetAppMenuBinding import com.aurora.store.databinding.SheetAppMenuBinding
import com.aurora.store.util.ApkCopier
import com.aurora.store.util.PackageUtil import com.aurora.store.util.PackageUtil
import com.aurora.extensions.openInfo import com.aurora.extensions.openInfo
import com.aurora.extensions.toast import com.aurora.extensions.toast
import nl.komponents.kovenant.task import com.aurora.store.viewmodel.sheets.SheetsViewModel
import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.EventBus
class AppMenuSheet : BaseBottomSheet() { class AppMenuSheet : BaseBottomSheet() {
@@ -52,10 +52,12 @@ class AppMenuSheet : BaseBottomSheet() {
private lateinit var B: SheetAppMenuBinding private lateinit var B: SheetAppMenuBinding
private lateinit var app: App private lateinit var app: App
private val viewModel: SheetsViewModel by viewModels()
private val startForPermissions = private val startForPermissions =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { registerForActivityResult(ActivityResultContracts.RequestPermission()) {
if (it) { if (it) {
task { ApkCopier(requireContext(), app.packageName).copy() } viewModel.copyApk(requireContext(), app.packageName)
} else { } else {
toast(R.string.permissions_denied) toast(R.string.permissions_denied)
} }
@@ -123,10 +125,8 @@ class AppMenuSheet : BaseBottomSheet() {
} }
R.id.action_uninstall -> { R.id.action_uninstall -> {
task { AppInstaller.getInstance(requireContext())
AppInstaller.getInstance(requireContext()) .getPreferredInstaller().uninstall(app.packageName)
.getPreferredInstaller().uninstall(app.packageName)
}
} }
R.id.action_info -> { R.id.action_info -> {
@@ -144,9 +144,7 @@ class AppMenuSheet : BaseBottomSheet() {
if (!Environment.isExternalStorageManager()) { if (!Environment.isExternalStorageManager()) {
startActivity(Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)) startActivity(Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION))
} else { } else {
task { viewModel.copyApk(requireContext(), app.packageName)
ApkCopier(requireContext(), app.packageName).copy()
}
} }
} else { } else {
if (ContextCompat.checkSelfPermission( if (ContextCompat.checkSelfPermission(
@@ -154,7 +152,7 @@ class AppMenuSheet : BaseBottomSheet() {
Manifest.permission.WRITE_EXTERNAL_STORAGE Manifest.permission.WRITE_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED ) == PackageManager.PERMISSION_GRANTED
) { ) {
task { ApkCopier(requireContext(), app.packageName).copy() } viewModel.copyApk(requireContext(), app.packageName)
} else { } else {
startForPermissions.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE) startForPermissions.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
} }
@@ -164,4 +162,4 @@ class AppMenuSheet : BaseBottomSheet() {
companion object { companion object {
const val TAG = "APP_MENU_SHEET" const val TAG = "APP_MENU_SHEET"
} }
} }

View File

@@ -8,6 +8,7 @@ import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.helpers.PurchaseHelper import com.aurora.gplayapi.helpers.PurchaseHelper
import com.aurora.store.data.event.BusEvent import com.aurora.store.data.event.BusEvent
import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.util.ApkCopier
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow 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()
}
}
} }