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

Commit 970067a4 authored by Sumedh Sen's avatar Sumedh Sen Committed by Android (Google) Code Review
Browse files

Merge "Prevent tapjacking in Pia V2" into main

parents 85f17a23 6d2a0b2e
Loading
Loading
Loading
Loading
+25 −1
Original line number Original line Diff line number Diff line
@@ -34,7 +34,10 @@ import com.android.packageinstaller.v2.ui.InstallActionListener;
public class AnonymousSourceFragment extends DialogFragment {
public class AnonymousSourceFragment extends DialogFragment {


    public static String TAG = AnonymousSourceFragment.class.getSimpleName();
    public static String TAG = AnonymousSourceFragment.class.getSimpleName();
    @NonNull
    private InstallActionListener mInstallActionListener;
    private InstallActionListener mInstallActionListener;
    @NonNull
    private AlertDialog mDialog;


    @Override
    @Override
    public void onAttach(@NonNull Context context) {
    public void onAttach(@NonNull Context context) {
@@ -45,7 +48,7 @@ public class AnonymousSourceFragment extends DialogFragment {
    @NonNull
    @NonNull
    @Override
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity())
       mDialog = new AlertDialog.Builder(requireContext())
            .setMessage(R.string.anonymous_source_warning)
            .setMessage(R.string.anonymous_source_warning)
            .setPositiveButton(R.string.anonymous_source_continue,
            .setPositiveButton(R.string.anonymous_source_continue,
                ((dialog, which) -> mInstallActionListener.onPositiveResponse(
                ((dialog, which) -> mInstallActionListener.onPositiveResponse(
@@ -53,6 +56,7 @@ public class AnonymousSourceFragment extends DialogFragment {
            .setNegativeButton(R.string.cancel,
            .setNegativeButton(R.string.cancel,
                ((dialog, which) -> mInstallActionListener.onNegativeResponse(
                ((dialog, which) -> mInstallActionListener.onNegativeResponse(
                    InstallStage.STAGE_USER_ACTION_REQUIRED))).create();
                    InstallStage.STAGE_USER_ACTION_REQUIRED))).create();
       return mDialog;
    }
    }


    @Override
    @Override
@@ -60,4 +64,24 @@ public class AnonymousSourceFragment extends DialogFragment {
        super.onCancel(dialog);
        super.onCancel(dialog);
        mInstallActionListener.onNegativeResponse(InstallStage.STAGE_USER_ACTION_REQUIRED);
        mInstallActionListener.onNegativeResponse(InstallStage.STAGE_USER_ACTION_REQUIRED);
    }
    }

    @Override
    public void onStart() {
        super.onStart();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setFilterTouchesWhenObscured(true);
    }

    @Override
    public void onPause() {
        super.onPause();
        // This prevents tapjacking since an overlay activity started in front of Pia will
        // cause Pia to be paused.
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
    }

    @Override
    public void onResume() {
        super.onResume();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true);
    }
}
}
+26 −1
Original line number Original line Diff line number Diff line
@@ -35,8 +35,12 @@ import com.android.packageinstaller.v2.ui.InstallActionListener;
public class ExternalSourcesBlockedFragment extends DialogFragment {
public class ExternalSourcesBlockedFragment extends DialogFragment {


    private final String TAG = ExternalSourcesBlockedFragment.class.getSimpleName();
    private final String TAG = ExternalSourcesBlockedFragment.class.getSimpleName();
    @NonNull
    private final InstallUserActionRequired mDialogData;
    private final InstallUserActionRequired mDialogData;
    @NonNull
    private InstallActionListener mInstallActionListener;
    private InstallActionListener mInstallActionListener;
    @NonNull
    private AlertDialog mDialog;


    public ExternalSourcesBlockedFragment(InstallUserActionRequired dialogData) {
    public ExternalSourcesBlockedFragment(InstallUserActionRequired dialogData) {
        mDialogData = dialogData;
        mDialogData = dialogData;
@@ -51,7 +55,7 @@ public class ExternalSourcesBlockedFragment extends DialogFragment {
    @NonNull
    @NonNull
    @Override
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        return new AlertDialog.Builder(requireContext())
        mDialog = new AlertDialog.Builder(requireContext())
            .setTitle(mDialogData.getAppLabel())
            .setTitle(mDialogData.getAppLabel())
            .setIcon(mDialogData.getAppIcon())
            .setIcon(mDialogData.getAppIcon())
            .setMessage(R.string.untrusted_external_source_warning)
            .setMessage(R.string.untrusted_external_source_warning)
@@ -62,6 +66,7 @@ public class ExternalSourcesBlockedFragment extends DialogFragment {
                (dialog, which) -> mInstallActionListener.onNegativeResponse(
                (dialog, which) -> mInstallActionListener.onNegativeResponse(
                    mDialogData.getStageCode()))
                    mDialogData.getStageCode()))
            .create();
            .create();
        return mDialog;
    }
    }


    @Override
    @Override
@@ -69,4 +74,24 @@ public class ExternalSourcesBlockedFragment extends DialogFragment {
        super.onCancel(dialog);
        super.onCancel(dialog);
        mInstallActionListener.onNegativeResponse(mDialogData.getStageCode());
        mInstallActionListener.onNegativeResponse(mDialogData.getStageCode());
    }
    }

    @Override
    public void onStart() {
        super.onStart();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setFilterTouchesWhenObscured(true);
    }

    @Override
    public void onPause() {
        super.onPause();
        // This prevents tapjacking since an overlay activity started in front of Pia will
        // cause Pia to be paused.
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
    }

    @Override
    public void onResume() {
        super.onResume();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true);
    }
}
}
+24 −2
Original line number Original line Diff line number Diff line
@@ -42,6 +42,8 @@ public class InstallConfirmationFragment extends DialogFragment {
    private final InstallUserActionRequired mDialogData;
    private final InstallUserActionRequired mDialogData;
    @NonNull
    @NonNull
    private InstallActionListener mInstallActionListener;
    private InstallActionListener mInstallActionListener;
    @NonNull
    private AlertDialog mDialog;


    public InstallConfirmationFragment(@NonNull InstallUserActionRequired dialogData) {
    public InstallConfirmationFragment(@NonNull InstallUserActionRequired dialogData) {
        mDialogData = dialogData;
        mDialogData = dialogData;
@@ -58,7 +60,7 @@ public class InstallConfirmationFragment extends DialogFragment {
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        View dialogView = getLayoutInflater().inflate(R.layout.install_content_view, null);
        View dialogView = getLayoutInflater().inflate(R.layout.install_content_view, null);


        AlertDialog dialog = new AlertDialog.Builder(requireContext())
        mDialog = new AlertDialog.Builder(requireContext())
            .setIcon(mDialogData.getAppIcon())
            .setIcon(mDialogData.getAppIcon())
            .setTitle(mDialogData.getAppLabel())
            .setTitle(mDialogData.getAppLabel())
            .setView(dialogView)
            .setView(dialogView)
@@ -84,7 +86,7 @@ public class InstallConfirmationFragment extends DialogFragment {
        }
        }
        viewToEnable.setVisibility(View.VISIBLE);
        viewToEnable.setVisibility(View.VISIBLE);


        return dialog;
        return mDialog;
    }
    }


    @Override
    @Override
@@ -92,4 +94,24 @@ public class InstallConfirmationFragment extends DialogFragment {
        super.onCancel(dialog);
        super.onCancel(dialog);
        mInstallActionListener.onNegativeResponse(mDialogData.getStageCode());
        mInstallActionListener.onNegativeResponse(mDialogData.getStageCode());
    }
    }

    @Override
    public void onStart() {
        super.onStart();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setFilterTouchesWhenObscured(true);
    }

    @Override
    public void onPause() {
        super.onPause();
        // This prevents tapjacking since an overlay activity started in front of Pia will
        // cause Pia to be paused.
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(false);
    }

    @Override
    public void onResume() {
        super.onResume();
        mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true);
    }
}
}