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.nfc.AndroidBeamPreferenceController;
|
||||||
import com.android.settings.print.PrintSettingPreferenceController;
|
import com.android.settings.print.PrintSettingPreferenceController;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.uwb.UwbPreferenceController;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
@@ -43,6 +44,7 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
|||||||
private static final String TAG = "AdvancedConnectedDeviceFrag";
|
private static final String TAG = "AdvancedConnectedDeviceFrag";
|
||||||
|
|
||||||
static final String KEY_BLUETOOTH = "bluetooth_settings";
|
static final String KEY_BLUETOOTH = "bluetooth_settings";
|
||||||
|
static final String KEY_UWB = "uwb_settings";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
@@ -64,6 +66,15 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
|||||||
return R.xml.connected_devices_advanced;
|
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
|
@Override
|
||||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||||
return buildControllers(context, getSettingsLifecycle());
|
return buildControllers(context, getSettingsLifecycle());
|
||||||
|
@@ -24,6 +24,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.uwb.UwbManager;
|
import android.uwb.UwbManager;
|
||||||
import android.uwb.UwbManager.AdapterStateCallback;
|
import android.uwb.UwbManager.AdapterStateCallback;
|
||||||
@@ -52,11 +53,13 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
private final BroadcastReceiver mAirplaneModeChangedReceiver;
|
private final BroadcastReceiver mAirplaneModeChangedReceiver;
|
||||||
private final Executor mExecutor;
|
private final Executor mExecutor;
|
||||||
|
private final Handler mHandler;
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
public UwbPreferenceController(Context context, String key) {
|
public UwbPreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
mExecutor = Executors.newSingleThreadExecutor();
|
mExecutor = Executors.newSingleThreadExecutor();
|
||||||
|
mHandler = new Handler(context.getMainLooper());
|
||||||
if (isUwbSupportedOnDevice()) {
|
if (isUwbSupportedOnDevice()) {
|
||||||
mUwbManager = context.getSystemService(UwbManager.class);
|
mUwbManager = context.getSystemService(UwbManager.class);
|
||||||
}
|
}
|
||||||
@@ -65,6 +68,8 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
|||||||
mAirplaneModeChangedReceiver = new BroadcastReceiver() {
|
mAirplaneModeChangedReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
|
Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
|
||||||
updateState(mPreference);
|
updateState(mPreference);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -114,6 +119,8 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStateChanged(int state, int reason) {
|
public void onStateChanged(int state, int reason) {
|
||||||
|
Runnable runnable = () -> updateState(mPreference);
|
||||||
|
mHandler.post(runnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when activity starts being displayed to user. */
|
/** Called when activity starts being displayed to user. */
|
||||||
|
Reference in New Issue
Block a user