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

Commit 59387d8d authored by Alex Johnston's avatar Alex Johnston Committed by Automerger Merge Worker
Browse files

Merge "Remove device ownership text in quick settings" into sc-dev am: c8dffffc

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14353378

Change-Id: I7458621bf28989e47647c6f68d8bd05d92125288
parents 2cf1e784 c8dffffc
Loading
Loading
Loading
Loading
+15 −19
Original line number Diff line number Diff line
@@ -190,6 +190,16 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
                || vpnName != null || vpnNameWorkProfile != null
                || isProfileOwnerOfOrganizationOwnedDevice || isParentalControlsEnabled
                || (hasWorkProfile && isNetworkLoggingEnabled);
        // Update the view to be untappable if the device is an organization-owned device with a
        // managed profile and there is no policy set which requires a privacy disclosure.
        if (mIsVisible && isProfileOwnerOfOrganizationOwnedDevice && !isNetworkLoggingEnabled
                && !hasCACertsInWorkProfile && vpnNameWorkProfile == null) {
            mRootView.setClickable(false);
            mRootView.findViewById(R.id.footer_icon).setVisibility(View.GONE);
        } else {
            mRootView.setClickable(true);
            mRootView.findViewById(R.id.footer_icon).setVisibility(View.VISIBLE);
        }
        // Update the string
        mFooterTextContent = getFooterText(isDeviceManaged, hasWorkProfile,
                hasCACerts, hasCACertsInWorkProfile, isNetworkLoggingEnabled, vpnName,
@@ -345,20 +355,15 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen

    private View createOrganizationDialogView() {
        final boolean isDeviceManaged = mSecurityController.isDeviceManaged();
        boolean isProfileOwnerOfOrganizationOwnedDevice =
                mSecurityController.isProfileOwnerOfOrganizationOwnedDevice();
        final boolean hasWorkProfile = mSecurityController.hasWorkProfile();
        final CharSequence deviceOwnerOrganization =
                mSecurityController.getDeviceOwnerOrganizationName();
        final CharSequence workProfileOrganizationName =
                mSecurityController.getWorkProfileOrganizationName();
        final boolean hasCACerts = mSecurityController.hasCACertInCurrentUser();
        final boolean hasCACertsInWorkProfile = mSecurityController.hasCACertInWorkProfile();
        final boolean isNetworkLoggingEnabled = mSecurityController.isNetworkLoggingEnabled();
        final String vpnName = mSecurityController.getPrimaryVpnName();
        final String vpnNameWorkProfile = mSecurityController.getWorkProfileVpnName();


        View dialogView = LayoutInflater.from(mContext)
                .inflate(R.layout.quick_settings_footer_dialog, null, false);

@@ -368,8 +373,7 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
        deviceManagementSubtitle.setText(getManagementTitle(deviceOwnerOrganization));

        CharSequence managementMessage = getManagementMessage(isDeviceManaged,
                deviceOwnerOrganization, isProfileOwnerOfOrganizationOwnedDevice,
                workProfileOrganizationName);
                deviceOwnerOrganization);
        if (managementMessage == null) {
            dialogView.findViewById(R.id.device_management_disclosures).setVisibility(View.GONE);
        } else {
@@ -377,12 +381,8 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
            TextView deviceManagementWarning =
                    (TextView) dialogView.findViewById(R.id.device_management_warning);
            deviceManagementWarning.setText(managementMessage);
            // Don't show the policies button for profile owner of org owned device, because there
            // is no policies settings screen for it
            if (!isProfileOwnerOfOrganizationOwnedDevice) {
            mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getSettingsButton(), this);
        }
        }

        // ca certificate section
        CharSequence caCertsMessage = getCaCertsMessage(isDeviceManaged, hasCACerts,
@@ -496,12 +496,11 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
    }

    protected CharSequence getManagementMessage(boolean isDeviceManaged,
            CharSequence organizationName, boolean isProfileOwnerOfOrganizationOwnedDevice,
            CharSequence workProfileOrganizationName) {
        if (!isDeviceManaged && !isProfileOwnerOfOrganizationOwnedDevice) {
            CharSequence organizationName) {
        if (!isDeviceManaged) {
            return null;
        }
        if (isDeviceManaged && organizationName != null) {
        if (organizationName != null) {
            if (isFinancedDevice()) {
                return mContext.getString(R.string.monitoring_financed_description_named_management,
                        organizationName, organizationName);
@@ -509,9 +508,6 @@ class QSSecurityFooter implements OnClickListener, DialogInterface.OnClickListen
                return mContext.getString(
                        R.string.monitoring_description_named_management, organizationName);
            }
        } else if (isProfileOwnerOfOrganizationOwnedDevice && workProfileOrganizationName != null) {
            return mContext.getString(
                    R.string.monitoring_description_named_management, workProfileOrganizationName);
        }
        return mContext.getString(R.string.monitoring_description_management);
    }
+28 −32
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -188,6 +189,29 @@ public class QSSecurityFooterTest extends SysuiTestCase {
        assertEquals(View.GONE, mRootView.getVisibility());
    }

    @Test
    public void testUntappableView_profileOwnerOfOrgOwnedDevice() {
        when(mSecurityController.isProfileOwnerOfOrganizationOwnedDevice()).thenReturn(true);

        mFooter.refreshState();

        TestableLooper.get(this).processAllMessages();
        assertFalse(mRootView.isClickable());
        assertEquals(View.GONE, mRootView.findViewById(R.id.footer_icon).getVisibility());
    }

    @Test
    public void testTappableView_profileOwnerOfOrgOwnedDevice_networkLoggingEnabled() {
        when(mSecurityController.isProfileOwnerOfOrganizationOwnedDevice()).thenReturn(true);
        when(mSecurityController.isNetworkLoggingEnabled()).thenReturn(true);

        mFooter.refreshState();

        TestableLooper.get(this).processAllMessages();
        assertTrue(mRootView.isClickable());
        assertEquals(View.VISIBLE, mRootView.findViewById(R.id.footer_icon).getVisibility());
    }

    @Test
    public void testNetworkLoggingEnabled_deviceOwner() {
        when(mSecurityController.isDeviceManaged()).thenReturn(true);
@@ -435,10 +459,7 @@ public class QSSecurityFooterTest extends SysuiTestCase {
    @Test
    public void testGetManagementMessage_noManagement() {
        assertEquals(null, mFooter.getManagementMessage(
                /* isDeviceManaged= */ false,
                MANAGING_ORGANIZATION,
                /* isProfileOwnerOfOrganizationOwnedDevice= */ false,
                MANAGING_ORGANIZATION));
                /* isDeviceManaged= */ false, MANAGING_ORGANIZATION));
    }

    @Test
@@ -446,16 +467,11 @@ public class QSSecurityFooterTest extends SysuiTestCase {
        assertEquals(mContext.getString(R.string.monitoring_description_named_management,
                                        MANAGING_ORGANIZATION),
                     mFooter.getManagementMessage(
                             /* isDeviceManaged= */ true,
                             MANAGING_ORGANIZATION,
                             /* isProfileOwnerOfOrganizationOwnedDevice= */ false,
                             /* workProfileOrganizationName= */ null));
                             /* isDeviceManaged= */ true, MANAGING_ORGANIZATION));
        assertEquals(mContext.getString(R.string.monitoring_description_management),
                     mFooter.getManagementMessage(
                             /* isDeviceManaged= */ true,
                             /* organizationName= */ null,
                             /* isProfileOwnerOfOrganizationOwnedDevice= */ false,
                             /* workProfileOrganizationName= */ null));
                             /* organizationName= */ null));
    }

    @Test
