feat(deck): app categorization to folders using flowerpot

- Categorize apps using flowerpot and organize into folders
- Add blocking loading dialog during categorization process
- Prevent user cancellation during workspace setup
- Auto-add newly installed apps to appropriate folders

- closes : #5846
This commit is contained in:
MrSluffy committed 2025-11-16 11:55:24 +08:00
1 parent 6509c05cdf
commit 1bb5878457
5 files changed
+452 -9

No files matched your search

@@ -68,7 +68,10 @@ import java.util.Objects;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import app.lawnchair.deck.LawndeckManager;
import app.lawnchair.preferences.PreferenceManager;
import app.lawnchair.preferences2.PreferenceManager2;
import com.patrykmichalik.opto.core.PreferenceExtensionsKt;
/**
* Handles updates due to changes in package manager (app installed/updated/removed)
@@ -457,6 +460,16 @@ public class PackageUpdatedTask implements ModelUpdateTask {
dataModel.widgetsModel.update(app, new PackageUserKey(packages[i], mUser));
}
taskController.bindUpdatedWidgets(dataModel);
// If deck layout is enabled, add newly installed apps to workspace with categorization
PreferenceManager2 pref2 = PreferenceManager2.INSTANCE.get(context);
if (PreferenceExtensionsKt.firstBlocking(pref2.getDeckLayout())) {
LawndeckManager deckManager = new LawndeckManager(context);
ModelWriter modelWriter = taskController.getModelWriter();
for (int i = 0; i < N; i++) {
deckManager.addNewlyInstalledApp(packages[i], mUser, modelWriter, dataModel);
}
}
}
}