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

Commit dda851ce authored by Amith Yamasani's avatar Amith Yamasani Committed by Android Git Automerger
Browse files

am 7871b629: am f83d2d6f: Merge "User Manager service to manage users and...

am 7871b629: am f83d2d6f: Merge "User Manager service to manage users and query user details" into jb-mr1-dev

* commit '7871b629':
  User Manager service to manage users and query user details
parents 467aa0d7 7871b629
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -139,6 +139,7 @@ LOCAL_SRC_FILES += \
	core/java/android/os/IRemoteCallback.aidl \
	core/java/android/os/ISchedulingPolicyService.aidl \
	core/java/android/os/IUpdateLock.aidl \
        core/java/android/os/IUserManager.aidl \
	core/java/android/os/IVibratorService.aidl \
	core/java/android/service/dreams/IDreamManager.aidl \
	core/java/android/service/dreams/IDreamService.aidl \
+6 −0
Original line number Diff line number Diff line
@@ -5386,6 +5386,7 @@ package android.content {
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
    field public static final java.lang.String USB_SERVICE = "usb";
    field public static final java.lang.String USER_SERVICE = "user";
    field public static final java.lang.String VIBRATOR_SERVICE = "vibrator";
    field public static final java.lang.String WALLPAPER_SERVICE = "wallpaper";
    field public static final java.lang.String WIFI_P2P_SERVICE = "wifip2p";
@@ -16448,6 +16449,11 @@ package android.os {
    ctor public TransactionTooLargeException();
  }
  public class UserManager {
    method public java.lang.String getUserName();
    method public boolean supportsMultipleUsers();
  }
  public abstract class Vibrator {
    method public abstract void cancel();
    method public abstract boolean hasVibrator();
+8 −3
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import com.android.internal.content.PackageHelper;

import android.app.ActivityManagerNative;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.ContainerEncryptionParams;
import android.content.pm.FeatureInfo;
@@ -39,9 +40,11 @@ import android.content.res.AssetManager;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Binder;
import android.os.IUserManager;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager;

import java.io.File;
import java.lang.reflect.Field;
@@ -59,6 +62,7 @@ import javax.crypto.spec.SecretKeySpec;

public final class Pm {
    IPackageManager mPm;
    IUserManager mUm;

    private WeakHashMap<String, Resources> mResourceCache
            = new WeakHashMap<String, Resources>();
@@ -82,6 +86,7 @@ public final class Pm {
            return;
        }

        mUm = IUserManager.Stub.asInterface(ServiceManager.getService("user"));
        mPm = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
        if (mPm == null) {
            System.err.println(PM_NOT_RUNNING_ERR);
@@ -985,7 +990,7 @@ public final class Pm {
        }
        name = arg;
        try {
            if (mPm.createUser(name, 0) == null) {
            if (mUm.createUser(name, 0) == null) {
                System.err.println("Error: couldn't create User.");
                showUsage();
            }
@@ -1017,7 +1022,7 @@ public final class Pm {
            return;
        }
        try {
            if (!mPm.removeUser(userId)) {
            if (!mUm.removeUser(userId)) {
                System.err.println("Error: couldn't remove user.");
                showUsage();
            }
@@ -1034,7 +1039,7 @@ public final class Pm {
            return;
        }
        try {
            List<UserInfo> users = mPm.getUsers();
            List<UserInfo> users = mUm.getUsers();
            if (users == null) {
                System.err.println("Error: couldn't get users");
            } else {
+10 −6
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import android.os.Message;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserId;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
@@ -92,6 +93,7 @@ public class AccountManagerService
    private final Context mContext;

    private final PackageManager mPackageManager;
    private UserManager mUserManager;

    private HandlerThread mMessageThread;
    private final MessageHandler mMessageHandler;
@@ -245,6 +247,13 @@ public class AccountManagerService
        initUser(0);
    }

    private UserManager getUserManager() {
        if (mUserManager == null) {
            mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
        }
        return mUserManager;
    }

    private UserAccounts initUser(int userId) {
        synchronized (mUsers) {
            UserAccounts accounts = mUsers.get(userId);
@@ -382,12 +391,7 @@ public class AccountManagerService
    }

    private List<UserInfo> getAllUsers() {
        try {
            return AppGlobals.getPackageManager().getUsers();
        } catch (RemoteException re) {
            // Local to system process, shouldn't happen
        }
        return null;
        return getUserManager().getUsers();
    }

    public void onServiceChanged(AuthenticatorDescription desc, boolean removed) {
+1 −75
Original line number Diff line number Diff line
@@ -41,8 +41,8 @@ import android.content.pm.PermissionInfo;
import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.content.pm.ManifestDigest;
import android.content.pm.UserInfo;
import android.content.pm.VerifierDeviceIdentity;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
@@ -1182,80 +1182,6 @@ final class ApplicationPackageManager extends PackageManager {
        return PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
    }

    // Multi-user support

    /**
     * @hide
     */
    @Override
    public UserInfo createUser(String name, int flags) {
        try {
            return mPM.createUser(name, flags);
        } catch (RemoteException e) {
            // Should never happen!
        }
        return null;
    }

    /**
     * @hide
     */
    @Override
    public List<UserInfo> getUsers() {
        try {
            return mPM.getUsers();
        } catch (RemoteException re) {
            ArrayList<UserInfo> users = new ArrayList<UserInfo>();
            UserInfo primary = new UserInfo(0, "Root!", null,
                    UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY);
            users.add(primary);
            return users;
        }
    }

    /**
     * @hide
     */
    @Override
    public UserInfo getUser(int userId) {
        try {
            return mPM.getUser(userId);
        } catch (RemoteException re) {
            return null;
        }
    }

    /**
     * @hide
     */
    @Override
    public boolean removeUser(int id) {
        try {
            return mPM.removeUser(id);
        } catch (RemoteException e) {
            return false;
        }
    }

    /**
     * @hide
     */
    @Override
    public void setUserName(int id, String name) {
        try {
            mPM.setUserName(id, name);
        } catch (RemoteException re) {
        }
    }

    /**
     * @hide
     */
    @Override
    public void updateUserFlags(int id, int flags) {
        // TODO:
    }

    /**
     * @hide
     */
Loading