From 511b5fe9f258db7f6f913b9e730a85bb357a958d Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Tue, 15 Jan 2019 20:03:10 -0800 Subject: [PATCH] Update SlicePreferenceController Make sure setSliceUri is invoked even when it is null, where we create SliceLiveData. Then in lifecycle, if LiveData is not null, we will register observer. Bug: 120803703 Test: Manual Change-Id: I56caf2abf04c4a251ebafa5deb599d44b1c7fe92 --- .../bluetooth/BluetoothDeviceDetailsFragment.java | 14 ++++++++------ .../settings/slices/SlicePreferenceController.java | 4 +++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java index c3d49e9be94..6ff4309a4fa 100644 --- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java @@ -109,12 +109,14 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment mCachedDevice = getCachedDevice(mDeviceAddress); super.onAttach(context); - if (FeatureFlagUtils.isEnabled(context, FeatureFlags.SLICE_INJECTION)) { - final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory(context) - .getBluetoothFeatureProvider(context); - use(BlockingSlicePrefController.class).setSliceUri( - featureProvider.getBluetoothDeviceSettingsUri(mDeviceAddress)); - } + final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory( + context).getBluetoothFeatureProvider(context); + final boolean injectionEnabled = FeatureFlagUtils.isEnabled(context, + FeatureFlags.SLICE_INJECTION); + + use(BlockingSlicePrefController.class).setSliceUri(injectionEnabled + ? featureProvider.getBluetoothDeviceSettingsUri(mDeviceAddress) + : null); } @Override diff --git a/src/com/android/settings/slices/SlicePreferenceController.java b/src/com/android/settings/slices/SlicePreferenceController.java index d7fcc18a832..89294c74cb0 100644 --- a/src/com/android/settings/slices/SlicePreferenceController.java +++ b/src/com/android/settings/slices/SlicePreferenceController.java @@ -82,6 +82,8 @@ public class SlicePreferenceController extends BasePreferenceController implemen @Override public void onChanged(Slice slice) { - mSlicePreference.onSliceUpdated(slice); + if (slice != null) { + mSlicePreference.onSliceUpdated(slice); + } } }