InstallErrorDialogSheet: Migrate to navigation components
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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 -> {
|
||||||
|
|||||||
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user