summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/wifi
diff options
context:
space:
mode:
authorIsaac Levy <ilevy@google.com>2011-08-24 16:41:10 -0700
committerIsaac Levy <ilevy@google.com>2011-08-25 12:13:19 -0700
commite2c6e7520b5002573bf76bcdee909281514eabb0 (patch)
tree8369467793e15b98bf11056a649e86c7a6546819 /src/com/android/settings/wifi
parent5070e45a8799674f27bb087631c1377f5256b93f (diff)
downloadpackages_apps_Settings-e2c6e7520b5002573bf76bcdee909281514eabb0.zip
packages_apps_Settings-e2c6e7520b5002573bf76bcdee909281514eabb0.tar.gz
packages_apps_Settings-e2c6e7520b5002573bf76bcdee909281514eabb0.tar.bz2
Fixed wifi refresh bug, b/5021754
Change-Id: I93711094ceb1490accce1e466de4cc1541dffdff
Diffstat (limited to 'src/com/android/settings/wifi')
-rw-r--r--src/com/android/settings/wifi/AccessPoint.java36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 799a8da..66db32e 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -71,7 +71,6 @@ class AccessPoint extends Preference {
private int mRssi;
private WifiInfo mInfo;
private DetailedState mState;
- private ImageView mSignal;
static int getSecurity(WifiConfiguration config) {
if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
@@ -145,12 +144,14 @@ class AccessPoint extends Preference {
super(context);
setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
loadConfig(config);
+ refresh();
}
AccessPoint(Context context, ScanResult result) {
super(context);
setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
loadResult(result);
+ refresh();
}
AccessPoint(Context context, Bundle savedState) {
@@ -204,17 +205,16 @@ class AccessPoint extends Preference {
@Override
protected void onBindView(View view) {
- setTitle(ssid);
- mSignal = (ImageView) view.findViewById(R.id.signal);
+ super.onBindView(view);
+ ImageView signal = (ImageView) view.findViewById(R.id.signal);
if (mRssi == Integer.MAX_VALUE) {
- mSignal.setImageDrawable(null);
+ signal.setImageDrawable(null);
} else {
- mSignal.setImageResource(R.drawable.wifi_signal);
- mSignal.setImageState((security != SECURITY_NONE) ?
+ signal.setImageLevel(getLevel());
+ signal.setImageResource(R.drawable.wifi_signal);
+ signal.setImageState((security != SECURITY_NONE) ?
STATE_SECURED : STATE_NONE, true);
}
- refresh();
- super.onBindView(view);
}
@Override
@@ -245,14 +245,19 @@ class AccessPoint extends Preference {
}
boolean update(ScanResult result) {
- // We do not call refresh() since this is called before onBindView().
if (ssid.equals(result.SSID) && security == getSecurity(result)) {
if (WifiManager.compareSignalLevel(result.level, mRssi) > 0) {
+ int oldLevel = getLevel();
mRssi = result.level;
+ if (getLevel() != oldLevel) {
+ notifyChanged();
+ }
}
// This flag only comes from scans, is not easily saved in config
- if (security == SECURITY_PSK)
+ if (security == SECURITY_PSK) {
pskType = getPskType(result);
+ }
+ refresh();
return true;
}
return false;
@@ -260,7 +265,8 @@ class AccessPoint extends Preference {
void update(WifiInfo info, DetailedState state) {
boolean reorder = false;
- if (info != null && networkId != -1 && networkId == info.getNetworkId()) {
+ if (info != null && networkId != WifiConfiguration.INVALID_NETWORK_ID
+ && networkId == info.getNetworkId()) {
reorder = (mInfo == null);
mRssi = info.getRssi();
mInfo = info;
@@ -309,13 +315,11 @@ class AccessPoint extends Preference {
return "\"" + string + "\"";
}
+ /** Updates the title and summary; may indirectly call notifyChanged() */
private void refresh() {
- if (mSignal == null) {
- return;
- }
- Context context = getContext();
- mSignal.setImageLevel(getLevel());
+ setTitle(ssid);
+ Context context = getContext();
if (mState != null) { // This is the active connection
setSummary(Summary.get(context, mState));
} else if (mRssi == Integer.MAX_VALUE) { // Wifi out of range