Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 941cb233 authored by Hall Liu's avatar Hall Liu Committed by Nikoli Cartagena
Browse files

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 047d2725)
parent 275e8826
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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.TextUtils;
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 @@ public class ChangeDefaultDialerDialog extends AlertActivity implements
        }
    }

    @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()) {