Add attribution to clipboard text editing
Shows the app that text being edited was copied from. Bug: 195554988 Test: manual Change-Id: I0cd64d15ded2089926475a9c7994bffb8f54f761
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user