From c600d99c58a91150e8dd2d11f60945e74f9024c6 Mon Sep 17 00:00:00 2001 From: nyne Date: Tue, 11 Feb 2025 19:02:16 +0800 Subject: [PATCH] Add Reverse Tap to Turn Page. Close #186 --- assets/translation.json | 6 ++++-- lib/foundation/appdata.dart | 1 + lib/pages/reader/gesture.dart | 18 ++++++++++++------ lib/pages/reader/images.dart | 2 -- lib/pages/settings/reader.dart | 7 +++++++ 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/assets/translation.json b/assets/translation.json index 7be6c04..6a9019d 100644 --- a/assets/translation.json +++ b/assets/translation.json @@ -330,7 +330,8 @@ "Not added": "未添加", "Create a folder": "新建收藏夹", "Created successfully": "创建成功", - "name": "名称" + "name": "名称", + "Reverse tap to turn Pages": "反转点击翻页" }, "zh_TW": { "Home": "首頁", @@ -663,6 +664,7 @@ "Not added": "未添加", "Create a folder": "新建收藏夾", "Created successfully": "創建成功", - "name": "名稱" + "name": "名稱", + "Reverse tap to turn Pages": "反轉點擊翻頁" } } \ No newline at end of file diff --git a/lib/foundation/appdata.dart b/lib/foundation/appdata.dart index b68c39a..485e8cb 100644 --- a/lib/foundation/appdata.dart +++ b/lib/foundation/appdata.dart @@ -135,6 +135,7 @@ class _Settings with ChangeNotifier { 'readerMode': 'galleryLeftToRight', // values of [ReaderMode] 'readerScreenPicNumber': 1, // 1 - 5 'enableTapToTurnPages': true, + 'reverseTapToTurnPages': false, 'enablePageAnimation': true, 'language': 'system', // system, zh-CN, zh-TW, en-US 'cacheSize': 2048, // in MB diff --git a/lib/pages/reader/gesture.dart b/lib/pages/reader/gesture.dart index 72f7dac..1da7f3e 100644 --- a/lib/pages/reader/gesture.dart +++ b/lib/pages/reader/gesture.dart @@ -191,31 +191,37 @@ class _ReaderGestureDetectorState extends State<_ReaderGestureDetector> { isBottom = true; } bool isCenter = false; + var prev = context.reader.toPrevPage; + var next = context.reader.toNextPage; + if (appdata.settings['reverseTapToTurnPages']) { + prev = context.reader.toNextPage; + next = context.reader.toPrevPage; + } switch (context.reader.mode) { case ReaderMode.galleryLeftToRight: case ReaderMode.continuousLeftToRight: if (isLeft) { - context.reader.toPrevPage(); + prev(); } else if (isRight) { - context.reader.toNextPage(); + next(); } else { isCenter = true; } case ReaderMode.galleryRightToLeft: case ReaderMode.continuousRightToLeft: if (isLeft) { - context.reader.toNextPage(); + next(); } else if (isRight) { - context.reader.toPrevPage(); + prev(); } else { isCenter = true; } case ReaderMode.galleryTopToBottom: case ReaderMode.continuousTopToBottom: if (isTop) { - context.reader.toPrevPage(); + prev(); } else if (isBottom) { - context.reader.toNextPage(); + next(); } else { isCenter = true; } diff --git a/lib/pages/reader/images.dart b/lib/pages/reader/images.dart index 63493c8..5c65483 100644 --- a/lib/pages/reader/images.dart +++ b/lib/pages/reader/images.dart @@ -700,10 +700,8 @@ class _ContinuousModeState extends State<_ContinuousMode> @override bool handleOnTap(Offset location) { if (delayedIsScrolling) { - print('isScrolling'); return true; } - print('isNotScrolling'); return false; } } diff --git a/lib/pages/settings/reader.dart b/lib/pages/settings/reader.dart index 79f3fa8..82b088c 100644 --- a/lib/pages/settings/reader.dart +++ b/lib/pages/settings/reader.dart @@ -22,6 +22,13 @@ class _ReaderSettingsState extends State { widget.onChanged?.call("enableTapToTurnPages"); }, ).toSliver(), + _SwitchSetting( + title: "Reverse tap to turn Pages".tl, + settingKey: "reverseTapToTurnPages", + onChanged: () { + widget.onChanged?.call("reverseTapToTurnPages"); + }, + ).toSliver(), _SwitchSetting( title: "Page animation".tl, settingKey: "enablePageAnimation",