diff options
| author | 2022-05-19 15:31:07 +0000 | |
|---|---|---|
| committer | 2022-05-19 15:31:07 +0000 | |
| commit | a0bc85de6b118a3b1a510c47d66fe69bb5ba2970 (patch) | |
| tree | 02e4377c311876f3718277c0112b92ac245a56c8 | |
| parent | 75572e6a80ca3ad053f6e490048764ce846e66d0 (diff) | |
| parent | 4ce5244ff688e5d667d0f9d2bbe9ccb695f8ffe0 (diff) | |
Merge changes from topic "stats-migration" into tm-dev am: 23ed66f130 am: 4ce5244ff6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18457684
Change-Id: I74cd691205721e582e675c80061fbd21b756a45b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java | 8 | ||||
| -rw-r--r-- | core/java/com/android/internal/util/FileRotator.java | 15 |
2 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java b/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java index 5c9989e9d981..76ee097c8c93 100644 --- a/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java +++ b/core/java/android/net/netstats/NetworkStatsDataMigrationUtils.java @@ -52,6 +52,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.ProtocolException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Set; @@ -161,9 +162,12 @@ public class NetworkStatsDataMigrationUtils { @NonNull private static ArrayList<File> getPlatformFileListForPrefix(@NonNull @Prefix String prefix) { final ArrayList<File> list = new ArrayList<>(); - final File platformFiles = new File(getPlatformBaseDir(), "netstats"); + final File platformFiles = getPlatformBaseDir(); if (platformFiles.exists()) { - for (String name : platformFiles.list()) { + final String[] files = platformFiles.list(); + if (files == null) return list; + Arrays.sort(files); + for (String name : files) { // Skip when prefix doesn't match. if (!name.startsWith(prefix + ".")) continue; diff --git a/core/java/com/android/internal/util/FileRotator.java b/core/java/com/android/internal/util/FileRotator.java index 4b3af1536175..5bc48c5172f0 100644 --- a/core/java/com/android/internal/util/FileRotator.java +++ b/core/java/com/android/internal/util/FileRotator.java @@ -16,6 +16,7 @@ package com.android.internal.util; +import android.annotation.NonNull; import android.os.FileUtils; import android.util.Log; @@ -282,6 +283,20 @@ public class FileRotator { } /** + * Process a single file atomically, with the given start and end timestamps. + * If a file with these exact start and end timestamps does not exist, a new + * empty file will be written. + */ + public void rewriteSingle(@NonNull Rewriter rewriter, long startTimeMillis, long endTimeMillis) + throws IOException { + final FileInfo info = new FileInfo(mPrefix); + + info.startMillis = startTimeMillis; + info.endMillis = endTimeMillis; + rewriteSingle(rewriter, info.build()); + } + + /** * Read any rotated data that overlap the requested time range. */ public void readMatching(Reader reader, long matchStartMillis, long matchEndMillis) |