Offset in settings model

This commit is contained in:
Ankit Mahato
2023-04-27 06:29:59 +05:30
parent 9716ecca6d
commit 53c91c3974
2 changed files with 15 additions and 0 deletions

View File

@ -6,17 +6,20 @@ class SettingsModel {
const SettingsModel(
{this.isDark = false,
this.size,
this.offset,
this.defaultUriScheme = kDefaultUriScheme,
this.saveResponses = true});
final bool isDark;
final Size? size;
final Offset? offset;
final String defaultUriScheme;
final bool saveResponses;
SettingsModel copyWith({
bool? isDark,
Size? size,
Offset? offset,
String? defaultUriScheme,
bool? saveResponses,
}) {
@ -24,6 +27,7 @@ class SettingsModel {
isDark: isDark ?? this.isDark,
size: size ?? this.size,
defaultUriScheme: defaultUriScheme ?? this.defaultUriScheme,
offset: offset ?? this.offset,
saveResponses: saveResponses ?? this.saveResponses,
);
}
@ -32,10 +36,16 @@ class SettingsModel {
final isDark = data["isDark"] as bool?;
final width = data["width"] as double?;
final height = data["height"] as double?;
final dx = data["dx"] as double?;
final dy = data["dy"] as double?;
Size? size;
if (width != null && height != null) {
size = Size(width, height);
}
Offset? offset;
if (dx != null && dy != null) {
offset = Offset(dx, dy);
}
final defaultUriScheme = data["defaultUriScheme"] as String?;
final saveResponses = data["saveResponses"] as bool?;
@ -44,6 +54,7 @@ class SettingsModel {
return sm.copyWith(
isDark: isDark,
size: size,
offset: offset,
defaultUriScheme: defaultUriScheme,
saveResponses: saveResponses,
);
@ -54,6 +65,8 @@ class SettingsModel {
"isDark": isDark,
"width": size?.width,
"height": size?.height,
"dx": offset?.dx,
"dy": offset?.dy,
"defaultUriScheme": defaultUriScheme,
"saveResponses": saveResponses,
};

View File

@ -16,12 +16,14 @@ class ThemeStateNotifier extends StateNotifier<SettingsModel> {
Future<void> update({
bool? isDark,
Size? size,
Offset? offset,
String? defaultUriScheme,
bool? saveResponses,
}) async {
state = state.copyWith(
isDark: isDark,
size: size,
offset: offset,
defaultUriScheme: defaultUriScheme,
saveResponses: saveResponses,
);