Prevent wifi icon from disappearing

am: 823cd0e35a

Change-Id: I55a99176048dd30b46ae4ea2900b92e929c3a374
This commit is contained in:
Salvador Martinez
2016-08-23 14:43:31 +00:00
committed by android-build-merger

View File

@@ -29,7 +29,6 @@ import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.SparseArray;
import android.widget.TextView;
import com.android.settingslib.R;
public class AccessPointPreference extends Preference {
@@ -44,13 +43,14 @@ public class AccessPointPreference extends Preference {
private final StateListDrawable mWifiSld;
private final int mBadgePadding;
private final UserBadgeCache mBadgeCache;
private TextView mTitleView;
private boolean mForSavedNetworks = false;
private AccessPoint mAccessPoint;
private Drawable mBadge;
private int mLevel;
private CharSequence mContentDescription;
private int mDefaultIconResId;
static final int[] WIFI_CONNECTION_STRENGTH = {
R.string.accessibility_wifi_one_bar,
@@ -85,6 +85,24 @@ public class AccessPointPreference extends Preference {
refresh();
}
public AccessPointPreference(AccessPoint accessPoint, Context context, UserBadgeCache cache,
int iconResId, boolean forSavedNetworks) {
super(context);
mBadgeCache = cache;
mAccessPoint = accessPoint;
mForSavedNetworks = forSavedNetworks;
mAccessPoint.setTag(this);
mLevel = -1;
mDefaultIconResId = iconResId;
mWifiSld = (StateListDrawable) context.getTheme()
.obtainStyledAttributes(wifi_signal_attributes).getDrawable(0);
// Distance from the end of the title at which this AP's user badge should sit.
mBadgePadding = context.getResources()
.getDimensionPixelSize(R.dimen.wifi_preference_badge_padding);
}
public AccessPoint getAccessPoint() {
return mAccessPoint;
}
@@ -112,7 +130,7 @@ public class AccessPointPreference extends Preference {
protected void updateIcon(int level, Context context) {
if (level == -1) {
setIcon(null);
safeSetDefaultIcon();
} else {
if (getIcon() == null) {
// To avoid a drawing race condition, we first set the state (SECURE/NONE) and then
@@ -124,16 +142,24 @@ public class AccessPointPreference extends Preference {
? STATE_SECURED
: STATE_NONE);
Drawable drawable = mWifiSld.getCurrent();
if (!mForSavedNetworks) {
if (!mForSavedNetworks && drawable != null) {
setIcon(drawable);
} else {
setIcon(null);
return;
}
}
safeSetDefaultIcon();
}
}
}
private void safeSetDefaultIcon() {
if (mDefaultIconResId != 0) {
setIcon(mDefaultIconResId);
} else {
setIcon(null);
}
}
protected void updateBadge(Context context) {
WifiConfiguration config = mAccessPoint.getConfig();
if (config != null) {