diff --git a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java index b58d9c35d28..e2d92c7ce50 100644 --- a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java @@ -69,8 +69,12 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment public void onAttach(Context context) { super.onAttach(context); UwbPreferenceController uwbPreferenceController = use(UwbPreferenceController.class); - if (uwbPreferenceController != null && getSettingsLifecycle() != null) { - getSettingsLifecycle().addObserver(uwbPreferenceController); + // We only need the observer listen to the broadcast in the background for refreshing + // UI if the device supports UWB. + if (uwbPreferenceController != null && uwbPreferenceController.isUwbSupportedOnDevice()) { + if (getSettingsLifecycle() != null) { + getSettingsLifecycle().addObserver(uwbPreferenceController); + } } } diff --git a/src/com/android/settings/uwb/UwbPreferenceController.java b/src/com/android/settings/uwb/UwbPreferenceController.java index ad040ed6043..fb0836d6d3c 100644 --- a/src/com/android/settings/uwb/UwbPreferenceController.java +++ b/src/com/android/settings/uwb/UwbPreferenceController.java @@ -75,8 +75,7 @@ public class UwbPreferenceController extends TogglePreferenceController implemen }; } - @VisibleForTesting - boolean isUwbSupportedOnDevice() { + public boolean isUwbSupportedOnDevice() { return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_UWB); } @@ -99,6 +98,9 @@ public class UwbPreferenceController extends TogglePreferenceController implemen @Override public boolean isChecked() { + if (!isUwbSupportedOnDevice()) { + return false; + } int state = mUwbManager.getAdapterState(); return state == STATE_ENABLED_ACTIVE || state == STATE_ENABLED_INACTIVE; }