aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2020-06-04 10:40:42 +0530
committerAkshay Nair <phenax5@gmail.com>2020-06-04 10:42:43 +0530
commit41f04f9e2770761166b67fee9a2eb757b4aa1f33 (patch)
tree79f5becbd3a90e740763a2a270c1b1b4725773a3
parent1fc86fbaf3127e8aa912960c3b51cac3391e33c0 (diff)
downloaddaft-launcher-41f04f9e2770761166b67fee9a2eb757b4aa1f33.tar.gz
daft-launcher-41f04f9e2770761166b67fee9a2eb757b4aa1f33.zip
Refactors favorites to use getStringList instead
-rw-r--r--TODO.md2
-rw-r--r--lib/data/favorites.dart16
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<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);