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

Commit dfba4194 authored by Michal Karpinski's avatar Michal Karpinski Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Log various information about non-foreground activity starts" into pi-dev

parents 2df4d93b 3eab9512
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -10509,6 +10509,15 @@ public final class Settings {
         */
        public static final String ACTIVITY_MANAGER_CONSTANTS = "activity_manager_constants";
        /**
         * Feature flag to enable or disable the activity starts logging feature.
         * Type: int (0 for false, 1 for true)
         * Default: 0
         * @hide
         */
        public static final String ACTIVITY_STARTS_LOGGING_ENABLED
                = "activity_starts_logging_enabled";
        /**
         * App ops specific settings.
         * This is encoded as a key=value list, separated by commas. Ex:
+1 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ public class SettingsBackupTest {
    private static final Set<String> BACKUP_BLACKLISTED_GLOBAL_SETTINGS =
            newHashSet(
                    Settings.Global.ACTIVITY_MANAGER_CONSTANTS,
                    Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED,
                    Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
                    Settings.Global.ADB_ENABLED,
                    Settings.Global.ADD_USERS_WHEN_LOCKED,
+299 −0
Original line number Diff line number Diff line
@@ -6130,6 +6130,305 @@ message MetricsEvent {
    // CATEGORY: NOTIFICATION
    NOTIFICATION_INTERRUPTION = 1501;

    // OPEN: Settings
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_HOMEPAGE = 1502;

    // OPEN: Settings > Create shortcut(widget)
    // CATEGORY: SETTINGS
    // OS: Q
    SETTINGS_CREATE_SHORTCUT = 1503;

    // ACTION: Authenticate using fingerprint
    // CATEGORY: SETTINGS
    // OS: Q
    ACTION_FACE_AUTH = 1504;

    // ACTION: Add fingerprint > Enroll fingerprint
    // CATEGORY: SETTINGS
    // OS: Q
    ACTION_FACE_ENROLL = 1505;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_INTRO = 1506;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_ENROLLING = 1507;

    // OPEN: Face Enroll introduction
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_FINISHED = 1508;

    // OPEN: Face Enroll sidecar
    // CATEGORY: SETTINGS
    // OS: Q
    FACE_ENROLL_SIDECAR = 1509;

    // OPEN: Settings > Add face > Error dialog
    // OS: Q
    DIALOG_FACE_ERROR = 1510;

    // OPEN: Settings > Security > Face
    // CATEGORY: SETTINGS
    // OS: Q
    FACE = 1511;

    // OPEN: Settings > Acessibility > HearingAid pairing instructions dialog
    // CATEGORY: SETTINGS
    // OS: Q
    DIALOG_ACCESSIBILITY_HEARINGAID = 1512;

    // ACTION: Activity start
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    ACTION_ACTIVITY_START = 1513;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID = 1514;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling package name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_PACKAGE_NAME = 1515;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID_PROC_STATE = 1516;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Calling UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1517;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID = 1518;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID_PROC_STATE = 1519;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Real calling UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_REAL_CALLING_UID_HAS_ANY_VISIBLE_WINDOW = 1520;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID = 1521;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID package name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_PACKAGE_NAME = 1522;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID_PROC_STATE = 1523;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target UID has any visible window
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_UID_HAS_ANY_VISIBLE_WINDOW = 1524;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target doze whitelist tag
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_WHITELIST_TAG = 1525;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Target short component name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_TARGET_SHORT_COMPONENT_NAME = 1526;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Coming from pending intent
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_COMING_FROM_PENDING_INTENT = 1527;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Intent action
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_INTENT_ACTION = 1528;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record process name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_PROCESS_NAME = 1529;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record current proc state
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_CUR_PROC_STATE = 1530;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has client activities
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_CLIENT_ACTIVITIES = 1531;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has foreground services
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_FOREGROUND_SERVICES = 1532;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has foreground activities
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_FOREGROUND_ACTIVITIES = 1533;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has top UI
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_TOP_UI = 1534;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record has overlay UI
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_HAS_OVERLAY_UI = 1535;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Caller app process record pending UI clean
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_PENDING_UI_CLEAN = 1536;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record last interaction event
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_LAST_INTERACTION_EVENT = 1537;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record fg interaction
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_FG_INTERACTION = 1538;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since caller app's process record last became unimportant
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_PROCESS_RECORD_MILLIS_SINCE_UNIMPORTANT = 1539;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record launch mode
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_LAUNCH_MODE = 1540;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record target activity
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_TARGET_ACTIVITY = 1541;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record flags
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_FLAGS = 1542;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record real activity
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_REAL_ACTIVITY = 1543;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record short component name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_SHORT_COMPONENT_NAME = 1544;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record process name
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_PROCESS_NAME = 1545;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is fullscreen
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_FULLSCREEN = 1546;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is no display
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_NO_DISPLAY = 1547;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since activity was last visible
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_VISIBLE = 1548;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record's resultTo packageName
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_RESULT_TO_PKG_NAME = 1549;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record's resultTo shortComponentName
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_RESULT_TO_SHORT_COMPONENT_NAME = 1550;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is visible
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_VISIBLE = 1551;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Activity record is visible ignoring keyguard
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_IS_VISIBLE_IGNORING_KEYGUARD = 1552;

    // Tagged data for ACTION_ACTIVITY_START.
    // FIELD: Millis since activity's last launch
    // CATEGORY: OTHER
    // OS: Q (will also ship in PQ1A)
    FIELD_ACTIVITY_RECORD_MILLIS_SINCE_LAST_LAUNCH = 1553;

    // ---- End Q Constants, all Q constants go above this line ----

    // Add new aosp constants above this line.
+24 −3
Original line number Diff line number Diff line
@@ -207,6 +207,10 @@ final class ActivityManagerConstants extends ContentObserver {
    // Indicates if the processes need to be started asynchronously.
    public boolean FLAG_PROCESS_START_ASYNC = DEFAULT_PROCESS_START_ASYNC;

    // Indicates whether the activity starts logging is enabled.
    // Controlled by Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED
    boolean mFlagActivityStartsLoggingEnabled;

    private final ActivityManagerService mService;
    private ContentResolver mResolver;
    private final KeyValueListParser mParser = new KeyValueListParser(',');
@@ -235,6 +239,12 @@ final class ActivityManagerConstants extends ContentObserver {
    // memory trimming.
    public int CUR_TRIM_CACHED_PROCESSES;

    private static final Uri ACTIVITY_MANAGER_CONSTANTS_URI = Settings.Global.getUriFor(
                Settings.Global.ACTIVITY_MANAGER_CONSTANTS);

    private static final Uri ACTIVITY_STARTS_LOGGING_ENABLED_URI = Settings.Global.getUriFor(
                Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED);

    public ActivityManagerConstants(ActivityManagerService service, Handler handler) {
        super(handler);
        mService = service;
@@ -243,9 +253,10 @@ final class ActivityManagerConstants extends ContentObserver {

    public void start(ContentResolver resolver) {
        mResolver = resolver;
        mResolver.registerContentObserver(Settings.Global.getUriFor(
                Settings.Global.ACTIVITY_MANAGER_CONSTANTS), false, this);
        mResolver.registerContentObserver(ACTIVITY_MANAGER_CONSTANTS_URI, false, this);
        mResolver.registerContentObserver(ACTIVITY_STARTS_LOGGING_ENABLED_URI, false, this);
        updateConstants();
        updateActivityStartsLoggingEnabled();
    }

    public void setOverrideMaxCachedProcesses(int value) {
@@ -263,7 +274,12 @@ final class ActivityManagerConstants extends ContentObserver {

    @Override
    public void onChange(boolean selfChange, Uri uri) {
        if (uri == null) return;
        if (ACTIVITY_MANAGER_CONSTANTS_URI.equals(uri)) {
            updateConstants();
        } else if (ACTIVITY_STARTS_LOGGING_ENABLED_URI.equals(uri)) {
            updateActivityStartsLoggingEnabled();
        }
    }

    private void updateConstants() {
@@ -337,6 +353,11 @@ final class ActivityManagerConstants extends ContentObserver {
        }
    }

    private void updateActivityStartsLoggingEnabled() {
        mFlagActivityStartsLoggingEnabled = Settings.Global.getInt(mResolver,
                Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED, 0) == 1;
    }

    private void updateMaxCachedProcesses() {
        CUR_MAX_CACHED_PROCESSES = mOverrideMaxCachedProcesses < 0
                ? MAX_CACHED_PROCESSES : mOverrideMaxCachedProcesses;
+16 −2
Original line number Diff line number Diff line
@@ -5591,7 +5591,7 @@ public class ActivityManagerService extends IActivityManager.Stub
        // TODO: Switch to user app stacks here.
        int ret = mActivityStartController.startActivities(caller, -1, callingPackage,
                intents, resolvedTypes, resultTo, SafeActivityOptions.fromBundle(bOptions), userId,
                reason);
                reason, null /* originatingPendingIntent */);
        return ret;
    }
@@ -11065,6 +11065,20 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
    }
    /**
     * @return whitelist tag for a uid from mPendingTempWhitelist, null if not currently on
     * the whitelist
     */
    String getPendingTempWhitelistTagForUidLocked(int uid) {
        final PendingTempWhitelist ptw = mPendingTempWhitelist.get(uid);
        return ptw != null ? ptw.tag : null;
    }
    @VisibleForTesting
    boolean isActivityStartsLoggingEnabled() {
        return mConstants.mFlagActivityStartsLoggingEnabled;
    }
    @Override
    public void moveStackToDisplay(int stackId, int displayId) {
        enforceCallingPermission(INTERNAL_SYSTEM_WINDOW, "moveStackToDisplay()");
@@ -26517,7 +26531,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                        packageUid, packageName,
                        intents, resolvedTypes, null /* resultTo */,
                        SafeActivityOptions.fromBundle(bOptions), userId,
                        false /* validateIncomingUser */);
                        false /* validateIncomingUser */, null /* originatingPendingIntent */);
            }
        }
Loading