spk
This commit is contained in:
parent
b7794408f8
commit
39b91a5fb3
3 changed files with 91 additions and 97 deletions
Binary file not shown.
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue