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

Commit d014f5fd authored by Miranda Kephart's avatar Miranda Kephart Committed by Automerger Merge Worker
Browse files

Merge "Hide edit buttons on clipboard and clipboard smart actions" into tm-dev...

Merge "Hide edit buttons on clipboard and clipboard smart actions" into tm-dev am: be2681d3 am: 6c3e0cf8 am: 93aa8e26 am: aafb0631

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



Change-Id: I1add1eaa2742683f9ee951efe27f70dda4653609
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c9a1bd69 aafb0631
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -549,6 +549,18 @@ public final class SystemUiDeviceConfigFlags {
     */
     */
    public static final String PERSISTS_WIDGET_PROVIDER_INFO = "persists_widget_provider_info";
    public static final String PERSISTS_WIDGET_PROVIDER_INFO = "persists_widget_provider_info";


    /**
     * (boolean) Whether the clipboard overlay shows an edit button (as opposed to requiring tapping
     * the preview to send an edit intent).
     */
    public static final String CLIPBOARD_OVERLAY_SHOW_EDIT_BUTTON =
            "clipboard_overlay_show_edit_button";

    /**
     * (boolean) Whether to show smart chips (based on TextClassifier) in the clipboard overlay.
     */
    public static final String CLIPBOARD_OVERLAY_SHOW_ACTIONS = "clipboard_overlay_show_actions";

    private SystemUiDeviceConfigFlags() {
    private SystemUiDeviceConfigFlags() {
    }
    }
}
}
+31 −17
Original line number Original line Diff line number Diff line
@@ -21,6 +21,8 @@ import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.LayoutParams.TYPE_SCREENSHOT;
import static android.view.WindowManager.LayoutParams.TYPE_SCREENSHOT;


import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.CLIPBOARD_OVERLAY_SHOW_ACTIONS;
import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.CLIPBOARD_OVERLAY_SHOW_EDIT_BUTTON;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ACTION_TAPPED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_ACTION_TAPPED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_EDIT_TAPPED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_EDIT_TAPPED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED;
import static com.android.systemui.clipboardoverlay.ClipboardOverlayEvent.CLIPBOARD_OVERLAY_REMOTE_COPY_TAPPED;
@@ -58,6 +60,7 @@ import android.hardware.input.InputManager;
import android.net.Uri;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.AsyncTask;
import android.os.Looper;
import android.os.Looper;
import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Log;
@@ -314,9 +317,12 @@ public class ClipboardOverlayController {
            accessibilityAnnouncement = mContext.getString(R.string.clipboard_content_copied);
            accessibilityAnnouncement = mContext.getString(R.string.clipboard_content_copied);
        } else if (!TextUtils.isEmpty(clipData.getItemAt(0).getText())) {
        } else if (!TextUtils.isEmpty(clipData.getItemAt(0).getText())) {
            ClipData.Item item = clipData.getItemAt(0);
            ClipData.Item item = clipData.getItemAt(0);
            if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
                    CLIPBOARD_OVERLAY_SHOW_ACTIONS, false)) {
                if (item.getTextLinks() != null) {
                if (item.getTextLinks() != null) {
                    AsyncTask.execute(() -> classifyText(clipData.getItemAt(0), clipSource));
                    AsyncTask.execute(() -> classifyText(clipData.getItemAt(0), clipSource));
                }
                }
            }
            if (isSensitive) {
            if (isSensitive) {
                showEditableText(
                showEditableText(
                        mContext.getResources().getString(R.string.clipboard_text_hidden), true);
                        mContext.getResources().getString(R.string.clipboard_text_hidden), true);
@@ -373,16 +379,20 @@ public class ClipboardOverlayController {
        }
        }
        mView.post(() -> {
        mView.post(() -> {
            resetActionChips();
            resetActionChips();
            if (actions.size() > 0) {
                mActionContainerBackground.setVisibility(View.VISIBLE);
                for (RemoteAction action : actions) {
                for (RemoteAction action : actions) {
                    Intent targetIntent = action.getActionIntent().getIntent();
                    Intent targetIntent = action.getActionIntent().getIntent();
                    ComponentName component = targetIntent.getComponent();
                    ComponentName component = targetIntent.getComponent();
                if (component != null && !TextUtils.equals(source, component.getPackageName())) {
                    if (component != null && !TextUtils.equals(source,
                            component.getPackageName())) {
                        OverlayActionChip chip = constructActionChip(action);
                        OverlayActionChip chip = constructActionChip(action);
                        mActionContainer.addView(chip);
                        mActionContainer.addView(chip);
                        mActionChips.add(chip);
                        mActionChips.add(chip);
                        break; // only show at most one action chip
                        break; // only show at most one action chip
                    }
                    }
                }
                }
            }
        });
        });
    }
    }


@@ -478,13 +488,16 @@ public class ClipboardOverlayController {
    private void showEditableText(CharSequence text, boolean hidden) {
    private void showEditableText(CharSequence text, boolean hidden) {
        TextView textView = hidden ? mHiddenTextPreview : mTextPreview;
        TextView textView = hidden ? mHiddenTextPreview : mTextPreview;
        showTextPreview(text, textView);
        showTextPreview(text, textView);
        View.OnClickListener listener = v -> editText();
        if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
                CLIPBOARD_OVERLAY_SHOW_EDIT_BUTTON, false)) {
            mEditChip.setVisibility(View.VISIBLE);
            mEditChip.setVisibility(View.VISIBLE);
            mActionContainerBackground.setVisibility(View.VISIBLE);
            mActionContainerBackground.setVisibility(View.VISIBLE);
            mEditChip.setAlpha(1f);
            mEditChip.setAlpha(1f);
            mEditChip.setContentDescription(
            mEditChip.setContentDescription(
                    mContext.getString(R.string.clipboard_edit_text_description));
                    mContext.getString(R.string.clipboard_edit_text_description));
        View.OnClickListener listener = v -> editText();
            mEditChip.setOnClickListener(listener);
            mEditChip.setOnClickListener(listener);
        }
        textView.setOnClickListener(listener);
        textView.setOnClickListener(listener);
    }
    }


@@ -519,7 +532,8 @@ public class ClipboardOverlayController {
                    mContext.getResources().getString(R.string.clipboard_overlay_text_copied),
                    mContext.getResources().getString(R.string.clipboard_overlay_text_copied),
                    mTextPreview);
                    mTextPreview);
        }
        }
        if (isEditableImage) {
        if (isEditableImage && DeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_SYSTEMUI, CLIPBOARD_OVERLAY_SHOW_EDIT_BUTTON, false)) {
            mEditChip.setVisibility(View.VISIBLE);
            mEditChip.setVisibility(View.VISIBLE);
            mEditChip.setAlpha(1f);
            mEditChip.setAlpha(1f);
            mActionContainerBackground.setVisibility(View.VISIBLE);
            mActionContainerBackground.setVisibility(View.VISIBLE);
+6 −4
Original line number Original line Diff line number Diff line
@@ -681,8 +681,10 @@ public class ScreenshotView extends FrameLayout implements
        });
        });
        chips.add(mShareChip);
        chips.add(mShareChip);


        mEditChip.setContentDescription(mContext.getString(R.string.screenshot_edit_description));
        mEditChip.setContentDescription(
        mEditChip.setIcon(Icon.createWithResource(mContext, R.drawable.ic_screenshot_edit), true);
                mContext.getString(R.string.screenshot_edit_description));
        mEditChip.setIcon(Icon.createWithResource(mContext, R.drawable.ic_screenshot_edit),
                true);
        mEditChip.setOnClickListener(v -> {
        mEditChip.setOnClickListener(v -> {
            mEditChip.setIsPending(true);
            mEditChip.setIsPending(true);
            mShareChip.setIsPending(false);
            mShareChip.setIsPending(false);