InstallErrorDialogSheet: Migrate to navigation components

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-07 15:49:15 +05:30
parent 9e4d14ac6e
commit 6e11229f49
3 changed files with 37 additions and 65 deletions

View File

@@ -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.ScreenshotView
import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_ import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_
import com.aurora.store.view.ui.commons.BaseFragment 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.AppDetailsViewModel
import com.aurora.store.viewmodel.details.DetailsClusterViewModel import com.aurora.store.viewmodel.details.DetailsClusterViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@@ -221,16 +220,14 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
} }
is InstallerEvent.Failed -> { is InstallerEvent.Failed -> {
if (app.packageName == event.packageName) { findNavController().navigate(
InstallErrorDialogSheet.newInstance( AppDetailsFragmentDirections.actionAppDetailsFragmentToInstallErrorDialogSheet(
app, app,
event.packageName, event.packageName ?: "",
event.error, event.error ?: "",
event.extra event.extra ?: ""
).show(childFragmentManager, "SED") )
attachActions() )
updateActionState(State.IDLE)
}
} }
else -> { else -> {

View File

@@ -23,11 +23,10 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.aurora.Constants import androidx.navigation.fragment.navArgs
import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.load import com.aurora.extensions.load
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetInstallErrorBinding import com.aurora.store.databinding.SheetInstallErrorBinding
import com.bumptech.glide.load.resource.bitmap.CircleCrop import com.bumptech.glide.load.resource.bitmap.CircleCrop
@@ -36,35 +35,7 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
private lateinit var B: SheetInstallErrorBinding private lateinit var B: SheetInstallErrorBinding
private lateinit var app: App private val args: InstallErrorDialogSheetArgs by navArgs()
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)
}
}
}
}
override fun onCreateContentView( override fun onCreateContentView(
inflater: LayoutInflater, inflater: LayoutInflater,
@@ -72,22 +43,7 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
B = SheetInstallErrorBinding.inflate(inflater, container, false) B = SheetInstallErrorBinding.inflate(inflater, container, false)
inflateData()
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()
}
}
attachAction() attachAction()
return B.root return B.root
@@ -98,13 +54,13 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
} }
private fun inflateData() { private fun inflateData() {
B.imgIcon.load(app.iconArtwork.url) { B.imgIcon.load(args.app.iconArtwork.url) {
transform(CircleCrop()) transform(CircleCrop())
} }
B.txtLine1.text = app.displayName B.txtLine1.text = args.app.displayName
B.txtLine2.text = error B.txtLine2.text = args.error
B.txtLine3.text = extra B.txtLine3.text = args.extra
} }
private fun attachAction() { private fun attachAction() {
@@ -113,10 +69,8 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
} }
B.btnSecondary.setOnClickListener { B.btnSecondary.setOnClickListener {
if (::extra.isInitialized) { requireContext().copyToClipBoard(args.extra)
requireContext().copyToClipBoard(extra) requireContext().toast(R.string.toast_clipboard_copied)
requireContext().toast(R.string.toast_clipboard_copied)
}
} }
} }
} }

View File

@@ -196,6 +196,9 @@
<action <action
android:id="@+id/action_appDetailsFragment_to_permissionBottomSheet" android:id="@+id/action_appDetailsFragment_to_permissionBottomSheet"
app:destination="@id/permissionBottomSheet" /> app:destination="@id/permissionBottomSheet" />
<action
android:id="@+id/action_appDetailsFragment_to_installErrorDialogSheet"
app:destination="@id/installErrorDialogSheet" />
</fragment> </fragment>
<fragment <fragment
android:id="@+id/categoryBrowseFragment" android:id="@+id/categoryBrowseFragment"
@@ -413,4 +416,22 @@
android:name="com.aurora.store.view.ui.sheets.DeviceMiuiSheet" android:name="com.aurora.store.view.ui.sheets.DeviceMiuiSheet"
android:label="DeviceMiuiSheet" android:label="DeviceMiuiSheet"
tools:layout="@layout/sheet_device_miui" /> tools:layout="@layout/sheet_device_miui" />
<dialog
android:id="@+id/installErrorDialogSheet"
android:name="com.aurora.store.view.ui.sheets.InstallErrorDialogSheet"
android:label="InstallErrorDialogSheet"
tools:layout="@layout/sheet_install_error">
<argument
android:name="app"
app:argType="com.aurora.gplayapi.data.models.App" />
<argument
android:name="title"
app:argType="string" />
<argument
android:name="error"
app:argType="string" />
<argument
android:name="extra"
app:argType="string" />
</dialog>
</navigation> </navigation>