Prevent wifi icon from disappearing

Made changes to WifiSettings that customizes
the preference icon so that the icon is never
null. This greatly reduces jittering.

Bug: 29979747
Change-Id: I3d2767310513389c09a37e34674a304278f4d0de
This commit is contained in:
Salvador Martinez
2016-08-12 10:31:43 -07:00
parent 78589d8e41
commit 47568de003
3 changed files with 35 additions and 16 deletions

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="26dp"
android:height="24dp"
android:viewportWidth="26"
android:viewportHeight="24">
<path
android:fillAlpha="0.3"
android:fillColor="?attr/wifi_signal_color"
android:pathData="M13.0,22.0L25.6,6.5C25.1,6.1 20.3,2.1 13.0,2.1S0.9,6.1 0.4,6.5L13.0,22.0L13.0,22.0L13.0,22.0L13.0,22.0L13.0,22.0z"/>
</vector>

View File

@@ -17,21 +17,8 @@ package com.android.settings.wifi;
import android.app.Fragment; import android.app.Fragment;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.net.wifi.WifiConfiguration;
import android.os.Looper;
import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder; import android.support.v7.preference.PreferenceViewHolder;
import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.SparseArray;
import android.view.View;
import android.widget.TextView;
import com.android.settings.R;
import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.AccessPointPreference; import com.android.settingslib.wifi.AccessPointPreference;
@@ -51,6 +38,12 @@ public class LongPressAccessPointPreference extends AccessPointPreference {
mFragment = fragment; mFragment = fragment;
} }
public LongPressAccessPointPreference(AccessPoint accessPoint, Context context,
UserBadgeCache cache, boolean forSavedNetworks, int iconResId, Fragment fragment) {
super(accessPoint, context, cache, iconResId, forSavedNetworks);
mFragment = fragment;
}
@Override @Override
public void onBindViewHolder(final PreferenceViewHolder view) { public void onBindViewHolder(final PreferenceViewHolder view) {
super.onBindViewHolder(view); super.onBindViewHolder(view);

View File

@@ -71,7 +71,6 @@ import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
import com.android.settingslib.wifi.AccessPointPreference; import com.android.settingslib.wifi.AccessPointPreference;
import com.android.settingslib.wifi.WifiStatusTracker; import com.android.settingslib.wifi.WifiStatusTracker;
import com.android.settingslib.wifi.WifiTracker; import com.android.settingslib.wifi.WifiTracker;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@@ -630,10 +629,10 @@ public class WifiSettings extends RestrictedSettingsFragment
} }
LongPressAccessPointPreference LongPressAccessPointPreference
preference = new LongPressAccessPointPreference(accessPoint, preference = new LongPressAccessPointPreference(accessPoint,
getPrefContext(), mUserBadgeCache, false, this); getPrefContext(), mUserBadgeCache, false,
R.drawable.ic_wifi_signal_0, this);
preference.setKey(key); preference.setKey(key);
preference.setOrder(index++); preference.setOrder(index++);
if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr()) if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr())
&& !accessPoint.isSaved() && !accessPoint.isSaved()
&& accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) { && accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
@@ -642,6 +641,7 @@ public class WifiSettings extends RestrictedSettingsFragment
} }
getPreferenceScreen().addPreference(preference); getPreferenceScreen().addPreference(preference);
accessPoint.setListener(this); accessPoint.setListener(this);
preference.refresh();
} }
} }
removeCachedPrefs(getPreferenceScreen()); removeCachedPrefs(getPreferenceScreen());