Migrate AppsGamesActivity to fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-06-22 12:06:00 +05:30
parent e92b54d16d
commit e2d417d040
4 changed files with 42 additions and 54 deletions

View File

@@ -149,7 +149,6 @@
<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.all.AppsGamesActivity" />
<activity android:name=".view.ui.commons.CategoryBrowseActivity" />
<activity android:name=".view.ui.details.DetailsMoreActivity" />
<activity android:name=".view.ui.details.DetailsReviewActivity" />

View File

@@ -54,7 +54,7 @@ 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.AppsGamesActivity
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
@@ -244,7 +244,8 @@ class MainActivity : BaseActivity() {
B.navigation.setNavigationItemSelectedListener { item: MenuItem ->
when (item.itemId) {
R.id.menu_apps_games -> {
open(AppsGamesActivity::class.java)
navController.navigate(R.id.appsGamesFragment)
B.drawerLayout.close()
}
R.id.menu_apps_sale -> {
open(AppSalesActivity::class.java)

View File

@@ -20,80 +20,66 @@
package com.aurora.store.view.ui.all
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.findNavController
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.aurora.gplayapi.data.models.AuthData
import com.aurora.store.R
import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.databinding.ActivityGenericPagerBinding
import com.aurora.store.view.ui.commons.BaseActivity
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
class AppsGamesActivity : BaseActivity() {
class AppsGamesFragment : Fragment(R.layout.activity_generic_pager) {
private var _binding: ActivityGenericPagerBinding? = null
private val binding: ActivityGenericPagerBinding
get() = _binding!!
private lateinit var B: ActivityGenericPagerBinding
private lateinit var authData: AuthData
override fun onConnected() {
hideNetworkConnectivitySheet()
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
_binding = ActivityGenericPagerBinding.bind(view)
authData = AuthProvider.with(view.context).getAuthData()
override fun onDisconnected() {
showNetworkConnectivitySheet()
}
override fun onReconnected() {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
B = ActivityGenericPagerBinding.inflate(layoutInflater)
authData = AuthProvider.with(this).getAuthData()
setContentView(B.root)
attachToolbar()
attachViewPager()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
onBackPressedDispatcher.onBackPressed()
return true
}
// Toolbar
binding.layoutActionToolbar.toolbar.apply {
elevation = 0f
title = getString(R.string.title_apps_games)
navigationIcon = ContextCompat.getDrawable(view.context, R.drawable.ic_arrow_back)
setNavigationOnClickListener { findNavController().navigateUp() }
}
return super.onOptionsItemSelected(item)
}
private fun attachToolbar() {
setSupportActionBar(B.layoutActionToolbar.toolbar)
val actionBar = supportActionBar
if (actionBar != null) {
actionBar.setDisplayShowCustomEnabled(true)
actionBar.setDisplayHomeAsUpEnabled(true)
actionBar.elevation = 0f
actionBar.title = getString(R.string.title_apps_games)
// ViewPager
binding.pager.apply {
isUserInputEnabled = false
adapter = ViewPagerAdapter(childFragmentManager, lifecycle, authData.isAnonymous)
}
}
private fun attachViewPager() {
B.pager.adapter = ViewPagerAdapter(supportFragmentManager, lifecycle, authData.isAnonymous)
B.pager.isUserInputEnabled = false
TabLayoutMediator(B.tabLayout, B.pager, true) { tab: TabLayout.Tab, position: Int ->
TabLayoutMediator(
binding.tabLayout,
binding.pager,
true
) { tab: TabLayout.Tab, position: Int ->
when (position) {
0 -> tab.text = getString(R.string.title_installed)
1 -> tab.text = getString(R.string.title_library)
2 -> tab.text = getString(R.string.title_purchase_history)
else -> {
}
else -> {}
}
}.attach()
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
internal class ViewPagerAdapter(
fragment: FragmentManager,
lifecycle: Lifecycle,
@@ -110,10 +96,7 @@ class AppsGamesActivity : BaseActivity() {
}
override fun getItemCount(): Int {
return if (isAnonymous)
1
else
3
return if (isAnonymous) 1 else 3
}
}
}

View File

@@ -45,4 +45,9 @@
android:name="com.aurora.store.view.ui.about.AboutFragment"
android:label="@string/title_about"
tools:layout="@layout/fragment_about" />
<fragment
android:id="@+id/appsGamesFragment"
android:name="com.aurora.store.view.ui.all.AppsGamesFragment"
android:label="@string/title_apps_games"
tools:layout="@layout/activity_generic_pager" />
</navigation>