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

Commit 1e3e539c authored by Jonathan Scott's avatar Jonathan Scott
Browse files

Add missing Settings constants.

Test: Build
Fixes: 226183482
Change-Id: Ibf4e9c5067eed564e025231a00c3919461773675
parent a756b843
Loading
Loading
Loading
Loading
+56 −1
Original line number Diff line number Diff line
@@ -1173,7 +1173,62 @@ public final class DevicePolicyResources {
            /**
             * Header for items under the personal user
             */
            public static final String PERSONAL_CATEGORY_HEADER = PREFIX + "category_personal";
            public static final String PERSONAL_CATEGORY_HEADER = PREFIX + "CATEGORY_PERSONAL";

            /**
             * Text to indicate work notification content will be shown on the lockscreen.
             */
            public static final String LOCK_SCREEN_SHOW_WORK_NOTIFICATION_CONTENT =
                    PREFIX + "LOCK_SCREEN_SHOW_WORK_NOTIFICATION_CONTENT";

            /**
             * Text to indicate work notification content will be shown on the lockscreen.
             */
            public static final String LOCK_SCREEN_HIDE_WORK_NOTIFICATION_CONTENT =
                    PREFIX + "LOCK_SCREEN_HIDE_WORK_NOTIFICATION_CONTENT";

            /**
             * Text for toggle to enable auto-sycing personal data
             */
            public static final String AUTO_SYNC_PERSONAL_DATA = PREFIX
                    + "AUTO_SYNC_PERSONAL_DATA";

            /**
             * Text for toggle to enable auto-sycing work data
             */
            public static final String AUTO_SYNC_WORK_DATA = PREFIX
                    + "AUTO_SYNC_WORK_DATA";

            /**
             * Summary for "More security settings" section when a work profile is on the device.
             */
            public static final String MORE_SECURITY_SETTINGS_WORK_PROFILE_SUMMARY = PREFIX
                    + "MORE_SECURITY_SETTINGS_WORK_PROFILE_SUMMARY";

            /**
             * Title for screen asking the user to choose a type of screen lock (such as a pattern,
             * PIN, or password) that they need to enter to use their work apps
             */
            public static final String LOCK_SETTINGS_NEW_PROFILE_LOCK_TITLE = PREFIX
                    + "LOCK_SETTINGS_NEW_PROFILE_LOCK_TITLE";

            /**
             * Title for section listing information that can be seen by organization
             */
            public static final String INFORMATION_SEEN_BY_ORGANIZATION_TITLE = PREFIX
                    + "information_seen_by_organization_title";

            /**
             * Title for section listing changes made by the organization.
             */
            public static final String CHANGES_BY_ORGANIZATION_TITLE =
                    PREFIX + "CHANGES_BY_ORGANIZATION_TITLE";

            /**
             * Footer for enterprise privacy screen.
             */
            public static final String ENTERPRISE_PRIVACY_FOOTER =
                    PREFIX + "ENTERPRISE_PRIVACY_FOOTER";
        }

        /**
+43 −0
Original line number Diff line number Diff line
package com.android.settingslib.core;

import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;

import androidx.annotation.RequiresApi;
import androidx.core.os.BuildCompat;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
@@ -16,9 +20,12 @@ public abstract class AbstractPreferenceController {
    private static final String TAG = "AbstractPrefController";

    protected final Context mContext;
    private final DevicePolicyManager mDevicePolicyManager;

    public AbstractPreferenceController(Context context) {
        mContext = context;
        mDevicePolicyManager =
                (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
    }

    /**
@@ -102,4 +109,40 @@ public abstract class AbstractPreferenceController {
    public CharSequence getSummary() {
        return null;
    }

    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
    protected void replaceEnterpriseStringTitle(PreferenceScreen screen,
            String preferenceKey, String overrideKey, int resource) {
        if (!BuildCompat.isAtLeastT() || mDevicePolicyManager == null) {
            return;
        }

        Preference preference = screen.findPreference(preferenceKey);
        if (preference == null) {
            Log.d(TAG, "Could not find enterprise preference " + preferenceKey);
            return;
        }

        preference.setTitle(
                mDevicePolicyManager.getResources().getString(overrideKey,
                        () -> mContext.getString(resource)));
    }

    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
    protected void replaceEnterpriseStringSummary(
            PreferenceScreen screen, String preferenceKey, String overrideKey, int resource) {
        if (!BuildCompat.isAtLeastT() || mDevicePolicyManager == null) {
            return;
        }

        Preference preference = screen.findPreference(preferenceKey);
        if (preference == null) {
            Log.d(TAG, "Could not find enterprise preference " + preferenceKey);
            return;
        }

        preference.setSummary(
                mDevicePolicyManager.getResources().getString(overrideKey,
                        () -> mContext.getString(resource)));
    }
}
+14 −3
Original line number Diff line number Diff line
@@ -16,12 +16,16 @@

package com.android.settingslib;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyResourcesManager;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
@@ -30,7 +34,6 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -45,6 +48,10 @@ public class RestrictedPreferenceHelperTest {
    @Mock
    private Preference mPreference;
    @Mock
    private DevicePolicyManager mDevicePolicyManager;
    @Mock
    private DevicePolicyResourcesManager mDevicePolicyResourcesManager;
    @Mock
    private RestrictedTopLevelPreference mRestrictedTopLevelPreference;

    private PreferenceViewHolder mViewHolder;
@@ -53,18 +60,22 @@ public class RestrictedPreferenceHelperTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        doReturn(mDevicePolicyResourcesManager).when(mDevicePolicyManager)
                .getResources();
        doReturn(mDevicePolicyManager).when(mContext)
                .getSystemService(DevicePolicyManager.class);
        mViewHolder = PreferenceViewHolder.createInstanceForTests(mock(View.class));
        mHelper = new RestrictedPreferenceHelper(mContext, mPreference, null);
    }

    @Test
    @Ignore
    public void bindPreference_disabled_shouldDisplayDisabledSummary() {
        final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS);
        when(mViewHolder.itemView.findViewById(android.R.id.summary))
                .thenReturn(summaryView);
        when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text))
                .thenReturn("test");
        when(mDevicePolicyResourcesManager.getString(any(), any())).thenReturn("test");

        mHelper.useAdminDisabledSummary(true);
        mHelper.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin());
@@ -75,13 +86,13 @@ public class RestrictedPreferenceHelperTest {
    }

    @Test
    @Ignore
    public void bindPreference_notDisabled_shouldNotHideSummary() {
        final TextView summaryView = mock(TextView.class, RETURNS_DEEP_STUBS);
        when(mViewHolder.itemView.findViewById(android.R.id.summary))
                .thenReturn(summaryView);
        when(summaryView.getContext().getText(R.string.disabled_by_admin_summary_text))
                .thenReturn("test");
        when(mDevicePolicyResourcesManager.getString(any(), any())).thenReturn("test");
        when(summaryView.getText()).thenReturn("test");

        mHelper.useAdminDisabledSummary(true);