Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Settings panel #73

Merged
merged 38 commits into from
Nov 22, 2020
Merged
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
7742b98
New sliverbar asset & app icon
Nov 6, 2020
89994fd
Removed old file
Nov 9, 2020
71ad1ef
Added loading indicator helper
Nov 9, 2020
898efab
Added settings route, page, bloc
Nov 9, 2020
06fb34b
Handle empty settings & Acquisition board
Nov 10, 2020
cc47c91
Fixes to import structure
Nov 10, 2020
76a9ae9
Fixes to import structure part 2
Nov 10, 2020
d2e926b
Merge remote-tracking branch 'origin/master' into mobile/app-user-set…
Nov 10, 2020
62a0670
Minor changes to settings text
Nov 10, 2020
d8a45ad
Removed unnecessary imports after adding part of ''
Nov 10, 2020
b953667
Update mobile/lib/src/application/settings/settings_cubit.dart
mateobelanger Nov 10, 2020
c230e63
Update mobile/lib/src/application/settings/settings_cubit.dart
mateobelanger Nov 10, 2020
b652929
Update mobile/lib/src/application/settings/settings_cubit.dart
mateobelanger Nov 10, 2020
2eb2058
Update mobile/lib/src/application/settings/settings_cubit.dart
mateobelanger Nov 10, 2020
ee6c3b8
Added Sharedpreference property to cubit
Nov 10, 2020
85c9a7c
Merge remote-tracking branch 'origin/mobile/app-user-settings' into m…
Nov 10, 2020
40186af
Added genericity to Settings backbone
Nov 10, 2020
97094ca
Nit fix for formating
Nov 10, 2020
15ed171
Settings in Map<String, dynamic> and added Infrastructure layer
Nov 11, 2020
94437cc
Generic is the new fun
Nov 12, 2020
b24beef
Removed obsolete Acquisition board setting
Nov 12, 2020
a5bd02b
Added server url setting option
Nov 12, 2020
771d012
Merge remote-tracking branch 'origin/master' into mobile/app-user-set…
Nov 12, 2020
abf70be
Infrastructure getter gets only 1 setting at a time
Nov 13, 2020
35739d9
Renamed interface methods
Nov 13, 2020
8b200c7
more genericity
Nov 13, 2020
24c461d
Added URL server setting field, added infrastructure layer
Nov 21, 2020
2e75bb6
Renamed infrastructure getters & setters
Nov 21, 2020
3f665f9
Fixed rebase conflicts
Nov 21, 2020
d5c554a
Merge master into mobile/app-user-settings
Nov 21, 2020
6184dea
Added validation on Settings model
Nov 22, 2020
c3bd6d7
Library for infrastructure storage keys, Settings tile functions generic
Nov 22, 2020
2657711
added constants for max & min Age
Nov 22, 2020
e3e6cb8
Factory settings constructor with exceptions
Nov 22, 2020
ea3df86
Added validation on server address
Nov 22, 2020
45c94b1
Added validation and constants to age setting
Nov 22, 2020
445000e
Fixes
Nov 22, 2020
75bd04e
nit fix for launch config
Nov 22, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Renamed interface methods
Mathieu Bélanger committed Nov 13, 2020
commit 35739d910947fd1d10346967865d665f17f53701
8 changes: 4 additions & 4 deletions mobile/lib/src/application/settings/settings_cubit.dart
Original file line number Diff line number Diff line change
@@ -15,17 +15,17 @@ class SettingsCubit extends Cubit<SettingsState> {

Future<void> getSettings() async {
var settings = {
AGE_KEY: await _repository.getSetting(AGE_KEY),
SERVER_URL_KEY: await _repository.getSetting(SERVER_URL_KEY) ?? 'Not Set',
AGE_KEY: await _repository.read(AGE_KEY),
SERVER_URL_KEY: await _repository.read(SERVER_URL_KEY) ?? 'Not Set',
SEX_KEY:
Sex.values[await _repository.getSetting(SEX_KEY)] ?? Sex.NotSet.index,
Sex.values[await _repository.read(SEX_KEY)] ?? Sex.NotSet.index,
};
emit(SettingsLoadSuccess(settings));
}

Future<void> setSetting(String settingKey, dynamic settingValue) async {
if (state is SettingsLoadSuccess) {
mateobelanger marked this conversation as resolved.
Show resolved Hide resolved
await _repository.setSetting(settingKey, settingValue);
await _repository.store(settingKey, settingValue);
emit(
SettingsLoadSuccess(
(state as SettingsLoadSuccess).copyWith(settingKey, settingValue)),
4 changes: 2 additions & 2 deletions mobile/lib/src/domain/settings/i_settings_repository.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
abstract class ISettingsRepository {
Future<dynamic> getSetting(String key);
Future<dynamic> read(String key);

Future<void> setSetting(String settingKey, dynamic settingValue);
Future<void> store(String settingKey, dynamic settingValue);
mateobelanger marked this conversation as resolved.
Show resolved Hide resolved
}
Original file line number Diff line number Diff line change
@@ -2,29 +2,29 @@ import 'package:polydodo/src/domain/settings/i_settings_repository.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SettingsRepository extends ISettingsRepository {
SharedPreferences prefs;
SharedPreferences _prefs;

SettingsRepository();

@override
Future<dynamic> getSetting(String key) async {
prefs = (await SharedPreferences.getInstance());
return prefs.get(key);
Future<dynamic> read(String key) async {
_prefs = (await SharedPreferences.getInstance());
return _prefs.get(key);
}

@override
Future<void> setSetting(String settingKey, dynamic settingValue) async {
Future<void> store(String settingKey, dynamic settingValue) async {
mateobelanger marked this conversation as resolved.
Show resolved Hide resolved
if (settingValue is int) {
await prefs.setInt(settingKey, settingValue);
await _prefs.setInt(settingKey, settingValue);
} else if (settingValue is double) {
await prefs.setDouble(settingKey, settingValue);
await _prefs.setDouble(settingKey, settingValue);
} else if (settingValue is bool) {
await prefs.setBool(settingKey, settingValue);
await _prefs.setBool(settingKey, settingValue);
} else if (settingValue is String) {
await prefs.setString(settingKey, settingValue);
await _prefs.setString(settingKey, settingValue);
} else {
// setting is an enum value
await prefs.setInt(settingKey, settingValue.index);
await _prefs.setInt(settingKey, settingValue.index);
}
}
}