diff --git a/frontend/app_flowy/lib/workspace/application/appearance.dart b/frontend/app_flowy/lib/workspace/application/appearance.dart index 42e8e591cd..3f32f72571 100644 --- a/frontend/app_flowy/lib/workspace/application/appearance.dart +++ b/frontend/app_flowy/lib/workspace/application/appearance.dart @@ -1,15 +1,21 @@ import 'package:app_flowy/user/infrastructure/repos/user_setting_repo.dart'; import 'package:equatable/equatable.dart'; import 'package:flowy_infra/theme.dart'; +import 'package:flowy_infra/language.dart'; import 'package:flowy_sdk/protobuf/flowy-user-data-model/user_setting.pb.dart'; import 'package:flutter/material.dart'; class AppearanceSettingModel extends ChangeNotifier with EquatableMixin { AppearanceSettings setting; AppTheme _theme; + AppLanguage _language; + + AppearanceSettingModel(this.setting) + : _theme = AppTheme.fromName(name: setting.theme), + _language = AppLanguage.fromName(name: setting.language); - AppearanceSettingModel(this.setting) : _theme = AppTheme.fromName(name: setting.theme); AppTheme get theme => _theme; + AppLanguage get language => _language; Future save() async { await UserSettingReppsitory().setAppearanceSettings(setting); @@ -31,9 +37,12 @@ class AppearanceSettingModel extends ChangeNotifier with EquatableMixin { } } - void setLanguage(String language) { - if (setting.language != language) { - setting.language = language; + void setLanguage(Language language) { + String langaugeString = stringFromLanguageName(language); + + if (setting.language != langaugeString) { + _language = AppLanguage.fromLanguage(language: language); + setting.language = langaugeString; notifyListeners(); save(); }