diff options
author | Michael Kolb <kolby@google.com> | 2013-03-12 10:24:42 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2013-04-01 16:35:44 -0700 |
commit | 3bc96b2d1106fc5ebec6fda6aad3bca4d62e81c0 (patch) | |
tree | 43c8eae3c556b647bbac3d207e9b63491d1775f4 /src/com/android/camera/PieController.java | |
parent | e5a79a5bd8ca3e25c14e4fe5df7c1ee1b544dc7e (diff) | |
download | android_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.java | 27 |
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) { |