diff options
author | Isaac Levy <ilevy@google.com> | 2011-08-24 16:41:10 -0700 |
---|---|---|
committer | Isaac Levy <ilevy@google.com> | 2011-08-25 12:13:19 -0700 |
commit | e2c6e7520b5002573bf76bcdee909281514eabb0 (patch) | |
tree | 8369467793e15b98bf11056a649e86c7a6546819 /src/com/android/settings/wifi | |
parent | 5070e45a8799674f27bb087631c1377f5256b93f (diff) | |
download | packages_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.java | 36 |
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 |