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

Commit 2dfb9141 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

UsageStats: Reduce log spam during time change

With lots of usage stats files, the log gets spammy
when the time changes and we are moving files around.

Bug:22549399
Change-Id: I9da39399b090066d52568dea6fc5b59aba063c5a
parent a0a71d8a
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.app.usage.UsageStatsManager;
import android.os.Build;
import android.util.AtomicFile;
import android.util.Slog;
import android.util.TimeUtils;

import java.io.BufferedReader;
import java.io.BufferedWriter;
@@ -277,14 +278,21 @@ class UsageStatsDatabase {

    public void onTimeChanged(long timeDiffMillis) {
        synchronized (mLock) {
            StringBuilder logBuilder = new StringBuilder();
            logBuilder.append("Time changed by ");
            TimeUtils.formatDuration(timeDiffMillis, logBuilder);
            logBuilder.append(".");

            int filesDeleted = 0;
            int filesMoved = 0;

            for (TimeSparseArray<AtomicFile> files : mSortedStatFiles) {
                final int fileCount = files.size();
                for (int i = 0; i < fileCount; i++) {
                    final AtomicFile file = files.valueAt(i);
                    final long newTime = files.keyAt(i) + timeDiffMillis;
                    if (newTime < 0) {
                        Slog.i(TAG, "Deleting file " + file.getBaseFile().getAbsolutePath()
                                + " for it is in the future now.");
                        filesDeleted++;
                        file.delete();
                    } else {
                        try {
@@ -299,14 +307,17 @@ class UsageStatsDatabase {
                        }

                        final File newFile = new File(file.getBaseFile().getParentFile(), newName);
                        Slog.i(TAG, "Moving file " + file.getBaseFile().getAbsolutePath() + " to "
                                + newFile.getAbsolutePath());
                        filesMoved++;
                        file.getBaseFile().renameTo(newFile);
                    }
                }
                files.clear();
            }

            logBuilder.append(" files deleted: ").append(filesDeleted);
            logBuilder.append(" files moved: ").append(filesMoved);
            Slog.i(TAG, logBuilder.toString());

            // Now re-index the new files.
            indexFilesLocked();
        }