summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-08-14 09:02:59 -0700
committernicolasroard <nicolasroard@google.com>2013-08-14 09:05:51 -0700
commit2e1bc2e37f285bfaf302a0533a372d4373474d9c (patch)
treeeea32646cd5f58c727817675330b173ccfdf5e47 /src
parent55a0279ee420c649606edd7815403d3ca1820c07 (diff)
downloadandroid_packages_apps_Gallery2-2e1bc2e37f285bfaf302a0533a372d4373474d9c.tar.gz
android_packages_apps_Gallery2-2e1bc2e37f285bfaf302a0533a372d4373474d9c.tar.bz2
android_packages_apps_Gallery2-2e1bc2e37f285bfaf302a0533a372d4373474d9c.zip
Fix UI Tablet for saturation panel
Change-Id: Id2fffcefc8af3cf8f6ffe2c84447c3f54070f160
Diffstat (limited to 'src')
-rw-r--r--src/com/android/gallery3d/filtershow/editors/EditorChanSat.java194
-rw-r--r--src/com/android/gallery3d/filtershow/editors/ParametricEditor.java17
2 files changed, 176 insertions, 35 deletions
diff --git a/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java b/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
index 95a30e7fa..0069aae3c 100644
--- a/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
+++ b/src/com/android/gallery3d/filtershow/editors/EditorChanSat.java
@@ -18,24 +18,27 @@ package com.android.gallery3d.filtershow.editors;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Handler;
+import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
+import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
+import android.widget.TextView;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.controller.BasicParameterStyle;
import com.android.gallery3d.filtershow.controller.BitmapCaller;
import com.android.gallery3d.filtershow.controller.FilterView;
import com.android.gallery3d.filtershow.controller.Parameter;
+import com.android.gallery3d.filtershow.filters.FilterBasicRepresentation;
import com.android.gallery3d.filtershow.filters.FilterChanSatRepresentation;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.imageshow.MasterImage;
import com.android.gallery3d.filtershow.pipeline.ImagePreset;
-import com.android.gallery3d.filtershow.pipeline.RenderingRequest;
-import com.android.gallery3d.filtershow.pipeline.RenderingRequestCaller;
public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeListener, FilterView {
public static final int ID = R.id.editorChanSat;
@@ -43,6 +46,21 @@ public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeLi
private SwapButton mButton;
private final Handler mHandler = new Handler();
+ private SeekBar mMainBar;
+ private SeekBar mRedBar;
+ private SeekBar mYellowBar;
+ private SeekBar mGreenBar;
+ private SeekBar mCyanBar;
+ private SeekBar mBlueBar;
+ private SeekBar mMagentaBar;
+ private TextView mMainValue;
+ private TextView mRedValue;
+ private TextView mYellowValue;
+ private TextView mGreenValue;
+ private TextView mCyanValue;
+ private TextView mBlueValue;
+ private TextView mMagentaValue;
+
int[] mMenuStrings = {
R.string.editor_chan_sat_main,
R.string.editor_chan_sat_red,
@@ -80,29 +98,119 @@ public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeLi
mButton = (SwapButton) accessoryViewList.findViewById(R.id.applyEffect);
mButton.setText(mContext.getString(R.string.editor_chan_sat_main));
- final PopupMenu popupMenu = new PopupMenu(mImageShow.getActivity(), mButton);
+ if (useCompact(mContext)) {
+ final PopupMenu popupMenu = new PopupMenu(mImageShow.getActivity(), mButton);
- popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_chan_sat, popupMenu.getMenu());
+ popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_chan_sat,
+ popupMenu.getMenu());
- popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- selectMenuItem(item);
- return true;
- }
- });
- mButton.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- popupMenu.show();
- }
- });
- mButton.setListener(this);
+ popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ selectMenuItem(item);
+ return true;
+ }
+ });
+ mButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View arg0) {
+ popupMenu.show();
+ }
+ });
+ mButton.setListener(this);
+
+ FilterChanSatRepresentation csrep = getChanSatRep();
+ String menuString = mContext.getString(mMenuStrings[0]);
+ switchToMode(csrep, FilterChanSatRepresentation.MODE_MASTER, menuString);
+ }
+ }
- FilterChanSatRepresentation csrep = getChanSatRep();
- String menuString = mContext.getString(mMenuStrings[0]);
- switchToMode(csrep, FilterChanSatRepresentation.MODE_MASTER, menuString);
+ @Override
+ public void reflectCurrentFilter() {
+ if (useCompact(mContext)) {
+ super.reflectCurrentFilter();
+ updateText();
+ return;
+ }
+ mLocalRepresentation = null;
+ if (getLocalRepresentation() != null
+ && getLocalRepresentation() instanceof FilterChanSatRepresentation) {
+ FilterChanSatRepresentation rep =
+ (FilterChanSatRepresentation) getLocalRepresentation();
+ int value = rep.getValue(FilterChanSatRepresentation.MODE_MASTER);
+ mMainBar.setProgress(value + 100);
+ mMainValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_RED);
+ mRedBar.setProgress(value + 100);
+ mRedValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_YELLOW);
+ mYellowBar.setProgress(value + 100);
+ mYellowValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_GREEN);
+ mGreenBar.setProgress(value + 100);
+ mGreenValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_CYAN);
+ mCyanBar.setProgress(value + 100);
+ mCyanValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_BLUE);
+ mBlueBar.setProgress(value + 100);
+ mBlueValue.setText("" + value);
+ value = rep.getValue(FilterChanSatRepresentation.MODE_MAGENTA);
+ mMagentaBar.setProgress(value + 100);
+ mMagentaValue.setText("" + value);
+ String text = mContext.getString(rep.getTextId()).toUpperCase();
+ mFilterTitle.setText(text);
+ updateText();
+ }
+ }
+ @Override
+ public void setUtilityPanelUI(View actionButton, View editControl) {
+ if (useCompact(mContext)) {
+ super.setUtilityPanelUI(actionButton, editControl);
+ return;
+ }
+ mActionButton = actionButton;
+ mEditControl = editControl;
+ mEditTitle.setCompoundDrawables(null, null, null, null);
+ LinearLayout group = (LinearLayout) editControl;
+ LayoutInflater inflater =
+ (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ LinearLayout controls = (LinearLayout) inflater.inflate(
+ R.layout.filtershow_saturation_controls, group, false);
+ ViewGroup.LayoutParams lp = new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ controls.setLayoutParams(lp);
+ group.removeAllViews();
+ group.addView(controls);
+ mMainBar = (SeekBar) controls.findViewById(R.id.mainSeekbar);
+ mMainBar.setMax(200);
+ mMainBar.setOnSeekBarChangeListener(this);
+ mMainValue = (TextView) controls.findViewById(R.id.mainValue);
+ mRedBar = (SeekBar) controls.findViewById(R.id.redSeekBar);
+ mRedBar.setMax(200);
+ mRedBar.setOnSeekBarChangeListener(this);
+ mRedValue = (TextView) controls.findViewById(R.id.redValue);
+ mYellowBar = (SeekBar) controls.findViewById(R.id.yellowSeekBar);
+ mYellowBar.setMax(200);
+ mYellowBar.setOnSeekBarChangeListener(this);
+ mYellowValue = (TextView) controls.findViewById(R.id.yellowValue);
+ mGreenBar = (SeekBar) controls.findViewById(R.id.greenSeekBar);
+ mGreenBar.setMax(200);
+ mGreenBar.setOnSeekBarChangeListener(this);
+ mGreenValue = (TextView) controls.findViewById(R.id.greenValue);
+ mCyanBar = (SeekBar) controls.findViewById(R.id.cyanSeekBar);
+ mCyanBar.setMax(200);
+ mCyanBar.setOnSeekBarChangeListener(this);
+ mCyanValue = (TextView) controls.findViewById(R.id.cyanValue);
+ mBlueBar = (SeekBar) controls.findViewById(R.id.blueSeekBar);
+ mBlueBar.setMax(200);
+ mBlueBar.setOnSeekBarChangeListener(this);
+ mBlueValue = (TextView) controls.findViewById(R.id.blueValue);
+ mMagentaBar = (SeekBar) controls.findViewById(R.id.magentaSeekBar);
+ mMagentaBar.setMax(200);
+ mMagentaBar.setOnSeekBarChangeListener(this);
+ mMagentaValue = (TextView) controls.findViewById(R.id.magentaValue);
}
public int getParameterIndex(int id) {
@@ -127,6 +235,9 @@ public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeLi
@Override
public void detach() {
+ if (mButton == null) {
+ return;
+ }
mButton.setListener(null);
mButton.setOnClickListener(null);
}
@@ -181,6 +292,9 @@ public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeLi
}
protected void switchToMode(FilterChanSatRepresentation csrep, int mode, String title) {
+ if (csrep == null) {
+ return;
+ }
csrep.setParameterMode(mode);
mCurrentlyEditing = title;
mButton.setText(mCurrentlyEditing);
@@ -194,6 +308,44 @@ public class EditorChanSat extends ParametricEditor implements OnSeekBarChangeLi
}
@Override
+ public void onProgressChanged(SeekBar sbar, int progress, boolean arg2) {
+ FilterChanSatRepresentation rep = getChanSatRep();
+ int value = progress - 100;
+ switch (sbar.getId()) {
+ case R.id.mainSeekbar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_MASTER);
+ mMainValue.setText("" + value);
+ break;
+ case R.id.redSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_RED);
+ mRedValue.setText("" + value);
+ break;
+ case R.id.yellowSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_YELLOW);
+ mYellowValue.setText("" + value);
+ break;
+ case R.id.greenSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_GREEN);
+ mGreenValue.setText("" + value);
+ break;
+ case R.id.cyanSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_CYAN);
+ mCyanValue.setText("" + value);
+ break;
+ case R.id.blueSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_BLUE);
+ mBlueValue.setText("" + value);
+ break;
+ case R.id.magentaSeekBar:
+ rep.setParameterMode(FilterChanSatRepresentation.MODE_MAGENTA);
+ mMagentaValue.setText("" + value);
+ break;
+ }
+ rep.setCurrentParameter(value);
+ commitLocalRepresentation();
+ }
+
+ @Override
public void swapLeft(MenuItem item) {
super.swapLeft(item);
mButton.setTranslationX(0);
diff --git a/src/com/android/gallery3d/filtershow/editors/ParametricEditor.java b/src/com/android/gallery3d/filtershow/editors/ParametricEditor.java
index 6f0a79222..d80b1473c 100644
--- a/src/com/android/gallery3d/filtershow/editors/ParametricEditor.java
+++ b/src/com/android/gallery3d/filtershow/editors/ParametricEditor.java
@@ -17,6 +17,7 @@
package com.android.gallery3d.filtershow.editors;
import android.content.Context;
+import android.content.res.Configuration;
import android.graphics.Point;
import android.util.Log;
import android.view.View;
@@ -144,21 +145,9 @@ public class ParametricEditor extends Editor {
};
}
- // TODO: need a better way to decide which representation
static boolean useCompact(Context context) {
- WindowManager w = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE));
- Point size = new Point();
- w.getDefaultDisplay().getSize(size);
- if (size.x < size.y) { // if tall than wider
- return true;
- }
- if (size.x < MINIMUM_WIDTH) {
- return true;
- }
- if (size.y < MINIMUM_HEIGHT) {
- return true;
- }
- return false;
+ return context.getResources().getConfiguration().orientation
+ == Configuration.ORIENTATION_PORTRAIT;
}
protected Parameter getParameterToEdit(FilterRepresentation rep) {