Merge "Fix "Allow guest to use telephony" toggle not updating its value" into udc-qpr-dev am: 8141b10269

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23899169

Change-Id: I44ca0e373d432ab38e8a3fe8a19a4676ca31a771
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Tetiana Meronyk
2023-07-06 14:01:26 +00:00
committed by Automerger Merge Worker
2 changed files with 12 additions and 8 deletions

View File

@@ -34,14 +34,11 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll
private final UserManager mUserManager; private final UserManager mUserManager;
private final UserCapabilities mUserCaps; private final UserCapabilities mUserCaps;
private Bundle mDefaultGuestRestrictions;
public GuestTelephonyPreferenceController(Context context, String preferenceKey) { public GuestTelephonyPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
mUserManager = context.getSystemService(UserManager.class); mUserManager = context.getSystemService(UserManager.class);
mUserCaps = UserCapabilities.create(context); mUserCaps = UserCapabilities.create(context);
mDefaultGuestRestrictions = mUserManager.getDefaultGuestRestrictions();
mDefaultGuestRestrictions.putBoolean(UserManager.DISALLOW_SMS, true);
} }
@Override @Override
@@ -55,13 +52,16 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll
@Override @Override
public boolean isChecked() { public boolean isChecked() {
return !mDefaultGuestRestrictions.getBoolean(UserManager.DISALLOW_OUTGOING_CALLS, false); return !mUserManager.getDefaultGuestRestrictions()
.getBoolean(UserManager.DISALLOW_OUTGOING_CALLS, false);
} }
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
mDefaultGuestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, !isChecked); Bundle guestRestrictions = mUserManager.getDefaultGuestRestrictions();
mUserManager.setDefaultGuestRestrictions(mDefaultGuestRestrictions); guestRestrictions.putBoolean(UserManager.DISALLOW_SMS, true);
guestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, !isChecked);
mUserManager.setDefaultGuestRestrictions(guestRestrictions);
return true; return true;
} }
@@ -74,7 +74,7 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll
public void updateState(Preference preference) { public void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
mUserCaps.updateAddUserCapabilities(mContext); mUserCaps.updateAddUserCapabilities(mContext);
preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled && mContext preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled
.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)); && mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY));
} }
} }

View File

@@ -18,12 +18,14 @@ package com.android.settings.users;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assume.assumeTrue;
import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserManager; import android.os.UserManager;
@@ -103,6 +105,8 @@ public class GuestTelephonyPreferenceControllerTest {
@Test @Test
public void updateState_Admin_shouldDisplayPreference() { public void updateState_Admin_shouldDisplayPreference() {
assumeTrue("Device does not have telephony feature ",
mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY));
SystemProperties.set("fw.max_users", Long.toBinaryString(4)); SystemProperties.set("fw.max_users", Long.toBinaryString(4));
mDpm.setDeviceOwner(null); mDpm.setDeviceOwner(null);
mUserManager.setIsAdminUser(true); mUserManager.setIsAdminUser(true);