diff --git a/app/src/main/java/com/aurora/store/view/ui/all/InstalledAppsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/all/InstalledAppsFragment.kt
index d56c4a307..8ae8185a1 100644
--- a/app/src/main/java/com/aurora/store/view/ui/all/InstalledAppsFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/all/InstalledAppsFragment.kt
@@ -24,7 +24,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
-import com.aurora.Constants
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.databinding.FragmentUpdatesBinding
@@ -32,7 +31,6 @@ import com.aurora.store.view.epoxy.views.app.AppListViewModel_
import com.aurora.store.view.epoxy.views.HeaderViewModel_
import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
import com.aurora.store.view.ui.commons.BaseFragment
-import com.aurora.store.view.ui.sheets.AppMenuSheet
import com.aurora.store.viewmodel.all.InstalledViewModel
class InstalledAppsFragment : BaseFragment() {
@@ -112,19 +110,4 @@ class InstalledAppsFragment : BaseFragment() {
}
}
}
-
- private fun openAppMenuSheet(app: App) {
- val fragment = childFragmentManager.findFragmentByTag(AppMenuSheet.TAG)
- if (fragment != null)
- childFragmentManager.beginTransaction().remove(fragment)
-
- AppMenuSheet().apply {
- arguments = Bundle().apply {
- putString(Constants.STRING_EXTRA, gson.toJson(app))
- }
- }.show(
- childFragmentManager,
- AppMenuSheet.TAG
- )
- }
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/all/PurchasedAppsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/all/PurchasedAppsFragment.kt
index da532c779..9410e20aa 100644
--- a/app/src/main/java/com/aurora/store/view/ui/all/PurchasedAppsFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/all/PurchasedAppsFragment.kt
@@ -24,7 +24,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.ViewModelProvider
-import com.aurora.Constants
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.databinding.FragmentUpdatesBinding
@@ -33,7 +32,6 @@ import com.aurora.store.view.epoxy.views.app.AppListViewModel_
import com.aurora.store.view.epoxy.views.HeaderViewModel_
import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
import com.aurora.store.view.ui.commons.BaseFragment
-import com.aurora.store.view.ui.sheets.AppMenuSheet
import com.aurora.store.viewmodel.all.PurchasedViewModel
class PurchasedAppsFragment : BaseFragment() {
@@ -126,19 +124,4 @@ class PurchasedAppsFragment : BaseFragment() {
}
}
}
-
- private fun openAppMenuSheet(app: App) {
- val fragment = childFragmentManager.findFragmentByTag(AppMenuSheet.TAG)
- if (fragment != null)
- childFragmentManager.beginTransaction().remove(fragment)
-
- AppMenuSheet().apply {
- arguments = Bundle().apply {
- putString(Constants.STRING_EXTRA, gson.toJson(app))
- }
- }.show(
- childFragmentManager,
- AppMenuSheet.TAG
- )
- }
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
index df2d0cae5..291631305 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
@@ -93,4 +93,8 @@ open class BaseFragment : Fragment {
)
)
}
+
+ fun openAppMenuSheet(app: App) {
+ findNavController().navigate(MobileNavigationDirections.actionGlobalAppMenuSheet(app))
+ }
}
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 d56746741..e1ac5722b 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
@@ -33,31 +33,30 @@ 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 androidx.navigation.fragment.navArgs
import com.aurora.extensions.isRAndAbove
-import com.aurora.gplayapi.data.models.App
+import com.aurora.extensions.openInfo
+import com.aurora.extensions.toast
import com.aurora.store.R
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.PackageUtil
-import com.aurora.extensions.openInfo
-import com.aurora.extensions.toast
import com.aurora.store.viewmodel.sheets.SheetsViewModel
import org.greenrobot.eventbus.EventBus
class AppMenuSheet : BaseBottomSheet() {
private lateinit var B: SheetAppMenuBinding
- private lateinit var app: App
private val viewModel: SheetsViewModel by viewModels()
+ private val args: AppMenuSheetArgs by navArgs()
private val startForPermissions =
registerForActivityResult(ActivityResultContracts.RequestPermission()) {
if (it) {
- viewModel.copyApk(requireContext(), app.packageName)
+ viewModel.copyApk(requireContext(), args.app.packageName)
} else {
toast(R.string.permissions_denied)
}
@@ -74,20 +73,9 @@ class AppMenuSheet : BaseBottomSheet() {
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- if (arguments != null) {
- val bundle = arguments
- val stringExtra = bundle!!.getString(Constants.STRING_EXTRA)
- app = gson.fromJson(stringExtra, App::class.java)
- setupNavigationView()
- } else {
- dismissAllowingStateLoss()
- }
- }
-
- private fun setupNavigationView() {
val blacklistProvider = BlacklistProvider.with(requireContext())
- val isBlacklisted: Boolean = blacklistProvider.isBlacklisted(app.packageName)
+ val isBlacklisted: Boolean = blacklistProvider.isBlacklisted(args.app.packageName)
with(B.navigationView) {
//Switch strings for Add/Remove Blacklist
@@ -100,7 +88,7 @@ class AppMenuSheet : BaseBottomSheet() {
)
//Show/Hide actions based on installed status
- val installed = PackageUtil.isInstalled(requireContext(), app.packageName)
+ val installed = PackageUtil.isInstalled(requireContext(), args.app.packageName)
menu.findItem(R.id.action_uninstall).isVisible = installed
menu.findItem(R.id.action_local).isVisible = installed
@@ -109,15 +97,15 @@ class AppMenuSheet : BaseBottomSheet() {
R.id.action_blacklist -> {
if (isBlacklisted) {
- blacklistProvider.whitelist(app.packageName)
+ blacklistProvider.whitelist(args.app.packageName)
requireContext().toast(R.string.toast_apk_whitelisted)
} else {
- blacklistProvider.blacklist(app.packageName)
+ blacklistProvider.blacklist(args.app.packageName)
requireContext().toast(R.string.toast_apk_blacklisted)
}
EventBus.getDefault()
- .post(BusEvent.Blacklisted(app.packageName, ""))
+ .post(BusEvent.Blacklisted(args.app.packageName, ""))
}
R.id.action_local -> {
@@ -126,11 +114,11 @@ class AppMenuSheet : BaseBottomSheet() {
R.id.action_uninstall -> {
AppInstaller.getInstance(requireContext())
- .getPreferredInstaller().uninstall(app.packageName)
+ .getPreferredInstaller().uninstall(args.app.packageName)
}
R.id.action_info -> {
- requireContext().openInfo(app.packageName)
+ requireContext().openInfo(args.app.packageName)
}
}
dismissAllowingStateLoss()
@@ -144,7 +132,7 @@ class AppMenuSheet : BaseBottomSheet() {
if (!Environment.isExternalStorageManager()) {
startActivity(Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION))
} else {
- viewModel.copyApk(requireContext(), app.packageName)
+ viewModel.copyApk(requireContext(), args.app.packageName)
}
} else {
if (ContextCompat.checkSelfPermission(
@@ -152,7 +140,7 @@ class AppMenuSheet : BaseBottomSheet() {
Manifest.permission.WRITE_EXTERNAL_STORAGE
) == PackageManager.PERMISSION_GRANTED
) {
- viewModel.copyApk(requireContext(), app.packageName)
+ viewModel.copyApk(requireContext(), args.app.packageName)
} else {
startForPermissions.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt
index 3609f70a7..37fd2c3fc 100644
--- a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt
@@ -34,7 +34,6 @@ import android.view.ViewGroup
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.lifecycle.ViewModelProvider
-import com.aurora.Constants
import com.aurora.extensions.isRAndAbove
import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.App
@@ -51,7 +50,6 @@ import com.aurora.store.view.epoxy.views.app.AppUpdateViewModel_
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
import com.aurora.store.view.ui.commons.BaseFragment
-import com.aurora.store.view.ui.sheets.AppMenuSheet
import com.aurora.store.viewmodel.all.UpdatesViewModel
import com.tonyodev.fetch2.AbstractFetchGroupListener
import com.tonyodev.fetch2.Download
@@ -331,19 +329,4 @@ class UpdatesFragment : BaseFragment() {
)
}
}
-
- private fun openAppMenuSheet(app: App) {
- val fragment = childFragmentManager.findFragmentByTag(AppMenuSheet.TAG)
- if (fragment != null)
- childFragmentManager.beginTransaction().remove(fragment)
-
- AppMenuSheet().apply {
- arguments = Bundle().apply {
- putString(Constants.STRING_EXTRA, gson.toJson(app))
- }
- }.show(
- childFragmentManager,
- AppMenuSheet.TAG
- )
- }
}
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index abd062a3c..c7789e19a 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -44,6 +44,9 @@
+
+