Remove metrics for emergency dialer.
Bug: 143243654
Test: Compilation
Change-Id: I0375f700bc0fe8fe7d41bae3626e37f9916781d8
Merged-In: I0375f700bc0fe8fe7d41bae3626e37f9916781d8
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index f5c14b9..c20281a 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -70,9 +70,6 @@
import android.view.accessibility.AccessibilityEvent;
import android.widget.TextView;
-import com.android.phone.EmergencyDialerMetricsLogger.DialedFrom;
-import com.android.phone.EmergencyDialerMetricsLogger.PhoneNumberType;
-import com.android.phone.EmergencyDialerMetricsLogger.UiModeErrorCode;
import com.android.phone.common.dialpad.DialpadKeyButton;
import com.android.phone.common.util.ViewUtil;
import com.android.phone.common.widget.ResizingTextEditText;
@@ -221,8 +218,6 @@
private int mEntryType;
private ShortcutViewUtils.Config mShortcutViewConfig;
- private EmergencyDialerMetricsLogger mMetricsLogger;
-
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// Do nothing
@@ -257,8 +252,6 @@
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- mMetricsLogger = new EmergencyDialerMetricsLogger(this);
-
mEntryType = getIntent().getIntExtra(EXTRA_ENTRY_TYPE, ENTRY_TYPE_UNKNOWN);
Log.d(LOG_TAG, "Launched from " + entryTypeToString(mEntryType));
@@ -498,10 +491,6 @@
if (!TextUtils.isEmpty(phoneNumber)) {
if (DBG) Log.d(LOG_TAG, "dial emergency number: " + Rlog.pii(LOG_TAG, phoneNumber));
- // Write metrics when user has intention to make a call from a shortcut button.
- mMetricsLogger.logPlaceCall(DialedFrom.SHORTCUT, PhoneNumberType.HAS_SHORTCUT,
- mShortcutViewConfig.getPhoneInfo());
-
placeCall(phoneNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT,
mShortcutViewConfig.getPhoneInfo());
} else {
@@ -638,10 +627,6 @@
protected void onStart() {
super.onStart();
- mMetricsLogger.logLaunchEmergencyDialer(mEntryType,
- mShortcutViewConfig.isEnabled() ? UiModeErrorCode.SUCCESS
- : UiModeErrorCode.UNSPECIFIED_ERROR);
-
if (mShortcutViewConfig.isEnabled()) {
// Shortcut view doesn't support dark text theme.
mBackgroundDrawable.setColor(Color.BLACK);
@@ -745,28 +730,20 @@
// nothing and just returns input number.
mLastNumber = PhoneNumberUtils.convertToEmergencyNumber(this, mLastNumber);
- @DialedFrom final int dialedFrom =
- mShortcutViewConfig.isEnabled() ? DialedFrom.FASTER_LAUNCHER_DIALPAD
- : DialedFrom.TRADITIONAL_DIALPAD;
- @PhoneNumberType final int phoneNumberType;
-
boolean isEmergencyNumber;
ShortcutViewUtils.PhoneInfo phoneToMakeCall = null;
if (mShortcutAdapter != null && mShortcutAdapter.hasShortcut(mLastNumber)) {
isEmergencyNumber = true;
phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
- phoneNumberType = PhoneNumberType.HAS_SHORTCUT;
} else if (mShortcutViewConfig.hasPromotedEmergencyNumber(mLastNumber)) {
// If a number from SIM/network/... is categoried as police/ambulance/fire,
// hasPromotedEmergencyNumber() will return true, but it maybe not promoted as a
// shortcut button because a number provided by database has higher priority.
isEmergencyNumber = true;
phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
- phoneNumberType = PhoneNumberType.NO_SHORTCUT;
} else {
isEmergencyNumber = getSystemService(TelephonyManager.class)
.isEmergencyNumber(mLastNumber);
- phoneNumberType = PhoneNumberType.NO_SHORTCUT;
}
if (isEmergencyNumber) {
@@ -779,19 +756,11 @@
return;
}
- // Write metrics when user has intention to make a call from dialpad
- mMetricsLogger.logPlaceCall(dialedFrom, phoneNumberType, phoneToMakeCall);
-
placeCall(mLastNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD,
phoneToMakeCall);
} else {
if (DBG) Log.d(LOG_TAG, "rejecting bad requested number " + mLastNumber);
- // Write metrics when user has intention to make a call of a non-emergency number, even
- // this number is rejected.
- mMetricsLogger.logPlaceCall(dialedFrom, PhoneNumberType.NOT_EMERGENCY_NUMBER,
- phoneToMakeCall);
-
showDialog(BAD_EMERGENCY_NUMBER_DIALOG);
}
mDigits.getText().delete(0, mDigits.getText().length());
diff --git a/src/com/android/phone/EmergencyDialerMetricsLogger.java b/src/com/android/phone/EmergencyDialerMetricsLogger.java
deleted file mode 100644
index b9ba352..0000000
--- a/src/com/android/phone/EmergencyDialerMetricsLogger.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.annotation.IntDef;
-import android.app.KeyguardManager;
-import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.Build;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * EmergencyCallMetricsLogger is a utility to collect metrics of emergency calls
- */
-class EmergencyDialerMetricsLogger {
- private static final String LOG_TAG = "EmergencyDialerLogger";
-
- @IntDef({
- DialedFrom.TRADITIONAL_DIALPAD,
- DialedFrom.SHORTCUT,
- DialedFrom.FASTER_LAUNCHER_DIALPAD,
- })
- @Retention(RetentionPolicy.SOURCE)
- @interface DialedFrom {
- int TRADITIONAL_DIALPAD = 0;
- int SHORTCUT = 1;
- int FASTER_LAUNCHER_DIALPAD = 2;
- }
-
- @IntDef({
- LaunchedFrom.UNDEFINED,
- LaunchedFrom.LOCK_SCREEN,
- LaunchedFrom.POWER_KEY_MENU,
- })
- @Retention(RetentionPolicy.SOURCE)
- @interface LaunchedFrom {
- int UNDEFINED = 0;
- int LOCK_SCREEN = 1;
- int POWER_KEY_MENU = 2;
- }
-
- @IntDef({
- PhoneNumberType.HAS_SHORTCUT,
- PhoneNumberType.NO_SHORTCUT,
- PhoneNumberType.NOT_EMERGENCY_NUMBER,
- })
- @Retention(RetentionPolicy.SOURCE)
- @interface PhoneNumberType {
- int HAS_SHORTCUT = 0;
- int NO_SHORTCUT = 1;
- int NOT_EMERGENCY_NUMBER = 2;
- }
-
- @IntDef({
- UiModeErrorCode.UNSPECIFIED_ERROR,
- UiModeErrorCode.SUCCESS,
- UiModeErrorCode.CONFIG_ENTRY_POINT,
- UiModeErrorCode.CONFIG_SIM_OPERATOR,
- UiModeErrorCode.UNSUPPORTED_COUNTRY,
- UiModeErrorCode.AIRPLANE_MODE,
- UiModeErrorCode.NO_PROMOTED_NUMBER,
- UiModeErrorCode.NO_CAPABLE_PHONE,
- })
- @Retention(RetentionPolicy.SOURCE)
- @interface UiModeErrorCode {
- int UNSPECIFIED_ERROR = -1;
- int SUCCESS = 0;
- int CONFIG_ENTRY_POINT = 1;
- int CONFIG_SIM_OPERATOR = 2;
- int UNSUPPORTED_COUNTRY = 3;
- int AIRPLANE_MODE = 4;
- int NO_PROMOTED_NUMBER = 5;
- int NO_CAPABLE_PHONE = 6;
- }
-
- private class TelephonyInfo {
- private final String mNetworkCountryIso;
- private final String mNetworkOperator;
-
- TelephonyInfo(String networkCountryIso, String networkOperator) {
- mNetworkCountryIso = networkCountryIso;
- mNetworkOperator = networkOperator;
- }
- }
-
- private final MetricsLogger mMetricsLogger = new MetricsLogger();
-
- private final Context mAppContext;
-
- @LaunchedFrom
- private int mLaunchedFrom;
- @UiModeErrorCode
- private int mUiModeErrorCode;
-
- EmergencyDialerMetricsLogger(Context context) {
- mAppContext = context.getApplicationContext();
- }
-
- /**
- * Log when Emergency Dialer is launched.
- * - Where the user launch Emergency Dialer from.
- * - Whether shortcut view is enabled, and the reason why it's not enabled.
- *
- * @param entryType
- * @param uiModeErrorCode
- */
- public void logLaunchEmergencyDialer(int entryType,
- @UiModeErrorCode int uiModeErrorCode) {
- final @EmergencyDialerMetricsLogger.LaunchedFrom int launchedFrom;
- if (entryType == EmergencyDialer.ENTRY_TYPE_LOCKSCREEN_BUTTON) {
- launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.LOCK_SCREEN;
- } else if (entryType == EmergencyDialer.ENTRY_TYPE_POWER_MENU) {
- launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.POWER_KEY_MENU;
- } else {
- launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.UNDEFINED;
- }
-
- mLaunchedFrom = launchedFrom;
- mUiModeErrorCode = uiModeErrorCode;
- }
-
- /**
- * Log when user tring to place an emergency call.
- * - Which UI (traditional dialpad, shortcut button, dialpad in shortcut view) the user place
- * the call from.
- * - The number is promoted in shortcut view or not, or not even an emergency number?
- * - Whether the device is locked.
- * - Network country ISO and network operator.
- *
- * @param dialedFrom
- * @param phoneNumberType
- * @param phoneInfo
- */
- public void logPlaceCall(@DialedFrom int dialedFrom,
- @PhoneNumberType int phoneNumberType,
- @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
- TelephonyInfo telephonyInfo = getTelephonyInfo(phoneNumberType, phoneInfo);
- final KeyguardManager keyguard = mAppContext.getSystemService(KeyguardManager.class);
-
- logBeforeMakeCall(dialedFrom, phoneNumberType, keyguard.isKeyguardLocked(),
- telephonyInfo.mNetworkCountryIso, telephonyInfo.mNetworkOperator);
- }
-
- private TelephonyInfo getTelephonyInfo(@PhoneNumberType int phoneNumberType,
- @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
- final TelephonyManager telephonyManager = mAppContext.getSystemService(
- TelephonyManager.class);
- final TelephonyManager subTelephonyManager;
- final String networkCountryIso;
- final String networkOperator;
- if (phoneNumberType == PhoneNumberType.HAS_SHORTCUT && phoneInfo != null) {
- subTelephonyManager = telephonyManager.createForSubscriptionId(phoneInfo.getSubId());
- networkCountryIso = phoneInfo.getCountryIso();
- } else {
- // No specific phone to make this call. Take information of default network.
- subTelephonyManager = null;
- networkCountryIso = telephonyManager.getNetworkCountryIso();
- }
- if (subTelephonyManager != null) {
- networkOperator = subTelephonyManager.getNetworkOperator();
- } else {
- // This could be:
- // - No specific phone to make this call.
- // - Subscription changed! Maybe the device roamed to another network?
- // Take information of default network.
- networkOperator = telephonyManager.getNetworkOperator();
- }
-
- return new TelephonyInfo(networkCountryIso, networkOperator);
- }
-
- private void logBeforeMakeCall(@DialedFrom int dialedFrom,
- @PhoneNumberType int phoneNumberType,
- boolean isDeviceLocked,
- String networkCountryIso,
- String networkOperator) {
- if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
- Log.d(LOG_TAG, "EmergencyDialer session: dialedFrom=" + dialFromToString(dialedFrom)
- + ", launchedFrom=" + launchedFromToString(mLaunchedFrom)
- + ", uimode=" + uiModeErrorCodeToString(mUiModeErrorCode)
- + ", type=" + phoneNumberTypeToString(phoneNumberType)
- + ", locked=" + isDeviceLocked
- + ", country=" + networkCountryIso
- + ", operator=" + networkOperator);
- }
- mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER_MAKE_CALL_V2)
- .setType(MetricsEvent.TYPE_ACTION)
- .setSubtype(dialedFrom)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_LAUNCH_FROM, mLaunchedFrom)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_UI_MODE_ERROR_CODE,
- mUiModeErrorCode)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE,
- phoneNumberType)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IS_DEVICE_LOCKED,
- isDeviceLocked ? 1 : 0)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_COUNTRY_ISO,
- networkCountryIso)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_OPERATOR,
- networkOperator)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_RADIO_VERSION,
- Build.getRadioVersion())
- );
- }
-
- private String dialFromToString(@DialedFrom int dialedFrom) {
- switch (dialedFrom) {
- case DialedFrom.TRADITIONAL_DIALPAD:
- return "traditional";
- case DialedFrom.SHORTCUT:
- return "shortcut";
- case DialedFrom.FASTER_LAUNCHER_DIALPAD:
- return "dialpad";
- default:
- return "unknown_error";
- }
- }
-
- private String launchedFromToString(@LaunchedFrom int launchedFrom) {
- switch (launchedFrom) {
- case LaunchedFrom.UNDEFINED:
- return "undefined";
- case LaunchedFrom.LOCK_SCREEN:
- return "lockscreen";
- case LaunchedFrom.POWER_KEY_MENU:
- return "powermenu";
- default:
- return "unknown_error";
- }
- }
-
- private String phoneNumberTypeToString(@PhoneNumberType int phoneNumberType) {
- switch (phoneNumberType) {
- case PhoneNumberType.HAS_SHORTCUT:
- return "has_shortcut";
- case PhoneNumberType.NO_SHORTCUT:
- return "no_shortcut";
- case PhoneNumberType.NOT_EMERGENCY_NUMBER:
- return "not_emergency";
- default:
- return "unknown_error";
- }
- }
-
- private String uiModeErrorCodeToString(@UiModeErrorCode int uiModeErrorCode) {
- switch (uiModeErrorCode) {
- case UiModeErrorCode.UNSPECIFIED_ERROR:
- return "unspecified_error";
- case UiModeErrorCode.SUCCESS:
- return "success";
- case UiModeErrorCode.CONFIG_ENTRY_POINT:
- return "config_entry_point";
- case UiModeErrorCode.CONFIG_SIM_OPERATOR:
- return "config_sim_operator";
- case UiModeErrorCode.UNSUPPORTED_COUNTRY:
- return "unsupported_country";
- case UiModeErrorCode.AIRPLANE_MODE:
- return "airplane_mode";
- case UiModeErrorCode.NO_PROMOTED_NUMBER:
- return "no_promoted_number";
- case UiModeErrorCode.NO_CAPABLE_PHONE:
- return "no_capable_phone";
- default:
- return "unknown_error";
- }
- }
-}
diff --git a/src/com/android/phone/EmergencyShortcutButton.java b/src/com/android/phone/EmergencyShortcutButton.java
index f77595b..9e51e82 100644
--- a/src/com/android/phone/EmergencyShortcutButton.java
+++ b/src/com/android/phone/EmergencyShortcutButton.java
@@ -19,8 +19,6 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
@@ -32,9 +30,6 @@
import androidx.annotation.NonNull;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
/**
* Emergency shortcut button displays a local emergency phone number information(including phone
* number, and phone type). To decrease false clicking, it need to click twice to confirm to place
@@ -66,12 +61,6 @@
private boolean mConfirmViewHiding;
- /**
- * The time, in millis, since boot when user taps on shortcut button to reveal confirm view.
- * This is used for metrics when calculating the interval between reveal tap and confirm tap.
- */
- private long mTimeOfRevealTapInMillis = 0;
-
public EmergencyShortcutButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
@@ -209,15 +198,6 @@
}
break;
case R.id.emergency_call_confirm_view:
- if (mTimeOfRevealTapInMillis != 0) {
- long timeBetweenTwoTaps =
- SystemClock.elapsedRealtime() - mTimeOfRevealTapInMillis;
- // Reset reveal time to zero for next reveal-confirm taps pair.
- mTimeOfRevealTapInMillis = 0;
-
- writeMetricsForConfirmTap(timeBetweenTwoTaps);
- }
-
if (mOnConfirmClickListener != null) {
mOnConfirmClickListener.onConfirmClick(this);
}
@@ -229,7 +209,6 @@
mConfirmViewHiding = false;
mConfirmView.setVisibility(View.VISIBLE);
- mTimeOfRevealTapInMillis = SystemClock.elapsedRealtime();
int centerX = mCallNumberInfoView.getLeft() + mCallNumberInfoView.getWidth() / 2;
int centerY = mCallNumberInfoView.getTop() + mCallNumberInfoView.getHeight() / 2;
Animator reveal = ViewAnimationUtils.createCircularReveal(
@@ -266,8 +245,6 @@
@Override
public void onAnimationEnd(Animator animation) {
mConfirmView.setVisibility(INVISIBLE);
- // Reset reveal time to zero for next reveal-confirm taps pair.
- mTimeOfRevealTapInMillis = 0;
}
});
reveal.start();
@@ -282,12 +259,4 @@
hideSelectedButton();
}
};
-
- private void writeMetricsForConfirmTap(long timeBetweenTwoTaps) {
- LogMaker logContent = new LogMaker(MetricsEvent.EMERGENCY_DIALER_SHORTCUT_CONFIRM_TAP)
- .setType(MetricsEvent.TYPE_ACTION)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_SHORTCUT_TAPS_INTERVAL,
- timeBetweenTwoTaps);
- MetricsLogger.action(logContent);
- }
}