diff options
author | Igor Murashkin <iam@google.com> | 2014-08-07 17:09:56 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2014-08-07 17:09:56 -0700 |
commit | c6663ceecda29e07a602674544fc94fe1c376dca (patch) | |
tree | 61c828364241cfa248158b50fe2ceb332a1be02c | |
parent | 5345b93fd44823f695794ab4a7cceb23a82d8f17 (diff) | |
download | pdk-c6663ceecda29e07a602674544fc94fe1c376dca.tar.gz |
TestingCamera: Add a button to lock/unlock the camera
Bug: 16695955
Change-Id: Id6b754dcf00e92f0a0cad488f24ec3ebfe92e837
-rw-r--r-- | apps/TestingCamera/res/layout/main.xml | 9 | ||||
-rw-r--r-- | apps/TestingCamera/res/values/strings.xml | 2 | ||||
-rw-r--r-- | apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java | 33 |
3 files changed, 44 insertions, 0 deletions
diff --git a/apps/TestingCamera/res/layout/main.xml b/apps/TestingCamera/res/layout/main.xml index cf9843f..a52c0ef 100644 --- a/apps/TestingCamera/res/layout/main.xml +++ b/apps/TestingCamera/res/layout/main.xml @@ -353,6 +353,15 @@ android:textOff="@string/record_hint_off_label" android:textOn="@string/record_hint_on_label" /> + <ToggleButton + android:id="@+id/lock_camera" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textColorLink="@android:color/holo_blue_dark" + android:textOff="@string/lock_camera_off_label" + android:textOn="@string/lock_camera_on_label" /> + <View android:id="@+id/horizontal_rule_5" android:layout_width="fill_parent" diff --git a/apps/TestingCamera/res/values/strings.xml b/apps/TestingCamera/res/values/strings.xml index be5b79c..956b622 100644 --- a/apps/TestingCamera/res/values/strings.xml +++ b/apps/TestingCamera/res/values/strings.xml @@ -33,6 +33,8 @@ <string name="record_stabilization_off_label">Video Stabilization off</string> <string name="record_hint_on_label">Recording Hint on</string> <string name="record_hint_off_label">Recording Hint off</string> + <string name="lock_camera_on_label">Lock on</string> + <string name="lock_camera_off_label">Lock off</string> <string name="camcorder_profile_prompt">Camcorder profile</string> <string name="video_record_size_prompt">Video Record size</string> <string name="video_frame_rate_prompt">Video Frame Rate</string> diff --git a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java index 9fcd441..f28ec34 100644 --- a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java +++ b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java @@ -103,6 +103,7 @@ public class TestingCamera extends Activity private CheckBox mRecordHandoffCheckBox; private ToggleButton mRecordStabilizationToggle; private ToggleButton mRecordHintToggle; + private ToggleButton mLockCameraToggle; private Spinner mCallbackFormatSpinner; private ToggleButton mCallbackToggle; private TextView mColorEffectSpinnerLabel; @@ -266,6 +267,11 @@ public class TestingCamera extends Activity mRecordHintToggle.setOnClickListener(mRecordHintToggleListener); mOpenOnlyControls.add(mRecordHintToggle); + mLockCameraToggle = (ToggleButton) findViewById(R.id.lock_camera); + mLockCameraToggle.setOnClickListener(mLockCameraToggleListener); + mLockCameraToggle.setChecked(true); // ON by default + mOpenOnlyControls.add(mLockCameraToggle); + mCallbackFormatSpinner = (Spinner) findViewById(R.id.callback_format_spinner); mCallbackFormatSpinner.setOnItemSelectedListener(mCallbackFormatListener); mOpenOnlyControls.add(mCallbackFormatSpinner); @@ -712,6 +718,11 @@ public class TestingCamera extends Activity new View.OnClickListener() { @Override public void onClick(View v) { + if (!mLockCameraToggle.isChecked()) { + logE("Re-lock camera before recording"); + return; + } + mPreviewToggle.setEnabled(false); if (mState == CAMERA_PREVIEW) { startRecording(); @@ -746,6 +757,28 @@ public class TestingCamera extends Activity } }; + private View.OnClickListener mLockCameraToggleListener = + new View.OnClickListener() { + @Override + public void onClick(View v) { + + if (mState == CAMERA_RECORD) { + logE("Stop recording before toggling lock"); + return; + } + + boolean on = ((ToggleButton) v).isChecked(); + + if (on) { + mCamera.lock(); + log("Locked camera"); + } else { + mCamera.unlock(); + log("Unlocked camera"); + } + } + }; + private Camera.ShutterCallback mShutterCb = new Camera.ShutterCallback() { @Override public void onShutter() { |