@@ -467,27 +483,7 @@ public class QSSecurityFooterTest extends SysuiTestCase {
        assertEquals(mContext.getString(R.string.monitoring_financed_description_named_management,
                MANAGING_ORGANIZATION, MANAGING_ORGANIZATION),
                mFooter.getManagementMessage(
                        /* isDeviceManaged= */ true,
                        MANAGING_ORGANIZATION,
                        /* isProfileOwnerOfOrganizationOwnedDevice= */ false,
                        /* workProfileOrganizationName= */ null));
    }

    @Test
    public void testGetManagementMessage_profileOwnerOfOrganizationOwnedDevice() {
        assertEquals(mContext.getString(R.string.monitoring_description_named_management,
                MANAGING_ORGANIZATION),
                mFooter.getManagementMessage(
                        /* isDeviceManaged= */ false,
                        /* organizationName= */ null,
                        /* isProfileOwnerOfOrganizationOwnedDevice= */ true,
                        MANAGING_ORGANIZATION));
        assertEquals(mContext.getString(R.string.monitoring_description_management),
                mFooter.getManagementMessage(
                        /* isDeviceManaged= */ false,
                        /* organizationName= */ null,
                        /* isProfileOwnerOfOrganizationOwnedDevice= */ true,
                        /* workProfileOrganizationName= */ null));
                        /* isDeviceManaged= */ true, MANAGING_ORGANIZATION));
    }

    @Test