Loading services/core/java/com/android/server/wm/ActivityMetricsLogger.java +6 −6 Original line number Diff line number Diff line Loading @@ -225,7 +225,7 @@ class ActivityMetricsLogger { private WindowingModeTransitionInfoSnapshot(WindowingModeTransitionInfo info, ActivityRecord launchedActivity, int windowsFullyDrawnDelayMs) { applicationInfo = launchedActivity.appInfo; applicationInfo = launchedActivity.info.applicationInfo; packageName = launchedActivity.packageName; launchedActivityName = launchedActivity.info.name; launchedActivityLaunchedFromPackage = launchedActivity.launchedFromPackage; Loading Loading @@ -582,7 +582,7 @@ class ActivityMetricsLogger { final WindowingModeTransitionInfo info = mWindowingModeTransitionInfo.valueAt(i); // App isn't attached to record yet, so match with info. if (info.launchedActivity.appInfo == appInfo) { if (info.launchedActivity.info.applicationInfo == appInfo) { info.bindApplicationDelayMs = calculateCurrentDelay(); } } Loading Loading @@ -649,13 +649,13 @@ class ActivityMetricsLogger { mMetricsLogger.write(builder); StatsLog.write( StatsLog.APP_START_CANCELED, info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, convertAppStartTransitionType(type), info.launchedActivity.info.name); if (DEBUG_METRICS) { Slog.i(TAG, String.format("APP_START_CANCELED(%s, %s, %s, %s)", info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, convertAppStartTransitionType(type), info.launchedActivity.info.name)); Loading Loading @@ -821,7 +821,7 @@ class ActivityMetricsLogger { mMetricsLogger.write(builder); StatsLog.write( StatsLog.APP_START_FULLY_DRAWN, info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, restoredFromBundle ? StatsLog.APP_START_FULLY_DRAWN__TYPE__WITH_BUNDLE Loading Loading @@ -961,7 +961,7 @@ class ActivityMetricsLogger { private WindowProcessController findProcessForActivity(ActivityRecord launchedActivity) { return launchedActivity != null ? mSupervisor.mService.mProcessNames.get( launchedActivity.processName, launchedActivity.appInfo.uid) launchedActivity.processName, launchedActivity.info.applicationInfo.uid) : null; } Loading services/core/java/com/android/server/wm/ActivityRecord.java +12 −15 Original line number Diff line number Diff line Loading @@ -246,8 +246,6 @@ final class ActivityRecord extends ConfigurationContainer { private static final String TAG_VISIBILITY = TAG + POSTFIX_VISIBILITY; private static final String TAG_FOCUS = TAG + POSTFIX_FOCUS; private static final boolean SHOW_ACTIVITY_START_TIME = true; private static final String ATTR_ID = "id"; private static final String TAG_INTENT = "intent"; private static final String ATTR_USERID = "user_id"; Loading @@ -263,9 +261,7 @@ final class ActivityRecord extends ConfigurationContainer { // TODO: Remove after unification AppWindowToken mAppWindowToken; final ActivityInfo info; // all about me // TODO: This is duplicated state already contained in info.applicationInfo - remove ApplicationInfo appInfo; // information about activity's app final ActivityInfo info; // activity info provided by developer in AndroidManifest final int launchedFromPid; // always the pid who started the activity. final int launchedFromUid; // always the uid who started the activity. final String launchedFromPackage; // always the package who started the activity. Loading Loading @@ -448,7 +444,8 @@ final class ActivityRecord extends ConfigurationContainer { pw.print(prefix); pw.print("taskAffinity="); pw.println(taskAffinity); pw.print(prefix); pw.print("mActivityComponent="); pw.println(mActivityComponent.flattenToShortString()); if (appInfo != null) { if (info != null && info.applicationInfo != null) { final ApplicationInfo appInfo = info.applicationInfo; pw.print(prefix); pw.print("baseDir="); pw.println(appInfo.sourceDir); if (!Objects.equals(appInfo.sourceDir, appInfo.publicSourceDir)) { pw.print(prefix); pw.print("resDir="); pw.println(appInfo.publicSourceDir); Loading Loading @@ -618,7 +615,6 @@ final class ActivityRecord extends ConfigurationContainer { } void updateApplicationInfo(ApplicationInfo aInfo) { appInfo = aInfo; info.applicationInfo = aInfo; } Loading Loading @@ -992,7 +988,6 @@ final class ActivityRecord extends ConfigurationContainer { } taskAffinity = aInfo.taskAffinity; stateNotNeeded = (aInfo.flags & FLAG_STATE_NOT_NEEDED) != 0; appInfo = aInfo.applicationInfo; nonLocalizedLabel = aInfo.nonLocalizedLabel; labelRes = aInfo.labelRes; if (nonLocalizedLabel == null && labelRes == 0) { Loading Loading @@ -1051,7 +1046,8 @@ final class ActivityRecord extends ConfigurationContainer { mRotationAnimationHint = aInfo.rotationAnimation; lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (appInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS if (info.applicationInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; } Loading Loading @@ -1121,7 +1117,8 @@ final class ActivityRecord extends ConfigurationContainer { task.voiceSession != null, container.getDisplayContent(), ActivityTaskManagerService.getInputDispatchingTimeoutLocked(this) * 1000000L, fullscreen, (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, appInfo.targetSdkVersion, (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, info.applicationInfo.targetSdkVersion, info.screenOrientation, mRotationAnimationHint, mLaunchTaskBehind, isAlwaysFocusable()); if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) { Loading Loading @@ -1290,7 +1287,7 @@ final class ActivityRecord extends ConfigurationContainer { info.resizeMode = RESIZE_MODE_UNRESIZEABLE; } } else if (mAtmService.getRecentTasks().isRecentsComponent(mActivityComponent, appInfo.uid)) { info.applicationInfo.uid)) { activityType = ACTIVITY_TYPE_RECENTS; } else if (options != null && options.getLaunchActivityType() == ACTIVITY_TYPE_ASSISTANT && canLaunchAssistActivity(launchedFromPackage)) { Loading Loading @@ -1488,7 +1485,7 @@ final class ActivityRecord extends ConfigurationContainer { */ private boolean checkEnterPictureInPictureAppOpsState() { return mAtmService.getAppOpsService().checkOperation( OP_PICTURE_IN_PICTURE, appInfo.uid, packageName) == MODE_ALLOWED; OP_PICTURE_IN_PICTURE, info.applicationInfo.uid, packageName) == MODE_ALLOWED; } boolean isAlwaysFocusable() { Loading Loading @@ -2477,8 +2474,8 @@ final class ActivityRecord extends ConfigurationContainer { if (windowFromSameProcessAsActivity) { return mAtmService.mAmInternal.inputDispatchingTimedOut(anrApp.mOwner, anrActivity.shortComponentName, anrActivity.appInfo, shortComponentName, app, false, reason); anrActivity.shortComponentName, anrActivity.info.applicationInfo, shortComponentName, app, false, reason); } else { // In this case another process added windows using this activity token. So, we call the // generic service input dispatch timed out method so that the right process is blamed. Loading Loading @@ -3368,7 +3365,7 @@ final class ActivityRecord extends ConfigurationContainer { // If a device is in VR mode, and we're transitioning into VR ui mode, add ignore ui mode // to the config change. // For O and later, apps will be required to add configChanges="uimode" to their manifest. if (appInfo.targetSdkVersion < O if (info.applicationInfo.targetSdkVersion < O && requestedVrComponent != null && onlyVrUiModeChanged) { configChanged |= CONFIG_UI_MODE; Loading services/core/java/com/android/server/wm/ActivityStack.java +1 −1 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ class ActivityStack extends ConfigurationContainer { && !topActivity.noDisplay) { // Inform the user that they are starting an app that may not work correctly in // multi-window mode. final String packageName = topActivity.appInfo.packageName; final String packageName = topActivity.info.applicationInfo.packageName; mService.getTaskChangeNotificationController().notifyActivityForcedResizable( topTask.taskId, FORCED_RESIZEABLE_REASON_SPLIT_SCREEN, packageName); } Loading services/core/java/com/android/server/wm/ActivityStackSupervisor.java +3 −3 Original line number Diff line number Diff line Loading @@ -761,10 +761,10 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { final int applicationInfoUid = (r.info.applicationInfo != null) ? r.info.applicationInfo.uid : -1; if ((r.mUserId != proc.mUserId) || (r.appInfo.uid != applicationInfoUid)) { if ((r.mUserId != proc.mUserId) || (r.info.applicationInfo.uid != applicationInfoUid)) { Slog.wtf(TAG, "User ID for activity changing for " + r + " appInfo.uid=" + r.appInfo.uid + " appInfo.uid=" + r.info.applicationInfo.uid + " info.ai.uid=" + applicationInfoUid + " old=" + r.app + " new=" + proc); } Loading Loading @@ -2462,7 +2462,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { return; } mService.getTaskChangeNotificationController().notifyActivityForcedResizable( task.taskId, reason, topActivity.appInfo.packageName); task.taskId, reason, topActivity.info.applicationInfo.packageName); } void activityRelaunchedLocked(IBinder token) { Loading services/core/java/com/android/server/wm/ActivityStarter.java +2 −1 Original line number Diff line number Diff line Loading @@ -1684,7 +1684,8 @@ class ActivityStarter { mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName, mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.mUserId); mService.getPackageManagerInternalLocked().grantEphemeralAccess( mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.appInfo.uid), mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.info.applicationInfo.uid), UserHandle.getAppId(mCallingUid)); if (newTask) { EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, mStartActivity.mUserId, Loading Loading
services/core/java/com/android/server/wm/ActivityMetricsLogger.java +6 −6 Original line number Diff line number Diff line Loading @@ -225,7 +225,7 @@ class ActivityMetricsLogger { private WindowingModeTransitionInfoSnapshot(WindowingModeTransitionInfo info, ActivityRecord launchedActivity, int windowsFullyDrawnDelayMs) { applicationInfo = launchedActivity.appInfo; applicationInfo = launchedActivity.info.applicationInfo; packageName = launchedActivity.packageName; launchedActivityName = launchedActivity.info.name; launchedActivityLaunchedFromPackage = launchedActivity.launchedFromPackage; Loading Loading @@ -582,7 +582,7 @@ class ActivityMetricsLogger { final WindowingModeTransitionInfo info = mWindowingModeTransitionInfo.valueAt(i); // App isn't attached to record yet, so match with info. if (info.launchedActivity.appInfo == appInfo) { if (info.launchedActivity.info.applicationInfo == appInfo) { info.bindApplicationDelayMs = calculateCurrentDelay(); } } Loading Loading @@ -649,13 +649,13 @@ class ActivityMetricsLogger { mMetricsLogger.write(builder); StatsLog.write( StatsLog.APP_START_CANCELED, info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, convertAppStartTransitionType(type), info.launchedActivity.info.name); if (DEBUG_METRICS) { Slog.i(TAG, String.format("APP_START_CANCELED(%s, %s, %s, %s)", info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, convertAppStartTransitionType(type), info.launchedActivity.info.name)); Loading Loading @@ -821,7 +821,7 @@ class ActivityMetricsLogger { mMetricsLogger.write(builder); StatsLog.write( StatsLog.APP_START_FULLY_DRAWN, info.launchedActivity.appInfo.uid, info.launchedActivity.info.applicationInfo.uid, info.launchedActivity.packageName, restoredFromBundle ? StatsLog.APP_START_FULLY_DRAWN__TYPE__WITH_BUNDLE Loading Loading @@ -961,7 +961,7 @@ class ActivityMetricsLogger { private WindowProcessController findProcessForActivity(ActivityRecord launchedActivity) { return launchedActivity != null ? mSupervisor.mService.mProcessNames.get( launchedActivity.processName, launchedActivity.appInfo.uid) launchedActivity.processName, launchedActivity.info.applicationInfo.uid) : null; } Loading
services/core/java/com/android/server/wm/ActivityRecord.java +12 −15 Original line number Diff line number Diff line Loading @@ -246,8 +246,6 @@ final class ActivityRecord extends ConfigurationContainer { private static final String TAG_VISIBILITY = TAG + POSTFIX_VISIBILITY; private static final String TAG_FOCUS = TAG + POSTFIX_FOCUS; private static final boolean SHOW_ACTIVITY_START_TIME = true; private static final String ATTR_ID = "id"; private static final String TAG_INTENT = "intent"; private static final String ATTR_USERID = "user_id"; Loading @@ -263,9 +261,7 @@ final class ActivityRecord extends ConfigurationContainer { // TODO: Remove after unification AppWindowToken mAppWindowToken; final ActivityInfo info; // all about me // TODO: This is duplicated state already contained in info.applicationInfo - remove ApplicationInfo appInfo; // information about activity's app final ActivityInfo info; // activity info provided by developer in AndroidManifest final int launchedFromPid; // always the pid who started the activity. final int launchedFromUid; // always the uid who started the activity. final String launchedFromPackage; // always the package who started the activity. Loading Loading @@ -448,7 +444,8 @@ final class ActivityRecord extends ConfigurationContainer { pw.print(prefix); pw.print("taskAffinity="); pw.println(taskAffinity); pw.print(prefix); pw.print("mActivityComponent="); pw.println(mActivityComponent.flattenToShortString()); if (appInfo != null) { if (info != null && info.applicationInfo != null) { final ApplicationInfo appInfo = info.applicationInfo; pw.print(prefix); pw.print("baseDir="); pw.println(appInfo.sourceDir); if (!Objects.equals(appInfo.sourceDir, appInfo.publicSourceDir)) { pw.print(prefix); pw.print("resDir="); pw.println(appInfo.publicSourceDir); Loading Loading @@ -618,7 +615,6 @@ final class ActivityRecord extends ConfigurationContainer { } void updateApplicationInfo(ApplicationInfo aInfo) { appInfo = aInfo; info.applicationInfo = aInfo; } Loading Loading @@ -992,7 +988,6 @@ final class ActivityRecord extends ConfigurationContainer { } taskAffinity = aInfo.taskAffinity; stateNotNeeded = (aInfo.flags & FLAG_STATE_NOT_NEEDED) != 0; appInfo = aInfo.applicationInfo; nonLocalizedLabel = aInfo.nonLocalizedLabel; labelRes = aInfo.labelRes; if (nonLocalizedLabel == null && labelRes == 0) { Loading Loading @@ -1051,7 +1046,8 @@ final class ActivityRecord extends ConfigurationContainer { mRotationAnimationHint = aInfo.rotationAnimation; lockTaskLaunchMode = aInfo.lockTaskLaunchMode; if (appInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS if (info.applicationInfo.isPrivilegedApp() && (lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_ALWAYS || lockTaskLaunchMode == LOCK_TASK_LAUNCH_MODE_NEVER)) { lockTaskLaunchMode = LOCK_TASK_LAUNCH_MODE_DEFAULT; } Loading Loading @@ -1121,7 +1117,8 @@ final class ActivityRecord extends ConfigurationContainer { task.voiceSession != null, container.getDisplayContent(), ActivityTaskManagerService.getInputDispatchingTimeoutLocked(this) * 1000000L, fullscreen, (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, appInfo.targetSdkVersion, (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0, info.applicationInfo.targetSdkVersion, info.screenOrientation, mRotationAnimationHint, mLaunchTaskBehind, isAlwaysFocusable()); if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) { Loading Loading @@ -1290,7 +1287,7 @@ final class ActivityRecord extends ConfigurationContainer { info.resizeMode = RESIZE_MODE_UNRESIZEABLE; } } else if (mAtmService.getRecentTasks().isRecentsComponent(mActivityComponent, appInfo.uid)) { info.applicationInfo.uid)) { activityType = ACTIVITY_TYPE_RECENTS; } else if (options != null && options.getLaunchActivityType() == ACTIVITY_TYPE_ASSISTANT && canLaunchAssistActivity(launchedFromPackage)) { Loading Loading @@ -1488,7 +1485,7 @@ final class ActivityRecord extends ConfigurationContainer { */ private boolean checkEnterPictureInPictureAppOpsState() { return mAtmService.getAppOpsService().checkOperation( OP_PICTURE_IN_PICTURE, appInfo.uid, packageName) == MODE_ALLOWED; OP_PICTURE_IN_PICTURE, info.applicationInfo.uid, packageName) == MODE_ALLOWED; } boolean isAlwaysFocusable() { Loading Loading @@ -2477,8 +2474,8 @@ final class ActivityRecord extends ConfigurationContainer { if (windowFromSameProcessAsActivity) { return mAtmService.mAmInternal.inputDispatchingTimedOut(anrApp.mOwner, anrActivity.shortComponentName, anrActivity.appInfo, shortComponentName, app, false, reason); anrActivity.shortComponentName, anrActivity.info.applicationInfo, shortComponentName, app, false, reason); } else { // In this case another process added windows using this activity token. So, we call the // generic service input dispatch timed out method so that the right process is blamed. Loading Loading @@ -3368,7 +3365,7 @@ final class ActivityRecord extends ConfigurationContainer { // If a device is in VR mode, and we're transitioning into VR ui mode, add ignore ui mode // to the config change. // For O and later, apps will be required to add configChanges="uimode" to their manifest. if (appInfo.targetSdkVersion < O if (info.applicationInfo.targetSdkVersion < O && requestedVrComponent != null && onlyVrUiModeChanged) { configChanged |= CONFIG_UI_MODE; Loading
services/core/java/com/android/server/wm/ActivityStack.java +1 −1 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ class ActivityStack extends ConfigurationContainer { && !topActivity.noDisplay) { // Inform the user that they are starting an app that may not work correctly in // multi-window mode. final String packageName = topActivity.appInfo.packageName; final String packageName = topActivity.info.applicationInfo.packageName; mService.getTaskChangeNotificationController().notifyActivityForcedResizable( topTask.taskId, FORCED_RESIZEABLE_REASON_SPLIT_SCREEN, packageName); } Loading
services/core/java/com/android/server/wm/ActivityStackSupervisor.java +3 −3 Original line number Diff line number Diff line Loading @@ -761,10 +761,10 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { final int applicationInfoUid = (r.info.applicationInfo != null) ? r.info.applicationInfo.uid : -1; if ((r.mUserId != proc.mUserId) || (r.appInfo.uid != applicationInfoUid)) { if ((r.mUserId != proc.mUserId) || (r.info.applicationInfo.uid != applicationInfoUid)) { Slog.wtf(TAG, "User ID for activity changing for " + r + " appInfo.uid=" + r.appInfo.uid + " appInfo.uid=" + r.info.applicationInfo.uid + " info.ai.uid=" + applicationInfoUid + " old=" + r.app + " new=" + proc); } Loading Loading @@ -2462,7 +2462,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { return; } mService.getTaskChangeNotificationController().notifyActivityForcedResizable( task.taskId, reason, topActivity.appInfo.packageName); task.taskId, reason, topActivity.info.applicationInfo.packageName); } void activityRelaunchedLocked(IBinder token) { Loading
services/core/java/com/android/server/wm/ActivityStarter.java +2 −1 Original line number Diff line number Diff line Loading @@ -1684,7 +1684,8 @@ class ActivityStarter { mService.mUgmInternal.grantUriPermissionFromIntent(mCallingUid, mStartActivity.packageName, mIntent, mStartActivity.getUriPermissionsLocked(), mStartActivity.mUserId); mService.getPackageManagerInternalLocked().grantEphemeralAccess( mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.appInfo.uid), mStartActivity.mUserId, mIntent, UserHandle.getAppId(mStartActivity.info.applicationInfo.uid), UserHandle.getAppId(mCallingUid)); if (newTask) { EventLog.writeEvent(EventLogTags.AM_CREATE_TASK, mStartActivity.mUserId, Loading