feat(app): appearance, language and version in Settings, and Settings from Home
Settings gets a card for how this device shows the app: its appearance (as the device, light or dark) and its language (the device's, or one the app speaks, each named in its own language), side by side from medium windows on, as two outlined dropdowns. Both stay on the device rather than following the person: they are kept in <app support>/device_settings.json (written to a temporary file and renamed into place), read before the app shows, so its first frame already looks as chosen, and a file that can't be read falls back to what the device does. DeviceSettingsBloc sits above SessionGate's keyed subtree, since the settings outlive every person, and both the plain app and the person's app take their theme mode and locale from it. At the bottom of Settings, the release and its build, read once at start together with the build the server is asked about. Home has a Settings cog beside the streak, with the sync trouble dot as on Profile. The library's create button reads "Create studyset", and Delete is red in every menu that offers it: the studyset's card, screen and rail, and the composer's draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
63d4e642d6
commit
55a0a7fdf0
1 changed files with 943 additions and 112 deletions
|
|
@ -31,7 +31,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
String get libraryTitle => 'Library';
|
||||
|
||||
@override
|
||||
String get libraryNewStudyset => 'New studyset';
|
||||
String get libraryCreateStudyset => 'Create studyset';
|
||||
|
||||
@override
|
||||
String get libraryEmpty => 'No studysets yet';
|
||||
|
|
@ -860,6 +860,29 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get settingsAbout => 'About Halkyon Learn';
|
||||
|
||||
@override
|
||||
String get settingsAppearance => 'Appearance';
|
||||
|
||||
@override
|
||||
String get settingsAppearanceDevice => 'Device theme';
|
||||
|
||||
@override
|
||||
String get settingsAppearanceLight => 'Light';
|
||||
|
||||
@override
|
||||
String get settingsAppearanceDark => 'Dark';
|
||||
|
||||
@override
|
||||
String get settingsLanguage => 'Language';
|
||||
|
||||
@override
|
||||
String get settingsLanguageDevice => 'Device language';
|
||||
|
||||
@override
|
||||
String settingsVersion(String version, String build) {
|
||||
return 'Version $version (build $build)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get syncTitle => 'Sync';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue