From 41f04f9e2770761166b67fee9a2eb757b4aa1f33 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Thu, 4 Jun 2020 10:40:42 +0530 Subject: Refactors favorites to use getStringList instead --- TODO.md | 2 +- lib/data/favorites.dart | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/TODO.md b/TODO.md index 9f50e17..46c151c 100644 --- a/TODO.md +++ b/TODO.md @@ -29,7 +29,7 @@ - [X] Add uninstall action - [X] Add goto app settings action - [X] Add "add to favorites" action - - [ ] Use getStringList for favorites list you dipshit + - [X] Use getStringList for favorites list - [ ] Sort the list according to frequently used - [ ] Make app list load faster - [ ] Make keyboard close on swipe diff --git a/lib/data/favorites.dart b/lib/data/favorites.dart index f088a71..c09d14c 100644 --- a/lib/data/favorites.dart +++ b/lib/data/favorites.dart @@ -19,14 +19,11 @@ Future getApplication(String pkg) async { Future> getFavorites() async { final prefs = await SharedPreferences.getInstance(); - String rawFavoritesList = prefs.getString(FAVORITES); - List packageNames = rawFavoritesList?.split(SEPERATOR) ?? []; - + List packageNames = prefs.getStringList(FAVORITES) ?? []; Iterable> futures = packageNames.map(getApplication); - List result = await Future.wait(futures); - return result.where((a) => a != null).toList(); + return result.where((a) => a != null).map((a) => a as Application).toList() as List; } void initFavorites() async { @@ -41,15 +38,14 @@ Stream> getFavorites$() { void setFavorites(List favs) async { final prefs = await SharedPreferences.getInstance(); - String rawFavoritesList = favs.map((Application app) => app.packageName).toList().join(SEPERATOR); - - prefs.setString(FAVORITES, rawFavoritesList); + List favList = favs.map((Application app) => app.packageName).toList(); + prefs.setStringList(FAVORITES, favList); favorites_$.add(await getFavorites()); } void addToFavorites(Application app) async { - List fs = await getFavorites() as List; + List fs = await getFavorites(); var matching = fs.where((a) => a.packageName == app.packageName); if(matching.length == 0) { @@ -60,7 +56,7 @@ void addToFavorites(Application app) async { } void removeFromFavorites(Application app) async { - List fs = await getFavorites() as List; + List fs = await getFavorites(); fs.removeWhere((a) => a.packageName == app.packageName); -- cgit v1.3.1