diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b1e8eebea..7be6ba549 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -94,7 +94,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 19e0bad7e..97b892ff4 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,16 +19,12 @@
package com.aurora.store.view.ui.commons
-import android.content.Intent
import androidx.annotation.LayoutRes
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
-import com.aurora.Constants
-import com.aurora.extensions.getEmptyActivityBundle
import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.Category
import com.aurora.store.MobileNavigationDirections
-import com.aurora.store.view.ui.details.DevProfileFragment
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.lang.reflect.Modifier
@@ -58,7 +54,7 @@ open class BaseFragment : Fragment {
)
}
- fun openStreamBrowseActivity(browseUrl: String, title: String = "") {
+ fun openStreamBrowseFragment(browseUrl: String, title: String = "") {
if (browseUrl.lowercase().contains("expanded")) {
findNavController().navigate(
MobileNavigationDirections.actionGlobalExpandedStreamBrowseFragment(
@@ -74,10 +70,12 @@ open class BaseFragment : Fragment {
)
)
} else {
- val intent = Intent(requireContext(), StreamBrowseActivity::class.java)
- intent.putExtra(Constants.BROWSE_EXTRA, browseUrl)
- intent.putExtra(Constants.STRING_EXTRA, title)
- startActivity(intent, requireContext().getEmptyActivityBundle())
+ findNavController().navigate(
+ MobileNavigationDirections.actionGlobalStreamBrowseFragment(
+ browseUrl,
+ title
+ )
+ )
}
}
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
index 44900e9aa..e96af5393 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/CategoryBrowseFragment.kt
@@ -116,7 +116,7 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
override fun onHeaderClicked(streamCluster: StreamCluster) {
if (streamCluster.clusterBrowseUrl.isNotEmpty())
- openStreamBrowseActivity(streamCluster.clusterBrowseUrl)
+ openStreamBrowseFragment(streamCluster.clusterBrowseUrl)
else
Toast.makeText(
requireContext(),
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/EarlyAccessFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/EarlyAccessFragment.kt
index a85edad3b..1c7791ada 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/EarlyAccessFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/EarlyAccessFragment.kt
@@ -122,7 +122,7 @@ class EarlyAccessFragment : BaseFragment(), GenericCarouselController.Callbacks
override fun onHeaderClicked(streamCluster: StreamCluster) {
if (streamCluster.clusterBrowseUrl.isNotEmpty())
- openStreamBrowseActivity(streamCluster.clusterBrowseUrl)
+ openStreamBrowseFragment(streamCluster.clusterBrowseUrl)
}
override fun onClusterScrolled(streamCluster: StreamCluster) {
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt b/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt
index 9f16b73b1..d0672da7d 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/ForYouFragment.kt
@@ -33,7 +33,6 @@ import com.aurora.store.data.ViewState
import com.aurora.store.databinding.FragmentForYouBinding
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
import com.aurora.store.view.epoxy.controller.GenericCarouselController
-import com.aurora.store.view.ui.sheets.AppPeekDialogSheet
import com.aurora.store.viewmodel.homestream.AppsForYouViewModel
import com.aurora.store.viewmodel.homestream.BaseClusterViewModel
import com.aurora.store.viewmodel.homestream.GamesForYouViewModel
@@ -138,7 +137,7 @@ class ForYouFragment : BaseFragment(), GenericCarouselController.Callbacks {
override fun onHeaderClicked(streamCluster: StreamCluster) {
if (streamCluster.clusterBrowseUrl.isNotEmpty())
- openStreamBrowseActivity(streamCluster.clusterBrowseUrl, streamCluster.clusterTitle)
+ openStreamBrowseFragment(streamCluster.clusterBrowseUrl, streamCluster.clusterTitle)
}
override fun onClusterScrolled(streamCluster: StreamCluster) {
diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseActivity.kt b/app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseFragment.kt
similarity index 64%
rename from app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseActivity.kt
rename to app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseFragment.kt
index 769698456..340bce838 100644
--- a/app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/commons/StreamBrowseFragment.kt
@@ -20,9 +20,13 @@
package com.aurora.store.view.ui.commons
import android.os.Bundle
+import android.view.View
import androidx.lifecycle.ViewModelProvider
+import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
import com.aurora.Constants
import com.aurora.gplayapi.data.models.StreamCluster
+import com.aurora.store.R
import com.aurora.store.databinding.ActivityGenericRecyclerBinding
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
import com.aurora.store.view.epoxy.views.AppProgressViewModel_
@@ -31,9 +35,14 @@ import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
import com.aurora.store.viewmodel.browse.StreamBrowseViewModel
-class StreamBrowseActivity : BaseActivity() {
+class StreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) {
+
+ private var _binding: ActivityGenericRecyclerBinding? = null
+ private val binding: ActivityGenericRecyclerBinding
+ get() = _binding!!
+
+ private val args: StreamBrowseFragmentArgs by navArgs()
- lateinit var B: ActivityGenericRecyclerBinding
lateinit var VM: StreamBrowseViewModel
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
@@ -41,69 +50,46 @@ class StreamBrowseActivity : BaseActivity() {
lateinit var title: String
lateinit var cluster: StreamCluster
- override fun onConnected() {
- hideNetworkConnectivitySheet()
- }
-
- override fun onDisconnected() {
- showNetworkConnectivitySheet()
- }
-
- override fun onReconnected() {
-
- }
-
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- B = ActivityGenericRecyclerBinding.inflate(layoutInflater)
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ _binding = ActivityGenericRecyclerBinding.bind(view)
VM = ViewModelProvider(this)[StreamBrowseViewModel::class.java]
- setContentView(B.root)
+ // Toolbar
+ binding.layoutToolbarAction.apply {
+ txtTitle.text = args.title
+ imgActionPrimary.setOnClickListener {
+ findNavController().navigateUp()
+ }
+ }
- attachToolbar()
-
- VM.liveData.observe(this) {
- if (!::cluster.isInitialized)
- attachRecycler()
+ VM.liveData.observe(viewLifecycleOwner) {
+ if (!::cluster.isInitialized) {
+ endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
+ override fun onLoadMore(currentPage: Int) {
+ VM.nextCluster()
+ }
+ }
+ binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
+ }
cluster = it
updateController(cluster)
- updateTitle(cluster)
- }
-
- intent.apply {
- getStringExtra(Constants.BROWSE_EXTRA)?.let {
- VM.getStreamBundle(it)
- }
+ binding.layoutToolbarAction.txtTitle.text = it.clusterTitle
}
+ VM.getStreamBundle(args.browseUrl)
updateController(null)
}
- private fun updateTitle(streamCluster: StreamCluster) {
- B.layoutToolbarAction.txtTitle.text = streamCluster.clusterTitle
- }
-
- private fun attachToolbar() {
- B.layoutToolbarAction.imgActionPrimary.setOnClickListener {
- finishAfterTransition()
- }
- }
-
- private fun attachRecycler() {
- endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
- override fun onLoadMore(currentPage: Int) {
- VM.nextCluster()
- }
- }
- B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _binding = null
}
private fun updateController(streamCluster: StreamCluster?) {
- B.recycler.withModels {
+ binding.recycler.withModels {
setFilterDuplicates(true)
if (streamCluster == null) {
for (i in 1..6) {
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 78ecd26f7..a9e9eff46 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
@@ -1126,7 +1126,7 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
DetailsCarouselController(object : GenericCarouselController.Callbacks {
override fun onHeaderClicked(streamCluster: StreamCluster) {
if (streamCluster.clusterBrowseUrl.isNotEmpty())
- openStreamBrowseActivity(
+ openStreamBrowseFragment(
streamCluster.clusterBrowseUrl,
streamCluster.clusterTitle
)
diff --git a/app/src/main/java/com/aurora/store/view/ui/details/DevProfileFragment.kt b/app/src/main/java/com/aurora/store/view/ui/details/DevProfileFragment.kt
index 2c6b3aaab..d9628bf86 100644
--- a/app/src/main/java/com/aurora/store/view/ui/details/DevProfileFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/details/DevProfileFragment.kt
@@ -109,7 +109,7 @@ class DevProfileFragment : BaseFragment(R.layout.fragment_dev_profile),
}
override fun onHeaderClicked(streamCluster: StreamCluster) {
- openStreamBrowseActivity(streamCluster.clusterBrowseUrl, streamCluster.clusterTitle)
+ openStreamBrowseFragment(streamCluster.clusterBrowseUrl, streamCluster.clusterTitle)
}
override fun onClusterScrolled(streamCluster: StreamCluster) {
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index 4e6e7305a..02b93d488 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -168,6 +168,17 @@
app:action="android.intent.action.VIEW"
app:uri="play.google.com/store/apps/dev?id={devId}" />
+
+
+
+
@@ -186,4 +197,7 @@
+