Add initial page setting. Close #240

This commit is contained in:
2025-03-05 17:44:20 +08:00
parent 316f61394d
commit 6426ebaf16
4 changed files with 31 additions and 5 deletions

View File

@@ -362,7 +362,12 @@
"Mark all as read": "全部标记为已读", "Mark all as read": "全部标记为已读",
"Do you want to mark all as read?" : "您要全部标记为已读吗?", "Do you want to mark all as read?" : "您要全部标记为已读吗?",
"Swipe down for previous chapter": "向下滑动查看上一章", "Swipe down for previous chapter": "向下滑动查看上一章",
"Swipe up for next chapter": "向上滑动查看下一章" "Swipe up for next chapter": "向上滑动查看下一章",
"Initial Page": "初始页面",
"Home Page": "主页",
"Favorites Page": "收藏页面",
"Explore Page": "探索页面",
"Categories Page": "分类页面"
}, },
"zh_TW": { "zh_TW": {
"Home": "首頁", "Home": "首頁",
@@ -727,6 +732,11 @@
"Mark all as read": "全部標記為已讀", "Mark all as read": "全部標記為已讀",
"Do you want to mark all as read?" : "您要全部標記為已讀嗎?", "Do you want to mark all as read?" : "您要全部標記為已讀嗎?",
"Swipe down for previous chapter": "向下滑動查看上一章", "Swipe down for previous chapter": "向下滑動查看上一章",
"Swipe up for next chapter": "向上滑動查看下一章" "Swipe up for next chapter": "向上滑動查看下一章",
"Initial Page": "初始頁面",
"Home Page": "主頁",
"Favorites Page": "收藏頁面",
"Explore Page": "探索頁面",
"Categories Page": "分類頁面"
} }
} }

View File

@@ -7,7 +7,9 @@ import 'package:venera/utils/data_sync.dart';
import 'package:venera/utils/io.dart'; import 'package:venera/utils/io.dart';
class Appdata { class Appdata {
final Settings settings = Settings(); Appdata._create();
final Settings settings = Settings._create();
var searchHistory = <String>[]; var searchHistory = <String>[];
@@ -110,10 +112,10 @@ class Appdata {
} }
} }
final appdata = Appdata(); final appdata = Appdata._create();
class Settings with ChangeNotifier { class Settings with ChangeNotifier {
Settings(); Settings._create();
final _data = <String, dynamic>{ final _data = <String, dynamic>{
'comicDisplayMode': 'detailed', // detailed, brief 'comicDisplayMode': 'detailed', // detailed, brief
@@ -161,6 +163,7 @@ class Settings with ChangeNotifier {
'comicSourceListUrl': "https://cdn.jsdelivr.net/gh/venera-app/venera-configs@latest/index.json", 'comicSourceListUrl': "https://cdn.jsdelivr.net/gh/venera-app/venera-configs@latest/index.json",
'preloadImageCount': 4, 'preloadImageCount': 4,
'followUpdatesFolder': null, 'followUpdatesFolder': null,
'initialPage': '0',
}; };
operator [](String key) { operator [](String key) {

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:venera/foundation/appdata.dart';
import 'package:venera/pages/categories_page.dart'; import 'package:venera/pages/categories_page.dart';
import 'package:venera/pages/search_page.dart'; import 'package:venera/pages/search_page.dart';
import 'package:venera/pages/settings/settings_page.dart'; import 'package:venera/pages/settings/settings_page.dart';
@@ -39,6 +40,7 @@ class _MainPageState extends State<MainPage> {
_observer = NaviObserver(); _observer = NaviObserver();
_navigatorKey = GlobalKey(); _navigatorKey = GlobalKey();
App.mainNavigatorKey = _navigatorKey; App.mainNavigatorKey = _navigatorKey;
index = int.tryParse(appdata.settings['initialPage'].toString()) ?? 0;
super.initState(); super.initState();
} }
@@ -60,6 +62,7 @@ class _MainPageState extends State<MainPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return NaviPane( return NaviPane(
initialPage: index,
observer: _observer, observer: _observer,
navigatorKey: _navigatorKey!, navigatorKey: _navigatorKey!,
paneItems: [ paneItems: [

View File

@@ -80,6 +80,16 @@ class _ExploreSettingsState extends State<ExploreSettings> {
'japanese': "Japanese", 'japanese': "Japanese",
}, },
).toSliver(), ).toSliver(),
SelectSetting(
title: "Initial Page".tl,
settingKey: "initialPage",
optionTranslation: {
'0': "Home Page".tl,
'1': "Favorites Page".tl,
'2': "Explore Page".tl,
'3': "Categories Page".tl,
},
).toSliver(),
], ],
); );
} }