summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/PieRenderer.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-04-10 08:50:51 -0700
committerMichael Kolb <kolby@google.com>2013-04-15 11:43:52 -0700
commit10f4ba0198904a3d7679771ce845c847d940226f (patch)
treeebd947618c629592871cbd02a54ae5097d3d5f1d /src/com/android/camera/ui/PieRenderer.java
parentd02932454e58d6858ec80d64932247f73dd0b19b (diff)
downloadandroid_packages_apps_Snap-10f4ba0198904a3d7679771ce845c847d940226f.tar.gz
android_packages_apps_Snap-10f4ba0198904a3d7679771ce845c847d940226f.tar.bz2
android_packages_apps_Snap-10f4ba0198904a3d7679771ce845c847d940226f.zip
Add menu labels
Bug: 8618169 Change-Id: Iea1ac7256450afd2870c144099459f32868c699f
Diffstat (limited to 'src/com/android/camera/ui/PieRenderer.java')
-rw-r--r--src/com/android/camera/ui/PieRenderer.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/com/android/camera/ui/PieRenderer.java b/src/com/android/camera/ui/PieRenderer.java
index 0969e4e63..4374fa624 100644
--- a/src/com/android/camera/ui/PieRenderer.java
+++ b/src/com/android/camera/ui/PieRenderer.java
@@ -27,7 +27,6 @@ import android.graphics.PointF;
import android.graphics.RectF;
import android.os.Handler;
import android.os.Message;
-import android.util.Log;
import android.view.MotionEvent;
import android.view.ViewConfiguration;
import android.view.animation.Animation;
@@ -35,6 +34,7 @@ import android.view.animation.Animation.AnimationListener;
import android.view.animation.LinearInterpolator;
import android.view.animation.Transformation;
+import com.android.camera.drawable.TextDrawable;
import com.android.gallery3d.R;
import java.util.ArrayList;
@@ -133,6 +133,7 @@ public class PieRenderer extends OverlayRenderer
private FadeOutAnimation mFadeOut;
private volatile boolean mFocusCancelled;
private PointF mPolar = new PointF();
+ private TextDrawable mLabel;
@@ -213,6 +214,7 @@ public class PieRenderer extends OverlayRenderer
mSliceRadius = res.getDimensionPixelSize(R.dimen.pie_item_radius);
mArcRadius = res.getDimensionPixelSize(R.dimen.pie_arc_radius);
mArcOffset = res.getDimensionPixelSize(R.dimen.pie_arc_offset);
+ mLabel = new TextDrawable(res);
}
private PieItem getRoot() {
@@ -269,6 +271,7 @@ public class PieRenderer extends OverlayRenderer
}
}
}
+ mLabel.setText("");
mOpen.clear();
mOpen.add(root);
layoutPie();
@@ -335,6 +338,15 @@ public class PieRenderer extends OverlayRenderer
private void layoutPie() {
layoutItems(0, getRoot().getItems());
+ layoutLabel(0);
+ }
+
+ private void layoutLabel(int level) {
+ int x = mPieCenterX;
+ int y = mArcCenterY - mArcRadius - (level + 2) * mRadiusInc;
+ int w = mLabel.getIntrinsicWidth();
+ int h = mLabel.getIntrinsicHeight();
+ mLabel.setBounds(x - w/2, y - h/2, x + w/2, y + h/2);
}
private void layoutItems(int level, List<PieItem> items) {
@@ -480,6 +492,7 @@ public class PieRenderer extends OverlayRenderer
for (PieItem item : getParent().getItems()) {
drawItem(Math.max(0, mOpen.size() - 2), canvas, item, alpha);
}
+ mLabel.draw(canvas);
}
if (hasOpenItem()) {
int level = getLevel();
@@ -491,6 +504,7 @@ public class PieRenderer extends OverlayRenderer
drawItem(level, canvas, inner, (mXFade != null) ? (1 - 0.5f * alpha) : 1);
}
}
+ mLabel.draw(canvas);
}
canvas.restoreToCount(state);
}
@@ -606,6 +620,7 @@ public class PieRenderer extends OverlayRenderer
} else {
deselect();
}
+ mLabel.setText("");
return false;
}
PieItem item = findItem(mPolar);
@@ -665,6 +680,8 @@ public class PieRenderer extends OverlayRenderer
if (item != null && item.isEnabled()) {
item.setSelected(true);
mCurrentItem = item;
+ mLabel.setText(mCurrentItem.getLabel());
+ layoutLabel(getLevel());
} else {
mCurrentItem = null;
}
@@ -690,6 +707,7 @@ public class PieRenderer extends OverlayRenderer
mCurrentItem = item;
if ((mCurrentItem != getOpenItem()) && mCurrentItem.hasItems()) {
openCurrentItem();
+ layoutLabel(getLevel());
}
} else {
mCurrentItem = null;
@@ -728,6 +746,7 @@ public class PieRenderer extends OverlayRenderer
mXFade = null;
ci.setSelected(false);
mOpening = false;
+ mLabel.setText("");
}
@Override