More unification of sharedpreferences and refactoring

This commit is contained in:
ottoptj 2024-08-09 20:22:09 +03:00
commit 22a9d07815
6 changed files with 42 additions and 48 deletions

View file

@ -5,6 +5,8 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.os.BatteryManager import android.os.BatteryManager
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.launch
class BatteryReceiver(private val activity: MainActivity) : BroadcastReceiver() { class BatteryReceiver(private val activity: MainActivity) : BroadcastReceiver() {
@ -14,7 +16,6 @@ class BatteryReceiver(private val activity: MainActivity) : BroadcastReceiver()
val scale = it.getIntExtra(BatteryManager.EXTRA_SCALE, -1) val scale = it.getIntExtra(BatteryManager.EXTRA_SCALE, -1)
val batteryPct = level * 100 / scale.toFloat() val batteryPct = level * 100 / scale.toFloat()
activity.modifyDate("${batteryPct.toInt()}%", 3) activity.modifyDate("${batteryPct.toInt()}%", 3)
} }
} }

View file

@ -2,6 +2,7 @@ package eu.ottop.yamlauncher
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.SharedPreferences
import android.content.pm.LauncherActivityInfo import android.content.pm.LauncherActivityInfo
import android.content.pm.LauncherApps import android.content.pm.LauncherApps
import android.os.Bundle import android.os.Bundle
@ -24,9 +25,9 @@ import kotlinx.coroutines.withContext
class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener { class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener {
private var adapter: GestureAppsAdapter? = null private var adapter: GestureAppsAdapter? = null
private val sharedPreferenceManager = SharedPreferenceManager(requireContext()) private lateinit var sharedPreferenceManager: SharedPreferenceManager
private var stringUtils = StringUtils() private var stringUtils = StringUtils()
private val appUtils = AppUtils(requireContext()) private lateinit var appUtils: AppUtils
private lateinit var launcherApps: LauncherApps private lateinit var launcherApps: LauncherApps
override fun onCreateView( override fun onCreateView(
@ -39,6 +40,8 @@ class GestureAppsFragment : Fragment(), GestureAppsAdapter.OnItemClickListener {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
sharedPreferenceManager = SharedPreferenceManager(requireContext())
appUtils = AppUtils(requireContext())
lifecycleScope.launch { lifecycleScope.launch {

View file

@ -5,7 +5,6 @@ import android.accessibilityservice.AccessibilityServiceInfo
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.LauncherActivityInfo import android.content.pm.LauncherActivityInfo
import android.content.pm.LauncherApps import android.content.pm.LauncherApps
import android.content.pm.ServiceInfo import android.content.pm.ServiceInfo
@ -13,10 +12,12 @@ import android.provider.Settings
import android.view.accessibility.AccessibilityManager import android.view.accessibility.AccessibilityManager
import androidx.appcompat.app.AppCompatActivity.ACCESSIBILITY_SERVICE import androidx.appcompat.app.AppCompatActivity.ACCESSIBILITY_SERVICE
class GestureUtils { class GestureUtils(private val context: Context) {
fun getSwipeInfo(preferences: SharedPreferences, launcherApps: LauncherApps, direction: String): Pair<LauncherActivityInfo?, Int?> { private val sharedPreferenceManager = SharedPreferenceManager(context)
val app = preferences.getString("${direction}SwipeApp", "")?.split("§splitter§")
fun getSwipeInfo(launcherApps: LauncherApps, direction: String): Pair<LauncherActivityInfo?, Int?> {
val app = sharedPreferenceManager.getGestureInfo(direction)
if (app != null) { if (app != null) {
if (app.size >= 3) if (app.size >= 3)
@ -31,7 +32,7 @@ class GestureUtils {
return Pair(null, null) return Pair(null, null)
} }
fun isAccessibilityServiceEnabled(context: Context, service: Class<out AccessibilityService>): Boolean { fun isAccessibilityServiceEnabled(service: Class<out AccessibilityService>): Boolean {
val am = context.getSystemService(ACCESSIBILITY_SERVICE) as AccessibilityManager val am = context.getSystemService(ACCESSIBILITY_SERVICE) as AccessibilityManager
val enabledServices = val enabledServices =
am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK) am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK)
@ -47,7 +48,7 @@ class GestureUtils {
return false return false
} }
fun promptEnableAccessibility(context: Context) { fun promptEnableAccessibility() {
AlertDialog.Builder(context).apply { AlertDialog.Builder(context).apply {
setTitle("Confirmation") setTitle("Confirmation")
setMessage("To lock with double tap, enable YAM Launcher in accessibility settings.") setMessage("To lock with double tap, enable YAM Launcher in accessibility settings.")

View file

@ -48,7 +48,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
private lateinit var appUtils: AppUtils private lateinit var appUtils: AppUtils
private val stringUtils = StringUtils() private val stringUtils = StringUtils()
private val uiUtils = UIUtils() private val uiUtils = UIUtils()
private val gestureUtils = GestureUtils() private lateinit var gestureUtils: GestureUtils
private var appActionMenu = AppActionMenu() private var appActionMenu = AppActionMenu()
private val appMenuLinearLayoutManager = AppMenuLinearLayoutManager(this@MainActivity) private val appMenuLinearLayoutManager = AppMenuLinearLayoutManager(this@MainActivity)
@ -118,7 +118,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
} }
setupApps() setupApps()
} }
private fun setMainVariables() { private fun setMainVariables() {
@ -142,6 +141,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
appUtils = AppUtils(this@MainActivity) appUtils = AppUtils(this@MainActivity)
sharedPreferenceManager = SharedPreferenceManager(this@MainActivity) sharedPreferenceManager = SharedPreferenceManager(this@MainActivity)
gestureUtils = GestureUtils(this@MainActivity)
preferences = PreferenceManager.getDefaultSharedPreferences(this) preferences = PreferenceManager.getDefaultSharedPreferences(this)
} }
@ -161,8 +161,8 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
uiUtils.setStatusBar(window, preferences) uiUtils.setStatusBar(window, preferences)
leftSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "left") leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left")
rightSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "right") rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right")
} }
private fun setShortcuts() { private fun setShortcuts() {
@ -338,11 +338,11 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
} }
"leftSwipeApp" -> { "leftSwipeApp" -> {
leftSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "left") leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left")
} }
"rightSwipeApp" -> { "rightSwipeApp" -> {
rightSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "right") rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right")
} }
"battery_enabled" -> { "battery_enabled" -> {
@ -446,7 +446,9 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
} }
} }
else { else {
modifyDate("", 2) withContext(Dispatchers.Main) {
modifyDate("", 2)
}
} }
} }
} }
@ -742,7 +744,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
override fun onDoubleTap(e: MotionEvent): Boolean { override fun onDoubleTap(e: MotionEvent): Boolean {
if (preferences.getBoolean("doubleTap", false)) { if (preferences.getBoolean("doubleTap", false)) {
if (gestureUtils.isAccessibilityServiceEnabled( if (gestureUtils.isAccessibilityServiceEnabled(
this@MainActivity,
ScreenLockService::class.java ScreenLockService::class.java
) )
) { ) {
@ -750,7 +751,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
intent.action = "LOCK_SCREEN" intent.action = "LOCK_SCREEN"
startService(intent) startService(intent)
} else { } else {
gestureUtils.promptEnableAccessibility(this@MainActivity) gestureUtils.promptEnableAccessibility()
} }
} }

View file

@ -26,8 +26,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
val hiddenPref = findPreference<Preference?>("hidden_apps") val hiddenPref = findPreference<Preference?>("hidden_apps")
manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion() manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion()
leftSwipePref?.summary = sharedPreferenceManager.getGestureName(requireContext(), "left") leftSwipePref?.summary = sharedPreferenceManager.getGestureName("left")
rightSwipePref?.summary = sharedPreferenceManager.getGestureName(requireContext(), "right") rightSwipePref?.summary = sharedPreferenceManager.getGestureName("right")
if (gpsLocationPref != null && manualLocationPref != null) { if (gpsLocationPref != null && manualLocationPref != null) {
// Initial setup // Initial setup
@ -71,14 +71,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
setFragmentResultListener("request_key") { _, bundle -> setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key") clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app") val result = bundle.getString("gesture_app")
val appDetails = result?.split("§splitter§")
if (leftSwipePref != null && result != null) {
setPreference("leftSwipeApp", result)
}
sharedPreferenceManager.setGestures( sharedPreferenceManager.setGestures(
"left", appDetails?.get(0) "left", result
) )
val appName = appDetails?.get(0)
val appName = sharedPreferenceManager.getGestureName("left")
leftSwipePref?.summary = appName leftSwipePref?.summary = appName
} }
true } true }
@ -93,14 +91,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
setFragmentResultListener("request_key") { _, bundle -> setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key") clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app") val result = bundle.getString("gesture_app")
val appDetails = result?.split("§splitter§")
if (rightSwipePref != null && result != null) {
setPreference("rightSwipeApp", result)
}
sharedPreferenceManager.setGestures( sharedPreferenceManager.setGestures(
"right", appDetails?.get(0) "right", result
) )
val appName = appDetails?.get(0)
val appName = sharedPreferenceManager.getGestureName("right")
rightSwipePref?.summary = appName rightSwipePref?.summary = appName
} }
true } true }
@ -119,15 +115,4 @@ class SettingsFragment : PreferenceFragmentCompat() {
super.onResume() super.onResume()
manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion() manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion()
} }
private fun setPreference(key: String, value: String) {
// Get the SharedPreferences instance
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
// Edit the SharedPreferences to update the value
with(sharedPreferences.edit()) {
putString(key, value)
apply()
}
}
} }

View file

@ -2,7 +2,6 @@ package eu.ottop.yamlauncher
import android.content.Context import android.content.Context
import android.widget.TextView import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
class SharedPreferenceManager (context: Context) { class SharedPreferenceManager (context: Context) {
@ -81,15 +80,19 @@ class SharedPreferenceManager (context: Context) {
fun setGestures(direction: String, appName: String?) { fun setGestures(direction: String, appName: String?) {
val editor = preferences.edit() val editor = preferences.edit()
val nameKey = "$direction-name" val nameKey = "${direction}SwipeApp"
editor.putString(nameKey, appName) editor.putString(nameKey, appName)
editor.apply() editor.apply()
} }
fun getGestureName(direction: String) : String? {
val key = "${direction}SwipeApp"
val name = preferences.getString(key, "")?.split("§splitter§")
return name?.get(0)
}
fun getGestureName(cont: Context, direction: String) : String? { fun getGestureInfo(direction: String) : List<String>? {
val key = "$direction-name" return preferences.getString("${direction}SwipeApp", "")?.split("§splitter§")
return preferences.getString(key, "")
} }
} }