diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java index 62c961190306..c21e36ab6ecc 100644 --- a/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/clipboardoverlay/ClipboardOverlayController.java @@ -97,6 +97,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.NonNull; import androidx.core.view.ViewCompat; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; @@ -132,7 +133,7 @@ public class ClipboardOverlayController { private static final int FONT_SEARCH_STEP_PX = 4; private final Context mContext; - private final UiEventLogger mUiEventLogger; + private final ClipboardLogger mClipboardLogger; private final BroadcastDispatcher mBroadcastDispatcher; private final DisplayManager mDisplayManager; private final DisplayMetrics mDisplayMetrics; @@ -181,7 +182,7 @@ public class ClipboardOverlayController { final Context displayContext = context.createDisplayContext(getDefaultDisplay()); mContext = displayContext.createWindowContext(TYPE_SCREENSHOT, null); - mUiEventLogger = uiEventLogger; + mClipboardLogger = new ClipboardLogger(uiEventLogger); mAccessibilityManager = AccessibilityManager.getInstance(mContext); mTextClassifier = requireNonNull(context.getSystemService(TextClassificationManager.class)) @@ -231,7 +232,7 @@ public class ClipboardOverlayController { @Override public void onSwipeDismissInitiated(Animator animator) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_SWIPE_DISMISSED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_SWIPE_DISMISSED); mExitAnimator = animator; } @@ -249,7 +250,7 @@ public class ClipboardOverlayController { }); mDismissButton.setOnClickListener(view -> { - mUiEventLogger.log(CLIPBOARD_OVERLAY_DISMISS_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_DISMISS_TAPPED); animateOut(); }); @@ -285,7 +286,8 @@ public class ClipboardOverlayController { int newDisplayId) { if (mContext.getResources().getConfiguration().orientation != mOrientation) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_DISMISSED_OTHER); + mClipboardLogger.logSessionComplete( + CLIPBOARD_OVERLAY_DISMISSED_OTHER); hideImmediate(); } } @@ -300,7 +302,7 @@ public class ClipboardOverlayController { }); mTimeoutHandler.setOnTimeoutRunnable(() -> { - mUiEventLogger.log(CLIPBOARD_OVERLAY_TIMED_OUT); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_TIMED_OUT); animateOut(); }); @@ -308,7 +310,7 @@ public class ClipboardOverlayController { @Override public void onReceive(Context context, Intent intent) { if (ACTION_CLOSE_SYSTEM_DIALOGS.equals(intent.getAction())) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_DISMISSED_OTHER); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_DISMISSED_OTHER); animateOut(); } } @@ -320,7 +322,7 @@ public class ClipboardOverlayController { @Override public void onReceive(Context context, Intent intent) { if (SCREENSHOT_ACTION.equals(intent.getAction())) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_DISMISSED_OTHER); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_DISMISSED_OTHER); animateOut(); } } @@ -390,7 +392,7 @@ public class ClipboardOverlayController { mContext.getString(R.string.clipboard_send_nearby_description)); mRemoteCopyChip.setVisibility(View.VISIBLE); mRemoteCopyChip.setOnClickListener((v) -> { - mUiEventLogger.log(CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED); mContext.startActivity(remoteCopyIntent); animateOut(); }); @@ -450,7 +452,7 @@ public class ClipboardOverlayController { chip.setContentDescription(action.getTitle()); chip.setIcon(action.getIcon(), false); chip.setPendingIntent(action.getActionIntent(), () -> { - mUiEventLogger.log(CLIPBOARD_OVERLAY_ACTION_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_ACTION_TAPPED); animateOut(); }); chip.setAlpha(1); @@ -486,7 +488,7 @@ public class ClipboardOverlayController { touchRegion.op(tmpRect, Region.Op.UNION); if (!touchRegion.contains( (int) motionEvent.getRawX(), (int) motionEvent.getRawY())) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_TAP_OUTSIDE); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_TAP_OUTSIDE); animateOut(); } } @@ -497,7 +499,7 @@ public class ClipboardOverlayController { } private void editImage(Uri uri) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_EDIT_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_EDIT_TAPPED); String editorPackage = mContext.getString(R.string.config_screenshotEditor); Intent editIntent = new Intent(Intent.ACTION_EDIT); if (!TextUtils.isEmpty(editorPackage)) { @@ -512,7 +514,7 @@ public class ClipboardOverlayController { } private void editText() { - mUiEventLogger.log(CLIPBOARD_OVERLAY_EDIT_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_EDIT_TAPPED); Intent editIntent = new Intent(mContext, EditTextActivity.class); editIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); mContext.startActivity(editIntent); @@ -520,7 +522,7 @@ public class ClipboardOverlayController { } private void shareContent(ClipData clip) { - mUiEventLogger.log(CLIPBOARD_OVERLAY_SHARE_TAPPED); + mClipboardLogger.logSessionComplete(CLIPBOARD_OVERLAY_SHARE_TAPPED); Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setDataAndType( clip.getItemAt(0).getUri(), clip.getDescription().getMimeType(0)); @@ -866,6 +868,7 @@ public class ClipboardOverlayController { mRemoteCopyChip.setVisibility(View.GONE); resetActionChips(); mTimeoutHandler.cancelTimeout(); + mClipboardLogger.reset(); } @MainThread @@ -971,4 +974,24 @@ public class ClipboardOverlayController { mWindowManager.updateViewLayout(decorView, mWindowLayoutParams); } } + + static class ClipboardLogger { + private final UiEventLogger mUiEventLogger; + private boolean mGuarded = false; + + ClipboardLogger(UiEventLogger uiEventLogger) { + mUiEventLogger = uiEventLogger; + } + + void logSessionComplete(@NonNull UiEventLogger.UiEventEnum event) { + if (!mGuarded) { + mGuarded = true; + mUiEventLogger.log(event); + } + } + + void reset() { + mGuarded = false; + } + } } |