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

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

Merge "Prevent wifi icon from disappearing"

parents 7d3d7ae5 45a15942
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);
        }
    }