Update UWB toggle display after lifecycle events.
Bug: 201790864 Test: Manual Change-Id: I05cb52331fe106017b2cb6718a897690720725db
This commit is contained in:
@@ -26,6 +26,7 @@ import com.android.settings.dashboard.DashboardFragment;
|
||||
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;
|
||||
@@ -43,6 +44,7 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
||||
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 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
||||
return R.xml.connected_devices_advanced;
|
||||
}
|
||||
|
||||
@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());
|
||||
|
@@ -24,6 +24,7 @@ import android.content.Context;
|
||||
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 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
||||
@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 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
||||
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 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
||||
|
||||
@Override
|
||||
public void onStateChanged(int state, int reason) {
|
||||
Runnable runnable = () -> updateState(mPreference);
|
||||
mHandler.post(runnable);
|
||||
}
|
||||
|
||||
/** Called when activity starts being displayed to user. */
|
||||
|
Reference in New Issue
Block a user