Dbrant has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/374339 )
Change subject: Fix sharing of article snippets when offline. ...................................................................... Fix sharing of article snippets when offline. The sharing of article text is dependent on successfully fetching the license information for the lead image of the article. If the fetching task fails, nothing happens. Change-Id: Id2cf5d6b79902b26784be3dc9d33316d2b9c90a1 --- M app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java 1 file changed, 25 insertions(+), 15 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/39/374339/1 diff --git a/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java b/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java index 4190fa6..94259a8 100755 --- a/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java +++ b/app/src/main/java/org/wikipedia/page/snippet/ShareHandler.java @@ -1,5 +1,6 @@ package org.wikipedia.page.snippet; +import android.content.Context; import android.content.DialogInterface; import android.content.res.Resources; import android.graphics.Bitmap; @@ -139,7 +140,6 @@ final String leadImageNameText = fragment.getPage().getPageProperties().getLeadImageName() != null ? fragment.getPage().getPageProperties().getLeadImageName() : ""; - new ImageLicenseFetchClient().request(title.getWikiSite(), new PageTitle(Namespace.FILE.toLegacyString(), leadImageNameText, title.getWikiSite()), new ImageLicenseFetchClient.Callback() { @@ -151,11 +151,14 @@ fragment.getPage().isMainPage() ? "" : StringUtils.capitalize(title.getDescription()), selectedText, result); - fragment.showBottomSheet(new PreviewDialog(fragment, snippetBitmap, title, selectedText, funnel)); + fragment.showBottomSheet(new PreviewDialog(fragment.getContext(), + snippetBitmap, title, selectedText, funnel)); } @Override public void failure(@NonNull Call<MwQueryResponse> call, @NonNull Throwable caught) { + // If we failed to get license info for the lead image, just share the text + PreviewDialog.shareAsText(fragment.getContext(), title, selectedText, funnel); L.e("Error fetching image license info for " + title.getDisplayText(), caught); } }); @@ -300,10 +303,10 @@ class PreviewDialog extends NoDimBottomSheetDialog { private boolean completed = false; - PreviewDialog(final PageFragment fragment, final Bitmap resultBitmap, final PageTitle title, + PreviewDialog(final Context context, final Bitmap resultBitmap, final PageTitle title, final String selectedText, final ShareAFactFunnel funnel) { - super(fragment.getContext()); - View rootView = LayoutInflater.from(fragment.getContext()).inflate(R.layout.dialog_share_preview, null); + super(context); + View rootView = LayoutInflater.from(context).inflate(R.layout.dialog_share_preview, null); setContentView(rootView); ImageView previewImage = (ImageView) rootView.findViewById(R.id.preview_img); previewImage.setImageBitmap(resultBitmap); @@ -318,10 +321,10 @@ .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String introText = fragment.getContext().getString(R.string.snippet_share_intro, + String introText = context.getString(R.string.snippet_share_intro, title.getDisplayText(), - UriUtil.getUrlWithProvenance(fragment.getContext(), title, R.string.prov_share_image)); - ShareUtil.shareImage(fragment.getContext(), resultBitmap, title.getDisplayText(), + UriUtil.getUrlWithProvenance(context, title, R.string.prov_share_image)); + ShareUtil.shareImage(context, resultBitmap, title.getDisplayText(), title.getDisplayText(), introText); funnel.logShareIntent(selectedText, ShareMode.image); completed = true; @@ -331,12 +334,7 @@ .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String introText = fragment.getContext().getString(R.string.snippet_share_intro, - title.getDisplayText(), - UriUtil.getUrlWithProvenance(fragment.getContext(), title, R.string.prov_share_text)); - ShareUtil.shareText(fragment.getContext(), title.getDisplayText(), - constructShareText(selectedText, introText)); - funnel.logShareIntent(selectedText, ShareMode.text); + shareAsText(context, title, selectedText, funnel); completed = true; } }); @@ -352,7 +350,19 @@ startExpanded(); } - private String constructShareText(String selectedText, String introText) { + static void shareAsText(@NonNull Context context, @NonNull PageTitle title, + @NonNull String selectedText, @Nullable ShareAFactFunnel funnel) { + String introText = context.getString(R.string.snippet_share_intro, + title.getDisplayText(), + UriUtil.getUrlWithProvenance(context, title, R.string.prov_share_text)); + ShareUtil.shareText(context, title.getDisplayText(), + constructShareText(selectedText, introText)); + if (funnel != null) { + funnel.logShareIntent(selectedText, ShareMode.text); + } + } + + private static String constructShareText(String selectedText, String introText) { return selectedText + "\n\n" + introText; } } -- To view, visit https://gerrit.wikimedia.org/r/374339 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id2cf5d6b79902b26784be3dc9d33316d2b9c90a1 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Dbrant <dbr...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits