Merge "Guard clipboard overlay logging method" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a9aaecab10
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user