diff --git a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java index 55ba0646af5..2d1d9e18564 100644 --- a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java +++ b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java @@ -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 diff --git a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java index 82444aade07..a983228255e 100644 --- a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java @@ -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);