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

Commit 53783740 authored by Wale Ogunwale's avatar Wale Ogunwale
Browse files

Moved more stuff from ActivityManagerService to ActivityTaskManagerService (15/n)

- Moved CompatModePackages to ActivityTaskManagerService since it is mostly used for activity stuff.
- Moved mHeavyWeightProcess to ActivityTaskManagerService since it is set for activities.
- Set AMS.mBooting and AMS.mBooted as volatile to allow setting from both AM and WM side with hold locks.
- Allow updating of cpu stats, usage stats, and foreground time from WM side.

Bug: 80414790
Test: Existing tests pass.
Change-Id: I48ab55bdd5aacc864cb6a82d19d1a24b7605a5b0
parent 6c054d11
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -776,7 +776,7 @@ public class ActivityManager {
    /** @hide */
    public int getPackageScreenCompatMode(String packageName) {
        try {
            return getService().getPackageScreenCompatMode(packageName);
            return getTaskService().getPackageScreenCompatMode(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -785,7 +785,7 @@ public class ActivityManager {
    /** @hide */
    public void setPackageScreenCompatMode(String packageName, int mode) {
        try {
            getService().setPackageScreenCompatMode(packageName, mode);
            getTaskService().setPackageScreenCompatMode(packageName, mode);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -794,7 +794,7 @@ public class ActivityManager {
    /** @hide */
    public boolean getPackageAskScreenCompat(String packageName) {
        try {
            return getService().getPackageAskScreenCompat(packageName);
            return getTaskService().getPackageAskScreenCompat(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
@@ -803,7 +803,7 @@ public class ActivityManager {
    /** @hide */
    public void setPackageAskScreenCompat(String packageName, boolean ask) {
        try {
            getService().setPackageAskScreenCompat(packageName, ask);
            getTaskService().setPackageAskScreenCompat(packageName, ask);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+12 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.app;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.ComponentName;
import android.content.IIntentSender;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -183,12 +184,6 @@ public abstract class ActivityManagerInternal {
    /** Trims memory usage in the system by removing/stopping unused application processes. */
    public abstract void trimApplications();

    /** Returns the screen compatibility mode for the given application. */
    public abstract int getPackageScreenCompatMode(ApplicationInfo ai);

    /** Sets the screen compatibility mode for the given application. */
    public abstract void setPackageScreenCompatMode(ApplicationInfo ai, int mode);

    /** Closes all system dialogs. */
    public abstract void closeSystemDialogs(String reason);

@@ -201,6 +196,11 @@ public abstract class ActivityManagerInternal {
    public abstract boolean hasRunningActivity(int uid, @Nullable String packageName);

    public abstract void updateOomAdj();
    public abstract void updateCpuStats();
    public abstract void updateUsageStats(
            ComponentName activity, int uid, int userId, boolean resumed);
    public abstract void updateForegroundTimeIfOnBattery(
            String packageName, int uid, long cpuTimeDiff);
    public abstract void sendForegroundProfileChanged(int userId);

    /**
@@ -226,4 +226,10 @@ public abstract class ActivityManagerInternal {

    /** Gets the task id for a given activity. */
    public abstract int getTaskIdForActivity(@NonNull IBinder token, boolean onlyRoot);

    public abstract void setBooting(boolean booting);
    public abstract boolean isBooting();
    public abstract void setBooted(boolean booted);
    public abstract boolean isBooted();
    public abstract void finishBooting();
}
+0 −3
Original line number Diff line number Diff line
@@ -248,10 +248,7 @@ interface IActivityManager {
            boolean runGc, in String path, in ParcelFileDescriptor fd,
            in RemoteCallback finishCallback);
    boolean isUserRunning(int userid, int flags);
    int getPackageScreenCompatMode(in String packageName);
    void setPackageScreenCompatMode(in String packageName, int mode);
    boolean getPackageAskScreenCompat(in String packageName);
    void setPackageAskScreenCompat(in String packageName, boolean ask);
    boolean switchUser(int userid);
    boolean removeTask(int taskId);
    void registerProcessObserver(in IProcessObserver observer);
+5 −0
Original line number Diff line number Diff line
@@ -422,4 +422,9 @@ interface IActivityTaskManager {
    void resumeAppSwitches();
    void setActivityController(in IActivityController watcher, boolean imAMonkey);
    void setVoiceKeepAwake(in IVoiceInteractionSession session, boolean keepAwake);

    int getPackageScreenCompatMode(in String packageName);
    void setPackageScreenCompatMode(in String packageName, int mode);
    boolean getPackageAskScreenCompat(in String packageName);
    void setPackageAskScreenCompat(in String packageName, boolean ask);
}
+1 −1
Original line number Diff line number Diff line
@@ -2490,7 +2490,7 @@ public final class ActiveServices {
                                 PackageManager.NOTIFY_PACKAGE_USE_SERVICE);
            app.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_SERVICE);
            app.thread.scheduleCreateService(r, r.serviceInfo,
                    mAm.compatibilityInfoForPackageLocked(r.serviceInfo.applicationInfo),
                    mAm.compatibilityInfoForPackage(r.serviceInfo.applicationInfo),
                    app.getReportedProcState());
            r.postNotification();
            created = true;
Loading