diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfd2cf477..00a5cf1da 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -114,7 +114,6 @@ - diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt b/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt index f7fde043f..6248540b0 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/BaseActivity.kt @@ -74,7 +74,7 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen fun openStreamBrowseActivity(browseUrl: String, title: String = "") { val intent = if (browseUrl.lowercase().contains("expanded")) { - Intent(this, ExpandedStreamBrowseActivity::class.java) + Intent(this, ExpandedStreamBrowseFragment::class.java) } else if (browseUrl.lowercase().contains("developer")) { Intent(this, DevProfileActivity::class.java) } else { 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 27a6910f4..9965f0407 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 @@ -59,16 +59,23 @@ open class BaseFragment : Fragment { } fun openStreamBrowseActivity(browseUrl: String, title: String = "") { - val intent = if (browseUrl.lowercase().contains("expanded")) - Intent(requireContext(), ExpandedStreamBrowseActivity::class.java) - else if (browseUrl.lowercase().contains("developer")) - Intent(requireContext(), DevProfileActivity::class.java) - else - Intent(requireContext(), StreamBrowseActivity::class.java) + if (browseUrl.lowercase().contains("expanded")) { + findNavController().navigate( + MobileNavigationDirections.actionGlobalExpandedStreamBrowseFragment( + title, + browseUrl + ) + ) + } else { + val intent = if (browseUrl.lowercase().contains("developer")) + Intent(requireContext(), DevProfileActivity::class.java) + else + Intent(requireContext(), StreamBrowseActivity::class.java) - intent.putExtra(Constants.BROWSE_EXTRA, browseUrl) - intent.putExtra(Constants.STRING_EXTRA, title) - startActivity(intent, requireContext().getEmptyActivityBundle()) + intent.putExtra(Constants.BROWSE_EXTRA, browseUrl) + intent.putExtra(Constants.STRING_EXTRA, title) + startActivity(intent, requireContext().getEmptyActivityBundle()) + } } fun openEditorStreamBrowseActivity(browseUrl: String, title: String = "") { diff --git a/app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseActivity.kt b/app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseFragment.kt similarity index 73% rename from app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseFragment.kt index d9f1d0f52..d0a417869 100644 --- a/app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/commons/ExpandedStreamBrowseFragment.kt @@ -20,10 +20,14 @@ 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.airbnb.epoxy.EpoxyModel -import com.aurora.Constants import com.aurora.gplayapi.data.models.StreamCluster +import com.aurora.store.MainActivity +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.groups.CarouselHorizontalModel_ @@ -35,69 +39,53 @@ import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_ import com.aurora.store.viewmodel.browse.ExpandedStreamBrowseViewModel -class ExpandedStreamBrowseActivity : BaseActivity() { +class ExpandedStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) { + + private var _binding: ActivityGenericRecyclerBinding? = null + private val binding: ActivityGenericRecyclerBinding + get() = _binding!! + + private val args: ExpandedStreamBrowseFragmentArgs by navArgs() - lateinit var B: ActivityGenericRecyclerBinding lateinit var VM: ExpandedStreamBrowseViewModel - lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener 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)[ExpandedStreamBrowseViewModel::class.java] - setContentView(B.root) - - attachToolbar() - - VM.liveData.observe(this) { - if (!::cluster.isInitialized) - attachRecycler() + // Toolbar + binding.layoutToolbarAction.apply { + txtTitle.text = args.title + imgActionPrimary.setOnClickListener { + findNavController().navigateUp() + } + } + VM.liveData.observe(viewLifecycleOwner) { + if (!::cluster.isInitialized) attachRecycler() cluster = it updateController(cluster) updateTitle(cluster) } - intent.apply { - getStringExtra(Constants.BROWSE_EXTRA)?.let { - VM.getInitialCluster(it) - } - getStringExtra(Constants.STRING_EXTRA)?.let { - B.layoutToolbarAction.txtTitle.text = it - } - } - + VM.getInitialCluster(args.expandedStreamUrl) updateController(null) } + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + private fun updateTitle(streamCluster: StreamCluster) { if (streamCluster.clusterTitle.isNotEmpty()) - B.layoutToolbarAction.txtTitle.text = streamCluster.clusterTitle - } - - private fun attachToolbar() { - B.layoutToolbarAction.imgActionPrimary.setOnClickListener { - finishAfterTransition() - } + binding.layoutToolbarAction.txtTitle.text = streamCluster.clusterTitle } private fun attachRecycler() { @@ -106,11 +94,11 @@ class ExpandedStreamBrowseActivity : BaseActivity() { VM.next() } } - B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener) + binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener) } private fun updateController(streamCluster: StreamCluster?) { - B.recycler.withModels { + binding.recycler.withModels { setFilterDuplicates(true) if (streamCluster == null) { for (i in 1..6) { @@ -131,7 +119,10 @@ class ExpandedStreamBrowseActivity : BaseActivity() { .artwork(artwork) .callback(object : MiniScreenshotView.ScreenshotCallback { override fun onClick(position: Int) { - openScreenshotActivity(it, position) + (activity as MainActivity).openScreenshotActivity( + it, + position + ) } }) ) diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 9bc73ef98..5af4ef6dd 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -130,6 +130,16 @@ android:name="browseUrl" app:argType="string" /> + + + + @@ -139,4 +149,7 @@ +