Merge "Fix process source propagation for binder calls stats settings so that it is correctly reported in the pushed atom BinderLatencyReported." into sc-dev am: fc7b373389 am: c7a7ae1241

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15054863

Change-Id: Ie8b2cc257a57abab980c32eba5604835ea2f3ac5
This commit is contained in:
Siim Sammul
2021-06-25 11:26:12 +00:00
committed by Automerger Merge Worker
3 changed files with 40 additions and 4 deletions

View File

@@ -1196,15 +1196,12 @@ public class BinderCallsStats implements BinderInternal.Observer {
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();
}

View File

@@ -370,4 +370,9 @@ public class BinderLatencyObserver {
public Runnable getStatsdPushRunnable() {
return mLatencyObserverRunnable;
}
@VisibleForTesting
public int getProcessSource() {
return mProcessSource;
}
}

View File

@@ -991,6 +991,40 @@ public class BinderCallsStatsTest {
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<>();