AppMenuSheet: Drop dependency upon kovenant
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user