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

View File

@@ -26,10 +26,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.aurora.Constants import androidx.navigation.fragment.navArgs
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.SheetManualDownloadBinding import com.aurora.store.databinding.SheetManualDownloadBinding
import com.aurora.store.viewmodel.sheets.SheetsViewModel import com.aurora.store.viewmodel.sheets.SheetsViewModel
@@ -40,25 +39,9 @@ import kotlinx.coroutines.launch
class ManualDownloadSheet : BaseBottomSheet() { class ManualDownloadSheet : BaseBottomSheet() {
private lateinit var B: SheetManualDownloadBinding private lateinit var B: SheetManualDownloadBinding
private lateinit var app: App
private val viewModel: SheetsViewModel by viewModels() private val viewModel: SheetsViewModel by viewModels()
private val args: ManualDownloadSheetArgs by navArgs()
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))
}
}
}
}
override fun onCreateContentView( override fun onCreateContentView(
inflater: LayoutInflater, inflater: LayoutInflater,
@@ -71,17 +54,11 @@ class ManualDownloadSheet : BaseBottomSheet() {
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) { override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val bundle = arguments
bundle?.let { isCancelable = false
val rawApp = bundle.getString(Constants.STRING_APP, "{}")
app = gson.fromJson(rawApp, App::class.java) inflateData()
if (app.packageName.isNotEmpty()) { attachActions()
inflateData()
attachActions()
} else {
dismissAllowingStateLoss()
}
}
} }
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@@ -99,17 +76,17 @@ class ManualDownloadSheet : BaseBottomSheet() {
} }
private fun inflateData() { private fun inflateData() {
B.imgIcon.load(app.iconArtwork.url) { B.imgIcon.load(args.app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transform(RoundedCorners(32))
} }
B.txtLine1.text = app.displayName B.txtLine1.text = args.app.displayName
B.txtLine2.text = app.packageName B.txtLine2.text = args.app.packageName
B.txtLine3.text = ("${app.versionName} (${app.versionCode})") B.txtLine3.text = ("${args.app.versionName} (${args.app.versionCode})")
B.versionCodeLayout.hint = "${app.versionCode}" B.versionCodeLayout.hint = "${args.app.versionCode}"
B.versionCodeLayout.editText?.setText("${app.versionCode}") B.versionCodeLayout.editText?.setText("${args.app.versionCode}")
} }
private fun attachActions() { private fun attachActions() {
@@ -118,7 +95,7 @@ class ManualDownloadSheet : BaseBottomSheet() {
if (customVersionString.isEmpty()) if (customVersionString.isEmpty())
B.versionCodeInp.error = "Enter version code" B.versionCodeInp.error = "Enter version code"
else { 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:argType="com.aurora.gplayapi.data.models.App"
app:nullable="true" app:nullable="true"
android:defaultValue="@null" /> android:defaultValue="@null" />
<action
android:id="@+id/action_appDetailsFragment_to_manualDownloadSheet"
app:destination="@id/manualDownloadSheet" />
</fragment> </fragment>
<fragment <fragment
android:id="@+id/categoryBrowseFragment" android:id="@+id/categoryBrowseFragment"
@@ -369,4 +372,13 @@
android:name="com.aurora.store.view.ui.sheets.FilterSheet" android:name="com.aurora.store.view.ui.sheets.FilterSheet"
android:label="FilterSheet" android:label="FilterSheet"
tools:layout="@layout/sheet_filter" /> 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> </navigation>