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

Commit 172eddd2 authored by Suprabh Shukla's avatar Suprabh Shukla
Browse files

DO NOT MERGE Disable overlays while installer is resumed

The install button can be disabled for other reasons, hence we have to
store the enabled state independent of the resumed/paused state.

Test: gts-tradefed run gts-dev -m PackageInstallerTapjacking

Bug: 35056974
Change-Id: I2effa0f5afacfaed217a030550a778e32912cfbb
parent 3a543888
Loading
Loading
Loading
Loading
+23 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
*/
package com.android.packageinstaller;

import android.app.Activity;
import android.app.ActivityManagerNative;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -52,6 +51,8 @@ import android.widget.TabHost;
import android.widget.TextView;
import com.android.packageinstaller.permission.utils.Utils;

import com.android.packageinstaller.permission.ui.OverlayTouchActivity;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -68,7 +69,8 @@ import java.io.OutputStream;
 * Based on the user response the package is then installed by launching InstallAppConfirm
 * sub activity. All state transitions are handled in this activity
 */
public class PackageInstallerActivity extends Activity implements OnCancelListener, OnClickListener {
public class PackageInstallerActivity extends OverlayTouchActivity implements OnCancelListener,
        OnClickListener {
    private static final String TAG = "PackageInstaller";

    private static final int REQUEST_ENABLE_UNKNOWN_SOURCES = 1;
@@ -214,6 +216,25 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
        }
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (mOk != null) {
            mOk.setEnabled(mOkCanInstall);
        }
    }

    @Override
    protected void onPause() {
        super.onPause();

        if (mOk != null) {
            // Don't allow the install button to be clicked as there might be overlays
            mOk.setEnabled(false);
        }
    }

    private void showDialogInner(int id) {
        // TODO better fix for this? Remove dialog so that it gets created again
        removeDialog(id);