diff options
author | nicolasroard <nicolasroard@google.com> | 2013-08-14 09:02:59 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-08-14 09:05:51 -0700 |
commit | 2e1bc2e37f285bfaf302a0533a372d4373474d9c (patch) | |
tree | eea32646cd5f58c727817675330b173ccfdf5e47 /src | |
parent | 55a0279ee420c649606edd7815403d3ca1820c07 (diff) | |
download | android_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.java | 194 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/editors/ParametricEditor.java | 17 |
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) { |