Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b88bad67 authored by Tetiana Meronyk's avatar Tetiana Meronyk
Browse files

Fix "Allow guest to use telephony" toggle not updating its value

Bug: 283004333
Test: atest GuestTelephonyPreferenceControllerTest
Change-Id: I2f13a989bbe6a925c0e88350dbc215f6f188fe17
parent 5d207a7b
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -34,14 +34,11 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll

    private final UserManager mUserManager;
    private final UserCapabilities mUserCaps;
    private Bundle mDefaultGuestRestrictions;

    public GuestTelephonyPreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mUserManager = context.getSystemService(UserManager.class);
        mUserCaps = UserCapabilities.create(context);
        mDefaultGuestRestrictions = mUserManager.getDefaultGuestRestrictions();
        mDefaultGuestRestrictions.putBoolean(UserManager.DISALLOW_SMS, true);
    }

    @Override
@@ -55,13 +52,16 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll

    @Override
    public boolean isChecked() {
        return !mDefaultGuestRestrictions.getBoolean(UserManager.DISALLOW_OUTGOING_CALLS, false);
        return !mUserManager.getDefaultGuestRestrictions()
                .getBoolean(UserManager.DISALLOW_OUTGOING_CALLS, false);
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        mDefaultGuestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, !isChecked);
        mUserManager.setDefaultGuestRestrictions(mDefaultGuestRestrictions);
        Bundle guestRestrictions = mUserManager.getDefaultGuestRestrictions();
        guestRestrictions.putBoolean(UserManager.DISALLOW_SMS, true);
        guestRestrictions.putBoolean(UserManager.DISALLOW_OUTGOING_CALLS, !isChecked);
        mUserManager.setDefaultGuestRestrictions(guestRestrictions);
        return true;
    }

@@ -74,7 +74,7 @@ public class GuestTelephonyPreferenceController extends TogglePreferenceControll
    public void updateState(Preference preference) {
        super.updateState(preference);
        mUserCaps.updateAddUserCapabilities(mContext);
        preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled && mContext
                .getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY));
        preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled
                && mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY));
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -18,12 +18,14 @@ package com.android.settings.users;

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.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.pm.PackageManager;
import android.os.SystemProperties;
import android.os.UserManager;

@@ -103,6 +105,8 @@ public class GuestTelephonyPreferenceControllerTest {

    @Test
    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));
        mDpm.setDeviceOwner(null);
        mUserManager.setIsAdminUser(true);