Merge "Fix NPE in AutoSyncWorkDataPreferenceController"
diff --git a/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java b/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java
index acf43aa..712dbb7 100644
--- a/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java
+++ b/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceController.java
@@ -17,6 +17,7 @@
import android.app.Fragment;
import android.content.Context;
+import android.os.UserHandle;
import com.android.settings.Utils;
@@ -34,4 +35,10 @@
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/accounts/AutoSyncWorkDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceControllerTest.java
index a25aa28..4857120 100644
--- a/tests/robotests/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AutoSyncWorkDataPreferenceControllerTest.java
@@ -92,6 +92,21 @@
}
@Test
+ public void checkIsAvailable_null_workProfileUserHandle_shouldNotDisplay() {
+ when(mUserManager.isManagedProfile()).thenReturn(false);
+ when(mUserManager.isLinkedUser()).thenReturn(false);
+
+ final List<UserInfo> 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);
when(mUserManager.isLinkedUser()).thenReturn(false);