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

Commit 61d5e9fb authored by Jiewen Lei's avatar Jiewen Lei Committed by Automerger Merge Worker
Browse files

Merge "Fix sessionCommitEvent's commit_reason logging." into udc-dev am: 939888da

parents 84512ef4 939888da
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -468,7 +468,8 @@ public final class AutofillManager {
            COMMIT_REASON_ACTIVITY_FINISHED,
            COMMIT_REASON_VIEW_COMMITTED,
            COMMIT_REASON_VIEW_CLICKED,
            COMMIT_REASON_VIEW_CHANGED
            COMMIT_REASON_VIEW_CHANGED,
            COMMIT_REASON_SESSION_DESTROYED
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface AutofillCommitReason {}
@@ -507,6 +508,12 @@ public final class AutofillManager {
     * @hide
     */
    public static final int COMMIT_REASON_VIEW_CHANGED = 4;
    /**
     * Autofill context was committed because of the session was destroyed.
     *
     * @hide
     */
    public static final int COMMIT_REASON_SESSION_DESTROYED = 5;

    /**
     * Makes an authentication id from a request id and a dataset id.
+18 −10
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import static android.view.autofill.AutofillManager.ACTION_START_SESSION;
import static android.view.autofill.AutofillManager.ACTION_VALUE_CHANGED;
import static android.view.autofill.AutofillManager.ACTION_VIEW_ENTERED;
import static android.view.autofill.AutofillManager.ACTION_VIEW_EXITED;
import static android.view.autofill.AutofillManager.COMMIT_REASON_SESSION_DESTROYED;
import static android.view.autofill.AutofillManager.COMMIT_REASON_UNKNOWN;
import static android.view.autofill.AutofillManager.FLAG_SMART_SUGGESTION_SYSTEM;
import static android.view.autofill.AutofillManager.getSmartSuggestionModeToString;
@@ -85,7 +86,6 @@ import static com.android.server.autofill.SaveEventLogger.SAVE_UI_SHOWN_REASON_O
import static com.android.server.autofill.SaveEventLogger.SAVE_UI_SHOWN_REASON_REQUIRED_ID_CHANGE;
import static com.android.server.autofill.SaveEventLogger.SAVE_UI_SHOWN_REASON_TRIGGER_ID_SET;
import static com.android.server.autofill.SaveEventLogger.SAVE_UI_SHOWN_REASON_UNKNOWN;
import static com.android.server.autofill.SessionCommittedEventLogger.COMMIT_REASON_SESSION_DESTROYED;
import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_RECEIVER_EXTRAS;
import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_STRUCTURE;

@@ -2730,6 +2730,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        mHandler.sendMessage(obtainMessage(Session::handleLogContextCommitted, this,
                Event.NO_SAVE_UI_REASON_NONE,
                COMMIT_REASON_UNKNOWN));
        logAllEvents(COMMIT_REASON_UNKNOWN);
    }

    /**
@@ -2743,6 +2744,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
            @AutofillCommitReason int commitReason) {
        mHandler.sendMessage(obtainMessage(Session::handleLogContextCommitted, this,
                saveDialogNotShowReason, commitReason));
        logAllEvents(commitReason);
    }

    private void handleLogContextCommitted(@NoSaveReason int saveDialogNotShowReason,
@@ -2974,6 +2976,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                changedFieldIds, changedDatasetIds, manuallyFilledFieldIds,
                manuallyFilledDatasetIds, detectedFieldIds, detectedFieldClassifications,
                mComponentName, mCompatMode, saveDialogNotShowReason);
        logAllEvents(commitReason);
    }

    /**
@@ -5679,6 +5682,19 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        }
    }

    @GuardedBy("mLock")
    private void logAllEvents(@AutofillCommitReason int val) {
        mSessionCommittedEventLogger.maybeSetCommitReason(val);
        mSessionCommittedEventLogger.maybeSetRequestCount(mRequestCount);
        mSessionCommittedEventLogger.maybeSetSessionDurationMillis(
            SystemClock.elapsedRealtime() - mStartTime);
        mFillRequestEventLogger.logAndEndEvent();
        mFillResponseEventLogger.logAndEndEvent();
        mPresentationStatsEventLogger.logAndEndEvent();
        mSaveEventLogger.logAndEndEvent();
        mSessionCommittedEventLogger.logAndEndEvent();
    }

    /**
     * Destroy this session and perform any clean up work.
     *
@@ -5693,15 +5709,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
    @GuardedBy("mLock")
    RemoteFillService destroyLocked() {
        // Log unlogged events.
        mSessionCommittedEventLogger.maybeSetCommitReason(COMMIT_REASON_SESSION_DESTROYED);
        mSessionCommittedEventLogger.maybeSetRequestCount(mRequestCount);
        mSessionCommittedEventLogger.maybeSetSessionDurationMillis(
            SystemClock.elapsedRealtime() - mStartTime);
        mSessionCommittedEventLogger.logAndEndEvent();
        mPresentationStatsEventLogger.logAndEndEvent();
        mSaveEventLogger.logAndEndEvent();
        mFillResponseEventLogger.logAndEndEvent();
        mFillRequestEventLogger.logAndEndEvent();
        logAllEvents(COMMIT_REASON_SESSION_DESTROYED);

        if (mDestroyed) {
            return null;
+4 −38
Original line number Diff line number Diff line
@@ -16,13 +16,8 @@

package com.android.server.autofill;

import static android.view.autofill.AutofillManager.COMMIT_REASON_UNKNOWN;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_ACTIVITY_FINISHED;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_SESSION_DESTROYED;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_UNKNOWN;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_CHANGED;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_CLICKED;
import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_COMMITTED;
import static com.android.server.autofill.Helper.sVerbose;

import android.annotation.IntDef;
@@ -32,7 +27,7 @@ import android.content.pm.PackageManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Slog;

import android.view.autofill.AutofillManager.AutofillCommitReason;
import com.android.internal.util.FrameworkStatsLog;

import java.lang.annotation.Retention;
@@ -45,35 +40,6 @@ import java.util.Optional;
public final class SessionCommittedEventLogger {
  private static final String TAG = "SessionCommittedEventLogger";

  /**
   * Reasons why presentation was not shown. These are wrappers around
   * {@link com.android.os.AtomsProto.AutofillSessionCommitted.AutofillCommitReason}.
   */
  @IntDef(prefix = {"COMMIT_REASON"}, value = {
      COMMIT_REASON_UNKNOWN,
      COMMIT_REASON_ACTIVITY_FINISHED,
      COMMIT_REASON_VIEW_COMMITTED,
      COMMIT_REASON_VIEW_CLICKED,
      COMMIT_REASON_VIEW_CHANGED,
      COMMIT_REASON_SESSION_DESTROYED
  })
  @Retention(RetentionPolicy.SOURCE)
  public @interface CommitReason {
  }

  public static final int COMMIT_REASON_UNKNOWN =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_UNKNOWN;
  public static final int COMMIT_REASON_ACTIVITY_FINISHED =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_ACTIVITY_FINISHED;
  public static final int COMMIT_REASON_VIEW_COMMITTED =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_COMMITTED;
  public static final int COMMIT_REASON_VIEW_CLICKED =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_CLICKED;
  public static final int COMMIT_REASON_VIEW_CHANGED =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_VIEW_CHANGED;
  public static final int COMMIT_REASON_SESSION_DESTROYED =
      AUTOFILL_SESSION_COMMITTED__COMMIT_REASON__COMMIT_REASON_SESSION_DESTROYED;

  private final int mSessionId;
  private Optional<SessionCommittedEventInternal> mEventInternal;

@@ -110,7 +76,7 @@ public final class SessionCommittedEventLogger {
  /**
   * Set commit_reason as long as mEventInternal presents.
   */
  public void maybeSetCommitReason(@CommitReason int val) {
  public void maybeSetCommitReason(@AutofillCommitReason int val) {
    mEventInternal.ifPresent(event -> {
        event.mCommitReason = val;
    });