Enlarge wifi signal icon from 24dp to 32dp for header view

Bug: 129413562
Test: manual test
Change-Id: I50a27ac25e5ae42530736bb7c019485a51d707ba
This commit is contained in:
clownshen
2019-03-29 20:22:02 +08:00
committed by Clown SHEN
parent 968b1aaea2
commit 24827d35b1
3 changed files with 28 additions and 3 deletions

View File

@@ -176,6 +176,7 @@
<!-- WiFi Preferences -->
<dimen name="wifi_divider_height">1px</dimen>
<dimen name="wifi_ap_band_checkbox_padding">16dp</dimen>
<dimen name="wifi_detail_page_header_image_size">32dp</dimen>
<!-- Color picker -->
<dimen name="color_swatch_size">16dp</dimen>

View File

@@ -977,7 +977,10 @@ public final class Utils extends com.android.settingslib.Utils {
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());

View File

@@ -27,7 +27,10 @@ import android.content.BroadcastReceiver;
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 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
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 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
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);