Migrate EditorStreamBrowseActivity to fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-07-05 12:12:32 +05:30
parent d4fe674d4e
commit 953cea01c5
4 changed files with 48 additions and 42 deletions

View File

@@ -115,7 +115,6 @@
<activity android:name=".view.ui.details.DetailsExodusActivity" /> <activity android:name=".view.ui.details.DetailsExodusActivity" />
<activity android:name=".view.ui.details.DevAppsActivity" /> <activity android:name=".view.ui.details.DevAppsActivity" />
<activity android:name=".view.ui.commons.ExpandedStreamBrowseActivity" /> <activity android:name=".view.ui.commons.ExpandedStreamBrowseActivity" />
<activity android:name=".view.ui.commons.EditorStreamBrowseActivity" />
<service android:name=".data.service.NotificationService" /> <service android:name=".data.service.NotificationService" />
<service android:name=".data.installer.InstallerService" /> <service android:name=".data.installer.InstallerService" />

View File

@@ -72,9 +72,8 @@ open class BaseFragment : Fragment {
} }
fun openEditorStreamBrowseActivity(browseUrl: String, title: String = "") { fun openEditorStreamBrowseActivity(browseUrl: String, title: String = "") {
val intent = Intent(requireContext(), EditorStreamBrowseActivity::class.java) findNavController().navigate(
intent.putExtra(Constants.BROWSE_EXTRA, browseUrl) MobileNavigationDirections.actionGlobalEditorStreamBrowseFragment(title, browseUrl)
intent.putExtra(Constants.STRING_EXTRA, title) )
startActivity(intent, requireContext().getEmptyActivityBundle())
} }
} }

View File

@@ -20,10 +20,14 @@
package com.aurora.store.view.ui.commons package com.aurora.store.view.ui.commons
import android.os.Bundle import android.os.Bundle
import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.airbnb.epoxy.EpoxyModel import com.airbnb.epoxy.EpoxyModel
import com.aurora.Constants
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.MainActivity
import com.aurora.store.R
import com.aurora.store.databinding.ActivityGenericRecyclerBinding import com.aurora.store.databinding.ActivityGenericRecyclerBinding
import com.aurora.store.view.epoxy.groups.CarouselHorizontalModel_ import com.aurora.store.view.epoxy.groups.CarouselHorizontalModel_
import com.aurora.store.view.epoxy.views.EditorHeadViewModel_ import com.aurora.store.view.epoxy.views.EditorHeadViewModel_
@@ -35,58 +39,46 @@ import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
import com.aurora.store.viewmodel.editorschoice.EditorBrowseViewModel import com.aurora.store.viewmodel.editorschoice.EditorBrowseViewModel
class EditorStreamBrowseActivity : BaseActivity() { class EditorStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) {
private var _binding: ActivityGenericRecyclerBinding? = null
private val binding: ActivityGenericRecyclerBinding
get() = _binding!!
private val args: EditorStreamBrowseFragmentArgs by navArgs()
lateinit var B: ActivityGenericRecyclerBinding
lateinit var VM: EditorBrowseViewModel lateinit var VM: EditorBrowseViewModel
lateinit var title: String lateinit var title: String
override fun onConnected() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
hideNetworkConnectivitySheet() super.onViewCreated(view, savedInstanceState)
}
override fun onDisconnected() { _binding = ActivityGenericRecyclerBinding.bind(view)
showNetworkConnectivitySheet()
}
override fun onReconnected() {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
B = ActivityGenericRecyclerBinding.inflate(layoutInflater)
VM = ViewModelProvider(this)[EditorBrowseViewModel::class.java] VM = ViewModelProvider(this)[EditorBrowseViewModel::class.java]
setContentView(B.root) // Toolbar
binding.layoutToolbarAction.apply {
txtTitle.text = args.title
imgActionPrimary.setOnClickListener {
findNavController().navigateUp()
}
}
attachToolbar() VM.liveData.observe(viewLifecycleOwner) {
VM.liveData.observe(this) {
updateController(it) updateController(it)
} }
intent.apply { VM.getEditorStreamBundle(args.browseUrl)
getStringExtra(Constants.BROWSE_EXTRA)?.let {
VM.getEditorStreamBundle(it)
}
getStringExtra(Constants.STRING_EXTRA)?.let {
B.layoutToolbarAction.txtTitle.text = it
}
}
updateController(null) updateController(null)
} }
private fun attachToolbar() { override fun onDestroyView() {
B.layoutToolbarAction.imgActionPrimary.setOnClickListener { super.onDestroyView()
finishAfterTransition() _binding = null
}
} }
private fun updateController(appList: MutableList<App>?) { private fun updateController(appList: MutableList<App>?) {
B.recycler.withModels { binding.recycler.withModels {
setFilterDuplicates(true) setFilterDuplicates(true)
if (appList == null) { if (appList == null) {
for (i in 1..6) { for (i in 1..6) {
@@ -107,7 +99,10 @@ class EditorStreamBrowseActivity : BaseActivity() {
.artwork(artwork) .artwork(artwork)
.callback(object : MiniScreenshotView.ScreenshotCallback { .callback(object : MiniScreenshotView.ScreenshotCallback {
override fun onClick(position: Int) { override fun onClick(position: Int) {
openScreenshotActivity(app, position) (activity as MainActivity).openScreenshotActivity(
app,
position
)
} }
}) })
) )

View File

@@ -120,10 +120,23 @@
android:name="browseUrl" android:name="browseUrl"
app:argType="string" /> app:argType="string" />
</fragment> </fragment>
<fragment
android:id="@+id/editorStreamBrowseFragment"
android:name="com.aurora.store.view.ui.commons.EditorStreamBrowseFragment"
tools:layout="@layout/activity_generic_recycler" >
<argument android:name="title"
app:argType="string" />
<argument
android:name="browseUrl"
app:argType="string" />
</fragment>
<action <action
android:id="@+id/action_global_appDetailsFragment" android:id="@+id/action_global_appDetailsFragment"
app:destination="@id/appDetailsFragment" /> app:destination="@id/appDetailsFragment" />
<action <action
android:id="@+id/action_global_categoryBrowseFragment" android:id="@+id/action_global_categoryBrowseFragment"
app:destination="@id/categoryBrowseFragment" /> app:destination="@id/categoryBrowseFragment" />
<action
android:id="@+id/action_global_editorStreamBrowseFragment"
app:destination="@id/editorStreamBrowseFragment" />
</navigation> </navigation>