summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/FolderInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher2/FolderInfo.java')
-rw-r--r--src/com/android/launcher2/FolderInfo.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/launcher2/FolderInfo.java b/src/com/android/launcher2/FolderInfo.java
index a82b6998a..12ed27c29 100644
--- a/src/com/android/launcher2/FolderInfo.java
+++ b/src/com/android/launcher2/FolderInfo.java
@@ -40,6 +40,8 @@ class FolderInfo extends ItemInfo {
*/
ArrayList<ShortcutInfo> contents = new ArrayList<ShortcutInfo>();
+ ArrayList<FolderListener> listeners = new ArrayList<FolderListener>();
+
FolderInfo() {
itemType = LauncherSettings.Favorites.ITEM_TYPE_FOLDER;
}
@@ -51,6 +53,9 @@ class FolderInfo extends ItemInfo {
*/
public void add(ShortcutInfo item) {
contents.add(item);
+ for (int i = 0; i < listeners.size(); i++) {
+ listeners.get(i).onAdd(item);
+ }
}
/**
@@ -60,6 +65,9 @@ class FolderInfo extends ItemInfo {
*/
public void remove(ShortcutInfo item) {
contents.remove(item);
+ for (int i = 0; i < listeners.size(); i++) {
+ listeners.get(i).onRemove(item);
+ }
}
@Override
@@ -67,4 +75,19 @@ class FolderInfo extends ItemInfo {
super.onAddToDatabase(values);
values.put(LauncherSettings.Favorites.TITLE, title.toString());
}
+
+ void addListener(FolderListener listener) {
+ listeners.add(listener);
+ }
+
+ void removeListener(FolderListener listener) {
+ if (listeners.contains(listener)) {
+ listeners.remove(listener);
+ }
+ }
+
+ interface FolderListener {
+ public void onAdd(ShortcutInfo item);
+ public void onRemove(ShortcutInfo item);
+ }
}