diff options
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/camera/PhotoUI.java | 7 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 28 | ||||
-rw-r--r-- | src/com/android/camera/VideoUI.java | 21 | ||||
-rw-r--r-- | src/com/android/camera/WideAnglePanoramaUI.java | 4 | ||||
-rw-r--r-- | src/com/android/camera/ui/CameraControls.java | 32 |
5 files changed, 88 insertions, 4 deletions
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java index 6f050d70a..1c09913b9 100644 --- a/src/com/android/camera/PhotoUI.java +++ b/src/com/android/camera/PhotoUI.java @@ -72,6 +72,7 @@ import com.android.camera.ui.ModuleSwitcher; import com.android.camera.ui.PieRenderer; import com.android.camera.ui.PieRenderer.PieListener; import com.android.camera.ui.RenderOverlay; +import com.android.camera.ui.RotateImageView; import com.android.camera.ui.RotateLayout; import com.android.camera.ui.RotateTextToast; import com.android.camera.ui.SelfieFlashView; @@ -289,6 +290,10 @@ public class PhotoUI implements PieListener, } }); mMenuButton = mRootView.findViewById(R.id.menu); + + RotateImageView muteButton = (RotateImageView)mRootView.findViewById(R.id.mute_button); + muteButton.setVisibility(View.GONE); + mCameraControls = (CameraControls) mRootView.findViewById(R.id.camera_controls); ViewStub faceViewStub = (ViewStub) mRootView .findViewById(R.id.face_view_stub); @@ -655,6 +660,8 @@ public class PhotoUI implements PieListener, if (mMenu != null) { mMenu.reloadPreferences(); } + RotateImageView muteButton = (RotateImageView)mRootView.findViewById(R.id.mute_button); + muteButton.setVisibility(View.GONE); } public void showLocationDialog() { diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index f6ff881c5..3b970455f 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -34,6 +34,7 @@ import android.hardware.Camera.CameraInfo; import android.hardware.Camera.Parameters; import android.hardware.Camera.Size; import android.location.Location; +import android.media.AudioManager; import android.media.CamcorderProfile; import android.media.CameraProfile; import android.media.MediaRecorder; @@ -63,6 +64,7 @@ import com.android.camera.CameraManager.CameraPictureCallback; import com.android.camera.CameraManager.CameraProxy; import com.android.camera.app.OrientationManager; import com.android.camera.exif.ExifInterface; +import com.android.camera.ui.RotateImageView; import com.android.camera.ui.RotateTextToast; import com.android.camera.util.AccessibilityUtils; import com.android.camera.util.ApiHelper; @@ -204,6 +206,9 @@ public class VideoModule implements CameraModule, // The preview window is on focus private boolean mPreviewFocused = false; + private boolean mIsMute = false; + private boolean mWasMute = false; + private final MediaSaveService.OnMediaSavedListener mOnVideoSavedListener = new MediaSaveService.OnMediaSavedListener() { @Override @@ -227,6 +232,19 @@ public class VideoModule implements CameraModule, } }; + public void setMute(boolean enable, boolean isValue) + { + AudioManager am = (AudioManager)mActivity.getSystemService(Context.AUDIO_SERVICE); + am.setMicrophoneMute(enable); + if(isValue) { + mIsMute = enable; + } + } + + public boolean isAudioMute() + { + return mIsMute; + } protected class CameraOpenThread extends Thread { @Override @@ -1039,6 +1057,12 @@ public class VideoModule implements CameraModule, mUI.enableShutter(false); mZoomValue = 0; + AudioManager am = (AudioManager)mActivity.getSystemService(Context.AUDIO_SERVICE); + mWasMute = am.isMicrophoneMute(); + if(mWasMute != mIsMute) { + setMute(mIsMute, false); + } + showVideoSnapshotUI(false); if (!mPreviewing) { @@ -1229,6 +1253,10 @@ public class VideoModule implements CameraModule, mUI.collapseCameraControls(); mUI.removeDisplayChangeListener(); + + if(mWasMute != mIsMute) { + setMute(mWasMute, false); + } } @Override diff --git a/src/com/android/camera/VideoUI.java b/src/com/android/camera/VideoUI.java index db27c7391..b5e7cc3df 100644 --- a/src/com/android/camera/VideoUI.java +++ b/src/com/android/camera/VideoUI.java @@ -51,6 +51,7 @@ import com.android.camera.ui.ListSubMenu; import com.android.camera.ui.ModuleSwitcher; import com.android.camera.ui.PieRenderer; import com.android.camera.ui.RenderOverlay; +import com.android.camera.ui.RotateImageView; import com.android.camera.ui.RotateLayout; import com.android.camera.ui.RotateTextToast; import com.android.camera.ui.ZoomRenderer; @@ -115,6 +116,7 @@ public class VideoUI implements PieRenderer.PieListener, private int mScreenRatio = CameraUtil.RATIO_UNKNOWN; private int mTopMargin = 0; private int mBottomMargin = 0; + private RotateImageView mMuteButton; private OnLayoutChangeListener mLayoutListener = new OnLayoutChangeListener() { @Override @@ -231,6 +233,25 @@ public class VideoUI implements PieRenderer.PieListener, } }); + mMuteButton = (RotateImageView)mRootView.findViewById(R.id.mute_button); + mMuteButton.setVisibility(View.VISIBLE); + if(!((VideoModule)mController).isAudioMute()) { + mMuteButton.setImageResource(R.drawable.ic_unmuted_button); + } else { + mMuteButton.setImageResource(R.drawable.ic_muted_button); + } + mMuteButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + boolean isEnabled = !((VideoModule)mController).isAudioMute(); + ((VideoModule)mController).setMute(isEnabled, true); + if(!isEnabled) + mMuteButton.setImageResource(R.drawable.ic_unmuted_button); + else + mMuteButton.setImageResource(R.drawable.ic_muted_button); + } + }); + initializeMiscControls(); initializeControlByIntent(); initializeOverlay(); diff --git a/src/com/android/camera/WideAnglePanoramaUI.java b/src/com/android/camera/WideAnglePanoramaUI.java index f79115449..5dab49f7c 100644 --- a/src/com/android/camera/WideAnglePanoramaUI.java +++ b/src/com/android/camera/WideAnglePanoramaUI.java @@ -50,6 +50,7 @@ import android.widget.TextView; import com.android.camera.ui.CameraControls; import com.android.camera.ui.CameraRootView; import com.android.camera.ui.ModuleSwitcher; +import com.android.camera.ui.RotateImageView; import com.android.camera.ui.RotateLayout; import com.android.camera.ui.RotateTextToast; import com.android.camera.util.CameraUtil; @@ -137,6 +138,9 @@ public class WideAnglePanoramaUI implements mSwitcher.setOrientation(mOrientation, false); } }); + + RotateImageView muteButton = (RotateImageView)mRootView.findViewById(R.id.mute_button); + muteButton.setVisibility(View.GONE); } public void onStartCapture() { diff --git a/src/com/android/camera/ui/CameraControls.java b/src/com/android/camera/ui/CameraControls.java index b1278536c..a6e3332ae 100644 --- a/src/com/android/camera/ui/CameraControls.java +++ b/src/com/android/camera/ui/CameraControls.java @@ -53,6 +53,7 @@ public class CameraControls extends RotatableLayout { private View mShutter; private View mSwitcher; private View mMenu; + private View mMute; private View mFrontBackSwitcher; private View mHdrSwitcher; private View mTsMakeupSwitcher; @@ -77,10 +78,11 @@ public class CameraControls extends RotatableLayout { private static final int SHUTTER_INDEX = 6; private static final int PREVIEW_INDEX = 7; private static final int INDICATOR_INDEX = 8; + private static final int MUTE_INDEX = 9; private static final int ANIME_DURATION = 300; - private float[][] mLocX = new float[4][9]; - private float[][] mLocY = new float[4][9]; - private boolean[] mTempEnabled = new boolean[9]; + private float[][] mLocX = new float[4][10]; + private float[][] mLocY = new float[4][10]; + private boolean[] mTempEnabled = new boolean[10]; private boolean mLocSet = false; private LinearLayout mRemainingPhotos; @@ -122,6 +124,7 @@ public class CameraControls extends RotatableLayout { mSwitcher.setVisibility(View.INVISIBLE); mShutter.setVisibility(View.INVISIBLE); mMenu.setVisibility(View.INVISIBLE); + mMute.setVisibility(View.INVISIBLE); mIndicators.setVisibility(View.INVISIBLE); mPreview.setVisibility(View.INVISIBLE); isAnimating = false; @@ -144,6 +147,7 @@ public class CameraControls extends RotatableLayout { mSwitcher.setVisibility(View.INVISIBLE); mShutter.setVisibility(View.INVISIBLE); mMenu.setVisibility(View.INVISIBLE); + mMute.setVisibility(View.INVISIBLE); mIndicators.setVisibility(View.INVISIBLE); mPreview.setVisibility(View.INVISIBLE); isAnimating = false; @@ -202,6 +206,7 @@ public class CameraControls extends RotatableLayout { ((ShutterButton) mShutter).setPressed(false); mSwitcher.setPressed(false); mMenu.setPressed(false); + mMute.setPressed(false); mFrontBackSwitcher.setPressed(false); if(TsMakeupManager.HAS_TS_MAKEUP) { mTsMakeupSwitcher.setPressed(false); @@ -216,6 +221,7 @@ public class CameraControls extends RotatableLayout { ((ShutterButton) mShutter).enableTouch(enable); ((ModuleSwitcher) mSwitcher).enableTouch(enable); mMenu.setEnabled(enable); + mMute.setEnabled(enable); mFrontBackSwitcher.setEnabled(enable); if(TsMakeupManager.HAS_TS_MAKEUP) { mTsMakeupSwitcher.setEnabled(enable); @@ -246,8 +252,12 @@ public class CameraControls extends RotatableLayout { mViewList.add(mShutter); if (mMenu.getVisibility() == View.VISIBLE) mViewList.add(mMenu); + if (mMute.getVisibility() == View.VISIBLE) + mViewList.add(mMute); if (mIndicators.getVisibility() == View.VISIBLE) mViewList.add(mIndicators); + if (mMute.getVisibility() == View.VISIBLE) + mViewList.add(mMute); } @Override @@ -263,6 +273,7 @@ public class CameraControls extends RotatableLayout { mHdrSwitcher = findViewById(R.id.hdr_switcher); } mMenu = findViewById(R.id.menu); + mMute = findViewById(R.id.mute_button); mIndicators = findViewById(R.id.on_screen_indicators); mPreview = findViewById(R.id.preview_thumb); mSceneModeSwitcher = findViewById(R.id.scene_mode_switcher); @@ -336,6 +347,7 @@ public class CameraControls extends RotatableLayout { int rotation = getUnifiedRotation(); toIndex(mSwitcher, w, h, rotation, 4, 6, SWITCHER_INDEX); toIndex(mMenu, w, h, rotation, 4, 0, MENU_INDEX); + toIndex(mMute, w, h, rotation, 3, 0, MUTE_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); @@ -445,6 +457,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); + mMute.setX(mLocX[idx1][MUTE_INDEX] + x); mSwitcher.setX(mLocX[idx1][SWITCHER_INDEX] - x); mShutter.setX(mLocX[idx1][SHUTTER_INDEX] - x); mIndicators.setX(mLocX[idx1][INDICATOR_INDEX] - x); @@ -459,6 +472,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); + mMute.setY(mLocY[idx1][MUTE_INDEX] + y); mSwitcher.setY(mLocY[idx1][SWITCHER_INDEX] - y); mShutter.setY(mLocY[idx1][SHUTTER_INDEX] - y); mIndicators.setY(mLocY[idx1][INDICATOR_INDEX] - y); @@ -492,6 +506,7 @@ public class CameraControls extends RotatableLayout { mSwitcher.animate().cancel(); mShutter.animate().cancel(); mMenu.animate().cancel(); + mMute.animate().cancel(); mIndicators.animate().cancel(); mPreview.animate().cancel(); mFrontBackSwitcher.animate().setListener(outlistener); @@ -509,6 +524,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); + mMute.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION); @@ -525,6 +541,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); + mMute.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION); @@ -541,6 +558,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION); + mMute.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); @@ -557,6 +575,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION); + mMute.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); @@ -583,6 +602,7 @@ public class CameraControls extends RotatableLayout { mSwitcher.animate().cancel(); mShutter.animate().cancel(); mMenu.animate().cancel(); + mMute.animate().cancel(); mIndicators.animate().cancel(); mPreview.animate().cancel(); if (mViewList != null) @@ -612,6 +632,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mMenu.animate().translationYBy(mSize).setDuration(ANIME_DURATION); + mMute.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mShutter.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); @@ -630,6 +651,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mMenu.animate().translationXBy(mSize).setDuration(ANIME_DURATION); + mMute.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mShutter.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); @@ -648,6 +670,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mMenu.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); + mMute.animate().translationYBy(-mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationYBy(mSize).setDuration(ANIME_DURATION); mShutter.animate().translationYBy(mSize).setDuration(ANIME_DURATION); @@ -666,6 +689,7 @@ public class CameraControls extends RotatableLayout { mSceneModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mFilterModeSwitcher.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mMenu.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); + mMute.animate().translationXBy(-mSize).setDuration(ANIME_DURATION); mSwitcher.animate().translationXBy(mSize).setDuration(ANIME_DURATION); mShutter.animate().translationXBy(mSize).setDuration(ANIME_DURATION); @@ -932,7 +956,7 @@ public class CameraControls extends RotatableLayout { View[] views = { mSceneModeSwitcher, mFilterModeSwitcher, mFrontBackSwitcher, TsMakeupManager.HAS_TS_MAKEUP ? mTsMakeupSwitcher : mHdrSwitcher, - mMenu, mShutter, mPreview, mSwitcher + mMenu, mShutter, mPreview, mSwitcher, mMute }; for (View v : views) { ((RotateImageView) v).setOrientation(orientation, animation); |