diff options
Diffstat (limited to 'src/com/android/launcher2/FolderInfo.java')
-rw-r--r-- | src/com/android/launcher2/FolderInfo.java | 23 |
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); + } } |