Skip to content

Commit 3e06da2

Browse files
committed
Fix Home Preferences Decoding
1 parent a79d3e3 commit 3e06da2

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

lib/base/enums/home_widget.dart

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@ class HomeScreenWidget {
1313
return "${WidgetType.values.indexOf(widgetType)};${enabled.toString()}";
1414
}
1515

16-
factory HomeScreenWidget.fromString(String data) {
16+
static HomeScreenWidget? fromString(String data) {
1717
final dataPoints = data.split(";");
18-
final widgetType = WidgetType.values[int.parse(dataPoints[0])];
19-
final enabled = dataPoints[1] == "true" ? true : false;
20-
return HomeScreenWidget(widgetType: widgetType, enabled: enabled);
18+
final index = int.parse(dataPoints[0]);
19+
if (index < WidgetType.values.length) {
20+
final widgetType = WidgetType.values[int.parse(dataPoints[0])];
21+
final enabled = dataPoints[1] == "true" ? true : false;
22+
return HomeScreenWidget(widgetType: widgetType, enabled: enabled);
23+
} else {
24+
return null;
25+
}
2126
}
2227
}

lib/homeComponent/viewmodel/home_viewmodel.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ class HomeViewModel {
2424
.load(UserPreference.homeWidgets) as List<String>? ??
2525
<String>[];
2626
List<HomeScreenWidget> widgets = defaultWidgets;
27-
final types = data.map((e) => HomeScreenWidget.fromString(e)).toList();
27+
final types = data
28+
.map((e) => HomeScreenWidget.fromString(e))
29+
.whereType<HomeScreenWidget>()
30+
.toList();
2831
if (types.isNotEmpty) {
2932
widgets = types;
3033
}

0 commit comments

Comments
 (0)