diff --git a/assets/translation.json b/assets/translation.json index 33f9aa7..32392a4 100644 --- a/assets/translation.json +++ b/assets/translation.json @@ -362,7 +362,12 @@ "Mark all as read": "全部标记为已读", "Do you want to mark all as read?" : "您要全部标记为已读吗?", "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": { "Home": "首頁", @@ -727,6 +732,11 @@ "Mark all as read": "全部標記為已讀", "Do you want to mark all as read?" : "您要全部標記為已讀嗎?", "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": "分類頁面" } } diff --git a/lib/foundation/appdata.dart b/lib/foundation/appdata.dart index 567cdda..93c1405 100644 --- a/lib/foundation/appdata.dart +++ b/lib/foundation/appdata.dart @@ -7,7 +7,9 @@ import 'package:venera/utils/data_sync.dart'; import 'package:venera/utils/io.dart'; class Appdata { - final Settings settings = Settings(); + Appdata._create(); + + final Settings settings = Settings._create(); var searchHistory = []; @@ -110,10 +112,10 @@ class Appdata { } } -final appdata = Appdata(); +final appdata = Appdata._create(); class Settings with ChangeNotifier { - Settings(); + Settings._create(); final _data = { '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", 'preloadImageCount': 4, 'followUpdatesFolder': null, + 'initialPage': '0', }; operator [](String key) { diff --git a/lib/pages/main_page.dart b/lib/pages/main_page.dart index 5ae04c5..dee8bb0 100644 --- a/lib/pages/main_page.dart +++ b/lib/pages/main_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:venera/foundation/appdata.dart'; import 'package:venera/pages/categories_page.dart'; import 'package:venera/pages/search_page.dart'; import 'package:venera/pages/settings/settings_page.dart'; @@ -39,6 +40,7 @@ class _MainPageState extends State { _observer = NaviObserver(); _navigatorKey = GlobalKey(); App.mainNavigatorKey = _navigatorKey; + index = int.tryParse(appdata.settings['initialPage'].toString()) ?? 0; super.initState(); } @@ -60,6 +62,7 @@ class _MainPageState extends State { @override Widget build(BuildContext context) { return NaviPane( + initialPage: index, observer: _observer, navigatorKey: _navigatorKey!, paneItems: [ diff --git a/lib/pages/settings/explore_settings.dart b/lib/pages/settings/explore_settings.dart index 957182e..6721a5e 100644 --- a/lib/pages/settings/explore_settings.dart +++ b/lib/pages/settings/explore_settings.dart @@ -80,6 +80,16 @@ class _ExploreSettingsState extends State { 'japanese': "Japanese", }, ).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(), ], ); }