summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java')
-rw-r--r--src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java26
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;
}