summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/PanelController.java
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2012-10-18 17:53:44 -0700
committernicolasroard <nicolasroard@google.com>2012-10-18 23:36:56 -0700
commitb184f83254e8a930112c4db9364669a936f295d8 (patch)
tree5b71c06911f2471acd73382ea6b22c12d5625677 /src/com/android/gallery3d/filtershow/PanelController.java
parent3b50e7b4baceebfea3fb3ccc7aca2966a20d02b9 (diff)
downloadandroid_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.gz
android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.tar.bz2
android_packages_apps_Snap-b184f83254e8a930112c4db9364669a936f295d8.zip
Improves Curves & Crop UI
bug:7361722 - Use new assets - Add a margin - Add a popup menu - Add a new button showing the current channel - Add popup menu, new assets, new button for Crop as well Change-Id: I0e09098e3135d2213f7f4cd64cd75a3a518a07da
Diffstat (limited to 'src/com/android/gallery3d/filtershow/PanelController.java')
-rw-r--r--src/com/android/gallery3d/filtershow/PanelController.java87
1 files changed, 82 insertions, 5 deletions
diff --git a/src/com/android/gallery3d/filtershow/PanelController.java b/src/com/android/gallery3d/filtershow/PanelController.java
index 1dbaca218..45ee235e2 100644
--- a/src/com/android/gallery3d/filtershow/PanelController.java
+++ b/src/com/android/gallery3d/filtershow/PanelController.java
@@ -3,9 +3,11 @@ package com.android.gallery3d.filtershow;
import android.content.Context;
import android.text.Html;
+import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewPropertyAnimator;
+import android.widget.PopupMenu;
import android.widget.TextView;
import com.android.gallery3d.R;
@@ -25,6 +27,7 @@ import com.android.gallery3d.filtershow.filters.ImageFilterWBalance;
import com.android.gallery3d.filtershow.imageshow.ImageCrop;
import com.android.gallery3d.filtershow.imageshow.ImageShow;
import com.android.gallery3d.filtershow.presets.ImagePreset;
+import com.android.gallery3d.filtershow.ui.FramedTextButton;
import com.android.gallery3d.filtershow.ui.ImageButtonTitle;
import com.android.gallery3d.filtershow.ui.ImageCurves;
@@ -142,6 +145,43 @@ public class PanelController implements OnClickListener {
return mSelected;
}
+ public void setAspectButton(FramedTextButton button, int itemId) {
+ ImageCrop imageCrop = (ImageCrop) mCurrentImage;
+ switch (itemId) {
+ case R.id.crop_menu_1to1: {
+ button.setText(mContext.getString(R.string.aspect1to1_effect));
+ imageCrop.apply(1, 1);
+ break;
+ }
+ case R.id.crop_menu_4to6: {
+ button.setText(mContext.getString(R.string.aspect4to6_effect));
+ imageCrop.apply(6, 4);
+ break;
+ }
+ case R.id.crop_menu_5to7: {
+ button.setText(mContext.getString(R.string.aspect5to7_effect));
+ imageCrop.apply(7, 5);
+ break;
+ }
+ case R.id.crop_menu_9to16: {
+ button.setText(mContext.getString(R.string.aspect9to16_effect));
+ imageCrop.apply(16, 9);
+ break;
+ }
+ case R.id.crop_menu_none: {
+ button.setText(mContext.getString(R.string.aspectNone_effect));
+ imageCrop.applyClear();
+ break;
+ }
+ case R.id.crop_menu_original: {
+ button.setText(mContext.getString(R.string.aspectOriginal_effect));
+ imageCrop.applyOriginal();
+ break;
+ }
+ }
+ imageCrop.invalidate();
+ }
+
public void nextAspectButton() {
if (mAspectButton instanceof ImageButtonTitle
&& mCurrentImage instanceof ImageCrop) {
@@ -201,7 +241,7 @@ public class PanelController implements OnClickListener {
}
}
- void setCurrentAspectButton(int n){
+ void setCurrentAspectButton(int n) {
mCurrentAspectButton = n;
}
@@ -331,9 +371,11 @@ public class PanelController implements OnClickListener {
}
public void resetParameters() {
- mCurrentImage.resetParameter();
showPanel(mCurrentPanel);
- mCurrentImage.select();
+ if (mCurrentImage != null) {
+ mCurrentImage.resetParameter();
+ mCurrentImage.select();
+ }
}
public boolean onBackPressed() {
@@ -343,6 +385,8 @@ public class PanelController implements OnClickListener {
HistoryAdapter adapter = mMasterImage.getHistory();
int position = adapter.undo();
mMasterImage.onItemClick(position);
+ showPanel(mCurrentPanel);
+ mCurrentImage.select();
return false;
}
@@ -462,6 +506,7 @@ public class PanelController implements OnClickListener {
mMasterImage.setImagePreset(copy);
filter = copy.getFilter(name);
}
+
if (filter == null && name.equalsIgnoreCase(
mCurrentImage.getContext().getString(R.string.curvesRGB))) {
filter = setImagePreset(new ImageFilterCurves(), name);
@@ -514,6 +559,33 @@ public class PanelController implements OnClickListener {
mMasterImage.setCurrentFilter(filter);
}
+ private void showCurvesPopupMenu(final ImageCurves curves, final FramedTextButton anchor) {
+ PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor);
+ popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_curves, popupMenu.getMenu());
+ popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ curves.setChannel(item.getItemId());
+ anchor.setTextFrom(item.getItemId());
+ return true;
+ }
+ });
+ popupMenu.show();
+ }
+
+ private void showCropPopupMenu(final FramedTextButton anchor) {
+ PopupMenu popupMenu = new PopupMenu(mCurrentImage.getContext(), anchor);
+ popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_crop, popupMenu.getMenu());
+ popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ mUtilityPanel.setAspectButton(anchor, item.getItemId());
+ return true;
+ }
+ });
+ popupMenu.show();
+ }
+
public void showComponent(View view) {
if (mUtilityPanel != null && !mUtilityPanel.selected()) {
Panel current = mPanels.get(mCurrentPanel);
@@ -527,7 +599,12 @@ public class PanelController implements OnClickListener {
if (view.getId() == R.id.pickCurvesChannel) {
ImageCurves curves = (ImageCurves) showImageView(R.id.imageCurves);
- curves.nextChannel();
+ showCurvesPopupMenu(curves, (FramedTextButton) view);
+ return;
+ }
+
+ if (view.getId() == R.id.aspect) {
+ showCropPopupMenu((FramedTextButton) view);
return;
}
@@ -586,8 +663,8 @@ public class PanelController implements OnClickListener {
mUtilityPanel.setEffectName(ename);
mUtilityPanel.setShowParameter(false);
mUtilityPanel.showCurvesButtons();
- ensureFilter("Curves");
mCurrentImage = curves;
+ ensureFilter(ename);
break;
}
case R.id.sharpenButton: {