Merge "IMS-VT: Turn ON screen when there is a upgrade request"
diff --git a/src/com/android/incallui/InCallPresenter.java b/src/com/android/incallui/InCallPresenter.java
index 1d33e34..9b481dd 100644
--- a/src/com/android/incallui/InCallPresenter.java
+++ b/src/com/android/incallui/InCallPresenter.java
@@ -36,6 +36,8 @@
import android.view.Window;
import android.view.WindowManager;
+import android.os.PowerManager;
+
import com.google.common.base.Preconditions;
import com.android.incalluibind.ObjectFactory;
@@ -90,6 +92,8 @@
private boolean mServiceConnected = false;
private boolean mAccountSelectionCancelled = false;
private InCallCameraManager mInCallCameraManager = null;
+ private PowerManager mPowerManager;
+ private PowerManager.WakeLock mWakeLock = null;
private final Phone.Listener mPhoneListener = new Phone.Listener() {
@Override
@@ -211,6 +215,10 @@
mProximitySensor = new ProximitySensor(context, mAudioModeProvider);
addListener(mProximitySensor);
+ mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
+ PowerManager.ACQUIRE_CAUSES_WAKEUP, "InCallPresenter");
+
mCallList = callList;
// This only gets called by the service so this is okay.
@@ -1072,6 +1080,9 @@
}
mProximitySensor = null;
+ mWakeLock = null;
+ mPowerManager = null;
+
mAudioModeProvider = null;
if (mStatusBarNotifier != null) {
@@ -1220,6 +1231,34 @@
}
}
+ /* returns TRUE if screen is turned ON else false */
+ private boolean isScreenInteractive() {
+ return mPowerManager.isInteractive();
+ }
+
+ public 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 v) {
Log.v(this, "enableScreenTimeout: value=" + v);
if (mInCallActivity == null) {
diff --git a/src/com/android/incallui/InCallVideoCallListener.java b/src/com/android/incallui/InCallVideoCallListener.java
index 13ffe51..080acc5 100644
--- a/src/com/android/incallui/InCallVideoCallListener.java
+++ b/src/com/android/incallui/InCallVideoCallListener.java
@@ -49,6 +49,10 @@
@Override
public void onSessionModifyRequestReceived(VideoProfile videoProfile) {
Log.d(this, " onSessionModifyRequestReceived videoProfile=" + videoProfile);
+
+ /* turn ON screen when already turned OFF */
+ InCallPresenter.getInstance().wakeUpScreen();
+
int previousVideoState = CallUtils.toUnPausedVideoState(mCall.getVideoState());
int newVideoState = CallUtils.toUnPausedVideoState(videoProfile.getVideoState());