Quick choose address

This commit is contained in:
niuhuan 2023-02-16 16:33:16 +08:00
parent c0662439da
commit a5e2c567ca
6 changed files with 68 additions and 8 deletions

View File

@ -85,7 +85,7 @@ Widget reloadSwitchAddressSetting() {
await method.reloadSwitchAddress(); await method.reloadSwitchAddress();
defaultToast(context, "分流2/3已同步"); defaultToast(context, "分流2/3已同步");
} catch (e, s) { } catch (e, s) {
print("$e\$s"); print("$e\n$s");
defaultToast(context, "分流同步失败"); defaultToast(context, "分流同步失败");
} }
} else if (choose == "重制分流为默认值") { } else if (choose == "重制分流为默认值") {
@ -93,7 +93,7 @@ Widget reloadSwitchAddressSetting() {
await method.resetSwitchAddress(); await method.resetSwitchAddress();
defaultToast(context, "分流2/3已重制为默认值"); defaultToast(context, "分流2/3已重制为默认值");
} catch (e, s) { } catch (e, s) {
print("$e\$s"); print("$e\n$s");
defaultToast(context, "分流重制失败"); defaultToast(context, "分流重制失败");
} }
} }
@ -103,3 +103,53 @@ Widget reloadSwitchAddressSetting() {
}, },
); );
} }
Future chooseAddressAndSwitch(BuildContext context) async {
String? choose = await showDialog<String>(
context: context,
builder: (BuildContext context) {
return SimpleDialog(
title: const Text('选择分流'),
children: <Widget>[
..._addresses.entries.map(
(e) => SimpleDialogOption(
child: Text(e.value),
onPressed: () {
Navigator.of(context).pop(e.key);
},
),
),
SimpleDialogOption(
child: const Text("分流同步"),
onPressed: () {
Navigator.of(context).pop("分流同步");
},
)
],
);
},
);
if (choose != null) {
if ("分流同步" == choose) {
try {
await method.reloadSwitchAddress();
defaultToast(context, "分流2/3已同步");
} catch (e, s) {
print("$e\n$s");
defaultToast(context, "分流同步失败");
}
return;
}
await method.setSwitchAddress(choose);
_currentAddress = choose;
}
}
Widget addressActionButton(BuildContext context) {
return IconButton(
onPressed: () {
chooseAddressAndSwitch(context);
},
icon: const Icon(Icons.network_ping),
);
}

View File

@ -11,6 +11,7 @@ import 'package:pikapika/screens/RankingsScreen.dart';
import 'package:pikapika/screens/SearchScreen.dart'; import 'package:pikapika/screens/SearchScreen.dart';
import 'package:pikapika/screens/components/ContentError.dart'; import 'package:pikapika/screens/components/ContentError.dart';
import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/Method.dart';
import '../basic/config/Address.dart';
import '../basic/config/CategoriesColumnCount.dart'; import '../basic/config/CategoriesColumnCount.dart';
import '../basic/config/IconLoading.dart'; import '../basic/config/IconLoading.dart';
import 'ComicsScreen.dart'; import 'ComicsScreen.dart';
@ -48,6 +49,7 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
title: const Text('分类'), title: const Text('分类'),
actions: [ actions: [
aPopMenu(context), aPopMenu(context),
addressActionButton(context),
_searchBar.getSearchAction(context), _searchBar.getSearchAction(context),
], ],
); );

View File

