diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f38363ebb..974132309 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -109,7 +109,6 @@
-
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
index 86aad51f9..3d852608e 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/BaseFragment.kt
@@ -19,7 +19,6 @@
package com.aurora.store.view.ui.commons
-import android.app.ActivityOptions
import android.content.Intent
import androidx.annotation.LayoutRes
import androidx.fragment.app.Fragment
@@ -51,11 +50,12 @@ open class BaseFragment : Fragment {
}
fun openCategoryBrowseActivity(category: Category) {
- val intent = Intent(context, CategoryBrowseActivity::class.java)
- intent.putExtra(Constants.STRING_EXTRA, category.title)
- intent.putExtra(Constants.BROWSE_EXTRA, category.browseUrl)
- val options = ActivityOptions.makeSceneTransitionAnimation(requireActivity())
- startActivity(intent, options.toBundle())
+ findNavController().navigate(
+ MobileNavigationDirections.actionGlobalCategoryBrowseFragment(
+ category.title,
+ category.browseUrl
+ )
+ )
}
fun openStreamBrowseActivity(browseUrl: String, title: String = "") {
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseActivity.kt b/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
similarity index 68%
rename from app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
index a265318aa..44900e9aa 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
@@ -20,9 +20,11 @@
package com.aurora.store.view.ui.commons
import android.os.Bundle
+import android.view.View
import android.widget.Toast
import androidx.lifecycle.ViewModelProvider
-import com.aurora.Constants
+import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.StreamBundle
import com.aurora.gplayapi.data.models.StreamCluster
@@ -36,78 +38,53 @@ import com.aurora.store.view.ui.sheets.AppPeekDialogSheet
import com.aurora.store.viewmodel.subcategory.SubCategoryClusterViewModel
-class CategoryBrowseActivity : BaseActivity(), GenericCarouselController.Callbacks {
+class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
+ GenericCarouselController.Callbacks {
+
+ private var _binding: ActivityGenericRecyclerBinding? = null
+ private val binding: ActivityGenericRecyclerBinding
+ get() = _binding!!
+
+ private val args: CategoryBrowseFragmentArgs by navArgs()
- lateinit var B: ActivityGenericRecyclerBinding
lateinit var C: GenericCarouselController
lateinit var VM: SubCategoryClusterViewModel
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
- lateinit var title: String
- lateinit var homeUrl: String
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
- override fun onConnected() {
- hideNetworkConnectivitySheet()
- }
-
- override fun onDisconnected() {
- showNetworkConnectivitySheet()
- }
-
- override fun onReconnected() {
-
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- B = ActivityGenericRecyclerBinding.inflate(layoutInflater)
+ _binding = ActivityGenericRecyclerBinding.bind(view)
C = CategoryCarouselController(this)
VM = ViewModelProvider(this)[SubCategoryClusterViewModel::class.java]
- setContentView(B.root)
-
- attachToolbar()
- attachRecycler()
-
- intent.apply {
- homeUrl = getStringExtra(Constants.BROWSE_EXTRA).toString()
- title = getStringExtra(Constants.STRING_EXTRA).toString()
- VM.observeCategory(homeUrl)
- updateTitle(title)
+ // Toolbar
+ binding.layoutToolbarAction.apply {
+ txtTitle.text = args.title
+ imgActionPrimary.setOnClickListener { findNavController().navigateUp() }
}
- updateController(null)
- }
+ // RecyclerView
+ binding.recycler.setController(C)
- private fun updateTitle(title: String) {
- B.layoutToolbarAction.txtTitle.text = title
- }
-
- private fun attachToolbar() {
- B.layoutToolbarAction.imgActionPrimary.setOnClickListener {
- finishAfterTransition()
- }
- }
-
- private fun attachRecycler() {
-
- B.recycler.setController(C)
-
- VM.liveData.observe(this) {
+ VM.liveData.observe(viewLifecycleOwner) {
when (it) {
is ViewState.Empty -> {
}
+
is ViewState.Loading -> {
updateController(null)
}
+
is ViewState.Error -> {
}
+
is ViewState.Success<*> -> {
updateController(it.data as StreamBundle)
}
+
else -> {}
}
}
@@ -120,8 +97,15 @@ class CategoryBrowseActivity : BaseActivity(), GenericCarouselController.Callbac
}
endlessRecyclerOnScrollListener.disable()
+ binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
- B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
+ VM.observeCategory(args.browseUrl)
+ updateController(null)
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
}
private fun updateController(streamBundle: StreamBundle?) {
@@ -134,7 +118,11 @@ class CategoryBrowseActivity : BaseActivity(), GenericCarouselController.Callbac
if (streamCluster.clusterBrowseUrl.isNotEmpty())
openStreamBrowseActivity(streamCluster.clusterBrowseUrl)
else
- Toast.makeText(this, getString(R.string.toast_page_unavailable), Toast.LENGTH_SHORT)
+ Toast.makeText(
+ requireContext(),
+ getString(R.string.toast_page_unavailable),
+ Toast.LENGTH_SHORT
+ )
.show()
}
@@ -147,6 +135,6 @@ class CategoryBrowseActivity : BaseActivity(), GenericCarouselController.Callbac
}
override fun onAppLongClick(app: App) {
- AppPeekDialogSheet.newInstance(app).show(supportFragmentManager, "APDS")
+ AppPeekDialogSheet.newInstance(app).show(childFragmentManager, "APDS")
}
}
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 0d8dd5ced..7b75e9881 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -101,7 +101,7 @@
+ tools:layout="@layout/fragment_details">
@@ -109,7 +109,21 @@
app:action="android.intent.action.VIEW"
app:uri="play.google.com/store/apps/details?id={packageName}" />
+
+
+
+
+