Merge "Update UWB toggle display after lifecycle events." into sc-qpr1-dev am: faf452bf94 am: b097e09dd7 am: cc6de81b52
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16047401
Change-Id: I7b10e68e133c04feff0fc1729cccc921ddfc1b50
diff --git a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
index a2cad1b..b58d9c3 100644
--- a/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragment.java
@@ -25,6 +25,7 @@
import com.android.settings.nfc.AndroidBeamPreferenceController;
import com.android.settings.print.PrintSettingPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.uwb.UwbPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
@@ -42,6 +43,7 @@
private static final String TAG = "AdvancedConnectedDeviceFrag";
static final String KEY_BLUETOOTH = "bluetooth_settings";
+ static final String KEY_UWB = "uwb_settings";
@Override
public int getMetricsCategory() {
@@ -64,6 +66,15 @@
}
@Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ UwbPreferenceController uwbPreferenceController = use(UwbPreferenceController.class);
+ if (uwbPreferenceController != null && getSettingsLifecycle() != null) {
+ getSettingsLifecycle().addObserver(uwbPreferenceController);
+ }
+ }
+
+ @Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
return buildControllers(context, getSettingsLifecycle());
}
diff --git a/src/com/android/settings/uwb/UwbPreferenceController.java b/src/com/android/settings/uwb/UwbPreferenceController.java
index 877c9f2..8b330a9 100644
--- a/src/com/android/settings/uwb/UwbPreferenceController.java
+++ b/src/com/android/settings/uwb/UwbPreferenceController.java
@@ -24,6 +24,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
+import android.os.Handler;
import android.provider.Settings;
import android.uwb.UwbManager;
import android.uwb.UwbManager.AdapterStateCallback;
@@ -52,11 +53,13 @@
@VisibleForTesting
private final BroadcastReceiver mAirplaneModeChangedReceiver;
private final Executor mExecutor;
+ private final Handler mHandler;
private Preference mPreference;
public UwbPreferenceController(Context context, String key) {
super(context, key);
mExecutor = Executors.newSingleThreadExecutor();
+ mHandler = new Handler(context.getMainLooper());
if (isUwbSupportedOnDevice()) {
mUwbManager = context.getSystemService(UwbManager.class);
}
@@ -65,6 +68,8 @@
mAirplaneModeChangedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
+ mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
updateState(mPreference);
}
};
@@ -114,6 +119,8 @@
@Override
public void onStateChanged(int state, int reason) {
+ Runnable runnable = () -> updateState(mPreference);
+ mHandler.post(runnable);
}
/** Called when activity starts being displayed to user. */