Remove restricted icon in SettingsMainSwitchBar

- display disable status directly
- click disabled MainSwitchBar will show devicepolicy dialog
- make sure BT and location use MainSwitchBar correctly

Bug: 260406688
Test: manual
Change-Id: I8bb57213eec6dd5e991af580e1a06ebf8a867c28
This commit is contained in:
Edgar Wang
2023-04-06 18:00:30 +08:00
parent ccd03c9e70
commit cd74f76a43
5 changed files with 94 additions and 26 deletions

View File

@@ -23,6 +23,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;
import android.widget.Switch;
@@ -108,14 +109,26 @@ public class LocationSwitchBarControllerTest {
verify(mSwitchBar).setDisabledByAdmin(admin);
}
@Test
public void onLocationModeChanged_Restricted_shouldDisableSwitchByAdmin() {
final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtils.EnforcedAdmin
.createDefaultEnforcedAdminWithRestriction(UserManager.DISALLOW_SHARE_LOCATION);
doReturn(null).when(mEnabler).getShareLocationEnforcedAdmin(anyInt());
doReturn(false).when(mEnabler).hasShareLocationRestriction(anyInt());
mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, true);
verify(mSwitchBar).setDisabledByAdmin(admin);
}
@Test
public void onLocationModeChanged_Restricted_shouldDisableSwitch() {
doReturn(null).when(mEnabler).getShareLocationEnforcedAdmin(anyInt());
doReturn(true).when(mEnabler).hasShareLocationRestriction(anyInt());
mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, true);
mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false);
verify(mSwitchBar).setEnabled(false);
verify(mSwitchBar).setEnabled(true);
}
@Test