OSDN Git Service

Update SlicePreferenceController
authorjackqdyulei <jackqdyulei@google.com>
Wed, 16 Jan 2019 04:03:10 +0000 (20:03 -0800)
committerjackqdyulei <jackqdyulei@google.com>
Tue, 22 Jan 2019 18:43:24 +0000 (10:43 -0800)
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

src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
src/com/android/settings/slices/SlicePreferenceController.java

index c3d49e9..6ff4309 100644 (file)
@@ -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
index d7fcc18..89294c7 100644 (file)
@@ -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);
+        }
     }
 }