OSDN Git Service

Fix refresh of looks panel
authornicolasroard <nicolasroard@google.com>
Wed, 14 Aug 2013 17:34:08 +0000 (10:34 -0700)
committernicolasroard <nicolasroard@google.com>
Wed, 14 Aug 2013 17:34:20 +0000 (10:34 -0700)
Change-Id: Ib38b3aefc8ca9891251458b03587ffa5e41bfbe6

src/com/android/gallery3d/filtershow/FilterShowActivity.java
src/com/android/gallery3d/filtershow/category/CategoryPanel.java
src/com/android/gallery3d/filtershow/category/MainPanel.java

index f386b1b..28fd809 100644 (file)
@@ -429,11 +429,13 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
     }
 
     public void removeLook(Action action) {
-        FilterUserPresetRepresentation rep = (FilterUserPresetRepresentation) action.getRepresentation();
+        FilterUserPresetRepresentation rep =
+                (FilterUserPresetRepresentation) action.getRepresentation();
         if (rep == null) {
             return;
         }
         mUserPresetsManager.delete(rep.getId());
+        updateUserPresetsFromManager();
     }
 
     private void fillEffects() {
@@ -993,6 +995,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
 
     public void loadUserPresets() {
         mUserPresetsManager.load();
+        updateUserPresetsFromManager();
     }
 
     public void updateUserPresetsFromManager() {
@@ -1016,6 +1019,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
         if (presets.size() > 0) {
             mCategoryLooksAdapter.add(new Action(this, Action.ADD_ACTION));
         }
+        mCategoryLooksAdapter.notifyDataSetChanged();
         mCategoryLooksAdapter.notifyDataSetInvalidated();
     }
 
@@ -1051,6 +1055,14 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
             || mUserPresetsManager.getRepresentations().size() == 0) {
             mCategoryLooksAdapter.add(new Action(this, Action.ADD_ACTION));
         }
+
+        Fragment panel = getSupportFragmentManager().findFragmentByTag(MainPanel.FRAGMENT_TAG);
+        if (panel != null) {
+            if (panel instanceof MainPanel) {
+                MainPanel mainPanel = (MainPanel) panel;
+                mainPanel.loadCategoryLookPanel(true);
+            }
+        }
     }
 
     public void setDefaultPreset() {
index 302f021..d1b7d18 100644 (file)
@@ -49,7 +49,7 @@ public class CategoryPanel extends Fragment implements View.OnClickListener {
         loadAdapter(mCurrentAdapter);
     }
 
-    private void loadAdapter(int adapter) {
+    public void loadAdapter(int adapter) {
         FilterShowActivity activity = (FilterShowActivity) getActivity();
         switch (adapter) {
             case MainPanel.LOOKS: {
index 9eccad3..81e52c7 100644 (file)
@@ -146,9 +146,8 @@ public class MainPanel extends Fragment {
         transaction.commit();
     }
 
-    public void loadCategoryLookPanel() {
-        if (mCurrentSelected == LOOKS) {
-
+    public void loadCategoryLookPanel(boolean force) {
+        if (!force && mCurrentSelected == LOOKS) {
             return;
         }
         boolean fromRight = isRightAnimation(LOOKS);
@@ -217,7 +216,7 @@ public class MainPanel extends Fragment {
     public void showPanel(int currentPanel) {
         switch (currentPanel) {
             case LOOKS: {
-                loadCategoryLookPanel();
+                loadCategoryLookPanel(false);
                 break;
             }
             case BORDERS: {