summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWu-cheng Li <wuchengli@google.com>2011-08-31 21:19:57 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-31 21:19:57 -0700
commitb69aa1513070fc9b799c48a9257fddbc04ace7dd (patch)
tree1010d42a485e409e646b6b3defe9dc5978796915
parentfa45108679c51623e716acbc3301b1e4535c3267 (diff)
parent0341c03529f04351534a15d06facb096aab7a95f (diff)
downloadLegacyCamera-b69aa1513070fc9b799c48a9257fddbc04ace7dd.zip
LegacyCamera-b69aa1513070fc9b799c48a9257fddbc04ace7dd.tar.gz
LegacyCamera-b69aa1513070fc9b799c48a9257fddbc04ace7dd.tar.bz2
Merge "Close the camera setting when an option is tapped."
-rw-r--r--res/values-w1024dp/styles.xml2
-rw-r--r--res/values/styles.xml2
-rw-r--r--src/com/android/camera/ui/AbstractIndicatorButton.java26
-rw-r--r--src/com/android/camera/ui/BasicSettingPopup.java18
-rw-r--r--src/com/android/camera/ui/IndicatorButton.java3
5 files changed, 35 insertions, 16 deletions
diff --git a/res/values-w1024dp/styles.xml b/res/values-w1024dp/styles.xml
index b7e0055..f5dde15 100644
--- a/res/values-w1024dp/styles.xml
+++ b/res/values-w1024dp/styles.xml
@@ -18,8 +18,6 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="ThemeCamera" parent="android:Theme.Holo.NoActionBar">
- </style>
<style name="ReviewControlGroup">
<item name="android:orientation">horizontal</item>
<item name="android:layout_height">wrap_content</item>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index f1dafcb..2f85377 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -18,7 +18,7 @@
-->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="ThemeCamera" parent="android:Theme.Black.NoTitleBar.Fullscreen">
+ <style name="ThemeCamera" parent="android:Theme.Holo.NoActionBar.Fullscreen">
</style>
<style name="OnScreenHintTextAppearance">
<item name="android:textColor">@android:color/primary_text_dark</item>
diff --git a/src/com/android/camera/ui/AbstractIndicatorButton.java b/src/com/android/camera/ui/AbstractIndicatorButton.java
index 2bed377..311a3f5 100644
--- a/src/com/android/camera/ui/AbstractIndicatorButton.java
+++ b/src/com/android/camera/ui/AbstractIndicatorButton.java
@@ -19,6 +19,8 @@ package com.android.camera.ui;
import com.android.camera.R;
import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
@@ -33,6 +35,8 @@ public abstract class AbstractIndicatorButton extends RotateImageView {
protected final int HIGHLIGHT_COLOR;
protected final int DISABLED_COLOR;
protected AbstractSettingPopup mPopup;
+ protected Handler mHandler = new MainHandler();
+ private final int MSG_DISMISS_POPUP = 0;
public AbstractIndicatorButton(Context context) {
super(context);
@@ -101,6 +105,7 @@ public abstract class AbstractIndicatorButton extends RotateImageView {
abstract protected void initializePopup();
private void showPopup() {
+ mHandler.removeMessages(MSG_DISMISS_POPUP);
if (mPopup == null) initializePopup();
mPopup.setVisibility(View.VISIBLE);
@@ -111,12 +116,16 @@ public abstract class AbstractIndicatorButton extends RotateImageView {
}
public boolean dismissPopup() {
+ mHandler.removeMessages(MSG_DISMISS_POPUP);
if (mPopup != null && mPopup.getVisibility() == View.VISIBLE) {
mPopup.clearAnimation();
mPopup.startAnimation(mFadeOut);
mPopup.setVisibility(View.GONE);
clearColorFilter();
invalidate();
+ // Indicator wheel needs to update the highlight indicator if this
+ // is dismissed by MSG_DISMISS_POPUP.
+ ((View) getParent()).invalidate();
return true;
}
return false;
@@ -133,4 +142,21 @@ public abstract class AbstractIndicatorButton extends RotateImageView {
public void reloadPreference() {
if (mPopup != null) mPopup.reloadPreference();
}
+
+ protected void dismissPopupDelayed() {
+ if (!mHandler.hasMessages(MSG_DISMISS_POPUP)) {
+ mHandler.sendEmptyMessage(MSG_DISMISS_POPUP);
+ }
+ }
+
+ private class MainHandler extends Handler {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_DISMISS_POPUP:
+ dismissPopup();
+ break;
+ }
+ }
+ }
}
diff --git a/src/com/android/camera/ui/BasicSettingPopup.java b/src/com/android/camera/ui/BasicSettingPopup.java
index df7ca1c..6991bae 100644
--- a/src/com/android/camera/ui/BasicSettingPopup.java
+++ b/src/com/android/camera/ui/BasicSettingPopup.java
@@ -16,6 +16,9 @@
package com.android.camera.ui;
+import com.android.camera.IconListPreference;
+import com.android.camera.R;
+
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
@@ -23,9 +26,6 @@ import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
-import com.android.camera.IconListPreference;
-import com.android.camera.R;
-
import java.util.ArrayList;
import java.util.HashMap;
@@ -72,7 +72,6 @@ public class BasicSettingPopup extends AbstractSettingPopup implements
new int[] {R.id.text, R.id.image});
((ListView) mSettingList).setAdapter(listItemAdapter);
((ListView) mSettingList).setOnItemClickListener(this);
- ((ListView) mSettingList).setSelector(android.R.color.transparent);
reloadPreference();
}
@@ -93,14 +92,7 @@ public class BasicSettingPopup extends AbstractSettingPopup implements
@Override
public void onItemClick(AdapterView<?> parent, View view,
int index, long id) {
- // If popup window is dismissed, ignore the event. This may happen when
- // users press home and then select a setting immediately.
- if (getVisibility() != View.VISIBLE) return;
-
- int oldIndex = mPreference.findIndexOfValue(mPreference.getValue());
- if (oldIndex != index) {
- mPreference.setValueIndex(index);
- if (mListener != null) mListener.onSettingChanged();
- }
+ mPreference.setValueIndex(index);
+ if (mListener != null) mListener.onSettingChanged();
}
}
diff --git a/src/com/android/camera/ui/IndicatorButton.java b/src/com/android/camera/ui/IndicatorButton.java
index ff4703c..6685358 100644
--- a/src/com/android/camera/ui/IndicatorButton.java
+++ b/src/com/android/camera/ui/IndicatorButton.java
@@ -110,8 +110,11 @@ public class IndicatorButton extends AbstractIndicatorButton implements BasicSet
mPopup = popup;
}
+ @Override
public void onSettingChanged() {
reloadPreference();
+ // Dismiss later so the activated state can be updated before dismiss.
+ dismissPopupDelayed();
if (mListener != null) {
mListener.onSettingChanged();
}