顶部的菜单有个美颜的按钮,8.0不好用,也不知道底层驱动的事还是底层驱动的事,然后我就将它改成了闪光灯,附件是patch仅供参考
Change-Id: I66428035daeb26a292c1158183e782fe4d7a3577
---
.../res/layout/camera_controls.xml | 4 +-
.../src/com/android/camera/LocationManager.java | 4 +-
.../src/com/android/camera/PhotoMenu.java | 47 +++++++++++++++++++++-
.../src/com/android/camera/ui/CameraControls.java | 29 ++++++++++++-
4 files changed, 78 insertions(+), 6 deletions(-)
diff --git a/packages/apps/SnapdragonCamera/res/layout/camera_controls.xml b/packages/apps/SnapdragonCamera/res/layout/camera_controls.xml
index 9d6ebf0..17c25c4 100644
--- a/packages/apps/SnapdragonCamera/res/layout/camera_controls.xml
+++ b/packages/apps/SnapdragonCamera/res/layout/camera_controls.xml
@@ -106,7 +106,9 @@
<com.android.camera.ui.RotateImageView
android:id="@+id/ts_makeup_switcher"
style="@style/ToggleButton" />
-
+ <com.android.camera.ui.RotateImageView
+ android:id="@+id/flash_switcher"
+ style="@style/ToggleButton" />
<LinearLayout
android:id="@+id/remaining_photos"
android:layout_width="wrap_content"
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java b/packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java
index ffeafce..85f4757 100644
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/LocationManager.java
@@ -110,7 +110,9 @@ public class LocationManager {
boolean isEnabled = mLocationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)||
mLocationManager.isProviderEnabled(android.location.LocationManager.NETWORK_PROVIDER);
if (!isEnabled) {
- mListener.onShowHint(1);
+ //mListener.onShowHint(1);
+ mListener.onHideHint();
+ Toast.makeText(mContext,mLocatingErrorString,Toast.LENGTH_LONG).show();
} else {
mListener.onShowHint(2);
}
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoMenu.java b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoMenu.java
index f51719d..c45b22a 100755
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoMenu.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/PhotoMenu.java
@@ -101,6 +101,7 @@ public class PhotoMenu extends MenuController
private View mCameraSwitcher;
private View mSettingMenu;
private View mPreviewThumbnail;
+ private View mFlashSwitcher;// add flash button
private PhotoUI mUI;
private int mPopupStatus;
private int mPreviewMenuStatus;
@@ -128,6 +129,7 @@ public class PhotoMenu extends MenuController
mFrontBackSwitcher = ui.getRootView().findViewById(R.id.front_back_switcher);
mHdrSwitcher = ui.getRootView().findViewById(R.id.hdr_switcher);
mTsMakeupSwitcher = ui.getRootView().findViewById(R.id.ts_makeup_switcher);
+ mFlashSwitcher = ui.getRootView().findViewById(R.id.flash_switcher);// add flash button
mSceneModeSwitcher = ui.getRootView().findViewById(R.id.scene_mode_switcher);
mFilterModeSwitcher = ui.getRootView().findViewById(R.id.filter_mode_switcher);
mMakeupListener = makeupListener;
@@ -158,6 +160,9 @@ public class PhotoMenu extends MenuController
}
initSceneModeButton(mSceneModeSwitcher);
+
+ initFlashButton(mFlashSwitcher);// add flash button
+
initFilterModeButton(mFilterModeSwitcher);
if(TsMakeupManager.HAS_TS_MAKEUP) {
initMakeupModeButton(mTsMakeupSwitcher);
@@ -178,7 +183,7 @@ public class PhotoMenu extends MenuController
mOtherKeys1 = new String[] {
CameraSettings.KEY_SELFIE_FLASH,
- CameraSettings.KEY_FLASH_MODE,
+ //CameraSettings.KEY_FLASH_MODE,
CameraSettings.KEY_RECORD_LOCATION,
CameraSettings.KEY_PICTURE_SIZE,
CameraSettings.KEY_JPEG_QUALITY,
@@ -881,7 +886,7 @@ public class PhotoMenu extends MenuController
ImageView iv = (ImageView) mTsMakeupSwitcher;
iv.setImageResource(resid);
- button.setVisibility(View.VISIBLE);
+ //button.setVisibility(View.VISIBLE);
String makeupOn = pref.getValue();
Log.d(TAG, "PhotoMenu.initMakeupModeButton():current init makeupOn is " + makeupOn);
@@ -975,6 +980,44 @@ public class PhotoMenu extends MenuController
});
}
+ // add flash button
+ public void initFlashButton(View button) {
+ button.setVisibility(View.INVISIBLE);
+ final IconListPreference pref = (IconListPreference) mPreferenceGroup
+ .findPreference(CameraSettings.KEY_FLASH_MODE);
+ if (pref == null)
+ return;
+ changeFlashModeControlIcon(pref.getValue());
+ button.setVisibility(View.VISIBLE);
+ button.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String value = pref.getValue();
+ if(!value.equals("")) {
+ if(value.equals("auto")) {
+ value = "off";
+ } else if(value.equals("on")) {
+ value = "auto";
+ } else {
+ value = "on";
+ }
+ }
+ pref.setValue(value);
+ changeFlashModeControlIcon(value);
+ }
+ });
+ }
+ // add flash button
+ private void changeFlashModeControlIcon(String value) {
+ if(!value.equals("")) {
+ final IconListPreference pref = (IconListPreference) mPreferenceGroup
+ .findPreference(CameraSettings.KEY_FLASH_MODE);
+ int index = pref.getCurrentIndex();
+ ImageView iv = (ImageView) mFlashSwitcher;
+ iv.setImageResource(((IconListPreference) pref).getLargeIconIds()[index]);
+ }
+ }
+
public void addModeBack() {
if (mSceneStatus == MODE_SCENE) {
addSceneMode();
diff --git a/packages/apps/SnapdragonCamera/src/com/android/camera/ui/CameraControls.java b/packages/apps/SnapdragonCamera/src/com/android/camera/ui/CameraControls.java
index cded2b3..d470d2f 100755
--- a/packages/apps/SnapdragonCamera/src/com/android/camera/ui/CameraControls.java
+++ b/packages/apps/SnapdragonCamera/src/com/android/camera/ui/CameraControls.java
@@ -60,6 +60,7 @@ public class CameraControls extends RotatableLayout {
private View mTsMakeupSwitcher;
private View mIndicators;
private View mPreview;
+ private View mFlashSwitcher;
private View mSceneModeSwitcher;
private View mFilterModeSwitcher;
private View mReviewDoneButton;
@@ -78,6 +79,7 @@ public class CameraControls extends RotatableLayout {
private static final int SCENE_MODE_INDEX = 2;
private static final int FILTER_MODE_INDEX = 3;
private static final int MENU_INDEX = 4;
+ private static final int FLASH_MODE_INDEX = 1;
private static final int SWITCHER_INDEX = 5;
private static final int SHUTTER_INDEX = 6;
private static final int PREVIEW_INDEX = 7;
@@ -125,6 +127,7 @@ public class CameraControls extends RotatableLayout {
}
mSceneModeSwitcher.setVisibility(View.INVISIBLE);
mFilterModeSwitcher.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
mSwitcher.setVisibility(View.INVISIBLE);
mShutter.setVisibility(View.INVISIBLE);
@@ -154,6 +157,7 @@ public class CameraControls extends RotatableLayout {
mShutter.setVisibility(View.INVISIBLE);
mVideoShutter.setVisibility(View.INVISIBLE);
mMenu.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
mMute.setVisibility(View.INVISIBLE);
mIndicators.setVisibility(View.INVISIBLE);
mPreview.setVisibility(View.INVISIBLE);
@@ -214,6 +218,7 @@ public class CameraControls extends RotatableLayout {
mVideoShutter.setPressed(false);
mSwitcher.setPressed(false);
mMenu.setPressed(false);
+ mFlashSwitcher.setPressed(false);
mMute.setPressed(false);
mFrontBackSwitcher.setPressed(false);
if(TsMakeupManager.HAS_TS_MAKEUP) {
@@ -224,11 +229,11 @@ public class CameraControls extends RotatableLayout {
mSceneModeSwitcher.setPressed(false);
}
-
((ShutterButton) mShutter).enableTouch(enable);
mVideoShutter.setClickable(enable);
((ModuleSwitcher) mSwitcher).enableTouch(enable);
mMenu.setEnabled(enable);
+ mFlashSwitcher.setPressed(enable);
mMute.setEnabled(enable);
mFrontBackSwitcher.setEnabled(enable);
if(TsMakeupManager.HAS_TS_MAKEUP) {
@@ -262,6 +267,8 @@ public class CameraControls extends RotatableLayout {
mViewList.add(mVideoShutter);
if (mMenu.getVisibility() == View.VISIBLE)
mViewList.add(mMenu);
+ if (mFlashSwitcher.getVisibility() == View.VISIBLE)
+ mViewList.add(mFlashSwitcher);
if (mMute.getVisibility() == View.VISIBLE)
mViewList.add(mMute);
if (mIndicators.getVisibility() == View.VISIBLE)
@@ -290,6 +297,7 @@ public class CameraControls extends RotatableLayout {
mHdrSwitcher = findViewById(R.id.hdr_switcher);
}
mMenu = findViewById(R.id.menu);
+ mFlashSwitcher = findViewById(R.id.flash_switcher);
mMute = findViewById(R.id.mute_button);
mIndicators = findViewById(R.id.on_screen_indicators);
mPreview = findViewById(R.id.preview_thumb);
@@ -371,6 +379,7 @@ public class CameraControls extends RotatableLayout {
toIndex(mVideoShutter, w, h, rotation, 3, 6, VIDEO_SHUTTER_INDEX);
toIndex(mMenu, w, h, rotation, 4, 0, MENU_INDEX);
toIndex(mMute, w, h, rotation, 3, 0, MUTE_INDEX);
+ toIndex(mFlashSwitcher, w, h, rotation, 3, 0, FLASH_MODE_INDEX);
toIndex(mIndicators, w, h, rotation, 0, 6, INDICATOR_INDEX);
toIndex(mFrontBackSwitcher, w, h, rotation, 2, 0, FRONT_BACK_INDEX);
toIndex(mPreview, w, h, rotation, 0, 6, PREVIEW_INDEX);
@@ -480,6 +489,7 @@ public class CameraControls extends RotatableLayout {
mSceneModeSwitcher.setX(mLocX[idx1][SCENE_MODE_INDEX] + x);
mFilterModeSwitcher.setX(mLocX[idx1][FILTER_MODE_INDEX] + x);
mMenu.setX(mLocX[idx1][MENU_INDEX] + x);
+ mFlashSwitcher.setX(mLocX[idx1][FLASH_MODE_INDEX] + x);
mMute.setX(mLocX[idx1][MUTE_INDEX] + x);
mSwitcher.setX(mLocX[idx1][SWITCHER_INDEX] - x);
mShutter.setX(mLocX[idx1][SHUTTER_INDEX] - x);
@@ -496,6 +506,7 @@ public class CameraControls extends RotatableLayout {
mSceneModeSwitcher.setY(mLocY[idx1][SCENE_MODE_INDEX] + y);
mFilterModeSwitcher.setY(mLocY[idx1][FILTER_MODE_INDEX] + y);
mMenu.setY(mLocY[idx1][MENU_INDEX] + y);
+ mFlashSwitcher.setY(mLocY[idx1][FLASH_MODE_INDEX] + y);
mMute.setY(mLocY[idx1][MUTE_INDEX] + y);
mSwitcher.setY(mLocY[idx1][SWITCHER_INDEX] - y);
mShutter.setY(mLocY[idx1][SHUTTER_INDEX] - y);
@@ -507,6 +518,7 @@ public class CameraControls extends RotatableLayout {
public void setTitleBarVisibility(int status){
mFrontBackSwitcher.setVisibility(status);
mMenu.setVisibility(status);
+ mFlashSwitcher.setVisibility(status);
mSceneModeSwitcher.setVisibility(status);
mFilterModeSwitcher.setVisibility(status);
if(TsMakeupManager.HAS_TS_MAKEUP) {
@@ -533,6 +545,7 @@ public class CameraControls extends RotatableLayout {
mShutter.animate().cancel();
mVideoShutter.animate().cancel();
mMenu.animate().cancel();
+ mFlashSwitcher.animate().cancel();
mMute.animate().cancel();
mIndicators.animate().cancel();
mPreview.animate().cancel();
@@ -552,6 +565,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mMute.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
@@ -570,6 +584,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mMute.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
@@ -588,6 +603,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mMute.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
@@ -606,6 +622,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mMute.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
@@ -636,6 +653,7 @@ public class CameraControls extends RotatableLayout {
mVideoShutter.animate().cancel();
mMenu.animate().cancel();
mMute.animate().cancel();
+ mFlashSwitcher.animate().cancel();
mIndicators.animate().cancel();
mPreview.animate().cancel();
if (mViewList != null)
@@ -648,6 +666,7 @@ public class CameraControls extends RotatableLayout {
shutterAnim.stop();
mMenu.setVisibility(View.VISIBLE);
+ mFlashSwitcher.setVisibility(View.VISIBLE);
mIndicators.setVisibility(View.VISIBLE);
mPreview.setVisibility(View.VISIBLE);
@@ -666,6 +685,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mMute.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
@@ -686,6 +706,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mMute.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
@@ -706,6 +727,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mMute.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION);
@@ -726,6 +748,7 @@ public class CameraControls extends RotatableLayout {
mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mMute.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
+ mFlashSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION);
mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION);
@@ -1000,7 +1023,7 @@ public class CameraControls extends RotatableLayout {
View[] views = {
mSceneModeSwitcher, mFilterModeSwitcher, mFrontBackSwitcher,
TsMakeupManager.HAS_TS_MAKEUP ? mTsMakeupSwitcher : mHdrSwitcher,
- mMenu, mShutter, mPreview, mSwitcher, mMute, mReviewRetakeButton,
+ mMenu, mFlashSwitcher,mShutter, mPreview, mSwitcher, mMute, mReviewRetakeButton,
mReviewCancelButton, mReviewDoneButton
};
for (View v : views) {
@@ -1022,6 +1045,7 @@ public class CameraControls extends RotatableLayout {
mSceneModeSwitcher.setVisibility(View.INVISIBLE);
mFilterModeSwitcher.setVisibility(View.INVISIBLE);
mMenu.setVisibility(View.INVISIBLE);
+ mFlashSwitcher.setVisibility(View.INVISIBLE);
}
public void showCameraSettings() {
@@ -1034,6 +1058,7 @@ public class CameraControls extends RotatableLayout {
mSceneModeSwitcher.setVisibility(View.VISIBLE);
mFilterModeSwitcher.setVisibility(View.VISIBLE);
mMenu.setVisibility(View.VISIBLE);
+ mFlashSwitcher.setVisibility(View.VISIBLE);
}
public void hideRemainingPhotoCnt() {
--
1.9.1