summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamera Software Integration <camswint@localhost>2016-12-11 04:23:00 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-11 04:23:00 -0800
commit1e8e52e5de1725d47101157b2328cbd76e9d9a83 (patch)
treefbf929c1935c06542d4b25ad416a301e1d83f7d8
parent569601c90974cbd8f5f149eb1bf670d91add7d82 (diff)
parent9a351414d4e634f09313ca27c286d919b1b43636 (diff)
downloadandroid_packages_apps_Snap-1e8e52e5de1725d47101157b2328cbd76e9d9a83.tar.gz
android_packages_apps_Snap-1e8e52e5de1725d47101157b2328cbd76e9d9a83.tar.bz2
android_packages_apps_Snap-1e8e52e5de1725d47101157b2328cbd76e9d9a83.zip
Merge "SnapdragonCamera: Keep screen on when recording the video" into camera.lnx.1.0-dev.1.0
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index a6238a810..2b363dbfe 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -72,6 +72,7 @@ import android.view.OrientationEventListener;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.View;
+import android.view.WindowManager;
import android.widget.Toast;
import com.android.camera.exif.ExifInterface;
@@ -168,6 +169,8 @@ public class CaptureModule implements CameraModule, PhotoController,
private static final int NORMAL_SESSION_MAX_FPS = 60;
+ private static final int SCREEN_DELAY = 2 * 60 * 1000;
+
MeteringRectangle[][] mAFRegions = new MeteringRectangle[MAX_NUM_CAM][];
MeteringRectangle[][] mAERegions = new MeteringRectangle[MAX_NUM_CAM][];
CaptureRequest.Key<Byte> BayerMonoLinkEnableKey =
@@ -289,6 +292,7 @@ public class CaptureModule implements CameraModule, PhotoController,
private int mTimeBetweenTimeLapseFrameCaptureMs = 0;
private boolean mCaptureTimeLapse = false;
private CamcorderProfile mProfile;
+ private static final int CLEAR_SCREEN_DELAY = 4;
private static final int UPDATE_RECORD_TIME = 5;
private ContentValues mCurrentVideoValues;
private String mVideoFilename;
@@ -1897,6 +1901,7 @@ public class CaptureModule implements CameraModule, PhotoController,
if (selfieThread != null) {
selfieThread.interrupt();
}
+ resetScreenOn();
mUI.stopSelfieFlash();
}
@@ -2679,6 +2684,7 @@ public class CaptureModule implements CameraModule, PhotoController,
mUI.enableShutter(false);
mUI.showRecordingUI(true, true);
updateRecordingTime();
+ keepScreenOn();
}
@Override
@@ -2710,6 +2716,7 @@ public class CaptureModule implements CameraModule, PhotoController,
mRecordingStartTime = SystemClock.uptimeMillis();
mUI.showRecordingUI(true, false);
updateRecordingTime();
+ keepScreenOn();
}
@Override
@@ -2915,7 +2922,7 @@ public class CaptureModule implements CameraModule, PhotoController,
if (shouldAddToMediaStoreNow) {
saveVideo();
}
-
+ keepScreenOnAwhile();
// release media recorder
releaseMediaRecorder();
releaseAudioFocus();
@@ -3932,6 +3939,11 @@ public class CaptureModule implements CameraModule, PhotoController,
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
+ case CLEAR_SCREEN_DELAY: {
+ mActivity.getWindow().clearFlags(
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ break;
+ }
case UPDATE_RECORD_TIME: {
updateRecordingTime();
break;
@@ -4030,4 +4042,20 @@ public class CaptureModule implements CameraModule, PhotoController,
mToast.setText(tips);
mToast.show();
}
+
+ private void resetScreenOn() {
+ mHandler.removeMessages(CLEAR_SCREEN_DELAY);
+ mActivity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
+
+ private void keepScreenOnAwhile() {
+ mHandler.removeMessages(CLEAR_SCREEN_DELAY);
+ mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ mHandler.sendEmptyMessageDelayed(CLEAR_SCREEN_DELAY, SCREEN_DELAY);
+ }
+
+ private void keepScreenOn() {
+ mHandler.removeMessages(CLEAR_SCREEN_DELAY);
+ mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
}