Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d628262 authored by Jiewen Lei's avatar Jiewen Lei Committed by Automerger Merge Worker
Browse files

Merge "Fix user interaction logging for both fill dialog and save ui." into...

Merge "Fix user interaction logging for both fill dialog and save ui." into udc-dev am: cf918bef am: ba75ebc4 am: 23462d5a

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



Change-Id: Iedc9f4b14e1bbf577cc3acc7017a1905c5bed958
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d3979fea 23462d5a
Loading
Loading
Loading
Loading
+2 −4
Original line number Original line Diff line number Diff line
@@ -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;
    }
    }


+25 −2
Original line number Original line Diff line number Diff line
@@ -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();