From 747fd23b966125292ab01799e8ceac69b4d99c59 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Fri, 3 Nov 2023 00:21:28 +0800 Subject: [PATCH] Add experimental option to tweak swipe sensitivity --- app/src/main/kotlin/com/hippo/ehviewer/Settings.kt | 3 +++ app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt | 2 +- .../kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt | 3 ++- .../com/hippo/ehviewer/ui/settings/AdvancedScreen.kt | 7 +++++++ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 6 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt index 089caf3a2..e4d49db12 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/Settings.kt @@ -88,6 +88,9 @@ object Settings : DataStorePreferences(null) { var lastDawnDay by longPref("last_dawn_day", 0) var lastUpdateDay by longPref("last_update_day", 0) + // TODO: Remove this after swipe gestures are correctly handled in compose + var touchSlopFactor by intPref("touch_slop", 3) + init { if ("CN" == Locale.getDefault().country) { edit { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index 4f4c75b0a..df81efc55 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -244,7 +244,7 @@ class MainActivity : EhActivity() { BackHandler(drawerState.isOpen) { closeDrawer() } - LocalTouchSlopProvider(3f) { + LocalTouchSlopProvider(Settings.touchSlopFactor.toFloat()) { ModalNavigationDrawer( drawerContent = { ModalDrawerSheet( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt index ee1970891..a8c7c57c5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt @@ -62,6 +62,7 @@ import androidx.paging.compose.itemContentType import androidx.paging.compose.itemKey import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.R +import com.hippo.ehviewer.Settings import com.hippo.ehviewer.Settings.listThumbSize import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.big.History @@ -143,7 +144,7 @@ fun HistoryScreen(navigator: NavController) { true }, ) - LocalTouchSlopProvider(3f) { + LocalTouchSlopProvider(Settings.touchSlopFactor.toFloat()) { SwipeToDismiss( state = dismissState, background = {}, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index b4a600886..5ec90bfce 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -139,6 +139,13 @@ fun AdvancedScreen(navigator: DestinationsNavigator) { title = stringResource(id = R.string.preload_thumb_aggressively), value = Settings::preloadThumbAggressively, ) + IntSliderPreference( + maxValue = 5, + minValue = 1, + title = stringResource(id = R.string.settings_advanced_touch_slop), + summary = stringResource(id = R.string.settings_advanced_touch_slop_summary), + value = Settings::touchSlopFactor, + ) var userAgent by Settings::userAgent.observed val userAgentTitle = stringResource(id = R.string.user_agent) Preference( diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 2761ecac9..763ebecc7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -381,6 +381,8 @@ App 界面语言 [实验性] Cronet 集成 使用 Cronet 下载图片(性能更好) + [实验性] 触摸溢出系数 + 增大此项将降低滑动手势敏感度 导出数据 保存数据至外置存储器,例如下载列表,快速搜索列表 已导出数据至 %s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f11de4dc2..df9340d8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -425,6 +425,8 @@ App language [Experimental] Cronet integration Use Cronet for image download (better performance) + [Experimental] Touch slop factor + Increasing this will reduce swipe gesture sensitivity Export data Save data like download list, quick search list, to external storage Exported data to %s