AppMenuSheet: Migrate to navigation components
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,4 +93,8 @@ open class BaseFragment : Fragment {
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun openAppMenuSheet(app: App) {
|
||||
findNavController().navigate(MobileNavigationDirections.actionGlobalAppMenuSheet(app))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user