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

Commit b31624d4 authored by Prabal Singh's avatar Prabal Singh
Browse files

Hide work policy info if safety center is enabled

Fix: b/241747812
Test: Manually
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=WorkPolicyInfoPreferenceControllerTest

Change-Id: I23d68dd80d91ec9df80dd2542355ecc964583d39
parent 9f195e63
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.safetycenter.SafetyCenterManagerWrapper;


public class WorkPolicyInfoPreferenceController extends BasePreferenceController {

@@ -37,7 +39,12 @@ public class WorkPolicyInfoPreferenceController extends BasePreferenceController

    @Override
    public int getAvailabilityStatus() {
        return mEnterpriseProvider.hasWorkPolicyInfo() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
        // Your Work policy info will be shown in the Safety Center.
        // No need to show it in the privacy settings.
        return !SafetyCenterManagerWrapper.get().isEnabled(mContext)
                && mEnterpriseProvider.hasWorkPolicyInfo()
                ? AVAILABLE
                : UNSUPPORTED_ON_DEVICE;
    }

    @Override
+12 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_

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

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -30,6 +31,7 @@ import android.content.Context;
import androidx.preference.Preference;

import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory;

import org.junit.Before;
@@ -52,6 +54,7 @@ public class WorkPolicyInfoPreferenceControllerTest {
        mContext = RuntimeEnvironment.application;
        mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
        mEnterpriseProvider = mFakeFeatureFactory.getEnterprisePrivacyFeatureProvider(mContext);
        SafetyCenterManagerWrapper.sInstance = mock(SafetyCenterManagerWrapper.class);
    }

    @Test
@@ -72,6 +75,15 @@ public class WorkPolicyInfoPreferenceControllerTest {
        assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    public void getAvailabilityStatus_safetyCenterEnabled_shouldReturnUnsupported() {
        when(SafetyCenterManagerWrapper.get().isEnabled(mContext)).thenReturn(true);
        WorkPolicyInfoPreferenceController controller =
                new WorkPolicyInfoPreferenceController(mContext, "test_key");

        assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
    }

    @Test
    public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() {
        when(mEnterpriseProvider.hasWorkPolicyInfo()).thenReturn(true);