IMS-VT: Turn ON screen when there is a upgrade request
Turn ON screen when there is a upgrade request if the screen
is already turned OFF
Change-Id: I3be874839c39a02ee65e2730d88a0d11319d1adb
CRs-Fixed: 806097
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 466c192..daabb50 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -29,6 +29,7 @@
import android.graphics.Point;
import android.os.Bundle;
import android.os.Handler;
+import android.os.PowerManager;
import android.provider.CallLog;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccount;
@@ -122,6 +123,8 @@
private InCallCameraManager mInCallCameraManager = null;
private AnswerPresenter mAnswerPresenter = new AnswerPresenter();
private FilteredNumberAsyncQueryHandler mFilteredQueryHandler;
+ private PowerManager mPowerManager;
+ private PowerManager.WakeLock mWakeLock = null;
/**
* Whether or not we are currently bound and waiting for Telecom to send us a new call.
@@ -329,6 +332,9 @@
addIncomingCallListener(mAnswerPresenter);
addInCallUiListener(mAnswerPresenter);
+ mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
+ PowerManager.ACQUIRE_CAUSES_WAKEUP, "InCallPresenter");
mCallList = callList;
@@ -724,6 +730,7 @@
return;
}
+ wakeUpScreen();
call.setRequestedVideoState(videoState);
}
@@ -1613,6 +1620,9 @@
}
mProximitySensor = null;
+ mWakeLock = null;
+ mPowerManager = null;
+
mAudioModeProvider = null;
if (mStatusBarNotifier != null) {
@@ -1803,6 +1813,34 @@
orientation == InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION);
}
+ /* returns TRUE if screen is turned ON else false */
+ private boolean isScreenInteractive() {
+ return mPowerManager.isInteractive();
+ }
+
+ private void wakeUpScreen() {
+ if (!isScreenInteractive()) {
+ acquireWakeLock();
+ releaseWakeLock();
+ }
+ }
+
+ private void acquireWakeLock() {
+ Log.v(this, "acquireWakeLock");
+
+ if (mWakeLock != null) {
+ mWakeLock.acquire();
+ }
+ }
+
+ private void releaseWakeLock() {
+ Log.v(this, "releaseWakeLock");
+
+ if (mWakeLock != null && mWakeLock.isHeld()) {
+ mWakeLock.release();
+ }
+ }
+
public void enableScreenTimeout(boolean enable) {
Log.v(this, "enableScreenTimeout: value=" + enable);
if (mInCallActivity == null) {