Dbrant has uploaded a new change for review.
https://gerrit.wikimedia.org/r/306668
Change subject: Decouple WiktionaryDialog from MainActivity.
......................................................................
Decouple WiktionaryDialog from MainActivity.
Change-Id: I4ca7903ea569c26fbd991e793b02254e91434e47
---
M app/src/main/java/org/wikipedia/MainActivity.java
M app/src/main/java/org/wikipedia/page/PageActivity.java
M app/src/main/java/org/wikipedia/wiktionary/WiktionaryDialog.java
3 files changed, 32 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/68/306668/1
diff --git a/app/src/main/java/org/wikipedia/MainActivity.java
b/app/src/main/java/org/wikipedia/MainActivity.java
index ca55d1b..5bb5350 100644
--- a/app/src/main/java/org/wikipedia/MainActivity.java
+++ b/app/src/main/java/org/wikipedia/MainActivity.java
@@ -108,6 +108,7 @@
import org.wikipedia.util.log.L;
import org.wikipedia.views.WikiDrawerLayout;
import org.wikipedia.widgets.WidgetProviderFeaturedPage;
+import org.wikipedia.wiktionary.WiktionaryDialog;
import org.wikipedia.zero.ZeroConfig;
import java.io.File;
@@ -121,7 +122,7 @@
public class MainActivity extends ThemedActionBarActivity implements
PageFragment.Callback,
FeedFragment.Callback, NearbyFragment.Callback,
HistoryFragment.Callback,
ReadingListsFragment.Callback, LinkPreviewDialog.Callback,
SearchArticlesFragment.Callback,
- SearchResultsFragment.Callback, AddToReadingListDialog.Callback {
+ SearchResultsFragment.Callback, AddToReadingListDialog.Callback,
WiktionaryDialog.Callback {
public static final int ACTIVITY_REQUEST_LANGLINKS = 0;
public static final int ACTIVITY_REQUEST_EDIT_SECTION = 1;
public static final int ACTIVITY_REQUEST_GALLERY = 2;
@@ -1136,6 +1137,13 @@
showCopySuccessMessage();
}
+ @Override
+ public void wiktionaryShowDialogForTerm(@NonNull String term) {
+ if (getCurPageFragment() != null) {
+
getCurPageFragment().getShareHandler().showWiktionaryDefinition(term);
+ }
+ }
+
private void copyLink(@NonNull String url) {
ClipboardUtil.setPlainText(this, null, url);
}
diff --git a/app/src/main/java/org/wikipedia/page/PageActivity.java
b/app/src/main/java/org/wikipedia/page/PageActivity.java
index a989c95..184a4dc 100644
--- a/app/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/app/src/main/java/org/wikipedia/page/PageActivity.java
@@ -81,6 +81,7 @@
import org.wikipedia.util.ShareUtil;
import org.wikipedia.util.log.L;
import org.wikipedia.widgets.WidgetProviderFeaturedPage;
+import org.wikipedia.wiktionary.WiktionaryDialog;
import org.wikipedia.zero.ZeroConfig;
import butterknife.BindView;
@@ -93,7 +94,7 @@
public class PageActivity extends ThemedActionBarActivity implements
PageFragment.Callback,
LinkPreviewDialog.Callback, OverhaulSearchFragment.Callback,
- SearchResultsFragment.Callback {
+ SearchResultsFragment.Callback, WiktionaryDialog.Callback {
public static final int ACTIVITY_REQUEST_LANGLINKS = 0;
public static final int ACTIVITY_REQUEST_EDIT_SECTION = 1;
public static final int ACTIVITY_REQUEST_GALLERY = 2;
@@ -693,6 +694,11 @@
showCopySuccessMessage();
}
+ @Override
+ public void wiktionaryShowDialogForTerm(@NonNull String term) {
+ pageFragment.getShareHandler().showWiktionaryDefinition(term);
+ }
+
private void copyLink(@NonNull String url) {
ClipboardUtil.setPlainText(this, null, url);
}
diff --git a/app/src/main/java/org/wikipedia/wiktionary/WiktionaryDialog.java
b/app/src/main/java/org/wikipedia/wiktionary/WiktionaryDialog.java
index 18d805c..855f22e 100644
--- a/app/src/main/java/org/wikipedia/wiktionary/WiktionaryDialog.java
+++ b/app/src/main/java/org/wikipedia/wiktionary/WiktionaryDialog.java
@@ -3,6 +3,7 @@
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
@@ -14,10 +15,10 @@
import org.wikipedia.R;
import org.wikipedia.Site;
import org.wikipedia.WikipediaApp;
+import org.wikipedia.activity.FragmentUtil;
import org.wikipedia.analytics.WiktionaryDialogFunnel;
import org.wikipedia.page.ExtendedBottomSheetDialogFragment;
import org.wikipedia.page.LinkMovementMethodExt;
-import org.wikipedia.MainActivity;
import org.wikipedia.page.PageTitle;
import org.wikipedia.server.PageServiceFactory;
import org.wikipedia.server.PageService;
@@ -33,6 +34,10 @@
import static org.wikipedia.util.StringUtil.removeSectionAnchor;
public class WiktionaryDialog extends ExtendedBottomSheetDialogFragment {
+ public interface Callback {
+ void wiktionaryShowDialogForTerm(@NonNull String term);
+ }
+
private static final String WIKTIONARY_DOMAIN = ".wiktionary.org";
private static final String TITLE = "title";
private static final String SELECTED_TEXT = "selected_text";
@@ -202,17 +207,10 @@
public void onUrlClick(String url) {
if (url.startsWith(PATH_WIKI) ||
url.startsWith(PATH_CURRENT)) {
dismiss();
- if (currentPageFragmentExists()) {
- showNewDialogForLink(url);
- }
+ showNewDialogForLink(url);
}
}
});
-
- private boolean currentPageFragmentExists() {
- return getActivity() != null && getActivity() instanceof MainActivity
- && ((MainActivity) getActivity()).getCurPageFragment() != null;
- }
private String getTermFromWikiLink(String url) {
return removeLinkFragment(url.substring(url.lastIndexOf("/") + 1));
@@ -223,8 +221,10 @@
}
private void showNewDialogForLink(String url) {
- ((MainActivity) getActivity()).getCurPageFragment().getShareHandler()
- .showWiktionaryDefinition(getTermFromWikiLink(url));
+ Callback callback = callback();
+ if (callback != null) {
+ callback.wiktionaryShowDialogForTerm(getTermFromWikiLink(url));
+ }
}
private String sanitizeForDialogTitle(String text) {
@@ -233,4 +233,9 @@
}
return removeUnderscores(text);
}
+
+ @Nullable
+ private Callback callback() {
+ return FragmentUtil.getCallback(this, Callback.class);
+ }
}
--
To view, visit https://gerrit.wikimedia.org/r/306668
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4ca7903ea569c26fbd991e793b02254e91434e47
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits