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

Commit ef29ba8e authored by Hui Yu's avatar Hui Yu Committed by Automerger Merge Worker
Browse files

Merge "Add isUidActiveOrForeground() for camera/audio to use." into rvc-dev am: 56e3510b

Change-Id: Ide055a8320099b072356a457cc09b255a581e642
parents c07c1cd9 56e3510b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ interface IActivityManager {
    void unregisterUidObserver(in IUidObserver observer);
    boolean isUidActive(int uid, String callingPackage);
    int getUidProcessState(int uid, in String callingPackage);
    boolean isUidActiveOrForeground(int uid, String callingPackage);
    // =============== End of transactions used on native side as well ============================

    // Special low-level communication with activity manager.
+21 −0
Original line number Diff line number Diff line
@@ -8779,6 +8779,27 @@ public class ActivityManagerService extends IActivityManager.Stub
        return uidRecord != null && !uidRecord.setIdle;
    }
    @Override
    public boolean isUidActiveOrForeground(int uid, String callingPackage) {
        if (!hasUsageStatsPermission(callingPackage)) {
            enforceCallingPermission(android.Manifest.permission.PACKAGE_USAGE_STATS,
                    "isUidActiveOrForeground");
        }
        synchronized (this) {
            final boolean isActive = isUidActiveLocked(uid);
            if (isActive) {
                return true;
            }
        }
        final boolean isForeground = mAtmInternal.isUidForeground(uid);
        if (isForeground) {
            Slog.wtf(TAG, "isUidActiveOrForeground: isUidActive false but "
                    + " isUidForeground true, uid:" + uid
                    + " callingPackage:" + callingPackage);
        }
        return isForeground;
    }
    @Override
    public void setPersistentVrThread(int tid) {
        mActivityTaskManager.setPersistentVrThread(tid);