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.IntentFilter
import android.os.BatteryManager
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.launch
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 batteryPct = level * 100 / scale.toFloat()
activity.modifyDate("${batteryPct.toInt()}%", 3)
}
}

View file

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

View file

@ -5,7 +5,6 @@ import android.accessibilityservice.AccessibilityServiceInfo
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.content.pm.LauncherActivityInfo
import android.content.pm.LauncherApps
import android.content.pm.ServiceInfo
@ -13,10 +12,12 @@ import android.provider.Settings
import android.view.accessibility.AccessibilityManager
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?> {
val app = preferences.getString("${direction}SwipeApp", "")?.split("§splitter§")
private val sharedPreferenceManager = SharedPreferenceManager(context)
fun getSwipeInfo(launcherApps: LauncherApps, direction: String): Pair<LauncherActivityInfo?, Int?> {
val app = sharedPreferenceManager.getGestureInfo(direction)
if (app != null) {
if (app.size >= 3)
@ -31,7 +32,7 @@ class GestureUtils {
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 enabledServices =
am.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK)
@ -47,7 +48,7 @@ class GestureUtils {
return false
}
fun promptEnableAccessibility(context: Context) {
fun promptEnableAccessibility() {
AlertDialog.Builder(context).apply {
setTitle("Confirmation")
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 val stringUtils = StringUtils()
private val uiUtils = UIUtils()
private val gestureUtils = GestureUtils()
private lateinit var gestureUtils: GestureUtils
private var appActionMenu = AppActionMenu()
private val appMenuLinearLayoutManager = AppMenuLinearLayoutManager(this@MainActivity)
@ -118,7 +118,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
setupApps()
}
private fun setMainVariables() {
@ -142,6 +141,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
appUtils = AppUtils(this@MainActivity)
sharedPreferenceManager = SharedPreferenceManager(this@MainActivity)
gestureUtils = GestureUtils(this@MainActivity)
preferences = PreferenceManager.getDefaultSharedPreferences(this)
}
@ -161,8 +161,8 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
uiUtils.setStatusBar(window, preferences)
leftSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "left")
rightSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "right")
leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left")
rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right")
}
private fun setShortcuts() {
@ -338,11 +338,11 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
"leftSwipeApp" -> {
leftSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "left")
leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left")
}
"rightSwipeApp" -> {
rightSwipeActivity = gestureUtils.getSwipeInfo(preferences, launcherApps, "right")
rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right")
}
"battery_enabled" -> {
@ -446,10 +446,12 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
}
}
else {
withContext(Dispatchers.Main) {
modifyDate("", 2)
}
}
}
}
suspend fun updateWeatherText() {
val temp = weatherSystem.getTemp()
@ -742,7 +744,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
override fun onDoubleTap(e: MotionEvent): Boolean {
if (preferences.getBoolean("doubleTap", false)) {
if (gestureUtils.isAccessibilityServiceEnabled(
this@MainActivity,
ScreenLockService::class.java
)
) {
@ -750,7 +751,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
intent.action = "LOCK_SCREEN"
startService(intent)
} else {
gestureUtils.promptEnableAccessibility(this@MainActivity)
gestureUtils.promptEnableAccessibility()
}
}

View file

@ -26,8 +26,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
val hiddenPref = findPreference<Preference?>("hidden_apps")
manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion()
leftSwipePref?.summary = sharedPreferenceManager.getGestureName(requireContext(), "left")
rightSwipePref?.summary = sharedPreferenceManager.getGestureName(requireContext(), "right")
leftSwipePref?.summary = sharedPreferenceManager.getGestureName("left")
rightSwipePref?.summary = sharedPreferenceManager.getGestureName("right")
if (gpsLocationPref != null && manualLocationPref != null) {
// Initial setup
@ -71,14 +71,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app")
val appDetails = result?.split("§splitter§")
if (leftSwipePref != null && result != null) {
setPreference("leftSwipeApp", result)
}
sharedPreferenceManager.setGestures(
"left", appDetails?.get(0)
"left", result
)
val appName = appDetails?.get(0)
val appName = sharedPreferenceManager.getGestureName("left")
leftSwipePref?.summary = appName
}
true }
@ -93,14 +91,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
setFragmentResultListener("request_key") { _, bundle ->
clearFragmentResultListener("request_key")
val result = bundle.getString("gesture_app")
val appDetails = result?.split("§splitter§")
if (rightSwipePref != null && result != null) {
setPreference("rightSwipeApp", result)
}
sharedPreferenceManager.setGestures(
"right", appDetails?.get(0)
"right", result
)
val appName = appDetails?.get(0)
val appName = sharedPreferenceManager.getGestureName("right")
rightSwipePref?.summary = appName
}
true }
@ -119,15 +115,4 @@ class SettingsFragment : PreferenceFragmentCompat() {
super.onResume()
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.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
class SharedPreferenceManager (context: Context) {
@ -81,15 +80,19 @@ class SharedPreferenceManager (context: Context) {
fun setGestures(direction: String, appName: String?) {
val editor = preferences.edit()
val nameKey = "$direction-name"
val nameKey = "${direction}SwipeApp"
editor.putString(nameKey, appName)
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? {
val key = "$direction-name"
return preferences.getString(key, "")
fun getGestureInfo(direction: String) : List<String>? {
return preferences.getString("${direction}SwipeApp", "")?.split("§splitter§")
}
}