Fix the consistency of connection status displayed on Wi-Fi card

- Refresh slice in WifiTracker.onConnectedChanged
- Only expose notifySliceChange to child in SliceBackgroundWorker

Fixes: 123270015
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.slice
Change-Id: Id5540ebae2746e58e14924665c5e62bf437ebcf0
This commit is contained in:
Jason Chiu
2019-01-23 18:09:45 +08:00
parent 875178bbfa
commit 36b37de9d6
4 changed files with 19 additions and 17 deletions

View File

@@ -30,16 +30,11 @@ public class BluetoothUpdateWorker extends SliceBackgroundWorker implements Blue
private static final String TAG = "BluetoothUpdateWorker"; private static final String TAG = "BluetoothUpdateWorker";
private final Context mContext;
private final Uri mUri;
private final LocalBluetoothManager mLocalBluetoothManager; private final LocalBluetoothManager mLocalBluetoothManager;
public BluetoothUpdateWorker(Context context, Uri uri) { public BluetoothUpdateWorker(Context context, Uri uri) {
super(context, uri); super(context, uri);
mLocalBluetoothManager = Utils.getLocalBtManager(context);
mContext = context;
mUri = uri;
mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
} }
@Override @Override
@@ -89,8 +84,4 @@ public class BluetoothUpdateWorker extends SliceBackgroundWorker implements Blue
int bluetoothProfile) { int bluetoothProfile) {
notifySliceChange(); notifySliceChange();
} }
private void notifySliceChange() {
mContext.getContentResolver().notifyChange(mUri, null);
}
} }

View File

@@ -59,10 +59,6 @@ public abstract class SliceBackgroundWorker<E> implements Closeable {
mUri = uri; mUri = uri;
} }
protected Uri getUri() {
return mUri;
}
/** /**
* Returns the singleton instance of the {@link SliceBackgroundWorker} for specified {@link Uri} * Returns the singleton instance of the {@link SliceBackgroundWorker} for specified {@link Uri}
* if exists * if exists
@@ -148,7 +144,14 @@ public abstract class SliceBackgroundWorker<E> implements Closeable {
if (needNotify) { if (needNotify) {
mCachedResults = results; mCachedResults = results;
mContext.getContentResolver().notifyChange(mUri, null); notifySliceChange();
} }
} }
/**
* Notify that data was updated and attempt to sync changes to the Slice.
*/
protected void notifySliceChange() {
mContext.getContentResolver().notifyChange(mUri, null);
}
} }

View File

@@ -292,11 +292,12 @@ public class WifiSlice implements CustomSliceable {
@Override @Override
public void onWifiStateChanged(int state) { public void onWifiStateChanged(int state) {
mContext.getContentResolver().notifyChange(getUri(), null); notifySliceChange();
} }
@Override @Override
public void onConnectedChanged() { public void onConnectedChanged() {
notifySliceChange();
} }
@Override @Override

View File

@@ -139,4 +139,11 @@ public class WifiSliceTest {
verify(mResolver).notifyChange(WIFI_SLICE_URI, null); verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
} }
@Test
public void onConnectedChanged_shouldNotifyChange() {
mWifiScanWorker.onConnectedChanged();
verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
}
} }