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 @@ + + + + + + +