OSDN Git Service

Do not tint app-icon of admin
authorPhilip P. Moltmann <moltmann@google.com>
Thu, 8 Nov 2018 18:23:41 +0000 (10:23 -0800)
committerPhilip P. Moltmann <moltmann@google.com>
Thu, 8 Nov 2018 18:23:41 +0000 (10:23 -0800)
Only if no app-icon is used a tint should be applied to the ic_info
icon.

Change-Id: I92332110f99d14e86dc01700fa00b189c1d7d8ad
Fixes: 118879012
Test: Looked at dialog with default icon and with app-icon

res/layout/admin_support_details_dialog.xml
src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java

index 8c33b1a..922451f 100644 (file)
@@ -27,8 +27,6 @@
         <ImageView android:id="@+id/admin_support_icon"
                 android:layout_width="@dimen/admin_details_dialog_icon_size"
                 android:layout_height="@dimen/admin_details_dialog_icon_size"
-                android:tint="?android:attr/colorAccent"
-                android:src="@*android:drawable/ic_info"
                 android:scaleType="fitCenter"
                 android:contentDescription="@null" />
         <TextView android:id="@+id/admin_support_dialog_title"
index 5ca8fea..5bdf587 100644 (file)
@@ -23,6 +23,8 @@ import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.os.Process;
 import android.os.UserHandle;
@@ -109,16 +111,24 @@ public class ActionDisabledByAdminDialogHelper {
         if (admin == null) {
             return;
         }
+        ImageView supportIconView = root.requireViewById(R.id.admin_support_icon);
         if (!RestrictedLockUtilsInternal.isAdminInCurrentUserOrProfile(mActivity, admin)
                 || !RestrictedLockUtils.isCurrentUserOrProfile(mActivity, userId)) {
             admin = null;
+
+            supportIconView.setImageDrawable(
+                    mActivity.getDrawable(com.android.internal.R.drawable.ic_info));
+
+            TypedArray ta = mActivity.obtainStyledAttributes(new int[]{android.R.attr.colorAccent});
+            supportIconView.setImageTintList(ColorStateList.valueOf(ta.getColor(0, 0)));
+            ta.recycle();
         } else {
             final Drawable badgedIcon = Utils.getBadgedIcon(
                     IconDrawableFactory.newInstance(mActivity),
                     mActivity.getPackageManager(),
                     admin.getPackageName(),
                     userId);
-            ((ImageView) root.findViewById(R.id.admin_support_icon)).setImageDrawable(badgedIcon);
+            supportIconView.setImageDrawable(badgedIcon);
         }
 
         setAdminSupportTitle(root, restriction);