jenkins-bot has submitted this change and it was merged.

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(-)

Approvals:
  BearND: Looks good to me, approved
  jenkins-bot: Verified



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: merged
Gerrit-Change-Id: I4ca7903ea569c26fbd991e793b02254e91434e47
Gerrit-PatchSet: 2
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to