From 3fcf8e8c11fc89bc566f4c3b139d4e21afdb3821 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jun 2023 15:13:22 +0530 Subject: [PATCH] Migrate AppSalesActivity to fragment Signed-off-by: Aayush Gupta --- app/src/main/AndroidManifest.xml | 1 - .../java/com/aurora/store/MainActivity.kt | 6 +- .../store/view/ui/commons/BaseFragment.kt | 7 ++- ...ppSalesActivity.kt => AppSalesFragment.kt} | 63 ++++++++----------- .../main/res/navigation/mobile_navigation.xml | 5 ++ 5 files changed, 40 insertions(+), 42 deletions(-) rename app/src/main/java/com/aurora/store/view/ui/sale/{AppSalesActivity.kt => AppSalesFragment.kt} (75%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 778feba19..0941dd22e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -147,7 +147,6 @@ - diff --git a/app/src/main/java/com/aurora/store/MainActivity.kt b/app/src/main/java/com/aurora/store/MainActivity.kt index 1068bcb90..d91e6c0a9 100644 --- a/app/src/main/java/com/aurora/store/MainActivity.kt +++ b/app/src/main/java/com/aurora/store/MainActivity.kt @@ -54,12 +54,11 @@ import com.aurora.store.util.CertUtil.isFDroidApp import com.aurora.store.util.Log import com.aurora.store.util.Preferences import com.aurora.store.view.ui.account.AccountActivity -import com.aurora.store.view.ui.all.AppsGamesFragment import com.aurora.store.view.ui.commons.BaseActivity import com.aurora.store.view.ui.commons.BlacklistActivity import com.aurora.store.view.ui.downloads.DownloadActivity import com.aurora.store.view.ui.preferences.SettingsActivity -import com.aurora.store.view.ui.sale.AppSalesActivity +import com.aurora.store.view.ui.sale.AppSalesFragment import com.aurora.store.view.ui.search.SearchSuggestionActivity import com.aurora.store.view.ui.sheets.SelfUpdateSheet import com.aurora.store.view.ui.spoof.SpoofActivity @@ -248,7 +247,8 @@ class MainActivity : BaseActivity() { B.drawerLayout.close() } R.id.menu_apps_sale -> { - open(AppSalesActivity::class.java) + navController.navigate(R.id.appSalesFragment) + B.drawerLayout.close() } R.id.menu_blacklist_manager -> { open(BlacklistActivity::class.java) 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 d4218d107..5d4b2a4cc 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 @@ -21,6 +21,7 @@ package com.aurora.store.view.ui.commons import android.app.ActivityOptions import android.content.Intent +import androidx.annotation.LayoutRes import androidx.fragment.app.Fragment import com.aurora.Constants import com.aurora.extensions.getEmptyActivityBundle @@ -32,7 +33,11 @@ import com.google.gson.Gson import com.google.gson.GsonBuilder import java.lang.reflect.Modifier -open class BaseFragment : Fragment() { +open class BaseFragment : Fragment { + + constructor(): super() + + constructor(@LayoutRes contentLayoutId: Int) : super(contentLayoutId) var gson: Gson = GsonBuilder().excludeFieldsWithModifiers( Modifier.TRANSIENT diff --git a/app/src/main/java/com/aurora/store/view/ui/sale/AppSalesActivity.kt b/app/src/main/java/com/aurora/store/view/ui/sale/AppSalesFragment.kt similarity index 75% rename from app/src/main/java/com/aurora/store/view/ui/sale/AppSalesActivity.kt rename to app/src/main/java/com/aurora/store/view/ui/sale/AppSalesFragment.kt index 11fe029bf..84ab1dd2e 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sale/AppSalesActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sale/AppSalesFragment.kt @@ -20,72 +20,61 @@ package com.aurora.store.view.ui.sale import android.os.Bundle +import android.view.View import androidx.lifecycle.ViewModelProvider +import androidx.navigation.fragment.findNavController import com.aurora.gplayapi.data.models.App 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.app.AppListViewModel_ import com.aurora.store.view.epoxy.views.AppProgressViewModel_ +import com.aurora.store.view.epoxy.views.app.AppListViewModel_ import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_ -import com.aurora.store.view.ui.commons.BaseActivity +import com.aurora.store.view.ui.commons.BaseFragment import com.aurora.store.viewmodel.sale.AppSalesViewModel -class AppSalesActivity : BaseActivity() { +class AppSalesFragment : BaseFragment(R.layout.activity_generic_recycler) { + + private var _binding: ActivityGenericRecyclerBinding? = null + private val binding: ActivityGenericRecyclerBinding + get() = _binding!! - lateinit var B: ActivityGenericRecyclerBinding lateinit var VM: AppSalesViewModel lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener - override fun onConnected() { - hideNetworkConnectivitySheet() - } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) - override fun onDisconnected() { - showNetworkConnectivitySheet() - } - - override fun onReconnected() { - - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - B = ActivityGenericRecyclerBinding.inflate(layoutInflater) + _binding = ActivityGenericRecyclerBinding.bind(view) VM = ViewModelProvider(this)[AppSalesViewModel::class.java] - setContentView(B.root) - - attachRecycler() - attachToolbar() - - VM.liveAppList.observe(this) { - updateController(it) + binding.layoutToolbarAction.txtTitle.text = getString(R.string.title_apps_sale) + binding.layoutToolbarAction.imgActionPrimary.setOnClickListener { + findNavController().navigateUp() } - } - private fun attachToolbar() { - B.layoutToolbarAction.txtTitle.text = getString(R.string.title_apps_sale) - B.layoutToolbarAction.imgActionPrimary.setOnClickListener { - finishAfterTransition() - } - } - - private fun attachRecycler() { endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() { override fun onLoadMore(currentPage: Int) { VM.next() } } - B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener) + binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener) updateController(null) + + VM.liveAppList.observe(viewLifecycleOwner) { + updateController(it) + } + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null } private fun updateController(appList: List?) { - B.recycler + binding.recycler .withModels { setFilterDuplicates(true) if (appList == null) { diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 82408a101..5c3f21650 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -50,4 +50,9 @@ android:name="com.aurora.store.view.ui.all.AppsGamesFragment" android:label="@string/title_apps_games" tools:layout="@layout/activity_generic_pager" /> + \ No newline at end of file