✨ More debug options in settings
This commit is contained in:
parent
899d5f3e5e
commit
56816dc060
@ -690,6 +690,7 @@
|
|||||||
"databaseDeleted": "The local database has been deleted.",
|
"databaseDeleted": "The local database has been deleted.",
|
||||||
"settingsEnablePushNotifications": "Enable Push Notifications",
|
"settingsEnablePushNotifications": "Enable Push Notifications",
|
||||||
"settingsEnablePushNotificationsDescription": "Re-enable and request permission to receive push notifications. Just in case it didn't run automatically.",
|
"settingsEnablePushNotificationsDescription": "Re-enable and request permission to receive push notifications. Just in case it didn't run automatically.",
|
||||||
|
"settingsEnabledPushNotifications": "Push notification has been enabled.",
|
||||||
"screenStickers": "Stickers",
|
"screenStickers": "Stickers",
|
||||||
"stickersDiscovery": "Discovery",
|
"stickersDiscovery": "Discovery",
|
||||||
"stickersOwned": "Owned",
|
"stickersOwned": "Owned",
|
||||||
@ -697,5 +698,8 @@
|
|||||||
"stickersAdd": "Add Sticker Pack",
|
"stickersAdd": "Add Sticker Pack",
|
||||||
"stickersAdded": "Sticker pack has been added.",
|
"stickersAdded": "Sticker pack has been added.",
|
||||||
"add": "Add",
|
"add": "Add",
|
||||||
"stickersRemoved": "Sticker pack has been removed, you can add it again anytime."
|
"stickersRemoved": "Sticker pack has been removed, you can add it again anytime.",
|
||||||
|
"stickersReload": "Reload Stickers",
|
||||||
|
"stickersReloadDescription": "Reload stickers from the server, update the sticker picker.",
|
||||||
|
"stickersReloaded": "Sticker packs has been reloaded."
|
||||||
}
|
}
|
||||||
|
@ -688,6 +688,7 @@
|
|||||||
"databaseDeleted": "本地数据库已被删除。",
|
"databaseDeleted": "本地数据库已被删除。",
|
||||||
"settingsEnablePushNotifications": "启用推送数据",
|
"settingsEnablePushNotifications": "启用推送数据",
|
||||||
"settingsEnablePushNotificationsDescription": "重新启用并请求推送权限,以防自动激活失败。",
|
"settingsEnablePushNotificationsDescription": "重新启用并请求推送权限,以防自动激活失败。",
|
||||||
|
"settingsEnabledPushNotifications": "推送通知已经注册。",
|
||||||
"screenStickers": "贴图",
|
"screenStickers": "贴图",
|
||||||
"stickersDiscovery": "发现",
|
"stickersDiscovery": "发现",
|
||||||
"stickersOwned": "由我拥有",
|
"stickersOwned": "由我拥有",
|
||||||
@ -695,5 +696,8 @@
|
|||||||
"stickersAdd": "添加贴图包",
|
"stickersAdd": "添加贴图包",
|
||||||
"stickersAdded": "贴图包已添加。",
|
"stickersAdded": "贴图包已添加。",
|
||||||
"add": "添加",
|
"add": "添加",
|
||||||
"stickersRemoved": "贴图包已被移除,你可以随时再次添加回来。"
|
"stickersRemoved": "贴图包已被移除,你可以随时再次添加回来。",
|
||||||
|
"stickersReload": "重载贴图包",
|
||||||
|
"stickersReloadDescription": "从服务器重新加载添加过的贴图,更新贴图选择器。",
|
||||||
|
"stickersReloaded": "贴图包已重载。"
|
||||||
}
|
}
|
||||||
|
@ -688,6 +688,7 @@
|
|||||||
"databaseDeleted": "本地數據庫已被刪除。",
|
"databaseDeleted": "本地數據庫已被刪除。",
|
||||||
"settingsEnablePushNotifications": "啓用推送數據",
|
"settingsEnablePushNotifications": "啓用推送數據",
|
||||||
"settingsEnablePushNotificationsDescription": "重新啓用並請求推送權限,以防自動激活失敗。",
|
"settingsEnablePushNotificationsDescription": "重新啓用並請求推送權限,以防自動激活失敗。",
|
||||||
|
"settingsEnabledPushNotifications": "推送通知已經註冊。",
|
||||||
"screenStickers": "貼圖",
|
"screenStickers": "貼圖",
|
||||||
"stickersDiscovery": "發現",
|
"stickersDiscovery": "發現",
|
||||||
"stickersOwned": "由我擁有",
|
"stickersOwned": "由我擁有",
|
||||||
@ -695,5 +696,8 @@
|
|||||||
"stickersAdd": "添加貼圖包",
|
"stickersAdd": "添加貼圖包",
|
||||||
"stickersAdded": "貼圖包已添加。",
|
"stickersAdded": "貼圖包已添加。",
|
||||||
"add": "添加",
|
"add": "添加",
|
||||||
"stickersRemoved": "貼圖包已被移除,你可以隨時再次添加回來。"
|
"stickersRemoved": "貼圖包已被移除,你可以隨時再次添加回來。",
|
||||||
|
"stickersReload": "重載貼圖包",
|
||||||
|
"stickersReloadDescription": "從服務器重新加載添加過的貼圖,更新貼圖選擇器。",
|
||||||
|
"stickersReloaded": "貼圖包已重載。"
|
||||||
}
|
}
|
||||||
|
@ -688,6 +688,7 @@
|
|||||||
"databaseDeleted": "本地數據庫已被刪除。",
|
"databaseDeleted": "本地數據庫已被刪除。",
|
||||||
"settingsEnablePushNotifications": "啟用推送數據",
|
"settingsEnablePushNotifications": "啟用推送數據",
|
||||||
"settingsEnablePushNotificationsDescription": "重新啟用並請求推送權限,以防自動激活失敗。",
|
"settingsEnablePushNotificationsDescription": "重新啟用並請求推送權限,以防自動激活失敗。",
|
||||||
|
"settingsEnabledPushNotifications": "推送通知已經註冊。",
|
||||||
"screenStickers": "貼圖",
|
"screenStickers": "貼圖",
|
||||||
"stickersDiscovery": "發現",
|
"stickersDiscovery": "發現",
|
||||||
"stickersOwned": "由我擁有",
|
"stickersOwned": "由我擁有",
|
||||||
@ -695,5 +696,8 @@
|
|||||||
"stickersAdd": "添加貼圖包",
|
"stickersAdd": "添加貼圖包",
|
||||||
"stickersAdded": "貼圖包已添加。",
|
"stickersAdded": "貼圖包已添加。",
|
||||||
"add": "添加",
|
"add": "添加",
|
||||||
"stickersRemoved": "貼圖包已被移除,你可以隨時再次添加回來。"
|
"stickersRemoved": "貼圖包已被移除,你可以隨時再次添加回來。",
|
||||||
|
"stickersReload": "重載貼圖包",
|
||||||
|
"stickersReloadDescription": "從服務器重新加載添加過的貼圖,更新貼圖選擇器。",
|
||||||
|
"stickersReloaded": "貼圖包已重載。"
|
||||||
}
|
}
|
||||||
|
@ -303,7 +303,8 @@ class _AppSplashScreenState extends State<_AppSplashScreen> with TrayListener {
|
|||||||
await notify.registerPushNotifications();
|
await notify.registerPushNotifications();
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
final sticker = context.read<SnStickerProvider>();
|
final sticker = context.read<SnStickerProvider>();
|
||||||
await sticker.listStickerEagerly();
|
await sticker.listSticker();
|
||||||
|
log('[Bootstrap] Everything initialized!');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
await context.showErrorDialog(err);
|
await context.showErrorDialog(err);
|
||||||
|
@ -57,27 +57,14 @@ class SnStickerProvider {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> listStickerEagerly() async {
|
Future<void> listSticker() async {
|
||||||
var count = await listSticker();
|
|
||||||
for (var page = 1; count > 0; count -= 10) {
|
|
||||||
await listSticker(page: page);
|
|
||||||
page++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<int> listSticker({int page = 0}) async {
|
|
||||||
try {
|
try {
|
||||||
final resp = await _sn.client.get('/cgi/uc/stickers', queryParameters: {
|
final resp = await _sn.client.get('/cgi/uc/stickers');
|
||||||
'take': 10,
|
|
||||||
'offset': page * 10,
|
|
||||||
});
|
|
||||||
final data = resp.data;
|
final data = resp.data;
|
||||||
final stickers =
|
final stickers = List.from(data).map((ele) => SnSticker.fromJson(ele));
|
||||||
List.from(data['data']).map((ele) => SnSticker.fromJson(ele));
|
|
||||||
for (final sticker in stickers) {
|
for (final sticker in stickers) {
|
||||||
_cacheSticker(sticker);
|
_cacheSticker(sticker);
|
||||||
}
|
}
|
||||||
return data['count'] as int;
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
log('[Sticker] Failed to list stickers: $err');
|
log('[Sticker] Failed to list stickers: $err');
|
||||||
rethrow;
|
rethrow;
|
||||||
|
@ -19,6 +19,7 @@ import 'package:surface/providers/config.dart';
|
|||||||
import 'package:surface/providers/database.dart';
|
import 'package:surface/providers/database.dart';
|
||||||
import 'package:surface/providers/notification.dart';
|
import 'package:surface/providers/notification.dart';
|
||||||
import 'package:surface/providers/sn_network.dart';
|
import 'package:surface/providers/sn_network.dart';
|
||||||
|
import 'package:surface/providers/sn_sticker.dart';
|
||||||
import 'package:surface/providers/theme.dart';
|
import 'package:surface/providers/theme.dart';
|
||||||
import 'package:surface/theme.dart';
|
import 'package:surface/theme.dart';
|
||||||
import 'package:surface/widgets/dialog.dart';
|
import 'package:surface/widgets/dialog.dart';
|
||||||
@ -570,16 +571,39 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
|||||||
Text('settingsEnablePushNotificationsDescription').tr(),
|
Text('settingsEnablePushNotificationsDescription').tr(),
|
||||||
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
|
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
|
||||||
trailing: const Icon(Symbols.chevron_right),
|
trailing: const Icon(Symbols.chevron_right),
|
||||||
onTap: () {
|
onTap: () async {
|
||||||
final nty = context.read<NotificationProvider>();
|
final nty = context.read<NotificationProvider>();
|
||||||
try {
|
try {
|
||||||
nty.registerPushNotifications();
|
await nty.registerPushNotifications();
|
||||||
|
if (!context.mounted) return;
|
||||||
|
HapticFeedback.heavyImpact();
|
||||||
|
context.showSnackbar(
|
||||||
|
'settingsEnabledPushNotifications'.tr());
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
context.showErrorDialog(err);
|
context.showErrorDialog(err);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: const Icon(Symbols.refresh),
|
||||||
|
title: Text('stickersReload').tr(),
|
||||||
|
subtitle: Text('stickersReloadDescription').tr(),
|
||||||
|
contentPadding: const EdgeInsets.symmetric(horizontal: 24),
|
||||||
|
trailing: const Icon(Symbols.chevron_right),
|
||||||
|
onTap: () async {
|
||||||
|
final stickers = context.read<SnStickerProvider>();
|
||||||
|
try {
|
||||||
|
await stickers.listSticker();
|
||||||
|
if (!context.mounted) return;
|
||||||
|
HapticFeedback.heavyImpact();
|
||||||
|
context.showSnackbar('stickersReloaded'.tr());
|
||||||
|
} catch (err) {
|
||||||
|
if (!context.mounted) return;
|
||||||
|
context.showErrorDialog(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
title: Text('settingsMiscAbout').tr(),
|
title: Text('settingsMiscAbout').tr(),
|
||||||
subtitle: Text('settingsMiscAboutDescription').tr(),
|
subtitle: Text('settingsMiscAboutDescription').tr(),
|
||||||
|
@ -8,6 +8,7 @@ import 'package:surface/providers/sn_network.dart';
|
|||||||
import 'package:surface/providers/sn_sticker.dart';
|
import 'package:surface/providers/sn_sticker.dart';
|
||||||
import 'package:surface/providers/userinfo.dart';
|
import 'package:surface/providers/userinfo.dart';
|
||||||
import 'package:surface/types/attachment.dart';
|
import 'package:surface/types/attachment.dart';
|
||||||
|
import 'package:surface/widgets/app_bar_leading.dart';
|
||||||
import 'package:surface/widgets/attachment/attachment_item.dart';
|
import 'package:surface/widgets/attachment/attachment_item.dart';
|
||||||
import 'package:surface/widgets/dialog.dart';
|
import 'package:surface/widgets/dialog.dart';
|
||||||
import 'package:surface/widgets/loading_indicator.dart';
|
import 'package:surface/widgets/loading_indicator.dart';
|
||||||
@ -109,6 +110,7 @@ class _StickerScreenState extends State<StickerScreen>
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return AppScaffold(
|
return AppScaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
|
leading: AutoAppBarLeading(),
|
||||||
title: Text('screenStickers').tr(),
|
title: Text('screenStickers').tr(),
|
||||||
bottom: TabBar(
|
bottom: TabBar(
|
||||||
controller: _tabController,
|
controller: _tabController,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user