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

Commit a9a24372 authored by Salud Lemus's avatar Salud Lemus
Browse files

Update Managed Device Info text for a financed device

Bug: 183448705
Test: Used a test device that is registered via ZT
Test: m RunSettingsRoboTests ROBOTEST_FILTER=EnterprisePrivacyPreferenceControllerTest

Change-Id: Iea2567e7943b122c6c6d2772380f8ddd57066a3f
parent 88cd3dae
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@
 */
package com.android.settings.enterprise;

import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED;

import android.app.admin.DevicePolicyManager;
import android.content.Context;

import androidx.preference.Preference;
@@ -39,6 +42,10 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
        if (preference == null) {
            return;
        }
        if (isFinancedDevice()) {
            preference.setTitle(R.string.financed_privacy_settings);
        }

        final String organizationName = mFeatureProvider.getDeviceOwnerOrganizationName();
        if (organizationName == null) {
            preference.setSummary(R.string.enterprise_privacy_settings_summary_generic);
@@ -57,4 +64,10 @@ public class EnterprisePrivacyPreferenceController extends AbstractPreferenceCon
    public String getPreferenceKey() {
        return KEY_ENTERPRISE_PRIVACY;
    }

    private boolean isFinancedDevice() {
        final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
        return dpm.isDeviceManaged() && dpm.getDeviceOwnerType(
                dpm.getDeviceOwnerComponentOnAnyUser()) == DEVICE_OWNER_TYPE_FINANCED;
    }
}
+37 −0
Original line number Diff line number Diff line
@@ -16,10 +16,15 @@

package com.android.settings.enterprise;

import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_DEFAULT;
import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_FINANCED;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.when;

import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;

import androidx.preference.Preference;
@@ -42,9 +47,14 @@ public class EnterprisePrivacyPreferenceControllerTest {
    private static final String MANAGED_WITH_NAME = "managed by Foo, Inc.";
    private static final String MANAGING_ORGANIZATION = "Foo, Inc.";
    private static final String KEY_ENTERPRISE_PRIVACY = "enterprise_privacy";
    private static final String FINANCED_PREFERENCE_TITLE = "Financed device info";
    private static final ComponentName DEVICE_OWNER_COMPONENT =
            new ComponentName("com.android.foo", "bar");

    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private Context mContext;
    @Mock
    private DevicePolicyManager mDevicePolicyManager;
    private FakeFeatureFactory mFeatureFactory;

    private EnterprisePrivacyPreferenceController mController;
@@ -54,6 +64,14 @@ public class EnterprisePrivacyPreferenceControllerTest {
        MockitoAnnotations.initMocks(this);
        mFeatureFactory = FakeFeatureFactory.setupForTest();
        mController = new EnterprisePrivacyPreferenceController(mContext);

        when((Object) mContext.getSystemService(DevicePolicyManager.class))
                .thenReturn(mDevicePolicyManager);
        when(mDevicePolicyManager.isDeviceManaged()).thenReturn(true);
        when(mDevicePolicyManager.getDeviceOwnerComponentOnAnyUser())
                .thenReturn(DEVICE_OWNER_COMPONENT);
        when(mDevicePolicyManager.getDeviceOwnerType(DEVICE_OWNER_COMPONENT))
                .thenReturn(DEVICE_OWNER_TYPE_DEFAULT);
    }

    @Test
@@ -76,6 +94,25 @@ public class EnterprisePrivacyPreferenceControllerTest {
        assertThat(preference.getSummary()).isEqualTo(MANAGED_WITH_NAME);
    }

    @Test
    public void testUpdateState_verifyPreferenceTitleIsUpdatedForFinancedDevice() {
        final Preference preference = new Preference(mContext, null, 0, 0);
        when(mContext.getResources().getString(
                R.string.enterprise_privacy_settings_summary_with_name, MANAGING_ORGANIZATION))
                .thenReturn(MANAGED_WITH_NAME);
        when(mContext.getString(R.string.financed_privacy_settings))
                .thenReturn(FINANCED_PREFERENCE_TITLE);
        when(mFeatureFactory.enterprisePrivacyFeatureProvider.getDeviceOwnerOrganizationName())
                .thenReturn(MANAGING_ORGANIZATION);
        when(mDevicePolicyManager.getDeviceOwnerType(DEVICE_OWNER_COMPONENT))
                .thenReturn(DEVICE_OWNER_TYPE_FINANCED);

        mController.updateState(preference);

        assertThat(preference.getTitle()).isEqualTo(FINANCED_PREFERENCE_TITLE);
        assertThat(preference.getSummary()).isEqualTo(MANAGED_WITH_NAME);
    }

    @Test
    public void testIsAvailable() {
        when(mFeatureFactory.enterprisePrivacyFeatureProvider.hasDeviceOwner()).thenReturn(false);