diff options
| author | Akshay Nair <phenax5@gmail.com> | 2020-06-04 10:40:42 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2020-06-04 10:42:43 +0530 |
| commit | 41f04f9e2770761166b67fee9a2eb757b4aa1f33 (patch) | |
| tree | 79f5becbd3a90e740763a2a270c1b1b4725773a3 | |
| parent | 1fc86fbaf3127e8aa912960c3b51cac3391e33c0 (diff) | |
| download | daft-launcher-41f04f9e2770761166b67fee9a2eb757b4aa1f33.tar.gz daft-launcher-41f04f9e2770761166b67fee9a2eb757b4aa1f33.zip | |
Refactors favorites to use getStringList instead
| -rw-r--r-- | TODO.md | 2 | ||||
| -rw-r--r-- | lib/data/favorites.dart | 16 |
2 files changed, 7 insertions, 11 deletions
@@ -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<Application> getApplication(String pkg) async { Future<List<Application>> getFavorites() async { final prefs = await SharedPreferences.getInstance(); - String rawFavoritesList = prefs.getString(FAVORITES); - List<String> packageNames = rawFavoritesList?.split(SEPERATOR) ?? <String>[]; - + List<String> packageNames = prefs.getStringList(FAVORITES) ?? []; Iterable<Future<Application>> futures = packageNames.map(getApplication); - List<Application> 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<Application>; } void initFavorites() async { @@ -41,15 +38,14 @@ Stream<List<Application>> getFavorites$() { void setFavorites(List<Application> favs) async { final prefs = await SharedPreferences.getInstance(); - String rawFavoritesList = favs.map((Application app) => app.packageName).toList().join(SEPERATOR); - - prefs.setString(FAVORITES, rawFavoritesList); + List<String> favList = favs.map((Application app) => app.packageName).toList(); + prefs.setStringList(FAVORITES, favList); favorites_$.add(await getFavorites()); } void addToFavorites(Application app) async { - List<Application> fs = await getFavorites() as List<Application>; + List<Application> 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<Application> fs = await getFavorites() as List<Application>; + List<Application> fs = await getFavorites(); fs.removeWhere((a) => a.packageName == app.packageName); |
