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

Commit 551b26eb authored by Miranda Kephart's avatar Miranda Kephart
Browse files

Add attribution to clipboard text editing

Shows the app that text being edited was copied from.

Bug: 195554988
Test: manual
Change-Id: I0cd64d15ded2089926475a9c7994bffb8f54f761
parent 30498450
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2384,6 +2384,8 @@
    <string name="clipboard_edit_text_copy">Copy</string>
    <!-- Text informing user that content has been copied to the system clipboard [CHAR LIMIT=NONE] -->
    <string name="clipboard_overlay_text_copied">Copied</string>
    <!-- Text informing user where text being edited was copied from [CHAR LIMIT=NONE] -->
    <string name="clipboard_edit_source">From <xliff:g id="appName" example="Gmail">%1$s</xliff:g></string>
    <!-- Label for button to dismiss clipboard overlay [CHAR LIMIT=NONE] -->
    <string name="clipboard_dismiss_description">Dismiss copy UI</string>
</resources>
+16 −1
Original line number Diff line number Diff line
@@ -22,9 +22,12 @@ import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;

import com.android.systemui.R;

@@ -32,8 +35,11 @@ import com.android.systemui.R;
 * Lightweight activity for editing text clipboard contents
 */
public class EditTextActivity extends Activity {
    private static final String TAG = "EditTextActivity";

    private EditText mEditText;
    private ClipboardManager mClipboardManager;
    private TextView mAttribution;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
@@ -42,6 +48,7 @@ public class EditTextActivity extends Activity {
        findViewById(R.id.copy_button).setOnClickListener((v) -> saveToClipboard());
        findViewById(R.id.share).setOnClickListener((v) -> share());
        mEditText = findViewById(R.id.edit_text);
        mAttribution = findViewById(R.id.attribution);
        mClipboardManager = requireNonNull(getSystemService(ClipboardManager.class));
    }

@@ -53,7 +60,15 @@ public class EditTextActivity extends Activity {
            finish();
            return;
        }
        // TODO: put clip attribution in R.id.attribution TextView
        PackageManager pm = getApplicationContext().getPackageManager();
        try {
            CharSequence label = pm.getApplicationLabel(
                    pm.getApplicationInfo(mClipboardManager.getPrimaryClipSource(),
                            PackageManager.ApplicationInfoFlags.of(0)));
            mAttribution.setText(getResources().getString(R.string.clipboard_edit_source, label));
        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, "Package not found: " + mClipboardManager.getPrimaryClipSource(), e);
        }
        mEditText.setText(clip.getItemAt(0).getText());
        mEditText.requestFocus();
    }