summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/PieController.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-03-12 10:24:42 -0700
committerMichael Kolb <kolby@google.com>2013-04-01 16:35:44 -0700
commit3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0 (patch)
tree43c8eae3c556b647bbac3d207e9b63491d1775f4 /src/com/android/camera/PieController.java
parente5a79a5bd8ca3e25c14e4fe5df7c1ee1b544dc7e (diff)
downloadandroid_packages_apps_Snap-3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0.tar.gz
android_packages_apps_Snap-3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0.tar.bz2
android_packages_apps_Snap-3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0.zip
Pie design update
Change-Id: Ifb0d50938332bdae50e45523850605d0aafed7fb
Diffstat (limited to 'src/com/android/camera/PieController.java')
-rw-r--r--src/com/android/camera/PieController.java27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/com/android/camera/PieController.java b/src/com/android/camera/PieController.java
index 8202fca21..2145fd894 100644
--- a/src/com/android/camera/PieController.java
+++ b/src/com/android/camera/PieController.java
@@ -37,6 +37,10 @@ public class PieController {
protected static final int MODE_PHOTO = 0;
protected static final int MODE_VIDEO = 1;
+ protected static float CENTER = (float) Math.PI / 2;
+ protected static final float SWEEP = 0.06f;
+
+
protected CameraActivity mActivity;
protected PreferenceGroup mPreferenceGroup;
protected OnPreferenceChangedListener mListener;
@@ -84,10 +88,10 @@ public class PieController {
return new PieItem(drawable, 0);
}
- public void addItem(String prefKey, float center, float sweep) {
+ public PieItem makeItem(String prefKey, float center, float sweep) {
final IconListPreference pref =
(IconListPreference) mPreferenceGroup.findPreference(prefKey);
- if (pref == null) return;
+ if (pref == null) return null;
int[] iconIds = pref.getLargeIconIds();
int resid = -1;
if (!pref.getUseSingleIcon() && iconIds != null) {
@@ -101,7 +105,6 @@ public class PieController {
PieItem item = makeItem(resid);
// use center and sweep to determine layout
item.setFixedSlice(center, sweep);
- mRenderer.addItem(item);
mPreferences.add(pref);
mPreferenceMap.put(pref, item);
int nOfEntries = pref.getEntries().length;
@@ -113,6 +116,7 @@ public class PieController {
} else {
inner = makeItem(pref.getEntries()[i]);
}
+ layoutInner(inner, i, nOfEntries);
item.addItem(inner);
final int index = i;
inner.setOnClickListener(new OnClickListener() {
@@ -125,6 +129,23 @@ public class PieController {
});
}
}
+ return item;
+ }
+
+ public PieItem makeDialItem(ListPreference pref, int iconId, float center, float sweep) {
+ PieItem item = makeItem(iconId);
+ return item;
+ }
+
+ protected void layoutInner(PieItem item, int ix, int n) {
+ float sweep = (float) (SWEEP * Math.PI);//FLOAT_PI_DIVIDED_BY_TWO / Math.max(n, 5);
+ float start = CENTER + (n - 1) * (sweep / 2f);
+ item.setFixedSlice(start - ix * sweep, sweep);
+ }
+
+ public void addItem(String prefKey, float center, float sweep) {
+ PieItem item = makeItem(prefKey, center, sweep);
+ mRenderer.addItem(item);
}
public void setPreferenceGroup(PreferenceGroup group) {