Merge "Fix process source propagation for binder calls stats settings so that it is correctly reported in the pushed atom BinderLatencyReported." into sc-dev
diff --git a/core/java/com/android/internal/os/BinderCallsStats.java b/core/java/com/android/internal/os/BinderCallsStats.java
index e3baf90..6ce7cea 100644
--- a/core/java/com/android/internal/os/BinderCallsStats.java
+++ b/core/java/com/android/internal/os/BinderCallsStats.java
@@ -1196,15 +1196,12 @@
private final Context mContext;
private final KeyValueListParser mParser = new KeyValueListParser(',');
private final BinderCallsStats mBinderCallsStats;
- private final int mProcessSource;
- public SettingsObserver(Context context, BinderCallsStats binderCallsStats,
- int processSource) {
+ public SettingsObserver(Context context, BinderCallsStats binderCallsStats) {
super(BackgroundThread.getHandler());
mContext = context;
context.getContentResolver().registerContentObserver(mUri, false, this);
mBinderCallsStats = binderCallsStats;
- mProcessSource = processSource;
// Always kick once to ensure that we match current state
onChange();
}
diff --git a/core/java/com/android/internal/os/BinderLatencyObserver.java b/core/java/com/android/internal/os/BinderLatencyObserver.java
index ed7e172..20cf102 100644
--- a/core/java/com/android/internal/os/BinderLatencyObserver.java
+++ b/core/java/com/android/internal/os/BinderLatencyObserver.java
@@ -370,4 +370,9 @@
public Runnable getStatsdPushRunnable() {
return mLatencyObserverRunnable;
}
+
+ @VisibleForTesting
+ public int getProcessSource() {
+ return mProcessSource;
+ }
}
diff --git a/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java b/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
index cac40b2..82b2bf4 100644
--- a/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BinderCallsStatsTest.java
@@ -991,6 +991,40 @@
assertEquals(true, bcs.getCollectLatencyData());
}
+ @Test
+ public void testProcessSource() {
+ BinderCallsStats defaultCallsStats = new BinderCallsStats(
+ new BinderCallsStats.Injector());
+
+ BinderCallsStats systemServerCallsStats = new BinderCallsStats(
+ new BinderCallsStats.Injector(),
+ com.android.internal.os.BinderLatencyProto.Dims.SYSTEM_SERVER);
+
+ BinderCallsStats telephonyCallsStats = new BinderCallsStats(
+ new BinderCallsStats.Injector(),
+ com.android.internal.os.BinderLatencyProto.Dims.TELEPHONY);
+
+ BinderCallsStats bluetoothCallsStats = new BinderCallsStats(
+ new BinderCallsStats.Injector(),
+ com.android.internal.os.BinderLatencyProto.Dims.BLUETOOTH);
+
+ assertEquals(
+ com.android.internal.os.BinderLatencyProto.Dims.SYSTEM_SERVER,
+ defaultCallsStats.getLatencyObserver().getProcessSource());
+
+ assertEquals(
+ com.android.internal.os.BinderLatencyProto.Dims.SYSTEM_SERVER,
+ systemServerCallsStats.getLatencyObserver().getProcessSource());
+
+ assertEquals(
+ com.android.internal.os.BinderLatencyProto.Dims.TELEPHONY,
+ telephonyCallsStats.getLatencyObserver().getProcessSource());
+
+ assertEquals(
+ com.android.internal.os.BinderLatencyProto.Dims.BLUETOOTH,
+ bluetoothCallsStats.getLatencyObserver().getProcessSource());
+ }
+
private static class TestHandler extends Handler {
ArrayList<Runnable> mRunnables = new ArrayList<>();