Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1104)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java

Issue 2459033002: 📰 Add a context menu to remove status items (Closed)
Patch Set: close the menu when the view is detached Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java
index 48ec0ee071cab3ae868681c1abfaca266c590a34..e49495e0a08c36ef04efce80b1ef5b4c4ce0a75e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/StatusCardViewHolder.java
@@ -7,27 +7,33 @@
import android.content.Context;
import android.support.annotation.IntegerRes;
import android.support.annotation.StringRes;
+import android.view.ContextMenu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.ntp.ContextMenuHandler;
+import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
import org.chromium.chrome.browser.ntp.UiConfig;
import org.chromium.chrome.browser.ntp.snippets.SnippetsConfig;
/**
* ViewHolder for Status and Promo cards.
*/
-public class StatusCardViewHolder extends CardViewHolder {
+public class StatusCardViewHolder extends CardViewHolder implements ContextMenuHandler.Delegate {
private final TextView mTitleView;
private final TextView mBodyView;
private final Button mActionView;
+ private final NewTabPageManager mNtpManager;
- public StatusCardViewHolder(NewTabPageRecyclerView parent, UiConfig config) {
+ public StatusCardViewHolder(
+ NewTabPageRecyclerView parent, NewTabPageManager newTabPageManager, UiConfig config) {
super(R.layout.new_tab_page_status_card, parent, config);
mTitleView = (TextView) itemView.findViewById(R.id.status_title);
mBodyView = (TextView) itemView.findViewById(R.id.status_body);
mActionView = (Button) itemView.findViewById(R.id.status_action_button);
+ mNtpManager = newTabPageManager;
}
/**
@@ -83,6 +89,33 @@ public void onClick(View v) {
}
@Override
+ protected void createContextMenu(ContextMenu menu) {
+ ContextMenuHandler handler = new ContextMenuHandler(mNtpManager, getRecyclerView(), this) {
+
Bernhard Bauer 2016/11/11 13:30:08 Remove the empty line?
dgn 2016/11/14 18:34:08 Done.
+ @Override
+ public boolean showItem(@ContextMenuItemId int itemId) {
+ return itemId == ID_REMOVE && isDismissable();
+ }
+ };
+ handler.onCreateContextMenu(menu, itemView);
+ }
+
+ @Override
+ public void openItem(int windowDisposition) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void removeItem() {
+ getRecyclerView().dismissItemWithAnimation(this);
+ }
+
+ @Override
+ public boolean canBeSavedOffline() {
+ return false;
+ }
+
+ @Override
public boolean isDismissable() {
return SnippetsConfig.isSectionDismissalEnabled();
}

Powered by Google App Engine
This is Rietveld 408576698