summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-21 18:42:07 -0700
committernicolasroard <nicolasroard@google.com>2012-10-21 18:42:07 -0700
commiteaf93ae9970f34ed2d69fbd8b66beddaa82d37f6 (patch)
treec2b15b3d38b0a0b6395d4e4ed931dd2708daf14f
parent08999d276db9b07c2fdd28d11ea6a20ca05aaa2e (diff)
downloadandroid_packages_apps_Snap-eaf93ae9970f34ed2d69fbd8b66beddaa82d37f6.tar.gz
android_packages_apps_Snap-eaf93ae9970f34ed2d69fbd8b66beddaa82d37f6.tar.bz2
android_packages_apps_Snap-eaf93ae9970f34ed2d69fbd8b66beddaa82d37f6.zip
Fix the undo/redo/reset menu item state
bug:7357734 - enable/disable the undo/redo/reset menu item depending on the history. Change-Id: I633008bc9a99eef2e7289b290fc96120f09b3825
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java5
-rw-r--r--src/com/android/gallery3d/filtershow/HistoryAdapter.java58
2 files changed, 59 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index cac8aadd6..3d968867f 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -464,6 +464,11 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
.getActionProvider();
mShareActionProvider.setShareIntent(getDefaultShareIntent());
mShareActionProvider.setOnShareTargetSelectedListener(this);
+
+ MenuItem undoItem = menu.findItem(R.id.undoButton);
+ MenuItem redoItem = menu.findItem(R.id.redoButton);
+ MenuItem resetItem = menu.findItem(R.id.resetHistoryButton);
+ mImageShow.getHistory().setMenuItems(undoItem, redoItem, resetItem);
return true;
}
diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
index 475f44313..684c2fc46 100644
--- a/src/com/android/gallery3d/filtershow/HistoryAdapter.java
+++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
@@ -3,6 +3,7 @@ package com.android.gallery3d.filtershow;
import android.content.Context;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
@@ -17,16 +18,61 @@ import java.util.Vector;
public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
private static final String LOGTAG = "HistoryAdapter";
private int mCurrentPresetPosition = 0;
+ private MenuItem mUndoMenuItem = null;
+ private MenuItem mRedoMenuItem = null;
+ private MenuItem mResetMenuItem = null;
+
+ public HistoryAdapter(Context context, int resource, int textViewResourceId) {
+ super(context, resource, textViewResourceId);
+ FilterShowActivity activity = (FilterShowActivity) context;
+ }
+
+ public void setMenuItems(MenuItem undoItem, MenuItem redoItem, MenuItem resetItem) {
+ mUndoMenuItem = undoItem;
+ mRedoMenuItem = redoItem;
+ mResetMenuItem = resetItem;
+ updateMenuItems();
+ }
+
+ public boolean canReset() {
+ if (getCount() <= 1) {
+ return false;
+ }
+ return true;
+ }
+
+ public boolean canUndo() {
+ if (mCurrentPresetPosition == getCount() - 1) {
+ return false;
+ }
+ return true;
+ }
+
+ public boolean canRedo() {
+ if (mCurrentPresetPosition == 0) {
+ return false;
+ }
+ return true;
+ }
+
+ public void updateMenuItems() {
+ if (mUndoMenuItem != null) {
+ mUndoMenuItem.setEnabled(canUndo());
+ }
+ if (mRedoMenuItem != null) {
+ mRedoMenuItem.setEnabled(canRedo());
+ }
+ if (mResetMenuItem != null) {
+ mResetMenuItem.setEnabled(canReset());
+ }
+ }
public void setCurrentPreset(int n) {
mCurrentPresetPosition = n;
+ updateMenuItems();
this.notifyDataSetChanged();
}
- public HistoryAdapter(Context context, int resource, int textViewResourceId) {
- super(context, resource, textViewResourceId);
- }
-
public void reset() {
if (getCount() == 0) {
return;
@@ -34,6 +80,7 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
ImagePreset first = getItem(getCount() - 1);
clear();
addHistoryItem(first);
+ updateMenuItems();
}
public ImagePreset getLast() {
@@ -46,6 +93,7 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
public void addHistoryItem(ImagePreset preset) {
if (canAddHistoryItem(preset)) {
insert(preset, 0);
+ updateMenuItems();
}
}
@@ -89,6 +137,7 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
mCurrentPresetPosition = 0;
}
this.notifyDataSetChanged();
+ updateMenuItems();
return mCurrentPresetPosition;
}
@@ -98,6 +147,7 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
mCurrentPresetPosition = getCount() - 1;
}
this.notifyDataSetChanged();
+ updateMenuItems();
return mCurrentPresetPosition;
}