Merge "Show greyed out icon when Wi-Fi network is restricted to configurate" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-09-19 03:52:34 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 2 deletions

View File

@@ -201,7 +201,8 @@ public class WifiEntryPreference extends Preference implements WifiEntry.WifiEnt
return accent ? android.R.attr.colorAccent : android.R.attr.colorControlNormal;
}
private void updateIcon(boolean showX, int level) {
@VisibleForTesting
void updateIcon(boolean showX, int level) {
if (level == -1) {
setIcon(null);
return;
@@ -209,7 +210,9 @@ public class WifiEntryPreference extends Preference implements WifiEntry.WifiEnt
final Drawable drawable = mIconInjector.getIcon(showX, level);
if (drawable != null) {
drawable.setTint(Utils.getColorAttrDefaultColor(getContext(), getIconColorAttr()));
// Must use Drawable#setTintList() instead of Drawable#setTint() to show the grey
// icon when the preference is disabled.
drawable.setTintList(Utils.getColorAttr(getContext(), getIconColorAttr()));
setIcon(drawable);
} else {
setIcon(null);

View File

@@ -17,6 +17,8 @@ package com.android.settings.wifi;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -252,4 +254,14 @@ public class WifiEntryPreferenceTest {
assertThat(view.findViewById(R.id.icon_button).getVisibility()).isEqualTo(View.GONE);
}
@Test
public void updateIcon_ShouldSetTintListForDrawable() {
WifiEntryPreference pref =
new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);
pref.updateIcon(false /* showX */, 4 /* level */);
verify(mMockDrawable4).setTintList(any());
}
}