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();
defaultToast(context, "分流2/3已同步");
} catch (e, s) {
print("$e\$s");
print("$e\n$s");
defaultToast(context, "分流同步失败");
}
} else if (choose == "重制分流为默认值") {
@ -93,7 +93,7 @@ Widget reloadSwitchAddressSetting() {
await method.resetSwitchAddress();
defaultToast(context, "分流2/3已重制为默认值");
} catch (e, s) {
print("$e\$s");
print("$e\n$s");
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/components/ContentError.dart';
import 'package:pikapika/basic/Method.dart';
import '../basic/config/Address.dart';
import '../basic/config/CategoriesColumnCount.dart';
import '../basic/config/IconLoading.dart';
import 'ComicsScreen.dart';
@ -48,6 +49,7 @@ class _CategoriesScreenState extends State<CategoriesScreen> {
title: const Text('分类'),
actions: [
aPopMenu(context),
addressActionButton(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/Method.dart';
import '../basic/Entities.dart';
import '../basic/config/Address.dart';
import '../basic/config/IconLoading.dart';
import 'SearchScreen.dart';
import 'components/ComicPager.dart';
@ -55,6 +56,7 @@ class _ComicsScreenState extends State<ComicsScreen> {
title: Text(categoryTitle(widget.category)),
actions: [
aPopMenu(context),
addressActionButton(context),
_chooseCategoryAction(),
_categorySearchBar.getSearchAction(context),
],
@ -145,8 +147,8 @@ class _ComicsScreenState extends State<ComicsScreen> {
appBar = AppBar(
title: Text(title),
actions: [
shadowCategoriesActionButton(context),
chooseLayoutActionButton(context),
aPopMenu(context),
addressActionButton(context),
_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/ShadowCategories.dart';
import '../basic/config/Address.dart';
import 'components/ComicListBuilder.dart';
import 'components/Common.dart';
import 'components/RightClickPop.dart';
//
@ -31,8 +33,8 @@ class _RandomComicsScreenState extends State<RandomComicsScreen> {
appBar: AppBar(
title: const Text('随机本子'),
actions: [
shadowCategoriesActionButton(context),
chooseLayoutActionButton(context),
aPopMenu(context),
addressActionButton(context),
],
),
body: ComicListBuilder(method.randomComics),

View File

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

View File

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