Fragment: Multiple improvements to fragments
* Use viewModels method to get ViewModel instances * Use view binding as recommended for fragments * Mark possible variables as private and val Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -61,12 +61,12 @@ class GoogleFragment : Fragment(R.layout.fragment_google) {
|
||||
private val binding: FragmentGoogleBinding
|
||||
get() = _binding!!
|
||||
|
||||
private val cookieManager = CookieManager.getInstance()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentGoogleBinding.bind(view)
|
||||
|
||||
val cookieManager = CookieManager.getInstance()
|
||||
|
||||
binding.webview.apply {
|
||||
cookieManager.removeAllCookies(null)
|
||||
cookieManager.acceptThirdPartyCookies(this)
|
||||
|
||||
@@ -27,7 +27,6 @@ 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
|
||||
@@ -42,12 +41,11 @@ class AppsGamesFragment : Fragment(R.layout.activity_generic_pager) {
|
||||
private val binding: ActivityGenericPagerBinding
|
||||
get() = _binding!!
|
||||
|
||||
private lateinit var authData: AuthData
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = ActivityGenericPagerBinding.bind(view)
|
||||
authData = AuthProvider.with(view.context).getAuthData()
|
||||
|
||||
val authData = AuthProvider.with(view.context).getAuthData()
|
||||
|
||||
// Toolbar
|
||||
binding.layoutActionToolbar.toolbar.apply {
|
||||
|
||||
@@ -20,10 +20,8 @@
|
||||
package com.aurora.store.view.ui.all
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.FragmentAppsBinding
|
||||
@@ -35,10 +33,13 @@ import com.aurora.store.viewmodel.all.InstalledViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class InstalledAppsFragment : BaseFragment() {
|
||||
class InstalledAppsFragment : BaseFragment(R.layout.fragment_apps) {
|
||||
|
||||
private lateinit var VM: InstalledViewModel
|
||||
private lateinit var B: FragmentAppsBinding
|
||||
private var _binding: FragmentAppsBinding? = null
|
||||
private val binding: FragmentAppsBinding
|
||||
get() = _binding!!
|
||||
|
||||
private val viewModel: InstalledViewModel by viewModels()
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@@ -47,36 +48,24 @@ class InstalledAppsFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
B = FragmentAppsBinding.bind(
|
||||
inflater.inflate(
|
||||
R.layout.fragment_apps,
|
||||
container,
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
VM = ViewModelProvider(requireActivity())[InstalledViewModel::class.java]
|
||||
VM.observe()
|
||||
|
||||
return B.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
_binding = FragmentAppsBinding.bind(view)
|
||||
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateController(appList: List<App>?) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
if (appList == null) {
|
||||
for (i in 1..10) {
|
||||
|
||||
@@ -20,14 +20,11 @@
|
||||
package com.aurora.store.view.ui.all
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.aurora.gplayapi.data.models.StreamCluster
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.FragmentAppsBinding
|
||||
import com.aurora.store.databinding.FragmentUpdatesBinding
|
||||
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
|
||||
import com.aurora.store.view.epoxy.views.AppProgressViewModel_
|
||||
import com.aurora.store.view.epoxy.views.HeaderViewModel_
|
||||
@@ -38,11 +35,13 @@ import com.aurora.store.viewmodel.all.LibraryAppsViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LibraryAppsFragment : BaseFragment() {
|
||||
class LibraryAppsFragment : BaseFragment(R.layout.fragment_apps) {
|
||||
|
||||
private lateinit var VM: LibraryAppsViewModel
|
||||
private lateinit var B: FragmentAppsBinding
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private var _binding: FragmentAppsBinding? = null
|
||||
private val binding: FragmentAppsBinding
|
||||
get() = _binding!!
|
||||
|
||||
private val viewModel: LibraryAppsViewModel by viewModels()
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@@ -53,45 +52,31 @@ class LibraryAppsFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
B = FragmentAppsBinding.bind(
|
||||
inflater.inflate(
|
||||
R.layout.fragment_apps,
|
||||
container,
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
VM = ViewModelProvider(requireActivity()).get(LibraryAppsViewModel::class.java)
|
||||
|
||||
return B.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
_binding = FragmentAppsBinding.bind(view)
|
||||
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
viewModel.observe()
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
attachRecycler()
|
||||
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
private fun attachRecycler() {
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.observe()
|
||||
}
|
||||
}
|
||||
B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateController(streamCluster: StreamCluster?) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
if (streamCluster == null) {
|
||||
for (i in 1..10) {
|
||||
|
||||
@@ -20,10 +20,8 @@
|
||||
package com.aurora.store.view.ui.all
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.FragmentAppsBinding
|
||||
import com.aurora.store.view.custom.recycler.EndlessRecyclerOnScrollListener
|
||||
@@ -36,11 +34,13 @@ import com.aurora.store.viewmodel.all.PurchasedViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
class PurchasedAppsFragment : BaseFragment() {
|
||||
class PurchasedAppsFragment : BaseFragment(R.layout.fragment_apps) {
|
||||
|
||||
private lateinit var VM: PurchasedViewModel
|
||||
private lateinit var B: FragmentAppsBinding
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private var _binding: FragmentAppsBinding? = null
|
||||
private val binding: FragmentAppsBinding
|
||||
get() = _binding!!
|
||||
|
||||
private val viewModel: PurchasedViewModel by viewModels()
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@@ -49,48 +49,33 @@ class PurchasedAppsFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
B = FragmentAppsBinding.bind(
|
||||
inflater.inflate(
|
||||
R.layout.fragment_apps,
|
||||
container,
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
VM = ViewModelProvider(requireActivity())[PurchasedViewModel::class.java]
|
||||
|
||||
return B.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
_binding = FragmentAppsBinding.bind(view)
|
||||
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener(8) {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
viewModel.observe()
|
||||
}
|
||||
}
|
||||
|
||||
attachRecycler()
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
private fun attachRecycler() {
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener(8) {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.observe()
|
||||
}
|
||||
}
|
||||
|
||||
B.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
|
||||
private fun updateController(paginatedAppList: PaginatedAppList?) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
if (paginatedAppList == null) {
|
||||
for (i in 1..10) {
|
||||
|
||||
@@ -22,7 +22,7 @@ package com.aurora.store.view.ui.commons
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.model.Black
|
||||
@@ -40,17 +40,17 @@ class BlacklistFragment : Fragment(R.layout.activity_generic_recycler) {
|
||||
private val binding: ActivityGenericRecyclerBinding
|
||||
get() = _binding!!
|
||||
|
||||
private lateinit var VM: BlacklistViewModel
|
||||
private val viewModel: BlacklistViewModel by viewModels()
|
||||
|
||||
private lateinit var blacklistProvider: BlacklistProvider
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[BlacklistViewModel::class.java]
|
||||
blacklistProvider = BlacklistProvider.with(view.context)
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it.sortedByDescending { app ->
|
||||
blacklistProvider.isBlacklisted(app.packageName)
|
||||
})
|
||||
@@ -67,7 +67,7 @@ class BlacklistFragment : Fragment(R.layout.activity_generic_recycler) {
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
blacklistProvider.save(VM.selected)
|
||||
blacklistProvider.save(viewModel.selected)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@@ -91,12 +91,12 @@ class BlacklistFragment : Fragment(R.layout.activity_generic_recycler) {
|
||||
BlackListViewModel_()
|
||||
.id(it.packageName.hashCode())
|
||||
.black(it)
|
||||
.markChecked(VM.selected.contains(it.packageName))
|
||||
.markChecked(viewModel.selected.contains(it.packageName))
|
||||
.checked { _, isChecked ->
|
||||
if (isChecked)
|
||||
VM.selected.add(it.packageName)
|
||||
viewModel.selected.add(it.packageName)
|
||||
else
|
||||
VM.selected.remove(it.packageName)
|
||||
viewModel.selected.remove(it.packageName)
|
||||
|
||||
requestModelBuild()
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ package com.aurora.store.view.ui.commons
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
@@ -46,18 +46,16 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
||||
get() = _binding!!
|
||||
|
||||
private val args: CategoryBrowseFragmentArgs by navArgs()
|
||||
private val viewModel: SubCategoryClusterViewModel by viewModels()
|
||||
|
||||
lateinit var C: GenericCarouselController
|
||||
lateinit var VM: SubCategoryClusterViewModel
|
||||
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private lateinit var genericCarouselController: GenericCarouselController
|
||||
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
C = CategoryCarouselController(this)
|
||||
VM = ViewModelProvider(this)[SubCategoryClusterViewModel::class.java]
|
||||
genericCarouselController = CategoryCarouselController(this)
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.apply {
|
||||
@@ -66,9 +64,9 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
||||
}
|
||||
|
||||
// RecyclerView
|
||||
binding.recycler.setController(C)
|
||||
binding.recycler.setController(genericCarouselController)
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
when (it) {
|
||||
is ViewState.Empty -> {
|
||||
}
|
||||
@@ -89,17 +87,16 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
||||
}
|
||||
}
|
||||
|
||||
endlessRecyclerOnScrollListener =
|
||||
object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.observe()
|
||||
}
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
viewModel.observe()
|
||||
}
|
||||
}
|
||||
|
||||
endlessRecyclerOnScrollListener.disable()
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
|
||||
VM.observeCategory(args.browseUrl)
|
||||
viewModel.observeCategory(args.browseUrl)
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
@@ -109,9 +106,8 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
||||
}
|
||||
|
||||
private fun updateController(streamBundle: StreamBundle?) {
|
||||
if (streamBundle != null)
|
||||
endlessRecyclerOnScrollListener.enable()
|
||||
C.setData(streamBundle)
|
||||
if (streamBundle != null) endlessRecyclerOnScrollListener.enable()
|
||||
genericCarouselController.setData(streamBundle)
|
||||
}
|
||||
|
||||
override fun onHeaderClicked(streamCluster: StreamCluster) {
|
||||
@@ -127,7 +123,7 @@ class CategoryBrowseFragment : BaseFragment(R.layout.activity_generic_recycler),
|
||||
}
|
||||
|
||||
override fun onClusterScrolled(streamCluster: StreamCluster) {
|
||||
VM.observeCluster(streamCluster)
|
||||
viewModel.observeCluster(streamCluster)
|
||||
}
|
||||
|
||||
override fun onAppClick(app: App) {
|
||||
|
||||
@@ -38,8 +38,6 @@ class CategoryFragment : BaseFragment(R.layout.fragment_generic_recycler) {
|
||||
|
||||
private val viewModel: CategoryViewModel by viewModels()
|
||||
|
||||
private var pageType = 0
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(pageType: Int): CategoryFragment {
|
||||
@@ -55,6 +53,7 @@ class CategoryFragment : BaseFragment(R.layout.fragment_generic_recycler) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentGenericRecyclerBinding.bind(view)
|
||||
|
||||
var pageType = 0
|
||||
val bundle = arguments
|
||||
if (bundle != null) {
|
||||
pageType = bundle.getInt(Constants.PAGE_TYPE, 0)
|
||||
|
||||
@@ -40,8 +40,6 @@ class EditorChoiceFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
|
||||
private val viewModel: EditorChoiceViewModel by viewModels()
|
||||
|
||||
private var pageType = 0
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(pageType: Int): EditorChoiceFragment {
|
||||
@@ -57,6 +55,7 @@ class EditorChoiceFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentForYouBinding.bind(view)
|
||||
|
||||
var pageType = 0
|
||||
val bundle = arguments
|
||||
if (bundle != null) {
|
||||
pageType = bundle.getInt(Constants.PAGE_TYPE, 0)
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.aurora.store.view.ui.commons
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.airbnb.epoxy.EpoxyModel
|
||||
@@ -46,15 +46,12 @@ class EditorStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycl
|
||||
get() = _binding!!
|
||||
|
||||
private val args: EditorStreamBrowseFragmentArgs by navArgs()
|
||||
|
||||
lateinit var VM: EditorBrowseViewModel
|
||||
lateinit var title: String
|
||||
private val viewModel: EditorBrowseViewModel by viewModels()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[EditorBrowseViewModel::class.java]
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.apply {
|
||||
@@ -64,11 +61,11 @@ class EditorStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycl
|
||||
}
|
||||
}
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
|
||||
VM.getEditorStreamBundle(args.browseUrl)
|
||||
viewModel.getEditorStreamBundle(args.browseUrl)
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.aurora.store.view.ui.commons
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.airbnb.epoxy.EpoxyModel
|
||||
@@ -46,17 +46,14 @@ class ExpandedStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recy
|
||||
get() = _binding!!
|
||||
|
||||
private val args: ExpandedStreamBrowseFragmentArgs by navArgs()
|
||||
private val viewModel: ExpandedStreamBrowseViewModel by viewModels()
|
||||
|
||||
lateinit var VM: ExpandedStreamBrowseViewModel
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
|
||||
lateinit var title: String
|
||||
lateinit var cluster: StreamCluster
|
||||
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private lateinit var cluster: StreamCluster
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[ExpandedStreamBrowseViewModel::class.java]
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.apply {
|
||||
@@ -66,7 +63,7 @@ class ExpandedStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recy
|
||||
}
|
||||
}
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
if (!::cluster.isInitialized) attachRecycler()
|
||||
cluster = it
|
||||
|
||||
@@ -74,7 +71,7 @@ class ExpandedStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recy
|
||||
updateTitle(cluster)
|
||||
}
|
||||
|
||||
VM.getInitialCluster(args.expandedStreamUrl)
|
||||
viewModel.getInitialCluster(args.expandedStreamUrl)
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
@@ -91,7 +88,7 @@ class ExpandedStreamBrowseFragment : BaseFragment(R.layout.activity_generic_recy
|
||||
private fun attachRecycler() {
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.next()
|
||||
viewModel.next()
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
|
||||
@@ -45,11 +45,8 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
|
||||
private val viewModel: BaseClusterViewModel by viewModels()
|
||||
|
||||
private lateinit var C: GenericCarouselController
|
||||
private lateinit var streamBundle: StreamBundle
|
||||
|
||||
private var pageType = 0
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(pageType: Int): ForYouFragment {
|
||||
@@ -65,8 +62,9 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentForYouBinding.bind(view)
|
||||
|
||||
C = GenericCarouselController(this)
|
||||
val genericCarouselController = GenericCarouselController(this)
|
||||
|
||||
var pageType = 0
|
||||
val bundle = arguments
|
||||
if (bundle != null) {
|
||||
pageType = bundle.getInt(Constants.PAGE_TYPE, 0)
|
||||
@@ -77,7 +75,7 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
1 -> viewModel.getStreamBundle(Category.GAME, Type.HOME)
|
||||
}
|
||||
|
||||
binding.recycler.setController(C)
|
||||
binding.recycler.setController(genericCarouselController)
|
||||
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
when (it) {
|
||||
@@ -85,7 +83,7 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
}
|
||||
|
||||
is ViewState.Loading -> {
|
||||
updateController(null)
|
||||
genericCarouselController.setData(null)
|
||||
}
|
||||
|
||||
is ViewState.Error -> {
|
||||
@@ -108,8 +106,7 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
}
|
||||
|
||||
streamBundle = it.data as StreamBundle
|
||||
|
||||
updateController(streamBundle)
|
||||
genericCarouselController.setData(streamBundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -120,10 +117,6 @@ class ForYouFragment : BaseFragment(R.layout.fragment_for_you),
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateController(streamBundle: StreamBundle?) {
|
||||
C.setData(streamBundle)
|
||||
}
|
||||
|
||||
override fun onHeaderClicked(streamCluster: StreamCluster) {
|
||||
if (streamCluster.clusterBrowseUrl.isNotEmpty())
|
||||
openStreamBrowseFragment(streamCluster.clusterBrowseUrl, streamCluster.clusterTitle)
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.aurora.store.view.ui.commons
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.gplayapi.data.models.StreamCluster
|
||||
@@ -42,18 +42,14 @@ class StreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
get() = _binding!!
|
||||
|
||||
private val args: StreamBrowseFragmentArgs by navArgs()
|
||||
private val viewModel: StreamBrowseViewModel by viewModels()
|
||||
|
||||
lateinit var VM: StreamBrowseViewModel
|
||||
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
|
||||
lateinit var title: String
|
||||
lateinit var cluster: StreamCluster
|
||||
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private lateinit var cluster: StreamCluster
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[StreamBrowseViewModel::class.java]
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.apply {
|
||||
@@ -63,11 +59,11 @@ class StreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
}
|
||||
}
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
if (!::cluster.isInitialized) {
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.nextCluster()
|
||||
viewModel.nextCluster()
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
@@ -79,7 +75,7 @@ class StreamBrowseFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
binding.layoutToolbarAction.txtTitle.text = it.clusterTitle
|
||||
}
|
||||
|
||||
VM.getStreamBundle(args.browseUrl)
|
||||
viewModel.getStreamBundle(args.browseUrl)
|
||||
updateController(null)
|
||||
}
|
||||
|
||||
|
||||
@@ -43,9 +43,6 @@ class TopChartFragment : BaseFragment(R.layout.fragment_top_container) {
|
||||
|
||||
private val viewModel: TopChartViewModel by viewModels()
|
||||
|
||||
private var chartType = 0
|
||||
private var chartCategory = 0
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(chartType: Int, chartCategory: Int): TopChartFragment {
|
||||
@@ -62,7 +59,10 @@ class TopChartFragment : BaseFragment(R.layout.fragment_top_container) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentTopContainerBinding.bind(view)
|
||||
|
||||
var chartType = 0
|
||||
var chartCategory = 0
|
||||
val bundle = arguments
|
||||
|
||||
if (bundle != null) {
|
||||
chartType = bundle.getInt(Constants.TOP_CHART_TYPE, 0)
|
||||
chartCategory = bundle.getInt(Constants.TOP_CHART_CATEGORY, 0)
|
||||
|
||||
@@ -48,7 +48,6 @@ class DetailsMoreFragment : BaseFragment(R.layout.fragment_details_more) {
|
||||
get() = _binding!!
|
||||
|
||||
private val viewModel: DetailsMoreViewModel by viewModels()
|
||||
|
||||
private val args: DetailsMoreFragmentArgs by navArgs()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
@@ -22,7 +22,7 @@ package com.aurora.store.view.ui.details
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.gplayapi.data.models.Review
|
||||
@@ -43,18 +43,15 @@ class DetailsReviewFragment : Fragment(R.layout.fragment_details_review) {
|
||||
get() = _binding!!
|
||||
|
||||
private val args: DetailsReviewFragmentArgs by navArgs()
|
||||
|
||||
private lateinit var VM: ReviewViewModel
|
||||
private val viewModel: ReviewViewModel by viewModels()
|
||||
|
||||
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
|
||||
private lateinit var filter: Review.Filter
|
||||
private lateinit var reviewCluster: ReviewCluster
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentDetailsReviewBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[ReviewViewModel::class.java]
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarActionReview.apply {
|
||||
@@ -64,12 +61,12 @@ class DetailsReviewFragment : Fragment(R.layout.fragment_details_review) {
|
||||
}
|
||||
}
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
if (!::reviewCluster.isInitialized) {
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
if (::reviewCluster.isInitialized) {
|
||||
VM.next(reviewCluster.nextPageUrl)
|
||||
viewModel.next(reviewCluster.nextPageUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,7 +81,7 @@ class DetailsReviewFragment : Fragment(R.layout.fragment_details_review) {
|
||||
|
||||
// Fetch Reviews
|
||||
filter = Review.Filter.ALL
|
||||
VM.fetchReview(args.packageName, filter)
|
||||
viewModel.fetchReview(args.packageName, filter)
|
||||
|
||||
// Chips
|
||||
binding.chipGroup.setOnCheckedStateChangeListener { _, checkedIds ->
|
||||
@@ -100,7 +97,7 @@ class DetailsReviewFragment : Fragment(R.layout.fragment_details_review) {
|
||||
}
|
||||
|
||||
endlessRecyclerOnScrollListener.resetPageCount()
|
||||
VM.fetchReview(args.packageName, filter)
|
||||
viewModel.fetchReview(args.packageName, filter)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.aurora.store.view.ui.details
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import com.aurora.gplayapi.data.models.SearchBundle
|
||||
@@ -33,7 +33,6 @@ import com.aurora.store.view.epoxy.views.app.AppListViewModel_
|
||||
import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import com.aurora.store.viewmodel.search.SearchResultViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import okhttp3.internal.filterList
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DevAppsFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
@@ -43,17 +42,13 @@ class DevAppsFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
get() = _binding!!
|
||||
|
||||
private val args: DevAppsFragmentArgs by navArgs()
|
||||
|
||||
private lateinit var VM: SearchResultViewModel
|
||||
|
||||
private lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private val viewModel: SearchResultViewModel by viewModels()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[SearchResultViewModel::class.java]
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
|
||||
@@ -66,14 +61,14 @@ class DevAppsFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
}
|
||||
|
||||
// Recycler View
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.liveData.value?.let { VM.next(it.subBundles) }
|
||||
viewModel.liveData.value?.let { viewModel.next(it.subBundles) }
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
|
||||
VM.observeSearchResults("pub:${args.developerName}")
|
||||
viewModel.observeSearchResults("pub:${args.developerName}")
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
||||
@@ -21,12 +21,11 @@ package com.aurora.store.view.ui.details
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.fragment.navArgs
|
||||
import coil.load
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.gplayapi.data.models.AuthData
|
||||
import com.aurora.gplayapi.data.models.StreamCluster
|
||||
import com.aurora.gplayapi.data.models.details.DevStream
|
||||
import com.aurora.store.R
|
||||
@@ -48,18 +47,14 @@ class DevProfileFragment : BaseFragment(R.layout.fragment_dev_profile),
|
||||
get() = _binding!!
|
||||
|
||||
private val args: DevProfileFragmentArgs by navArgs()
|
||||
|
||||
private lateinit var VM: DevProfileViewModel
|
||||
private lateinit var C: DeveloperCarouselController
|
||||
private lateinit var authData: AuthData
|
||||
private val viewModel: DevProfileViewModel by viewModels()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentDevProfileBinding.bind(view)
|
||||
|
||||
C = DeveloperCarouselController(this)
|
||||
VM = ViewModelProvider(this)[DevProfileViewModel::class.java]
|
||||
authData = AuthProvider.with(requireContext()).getAuthData()
|
||||
val developerCarouselController = DeveloperCarouselController(this)
|
||||
val authData = AuthProvider.with(requireContext()).getAuthData()
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarAction.apply {
|
||||
@@ -69,9 +64,9 @@ class DevProfileFragment : BaseFragment(R.layout.fragment_dev_profile),
|
||||
}
|
||||
|
||||
// RecyclerView
|
||||
binding.recycler.setController(C)
|
||||
binding.recycler.setController(developerCarouselController)
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
when (it) {
|
||||
is ViewState.Empty -> {
|
||||
}
|
||||
@@ -95,14 +90,14 @@ class DevProfileFragment : BaseFragment(R.layout.fragment_dev_profile),
|
||||
binding.txtDevDescription.text = description
|
||||
binding.imgIcon.load(imgUrl)
|
||||
binding.viewFlipper.displayedChild = 0
|
||||
C.setData(streamBundle)
|
||||
developerCarouselController.setData(streamBundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
binding.viewFlipper.displayedChild = 1
|
||||
VM.getStreamBundle(args.devId)
|
||||
viewModel.getStreamBundle(args.devId)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@@ -115,7 +110,7 @@ class DevProfileFragment : BaseFragment(R.layout.fragment_dev_profile),
|
||||
}
|
||||
|
||||
override fun onClusterScrolled(streamCluster: StreamCluster) {
|
||||
VM.observeCluster(streamCluster)
|
||||
viewModel.observeCluster(streamCluster)
|
||||
}
|
||||
|
||||
override fun onAppClick(app: App) {
|
||||
|
||||
@@ -50,7 +50,8 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) {
|
||||
|
||||
@Inject
|
||||
lateinit var downloadWorkerUtil: DownloadWorkerUtil
|
||||
lateinit var downloadList: List<Download>
|
||||
|
||||
private lateinit var downloadList: List<Download>
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
@@ -21,7 +21,7 @@ package com.aurora.store.view.ui.sale
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.databinding.ActivityGenericRecyclerBinding
|
||||
@@ -43,30 +43,27 @@ class AppSalesFragment : BaseFragment(R.layout.activity_generic_recycler) {
|
||||
private val binding: ActivityGenericRecyclerBinding
|
||||
get() = _binding!!
|
||||
|
||||
lateinit var VM: AppSalesViewModel
|
||||
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
private val viewModel: AppSalesViewModel by viewModels()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = ActivityGenericRecyclerBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[AppSalesViewModel::class.java]
|
||||
|
||||
binding.layoutToolbarAction.txtTitle.text = getString(R.string.title_apps_sale)
|
||||
binding.layoutToolbarAction.imgActionPrimary.setOnClickListener {
|
||||
findNavController().navigateUp()
|
||||
}
|
||||
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.observe()
|
||||
viewModel.observe()
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
updateController(null)
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.TextView
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.gplayapi.data.models.App
|
||||
import com.aurora.gplayapi.data.models.SearchBundle
|
||||
@@ -44,10 +44,8 @@ import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
||||
import com.aurora.store.view.epoxy.views.shimmer.AppListViewShimmerModel_
|
||||
import com.aurora.store.view.ui.commons.BaseFragment
|
||||
import com.aurora.store.viewmodel.search.SearchResultViewModel
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@AndroidEntryPoint
|
||||
class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
@@ -57,25 +55,22 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
private val binding: FragmentSearchResultBinding
|
||||
get() = _binding!!
|
||||
|
||||
lateinit var VM: SearchResultViewModel
|
||||
private val viewModel: SearchResultViewModel by viewModels()
|
||||
|
||||
lateinit var endlessRecyclerOnScrollListener: EndlessRecyclerOnScrollListener
|
||||
lateinit var searchView: TextInputEditText
|
||||
private lateinit var searchView: TextInputEditText
|
||||
|
||||
lateinit var sharedPreferences: SharedPreferences
|
||||
lateinit var filter: Filter
|
||||
private lateinit var sharedPreferences: SharedPreferences
|
||||
private lateinit var filter: Filter
|
||||
|
||||
var query: String? = null
|
||||
var searchBundle: SearchBundle = SearchBundle()
|
||||
private var query: String? = null
|
||||
private var searchBundle: SearchBundle = SearchBundle()
|
||||
|
||||
private var shimmerAnimationVisible = false
|
||||
private var snackbar: Snackbar? = null
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = FragmentSearchResultBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[SearchResultViewModel::class.java]
|
||||
|
||||
sharedPreferences = Preferences.getPrefs(view.context)
|
||||
sharedPreferences.registerOnSharedPreferenceChangeListener(this)
|
||||
@@ -96,9 +91,9 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
attachSearch()
|
||||
|
||||
// RecyclerView
|
||||
endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
val endlessRecyclerOnScrollListener = object : EndlessRecyclerOnScrollListener() {
|
||||
override fun onLoadMore(currentPage: Int) {
|
||||
VM.next(searchBundle.subBundles)
|
||||
viewModel.next(searchBundle.subBundles)
|
||||
}
|
||||
}
|
||||
binding.recycler.addOnScrollListener(endlessRecyclerOnScrollListener)
|
||||
@@ -108,7 +103,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
findNavController().navigate(R.id.filterSheet)
|
||||
}
|
||||
|
||||
VM.liveData.observe(viewLifecycleOwner) {
|
||||
viewModel.liveData.observe(viewLifecycleOwner) {
|
||||
if (shimmerAnimationVisible) {
|
||||
endlessRecyclerOnScrollListener.resetPageCount()
|
||||
binding.recycler.clear()
|
||||
@@ -148,7 +143,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
|
||||
if (filteredAppList.isEmpty()) {
|
||||
if (searchBundle.subBundles.isNotEmpty()) {
|
||||
VM.next(searchBundle.subBundles)
|
||||
viewModel.next(searchBundle.subBundles)
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
add(
|
||||
@@ -197,7 +192,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
|
||||
binding.recycler.adapter?.let {
|
||||
if (it.itemCount < 10) {
|
||||
VM.next(searchBundle.subBundles)
|
||||
viewModel.next(searchBundle.subBundles)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -240,7 +235,7 @@ class SearchResultsFragment : BaseFragment(R.layout.fragment_search_result),
|
||||
|
||||
private fun queryViewModel(query: String) {
|
||||
updateController(null)
|
||||
VM.observeSearchResults(query)
|
||||
viewModel.observeSearchResults(query)
|
||||
}
|
||||
|
||||
private fun filter(appList: MutableList<App>): List<App> {
|
||||
|
||||
@@ -27,7 +27,7 @@ import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.extensions.showKeyboard
|
||||
import com.aurora.gplayapi.SearchSuggestEntry
|
||||
@@ -45,16 +45,16 @@ class SearchSuggestionFragment : Fragment(R.layout.fragment_search_suggestion) {
|
||||
private val binding: FragmentSearchSuggestionBinding
|
||||
get() = _binding!!
|
||||
|
||||
lateinit var VM: SearchSuggestionViewModel
|
||||
lateinit var searchView: TextInputEditText
|
||||
private val viewModel: SearchSuggestionViewModel by viewModels()
|
||||
|
||||
var query: String = String()
|
||||
private lateinit var searchView: TextInputEditText
|
||||
|
||||
private var query: String = String()
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
_binding = FragmentSearchSuggestionBinding.bind(view)
|
||||
VM = ViewModelProvider(this)[SearchSuggestionViewModel::class.java]
|
||||
|
||||
// Toolbar
|
||||
binding.layoutToolbarSearch.apply {
|
||||
@@ -67,7 +67,7 @@ class SearchSuggestionFragment : Fragment(R.layout.fragment_search_suggestion) {
|
||||
}
|
||||
}
|
||||
|
||||
VM.liveSearchSuggestions.observe(viewLifecycleOwner) {
|
||||
viewModel.liveSearchSuggestions.observe(viewLifecycleOwner) {
|
||||
updateController(it)
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ class SearchSuggestionFragment : Fragment(R.layout.fragment_search_suggestion) {
|
||||
if (s.isNotEmpty()) {
|
||||
query = s.toString()
|
||||
if (query.isNotEmpty()) {
|
||||
VM.observeStreamBundles(query)
|
||||
viewModel.observeStreamBundles(query)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,9 +20,7 @@
|
||||
package com.aurora.store.view.ui.spoof
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
@@ -40,15 +38,16 @@ import kotlinx.coroutines.launch
|
||||
import java.util.Properties
|
||||
|
||||
@AndroidEntryPoint
|
||||
class DeviceSpoofFragment : BaseFragment() {
|
||||
class DeviceSpoofFragment : BaseFragment(R.layout.fragment_generic_recycler) {
|
||||
|
||||
private lateinit var B: FragmentGenericRecyclerBinding
|
||||
private lateinit var spoofProvider: SpoofProvider
|
||||
|
||||
private var properties: Properties = Properties()
|
||||
private var _binding: FragmentGenericRecyclerBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
private val viewModel: SpoofViewModel by viewModels()
|
||||
|
||||
private lateinit var spoofProvider: SpoofProvider
|
||||
private lateinit var properties: Properties
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(): DeviceSpoofFragment {
|
||||
@@ -58,30 +57,16 @@ class DeviceSpoofFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
B = FragmentGenericRecyclerBinding.bind(
|
||||
inflater.inflate(
|
||||
R.layout.fragment_generic_recycler,
|
||||
container,
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
properties = NativeDeviceInfoProvider(requireContext()).getNativeDeviceProperties()
|
||||
spoofProvider = SpoofProvider(requireContext())
|
||||
|
||||
return B.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentGenericRecyclerBinding.bind(view)
|
||||
|
||||
if (spoofProvider.isDeviceSpoofEnabled())
|
||||
properties = spoofProvider.getSpoofDeviceProperties()
|
||||
spoofProvider = SpoofProvider(requireContext())
|
||||
properties = if (spoofProvider.isDeviceSpoofEnabled()) {
|
||||
spoofProvider.getSpoofDeviceProperties()
|
||||
} else {
|
||||
NativeDeviceInfoProvider(requireContext()).getNativeDeviceProperties()
|
||||
}
|
||||
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
@@ -91,8 +76,13 @@ class DeviceSpoofFragment : BaseFragment() {
|
||||
viewModel.fetchAvailableDevices(view.context)
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateController(locales: List<Properties>) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
locales
|
||||
.sortedBy { it.getProperty("UserReadableName") }
|
||||
|
||||
@@ -21,9 +21,7 @@ package com.aurora.store.view.ui.spoof
|
||||
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.aurora.extensions.toast
|
||||
import com.aurora.store.R
|
||||
import com.aurora.store.data.providers.SpoofProvider
|
||||
@@ -34,15 +32,16 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
import java.util.Locale
|
||||
|
||||
@AndroidEntryPoint
|
||||
class LocaleSpoofFragment : BaseFragment() {
|
||||
|
||||
private lateinit var B: FragmentGenericRecyclerBinding
|
||||
private lateinit var spoofProvider: SpoofProvider
|
||||
|
||||
private var locale: Locale = Locale.getDefault()
|
||||
class LocaleSpoofFragment : BaseFragment(R.layout.fragment_generic_recycler) {
|
||||
|
||||
private val TAG = LocaleSpoofFragment::class.java.simpleName
|
||||
|
||||
private var _binding: FragmentGenericRecyclerBinding? = null
|
||||
private val binding get() = _binding!!
|
||||
|
||||
private lateinit var spoofProvider: SpoofProvider
|
||||
private lateinit var locale: Locale
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun newInstance(): LocaleSpoofFragment {
|
||||
@@ -52,29 +51,16 @@ class LocaleSpoofFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View {
|
||||
B = FragmentGenericRecyclerBinding.bind(
|
||||
inflater.inflate(
|
||||
R.layout.fragment_generic_recycler,
|
||||
container,
|
||||
false
|
||||
)
|
||||
)
|
||||
|
||||
spoofProvider = SpoofProvider(requireContext())
|
||||
|
||||
return B.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
_binding = FragmentGenericRecyclerBinding.bind(view)
|
||||
|
||||
if (spoofProvider.isLocaleSpoofEnabled())
|
||||
locale = spoofProvider.getSpoofLocale()
|
||||
spoofProvider = SpoofProvider(requireContext())
|
||||
locale = if (spoofProvider.isLocaleSpoofEnabled()) {
|
||||
spoofProvider.getSpoofLocale()
|
||||
} else {
|
||||
Locale.getDefault()
|
||||
}
|
||||
|
||||
try {
|
||||
updateController(fetchAvailableLocales())
|
||||
@@ -83,8 +69,13 @@ class LocaleSpoofFragment : BaseFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
_binding = null
|
||||
}
|
||||
|
||||
private fun updateController(locales: List<Locale>) {
|
||||
B.recycler.withModels {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
locales
|
||||
.sortedBy { it.displayName }
|
||||
|
||||
Reference in New Issue
Block a user