From 94399ab9d1daf66fac370701c09da8e8cbf5dbbe Mon Sep 17 00:00:00 2001 From: HeCodes2Much Date: Wed, 8 May 2024 17:04:54 +0100 Subject: [PATCH] Feat: Added Swipe Actions / Options. --- .../droidworksstudio/launcher/Constants.kt | 3 + .../launcher/helper/PreferenceHelper.kt | 8 ++ .../launcher/ui/home/HomeFragment.kt | 4 +- .../launcher/ui/settings/SettingsFragment.kt | 17 ++- .../launcher/viewmodel/PreferenceViewModel.kt | 12 ++ app/src/main/res/layout/fragment_settings.xml | 128 ++++++++++++------ app/src/main/res/values/strings.xml | 10 +- 7 files changed, 134 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/Constants.kt b/app/src/main/java/com/github/droidworksstudio/launcher/Constants.kt index 92702d4..1b7cc18 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/Constants.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/Constants.kt @@ -12,6 +12,9 @@ object Constants { const val SHOW_STATUS_BAR = "SHOW_STATUS_BAR" const val DOUBLE_TAP_LOCK = "DOUBLE_TAP_LOCK" + const val SWIPE_NOTIFICATION = "SWIPE_NOTIFICATION" + const val SWIPE_SEARCH = "SWIPE_SEARCH" + const val DATE_COLOR = "DATE_COLOR" const val TIME_COLOR = "TIME_COLOR" const val BATTERY_COLOR = "BATTERY_COLOR" diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/helper/PreferenceHelper.kt b/app/src/main/java/com/github/droidworksstudio/launcher/helper/PreferenceHelper.kt index 13be789..23bdcbd 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/helper/PreferenceHelper.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/helper/PreferenceHelper.kt @@ -109,4 +109,12 @@ class PreferenceHelper @Inject constructor(@ApplicationContext context: Context) var tapLockScreen: Boolean get() = prefs.getBoolean(Constants.DOUBLE_TAP_LOCK, false) set(value) = prefs.edit().putBoolean(Constants.DOUBLE_TAP_LOCK, value).apply() + + var swipeNotification: Boolean + get() = prefs.getBoolean(Constants.SWIPE_NOTIFICATION, true) + set(value) = prefs.edit().putBoolean(Constants.SWIPE_NOTIFICATION, value).apply() + + var swipeSearch: Boolean + get() = prefs.getBoolean(Constants.SWIPE_SEARCH, false) + set(value) = prefs.edit().putBoolean(Constants.SWIPE_SEARCH, value).apply() } \ No newline at end of file diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt index 079a80a..ec7c7f2 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/home/HomeFragment.kt @@ -288,11 +288,11 @@ class HomeFragment : Fragment(), OnItemClickedListener.OnAppsClickedListener, } override fun onTopReached() { - appHelper.expandNotificationDrawer(context) + if (preferenceHelper.swipeNotification) appHelper.expandNotificationDrawer(context) } override fun onBottomReached() { - appHelper.searchView(context) + if (preferenceHelper.swipeSearch) appHelper.searchView(context) } override fun onScroll(isTopReached: Boolean, isBottomReached: Boolean) { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt index fa5af15..b705ee8 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/ui/settings/SettingsFragment.kt @@ -61,6 +61,9 @@ class SettingsFragment : Fragment(), ScrollEventListener { initializeInjectedDependencies() observeClickListener() + + val packageInfo = requireContext().packageManager.getPackageInfo(requireContext().packageName, 0) + binding.versionInfo.text = getString(R.string.settings_version, getString(R.string.app_name), packageInfo.versionName) } @SuppressLint("SetTextI18n") @@ -73,7 +76,9 @@ class SettingsFragment : Fragment(), ScrollEventListener { binding.dateSwitchCompat.isChecked = preferenceHelper.showDate binding.batterySwitchCompat.isChecked = preferenceHelper.showBattery binding.dailyWordSwitchCompat.isChecked = preferenceHelper.showDailyWord - binding.gesturesLockSwitchCompat1.isChecked = preferenceHelper.tapLockScreen + binding.gesturesLockSwitchCompat.isChecked = preferenceHelper.tapLockScreen + binding.gesturesNotificationSwitchCompat.isChecked = preferenceHelper.swipeNotification + binding.gesturesSearchSwitchCompat.isChecked = preferenceHelper.swipeSearch } private fun observeClickListener() { @@ -139,10 +144,18 @@ class SettingsFragment : Fragment(), ScrollEventListener { preferenceViewModel.setShowDailyWord(isChecked) } - binding.gesturesLockSwitchCompat1.setOnCheckedChangeListener { _, isChecked -> + binding.gesturesLockSwitchCompat.setOnCheckedChangeListener { _, isChecked -> appHelper.enableAppAsAccessibilityService(requireContext(), preferenceHelper.tapLockScreen) preferenceViewModel.setDoubleTapLock(isChecked) } + + binding.gesturesNotificationSwitchCompat.setOnCheckedChangeListener { _, isChecked -> + preferenceViewModel.setSwipeNotification(isChecked) + } + + binding.gesturesSearchSwitchCompat.setOnCheckedChangeListener { _, isChecked -> + preferenceViewModel.setSwipeSearch(isChecked) + } } override fun onTopReached() { diff --git a/app/src/main/java/com/github/droidworksstudio/launcher/viewmodel/PreferenceViewModel.kt b/app/src/main/java/com/github/droidworksstudio/launcher/viewmodel/PreferenceViewModel.kt index 580ec2f..87c3a35 100644 --- a/app/src/main/java/com/github/droidworksstudio/launcher/viewmodel/PreferenceViewModel.kt +++ b/app/src/main/java/com/github/droidworksstudio/launcher/viewmodel/PreferenceViewModel.kt @@ -31,6 +31,8 @@ class PreferenceViewModel @Inject constructor( val appTextSizeLiveData: MutableLiveData = MutableLiveData() val batteryTextSizeLiveData: MutableLiveData = MutableLiveData() val tapLockScreenLiveData: MutableLiveData = MutableLiveData() + val swipeNotificationLiveData: MutableLiveData = MutableLiveData() + val swipeSearchLiveData: MutableLiveData = MutableLiveData() val appPaddingSizeLiveData: MutableLiveData = MutableLiveData() fun setFirstLaunch(firstLaunch: Boolean) { @@ -137,4 +139,14 @@ class PreferenceViewModel @Inject constructor( preferenceHelper.tapLockScreen = tapLockScreen tapLockScreenLiveData.postValue((preferenceHelper.tapLockScreen)) } + + fun setSwipeNotification(swipeNotification: Boolean){ + preferenceHelper.swipeNotification = swipeNotification + swipeNotificationLiveData.postValue((preferenceHelper.swipeNotification)) + } + + fun setSwipeSearch(swipeSearch: Boolean){ + preferenceHelper.swipeSearch = swipeSearch + swipeSearchLiveData.postValue((preferenceHelper.swipeSearch)) + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index a34e99b..a1e0eab 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -34,6 +34,16 @@ android:textSize="@dimen/text_super_large" style="@style/TextDefaultStyle"/> + + + + + + + + + + + + + + + + + + - - - + android:layout_marginHorizontal="10dp" + style="@style/TextDefaultStyle"/> + android:layout_marginHorizontal="10dp" + style="@style/TextDefaultStyle"/> + android:layout_marginHorizontal="10dp" + style="@style/TextDefaultStyle"/> - - - - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e25372b..c7c1a29 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,7 +20,7 @@ Uninstall App Launcher Settings - Version + %s Version: %s Home Display @@ -71,8 +71,14 @@ Favorite Apps Hidden Apps - Double tap to lock Select Wallpaper + Double tap to lock + Swipe down expand notification + Swipe up open search view + + Share + Feedback + Github Authentication Please login to get access