Merge branch 'security-aosp-qt-release' into int/10/fp2
* security-aosp-qt-release:
No longer export CallSubjectDialog
Change-Id: I45b35d05267a09ad93d53306406f305a61e8a684
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b50aa28..e14eab2 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -112,7 +112,7 @@
<application
android:hardwareAccelerated="true"
- android:icon="@mipmap/ic_launcher_phone"
+ android:icon="@mipmap/ic_launcher"
android:label="@string/applicationLabel"
android:name="com.android.dialer.binary.aosp.AospDialerApplication"
android:supportsRtl="true"
diff --git a/java/com/android/dialer/app/res/mipmap-anydpi/ic_launcher.xml b/java/com/android/dialer/app/res/mipmap-anydpi/ic_launcher.xml
new file mode 100644
index 0000000..d8649ba
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-anydpi/ic_launcher.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2018 The LineageOS Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/ic_background"/>
+ <foreground android:drawable="@mipmap/ic_foreground"/>
+</adaptive-icon>
+
diff --git a/java/com/android/dialer/app/res/mipmap-hdpi/ic_background.png b/java/com/android/dialer/app/res/mipmap-hdpi/ic_background.png
new file mode 100644
index 0000000..d0f68ba
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-hdpi/ic_background.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-hdpi/ic_foreground.png b/java/com/android/dialer/app/res/mipmap-hdpi/ic_foreground.png
new file mode 100644
index 0000000..65f15fc
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-hdpi/ic_foreground.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-hdpi/ic_launcher_phone.png b/java/com/android/dialer/app/res/mipmap-hdpi/ic_launcher_phone.png
deleted file mode 100644
index 0d1769a..0000000
--- a/java/com/android/dialer/app/res/mipmap-hdpi/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-mdpi/ic_background.png b/java/com/android/dialer/app/res/mipmap-mdpi/ic_background.png
new file mode 100644
index 0000000..55f05fe
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-mdpi/ic_background.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-mdpi/ic_foreground.png b/java/com/android/dialer/app/res/mipmap-mdpi/ic_foreground.png
new file mode 100644
index 0000000..049a633
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-mdpi/ic_foreground.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-mdpi/ic_launcher_phone.png b/java/com/android/dialer/app/res/mipmap-mdpi/ic_launcher_phone.png
deleted file mode 100644
index 667fc5d..0000000
--- a/java/com/android/dialer/app/res/mipmap-mdpi/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xhdpi/ic_background.png b/java/com/android/dialer/app/res/mipmap-xhdpi/ic_background.png
new file mode 100644
index 0000000..6076ed3
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xhdpi/ic_background.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xhdpi/ic_foreground.png b/java/com/android/dialer/app/res/mipmap-xhdpi/ic_foreground.png
new file mode 100644
index 0000000..4dc42ff
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xhdpi/ic_foreground.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xhdpi/ic_launcher_phone.png b/java/com/android/dialer/app/res/mipmap-xhdpi/ic_launcher_phone.png
deleted file mode 100644
index 2298d0d..0000000
--- a/java/com/android/dialer/app/res/mipmap-xhdpi/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_background.png b/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_background.png
new file mode 100644
index 0000000..83d4bb9
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_background.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_foreground.png b/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_foreground.png
new file mode 100644
index 0000000..0bb6676
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_foreground.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_launcher_phone.png b/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_launcher_phone.png
deleted file mode 100644
index b269b5a..0000000
--- a/java/com/android/dialer/app/res/mipmap-xxhdpi/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_background.png b/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_background.png
new file mode 100644
index 0000000..fba7110
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_background.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_foreground.png b/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_foreground.png
new file mode 100644
index 0000000..1de54c0
--- /dev/null
+++ b/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_foreground.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_launcher_phone.png b/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_launcher_phone.png
deleted file mode 100644
index dbc76f3..0000000
--- a/java/com/android/dialer/app/res/mipmap-xxxhdpi/ic_launcher_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 8d8b087..2405b8e 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -22,10 +22,15 @@
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.app.KeyguardManager;
+import android.app.KeyguardManager.KeyguardDismissCallback;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.net.Uri;
+import android.os.Build.VERSION;
+import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -1052,14 +1057,47 @@
}
@Override
+ @TargetApi(VERSION_CODES.O)
public void smsSelected(@Nullable CharSequence text) {
LogUtil.i("AnswerFragment.smsSelected", null);
textResponsesFragment = null;
if (text == null) {
- createCustomSmsDialogFragment = CreateCustomSmsDialogFragment.newInstance();
- createCustomSmsDialogFragment.show(getChildFragmentManager(), null);
- return;
+ if (VERSION.SDK_INT < VERSION_CODES.O) {
+ LogUtil.i("AnswerFragment.smsSelected", "below O, showing dialog directly");
+ showCustomSmsDialog();
+ return;
+ }
+ if (!getContext().getSystemService(KeyguardManager.class).isKeyguardLocked()) {
+ LogUtil.i("AnswerFragment.smsSelected", "not locked, showing dialog directly");
+ showCustomSmsDialog();
+ return;
+ }
+
+ // Show the custom reply dialog only after device is unlocked, as it may cause impersonation
+ // see b/137134588
+ LogUtil.i("AnswerFragment.smsSelected", "dismissing keyguard");
+ getContext()
+ .getSystemService(KeyguardManager.class)
+ .requestDismissKeyguard(
+ getActivity(),
+ new KeyguardDismissCallback() {
+ @Override
+ public void onDismissCancelled() {
+ LogUtil.i("AnswerFragment.smsSelected", "onDismissCancelled");
+ }
+
+ @Override
+ public void onDismissError() {
+ LogUtil.i("AnswerFragment.smsSelected", "onDismissError");
+ }
+
+ @Override
+ public void onDismissSucceeded() {
+ LogUtil.i("AnswerFragment.smsSelected", "onDismissSucceeded");
+ showCustomSmsDialog();
+ }
+ });return;
}
if (primaryCallState != null && canRejectCallWithSms()) {
@@ -1068,6 +1106,11 @@
}
}
+ private void showCustomSmsDialog() {
+ createCustomSmsDialogFragment = CreateCustomSmsDialogFragment.newInstance();
+ createCustomSmsDialogFragment.showNow(getChildFragmentManager(), null);
+ }
+
@Override
public void smsDismissed() {
LogUtil.i("AnswerFragment.smsDismissed", null);