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

Commit 9d51c1e1 authored by Anthony Hugh's avatar Anthony Hugh Committed by Android (Google) Code Review
Browse files

Merge "Add new dialog for warning confirmations" into cw-e-dev

parents c965cb21 4b742756
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -121,6 +121,10 @@
                  android:authorities="com.google.android.packageinstaller.wear.provider"
                  android:grantUriPermissions="true"
                  android:exported="true" />

        <activity android:name=".permission.ui.wear.WarningConfirmationActivity"
                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS"
                  android:theme="@style/Settings"/>
    </application>

</manifest>
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@

    <style name="GrantPermissions.TitleText">
        <item name="android:fontFamily">sans-serif-condensed-light</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">@color/grant_permissions_title_color</item>
        <item name="android:lineSpacingMultiplier">1.221</item>
    </style>
+29 −20
Original line number Diff line number Diff line
@@ -18,10 +18,7 @@ package com.android.packageinstaller.permission.ui.wear;

import android.annotation.Nullable;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -51,11 +48,13 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {

    private static final String LOG_TAG = "ManagePermsFragment";

    private static final int WARNING_CONFIRMATION_REQUEST = 252;
    private List<AppPermissionGroup> mToggledGroups;
    private AppPermissions mAppPermissions;
    private PermissionsSettingsAdapter mAdapter;

    private boolean mHasConfirmedRevoke;
    private int mPendingPermGroupIndex = -1;

    public static AppPermissionsFragmentWear newInstance(String packageName) {
        return setPackageName(new AppPermissionsFragmentWear(), packageName);
@@ -216,29 +215,39 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
        } else {
            final boolean grantedByDefault = group.hasGrantedByDefaultPermission();
            if (grantedByDefault || (!group.hasRuntimePermission() && !mHasConfirmedRevoke)) {
                new AlertDialog.Builder(getContext())
                        .setMessage(grantedByDefault ? R.string.system_warning
                                : R.string.old_sdk_deny_warning)
                        .setNegativeButton(R.string.cancel, null)
                        .setPositiveButton(R.string.grant_dialog_button_deny,
                                new OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                mPendingPermGroupIndex = index;
                Intent intent = new Intent(getActivity(), WarningConfirmationActivity.class);
                intent.putExtra(WarningConfirmationActivity.EXTRA_WARNING_MESSAGE,
                        getString(grantedByDefault ?
                                R.string.system_warning : R.string.old_sdk_deny_warning));
                startActivityForResult(intent, WARNING_CONFIRMATION_REQUEST);
            } else {
                group.revokeRuntimePermissions(false);
                                if (!grantedByDefault) {
                                    mHasConfirmedRevoke = true;
            }
        }

        updatePermissionGroupSetting(index);
    }
                        })
                        .show();
            } else {

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == WARNING_CONFIRMATION_REQUEST) {
            if (resultCode == Activity.RESULT_OK) {
                SettingsAdapter.Setting<AppPermissionGroup> setting =
                        mAdapter.get(mPendingPermGroupIndex);
                final AppPermissionGroup group = setting.data;
                group.revokeRuntimePermissions(false);
                if (!group.hasGrantedByDefaultPermission()) {
                    mHasConfirmedRevoke = true;
                }

                updatePermissionGroupSetting(mPendingPermGroupIndex);
            }

        updatePermissionGroupSetting(index);
            mPendingPermGroupIndex = -1;
        } else {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }

    private void updatePermissionGroupSetting(int index) {
+12 −4
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ public abstract class ConfirmationViewHandler implements
    }

    public View createView() {
        mRoot = LayoutInflater.from(mContext).inflate(R.layout.grant_permissions, null);
        mRoot = LayoutInflater.from(mContext).inflate(R.layout.confirmation_dialog, null);

        mMessage = (TextView) mRoot.findViewById(R.id.message);
        mCurrentPageText = (TextView) mRoot.findViewById(R.id.current_page_text);
@@ -141,16 +141,24 @@ public abstract class ConfirmationViewHandler implements
            case MODE_VERTICAL_BUTTONS:
                mHorizontalButtonBar.setVisibility(View.GONE);
                mVerticalButtonBar.setVisibility(View.VISIBLE);

                mVerticalButton1.setText(getVerticalButton1Text());
                mVerticalButton2.setText(getVerticalButton2Text());
                mVerticalButton3.setText(getVerticalButton3Text());

                mVerticalButton1.setCompoundDrawablesWithIntrinsicBounds(
                        getVerticalButton1Icon(), null, null, null);
                mVerticalButton2.setCompoundDrawablesWithIntrinsicBounds(
                        getVerticalButton2Icon(), null, null, null);

                CharSequence verticalButton3Text = getVerticalButton3Text();
                if (TextUtils.isEmpty(verticalButton3Text)) {
                    mVerticalButton3.setVisibility(View.GONE);
                } else {
                    mVerticalButton3.setText(getVerticalButton3Text());
                    mVerticalButton3.setCompoundDrawablesWithIntrinsicBounds(
                            getVerticalButton3Icon(), null, null, null);
                }

                break;
        }

Loading