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

Commit b880a9e0 authored by Miranda Kephart's avatar Miranda Kephart
Browse files

Make sensitive clipboard text preview show asterisks

Bug: 232820831
Fix: 232820831
Test: manual (using clipboard test app)
Change-Id: I1052f949aa7dbde2877185ea3e18d3fe4f61de46
parent 0fca1ee0
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -124,13 +124,12 @@
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <TextView
            android:id="@+id/hidden_text_preview"
            android:id="@+id/hidden_preview"
            android:visibility="gone"
            android:textFontWeight="500"
            android:padding="8dp"
            android:gravity="center"
            android:textSize="14sp"
            android:text="@string/clipboard_text_hidden"
            android:textColor="?attr/overlayButtonTextColor"
            android:background="?androidprv:attr/colorAccentSecondary"
            android:layout_width="@dimen/clipboard_preview_size"
+2 −0
Original line number Diff line number Diff line
@@ -2494,6 +2494,8 @@
    <string name="clipboard_send_nearby_description">Send to nearby device</string>
    <!-- Text informing user that copied content is hidden [CHAR LIMIT=NONE] -->
    <string name="clipboard_text_hidden">Tap to view</string>
    <!-- Asterisks replacing sensitive text content -->
    <string name="clipboard_asterisks" translatable="false">••••••</string>
    <!-- Accessibility announcement informing user that text has been copied [CHAR LIMIT=NONE] -->
    <string name="clipboard_text_copied">Text copied</string>
    <!-- Accessibility announcement informing user that text has been copied [CHAR LIMIT=NONE] -->
+8 −7
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ public class ClipboardOverlayController {
    private final View mClipboardPreview;
    private final ImageView mImagePreview;
    private final TextView mTextPreview;
    private final TextView mHiddenTextPreview;
    private final TextView mHiddenPreview;
    private final View mPreviewBorder;
    private final OverlayActionChip mEditChip;
    private final OverlayActionChip mShareChip;
@@ -203,7 +203,7 @@ public class ClipboardOverlayController {
        mClipboardPreview = requireNonNull(mView.findViewById(R.id.clipboard_preview));
        mImagePreview = requireNonNull(mView.findViewById(R.id.image_preview));
        mTextPreview = requireNonNull(mView.findViewById(R.id.text_preview));
        mHiddenTextPreview = requireNonNull(mView.findViewById(R.id.hidden_text_preview));
        mHiddenPreview = requireNonNull(mView.findViewById(R.id.hidden_preview));
        mPreviewBorder = requireNonNull(mView.findViewById(R.id.preview_border));
        mEditChip = requireNonNull(mView.findViewById(R.id.edit_chip));
        mShareChip = requireNonNull(mView.findViewById(R.id.share_chip));
@@ -328,7 +328,7 @@ public class ClipboardOverlayController {
            }
            if (isSensitive) {
                showEditableText(
                        mContext.getResources().getString(R.string.clipboard_text_hidden), true);
                        mContext.getResources().getString(R.string.clipboard_asterisks), true);
            } else {
                showEditableText(item.getText(), false);
            }
@@ -500,7 +500,7 @@ public class ClipboardOverlayController {
    private void showSinglePreview(View v) {
        mTextPreview.setVisibility(View.GONE);
        mImagePreview.setVisibility(View.GONE);
        mHiddenTextPreview.setVisibility(View.GONE);
        mHiddenPreview.setVisibility(View.GONE);
        v.setVisibility(View.VISIBLE);
    }

@@ -511,7 +511,7 @@ public class ClipboardOverlayController {
    }

    private void showEditableText(CharSequence text, boolean hidden) {
        TextView textView = hidden ? mHiddenTextPreview : mTextPreview;
        TextView textView = hidden ? mHiddenPreview : mTextPreview;
        showTextPreview(text, textView);
        View.OnClickListener listener = v -> editText();
        if (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
@@ -532,9 +532,10 @@ public class ClipboardOverlayController {
        String mimeType = resolver.getType(uri);
        boolean isEditableImage = mimeType != null && mimeType.startsWith("image");
        if (isSensitive) {
            showSinglePreview(mHiddenTextPreview);
            mHiddenPreview.setText(mContext.getString(R.string.clipboard_text_hidden));
            showSinglePreview(mHiddenPreview);
            if (isEditableImage) {
                mHiddenTextPreview.setOnClickListener(listener);
                mHiddenPreview.setOnClickListener(listener);
            }
        } else if (isEditableImage) { // if the MIMEtype is image, try to load
            try {