Merge "Fix NPE crash in UwbPreferenceController and optimize the lifecycle observer adding condition in page" am: b2a466d92f am: a9c6040eb8

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2206258

Change-Id: I3048482c0e9c74bc4488fb76e7166b4e94bf1e98
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2022-09-07 00:41:43 +00:00
committed by Automerger Merge Worker
2 changed files with 10 additions and 4 deletions

View File

@@ -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);
}
}
}

View File

@@ -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;
}