diff options
Diffstat (limited to 'src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java')
-rw-r--r-- | src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java index 3d5d0e58e8..c77a7358d6 100644 --- a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java +++ b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java @@ -15,15 +15,18 @@ */ package com.android.settings.connecteddevice; +import android.content.pm.PackageManager; import android.support.annotation.VisibleForTesting; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroup; import android.support.v7.preference.PreferenceScreen; import com.android.settings.connecteddevice.usb.ConnectedUsbDeviceUpdater; +import com.android.settings.core.BasePreferenceController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.bluetooth.BluetoothDeviceUpdater; import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater; +import com.android.settings.search.ResultPayload; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; @@ -35,7 +38,7 @@ import com.android.settingslib.core.lifecycle.events.OnStop; * Controller to maintain the {@link android.support.v7.preference.PreferenceGroup} for all * connected devices. It uses {@link DevicePreferenceCallback} to add/remove {@link Preference} */ -public class ConnectedDeviceGroupController extends AbstractPreferenceController +public class ConnectedDeviceGroupController extends BasePreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback { @@ -47,7 +50,7 @@ public class ConnectedDeviceGroupController extends AbstractPreferenceController private ConnectedUsbDeviceUpdater mConnectedUsbDeviceUpdater; public ConnectedDeviceGroupController(DashboardFragment fragment, Lifecycle lifecycle) { - super(fragment.getContext()); + super(fragment.getContext(), KEY); init(lifecycle, new ConnectedBluetoothDeviceUpdater(fragment, this), new ConnectedUsbDeviceUpdater(fragment, this)); } @@ -56,7 +59,7 @@ public class ConnectedDeviceGroupController extends AbstractPreferenceController ConnectedDeviceGroupController(DashboardFragment fragment, Lifecycle lifecycle, BluetoothDeviceUpdater bluetoothDeviceUpdater, ConnectedUsbDeviceUpdater connectedUsbDeviceUpdater) { - super(fragment.getContext()); + super(fragment.getContext(), KEY); init(lifecycle, bluetoothDeviceUpdater, connectedUsbDeviceUpdater); } @@ -75,17 +78,21 @@ public class ConnectedDeviceGroupController extends AbstractPreferenceController @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mPreferenceGroup = (PreferenceGroup) screen.findPreference(KEY); - mPreferenceGroup.setVisible(false); + if (isAvailable()) { + mPreferenceGroup = (PreferenceGroup) screen.findPreference(KEY); + mPreferenceGroup.setVisible(false); - mBluetoothDeviceUpdater.setPrefContext(screen.getContext()); - mBluetoothDeviceUpdater.forceUpdate(); - mConnectedUsbDeviceUpdater.initUsbPreference(screen.getContext()); + mBluetoothDeviceUpdater.setPrefContext(screen.getContext()); + mBluetoothDeviceUpdater.forceUpdate(); + mConnectedUsbDeviceUpdater.initUsbPreference(screen.getContext()); + } } @Override - public boolean isAvailable() { - return true; + public int getAvailabilityStatus() { + return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH) + ? AVAILABLE + : DISABLED_UNSUPPORTED; } @Override @@ -111,7 +118,7 @@ public class ConnectedDeviceGroupController extends AbstractPreferenceController private void init(Lifecycle lifecycle, BluetoothDeviceUpdater bluetoothDeviceUpdater, ConnectedUsbDeviceUpdater connectedUsbDeviceUpdater) { - if (lifecycle != null) { + if (lifecycle != null && isAvailable()) { lifecycle.addObserver(this); } mBluetoothDeviceUpdater = bluetoothDeviceUpdater; |