summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2013-04-18 12:31:10 -0700
committerMichael Kolb <kolby@google.com>2013-04-18 14:31:18 -0700
commit25c0ec4c1252a8d0f9de74ba7ade74bc7af3f5b2 (patch)
tree243814e383c7363ef7e823f79ca1114779cd60fa /src
parent9d39c070458686fa31c3173c72332eee60c4dd14 (diff)
downloadandroid_packages_apps_Snap-25c0ec4c1252a8d0f9de74ba7ade74bc7af3f5b2.tar.gz
android_packages_apps_Snap-25c0ec4c1252a8d0f9de74ba7ade74bc7af3f5b2.tar.bz2
android_packages_apps_Snap-25c0ec4c1252a8d0f9de74ba7ade74bc7af3f5b2.zip
Add more menu options/icons
Bug: 8640131 Added location and scene mode to secondary menu Updated HDR icons Change-Id: I5bed39a2ec037aecf67702d88f738befe61846d4
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/PhotoMenu.java67
-rw-r--r--src/com/android/camera/PieController.java55
2 files changed, 80 insertions, 42 deletions
diff --git a/src/com/android/camera/PhotoMenu.java b/src/com/android/camera/PhotoMenu.java
index 77f2fc508..31fe670ff 100644
--- a/src/com/android/camera/PhotoMenu.java
+++ b/src/com/android/camera/PhotoMenu.java
@@ -41,8 +41,10 @@ public class PhotoMenu extends PieController
private static final int POS_MORE = 2;
private static final int POS_FLASH = 3;
private static final int POS_SWITCH = 4;
- private static final int POS_WB = 1;
+ private static final int POS_LOCATION = 1;
+ private static final int POS_WB = 3;
private static final int POS_SET = 2;
+ private static final int POS_SCENE = 4;
private final String mSettingOff;
@@ -81,61 +83,31 @@ public class PhotoMenu extends PieController
}
// camera switcher
if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) {
- item = makeItem(R.drawable.ic_switch_back);
- item.setPosition(POS_SWITCH, 5);
- IconListPreference lpref = (IconListPreference) group.findPreference(
- CameraSettings.KEY_CAMERA_ID);
- item.setImageResource(mActivity,
- ((IconListPreference) lpref).getIconIds()
- [lpref.findIndexOfValue(lpref.getValue())]);
- item.setLabel(lpref.getLabel());
+ item = makeSwitchItem(CameraSettings.KEY_CAMERA_ID, POS_SWITCH, 5, false);
final PieItem fitem = item;
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(PieItem item) {
// Find the index of next camera.
- ListPreference camPref = mPreferenceGroup
+ ListPreference pref = mPreferenceGroup
.findPreference(CameraSettings.KEY_CAMERA_ID);
- if (camPref != null) {
- int index = camPref.findIndexOfValue(camPref.getValue());
- CharSequence[] values = camPref.getEntryValues();
+ if (pref != null) {
+ int index = pref.findIndexOfValue(pref.getValue());
+ CharSequence[] values = pref.getEntryValues();
index = (index + 1) % values.length;
- int newCameraId = Integer
- .parseInt((String) values[index]);
- fitem.setLabel(camPref.getLabel());
- fitem.setImageResource(mActivity,
- ((IconListPreference) camPref).getIconIds()[index]);
- mListener.onCameraPickerClicked(newCameraId);
+ pref.setValueIndex(index);
+ mListener.onCameraPickerClicked(index);
}
+ updateItem(fitem, CameraSettings.KEY_CAMERA_ID);
}
});
mRenderer.addItem(item);
}
// hdr
if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) {
- ListPreference lp = group.findPreference(CameraSettings.KEY_CAMERA_HDR);
- item = makeItem(R.drawable.ic_hdr);
- item.setLabel(lp.getLabel());
- item.setPosition(POS_HDR, 5);
- final PieItem fitem = item;
- item.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(PieItem item) {
- // Find the index of next camera.
- ListPreference pref = mPreferenceGroup
- .findPreference(CameraSettings.KEY_CAMERA_HDR);
- if (pref != null) {
- // toggle hdr value
- int index = (pref.findIndexOfValue(pref.getValue()) + 1) % 2;
- pref.setValueIndex(index);
- onSettingChanged(pref);
- fitem.setLabel(pref.getLabel());
- }
- }
- });
+ item = makeSwitchItem(CameraSettings.KEY_CAMERA_HDR, POS_HDR, 5, true);
mRenderer.addItem(item);
}
-
// more settings
PieItem more = makeItem(R.drawable.ic_settings_holo_light);
more.setPosition(POS_MORE, 5);
@@ -147,10 +119,21 @@ public class PhotoMenu extends PieController
item.setLabel(res.getString(R.string.pref_camera_whitebalance_label));
more.addItem(item);
}
+ // location
+ if (group.findPreference(CameraSettings.KEY_RECORD_LOCATION) != null) {
+ item = makeSwitchItem(CameraSettings.KEY_RECORD_LOCATION, POS_LOCATION, 5, true);
+ more.addItem(item);
+ }
+ // scene mode
+ if (group.findPreference(CameraSettings.KEY_SCENE_MODE) != null) {
+ IconListPreference pref = (IconListPreference) group.findPreference(
+ CameraSettings.KEY_SCENE_MODE);
+ pref.setUseSingleIcon(true);
+ item = makeItem(CameraSettings.KEY_SCENE_MODE, POS_SCENE, 5);
+ more.addItem(item);
+ }
// settings popup
mOtherKeys = new String[] {
- CameraSettings.KEY_SCENE_MODE,
- CameraSettings.KEY_RECORD_LOCATION,
CameraSettings.KEY_PICTURE_SIZE,
CameraSettings.KEY_FOCUS_MODE,
CameraSettings.KEY_TIMER,
diff --git a/src/com/android/camera/PieController.java b/src/com/android/camera/PieController.java
index 5ccab5e72..565a20ed1 100644
--- a/src/com/android/camera/PieController.java
+++ b/src/com/android/camera/PieController.java
@@ -133,6 +133,50 @@ public class PieController {
return item;
}
+ public PieItem makeSwitchItem(final String prefKey, int position, int count,
+ boolean addListener) {
+ final IconListPreference pref =
+ (IconListPreference) mPreferenceGroup.findPreference(prefKey);
+ if (pref == null) return null;
+ int[] iconIds = pref.getLargeIconIds();
+ int resid = -1;
+ int index = pref.findIndexOfValue(pref.getValue());
+ if (!pref.getUseSingleIcon() && iconIds != null) {
+ // Each entry has a corresponding icon.
+ resid = iconIds[index];
+ } else {
+ // The preference only has a single icon to represent it.
+ resid = pref.getSingleIcon();
+ }
+ PieItem item = makeItem(resid);
+ item.setPosition(position, count);
+ item.setLabel(pref.getLabels()[index]);
+ item.setImageResource(mActivity, resid);
+ mPreferences.add(pref);
+ mPreferenceMap.put(pref, item);
+ if (addListener) {
+ final PieItem fitem = item;
+ item.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(PieItem item) {
+ IconListPreference pref = (IconListPreference) mPreferenceGroup
+ .findPreference(prefKey);
+ int index = pref.findIndexOfValue(pref.getValue());
+ CharSequence[] values = pref.getEntryValues();
+ index = (index + 1) % values.length;
+ pref.setValueIndex(index);
+ fitem.setLabel(pref.getLabels()[index]);
+ fitem.setImageResource(mActivity,
+ ((IconListPreference) pref).getLargeIconIds()[index]);
+ reloadPreference(pref);
+ onSettingChanged(pref);
+ }
+ });
+ }
+ return item;
+ }
+
+
public PieItem makeDialItem(ListPreference pref, int iconId, float center, float sweep) {
PieItem item = makeItem(iconId);
return item;
@@ -143,6 +187,17 @@ public class PieController {
mRenderer.addItem(item);
}
+ public void updateItem(PieItem item, String prefKey) {
+ IconListPreference pref = (IconListPreference) mPreferenceGroup
+ .findPreference(prefKey);
+ if (pref != null) {
+ int index = pref.findIndexOfValue(pref.getValue());
+ item.setLabel(pref.getLabels()[index]);
+ item.setImageResource(mActivity,
+ ((IconListPreference) pref).getLargeIconIds()[index]);
+ }
+ }
+
public void setPreferenceGroup(PreferenceGroup group) {
mPreferenceGroup = group;
}