Merge "Only log unique mime types." into sc-dev
diff --git a/src/com/android/providers/media/metrics/StorageAccessMetrics.java b/src/com/android/providers/media/metrics/StorageAccessMetrics.java
index c146082..ce54e3f 100644
--- a/src/com/android/providers/media/metrics/StorageAccessMetrics.java
+++ b/src/com/android/providers/media/metrics/StorageAccessMetrics.java
@@ -23,6 +23,7 @@
import android.os.Process;
import android.os.SystemClock;
import android.provider.MediaStore;
+import android.util.ArraySet;
import android.util.Log;
import android.util.SparseArray;
import android.util.StatsEvent;
@@ -41,9 +42,7 @@
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
@@ -78,8 +77,7 @@
}
synchronized (mLock) {
- SparseArray<String> mimeTypes = getOrGeneratePackageStatsObjectLocked(uid).mMimeTypes;
- mimeTypes.put(mimeTypes.size(), mimeType);
+ getOrGeneratePackageStatsObjectLocked(uid).mMimeTypes.add(mimeType);
}
}
@@ -226,7 +224,7 @@
int mFilePathAccesses = 0;
int mSecondaryStorageAccesses = 0;
- final SparseArray<String> mMimeTypes = new SparseArray<>();
+ final ArraySet<String> mMimeTypes = new ArraySet<>();
PackageStorageAccessStats(int uid) {
this.mUid = uid;
@@ -254,7 +252,7 @@
private ProtoOutputStream getMimeTypesAsProto() {
ProtoOutputStream proto = new ProtoOutputStream();
for (int i = 0; i < mMimeTypes.size(); i++) {
- String mime = mMimeTypes.valueAt(0);
+ String mime = mMimeTypes.valueAt(i);
proto.write(/*fieldId*/ProtoOutputStream.FIELD_TYPE_STRING
| ProtoOutputStream.FIELD_COUNT_REPEATED
| 1,
diff --git a/tests/src/com/android/providers/media/metrics/StorageAccessMetricsTest.java b/tests/src/com/android/providers/media/metrics/StorageAccessMetricsTest.java
index 8fd68a6..5be69ff 100644
--- a/tests/src/com/android/providers/media/metrics/StorageAccessMetricsTest.java
+++ b/tests/src/com/android/providers/media/metrics/StorageAccessMetricsTest.java
@@ -46,7 +46,9 @@
storageAccessMetrics.logMimeType(3, "my-mime-type");
storageAccessMetrics.logMimeType(3, null);
storageAccessMetrics.logMimeType(3, "my-mime-type-2");
+ storageAccessMetrics.logMimeType(3, "my-mime-type-2");
storageAccessMetrics.logMimeType(3, "my-mime-type-3");
+ storageAccessMetrics.logMimeType(3, "my-mime-type-2");
List<PackageStorageAccessStats> statsList =
storageAccessMetrics.getSampleStats();
@@ -57,10 +59,9 @@
assertThat(stats.mTotalAccesses).isEqualTo(0);
assertThat(stats.mFilePathAccesses).isEqualTo(0);
assertThat(stats.mSecondaryStorageAccesses).isEqualTo(0);
- assertThat(stats.mMimeTypes.size()).isEqualTo(3);
- assertThat(stats.mMimeTypes.valueAt(0)).isEqualTo("my-mime-type");
- assertThat(stats.mMimeTypes.valueAt(1)).isEqualTo("my-mime-type-2");
- assertThat(stats.mMimeTypes.valueAt(2)).isEqualTo("my-mime-type-3");
+ assertThat(stats.mMimeTypes.stream().toArray())
+ .asList()
+ .containsExactly("my-mime-type", "my-mime-type-2", "my-mime-type-3");
}
@Test
@@ -76,8 +77,9 @@
assertThat(stats.mTotalAccesses).isEqualTo(0);
assertThat(stats.mFilePathAccesses).isEqualTo(1);
assertThat(stats.mSecondaryStorageAccesses).isEqualTo(0);
- assertThat(stats.mMimeTypes.size()).isEqualTo(1);
- assertThat(stats.mMimeTypes.valueAt(0)).isEqualTo("text/plain");
+ assertThat(stats.mMimeTypes.stream().toArray())
+ .asList()
+ .containsExactly("text/plain");
}
@Test