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

Commit 0e6bfff6 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Add per-user versions of set{Component,Application}EnabledSetting.

Change-Id: Id63b233308e92a4c360f38d4728c519ac2131ff0
Fixes: 30230444
parent cd74b305
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -2080,8 +2080,14 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public void setComponentEnabledSetting(ComponentName componentName,
                                           int newState, int flags) {
        setComponentEnabledSettingAsUser(componentName, newState, flags, mContext.getUserId());
    }

    @Override
    public void setComponentEnabledSettingAsUser(ComponentName componentName,
            int newState, int flags, int userId) {
        try {
            mPM.setComponentEnabledSetting(componentName, newState, flags, mContext.getUserId());
            mPM.setComponentEnabledSetting(componentName, newState, flags, userId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -2099,9 +2105,16 @@ public class ApplicationPackageManager extends PackageManager {
    @Override
    public void setApplicationEnabledSetting(String packageName,
                                             int newState, int flags) {
        setApplicationEnabledSettingAsUser(packageName, newState, flags,
                mContext.getUserId());
    }

    @Override
    public void setApplicationEnabledSettingAsUser(String packageName,
            int newState, int flags, int userId) {
        try {
            mPM.setApplicationEnabledSetting(packageName, newState, flags,
                    mContext.getUserId(), mContext.getOpPackageName());
                    userId, mContext.getOpPackageName());
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+16 −0
Original line number Diff line number Diff line
@@ -5380,6 +5380,14 @@ public abstract class PackageManager {
    public abstract void setComponentEnabledSetting(ComponentName componentName,
            int newState, int flags);

    /**
     * Per-user version of {@link #setComponentEnabledSetting(ComponentName, int, int)}
     *
     * @hide
     */
    public abstract void setComponentEnabledSettingAsUser(ComponentName componentName,
            int newState, int flags, int userId);

    /**
     * Return the enabled setting for a package component (activity,
     * receiver, service, provider).  This returns the last value set by
@@ -5418,6 +5426,14 @@ public abstract class PackageManager {
    public abstract void setApplicationEnabledSetting(String packageName,
            int newState, int flags);

    /**
     * Per-user version of {@link #setApplicationEnabledSetting(String, int, int)}
     *
     * @hide
     */
    public abstract void setApplicationEnabledSettingAsUser(String packageName,
            int newState, int flags, int userId);

    /**
     * Return the enabled setting for an application. This returns
     * the last value set by
+7 −13
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.app.ActivityManagerNative;
import android.app.AppGlobals;
import android.app.IActivityManager;
import android.app.IStopUserCallback;
import android.app.KeyguardManager;
@@ -38,7 +37,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.UserInfo;
@@ -2930,17 +2928,13 @@ public class UserManagerService extends IUserManager.Stub {
            if (!TextUtils.isEmpty(demoLauncher)) {
                ComponentName componentToEnable = ComponentName.unflattenFromString(demoLauncher);
                String demoLauncherPkg = componentToEnable.getPackageName();
                try {
                    final IPackageManager iPm = AppGlobals.getPackageManager();
                    iPm.setComponentEnabledSetting(componentToEnable,
                final PackageManager pm = mContext.getPackageManager();
                pm.setComponentEnabledSettingAsUser(componentToEnable,
                        PackageManager.COMPONENT_ENABLED_STATE_ENABLED, /* flags= */ 0,
                        /* userId= */ userId);
                    iPm.setApplicationEnabledSetting(demoLauncherPkg,
                pm.setApplicationEnabledSettingAsUser(demoLauncherPkg,
                        PackageManager.COMPONENT_ENABLED_STATE_ENABLED, /* flags= */ 0,
                            /* userId= */ userId, null);
                } catch (RemoteException re) {
                    // Internal, shouldn't happen
                }
                        /* userId= */ userId);
            }
        }
    }
+14 −0
Original line number Diff line number Diff line
@@ -752,6 +752,13 @@ public class MockPackageManager extends PackageManager {
        throw new UnsupportedOperationException();
    }

    /** @hide - hidden in superclass */
    @Override
    public void setComponentEnabledSettingAsUser(ComponentName componentName,
            int newState, int flags, int userId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int getComponentEnabledSetting(ComponentName componentName) {
        throw new UnsupportedOperationException();
@@ -762,6 +769,13 @@ public class MockPackageManager extends PackageManager {
        throw new UnsupportedOperationException();
    }

    /** @hide - hidden in superclass */
    @Override
    public void setApplicationEnabledSettingAsUser(String packageName, int newState, int flags,
            int userId) {
        throw new UnsupportedOperationException();
    }

    @Override
    public int getApplicationEnabledSetting(String packageName) {
        throw new UnsupportedOperationException();
+10 −0
Original line number Diff line number Diff line
@@ -711,6 +711,11 @@ public class BridgePackageManager extends PackageManager {
    public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
    }

    @Override
    public void setComponentEnabledSettingAsUser(ComponentName componentName, int newState,
            int flags, int userId) {
    }

    @Override
    public int getComponentEnabledSetting(ComponentName componentName) {
        return 0;
@@ -720,6 +725,11 @@ public class BridgePackageManager extends PackageManager {
    public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
    }

    @Override
    public void setApplicationEnabledSettingAsUser(String packageName, int newState, int flags,
            int userId) {
    }

    @Override
    public int getApplicationEnabledSetting(String packageName) {
        return 0;