diff --git a/src/com/android/settings/users/AutoSyncWorkDataPreferenceController.java b/src/com/android/settings/users/AutoSyncWorkDataPreferenceController.java index 19701954708..5e8ad2cf9d8 100644 --- a/src/com/android/settings/users/AutoSyncWorkDataPreferenceController.java +++ b/src/com/android/settings/users/AutoSyncWorkDataPreferenceController.java @@ -17,6 +17,7 @@ package com.android.settings.users; import android.app.Fragment; import android.content.Context; +import android.os.UserHandle; import com.android.settings.Utils; @@ -34,4 +35,10 @@ public class AutoSyncWorkDataPreferenceController extends AutoSyncPersonalDataPr public String getPreferenceKey() { return KEY_AUTO_SYNC_WORK_ACCOUNT; } + + @Override + public boolean isAvailable() { + return mUserHandle != null && !mUserManager.isManagedProfile() && !mUserManager.isLinkedUser() + && mUserManager.getProfiles(UserHandle.myUserId()).size() > 1; + } } diff --git a/tests/robotests/src/com/android/settings/users/AutoSyncWorkDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AutoSyncWorkDataPreferenceControllerTest.java index 19f37324190..22dae3758e0 100644 --- a/tests/robotests/src/com/android/settings/users/AutoSyncWorkDataPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/users/AutoSyncWorkDataPreferenceControllerTest.java @@ -91,6 +91,21 @@ public class AutoSyncWorkDataPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + @Test + public void checkIsAvailable_null_workProfileUserHandle_shouldNotDisplay() { + when(mUserManager.isManagedProfile()).thenReturn(false); + when(mUserManager.isLinkedUser()).thenReturn(false); + + final List infos = new ArrayList<>(); + infos.add(new UserInfo(UserHandle.USER_SYSTEM, "user 1", 0 /* flags */)); + infos.add(new UserInfo(999, "xspace", 800010)); + when(mUserManager.getProfiles(eq(UserHandle.USER_SYSTEM))).thenReturn(infos); + mController = new AutoSyncWorkDataPreferenceController(mContext, mFragment); + + assertThat(mController.mUserHandle).isEqualTo(null); + assertThat(mController.isAvailable()).isFalse(); + } + @Test public void multipleProfile_shouldInitWithWorkProfileUserHandle() { when(mUserManager.isManagedProfile()).thenReturn(false);