mirror of
https://github.com/jrpie/Launcher.git
synced 2025-04-11 23:04:32 +02:00
remove global variables from ListActivity
This commit is contained in:
parent
55af392706
commit
492749a340
3 changed files with 25 additions and 31 deletions
|
@ -1,7 +1,6 @@
|
||||||
package de.jrpie.android.launcher.ui.list
|
package de.jrpie.android.launcher.ui.list
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
|
@ -33,16 +32,6 @@ import de.jrpie.android.launcher.ui.list.apps.ListFragmentApps
|
||||||
import de.jrpie.android.launcher.ui.list.other.ListFragmentOther
|
import de.jrpie.android.launcher.ui.list.other.ListFragmentOther
|
||||||
|
|
||||||
|
|
||||||
// TODO: Better solution for this intercommunication functionality (used in list-fragments)
|
|
||||||
var intention = ListActivity.ListActivityIntention.VIEW
|
|
||||||
var favoritesVisibility: AppFilter.Companion.AppSetVisibility =
|
|
||||||
AppFilter.Companion.AppSetVisibility.VISIBLE
|
|
||||||
var privateSpaceVisibility: AppFilter.Companion.AppSetVisibility =
|
|
||||||
AppFilter.Companion.AppSetVisibility.VISIBLE
|
|
||||||
var hiddenVisibility: AppFilter.Companion.AppSetVisibility =
|
|
||||||
AppFilter.Companion.AppSetVisibility.HIDDEN
|
|
||||||
var forGesture: String? = null
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The [ListActivity] is the most general purpose activity in Launcher:
|
* The [ListActivity] is the most general purpose activity in Launcher:
|
||||||
* - used to view all apps and edit their settings
|
* - used to view all apps and edit their settings
|
||||||
|
@ -52,11 +41,19 @@ var forGesture: String? = null
|
||||||
*/
|
*/
|
||||||
class ListActivity : AppCompatActivity(), UIObject {
|
class ListActivity : AppCompatActivity(), UIObject {
|
||||||
private lateinit var binding: ListBinding
|
private lateinit var binding: ListBinding
|
||||||
|
var intention = ListActivityIntention.VIEW
|
||||||
|
var favoritesVisibility: AppFilter.Companion.AppSetVisibility =
|
||||||
|
AppFilter.Companion.AppSetVisibility.VISIBLE
|
||||||
|
var privateSpaceVisibility: AppFilter.Companion.AppSetVisibility =
|
||||||
|
AppFilter.Companion.AppSetVisibility.VISIBLE
|
||||||
|
var hiddenVisibility: AppFilter.Companion.AppSetVisibility =
|
||||||
|
AppFilter.Companion.AppSetVisibility.HIDDEN
|
||||||
|
var forGesture: String? = null
|
||||||
|
|
||||||
|
|
||||||
private fun updateLockIcon(locked: Boolean) {
|
private fun updateLockIcon(locked: Boolean) {
|
||||||
if (
|
if (
|
||||||
// only show lock for VIEW intention
|
// only show lock for VIEW intention
|
||||||
(intention != ListActivityIntention.VIEW)
|
(intention != ListActivityIntention.VIEW)
|
||||||
// hide lock when private space does not exist
|
// hide lock when private space does not exist
|
||||||
|| !isPrivateSpaceSetUp(this)
|
|| !isPrivateSpaceSetUp(this)
|
||||||
|
@ -261,7 +258,7 @@ private val TAB_TITLES = arrayOf(
|
||||||
* The [ListSectionsPagerAdapter] returns the fragment,
|
* The [ListSectionsPagerAdapter] returns the fragment,
|
||||||
* which corresponds to the selected tab in [ListActivity].
|
* which corresponds to the selected tab in [ListActivity].
|
||||||
*/
|
*/
|
||||||
class ListSectionsPagerAdapter(private val context: Context, fm: FragmentManager) :
|
class ListSectionsPagerAdapter(private val activity: ListActivity, fm: FragmentManager) :
|
||||||
FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
|
FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
|
||||||
|
|
||||||
override fun getItem(position: Int): Fragment {
|
override fun getItem(position: Int): Fragment {
|
||||||
|
@ -273,11 +270,11 @@ class ListSectionsPagerAdapter(private val context: Context, fm: FragmentManager
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getPageTitle(position: Int): CharSequence {
|
override fun getPageTitle(position: Int): CharSequence {
|
||||||
return context.resources.getString(TAB_TITLES[position])
|
return activity.resources.getString(TAB_TITLES[position])
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getCount(): Int {
|
override fun getCount(): Int {
|
||||||
return when (intention) {
|
return when (activity.intention) {
|
||||||
ListActivity.ListActivityIntention.VIEW -> 1
|
ListActivity.ListActivityIntention.VIEW -> 1
|
||||||
else -> 2
|
else -> 2
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,11 +17,6 @@ import de.jrpie.android.launcher.databinding.ListAppsBinding
|
||||||
import de.jrpie.android.launcher.preferences.LauncherPreferences
|
import de.jrpie.android.launcher.preferences.LauncherPreferences
|
||||||
import de.jrpie.android.launcher.ui.UIObject
|
import de.jrpie.android.launcher.ui.UIObject
|
||||||
import de.jrpie.android.launcher.ui.list.ListActivity
|
import de.jrpie.android.launcher.ui.list.ListActivity
|
||||||
import de.jrpie.android.launcher.ui.list.favoritesVisibility
|
|
||||||
import de.jrpie.android.launcher.ui.list.forGesture
|
|
||||||
import de.jrpie.android.launcher.ui.list.hiddenVisibility
|
|
||||||
import de.jrpie.android.launcher.ui.list.intention
|
|
||||||
import de.jrpie.android.launcher.ui.list.privateSpaceVisibility
|
|
||||||
import de.jrpie.android.launcher.ui.openSoftKeyboard
|
import de.jrpie.android.launcher.ui.openSoftKeyboard
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +49,7 @@ class ListFragmentApps : Fragment(), UIObject {
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferencesListener)
|
.registerOnSharedPreferenceChangeListener(sharedPreferencesListener)
|
||||||
|
|
||||||
binding.listAppsCheckBoxFavorites.isChecked =
|
binding.listAppsCheckBoxFavorites.isChecked =
|
||||||
(favoritesVisibility == AppFilter.Companion.AppSetVisibility.EXCLUSIVE)
|
((activity as? ListActivity)?.favoritesVisibility == AppFilter.Companion.AppSetVisibility.EXCLUSIVE)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStop() {
|
override fun onStop() {
|
||||||
|
@ -67,16 +62,17 @@ class ListFragmentApps : Fragment(), UIObject {
|
||||||
override fun setOnClicks() {}
|
override fun setOnClicks() {}
|
||||||
|
|
||||||
override fun adjustLayout() {
|
override fun adjustLayout() {
|
||||||
|
val listActivity = activity as? ListActivity ?: return
|
||||||
|
|
||||||
appsRecyclerAdapter =
|
appsRecyclerAdapter =
|
||||||
AppsRecyclerAdapter(
|
AppsRecyclerAdapter(
|
||||||
requireActivity(), binding.root, intention, forGesture,
|
listActivity, binding.root, listActivity.intention, listActivity.forGesture,
|
||||||
appFilter = AppFilter(
|
appFilter = AppFilter(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
"",
|
"",
|
||||||
favoritesVisibility = favoritesVisibility,
|
favoritesVisibility = listActivity.favoritesVisibility,
|
||||||
privateSpaceVisibility = privateSpaceVisibility,
|
privateSpaceVisibility = listActivity.privateSpaceVisibility,
|
||||||
hiddenVisibility = hiddenVisibility
|
hiddenVisibility = listActivity.hiddenVisibility
|
||||||
),
|
),
|
||||||
layout = LauncherPreferences.list().layout()
|
layout = LauncherPreferences.list().layout()
|
||||||
)
|
)
|
||||||
|
@ -124,7 +120,8 @@ class ListFragmentApps : Fragment(), UIObject {
|
||||||
|
|
||||||
if (newText == " " &&
|
if (newText == " " &&
|
||||||
!appsRecyclerAdapter.disableAutoLaunch &&
|
!appsRecyclerAdapter.disableAutoLaunch &&
|
||||||
intention == ListActivity.ListActivityIntention.VIEW &&
|
(activity as? ListActivity)?.intention
|
||||||
|
== ListActivity.ListActivityIntention.VIEW &&
|
||||||
LauncherPreferences.functionality().searchAutoLaunch()
|
LauncherPreferences.functionality().searchAutoLaunch()
|
||||||
) {
|
) {
|
||||||
appsRecyclerAdapter.disableAutoLaunch = true
|
appsRecyclerAdapter.disableAutoLaunch = true
|
||||||
|
@ -141,17 +138,17 @@ class ListFragmentApps : Fragment(), UIObject {
|
||||||
})
|
})
|
||||||
|
|
||||||
binding.listAppsCheckBoxFavorites.setOnClickListener {
|
binding.listAppsCheckBoxFavorites.setOnClickListener {
|
||||||
favoritesVisibility =
|
listActivity.favoritesVisibility =
|
||||||
if (binding.listAppsCheckBoxFavorites.isChecked) {
|
if (binding.listAppsCheckBoxFavorites.isChecked) {
|
||||||
AppFilter.Companion.AppSetVisibility.EXCLUSIVE
|
AppFilter.Companion.AppSetVisibility.EXCLUSIVE
|
||||||
} else {
|
} else {
|
||||||
AppFilter.Companion.AppSetVisibility.VISIBLE
|
AppFilter.Companion.AppSetVisibility.VISIBLE
|
||||||
}
|
}
|
||||||
appsRecyclerAdapter.setFavoritesVisibility(favoritesVisibility)
|
appsRecyclerAdapter.setFavoritesVisibility(listActivity.favoritesVisibility)
|
||||||
(activity as? ListActivity)?.updateTitle()
|
(activity as? ListActivity)?.updateTitle()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intention == ListActivity.ListActivityIntention.VIEW
|
if (listActivity.intention == ListActivity.ListActivityIntention.VIEW
|
||||||
&& LauncherPreferences.functionality().searchAutoOpenKeyboard()
|
&& LauncherPreferences.functionality().searchAutoOpenKeyboard()
|
||||||
) {
|
) {
|
||||||
binding.listAppsSearchview.openSoftKeyboard(requireContext())
|
binding.listAppsSearchview.openSoftKeyboard(requireContext())
|
||||||
|
|
|
@ -11,7 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||||
import de.jrpie.android.launcher.R
|
import de.jrpie.android.launcher.R
|
||||||
import de.jrpie.android.launcher.REQUEST_CHOOSE_APP
|
import de.jrpie.android.launcher.REQUEST_CHOOSE_APP
|
||||||
import de.jrpie.android.launcher.actions.LauncherAction
|
import de.jrpie.android.launcher.actions.LauncherAction
|
||||||
import de.jrpie.android.launcher.ui.list.forGesture
|
import de.jrpie.android.launcher.ui.list.ListActivity
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The [OtherRecyclerAdapter] will only be displayed in the ListActivity,
|
* The [OtherRecyclerAdapter] will only be displayed in the ListActivity,
|
||||||
|
@ -36,7 +36,7 @@ class OtherRecyclerAdapter(val activity: Activity) :
|
||||||
val pos = bindingAdapterPosition
|
val pos = bindingAdapterPosition
|
||||||
val content = othersList[pos]
|
val content = othersList[pos]
|
||||||
|
|
||||||
forGesture?.let { returnChoiceIntent(it, content) }
|
(activity as? ListActivity)?.forGesture?.let { returnChoiceIntent(it, content) }
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|
Loading…
Add table
Reference in a new issue