Search in sources :

Example 11 with WikiSite

use of org.wikipedia.dataclient.WikiSite in project apps-android-wikipedia by wikimedia.

the class ParcelableTest method testPageImage.

@Test
public void testPageImage() throws Throwable {
    WikiSite wiki = WikiSite.forLanguageCode("en");
    PageTitle title = new PageTitle("Talk", "India", wiki);
    PageImage pageImage = new PageImage(title, "Testing image");
    TestParcelUtil.test(pageImage);
}
Also used : PageTitle(org.wikipedia.page.PageTitle) PageImage(org.wikipedia.pageimages.PageImage) WikiSite(org.wikipedia.dataclient.WikiSite) Test(org.junit.Test)

Example 12 with WikiSite

use of org.wikipedia.dataclient.WikiSite 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);
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) Bundle(android.os.Bundle) ThemeBridgeAdapter(org.wikipedia.theme.ThemeBridgeAdapter) Uri(android.net.Uri) NonNull(android.support.annotation.NonNull) PageActivity(org.wikipedia.page.PageActivity) UriUtil.handleExternalLink(org.wikipedia.util.UriUtil.handleExternalLink) HistoryEntry(org.wikipedia.history.HistoryEntry) WikiSite(org.wikipedia.dataclient.WikiSite) ArrayList(java.util.ArrayList) L10nUtil(org.wikipedia.util.L10nUtil) JSONException(org.json.JSONException) JSONObject(org.json.JSONObject) AssetManager(android.content.res.AssetManager) Locale(java.util.Locale) WikipediaApp(org.wikipedia.WikipediaApp) View(android.view.View) DeviceUtil.hideSoftKeyboard(org.wikipedia.util.DeviceUtil.hideSoftKeyboard) LinkHandler(org.wikipedia.page.LinkHandler) EditSummaryTag(org.wikipedia.edit.summaries.EditSummaryTag) R(org.wikipedia.R) LayoutInflater(android.view.LayoutInflater) Fragment(android.support.v4.app.Fragment) PageTitle(org.wikipedia.page.PageTitle) ProgressDialog(android.app.ProgressDialog) CommunicationBridge(org.wikipedia.bridge.CommunicationBridge) ViewAnimations(org.wikipedia.views.ViewAnimations) DisplayMetrics(android.util.DisplayMetrics) ViewGroup(android.view.ViewGroup) EditFunnel(org.wikipedia.analytics.EditFunnel) List(java.util.List) AlertDialog(android.support.v7.app.AlertDialog) ConfigurationCompat(org.wikipedia.util.ConfigurationCompat) ScrollView(android.widget.ScrollView) Configuration(android.content.res.Configuration) L(org.wikipedia.util.log.L) EditSectionActivity(org.wikipedia.edit.EditSectionActivity) ObservableWebView(org.wikipedia.views.ObservableWebView) Call(retrofit2.Call) Resources(android.content.res.Resources) PageTitle(org.wikipedia.page.PageTitle) JSONException(org.json.JSONException) Uri(android.net.Uri) WikiSite(org.wikipedia.dataclient.WikiSite) JSONObject(org.json.JSONObject) HistoryEntry(org.wikipedia.history.HistoryEntry) LinkHandler(org.wikipedia.page.LinkHandler)

Example 13 with WikiSite

use of org.wikipedia.dataclient.WikiSite in project apps-android-wikipedia by wikimedia.

the class TabUnmarshallerTest method testUnmarshalNoHistoryEntryAuthority.

// T152980
@Test(expected = RuntimeException.class)
public void testUnmarshalNoHistoryEntryAuthority() {
    PageTitle page = new PageTitle("text", WikiSite.forLanguageCode("test"));
    PageTitle prevPage = new PageTitle("text", new WikiSite("", ""));
    HistoryEntry history = new HistoryEntry(prevPage, new Date(0), HistoryEntry.SOURCE_SEARCH);
    Tab tab = new Tab();
    tab.getBackStack().add(new PageBackStackItem(page, history));
    List<Tab> tabs = singletonList(tab);
    TabUnmarshaller.unmarshal(GsonMarshaller.marshal(tabs));
}
Also used : Tab(org.wikipedia.page.tabs.Tab) PageTitle(org.wikipedia.page.PageTitle) HistoryEntry(org.wikipedia.history.HistoryEntry) WikiSite(org.wikipedia.dataclient.WikiSite) PageBackStackItem(org.wikipedia.page.PageBackStackItem) Date(java.util.Date) Test(org.junit.Test)

