From 3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0 Mon Sep 17 00:00:00 2001 From: Michael Kolb Date: Tue, 12 Mar 2013 10:24:42 -0700 Subject: Pie design update Change-Id: Ifb0d50938332bdae50e45523850605d0aafed7fb --- src/com/android/camera/PieController.java | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'src/com/android/camera/PieController.java') 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) { -- cgit v1.2.3