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

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

am 8361a9f7: am 1a1a7c08: am 06a441de: Merge "Pass along the user id to...

am 8361a9f7: am 1a1a7c08: am 06a441de: Merge "Pass along the user id to AttributeCache requests" into jb-mr2-dev

* commit '8361a9f7':
  Pass along the user id to AttributeCache requests
parents a73ac4b6 8361a9f7
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.UserHandle;
import android.util.SparseArray;

import java.util.HashMap;
@@ -94,7 +95,7 @@ public final class AttributeCache {
        }
    }
    
    public Entry get(String packageName, int resId, int[] styleable) {
    public Entry get(String packageName, int resId, int[] styleable, int userId) {
        synchronized (this) {
            Package pkg = mPackages.get(packageName);
            HashMap<int[], Entry> map = null;
@@ -110,7 +111,8 @@ public final class AttributeCache {
            } else {
                Context context;
                try {
                    context = mContext.createPackageContext(packageName, 0);
                    context = mContext.createPackageContextAsUser(packageName, 0,
                            new UserHandle(userId));
                    if (context == null) {
                        return null;
                    }
+1 −1
Original line number Diff line number Diff line
@@ -432,7 +432,7 @@ final class ActivityRecord {
            launchMode = aInfo.launchMode;

            AttributeCache.Entry ent = AttributeCache.instance().get(packageName,
                    realTheme, com.android.internal.R.styleable.Window);
                    realTheme, com.android.internal.R.styleable.Window, userId);
            fullscreen = ent != null && !ent.array.getBoolean(
                    com.android.internal.R.styleable.Window_windowIsFloating, false)
                    && !ent.array.getBoolean(
+8 −2
Original line number Diff line number Diff line
@@ -147,6 +147,8 @@ public class AppTransition implements Dump {
    private final Interpolator mDecelerateInterpolator;
    private final Interpolator mThumbnailFadeoutInterpolator;

    private int mCurrentUserId = 0;

    AppTransition(Context context, Handler h) {
        mContext = context;
        mH = h;
@@ -259,7 +261,7 @@ public class AppTransition implements Dump {
            if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: picked package="
                    + packageName);
            return AttributeCache.instance().get(packageName, resId,
                    com.android.internal.R.styleable.WindowAnimation);
                    com.android.internal.R.styleable.WindowAnimation, mCurrentUserId);
        }
        return null;
    }
@@ -274,7 +276,7 @@ public class AppTransition implements Dump {
            if (DEBUG_ANIM) Slog.v(TAG, "Loading animations: picked package="
                    + packageName);
            return AttributeCache.instance().get(packageName, resId,
                    com.android.internal.R.styleable.WindowAnimation);
                    com.android.internal.R.styleable.WindowAnimation, mCurrentUserId);
        }
        return null;
    }
@@ -758,4 +760,8 @@ public class AppTransition implements Dump {
            pw.println(mNextAppTransitionCallback);
        }
    }

    public void setCurrentUser(int newUserId) {
        mCurrentUserId = newUserId;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -4048,7 +4048,7 @@ public class WindowManagerService extends IWindowManager.Stub
                    + Integer.toHexString(theme));
            if (theme != 0) {
                AttributeCache.Entry ent = AttributeCache.instance().get(pkg, theme,
                        com.android.internal.R.styleable.Window);
                        com.android.internal.R.styleable.Window, mCurrentUserId);
                if (ent == null) {
                    // Whoops!  App doesn't exist.  Um.  Okay.  We'll just
                    // pretend like we didn't see that.
@@ -5171,6 +5171,7 @@ public class WindowManagerService extends IWindowManager.Stub
        synchronized (mWindowMap) {
            int oldUserId = mCurrentUserId;
            mCurrentUserId = newUserId;
            mAppTransition.setCurrentUser(newUserId);
            mPolicy.setCurrentUserLw(newUserId);

            // Hide windows that should not be seen by the new user.