diff options
Diffstat (limited to 'src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java')
-rw-r--r-- | src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java index aa0b6cd54f..957737a118 100644 --- a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java +++ b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java @@ -15,8 +15,9 @@ */ package com.android.settings.connecteddevice; -import android.content.pm.PackageManager; import android.content.Context; +import android.content.pm.PackageManager; + import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceGroup; @@ -31,9 +32,9 @@ import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.overlay.DockUpdaterFeatureProvider; import com.android.settings.overlay.FeatureFactory; +import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; -import com.android.settingslib.core.lifecycle.LifecycleObserver; /** * Controller to maintain the {@link androidx.preference.PreferenceGroup} for all @@ -72,21 +73,28 @@ public class ConnectedDeviceGroupController extends BasePreferenceController @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - if (isAvailable()) { - mPreferenceGroup = (PreferenceGroup) screen.findPreference(KEY); - mPreferenceGroup.setVisible(false); - mBluetoothDeviceUpdater.setPrefContext(screen.getContext()); + mPreferenceGroup = screen.findPreference(KEY); + mPreferenceGroup.setVisible(false); + + if (isAvailable()) { + final Context context = screen.getContext(); + mBluetoothDeviceUpdater.setPrefContext(context); mBluetoothDeviceUpdater.forceUpdate(); - mConnectedUsbDeviceUpdater.initUsbPreference(screen.getContext()); + mConnectedUsbDeviceUpdater.initUsbPreference(context); + mConnectedDockUpdater.setPreferenceContext(context); mConnectedDockUpdater.forceUpdate(); } } @Override public int getAvailabilityStatus() { - return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH) - ? AVAILABLE + final PackageManager packageManager = mContext.getPackageManager(); + return (packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH) + || packageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY) + || packageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST) + || mConnectedDockUpdater != null) + ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } |