diff options
Diffstat (limited to 'src/com/android/camera/ui')
-rw-r--r-- | src/com/android/camera/ui/FilmStripView.java | 32 | ||||
-rw-r--r-- | src/com/android/camera/ui/ListMenu.java | 63 | ||||
-rw-r--r-- | src/com/android/camera/ui/ListMenuItem.java | 22 | ||||
-rw-r--r-- | src/com/android/camera/ui/ListSubMenu.java | 3 |
4 files changed, 85 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 bb21f7e0a..4cb35981e 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.graphics.Rect; import android.util.AttributeSet; @@ -36,21 +34,42 @@ import android.widget.Space; 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, RotateLayout.Child { + implements ListMenuItem.Listener, + RotateLayout.Child { + 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>(); private View mHeader, mFooter; // 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); @@ -62,6 +81,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; @@ -92,6 +116,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); @@ -135,6 +162,10 @@ public class ListMenu extends ListView view.setLayoutParams(lp); } + public void setSettingsManager(SettingsManager settingsManager) { + mSettingsManager = settingsManager; + } + public void setSettingChangedListener(Listener listener) { mListener = listener; } @@ -143,6 +174,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 |