From 36b37de9d6b6eb62b1d7e5f6dbf6210b49780e1a Mon Sep 17 00:00:00 2001 From: Jason Chiu Date: Wed, 23 Jan 2019 18:09:45 +0800 Subject: [PATCH] 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 --- .../slices/BluetoothUpdateWorker.java | 11 +---------- .../settings/slices/SliceBackgroundWorker.java | 15 +++++++++------ .../android/settings/wifi/slice/WifiSlice.java | 3 ++- .../settings/wifi/slice/WifiSliceTest.java | 7 +++++++ 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorker.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorker.java index ff26888a8f0..1602f564998 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorker.java +++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorker.java @@ -30,16 +30,11 @@ public class BluetoothUpdateWorker extends SliceBackgroundWorker implements Blue private static final String TAG = "BluetoothUpdateWorker"; - private final Context mContext; - private final Uri mUri; private final LocalBluetoothManager mLocalBluetoothManager; public BluetoothUpdateWorker(Context context, Uri uri) { super(context, uri); - - mContext = context; - mUri = uri; - mLocalBluetoothManager = Utils.getLocalBtManager(mContext); + mLocalBluetoothManager = Utils.getLocalBtManager(context); } @Override @@ -89,8 +84,4 @@ public class BluetoothUpdateWorker extends SliceBackgroundWorker implements Blue int bluetoothProfile) { notifySliceChange(); } - - private void notifySliceChange() { - mContext.getContentResolver().notifyChange(mUri, null); - } } \ No newline at end of file diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java index 284fd23466d..6df45ba93e3 100644 --- a/src/com/android/settings/slices/SliceBackgroundWorker.java +++ b/src/com/android/settings/slices/SliceBackgroundWorker.java @@ -59,10 +59,6 @@ public abstract class SliceBackgroundWorker implements Closeable { mUri = uri; } - protected Uri getUri() { - return mUri; - } - /** * Returns the singleton instance of the {@link SliceBackgroundWorker} for specified {@link Uri} * if exists @@ -148,7 +144,14 @@ public abstract class SliceBackgroundWorker implements Closeable { if (needNotify) { 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); + } +} \ No newline at end of file diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index 1c79c1d92b4..88fa8b298ef 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -292,11 +292,12 @@ public class WifiSlice implements CustomSliceable { @Override public void onWifiStateChanged(int state) { - mContext.getContentResolver().notifyChange(getUri(), null); + notifySliceChange(); } @Override public void onConnectedChanged() { + notifySliceChange(); } @Override diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java index ae352cc55ce..dd99e5518a1 100644 --- a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java +++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java @@ -139,4 +139,11 @@ public class WifiSliceTest { verify(mResolver).notifyChange(WIFI_SLICE_URI, null); } + + @Test + public void onConnectedChanged_shouldNotifyChange() { + mWifiScanWorker.onConnectedChanged(); + + verify(mResolver).notifyChange(WIFI_SLICE_URI, null); + } }