Migrate AppSalesActivity to fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-06-22 15:13:22 +05:30
parent e2d417d040
commit 3fcf8e8c11
5 changed files with 40 additions and 42 deletions

View File

@@ -147,7 +147,6 @@
<activity android:name=".view.ui.search.SearchSuggestionActivity" />
<activity android:name=".view.ui.search.SearchResultsActivity" />
<activity android:name=".view.ui.commons.StreamBrowseActivity" />
<activity android:name=".view.ui.sale.AppSalesActivity" />
<activity android:name=".view.ui.details.ScreenshotActivity" />
<activity android:name=".view.ui.commons.CategoryBrowseActivity" />
<activity android:name=".view.ui.details.DetailsMoreActivity" />

View File

@@ -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)

View File

@@ -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

View File

@@ -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<App>?) {
B.recycler
binding.recycler
.withModels {
setFilterDuplicates(true)
if (appList == null) {

View File

@@ -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" />
<fragment
android:id="@+id/appSalesFragment"
android:name="com.aurora.store.view.ui.sale.AppSalesFragment"
android:label="@string/title_apps_sale"
tools:layout="@layout/activity_generic_recycler" />
</navigation>