Merge \\\"DO NOT MERGE Disable app pinning when emergency call button pressed\\\" into mnc-dev am: fc32ec1aef am: aeba34533c

am: 317d0cb169

Change-Id: I9fb47597393f5b1267ec37a05cd9aa34eebebd23
This commit is contained in:
Hall Liu
2016-06-20 21:28:09 +00:00
committed by android-build-merger
3 changed files with 18 additions and 1 deletions

View File

@@ -16,15 +16,18 @@
package com.android.keyguard;
import android.app.ActivityManagerNative;
import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserHandle;
import android.telecom.TelecomManager;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.View;
import android.widget.Button;
@@ -46,6 +49,8 @@ public class EmergencyButton extends Button {
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
private static final String LOG_TAG = "EmergencyButton";
KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
@Override
@@ -121,6 +126,11 @@ public class EmergencyButton extends Button {
// TODO: implement a shorter timeout once new PowerManager API is ready.
// should be the equivalent to the old userActivity(EMERGENCY_CALL_TIMEOUT)
mPowerManager.userActivity(SystemClock.uptimeMillis(), true);
try {
ActivityManagerNative.getDefault().stopLockTaskMode();
} catch (RemoteException e) {
Slog.w(LOG_TAG, "Failed to stop app pinning");
}
if (isInCall()) {
resumeCall();
if (mEmergencyButtonCallback != null) {

View File

@@ -213,6 +213,7 @@ import android.os.UpdateLock;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.text.format.DateUtils;
import android.text.format.Time;
import android.util.AtomicFile;
@@ -9184,6 +9185,10 @@ public final class ActivityManagerService extends ActivityManagerNative
mStackSupervisor.setLockTaskModeLocked(null, ActivityManager.LOCK_TASK_MODE_NONE,
"stopLockTask", true);
}
TelecomManager tm = (TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
if (tm != null) {
tm.showInCallScreen(false);
}
} finally {
Binder.restoreCallingIdentity(ident);
}

View File

@@ -3868,7 +3868,9 @@ public final class ActivityStackSupervisor implements DisplayListener {
}
void showLockTaskToast() {
mLockTaskNotify.showToast(mLockTaskModeState);
if (mLockTaskNotify != null) {
mLockTaskNotify.showToast(mLockTaskModeState);
}
}
void showLockTaskEscapeMessageLocked(TaskRecord task) {