This commit is contained in:
Dmitry 2024-08-25 01:39:44 +03:00
parent b7794408f8
commit 39b91a5fb3
3 changed files with 91 additions and 97 deletions

View file

@ -55,6 +55,7 @@ class PackUpdater {
} catch (e, s) {
log('Error when updating packs', error: e, stackTrace: s);
print('Error when updating pack: ${e}');
// Future.delayed(Duration(seconds: 5), () => updateAvailablePacks());
} finally {
print('Updating packs complete');
if (_updateCompleter?.isCompleted == false) {

View file

@ -23,11 +23,10 @@ import '../widgets/shared_pref_button.dart';
@RoutePage()
class SettingsPage extends StatelessWidget {
void _initAdmin() {
if (!getIt.isRegistered<AdminApi>()) {
getIt.registerLazySingleton<AdminApi>(
() => AdminApi(getIt.get<DioProvider>().dio));
() => AdminApi(getIt.get<DioProvider>().dio));
print('set admin');
}
}
@ -52,111 +51,105 @@ class SettingsPage extends StatelessWidget {
color: borderGray.withOpacity(0.2),
),
Expanded(
child: ListView(
children: [
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
SimpleTile.text(
onLongTap: () async {
final r = await locator.userManager.deleteUser();
if (!r) {
showInfoDialog(
'Не удалось удалить аккаунт\nПопробуйте перелогиниться',
);
}
},
text: 'Удалить аккаунт (зажми)',
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0.w),
child: SingleChildScrollView(
reverse: true,
child: Column(
children: [
...[
SimpleTile.text(
onLongTap: () async {
final r = await locator.userManager.deleteUser();
if (!r) {
showInfoDialog(
'Не удалось удалить аккаунт\nПопробуйте перелогиниться',
);
}
},
text: 'Удалить аккаунт (зажми)',
),
MobileSharedPrefButton<bool>.builder(
spKey: 'dark_theme',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Темная тема',
value: enabled ?? false,
),
),
setOnTap: (v) {
final darkTheme = !(v ?? false);
themeNotifier.value =
darkTheme ? ThemeMode.dark : ThemeMode.light;
return darkTheme;
},
),
MobileSharedPrefButton<bool>.builder(
spKey: 'sound_on',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Звук',
value: enabled ?? false,
),
),
setOnTap: (v) => !(v ?? false),
),
MobileSharedPrefButton<bool>.builder(
spKey: 'auto_play_sound_view',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Авто воспроизведение при просмотре',
value: enabled ?? false,
),
),
setOnTap: (v) => !(v ?? false),
),
MobileSharedPrefButton<bool>.builder(
spKey: 'auto_play_sound_tests',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Авто воспроизведение в тестах',
value: enabled ?? false,
),
),
setOnTap: (v) => !(v ?? false),
),
SimpleTile.text(
text: 'Скорость чтения',
trail: MobileSharedPrefButton<double>.builder(
spKey: 'sound_speed',
builder: (v, s) => MnemoSlider(
onChanged: (value) => s(value),
value: v ?? 1.0,
),
shouldRebuild: (v) => false,
),
),
if (ADMIN_BUILD)
MobileSharedPrefButton<bool>.builder(
spKey: 'dark_theme',
spKey: 'show_admin',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Темная тема',
text: 'Show admin',
value: enabled ?? false,
),
),
setOnTap: (v) {
final darkTheme = !(v ?? false);
themeNotifier.value =
darkTheme ? ThemeMode.dark : ThemeMode.light;
return darkTheme;
final val = !(v ?? false);
if (val) {
_initAdmin();
}
return val;
},
),
MobileSharedPrefButton<bool>.builder(
spKey: 'sound_on',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Звук',
value: enabled ?? false,
),
if (ADMIN_BUILD) ..._adminTiles(context),
].expand((widget) => [
widget,
Divider(
height: 1,
color: borderGray.withOpacity(0.2),
),
setOnTap: (v) => !(v ?? false),
),
MobileSharedPrefButton<bool>.builder(
spKey: 'auto_play_sound_view',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Авто воспроизведение при просмотре',
value: enabled ?? false,
),
),
setOnTap: (v) => !(v ?? false),
),
MobileSharedPrefButton<bool>.builder(
spKey: 'auto_play_sound_tests',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Авто воспроизведение в тестах',
value: enabled ?? false,
),
),
setOnTap: (v) => !(v ?? false),
),
SimpleTile.text(
text: 'Скорость чтения',
trail: MobileSharedPrefButton<double>.builder(
spKey: 'sound_speed',
builder: (v, s) => MnemoSlider(
onChanged: (value) => s(value),
value: v ?? 1.0,
),
shouldRebuild: (v) => false,
),
),
if (ADMIN_BUILD)
MobileSharedPrefButton<bool>.builder(
spKey: 'show_admin',
builder: (enabled, _) => AbsorbPointer(
child: SwitchTile(
text: 'Show admin',
value: enabled ?? false,
),
),
setOnTap: (v) {
final val = !(v ?? false);
if (val) {
_initAdmin();
}
return val;
},
),
if (ADMIN_BUILD) ..._adminTiles(context),
].expand((widget) => [
widget,
Divider(
height: 1,
color: borderGray.withOpacity(0.2),
),
]).toList(),
),
),
),
Column(
children: [
]),
Padding(
padding:
EdgeInsets.only(left: 10.0.w, right: 10.w, top: 32.h),
@ -172,7 +165,7 @@ class SettingsPage extends StatelessWidget {
),
],
),
],
),
),
),
const BigBackButton(),