Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09b64ade authored by Salvador Martinez's avatar Salvador Martinez Committed by Android (Google) Code Review
Browse files

Merge "Prevent wifi icon from disappearing" into nyc-mr1-dev

parents b19915be 823cd0e3
Loading
Loading
Loading
Loading
+32 −6
Original line number Diff line number Diff line
@@ -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,13 +142,21 @@ 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);
        }
    }