diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
index 1252ed740..647c39707 100644
--- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt
@@ -90,7 +90,6 @@ import com.aurora.store.view.epoxy.views.details.ReviewViewModel_
import com.aurora.store.view.epoxy.views.details.ScreenshotView
import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_
import com.aurora.store.view.ui.commons.BaseFragment
-import com.aurora.store.view.ui.sheets.InstallErrorDialogSheet
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.DetailsClusterViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -221,16 +220,14 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
}
is InstallerEvent.Failed -> {
- if (app.packageName == event.packageName) {
- InstallErrorDialogSheet.newInstance(
+ findNavController().navigate(
+ AppDetailsFragmentDirections.actionAppDetailsFragmentToInstallErrorDialogSheet(
app,
- event.packageName,
- event.error,
- event.extra
- ).show(childFragmentManager, "SED")
- attachActions()
- updateActionState(State.IDLE)
- }
+ event.packageName ?: "",
+ event.error ?: "",
+ event.extra ?: ""
+ )
+ )
}
else -> {
diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/InstallErrorDialogSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/InstallErrorDialogSheet.kt
index 77f814298..58c9c27e2 100644
--- a/app/src/main/java/com/aurora/store/view/ui/sheets/InstallErrorDialogSheet.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/sheets/InstallErrorDialogSheet.kt
@@ -23,11 +23,10 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import com.aurora.Constants
+import androidx.navigation.fragment.navArgs
import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.load
import com.aurora.extensions.toast
-import com.aurora.gplayapi.data.models.App
import com.aurora.store.R
import com.aurora.store.databinding.SheetInstallErrorBinding
import com.bumptech.glide.load.resource.bitmap.CircleCrop
@@ -36,35 +35,7 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
private lateinit var B: SheetInstallErrorBinding
- private lateinit var app: App
- private lateinit var title: String
- private lateinit var error: String
- private lateinit var extra: String
-
- private var rawApp = String()
-
- companion object {
- private const val DIALOG_TITLE = "DIALOG_TITLE"
- private const val DIALOG_ERROR = "DIALOG_ERROR"
- private const val DIALOG_EXTRA = "DIALOG_EXTRA"
-
- @JvmStatic
- fun newInstance(
- app: App,
- title: String?,
- error: String?,
- extra: String?
- ): InstallErrorDialogSheet {
- return InstallErrorDialogSheet().apply {
- arguments = Bundle().apply {
- putString(Constants.STRING_EXTRA, gson.toJson(app))
- putString(DIALOG_TITLE, title)
- putString(DIALOG_ERROR, error)
- putString(DIALOG_EXTRA, extra)
- }
- }
- }
- }
+ private val args: InstallErrorDialogSheetArgs by navArgs()
override fun onCreateContentView(
inflater: LayoutInflater,
@@ -72,22 +43,7 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
savedInstanceState: Bundle?
): View {
B = SheetInstallErrorBinding.inflate(inflater, container, false)
-
- val bundle = arguments
- bundle?.let {
- rawApp = bundle.getString(Constants.STRING_EXTRA, "{}")
- app = gson.fromJson(rawApp, App::class.java)
- title = bundle.getString(DIALOG_TITLE, "")
- error = bundle.getString(DIALOG_ERROR, "")
- extra = bundle.getString(DIALOG_EXTRA, "")
-
- if (app.packageName.isNotEmpty()) {
- inflateData()
- } else {
- dismissAllowingStateLoss()
- }
- }
-
+ inflateData()
attachAction()
return B.root
@@ -98,13 +54,13 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
}
private fun inflateData() {
- B.imgIcon.load(app.iconArtwork.url) {
+ B.imgIcon.load(args.app.iconArtwork.url) {
transform(CircleCrop())
}
- B.txtLine1.text = app.displayName
- B.txtLine2.text = error
- B.txtLine3.text = extra
+ B.txtLine1.text = args.app.displayName
+ B.txtLine2.text = args.error
+ B.txtLine3.text = args.extra
}
private fun attachAction() {
@@ -113,10 +69,8 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
}
B.btnSecondary.setOnClickListener {
- if (::extra.isInitialized) {
- requireContext().copyToClipBoard(extra)
- requireContext().toast(R.string.toast_clipboard_copied)
- }
+ requireContext().copyToClipBoard(args.extra)
+ requireContext().toast(R.string.toast_clipboard_copied)
}
}
}
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index e33edf671..77b48523c 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -196,6 +196,9 @@
+
+