summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorweijiaxu <weijiaxu@google.com>2017-10-25 18:21:41 -0700
committerEric Erfanian <erfanian@google.com>2017-10-26 16:39:22 +0000
commit94df7203674f12ff90d768467a307ed01601565d (patch)
treea8fc12fea2391efc119bf38803b4b60598effc6a
parent32257fdc92016ed2f76e62af8425937284e0d61b (diff)
App latency test migration.
Migrate the existing app latency test to a new solution from Project Fi team. The main change on this new solution is that the data collection part is done by Primes now. Also, a few changes has been made on DialerPrimes class and a new Dialer variant dialer_release_test has been created. The benefits of using primes to collect data are: 1. latency tests dont need to insert lines of code to track latency in dialer codebase 2. be able to collect data on any variants with or without Proguard 3. latency tests now only contain ui interaction to trigger scenarios on which we want add measurements 4. share the same logic with primes on production so that data from testbeds and normal users are comparable. 5. easier for anyone to add interesting data entries. ----------Mobile Harness Below----------------------------------- RELNOTES[INC]:Add entries for dialer to use mobileharness plugin. Test: No PiperOrigin-RevId: 173481741 Change-Id: Ia6812794141382898bea4b34bca90278c5663464
-rw-r--r--java/com/android/dialer/logging/LoggingBindings.java13
-rw-r--r--java/com/android/dialer/logging/LoggingBindingsStub.java6
-rw-r--r--java/com/android/incallui/InCallActivity.java10
-rw-r--r--java/com/android/incallui/call/CallList.java13
4 files changed, 42 insertions, 0 deletions
diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java
index ca9a0533e..7682c767d 100644
--- a/java/com/android/dialer/logging/LoggingBindings.java
+++ b/java/com/android/dialer/logging/LoggingBindings.java
@@ -20,6 +20,13 @@ import android.widget.QuickContactBadge;
/** Allows the container application to gather analytics. */
public interface LoggingBindings {
+ String ON_CREATE_PRIMES_EVENT_NAME = "Application.onCreate";
+ String ON_CREATE_TO_ACTIVITY_ON_CREATE_PRIMES_EVENT_NAME =
+ "Application.onCreate_To_GoogleDialtactsActivity.onCreate";
+ String ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_INCOMING =
+ "CallList.onCallAdded_To_InCallActivity.onCreate_Incoming";
+ String ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_OUTGOING =
+ "CallList.onCallAdded_To_InCallActivity.onCreate_Outgoing";
/**
* Logs an DialerImpression event that's not associated with a specific call.
*
@@ -87,4 +94,10 @@ public interface LoggingBindings {
/** Logs successful People Api lookup result */
void logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode);
+
+ /** Log start a latency timer */
+ void logStartLatencyTimer(String timerEventName);
+
+ /** Log end a latency timer */
+ void logStopLatencyTimer(String timerEventName);
}
diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java
index 2dbcc3ffb..ab6872cf4 100644
--- a/java/com/android/dialer/logging/LoggingBindingsStub.java
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -61,4 +61,10 @@ public class LoggingBindingsStub implements LoggingBindings {
@Override
public void logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode) {}
+
+ @Override
+ public void logStartLatencyTimer(String timerEventName) {}
+
+ @Override
+ public void logStopLatencyTimer(String timerEventName) {}
}
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index c3a68c021..c509e4890 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -40,6 +40,8 @@ import com.android.dialer.compat.ActivityCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.LoggingBindings;
+import com.android.dialer.logging.LoggingBindingsFactory;
import com.android.dialer.logging.ScreenEvent;
import com.android.incallui.answer.bindings.AnswerBindings;
import com.android.incallui.answer.protocol.AnswerScreen;
@@ -145,6 +147,14 @@ public class InCallActivity extends TransactionSafeFragmentActivity
pseudoBlackScreenOverlay = findViewById(R.id.psuedo_black_screen_overlay);
sendBroadcast(CallPendingActivity.getFinishBroadcast());
Trace.endSection();
+ if (getApplicationContext() instanceof LoggingBindingsFactory) {
+ LoggingBindings loggingBindings =
+ ((LoggingBindingsFactory) getApplicationContext()).newLoggingBindings();
+ loggingBindings.logStopLatencyTimer(
+ LoggingBindings.ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_INCOMING);
+ loggingBindings.logStopLatencyTimer(
+ LoggingBindings.ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_OUTGOING);
+ }
}
@Override
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 59f38349a..4f1dfd43f 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -36,6 +36,8 @@ import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.LoggingBindings;
+import com.android.dialer.logging.LoggingBindingsFactory;
import com.android.dialer.shortcuts.ShortcutUsageReporter;
import com.android.dialer.spam.Spam;
import com.android.dialer.spam.SpamBindings;
@@ -117,6 +119,17 @@ public class CallList implements DialerCallDelegate {
public void onCallAdded(
final Context context, final android.telecom.Call telecomCall, LatencyReport latencyReport) {
Trace.beginSection("CallList.onCallAdded");
+ if (context.getApplicationContext() instanceof LoggingBindingsFactory) {
+ if (telecomCall.getState() == Call.STATE_CONNECTING) {
+ ((LoggingBindingsFactory) context.getApplicationContext())
+ .newLoggingBindings()
+ .logStartLatencyTimer(LoggingBindings.ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_OUTGOING);
+ } else if (telecomCall.getState() == Call.STATE_RINGING) {
+ ((LoggingBindingsFactory) context.getApplicationContext())
+ .newLoggingBindings()
+ .logStartLatencyTimer(LoggingBindings.ON_CALL_ADDED_TO_ON_INCALL_UI_SHOWN_INCOMING);
+ }
+ }
if (mUiListeners != null) {
mUiListeners.onCallAdded();
}