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

Commit 3e376ab5 authored by Hui Yu's avatar Hui Yu
Browse files

Revert "Add isUidActiveOrForeground() for camera/audio to use."

Revert "Add isUidActiveOrForeground for camera/audio to use."

Revert submission 10829580-isUidForeground

Reason for revert: In CameraService.cpp, before this change, around "am.isUidActive", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at "mAppOpsManager->startOpNoThrow" call, for the same reason as uid is not updated fast enough, "mAppOpsManager->startOpNoThrow" could also fail.

This CL does not really fix the root cause, but it changes the timing and now the code fails at "mAppOpsManager->startOpNoThrow" call.

Also the timing change may also cause recent multiple CTS test failures.

Bug: 154570809, 155032617, 154849083


Reverted Changes:
Iffed63293:Add isUidActiveOrForeground() for camera/audio to ...
I3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...
I51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...

Change-Id: I07cbf45949d14489404cb304c80c9ba4276ebe63
parent 9b52815e
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -99,7 +99,6 @@ 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.
+0 −21
Original line number Diff line number Diff line
@@ -8779,27 +8779,6 @@ 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);