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

Commit fa296fa6 authored by Jatin Matani's avatar Jatin Matani Committed by Android (Google) Code Review
Browse files

Merge "Move ManagedProfileUtils to overridable"

parents e02d4831 cb27c4fe
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -16,24 +16,11 @@

package com.android.inputmethod.latin.utils;

import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;

import com.android.inputmethod.annotations.UsedForTesting;

import java.util.List;

/**
 * Utility for determining if the device has managed profiles.
 */
public class ManagedProfileUtils {
    private static final boolean DEBUG = false;
    private static final String TAG = ManagedProfileUtils.class.getSimpleName();

    private static ManagedProfileUtils INSTANCE = new ManagedProfileUtils();
    private static ManagedProfileUtils sTestInstance;

@@ -50,33 +37,7 @@ public class ManagedProfileUtils {
        return sTestInstance == null ? INSTANCE : sTestInstance;
    }

    /**
     * Note that {@link UserManager#getUserProfiles} has been introduced
     * in API level 21 (Build.VERSION_CODES.LOLLIPOP).
     */
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public boolean hasManagedWorkProfile(final Context context) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            return false;
        }

        final UserManager userManagerService =
                (UserManager) context.getSystemService(Context.USER_SERVICE);
        if (userManagerService != null) {
            if (DEBUG) {
                Log.d(TAG, "Detecting managed profile...");
            }
            final List<UserHandle> userProfiles = userManagerService.getUserProfiles();
            if (userProfiles.size() > 1) {
                if (DEBUG) {
                    Log.d(TAG, "More than one user profile => Managed profile exists.");
                }
                return true;
            }
        }
        if (DEBUG) {
            Log.d(TAG, "Managed profile not detected.");
        }
    public boolean hasWorkProfile(final Context context) {
        return false;
    }
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -132,7 +132,7 @@ public final class AccountsSettingsFragment extends SubScreenFragment {

        @Override
        protected Void doInBackground(Void... params) {
            if (ManagedProfileUtils.getInstance().hasManagedWorkProfile(mFragment.getActivity())) {
            if (ManagedProfileUtils.getInstance().hasWorkProfile(mFragment.getActivity())) {
                mFragment.removeSyncPreferences();
            } else {
                mFragment.enableSyncPreferences();
+3 −3
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ public class AccountsSettingsFragmentTests
    }

    public void testMultipleAccounts_noSettingsForManagedProfile() {
        when(mManagedProfileUtils.hasManagedWorkProfile(any(Context.class))).thenReturn(true);
        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(true);

        final AccountsSettingsFragment fragment =
                (AccountsSettingsFragment) getActivity().mFragment;
@@ -97,7 +97,7 @@ public class AccountsSettingsFragmentTests
    }

    public void testMultipleAccounts_noCurrentAccount() {
        when(mManagedProfileUtils.hasManagedWorkProfile(any(Context.class))).thenReturn(false);
        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);

        final AccountsSettingsFragment fragment =
                (AccountsSettingsFragment) getActivity().mFragment;
@@ -118,7 +118,7 @@ public class AccountsSettingsFragmentTests
    }

    public void testMultipleAccounts_currentAccount() {
        when(mManagedProfileUtils.hasManagedWorkProfile(any(Context.class))).thenReturn(false);
        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);

        final AccountsSettingsFragment fragment =
                (AccountsSettingsFragment) getActivity().mFragment;