summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/HistoryAdapter.java
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-09-25 14:27:56 -0700
committernicolasroard <nicolasroard@google.com>2012-09-26 16:13:45 -0700
commit5728a84cf5fa2733b09af06b9016957a9a566624 (patch)
treed6d95a724fa12a61dc03460865758c9392e59217 /src/com/android/gallery3d/filtershow/HistoryAdapter.java
parent4994b8649de154c59de47cb1a2e14acca1a17096 (diff)
downloadandroid_packages_apps_Snap-5728a84cf5fa2733b09af06b9016957a9a566624.tar.gz
android_packages_apps_Snap-5728a84cf5fa2733b09af06b9016957a9a566624.tar.bz2
android_packages_apps_Snap-5728a84cf5fa2733b09af06b9016957a9a566624.zip
Initial import of the new image editor
bug:7165910 Change-Id: I756d6594f5bddd233772c979410362ca22e232a3
Diffstat (limited to 'src/com/android/gallery3d/filtershow/HistoryAdapter.java')
-rw-r--r--src/com/android/gallery3d/filtershow/HistoryAdapter.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/filtershow/HistoryAdapter.java b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
new file mode 100644
index 000000000..ed5b26b34
--- /dev/null
+++ b/src/com/android/gallery3d/filtershow/HistoryAdapter.java
@@ -0,0 +1,119 @@
+
+package com.android.gallery3d.filtershow;
+
+import java.util.Vector;
+
+import com.android.gallery3d.filtershow.presets.ImagePreset;
+import com.android.gallery3d.R;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
+ private static final String LOGTAG = "HistoryAdapter";
+ private int mCurrentPresetPosition = 0;
+
+ public void setCurrentPreset(int n) {
+ mCurrentPresetPosition = n;
+ this.notifyDataSetChanged();
+ }
+
+ public HistoryAdapter(Context context, int resource, int textViewResourceId) {
+ super(context, resource, textViewResourceId);
+ }
+
+ public void reset() {
+ if (getCount() == 0) {
+ return;
+ }
+ ImagePreset first = getItem(getCount() - 1);
+ clear();
+ insert(first, 0);
+ }
+
+ public void insert(ImagePreset preset, int position) {
+ if (getCount() > position && getItem(position).same(preset)) {
+ return;
+ }
+ if (mCurrentPresetPosition != 0) {
+ // in this case, let's discount the presets before the current one
+ Vector<ImagePreset> oldItems = new Vector<ImagePreset>();
+ for (int i = mCurrentPresetPosition; i < getCount(); i++) {
+ oldItems.add(getItem(i));
+ }
+ clear();
+ for (int i = 0; i < oldItems.size(); i++) {
+ add(oldItems.elementAt(i));
+ }
+ mCurrentPresetPosition = position;
+ this.notifyDataSetChanged();
+ }
+ if (getCount() > position && getItem(position).same(preset)) {
+ return;
+ }
+ super.insert(preset, position);
+ mCurrentPresetPosition = position;
+ this.notifyDataSetChanged();
+ }
+
+ public int redo() {
+ mCurrentPresetPosition--;
+ if (mCurrentPresetPosition < 0) {
+ mCurrentPresetPosition = 0;
+ }
+ this.notifyDataSetChanged();
+ return mCurrentPresetPosition;
+ }
+
+ public int undo() {
+ mCurrentPresetPosition++;
+ if (mCurrentPresetPosition >= getCount()) {
+ mCurrentPresetPosition = getCount() - 1;
+ }
+ this.notifyDataSetChanged();
+ return mCurrentPresetPosition;
+ }
+
+ public View getView(int position, View convertView, ViewGroup parent) {
+ View view = convertView;
+ if (view == null) {
+ LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ view = inflater.inflate(R.layout.filtershow_history_operation_row, null);
+ }
+
+ ImagePreset item = getItem(position);
+ if (item != null) {
+ TextView itemView = (TextView) view.findViewById(R.id.rowTextView);
+ if (itemView != null) {
+ // do whatever you want with your string and long
+ itemView.setText(item.historyName());
+ }
+ ImageView markView = (ImageView) view.findViewById(R.id.selectedMark);
+ if (position == mCurrentPresetPosition) {
+ markView.setVisibility(View.VISIBLE);
+ } else {
+ markView.setVisibility(View.INVISIBLE);
+ }
+ ImageView typeView = (ImageView) view.findViewById(R.id.typeMark);
+ if (position == getCount() - 1) {
+ typeView.setImageResource(R.drawable.filtershow_button_origin);
+ } else if (item.historyName().equalsIgnoreCase("Border")) {
+ typeView.setImageResource(R.drawable.filtershow_button_border);
+ } else if (item.isFx()) {
+ typeView.setImageResource(R.drawable.filtershow_button_fx);
+ } else {
+ typeView.setImageResource(R.drawable.filtershow_button_settings);
+ }
+ }
+
+ return view;
+ }
+}