Commit 76257d1a authored by Marcin Wiacek's avatar Marcin Wiacek Committed by Commit Bot

Add lambdas & URL copying after long press in new context menu

1. Mimic Page Info behavior on URL -> add copying URL to clipboard
after long press on header
2. Move code to using lambdas in TabularContextMenuUi.java

Change-Id: If61c74b6abe1bff37b7fe168715041d8ed5d0028
Reviewed-on: https://chromium-review.googlesource.com/1088692Reviewed-by: default avatarBernhard Bauer <bauerb@chromium.org>
Commit-Queue: Marcin Wiącek <marcin@mwiacek.com>
Cr-Commit-Position: refs/heads/master@{#565383}
parent fa70f90f
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
package org.chromium.chrome.browser.contextmenu; package org.chromium.chrome.browser.contextmenu;
import android.app.Activity; import android.app.Activity;
import android.content.DialogInterface; import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Canvas; import android.graphics.Canvas;
...@@ -31,6 +33,7 @@ import org.chromium.base.Callback; ...@@ -31,6 +33,7 @@ import org.chromium.base.Callback;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.widget.ContextMenuDialog; import org.chromium.chrome.browser.widget.ContextMenuDialog;
import org.chromium.ui.widget.Toast;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -64,19 +67,9 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl ...@@ -64,19 +67,9 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
mContextMenuDialog = mContextMenuDialog =
createContextMenuDialog(activity, params, items, touchPointXPx, touchPointYPx); createContextMenuDialog(activity, params, items, touchPointXPx, touchPointYPx);
mContextMenuDialog.setOnShowListener(new DialogInterface.OnShowListener() { mContextMenuDialog.setOnShowListener(dialogInterface -> { onMenuShown.run(); });
@Override
public void onShow(DialogInterface dialogInterface) {
onMenuShown.run();
}
});
mContextMenuDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { mContextMenuDialog.setOnDismissListener(dialogInterface -> { onMenuClosed.run(); });
@Override
public void onDismiss(DialogInterface dialogInterface) {
onMenuClosed.run();
}
});
mContextMenuDialog.show(); mContextMenuDialog.show();
} }
...@@ -203,18 +196,24 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl ...@@ -203,18 +196,24 @@ public class TabularContextMenuUi implements ContextMenuUi, AdapterView.OnItemCl
} }
headerTextView.setVisibility(View.VISIBLE); headerTextView.setVisibility(View.VISIBLE);
headerTextView.setText(headerText); headerTextView.setText(headerText);
headerTextView.setOnClickListener(new View.OnClickListener() { headerTextView.setOnClickListener(view -> {
@Override if (headerTextView.getMaxLines() == Integer.MAX_VALUE) {
public void onClick(View view) { headerTextView.setMaxLines(1);
if (headerTextView.getMaxLines() == Integer.MAX_VALUE) { headerTextView.setEllipsize(TextUtils.TruncateAt.END);
headerTextView.setMaxLines(1); } else {
headerTextView.setEllipsize(TextUtils.TruncateAt.END); headerTextView.setMaxLines(Integer.MAX_VALUE);
} else { headerTextView.setEllipsize(null);
headerTextView.setMaxLines(Integer.MAX_VALUE);
headerTextView.setEllipsize(null);
}
} }
}); });
if (TextUtils.isEmpty(params.getUnfilteredLinkUrl())) return;
headerTextView.setOnLongClickListener(view -> {
ClipboardManager clipboard = (ClipboardManager) view.getContext().getSystemService(
Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("url", params.getUnfilteredLinkUrl());
clipboard.setPrimaryClip(clip);
Toast.makeText(view.getContext(), R.string.url_copied, Toast.LENGTH_SHORT).show();
return true;
});
} }
private void displayImageHeader( private void displayImageHeader(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment