✨ Quick choose address
This commit is contained in:
parent
c0662439da
commit
a5e2c567ca
|
@ -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),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -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),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -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(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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),
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in New Issue