summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui
diff options
context:
space:
mode:
authorByunghun Jeon <bjeon@codeaurora.org>2016-05-10 11:38:21 -0700
committerByunghun Jeon <bjeon@codeaurora.org>2016-05-31 13:18:21 -0700
commit0fdbb4a33a2deb480f877b904203c7f04ef507d0 (patch)
tree42223718b561d86603ef46118c771c617fdba245 /src/com/android/camera/ui
parente8d4ba774d224e5076576ba4c29d1fc248456b40 (diff)
downloadandroid_packages_apps_Snap-0fdbb4a33a2deb480f877b904203c7f04ef507d0.tar.gz
android_packages_apps_Snap-0fdbb4a33a2deb480f877b904203c7f04ef507d0.tar.bz2
android_packages_apps_Snap-0fdbb4a33a2deb480f877b904203c7f04ef507d0.zip
SnapdragonCamera: Add SettingsManager, scene, and filter
Add SettingsManager to work as a database for settings. It will handle all dependencies and populate the values. Add scene mode and filter. Restructure UI and menu by combining them and leave the handling of settings to SettingsManager Change-Id: I185163fdddbffd29434e6a9c41b33be6d3388f88 CRs-Fixed: 1018118
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r--src/com/android/camera/ui/FilmStripView.java32
-rw-r--r--src/com/android/camera/ui/ListMenu.java61
-rw-r--r--src/com/android/camera/ui/ListMenuItem.java22
-rw-r--r--src/com/android/camera/ui/ListSubMenu.java3
4 files changed, 83 insertions, 35 deletions
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java
index 1f9c8d921..e6e00ad56 100644
--- a/src/com/android/camera/ui/FilmStripView.java
+++ b/src/com/android/camera/ui/FilmStripView.java
@@ -37,7 +37,6 @@ import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.Scroller;
-import com.android.camera.CaptureMenu;
import com.android.camera.PhotoMenu;
import com.android.camera.VideoMenu;
import com.android.camera.PreviewGestures;
@@ -1832,7 +1831,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
return true;
PhotoMenu pMenu = mPreviewGestures.getPhotoMenu();
VideoMenu vMenu = mPreviewGestures.getVideoMenu();
- CaptureMenu cMenu = mPreviewGestures.getCaptureMenu();
+
if (pMenu != null) {
if (pMenu.isMenuBeingShown()) {
if (pMenu.isMenuBeingAnimated()) {
@@ -1850,23 +1849,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
}
}
- if (cMenu != null) {
- if (cMenu.isMenuBeingShown()) {
- if (cMenu.isMenuBeingAnimated()) {
- if (cMenu.isOverMenu(ev)) {
- mSendToMenu = true;
- return true;
- }
- }
- }
- if (cMenu.isPreviewMenuBeingShown()) {
- if (cMenu.isOverPreviewMenu(ev)) {
- mSendToPreviewMenu = true;
- return true;
- }
- }
- }
if (vMenu != null) {
if (vMenu.isMenuBeingShown()) {
if (vMenu.isMenuBeingAnimated()) {
@@ -1903,7 +1886,6 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
}
PhotoMenu pMenu = mPreviewGestures.getPhotoMenu();
VideoMenu vMenu = mPreviewGestures.getVideoMenu();
- CaptureMenu cMenu = mPreviewGestures.getCaptureMenu();
if (pMenu != null) {
if (mSendToPreviewMenu)
return pMenu.sendTouchToPreviewMenu(ev);
@@ -1917,19 +1899,7 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener {
return pMenu.sendTouchToPreviewMenu(ev);
}
}
- if (cMenu != null) {
- if (mSendToPreviewMenu)
- return cMenu.sendTouchToPreviewMenu(ev);
- if (mSendToMenu)
- return cMenu.sendTouchToMenu(ev);
- if (cMenu.isMenuBeingShown()) {
- return cMenu.sendTouchToMenu(ev);
- }
- if (cMenu.isPreviewMenuBeingShown()) {
- return cMenu.sendTouchToPreviewMenu(ev);
- }
- }
if (vMenu != null) {
if (mSendToPreviewMenu)
return vMenu.sendTouchToPreviewMenu(ev);
diff --git a/src/com/android/camera/ui/ListMenu.java b/src/com/android/camera/ui/ListMenu.java
index 1c9c611e3..1d48149a0 100644
--- a/src/com/android/camera/ui/ListMenu.java
+++ b/src/com/android/camera/ui/ListMenu.java
@@ -19,8 +19,6 @@
package com.android.camera.ui;
-import java.util.ArrayList;
-
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
@@ -34,21 +32,40 @@ import android.widget.ListView;
import com.android.camera.ListPreference;
import com.android.camera.PreferenceGroup;
+import com.android.camera.SettingsManager;
+
import org.codeaurora.snapcam.R;
+import java.util.ArrayList;
+import java.util.List;
+
/* A popup window that contains several camera settings. */
public class ListMenu extends ListView
implements ListMenuItem.Listener,
- AdapterView.OnItemClickListener {
+ AdapterView.OnItemClickListener,
+ ListSubMenu.Listener {
@SuppressWarnings("unused")
private static final String TAG = "ListMenu";
private int mHighlighted = -1;
private Listener mListener;
+ private SettingsManager mSettingsManager;
private ArrayList<ListPreference> mListItem = new ArrayList<ListPreference>();
// Keep track of which setting items are disabled
// e.g. White balance will be disabled when scene mode is set to non-auto
private boolean[] mEnabled;
+ private boolean mForCamera2 = false;
+
+ @Override
+ public void onListPrefChanged(ListPreference pref) {
+ // listen from ListSubMenu
+ if (mListener != null) {
+ mListener.onSettingChanged(pref);
+ }
+ if (mSettingsManager != null) {
+ mSettingsManager.onSettingChanged(pref);
+ }
+ }
static public interface Listener {
public void onSettingChanged(ListPreference pref);
@@ -60,6 +77,11 @@ public class ListMenu extends ListView
public void onListMenuTouched();
}
+ static public interface SettingsListener {
+ // notify SettingsManager
+ public void onSettingChanged(ListPreference pref);
+ }
+
private class MoreSettingAdapter extends ArrayAdapter<ListPreference> {
LayoutInflater mInflater;
String mOnString;
@@ -90,6 +112,9 @@ public class ListMenu extends ListView
view.setSettingChangedListener(ListMenu.this);
if (position >= 0 && position < mEnabled.length) {
view.setEnabled(mEnabled[position]);
+ if (mForCamera2 && !mEnabled[position]) {
+ view.overrideSettings(pref.getOffValue());
+ }
} else {
Log.w(TAG, "Invalid input: enabled list length, " + mEnabled.length
+ " position " + position);
@@ -109,6 +134,10 @@ public class ListMenu extends ListView
}
}
+ public void setSettingsManager(SettingsManager settingsManager) {
+ mSettingsManager = settingsManager;
+ }
+
public void setSettingChangedListener(Listener listener) {
mListener = listener;
}
@@ -117,6 +146,32 @@ public class ListMenu extends ListView
super(context, attrs);
}
+ public void initializeForCamera2(String[] keys) {
+ mForCamera2 = true;
+ PreferenceGroup group = mSettingsManager.getPreferenceGroup();
+ List<String> disabledList = mSettingsManager.getDisabledList();
+ // Prepare the setting items.
+ for (int i = 0; i < keys.length; ++i) {
+ ListPreference pref = group.findPreference(keys[i]);
+ if (pref != null)
+ mListItem.add(pref);
+ }
+
+ ArrayAdapter<ListPreference> mListItemAdapter = new MoreSettingAdapter();
+ setAdapter(mListItemAdapter);
+ setOnItemClickListener(this);
+ setSelector(android.R.color.transparent);
+ // Initialize mEnabled
+ mEnabled = new boolean[mListItem.size()];
+ for (int i = 0; i < mEnabled.length; i++) {
+ mEnabled[i] = true;
+ }
+
+ for (String s: disabledList) {
+ setPreferenceEnabled(s, false);
+ }
+ }
+
public void initialize(PreferenceGroup group, String[] keys) {
// Prepare the setting items.
for (int i = 0; i < keys.length; ++i) {
diff --git a/src/com/android/camera/ui/ListMenuItem.java b/src/com/android/camera/ui/ListMenuItem.java
index f3c7f017e..b051fdd27 100644
--- a/src/com/android/camera/ui/ListMenuItem.java
+++ b/src/com/android/camera/ui/ListMenuItem.java
@@ -159,4 +159,26 @@ public class ListMenuItem extends RelativeLayout {
setAlpha(0.3f);
}
}
+
+ public void setEnabled(boolean enable, String value) {
+ super.setEnabled(enable);
+ if (enable)
+ setAlpha(1f);
+ else
+ setAlpha(0.3f);
+ if (mTitle != null) {
+ mTitle.setEnabled(enable);
+ if (enable)
+ setAlpha(1f);
+ else
+ setAlpha(0.3f);
+ }
+ if (mEntry != null) {
+ mEntry.setEnabled(enable);
+ if (enable)
+ setAlpha(1f);
+ else
+ setAlpha(0.3f);
+ }
+ }
}
diff --git a/src/com/android/camera/ui/ListSubMenu.java b/src/com/android/camera/ui/ListSubMenu.java
index 3501af3bc..a425c7680 100644
--- a/src/com/android/camera/ui/ListSubMenu.java
+++ b/src/com/android/camera/ui/ListSubMenu.java
@@ -136,8 +136,9 @@ public class ListSubMenu extends ListView implements
public void onItemClick(AdapterView<?> parent, View view,
int index, long id) {
mPreference.setValueIndex(index);
- if (mListener != null)
+ if (mListener != null) {
mListener.onListPrefChanged(mPreference);
+ }
}
@Override