diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt index 7c5f8f482..febbff23f 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsFragment.kt @@ -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 -> { diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/ManualDownloadSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/ManualDownloadSheet.kt index adf71c1b1..61ad8d563 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/ManualDownloadSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/ManualDownloadSheet.kt @@ -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()) } } diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 581b68c0f..bec258699 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -186,6 +186,9 @@ app:argType="com.aurora.gplayapi.data.models.App" app:nullable="true" android:defaultValue="@null" /> + + + +