use of org.wikipedia.page.PageTitle in project apps-android-wikipedia by wikimedia.
the class CompilationDetailFragment method onMainPageClick.
@OnClick(R.id.button_compilation_detail_main_page)
void onMainPageClick() {
try {
PageTitle title = new PageTitle(OfflineManager.instance().getMainPageTitle(compilation), WikipediaApp.getInstance().getWikiSite());
HistoryEntry entry = new HistoryEntry(title, HistoryEntry.SOURCE_MAIN_PAGE);
startActivity(PageActivity.newIntentForNewTab(getContext(), entry, entry.getTitle()));
} catch (IOException e) {
L.e(e);
FeedbackUtil.showError(getActivity(), e);
}
}
use of org.wikipedia.page.PageTitle in project apps-android-wikipedia by wikimedia.
the class EditPreviewFragment method displayPreview.
private void displayPreview(final String html) {
if (!isWebViewSetup) {
isWebViewSetup = true;
L10nUtil.setupDirectionality(parentActivity.getPageTitle().getWikiSite().languageCode(), Locale.getDefault().getLanguage(), bridge);
if (!WikipediaApp.getInstance().getCurrentTheme().isDefault()) {
ThemeBridgeAdapter.setTheme(bridge);
}
bridge.addListener("linkClicked", new LinkHandler(getActivity()) {
@Override
public void onPageLinkClicked(@NonNull String href) {
// TODO: also need to handle references, issues, disambig, ... in preview eventually
}
@Override
public void onInternalLinkClicked(@NonNull final PageTitle title) {
showLeavingEditDialogue(() -> startActivity(PageActivity.newIntentForNewTab(getContext(), new HistoryEntry(title, HistoryEntry.SOURCE_INTERNAL_LINK), title)));
}
@Override
public void onExternalLinkClicked(@NonNull final Uri uri) {
showLeavingEditDialogue(() -> handleExternalLink(getContext(), uri));
}
/**
* Shows the user a dialogue asking them if they really meant to leave the edit
* workflow, and warning them that their changes have not yet been saved.
* @param runnable The runnable that is run if the user chooses to leave.
*/
private void showLeavingEditDialogue(final Runnable runnable) {
// Ask the user if they really meant to leave the edit workflow
final AlertDialog leavingEditDialog = new AlertDialog.Builder(getActivity()).setMessage(R.string.dialog_message_leaving_edit).setPositiveButton(R.string.dialog_message_leaving_edit_leave, (dialog, which) -> {
// They meant to leave; close dialogue and run specified action
dialog.dismiss();
runnable.run();
}).setNegativeButton(R.string.dialog_message_leaving_edit_stay, null).create();
leavingEditDialog.show();
}
@Override
public WikiSite getWikiSite() {
return parentActivity.getPageTitle().getWikiSite();
}
});
bridge.addListener("imageClicked", (messageType, messagePayload) -> {
// TODO: do something when an image is clicked in Preview.
});
bridge.addListener("mediaClicked", (messageType, messagePayload) -> {
// TODO: do something when a video is clicked in Preview.
});
bridge.addListener("referenceClicked", (messageType, messagePayload) -> {
// TODO: do something when a reference is clicked in Preview.
});
}
ViewAnimations.fadeIn(previewContainer, () -> parentActivity.supportInvalidateOptionsMenu());
ViewAnimations.fadeOut(getActivity().findViewById(R.id.edit_section_container));
JSONObject payload = new JSONObject();
try {
payload.put("html", html);
payload.put("siteBaseUrl", parentActivity.getPageTitle().getWikiSite().url());
} catch (JSONException e) {
throw new RuntimeException(e);
}
bridge.sendMessage("displayPreviewHTML", payload);
}
use of org.wikipedia.page.PageTitle in project apps-android-wikipedia by wikimedia.
the class FeaturedArticleCardView method footer.
private void footer(@NonNull FeaturedArticleCard card) {
PageTitle title = new PageTitle(card.articleTitle(), card.wikiSite());
CallbackTask.execute(() -> ReadingListDbHelper.instance().findPageInAnyList(title), new CallbackTask.DefaultCallback<ReadingListPage>() {
@Override
public void success(ReadingListPage page) {
boolean pageInList = page != null;
int actionIcon = pageInList ? R.drawable.ic_bookmark_white_24dp : R.drawable.ic_bookmark_border_black_24dp;
int actionText = pageInList ? R.string.view_featured_article_footer_saved_button_label : R.string.view_featured_article_footer_save_button_label;
footerView.actionIcon(actionIcon).actionText(actionText).onActionListener(pageInList ? new CardBookmarkMenuListener() : new CardAddToListListener()).onShareListener(new CardShareListener());
footerView.actionIconColor(ResourceUtil.getThemedAttributeId(getContext(), pageInList ? R.attr.colorAccent : R.attr.secondary_text_color));
footerView.actionTextColor(ResourceUtil.getThemedAttributeId(getContext(), pageInList ? R.attr.colorAccent : R.attr.secondary_text_color));
}
});
}
use of org.wikipedia.page.PageTitle in project apps-android-wikipedia by wikimedia.
the class MainPageClient method getMainPageTitle.
@NonNull
public static PageTitle getMainPageTitle() {
WikipediaApp app = WikipediaApp.getInstance();
PageTitle title = new PageTitle(SiteInfoClient.getMainPageForLang(app.getAppOrSystemLanguageCode()), app.getWikiSite());
if (OfflineManager.hasCompilation() && !DeviceUtil.isOnline()) {
try {
title = new PageTitle(OfflineManager.instance().getMainPageTitle(), app.getWikiSite());
} catch (IOException e) {
L.e(e);
}
}
return title;
}
use of org.wikipedia.page.PageTitle in project apps-android-wikipedia by wikimedia.
the class OnThisDayPagesViewHolder method onBaseViewClicked.
@OnClick(R.id.parent)
void onBaseViewClicked() {
Context context = WikipediaApp.getInstance().getApplicationContext();
PageTitle pageTitle = new PageTitle(selectedPage.getTitle(), wiki);
HistoryEntry entry = new HistoryEntry(pageTitle, isSingleCard ? HistoryEntry.SOURCE_ON_THIS_DAY_CARD : HistoryEntry.SOURCE_ON_THIS_DAY_ACTIVITY);
Intent intent = new Intent(ACTION_LOAD_IN_NEW_TAB).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).setClass(context, PageActivity.class).putExtra(EXTRA_HISTORYENTRY, entry).putExtra(EXTRA_PAGETITLE, pageTitle);
context.startActivity(intent);
}
Aggregations