Example 14 with WikiSite

use of org.wikipedia.dataclient.WikiSite in project apps-android-wikipedia by wikimedia.

the class TabUnmarshallerTest method testUnmarshalNoPageTitleAuthority.

// T152980
@Test(expected = RuntimeException.class)
public void testUnmarshalNoPageTitleAuthority() {
    PageTitle page = new PageTitle("text", new WikiSite("", ""));
    HistoryEntry history = new HistoryEntry(page, new Date(0), HistoryEntry.SOURCE_SEARCH);
    Tab tab = new Tab();
    tab.getBackStack().add(new PageBackStackItem(page, history));
    List<Tab> tabs = singletonList(tab);
    TabUnmarshaller.unmarshal(GsonMarshaller.marshal(tabs));
}
Also used : Tab(org.wikipedia.page.tabs.Tab) PageTitle(org.wikipedia.page.PageTitle) HistoryEntry(org.wikipedia.history.HistoryEntry) WikiSite(org.wikipedia.dataclient.WikiSite) PageBackStackItem(org.wikipedia.page.PageBackStackItem) Date(java.util.Date) Test(org.junit.Test)

Example 15 with WikiSite

use of org.wikipedia.dataclient.WikiSite in project apps-android-wikipedia by wikimedia.

the class WikipediaApp method getUserIdForLanguage.

private void getUserIdForLanguage(@NonNull final String code) {
    if (!AccountUtil.isLoggedIn() || TextUtils.isEmpty(AccountUtil.getUserName())) {
        return;
    }
    final WikiSite wikiSite = WikiSite.forLanguageCode(code);
    userInfoClient.request(wikiSite, AccountUtil.getUserName(), new UserExtendedInfoClient.Callback() {

        @Override
        public void success(@NonNull Call<MwQueryResponse> call, int id, @NonNull UserExtendedInfoClient.ListUserResponse user) {
            if (AccountUtil.isLoggedIn()) {
                AccountUtil.putUserIdForLanguage(code, id);
                L.v("Found user ID " + id + " for " + code);
            }
        }

        @Override
        public void failure(@NonNull Call<MwQueryResponse> call, @NonNull Throwable caught) {
            L.e("Failed to get user ID for " + code, caught);
        }
    });
}
Also used : UserExtendedInfoClient(org.wikipedia.login.UserExtendedInfoClient) MwQueryResponse(org.wikipedia.dataclient.mwapi.MwQueryResponse) WikiSite(org.wikipedia.dataclient.WikiSite)

Aggregations

WikiSite (org.wikipedia.dataclient.WikiSite)35 Test (org.junit.Test)22 PageTitle (org.wikipedia.page.PageTitle)11 HistoryEntry (org.wikipedia.history.HistoryEntry)5 Date (java.util.Date)4 Uri (android.net.Uri)3 Bundle (android.os.Bundle)2 View (android.view.View)2 ArrayList (java.util.ArrayList)2 JSONException (org.json.JSONException)2 JSONObject (org.json.JSONObject)2 Page (org.wikipedia.page.Page)2 PageBackStackItem (org.wikipedia.page.PageBackStackItem)2 PageProperties (org.wikipedia.page.PageProperties)2 Tab (org.wikipedia.page.tabs.Tab)2 MockWebServerTest (org.wikipedia.test.MockWebServerTest)2 ProgressDialog (android.app.ProgressDialog)1 AssetManager (android.content.res.AssetManager)1 Configuration (android.content.res.Configuration)1 Resources (android.content.res.Resources)1