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

Commit 626456cd authored by Joanne Chung's avatar Joanne Chung
Browse files

Include GentleUpdateHelper state in dumpsys

Add this information in dumpsys can help to figure out the pending
checks status.

Bug: 280721983
Test: atest InstallConstraintsTest
Test: dumpsys package
Change-Id: Iadeba29c42a5b342fb26980447b36a4087803923
parent f3475fcf
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.os.SystemProperties;
import android.text.format.DateUtils;
import android.util.Slog;

import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Preconditions;

import java.util.ArrayDeque;
@@ -111,6 +112,25 @@ public class GentleUpdateHelper {
            long timeout = mFinishTime - SystemClock.elapsedRealtime();
            return Math.max(timeout, 0);
        }

        void dump(IndentingPrintWriter pw) {
            pw.printPair("packageNames", packageNames);
            pw.println();
            pw.printPair("finishTime", mFinishTime);
            pw.println();
            pw.printPair("constraints notInCallRequired", constraints.isNotInCallRequired());
            pw.println();
            pw.printPair("constraints deviceIdleRequired", constraints.isDeviceIdleRequired());
            pw.println();
            pw.printPair("constraints appNotForegroundRequired",
                    constraints.isAppNotForegroundRequired());
            pw.println();
            pw.printPair("constraints appNotInteractingRequired",
                    constraints.isAppNotInteractingRequired());
            pw.println();
            pw.printPair("constraints appNotTopVisibleRequired",
                    constraints.isAppNotTopVisibleRequired());
        }
    }

    private final Context mContext;
@@ -288,4 +308,24 @@ public class GentleUpdateHelper {
        } catch (RemoteException ignore) {
        }
    }

    void dump(IndentingPrintWriter pw) {
        pw.println("Gentle update with constraints info:");
        pw.increaseIndent();
        pw.printPair("hasPendingIdleJob", mHasPendingIdleJob);
        pw.println();
        pw.printPair("Num of PendingIdleFutures", mPendingIdleFutures.size());
        pw.println();
        ArrayDeque<PendingInstallConstraintsCheck> pendingChecks = mPendingChecks.clone();
        int size = pendingChecks.size();
        pw.printPair("Num of PendingChecks", size);
        pw.println();
        pw.increaseIndent();
        for (int i = 0; i < size; i++) {
            pw.print(i); pw.print(":");
            PendingInstallConstraintsCheck pendingInstallConstraintsCheck = pendingChecks.remove();
            pendingInstallConstraintsCheck.dump(pw);
            pw.println();
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -1820,6 +1820,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
            pw.decreaseIndent();
        }
        mSilentUpdatePolicy.dump(pw);
        mGentleUpdateHelper.dump(pw);
    }

    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)