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

Commit cdd628e6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix NPE in AutoSyncWorkDataPreferenceController"

parents f94ff6ce 6cdb0786
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.accounts;

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;
    }
}
+15 −0
Original line number Diff line number Diff line
@@ -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<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);