ManualDownloadSheet: Migrate to navigation component

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-07 10:56:47 +05:30
parent e1dda57471
commit 7847a10007
3 changed files with 30 additions and 41 deletions

View File

@@ -91,7 +91,6 @@ 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.view.ui.sheets.ManualDownloadSheet
import com.aurora.store.view.ui.sheets.PermissionBottomSheet
import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.DetailsClusterViewModel
@@ -384,9 +383,10 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
}
R.id.menu_download_manual -> {
val sheet = ManualDownloadSheet.newInstance(app)
sheet.isCancelable = false
sheet.show(childFragmentManager, ManualDownloadSheet.TAG)
findNavController().navigate(
AppDetailsFragmentDirections
.actionAppDetailsFragmentToManualDownloadSheet(app)
)
}
R.id.menu_download_manager -> {

View File

@@ -26,10 +26,9 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import com.aurora.Constants
import androidx.navigation.fragment.navArgs
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.SheetManualDownloadBinding
import com.aurora.store.viewmodel.sheets.SheetsViewModel
@@ -40,25 +39,9 @@ import kotlinx.coroutines.launch
class ManualDownloadSheet : BaseBottomSheet() {
private lateinit var B: SheetManualDownloadBinding
private lateinit var app: App
private val viewModel: SheetsViewModel by viewModels()
companion object {
const val TAG = "ManualDownloadSheet"
@JvmStatic
fun newInstance(
app: App
): ManualDownloadSheet {
return ManualDownloadSheet().apply {
arguments = Bundle().apply {
putString(Constants.STRING_APP, gson.toJson(app))
}
}
}
}
private val args: ManualDownloadSheetArgs by navArgs()
override fun onCreateContentView(
inflater: LayoutInflater,
@@ -71,17 +54,11 @@ class ManualDownloadSheet : BaseBottomSheet() {
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val bundle = arguments
bundle?.let {
val rawApp = bundle.getString(Constants.STRING_APP, "{}")
app = gson.fromJson(rawApp, App::class.java)
if (app.packageName.isNotEmpty()) {
inflateData()
attachActions()
} else {
dismissAllowingStateLoss()
}
}
isCancelable = false
inflateData()
attachActions()
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@@ -99,17 +76,17 @@ class ManualDownloadSheet : BaseBottomSheet() {
}
private fun inflateData() {
B.imgIcon.load(app.iconArtwork.url) {
B.imgIcon.load(args.app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32))
}
B.txtLine1.text = app.displayName
B.txtLine2.text = app.packageName
B.txtLine3.text = ("${app.versionName} (${app.versionCode})")
B.txtLine1.text = args.app.displayName
B.txtLine2.text = args.app.packageName
B.txtLine3.text = ("${args.app.versionName} (${args.app.versionCode})")
B.versionCodeLayout.hint = "${app.versionCode}"
B.versionCodeLayout.editText?.setText("${app.versionCode}")
B.versionCodeLayout.hint = "${args.app.versionCode}"
B.versionCodeLayout.editText?.setText("${args.app.versionCode}")
}
private fun attachActions() {
@@ -118,7 +95,7 @@ class ManualDownloadSheet : BaseBottomSheet() {
if (customVersionString.isEmpty())
B.versionCodeInp.error = "Enter version code"
else {
viewModel.purchase(requireContext(), app, customVersionString.toInt())
viewModel.purchase(requireContext(), args.app, customVersionString.toInt())
}
}

View File

@@ -186,6 +186,9 @@
app:argType="com.aurora.gplayapi.data.models.App"
app:nullable="true"
android:defaultValue="@null" />
<action
android:id="@+id/action_appDetailsFragment_to_manualDownloadSheet"
app:destination="@id/manualDownloadSheet" />
</fragment>
<fragment
android:id="@+id/categoryBrowseFragment"
@@ -369,4 +372,13 @@
android:name="com.aurora.store.view.ui.sheets.FilterSheet"
android:label="FilterSheet"
tools:layout="@layout/sheet_filter" />
<dialog
android:id="@+id/manualDownloadSheet"
android:name="com.aurora.store.view.ui.sheets.ManualDownloadSheet"
android:label="ManualDownloadSheet"
tools:layout="@layout/sheet_manual_download">
<argument
android:name="app"
app:argType="com.aurora.gplayapi.data.models.App" />
</dialog>
</navigation>