diff options
author | nicolasroard <nicolasroard@google.com> | 2012-09-25 14:27:56 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2012-09-26 16:13:45 -0700 |
commit | 5728a84cf5fa2733b09af06b9016957a9a566624 (patch) | |
tree | d6d95a724fa12a61dc03460865758c9392e59217 /src/com/android/gallery3d/filtershow/HistoryAdapter.java | |
parent | 4994b8649de154c59de47cb1a2e14acca1a17096 (diff) | |
download | android_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.java | 119 |
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; + } +} |