diff options
author | Anthony Hugh <ahugh@google.com> | 2015-09-18 17:18:10 -0700 |
---|---|---|
committer | Anthony Hugh <ahugh@google.com> | 2015-09-22 10:56:16 -0700 |
commit | 6161f39f583cf202969125757d78010bdc06457c (patch) | |
tree | 50d06d0df5565e0c7105cfc2e8d4d26971f11511 | |
parent | 38e80af4a571207b1c8cbe550b8e29479ea086a4 (diff) | |
download | android_packages_apps_PackageInstaller-6161f39f583cf202969125757d78010bdc06457c.tar.gz android_packages_apps_PackageInstaller-6161f39f583cf202969125757d78010bdc06457c.tar.bz2 android_packages_apps_PackageInstaller-6161f39f583cf202969125757d78010bdc06457c.zip |
Update Grant Permissions dialog to redlines
Changes:
- Refactor the ViewHandler a bit to be more generic.
This should help with another upcoming Wear dialog.
- Update assets for buttons
- Add deny asset
- Fix margins and other UI number tweaks
BUG: 24133550
Change-Id: I330bdf3217fa5c554f71d9105a0475106b6f3e12
15 files changed, 112 insertions, 79 deletions
diff --git a/res/drawable-watch-280dpi/ic_cc_deny.png b/res/drawable-watch-280dpi/ic_cc_deny.png Binary files differnew file mode 100644 index 00000000..1733669f --- /dev/null +++ b/res/drawable-watch-280dpi/ic_cc_deny.png diff --git a/res/drawable-watch-hdpi/ic_cc_checkmark.png b/res/drawable-watch-hdpi/ic_cc_checkmark.png Binary files differindex 29f9ecd9..a18fe7ab 100644 --- a/res/drawable-watch-hdpi/ic_cc_checkmark.png +++ b/res/drawable-watch-hdpi/ic_cc_checkmark.png diff --git a/res/drawable-watch-hdpi/ic_cc_deny.png b/res/drawable-watch-hdpi/ic_cc_deny.png Binary files differnew file mode 100644 index 00000000..bab22a3d --- /dev/null +++ b/res/drawable-watch-hdpi/ic_cc_deny.png diff --git a/res/drawable-watch-mdpi/ic_cc_checkmark.png b/res/drawable-watch-mdpi/ic_cc_checkmark.png Binary files differindex 0989daa6..02c22b19 100644 --- a/res/drawable-watch-mdpi/ic_cc_checkmark.png +++ b/res/drawable-watch-mdpi/ic_cc_checkmark.png diff --git a/res/drawable-watch-mdpi/ic_cc_deny.png b/res/drawable-watch-mdpi/ic_cc_deny.png Binary files differnew file mode 100644 index 00000000..f3b29f7f --- /dev/null +++ b/res/drawable-watch-mdpi/ic_cc_deny.png diff --git a/res/drawable-watch-xhdpi/ic_cc_checkmark.png b/res/drawable-watch-xhdpi/ic_cc_checkmark.png Binary files differindex f98cc1ec..1302723b 100644 --- a/res/drawable-watch-xhdpi/ic_cc_checkmark.png +++ b/res/drawable-watch-xhdpi/ic_cc_checkmark.png diff --git a/res/drawable-watch-xhdpi/ic_cc_deny.png b/res/drawable-watch-xhdpi/ic_cc_deny.png Binary files differnew file mode 100644 index 00000000..a5f8dc1b --- /dev/null +++ b/res/drawable-watch-xhdpi/ic_cc_deny.png diff --git a/res/drawable-watch/deny_button.xml b/res/drawable-watch/deny_button.xml new file mode 100644 index 00000000..70ea453f --- /dev/null +++ b/res/drawable-watch/deny_button.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:drawable="@drawable/action_negative_bg" /> + <item> + <bitmap android:src="@drawable/ic_cc_deny" android:gravity="center" /> + </item> +</layer-list> diff --git a/res/layout-watch/grant_permissions.xml b/res/layout-watch/grant_permissions.xml index 165de29f..2eedae35 100644 --- a/res/layout-watch/grant_permissions.xml +++ b/res/layout-watch/grant_permissions.xml @@ -38,7 +38,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginBottom="@dimen/grant_permissions_app_breadcrumb_margin_bottom" + android:layout_marginTop="@dimen/grant_permissions_app_breadcrumb_margin_top" android:textAppearance="@style/GrantPermissions.BreadcrumbText" /> <ImageView @@ -53,20 +53,18 @@ android:id="@+id/message" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="10dp" - android:paddingLeft="16dp" - android:paddingRight="16dp" - android:textSize="20sp" + android:layout_marginTop="@dimen/grant_permissions_title_margin_top" + android:paddingLeft="@dimen/grant_permissions_message_side_padding" + android:paddingRight="@dimen/grant_permissions_message_side_padding" android:gravity="center" - android:fontFamily="sans-serif-condensed-light" android:textAppearance="@style/GrantPermissions.TitleText"/> </LinearLayout> </ScrollView> <!-- TODO: Change this to use a ViewStub instead of show/hiding the two layouts --> - <FrameLayout android:layout_width="match_parent" + <FrameLayout android:id="@+id/button_bar_container" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:id="@+id/button_bar_container" android:layout_gravity="bottom" android:background="#FF606060"> <FrameLayout @@ -105,15 +103,15 @@ android:layout_height="wrap_content" android:orientation="vertical"> <Button - android:id="@+id/vertical_allow_button" + android:id="@+id/vertical_button1" style="@style/Widget.WearDiag.Button"/> <Button - android:id="@+id/vertical_deny_button" + android:id="@+id/vertical_button2" style="@style/Widget.WearDiag.Button"/> <Button - android:id="@+id/vertical_deny_do_not_ask_again_button" + android:id="@+id/vertical_button3" style="@style/Widget.WearDiag.Button"/> </LinearLayout> </FrameLayout> diff --git a/res/values-round/dimens.xml b/res/values-round/dimens.xml index c41886c0..d9a522d4 100644 --- a/res/values-round/dimens.xml +++ b/res/values-round/dimens.xml @@ -17,9 +17,9 @@ <resources> <!-- Dimensions for the Grant permissions Confirmation Dialog --> <dimen name="conf_diag_button_container_height">96dp</dimen> - <dimen name="conf_diag_2button_margin_side">36dp</dimen> - <dimen name="conf_diag_2button_margin_top">12dp</dimen> + <dimen name="conf_diag_2button_margin_side">32dp</dimen> + <dimen name="conf_diag_2button_margin_top">10dp</dimen> <dimen name="conf_diag_3button_margin_left">36dp</dimen> - <dimen name="conf_diag_3button_margin_bottom">12dp</dimen> + <dimen name="conf_diag_3button_margin_bottom">24dp</dimen> </resources> diff --git a/res/values-watch/dimens.xml b/res/values-watch/dimens.xml index 698ed5ca..fa657c73 100644 --- a/res/values-watch/dimens.xml +++ b/res/values-watch/dimens.xml @@ -15,15 +15,18 @@ --> <resources> - <dimen name="grant_permissions_app_icon_size">32dp</dimen> - <dimen name="grant_permissions_app_icon_margin_top">8dp</dimen> + <dimen name="grant_permissions_app_icon_size">20dp</dimen> + <dimen name="grant_permissions_app_icon_margin_top">6dp</dimen> - <dimen name="grant_permissions_app_breadcrumb_margin_bottom">3dp</dimen> + <dimen name="grant_permissions_app_breadcrumb_margin_top">6dp</dimen> + <dimen name="grant_permissions_title_margin_top">6dp</dimen> + <dimen name="grant_permissions_message_side_padding">32dp</dimen> <dimen name="action_dialog_z">16dp</dimen> <!-- Dimensions for the Grant permissions Confirmation Dialog --> <dimen name="conf_diag_floating_height">16dp</dimen> + <dimen name="conf_diag_button_container_top_margin">6dp</dimen> <dimen name="conf_diag_button_container_height">72dp</dimen> <dimen name="conf_diag_2button_margin_side">16dp</dimen> <dimen name="conf_diag_2button_margin_top">9dp</dimen> diff --git a/res/values-watch/themes.xml b/res/values-watch/themes.xml index b392c5c1..e20e35c2 100644 --- a/res/values-watch/themes.xml +++ b/res/values-watch/themes.xml @@ -29,13 +29,13 @@ <style name="GrantPermissions.BreadcrumbText"> <item name="android:fontFamily">sans-serif-condensed</item> - <item name="android:textSize">14sp</item> + <item name="android:textSize">16sp</item> <item name="android:textColor">@color/grant_permissions_progress_color</item> </style> <style name="GrantPermissions.TitleText"> - <item name="android:fontFamily">sans-serif-light</item> - <item name="android:textSize">18sp</item> + <item name="android:fontFamily">sans-serif-condensed-light</item> + <item name="android:textSize">20sp</item> <item name="android:textColor">@color/grant_permissions_title_color</item> <item name="android:lineSpacingMultiplier">1.221</item> </style> diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java index a3d3b805..242d0bce 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsWatchViewHandler.java @@ -2,6 +2,7 @@ package com.android.packageinstaller.permission.ui; import android.content.Context; import android.graphics.PixelFormat; +import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.os.Bundle; import android.util.Log; @@ -9,18 +10,19 @@ import android.view.View; import android.view.WindowManager; import com.android.packageinstaller.R; +import com.android.packageinstaller.permission.ui.wear.ConfirmationViewHandler; /** * Watch-specific view handler for the grant permissions activity. */ -final class GrantPermissionsWatchViewHandler extends PermissionConfirmationViewHandler +final class GrantPermissionsWatchViewHandler extends ConfirmationViewHandler implements GrantPermissionsViewHandler { private static final String TAG = "GrantPermsWatchViewH"; private static final String ARG_GROUP_NAME = "ARG_GROUP_NAME"; private final Context mContext; - + private ResultListener mResultListener; private String mGroupName; @@ -101,56 +103,71 @@ final class GrantPermissionsWatchViewHandler extends PermissionConfirmationViewH } } - @Override // PermissionConfirmationViewHandler - public void onAllow() { + @Override // ConfirmationViewHandler + public void onButton1() { onClick(true /* granted */, false /* doNotAskAgain */); } - @Override // PermissionConfirmationViewHandler - public void onDeny() { + @Override // ConfirmationViewHandler + public void onButton2() { onClick(false /* granted */, false /* doNotAskAgain */); } - @Override // PermissionConfirmationViewHandler - public void onDenyDoNotAskAgain() { + @Override // ConfirmationViewHandler + public void onButton3() { onClick(false /* granted */, true /* doNotAskAgain */); } - @Override // PermissionConfirmationViewHandler + @Override // ConfirmationViewHandler public CharSequence getCurrentPageText() { return mCurrentPageText; } - @Override // PermissionConfirmationViewHandler + @Override // ConfirmationViewHandler public Icon getPermissionIcon() { return mIcon; } - @Override // PermissionConfirmationViewHandler + @Override // ConfirmationViewHandler public CharSequence getMessage() { return mMessage; } - @Override // PermissionConfirmationViewHandler + @Override // ConfirmationViewHandler public int getButtonBarMode() { return mShowDoNotAsk ? MODE_VERTICAL_BUTTONS : MODE_HORIZONTAL_BUTTONS; } - @Override // PermissionConfirmationViewHandler - public CharSequence getVerticalAllowText() { + @Override // ConfirmationViewHandler + public CharSequence getVerticalButton1Text() { return mContext.getString(R.string.grant_dialog_button_allow); } - @Override // PermissionConfirmationViewHandler - public CharSequence getVerticalDenyText() { + @Override // ConfirmationViewHandler + public CharSequence getVerticalButton2Text() { return mContext.getString(R.string.grant_dialog_button_deny); } - @Override // PermissionConfirmationViewHandler - public CharSequence getVerticalDenyDoNotAskAgainText() { + @Override // ConfirmationViewHandler + public CharSequence getVerticalButton3Text() { return mContext.getString(R.string.grant_dialog_button_deny_dont_ask_again); } + @Override // ConfirmationViewHandler + public Drawable getVerticalButton1Icon(){ + return mContext.getDrawable(R.drawable.confirm_button); + } + + @Override // ConfirmationViewHandler + public Drawable getVerticalButton2Icon(){ + return mContext.getDrawable(R.drawable.cancel_button); + } + + @Override // ConfirmationViewHandler + public Drawable getVerticalButton3Icon(){ + return mContext.getDrawable(R.drawable.deny_button); + } + private void onClick(boolean granted, boolean doNotAskAgain) { if (mResultListener != null) { mResultListener.onPermissionGrantResult(mGroupName, granted, doNotAskAgain); diff --git a/src/com/android/packageinstaller/permission/ui/PermissionConfirmationViewHandler.java b/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java index 3e32c7f2..d28866ef 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionConfirmationViewHandler.java +++ b/src/com/android/packageinstaller/permission/ui/wear/ConfirmationViewHandler.java @@ -1,8 +1,9 @@ -package com.android.packageinstaller.permission.ui; +package com.android.packageinstaller.permission.ui.wear; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.content.Context; +import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.os.Handler; import android.os.Message; @@ -20,7 +21,7 @@ import android.widget.TextView; import com.android.packageinstaller.R; -public abstract class PermissionConfirmationViewHandler implements +public abstract class ConfirmationViewHandler implements Handler.Callback, View.OnClickListener, ViewTreeObserver.OnScrollChangedListener { @@ -38,9 +39,9 @@ public abstract class PermissionConfirmationViewHandler implements private ViewGroup mContent; private ViewGroup mHorizontalButtonBar; private ViewGroup mVerticalButtonBar; - private Button mVerticalAllow; - private Button mVerticalDeny; - private Button mVerticalDenyDoNotAskAgain; + private Button mVerticalButton1; + private Button mVerticalButton2; + private Button mVerticalButton3; private View mButtonBarContainer; private Context mContext; @@ -53,17 +54,22 @@ public abstract class PermissionConfirmationViewHandler implements private boolean mHiddenBefore; // TODO: Move these into a builder - public abstract void onAllow(); - public abstract void onDeny(); - public abstract void onDenyDoNotAskAgain(); - public abstract CharSequence getVerticalAllowText(); - public abstract CharSequence getVerticalDenyText(); - public abstract CharSequence getVerticalDenyDoNotAskAgainText(); + /** In the 2 button layout, this is allow button */ + public abstract void onButton1(); + /** In the 2 button layout, this is deny button */ + public abstract void onButton2(); + public abstract void onButton3(); + public abstract CharSequence getVerticalButton1Text(); + public abstract CharSequence getVerticalButton2Text(); + public abstract CharSequence getVerticalButton3Text(); + public abstract Drawable getVerticalButton1Icon(); + public abstract Drawable getVerticalButton2Icon(); + public abstract Drawable getVerticalButton3Icon(); public abstract CharSequence getCurrentPageText(); public abstract Icon getPermissionIcon(); public abstract CharSequence getMessage(); - public PermissionConfirmationViewHandler(Context context) { + public ConfirmationViewHandler(Context context) { mContext = context; } @@ -84,13 +90,12 @@ public abstract class PermissionConfirmationViewHandler implements horizontalAllow.setOnClickListener(this); horizontalDeny.setOnClickListener(this); - mVerticalAllow = (Button) mRoot.findViewById(R.id.vertical_allow_button); - mVerticalDeny = (Button) mRoot.findViewById(R.id.vertical_deny_button); - mVerticalDenyDoNotAskAgain = - (Button) mRoot.findViewById(R.id.vertical_deny_do_not_ask_again_button); - mVerticalAllow.setOnClickListener(this); - mVerticalDeny.setOnClickListener(this); - mVerticalDenyDoNotAskAgain.setOnClickListener(this); + mVerticalButton1 = (Button) mRoot.findViewById(R.id.vertical_button1); + mVerticalButton2 = (Button) mRoot.findViewById(R.id.vertical_button2); + mVerticalButton3 = (Button) mRoot.findViewById(R.id.vertical_button3); + mVerticalButton1.setOnClickListener(this); + mVerticalButton2.setOnClickListener(this); + mVerticalButton3.setOnClickListener(this); mInterpolator = AnimationUtils.loadInterpolator(mContext, android.R.interpolator.fast_out_slow_in); @@ -116,7 +121,7 @@ public abstract class PermissionConfirmationViewHandler implements mCurrentPageText.setText(currentPageText); mCurrentPageText.setVisibility(View.VISIBLE); } else { - mCurrentPageText.setVisibility(View.INVISIBLE); + mCurrentPageText.setVisibility(View.GONE); } Icon icon = getPermissionIcon(); @@ -124,7 +129,7 @@ public abstract class PermissionConfirmationViewHandler implements mIcon.setImageIcon(icon); mIcon.setVisibility(View.VISIBLE); } else { - mIcon.setVisibility(View.INVISIBLE); + mIcon.setVisibility(View.GONE); } mMessage.setText(getMessage()); @@ -136,16 +141,16 @@ public abstract class PermissionConfirmationViewHandler implements case MODE_VERTICAL_BUTTONS: mHorizontalButtonBar.setVisibility(View.GONE); mVerticalButtonBar.setVisibility(View.VISIBLE); - mVerticalAllow.setText(getVerticalAllowText()); - mVerticalDeny.setText(getVerticalDenyText()); - mVerticalDenyDoNotAskAgain.setText(getVerticalDenyDoNotAskAgainText()); - - mVerticalAllow.setCompoundDrawablesWithIntrinsicBounds( - mContext.getDrawable(R.drawable.confirm_button), null, null, null); - mVerticalDeny.setCompoundDrawablesWithIntrinsicBounds( - mContext.getDrawable(R.drawable.cancel_button), null, null, null); - mVerticalDenyDoNotAskAgain.setCompoundDrawablesWithIntrinsicBounds( - mContext.getDrawable(R.drawable.cancel_button), null, null, null); + 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); break; } @@ -194,15 +199,15 @@ public abstract class PermissionConfirmationViewHandler implements int id = v.getId(); switch (id) { case R.id.horizontal_allow_button: - case R.id.vertical_allow_button: - onAllow(); + case R.id.vertical_button1: + onButton1(); break; case R.id.horizontal_deny_button: - case R.id.vertical_deny_button: - onDeny(); + case R.id.vertical_button2: + onButton2(); break; - case R.id.vertical_deny_do_not_ask_again_button: - onDenyDoNotAskAgain(); + case R.id.vertical_button3: + onButton3(); break; } } @@ -227,8 +232,11 @@ public abstract class PermissionConfirmationViewHandler implements // get the offset to the top of the button bar int offset = mScrollingContainer.getHeight() + mButtonBarContainer.getHeight() - mContent.getHeight() + Math.max(mScrollingContainer.getScrollY(), 0); - int translationY = offset > 0 ? mButtonBarContainer.getHeight() - offset : - mButtonBarContainer.getHeight(); + // The desired margin space between the button bar and the bottom of the dialog text + int topMargin = mContext.getResources().getDimensionPixelSize( + R.dimen.conf_diag_button_container_top_margin); + int translationY = topMargin + (offset > 0 ? + mButtonBarContainer.getHeight() - offset : mButtonBarContainer.getHeight()); if (!mHiddenBefore || mButtonBarAnimator == null) { // hasn't hidden the bar yet, just hide now to the right height @@ -274,4 +282,4 @@ public abstract class PermissionConfirmationViewHandler implements mButtonBarAnimator.setInterpolator(mInterpolator); mButtonBarAnimator.start(); } -} +}
\ No newline at end of file diff --git a/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java b/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java index 69629f01..0e0adcbb 100644 --- a/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java +++ b/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java @@ -77,7 +77,7 @@ public final class PermissionsSettingsAdapter extends SettingsAdapter<AppPermiss private final TextView mState; private final float mCenteredAlpha = 1.0f; private final float mNonCenteredAlpha = 0.5f; - + public PermissionsSettingsItem (Context context) { super(context); mState = (TextView) findViewById(R.id.state); |