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.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 -> {

View File

@@ -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)
}
}
}

View File

@@ -196,6 +196,9 @@
<action
android:id="@+id/action_appDetailsFragment_to_permissionBottomSheet"
app:destination="@id/permissionBottomSheet" />
<action
android:id="@+id/action_appDetailsFragment_to_installErrorDialogSheet"
app:destination="@id/installErrorDialogSheet" />
</fragment>
<fragment
android:id="@+id/categoryBrowseFragment"
@@ -413,4 +416,22 @@
android:name="com.aurora.store.view.ui.sheets.DeviceMiuiSheet"
android:label="DeviceMiuiSheet"
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>