summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/wifi
diff options
context:
space:
mode:
authorAdnan Begovic <adnan@cyngn.com>2015-12-14 17:47:59 -0800
committerAdnan Begovic <adnan@cyngn.com>2015-12-14 17:47:59 -0800
commitabe4aff41352fb2ce92247178ae03a5fc8e2a9bc (patch)
tree9dff5ffe3b279293fe5864cbecc98e2499fc52ec /src/com/android/settings/wifi
parent61bc55b3561aa4652cfe6df67d3a8c716b7f1e92 (diff)
downloadpackages_apps_Settings-abe4aff41352fb2ce92247178ae03a5fc8e2a9bc.zip
packages_apps_Settings-abe4aff41352fb2ce92247178ae03a5fc8e2a9bc.tar.gz
packages_apps_Settings-abe4aff41352fb2ce92247178ae03a5fc8e2a9bc.tar.bz2
Settings: Fix up management for wifi priority.
Change-Id: I3a173caf6eb2cf7f602071851afe9828cda01ca2
Diffstat (limited to 'src/com/android/settings/wifi')
-rw-r--r--src/com/android/settings/wifi/AccessPointPreference.java30
-rw-r--r--src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java7
-rw-r--r--src/com/android/settings/wifi/WifiSettings.java2
3 files changed, 29 insertions, 10 deletions
diff --git a/src/com/android/settings/wifi/AccessPointPreference.java b/src/com/android/settings/wifi/AccessPointPreference.java
index 264f681..d9cb34a 100644
--- a/src/com/android/settings/wifi/AccessPointPreference.java
+++ b/src/com/android/settings/wifi/AccessPointPreference.java
@@ -40,6 +40,7 @@ public class AccessPointPreference extends Preference {
private static final int[] STATE_NONE = {};
private static int[] wifi_signal_attributes = { R.attr.wifi_signal };
+ private static int[] wifi_no_signal_attributes = { R.attr.wifi_no_signal };
private final StateListDrawable mWifiSld;
private final int mBadgePadding;
@@ -52,6 +53,9 @@ public class AccessPointPreference extends Preference {
private int mLevel;
private CharSequence mContentDescription;
+ private boolean mShowNoSignalIcon;
+ private boolean mNoSignalLoaded;
+
static final int[] WIFI_CONNECTION_STRENGTH = {
R.string.accessibility_wifi_one_bar,
R.string.accessibility_wifi_two_bars,
@@ -68,7 +72,7 @@ public class AccessPointPreference extends Preference {
}
public AccessPointPreference(AccessPoint accessPoint, Context context, UserBadgeCache cache,
- boolean forSavedNetworks) {
+ boolean forSavedNetworks, boolean showNoSignal) {
super(context);
mBadgeCache = cache;
mAccessPoint = accessPoint;
@@ -82,6 +86,7 @@ public class AccessPointPreference extends Preference {
// 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);
+ mShowNoSignalIcon = showNoSignal;
refresh();
}
@@ -112,9 +117,24 @@ public class AccessPointPreference extends Preference {
protected void updateIcon(int level, Context context) {
if (level == -1) {
- setIcon(null);
+ if (mShowNoSignalIcon) {
+ Drawable drawable = getIcon();
+ if (drawable == null || !mNoSignalLoaded) {
+ StateListDrawable sld = (StateListDrawable) context.getTheme()
+ .obtainStyledAttributes(wifi_no_signal_attributes).getDrawable(0);
+ if (sld != null) {
+ sld.setState((getAccessPoint().getSecurity() != AccessPoint.SECURITY_NONE)
+ ? STATE_SECURED : STATE_NONE);
+ setIcon(sld.getCurrent());
+ mNoSignalLoaded = true;
+ }
+ }
+ }
+ if (!mNoSignalLoaded) {
+ setIcon(null);
+ }
} else {
- if (getIcon() == null) {
+ if (getIcon() == null || mNoSignalLoaded) {
// To avoid a drawing race condition, we first set the state (SECURE/NONE) and then
// set the icon (drawable) to that state's drawable.
// If sld is null then we are indexing and therefore do not have access to
@@ -124,7 +144,7 @@ public class AccessPointPreference extends Preference {
? STATE_SECURED
: STATE_NONE);
Drawable drawable = mWifiSld.getCurrent();
- if (!mForSavedNetworks) {
+ if (!mForSavedNetworks || mShowNoSignalIcon) {
setIcon(drawable);
} else {
setIcon(null);
@@ -156,7 +176,7 @@ public class AccessPointPreference extends Preference {
final Context context = getContext();
int level = mAccessPoint.getLevel();
- if (level != mLevel) {
+ if (level != mLevel || mShowNoSignalIcon) {
mLevel = level;
updateIcon(mLevel, context);
notifyChanged();
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index d50ebfc..a3140a1 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -164,7 +164,7 @@ public class SavedAccessPointsWifiSettings extends RestrictedSettingsFragment
Bundle savedInstanceState) {
mNetworksListView = new DraggableSortListView(getActivity());
mNetworksListView.setId(android.R.id.list);
- mNetworksListView.setDropListener(isAutoConfigPriorities() ? null : mDropListener);
+ mNetworksListView.setDropListener(mDropListener);
return mNetworksListView;
}
@@ -271,13 +271,12 @@ public class SavedAccessPointsWifiSettings extends RestrictedSettingsFragment
final int accessPointsSize = accessPoints.size();
for (int i = 0; i < accessPointsSize; ++i){
AccessPointPreference preference = new AccessPointPreference(accessPoints.get(i),
- context, mUserBadgeCache, true);
- preference.setIcon(null);
+ context, mUserBadgeCache, true, true);
preference.setOrder(i);
preferenceScreen.addPreference(preference);
}
- if(getPreferenceScreen().getPreferenceCount() < 1) {
+ if (getPreferenceScreen().getPreferenceCount() < 1) {
Log.w(TAG, "Saved networks activity loaded, but there are no saved networks!");
}
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 7eded24..18eb6d9 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -675,7 +675,7 @@ public class WifiSettings extends RestrictedSettingsFragment
continue;
}
AccessPointPreference preference = new AccessPointPreference(accessPoint,
- getActivity(), mUserBadgeCache, false);
+ getActivity(), mUserBadgeCache, false, false);
preference.setOrder(index++);
if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsidStr())