Enlarge wifi signal icon from 24dp to 32dp for header view
Bug: 129413562
Test: manual test
Change-Id: I50a27ac25e5ae42530736bb7c019485a51d707ba
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 36230d1..0938c09 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -977,7 +977,10 @@
return IconCompat.createWithBitmap(bitmap);
}
- private static Bitmap createBitmap(Drawable drawable, int width, int height) {
+ /**
+ * Creates a drawable with specified width and height.
+ */
+ public static Bitmap createBitmap(Drawable drawable, int width, int height) {
final Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 92132e8..eb67870 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -27,7 +27,10 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.VectorDrawable;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.LinkAddress;
@@ -595,8 +598,9 @@
wifiIcon.setTintList(Utils.getColorAccent(mContext));
if (mEntityHeaderController != null) {
- mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(),
- true /* rebind */);
+ mEntityHeaderController
+ .setIcon(rescaleIconForHeader(wifiIcon)).done(mFragment.getActivity(),
+ true /* rebind */);
}
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
@@ -607,6 +611,23 @@
mSignalStrengthPref.setVisible(true);
}
+ private Drawable rescaleIconForHeader(Drawable original) {
+ final int iconSize = mContext.getResources().getDimensionPixelSize(
+ R.dimen.wifi_detail_page_header_image_size);
+ final int actualWidth = original.getMinimumWidth();
+ final int actualHeight = original.getMinimumHeight();
+
+ if ((actualWidth == iconSize && actualHeight == iconSize)
+ || !VectorDrawable.class.isInstance(original)) {
+ return original;
+ }
+
+ final Bitmap bitmap = Utils.createBitmap(original,
+ iconSize /*width*/,
+ iconSize /*height*/);
+ return new BitmapDrawable(null /*resource*/, bitmap);
+ }
+
private void refreshFrequency() {
if (mWifiInfo == null) {
mFrequencyPref.setVisible(false);