summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChih-Chung Chang <chihchung@google.com>2009-08-10 17:00:52 +0800
committerChih-Chung Chang <chihchung@google.com>2009-08-10 18:01:15 +0800
commit781f55b23ec3c3f97189efaba9d214183109f769 (patch)
tree97b53b60e370e6a76c6c39ec869b7e4e2ac38a6b
parent382b384ec2cd948a82fe42294b18e4ec630bbdf6 (diff)
downloadLegacyCamera-781f55b23ec3c3f97189efaba9d214183109f769.zip
LegacyCamera-781f55b23ec3c3f97189efaba9d214183109f769.tar.gz
LegacyCamera-781f55b23ec3c3f97189efaba9d214183109f769.tar.bz2
Make the responsive region larger for the Picture/Video mode switch.
-rw-r--r--src/com/android/camera/Camera.java1
-rw-r--r--src/com/android/camera/Switcher.java25
-rw-r--r--src/com/android/camera/VideoCamera.java1
3 files changed, 24 insertions, 3 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index 727b7d3..ff0471c 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -747,6 +747,7 @@ public class Camera extends Activity implements View.OnClickListener,
inflater.inflate(R.layout.camera_control, rootView);
mSwitcher = ((Switcher) findViewById(R.id.camera_switch));
mSwitcher.setOnSwitchListener(this);
+ mSwitcher.addTouchView(findViewById(R.id.camera_switch_set));
}
// Make sure preview is started.
diff --git a/src/com/android/camera/Switcher.java b/src/com/android/camera/Switcher.java
index 06e0af5..3c7fc44 100644
--- a/src/com/android/camera/Switcher.java
+++ b/src/com/android/camera/Switcher.java
@@ -22,10 +22,11 @@ import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
+import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
-public class Switcher extends ImageView {
+public class Switcher extends ImageView implements View.OnTouchListener {
private static final String TAG = "Switcher";
public interface OnSwitchListener {
@@ -46,6 +47,13 @@ public class Switcher extends ImageView {
}
public void setSwitch(boolean onOff) {
+ if (mSwitch == onOff) return;
+ mSwitch = onOff;
+ invalidate();
+ }
+
+ // Try to change the switch position. (The client can veto it.)
+ private void tryToSetSwitch(boolean onOff) {
try {
if (mSwitch == onOff) return;
@@ -85,12 +93,12 @@ public class Switcher extends ImageView {
case MotionEvent.ACTION_UP:
trackTouchEvent(event);
- setSwitch(mPosition >= available / 2);
+ tryToSetSwitch(mPosition >= available / 2);
setPressed(false);
break;
case MotionEvent.ACTION_CANCEL:
- setSwitch(mSwitch);
+ tryToSetSwitch(mSwitch);
setPressed(false);
break;
}
@@ -160,4 +168,15 @@ public class Switcher extends ImageView {
canvas.restoreToCount(saveCount);
}
+ // Consume the touch events for the specified view.
+ public void addTouchView(View v) {
+ v.setOnTouchListener(this);
+ }
+
+ // This implements View.OnTouchListener so we intercept the touch events
+ // and pass them to ourselves.
+ public boolean onTouch(View v, MotionEvent event) {
+ onTouchEvent(event);
+ return true;
+ }
}
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index a60ed5c..1ef50b9 100644
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -258,6 +258,7 @@ public class VideoCamera extends Activity implements View.OnClickListener,
mThumbController.loadData(ImageManager.getLastVideoThumbPath());
mSwitcher = ((Switcher) findViewById(R.id.camera_switch));
mSwitcher.setOnSwitchListener(this);
+ mSwitcher.addTouchView(findViewById(R.id.camera_switch_set));
} else {
View controlBar = inflater.inflate(
R.layout.attach_camera_control, rootView);