From 55ed5ea42d0b9e42a18b9927b630964373181f36 Mon Sep 17 00:00:00 2001 From: ottoptj Date: Mon, 2 Sep 2024 13:32:34 +0300 Subject: [PATCH] Added the ability to swap out the clock and calendar apps for any other app --- .../java/eu/ottop/yamlauncher/MainActivity.kt | 58 +++++++++++++++---- .../settings/HomeSettingsFragment.kt | 29 +++++++++- .../settings/SharedPreferenceManager.kt | 4 +- app/src/main/res/xml/home_preferences.xml | 28 +++++++++ 4 files changed, 106 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt index 3c0fe70..6b19a55 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt @@ -94,6 +94,9 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh private val swipeThreshold = 100 private val swipeVelocityThreshold = 100 + private lateinit var clockApp: Pair + private lateinit var dateApp: Pair + private lateinit var leftSwipeActivity: Pair private lateinit var rightSwipeActivity: Pair @@ -311,6 +314,9 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh uiUtils.setStatusBar(window) }, 0) + clockApp = gestureUtils.getSwipeInfo(launcherApps, "clock") + dateApp = gestureUtils.getSwipeInfo(launcherApps, "date") + leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left") rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right") } @@ -333,23 +339,32 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh clock.setOnClickListener {_ -> if (sharedPreferenceManager.isClockGestureEnabled()) { - val intent = Intent(AlarmClock.ACTION_SHOW_ALARMS) - if (intent.resolveActivity(packageManager) != null) { - startActivity(intent) + if (sharedPreferenceManager.isGestureEnabled("clock") && clockApp.first != null && clockApp.second != null) { + launcherApps.startMainActivity(clockApp.first!!.componentName, launcherApps.profiles[clockApp.second!!], null, null) + } else { + val intent = Intent(AlarmClock.ACTION_SHOW_ALARMS) + if (intent.resolveActivity(packageManager) != null) { + startActivity(intent) + } } } } dateText.setOnClickListener { _ -> if (sharedPreferenceManager.isDateGestureEnabled()) { - startActivity( - Intent( - Intent.makeMainSelectorActivity( - Intent.ACTION_MAIN, - Intent.CATEGORY_APP_CALENDAR + + if (sharedPreferenceManager.isGestureEnabled("date") && dateApp.first != null && dateApp.second != null) { + launcherApps.startMainActivity(dateApp.first!!.componentName, launcherApps.profiles[dateApp.second!!], null, null) + } else { + startActivity( + Intent( + Intent.makeMainSelectorActivity( + Intent.ACTION_MAIN, + Intent.CATEGORY_APP_CALENDAR + ) ) ) - ) + } } } @@ -463,6 +478,30 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh uiUtils.setStatusBar(window) } + "clockSwipe" -> { + clockApp = gestureUtils.getSwipeInfo(launcherApps, "clock") + } + + "dateSwipe" -> { + dateApp = gestureUtils.getSwipeInfo(launcherApps, "date") + } + + "clockSwipeApp" -> { + clockApp = gestureUtils.getSwipeInfo(launcherApps, "clock") + } + + "dateSwipeApp" -> { + dateApp = gestureUtils.getSwipeInfo(launcherApps, "date") + } + + "leftSwipe" -> { + leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left") + } + + "rightSwipe" -> { + rightSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "right") + } + "leftSwipeApp" -> { leftSwipeActivity = gestureUtils.getSwipeInfo(launcherApps, "left") } @@ -817,7 +856,6 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh // Swipe left else if (deltaX < -swipeThreshold && abs(velocityX) > swipeVelocityThreshold && sharedPreferenceManager.isGestureEnabled("left")){ - if (leftSwipeActivity.first != null && leftSwipeActivity.second != null) { launcherApps.startMainActivity(leftSwipeActivity.first!!.componentName, launcherApps.profiles[leftSwipeActivity.second!!], null, null) } else { diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt index d255bcb..677a175 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt @@ -13,12 +13,17 @@ class HomeSettingsFragment : PreferenceFragmentCompat(), TitleProvider { private var manualLocationPref: Preference? = null private var leftSwipePref: Preference? = null private var rightSwipePref: Preference? = null + private var clockApp: Preference? = null + private var dateApp: Preference? = null - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.home_preferences, rootKey) sharedPreferenceManager = SharedPreferenceManager(requireContext()) + clockApp = findPreference("clockSwipeApp") + dateApp = findPreference("dateSwipeApp") + val gpsLocationPref = findPreference("gpsLocation") manualLocationPref = findPreference("manualLocation") leftSwipePref = findPreference("leftSwipeApp") @@ -63,10 +68,32 @@ class HomeSettingsFragment : PreferenceFragmentCompat(), TitleProvider { .addToBackStack(null) .commit() true } + + clockApp?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, GestureAppsFragment("clock")) + .addToBackStack(null) + .commit() + true } + + dateApp?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settingsLayout, GestureAppsFragment("date")) + .addToBackStack(null) + .commit() + true } } override fun onResume() { super.onResume() + clockApp?.summary = sharedPreferenceManager.getGestureName("clock") + + dateApp?.summary = sharedPreferenceManager.getGestureName("date") + manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion() leftSwipePref?.summary = sharedPreferenceManager.getGestureName("left") diff --git a/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt b/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt index 97e9ffc..7ab267b 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt @@ -139,9 +139,9 @@ class SharedPreferenceManager (private val context: Context) { } // Gestures - fun setGestures(direction: String, appName: String?) { + fun setGestures(direction: String, appInfo: String?) { val editor = preferences.edit() - editor.putString("${direction}SwipeApp", appName) + editor.putString("${direction}SwipeApp", appInfo) editor.apply() } diff --git a/app/src/main/res/xml/home_preferences.xml b/app/src/main/res/xml/home_preferences.xml index e87faf2..369115a 100644 --- a/app/src/main/res/xml/home_preferences.xml +++ b/app/src/main/res/xml/home_preferences.xml @@ -38,6 +38,20 @@ android:title="Clicking Time Opens Clock" app:dependency="clockEnabled" app:key="clockClick" /> + + + +