DO NOT MERGE Add flag to default dialer change dialog
Add PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS to default dialer
change dialog to prevent clickjacking.
Fixes: 132275252
Test: manual. CTS infeasible since it's UI.
Change-Id: I0d5997915a71e317d5c0d654a499d8cbd21f2299
(cherry picked from commit 047d272541e388cd96638c6d6a7ccb676d34ac3f)
diff --git a/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java b/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
index 107389b..2becabc 100644
--- a/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
+++ b/src/com/android/server/telecom/components/ChangeDefaultDialerDialog.java
@@ -16,6 +16,8 @@
package com.android.server.telecom.components;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ApplicationInfo;
@@ -34,6 +36,8 @@
import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan;
import android.util.Log;
+import android.view.WindowManager;
+import android.view.Window;
import com.android.internal.app.AlertActivity;
import com.android.internal.app.AlertController;
@@ -80,6 +84,21 @@
}
}
+ @Override
+ public void onStart() {
+ super.onStart();
+ getWindow().addPrivateFlags(PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ }
+
+ @Override
+ public void onStop() {
+ final Window window = getWindow();
+ final WindowManager.LayoutParams attrs = window.getAttributes();
+ attrs.privateFlags &= ~PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ window.setAttributes(attrs);
+ super.onStop();
+ }
+
private boolean canChangeToProvidedPackage(String oldPackage, String newPackage) {
final TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
if (!tm.isVoiceCapable()) {