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

Commit cb27c4fe authored by Jatin Matani's avatar Jatin Matani
Browse files

Move ManagedProfileUtils to overridable

Bug:19532354
Change-Id: I50b3ae11b6e58f07b482353b624b1a7a73eadc99
parent 13271bfd
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;