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) { } catch (e, s) {
log('Error when updating packs', error: e, stackTrace: s); log('Error when updating packs', error: e, stackTrace: s);
print('Error when updating pack: ${e}'); print('Error when updating pack: ${e}');
// Future.delayed(Duration(seconds: 5), () => updateAvailablePacks());
} finally { } finally {
print('Updating packs complete'); print('Updating packs complete');
if (_updateCompleter?.isCompleted == false) { if (_updateCompleter?.isCompleted == false) {

View file

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