Merge "Fix user interaction logging for both fill dialog and save ui." into udc-dev
This commit is contained in:
@@ -2254,7 +2254,6 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
@Override
|
@Override
|
||||||
public void save() {
|
public void save() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
mSaveEventLogger.maybeSetSaveButtonClicked(true);
|
|
||||||
if (mDestroyed) {
|
if (mDestroyed) {
|
||||||
Slog.w(TAG, "Call to Session#save() rejected - session: "
|
Slog.w(TAG, "Call to Session#save() rejected - session: "
|
||||||
+ id + " destroyed");
|
+ id + " destroyed");
|
||||||
@@ -2273,7 +2272,6 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
public void cancelSave() {
|
public void cancelSave() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
mSessionFlags.mShowingSaveUi = false;
|
mSessionFlags.mShowingSaveUi = false;
|
||||||
mSaveEventLogger.maybeSetDialogDismissed(true);
|
|
||||||
if (mDestroyed) {
|
if (mDestroyed) {
|
||||||
Slog.w(TAG, "Call to Session#cancelSave() rejected - session: "
|
Slog.w(TAG, "Call to Session#cancelSave() rejected - session: "
|
||||||
+ id + " destroyed");
|
+ id + " destroyed");
|
||||||
@@ -3428,7 +3426,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
getUiForShowing().showSaveUi(serviceLabel, serviceIcon,
|
getUiForShowing().showSaveUi(serviceLabel, serviceIcon,
|
||||||
mService.getServicePackageName(), saveInfo, this,
|
mService.getServicePackageName(), saveInfo, this,
|
||||||
mComponentName, this, mContext, mPendingSaveUi, isUpdate, mCompatMode,
|
mComponentName, this, mContext, mPendingSaveUi, isUpdate, mCompatMode,
|
||||||
response.getShowSaveDialogIcon());
|
response.getShowSaveDialogIcon(), mSaveEventLogger);
|
||||||
mSaveEventLogger.maybeSetLatencySaveUiDisplayMillis(
|
mSaveEventLogger.maybeSetLatencySaveUiDisplayMillis(
|
||||||
SystemClock.elapsedRealtime()- saveUiDisplayStartTimestamp);
|
SystemClock.elapsedRealtime()- saveUiDisplayStartTimestamp);
|
||||||
if (client != null) {
|
if (client != null) {
|
||||||
@@ -4413,7 +4411,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
|
|||||||
|
|
||||||
getUiForShowing().showFillDialog(filledId, response, filterText,
|
getUiForShowing().showFillDialog(filledId, response, filterText,
|
||||||
mService.getServicePackageName(), mComponentName, serviceIcon, this,
|
mService.getServicePackageName(), mComponentName, serviceIcon, this,
|
||||||
id, mCompatMode);
|
id, mCompatMode, mPresentationStatsEventLogger);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ import com.android.server.LocalServices;
|
|||||||
import com.android.server.UiModeManagerInternal;
|
import com.android.server.UiModeManagerInternal;
|
||||||
import com.android.server.UiThread;
|
import com.android.server.UiThread;
|
||||||
import com.android.server.autofill.Helper;
|
import com.android.server.autofill.Helper;
|
||||||
|
import com.android.server.autofill.PresentationStatsEventLogger;
|
||||||
|
import com.android.server.autofill.SaveEventLogger;
|
||||||
import com.android.server.utils.Slogf;
|
import com.android.server.utils.Slogf;
|
||||||
|
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@@ -326,7 +328,7 @@ public final class AutoFillUI {
|
|||||||
@NonNull ValueFinder valueFinder, @NonNull ComponentName componentName,
|
@NonNull ValueFinder valueFinder, @NonNull ComponentName componentName,
|
||||||
@NonNull AutoFillUiCallback callback, @NonNull Context context,
|
@NonNull AutoFillUiCallback callback, @NonNull Context context,
|
||||||
@NonNull PendingUi pendingSaveUi, boolean isUpdate, boolean compatMode,
|
@NonNull PendingUi pendingSaveUi, boolean isUpdate, boolean compatMode,
|
||||||
boolean showServiceIcon) {
|
boolean showServiceIcon, @Nullable SaveEventLogger mSaveEventLogger) {
|
||||||
if (sVerbose) {
|
if (sVerbose) {
|
||||||
Slogf.v(TAG, "showSaveUi(update=%b) for %s and display %d: %s", isUpdate,
|
Slogf.v(TAG, "showSaveUi(update=%b) for %s and display %d: %s", isUpdate,
|
||||||
componentName.toShortString(), context.getDisplayId(), info);
|
componentName.toShortString(), context.getDisplayId(), info);
|
||||||
@@ -355,6 +357,9 @@ public final class AutoFillUI {
|
|||||||
@Override
|
@Override
|
||||||
public void onSave() {
|
public void onSave() {
|
||||||
log.setType(MetricsEvent.TYPE_ACTION);
|
log.setType(MetricsEvent.TYPE_ACTION);
|
||||||
|
if (mSaveEventLogger != null) {
|
||||||
|
mSaveEventLogger.maybeSetSaveButtonClicked(true);
|
||||||
|
}
|
||||||
hideSaveUiUiThread(callback);
|
hideSaveUiUiThread(callback);
|
||||||
callback.save();
|
callback.save();
|
||||||
destroySaveUiUiThread(pendingSaveUi, true);
|
destroySaveUiUiThread(pendingSaveUi, true);
|
||||||
@@ -363,6 +368,9 @@ public final class AutoFillUI {
|
|||||||
@Override
|
@Override
|
||||||
public void onCancel(IntentSender listener) {
|
public void onCancel(IntentSender listener) {
|
||||||
log.setType(MetricsEvent.TYPE_DISMISS);
|
log.setType(MetricsEvent.TYPE_DISMISS);
|
||||||
|
if (mSaveEventLogger != null) {
|
||||||
|
mSaveEventLogger.maybeSetCancelButtonClicked(true);
|
||||||
|
}
|
||||||
hideSaveUiUiThread(callback);
|
hideSaveUiUiThread(callback);
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
try {
|
try {
|
||||||
@@ -384,6 +392,9 @@ public final class AutoFillUI {
|
|||||||
callback.cancelSave();
|
callback.cancelSave();
|
||||||
}
|
}
|
||||||
mMetricsLogger.write(log);
|
mMetricsLogger.write(log);
|
||||||
|
if (mSaveEventLogger != null) {
|
||||||
|
mSaveEventLogger.maybeSetDialogDismissed(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -400,7 +411,8 @@ public final class AutoFillUI {
|
|||||||
public void showFillDialog(@NonNull AutofillId focusedId, @NonNull FillResponse response,
|
public void showFillDialog(@NonNull AutofillId focusedId, @NonNull FillResponse response,
|
||||||
@Nullable String filterText, @Nullable String servicePackageName,
|
@Nullable String filterText, @Nullable String servicePackageName,
|
||||||
@NonNull ComponentName componentName, @Nullable Drawable serviceIcon,
|
@NonNull ComponentName componentName, @Nullable Drawable serviceIcon,
|
||||||
@NonNull AutoFillUiCallback callback, int sessionId, boolean compatMode) {
|
@NonNull AutoFillUiCallback callback, int sessionId, boolean compatMode,
|
||||||
|
@Nullable PresentationStatsEventLogger mPresentationStatsEventLogger) {
|
||||||
if (sVerbose) {
|
if (sVerbose) {
|
||||||
Slog.v(TAG, "showFillDialog for "
|
Slog.v(TAG, "showFillDialog for "
|
||||||
+ componentName.toShortString() + ": " + response);
|
+ componentName.toShortString() + ": " + response);
|
||||||
@@ -442,6 +454,10 @@ public final class AutoFillUI {
|
|||||||
@Override
|
@Override
|
||||||
public void onDatasetPicked(Dataset dataset) {
|
public void onDatasetPicked(Dataset dataset) {
|
||||||
log(MetricsEvent.TYPE_ACTION);
|
log(MetricsEvent.TYPE_ACTION);
|
||||||
|
if (mPresentationStatsEventLogger != null) {
|
||||||
|
mPresentationStatsEventLogger.maybeSetPositiveCtaButtonClicked(
|
||||||
|
true);
|
||||||
|
}
|
||||||
hideFillDialogUiThread(callback);
|
hideFillDialogUiThread(callback);
|
||||||
if (mCallback != null) {
|
if (mCallback != null) {
|
||||||
final int datasetIndex = response.getDatasets().indexOf(dataset);
|
final int datasetIndex = response.getDatasets().indexOf(dataset);
|
||||||
@@ -453,6 +469,9 @@ public final class AutoFillUI {
|
|||||||
@Override
|
@Override
|
||||||
public void onDismissed() {
|
public void onDismissed() {
|
||||||
log(MetricsEvent.TYPE_DISMISS);
|
log(MetricsEvent.TYPE_DISMISS);
|
||||||
|
if (mPresentationStatsEventLogger != null) {
|
||||||
|
mPresentationStatsEventLogger.maybeSetDialogDismissed(true);
|
||||||
|
}
|
||||||
hideFillDialogUiThread(callback);
|
hideFillDialogUiThread(callback);
|
||||||
callback.requestShowSoftInput(focusedId);
|
callback.requestShowSoftInput(focusedId);
|
||||||
callback.requestFallbackFromFillDialog();
|
callback.requestFallbackFromFillDialog();
|
||||||
@@ -461,6 +480,10 @@ public final class AutoFillUI {
|
|||||||
@Override
|
@Override
|
||||||
public void onCanceled() {
|
public void onCanceled() {
|
||||||
log(MetricsEvent.TYPE_CLOSE);
|
log(MetricsEvent.TYPE_CLOSE);
|
||||||
|
if (mPresentationStatsEventLogger != null) {
|
||||||
|
mPresentationStatsEventLogger.maybeSetNegativeCtaButtonClicked(
|
||||||
|
true);
|
||||||
|
}
|
||||||
hideFillDialogUiThread(callback);
|
hideFillDialogUiThread(callback);
|
||||||
callback.requestShowSoftInput(focusedId);
|
callback.requestShowSoftInput(focusedId);
|
||||||
callback.requestFallbackFromFillDialog();
|
callback.requestFallbackFromFillDialog();
|
||||||
|
|||||||
Reference in New Issue
Block a user