Merge "Hide edit buttons on clipboard and clipboard smart actions" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
be2681d3e9
@@ -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() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user