summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAnthony Hugh <ahugh@google.com>2015-09-23 22:53:50 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-09-23 22:53:50 +0000
commit9d51c1e17321029166d22f04bef57140905cbdc4 (patch)
tree17b781b3660f3e290b658ca01f0312160633140b /src
parentc965cb21917b2dffec7ee5bb47ffa080cb482c1a (diff)
parent4b7427563d334dab50eb77028a78e709ea58880b (diff)
downloadandroid_packages_apps_PackageInstaller-9d51c1e17321029166d22f04bef57140905cbdc4.tar.gz
android_packages_apps_PackageInstaller-9d51c1e17321029166d22f04bef57140905cbdc4.tar.bz2
android_packages_apps_PackageInstaller-9d51c1e17321029166d22f04bef57140905cbdc4.zip
Merge "Add new dialog for warning confirmations" into cw-e-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java49
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java16
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/WarningConfirmationActivity.java110
3 files changed, 151 insertions, 24 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
index 1969c20d..6f1273bb 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
@@ -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,23 +215,12 @@ 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) {
- group.revokeRuntimePermissions(false);
- if (!grantedByDefault) {
- mHasConfirmedRevoke = true;
- }
-
- updatePermissionGroupSetting(index);
- }
- })
- .show();
+ 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);
}
@@ -241,6 +229,27 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
updatePermissionGroupSetting(index);
}
+ @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);
+ }
+
+ mPendingPermGroupIndex = -1;
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
private void updatePermissionGroupSetting(int index) {
SettingsAdapter.Setting<AppPermissionGroup> setting = mAdapter.get(index);
AppPermissionGroup group = setting.data;
diff --git a/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java b/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java
index b1ff52bc..d4ed8327 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java
@@ -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);
- mVerticalButton3.setCompoundDrawablesWithIntrinsicBounds(
- getVerticalButton3Icon(), 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;
}
diff --git a/src/com/android/packageinstaller/permission/ui/wear/WarningConfirmationActivity.java b/src/com/android/packageinstaller/permission/ui/wear/WarningConfirmationActivity.java
new file mode 100644
index 00000000..e26dabd6
--- /dev/null
+++ b/src/com/android/packageinstaller/permission/ui/wear/WarningConfirmationActivity.java
@@ -0,0 +1,110 @@
+/*
+* Copyright (C) 2015 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package com.android.packageinstaller.permission.ui.wear;
+
+import android.app.Activity;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.os.Bundle;
+
+import com.android.packageinstaller.R;
+
+public final class WarningConfirmationActivity extends Activity {
+ public final static String EXTRA_WARNING_MESSAGE = "EXTRA_WARNING_MESSAGE";
+
+ private ConfirmationViewHandler mViewHandler;
+ private String mMessage;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ mMessage = getIntent().getStringExtra(EXTRA_WARNING_MESSAGE);
+
+ mViewHandler = new ConfirmationViewHandler(this) {
+ @Override // ConfirmationViewHandler
+ public int getButtonBarMode() {
+ return MODE_VERTICAL_BUTTONS;
+ }
+
+ @Override
+ public void onButton1() {
+ setResult(Activity.RESULT_CANCELED);
+ finish();
+ }
+
+ @Override
+ public void onButton2() {
+ setResult(Activity.RESULT_OK);
+ finish();
+ }
+
+ @Override
+ public void onButton3() {
+ // no-op
+ }
+
+ @Override
+ public CharSequence getVerticalButton1Text() {
+ return getString(R.string.cancel);
+ }
+
+ @Override
+ public CharSequence getVerticalButton2Text() {
+ return getString(R.string.grant_dialog_button_deny);
+ }
+
+ @Override
+ public CharSequence getVerticalButton3Text() {
+ return null;
+ }
+
+ @Override
+ public Drawable getVerticalButton1Icon() {
+ return getDrawable(R.drawable.cancel_button);
+ }
+
+ @Override
+ public Drawable getVerticalButton2Icon() {
+ return getDrawable(R.drawable.confirm_button);
+ }
+
+ @Override
+ public Drawable getVerticalButton3Icon() {
+ return null;
+ }
+
+ @Override
+ public CharSequence getCurrentPageText() {
+ return null;
+ }
+
+ @Override
+ public Icon getPermissionIcon() {
+ return null;
+ }
+
+ @Override
+ public CharSequence getMessage() {
+ return mMessage;
+ }
+ };
+
+ setContentView(mViewHandler.createView());
+ mViewHandler.invalidate();
+ }
+}