package org.wikipedia.page;
import android.support.annotation.NonNull;
import org.wikipedia.LongPressHandler;
import org.wikipedia.R;
import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.tabs.TabsProvider;
import org.wikipedia.readinglist.AddToReadingListDialog;
import org.wikipedia.util.ClipboardUtil;
import org.wikipedia.util.FeedbackUtil;
import org.wikipedia.util.ShareUtil;
public abstract class PageContainerLongPressHandler implements LongPressHandler.ContextMenuListener {
@NonNull
private final PageFragment.Callback container;
public PageContainerLongPressHandler(@NonNull PageFragment.Callback container) {
this.container = container;
}
@Override
public void onOpenLink(PageTitle title, HistoryEntry entry) {
container.onPageLoadPage(title, entry);
}
@Override
public void onOpenInNewTab(PageTitle title, HistoryEntry entry) {
container.onPageLoadPage(title, entry, TabsProvider.TabPosition.NEW_TAB_BACKGROUND);
}
@Override
public void onCopyLink(PageTitle title) {
copyLink(title.getCanonicalUri());
showCopySuccessMessage();
}
@Override
public void onShareLink(PageTitle title) {
ShareUtil.shareText(container.getActivity(), title);
}
@Override
public void onAddToList(PageTitle title, AddToReadingListDialog.InvokeSource source) {
container.onPageAddToReadingList(title, source);
}
private void copyLink(String url) {
ClipboardUtil.setPlainText(container.getActivity(), null, url);
}
private void showCopySuccessMessage() {
FeedbackUtil.showMessage(container.getActivity(), R.string.address_copied);
}
}