Loading services/java/com/android/server/AttributeCache.java +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; } Loading services/java/com/android/server/am/ActivityRecord.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading services/java/com/android/server/wm/AppTransition.java +8 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -758,4 +760,8 @@ public class AppTransition implements Dump { pw.println(mNextAppTransitionCallback); } } public void setCurrentUser(int newUserId) { mCurrentUserId = newUserId; } } services/java/com/android/server/wm/WindowManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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. Loading Loading
services/java/com/android/server/AttributeCache.java +4 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; } Loading
services/java/com/android/server/am/ActivityRecord.java +1 −1 Original line number Diff line number Diff line Loading @@ -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( Loading
services/java/com/android/server/wm/AppTransition.java +8 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; } Loading @@ -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; } Loading Loading @@ -758,4 +760,8 @@ public class AppTransition implements Dump { pw.println(mNextAppTransitionCallback); } } public void setCurrentUser(int newUserId) { mCurrentUserId = newUserId; } }
services/java/com/android/server/wm/WindowManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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. Loading