diff --git a/lib/pangea/activity_planner/bookmarked_activities_repo.dart b/lib/pangea/activity_planner/bookmarked_activities_repo.dart index 866144f4d..1ac54e869 100644 --- a/lib/pangea/activity_planner/bookmarked_activities_repo.dart +++ b/lib/pangea/activity_planner/bookmarked_activities_repo.dart @@ -29,12 +29,21 @@ class BookmarkedActivitiesRepo { } static List get() { - final list = _bookStorage.getValues(); - - if (list == null) return []; - - return (list as Iterable) - .map((json) => ActivityPlanModel.fromJson(json)) - .toList(); + final List keys = List.from(_bookStorage.getKeys()); + if (keys.isEmpty) return []; + + final List activities = []; + for (final key in keys) { + final json = _bookStorage.read(key); + if (json == null) continue; + final activity = ActivityPlanModel.fromJson(json); + if (key != activity.bookmarkId) { + _bookStorage.remove(key); + _bookStorage.write(activity.bookmarkId, activity.toJson()); + } + activities.add(activity); + } + + return activities; } }