Update UWB toggle state with a getter API
Also updates capitalization for strings Test: Manual on Raven & Robotest Bug: 183254940 Change-Id: I9d3a4694746b44e80c60a9097abd0cbb647c1348
This commit is contained in:
@@ -13220,11 +13220,11 @@
|
|||||||
<string name="request_manage_bluetooth_permission_dont_allow">Don\u2019t allow</string>
|
<string name="request_manage_bluetooth_permission_dont_allow">Don\u2019t allow</string>
|
||||||
|
|
||||||
<!-- Title for UWB preference [CHAR_LIMIT=60] -->
|
<!-- Title for UWB preference [CHAR_LIMIT=60] -->
|
||||||
<string name="uwb_settings_title">Ultra-WideBand (UWB)</string>
|
<string name="uwb_settings_title">Ultra-Wideband (UWB)</string>
|
||||||
|
|
||||||
<!-- Summary for UWB preference. [CHAR_LIMIT=NONE]-->
|
<!-- Summary for UWB preference. [CHAR_LIMIT=NONE]-->
|
||||||
<string name="uwb_settings_summary">Helps identify the relative position of nearby devices that have UWB</string>
|
<string name="uwb_settings_summary">Helps identify the relative position of nearby devices that have UWB</string>
|
||||||
|
|
||||||
<!-- Summary for UWB preference when airplane mode is disabled. [CHAR_LIMIT=NONE]-->
|
<!-- Summary for UWB preference when airplane mode is disabled. [CHAR_LIMIT=NONE]-->
|
||||||
<string name="uwb_settings_summary_airplane_mode">Turn off Airplane mode to use UWB. </string>
|
<string name="uwb_settings_summary_airplane_mode">Turn off airplane mode to use UWB </string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -52,8 +52,6 @@ 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 boolean mIsChecked = true;
|
|
||||||
boolean mRegisteredAdapterStateCallback = false;
|
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
public UwbPreferenceController(Context context, String key) {
|
public UwbPreferenceController(Context context, String key) {
|
||||||
@@ -94,26 +92,26 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChecked() {
|
public boolean isChecked() {
|
||||||
//TODO(b/186075119): Update toggle state by assigning to the real value by default.
|
int state = mUwbManager.getAdapterState();
|
||||||
return mIsChecked;
|
return state == STATE_ENABLED_ACTIVE || state == STATE_ENABLED_INACTIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setChecked(boolean isChecked) {
|
public boolean setChecked(boolean isChecked) {
|
||||||
mIsChecked = isChecked;
|
mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
|
||||||
mUwbManager.setUwbEnabled(isChecked);
|
Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
|
||||||
|
if (isUwbSupportedOnDevice()) {
|
||||||
|
if (mAirplaneModeOn) {
|
||||||
|
mUwbManager.setUwbEnabled(false);
|
||||||
|
} else {
|
||||||
|
mUwbManager.setUwbEnabled(isChecked);
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStateChanged(int state, int reason) {
|
public void onStateChanged(int state, int reason) {
|
||||||
// Only update toggle state from service the first time. Otherwise toggle state is
|
|
||||||
// changed from controller. For example, UWB is disabled if airplane mode is on but we do
|
|
||||||
// not want to change the preference for the user in this case.
|
|
||||||
if (!mRegisteredAdapterStateCallback) {
|
|
||||||
mIsChecked = state == STATE_ENABLED_ACTIVE || state == STATE_ENABLED_INACTIVE;
|
|
||||||
mRegisteredAdapterStateCallback = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when activity starts being displayed to user. */
|
/** Called when activity starts being displayed to user. */
|
||||||
@@ -143,16 +141,7 @@ public class UwbPreferenceController extends TogglePreferenceController implemen
|
|||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
super.updateState(preference);
|
super.updateState(preference);
|
||||||
mAirplaneModeOn = Settings.Global.getInt(mContext.getContentResolver(),
|
|
||||||
Settings.Global.AIRPLANE_MODE_ON, 0) == 1;
|
|
||||||
preference.setEnabled(!mAirplaneModeOn);
|
preference.setEnabled(!mAirplaneModeOn);
|
||||||
if (isUwbSupportedOnDevice()) {
|
|
||||||
if (mAirplaneModeOn) {
|
|
||||||
mUwbManager.setUwbEnabled(false);
|
|
||||||
} else {
|
|
||||||
mUwbManager.setUwbEnabled(mIsChecked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
refreshSummary(preference);
|
refreshSummary(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -94,55 +94,15 @@ public class UwbPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onStateChanged_stateNotRegistered_shouldUpdate() {
|
public void isChecked_uwbEnabled_shouldReturnTrue() {
|
||||||
mController.mRegisteredAdapterStateCallback = false;
|
doReturn(mController.STATE_ENABLED_ACTIVE).when(mUwbManager).getAdapterState();
|
||||||
mController.onStateChanged(UwbManager.AdapterStateCallback.STATE_DISABLED,
|
|
||||||
UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY);
|
|
||||||
|
|
||||||
assertThat(mController.isChecked()).isFalse();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onStateChanged_stateRegistered_shouldNotUpdate() {
|
|
||||||
mController.mRegisteredAdapterStateCallback = true;
|
|
||||||
mController.onStateChanged(UwbManager.AdapterStateCallback.STATE_ENABLED_INACTIVE,
|
|
||||||
UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY);
|
|
||||||
|
|
||||||
assertThat(mController.isChecked()).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void isChecked_uwbEnabledInactive_shouldReturnTrue() {
|
|
||||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
|
||||||
doReturn(true).when(mPackageManager)
|
|
||||||
.hasSystemFeature(PackageManager.FEATURE_UWB);
|
|
||||||
mController.mRegisteredAdapterStateCallback = false;
|
|
||||||
mController.onStateChanged(UwbManager.AdapterStateCallback.STATE_ENABLED_INACTIVE,
|
|
||||||
UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY);
|
|
||||||
|
|
||||||
assertThat(mController.isChecked()).isTrue();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void isChecked_uwbEnabledActive_shouldReturnTrue() {
|
|
||||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
|
||||||
doReturn(true).when(mPackageManager)
|
|
||||||
.hasSystemFeature(PackageManager.FEATURE_UWB);
|
|
||||||
mController.mRegisteredAdapterStateCallback = false;
|
|
||||||
mController.onStateChanged(UwbManager.AdapterStateCallback.STATE_ENABLED_ACTIVE,
|
|
||||||
UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY);
|
|
||||||
|
|
||||||
assertThat(mController.isChecked()).isTrue();
|
assertThat(mController.isChecked()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void isChecked_uwbDisabled_shouldReturnFalse() {
|
public void isChecked_uwbDisabled_shouldReturnFalse() {
|
||||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
doReturn(mController.STATE_DISABLED).when(mUwbManager).getAdapterState();
|
||||||
doReturn(true).when(mPackageManager)
|
|
||||||
.hasSystemFeature(PackageManager.FEATURE_UWB);
|
|
||||||
mController.mRegisteredAdapterStateCallback = false;
|
|
||||||
mController.onStateChanged(UwbManager.AdapterStateCallback.STATE_DISABLED,
|
|
||||||
UwbManager.AdapterStateCallback.STATE_CHANGED_REASON_SYSTEM_POLICY);
|
|
||||||
|
|
||||||
assertThat(mController.isChecked()).isFalse();
|
assertThat(mController.isChecked()).isFalse();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user