@ -7,6 +7,7 @@ import 'package:pikapika/basic/store/Categories.dart';
import 'package:pikapika/basic/config/ListLayout.dart'; import 'package:pikapika/basic/config/ListLayout.dart';
import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/Method.dart';
import '../basic/Entities.dart'; import '../basic/Entities.dart';
import '../basic/config/Address.dart';
import '../basic/config/IconLoading.dart'; import '../basic/config/IconLoading.dart';
import 'SearchScreen.dart'; import 'SearchScreen.dart';
import 'components/ComicPager.dart'; import 'components/ComicPager.dart';
@ -55,6 +56,7 @@ class _ComicsScreenState extends State<ComicsScreen> {
title: Text(categoryTitle(widget.category)), title: Text(categoryTitle(widget.category)),
actions: [ actions: [
aPopMenu(context), aPopMenu(context),
addressActionButton(context),
_chooseCategoryAction(), _chooseCategoryAction(),
_categorySearchBar.getSearchAction(context), _categorySearchBar.getSearchAction(context),
], ],
@ -145,8 +147,8 @@ class _ComicsScreenState extends State<ComicsScreen> {
appBar = AppBar( appBar = AppBar(
title: Text(title), title: Text(title),
actions: [ actions: [
shadowCategoriesActionButton(context), aPopMenu(context),
chooseLayoutActionButton(context), addressActionButton(context),
_chooseCategoryAction(), _chooseCategoryAction(),
], ],
); );

View File

@ -4,7 +4,9 @@ import 'package:pikapika/basic/Method.dart';
import 'package:pikapika/basic/config/ListLayout.dart'; import 'package:pikapika/basic/config/ListLayout.dart';
import 'package:pikapika/basic/config/ShadowCategories.dart'; import 'package:pikapika/basic/config/ShadowCategories.dart';
import '../basic/config/Address.dart';
import 'components/ComicListBuilder.dart'; import 'components/ComicListBuilder.dart';
import 'components/Common.dart';
import 'components/RightClickPop.dart'; import 'components/RightClickPop.dart';
// //
@ -31,8 +33,8 @@ class _RandomComicsScreenState extends State<RandomComicsScreen> {
appBar: AppBar( appBar: AppBar(
title: const Text('随机本子'), title: const Text('随机本子'),
actions: [ actions: [
shadowCategoriesActionButton(context), aPopMenu(context),
chooseLayoutActionButton(context), addressActionButton(context),
], ],
), ),
body: ComicListBuilder(method.randomComics), body: ComicListBuilder(method.randomComics),

View File

@ -8,8 +8,10 @@ import 'package:pikapika/screens/components/ContentBuilder.dart';
import '../basic/Cross.dart'; import '../basic/Cross.dart';
import '../basic/Navigator.dart'; import '../basic/Navigator.dart';
import '../basic/config/Address.dart';
import 'ComicsScreen.dart'; import 'ComicsScreen.dart';
import 'components/ComicListBuilder.dart'; import 'components/ComicListBuilder.dart';
import 'components/Common.dart';
import 'components/FitButton.dart'; import 'components/FitButton.dart';
import 'components/RightClickPop.dart'; import 'components/RightClickPop.dart';
@ -32,8 +34,8 @@ class RankingsScreen extends StatelessWidget {
appBar: AppBar( appBar: AppBar(
title: const Text('排行榜'), title: const Text('排行榜'),
actions: [ actions: [
shadowCategoriesActionButton(context), aPopMenu(context),
chooseLayoutActionButton(context), addressActionButton(context),
], ],
), ),
body: DefaultTabController( body: DefaultTabController(

View File

@ -6,6 +6,7 @@ import 'package:pikapika/basic/store/Categories.dart';
import 'package:pikapika/basic/Method.dart'; import 'package:pikapika/basic/Method.dart';
import 'package:pikapika/screens/components/RightClickPop.dart'; import 'package:pikapika/screens/components/RightClickPop.dart';
import '../basic/Entities.dart'; import '../basic/Entities.dart';
import '../basic/config/Address.dart';
import '../basic/config/IconLoading.dart'; import '../basic/config/IconLoading.dart';
import 'components/ComicPager.dart'; import 'components/ComicPager.dart';
import 'components/Common.dart'; import 'components/Common.dart';
@ -51,6 +52,7 @@ class _SearchScreenState extends State<SearchScreen> {
title: Text("${categoryTitle(widget.category)} ${widget.keyword}"), title: Text("${categoryTitle(widget.category)} ${widget.keyword}"),
actions: [ actions: [
aPopMenu(context), aPopMenu(context),
addressActionButton(context),
_chooseCategoryAction(), _chooseCategoryAction(),
_searchBar.getSearchAction(context), _searchBar.getSearchAction(context),
], ],