BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/180321

Change subject: Fix NPE in LeadImagesHandler.beginLayout
......................................................................

Fix NPE in LeadImagesHandler.beginLayout

Bug: T78501
Change-Id: Idc1b027ceca932bf83b8a3ec3760937bca5caf55
---
M wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
1 file changed, 22 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/21/180321/1

diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java 
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
index b84a469..263d04b 100644
--- 
a/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
+++ 
b/wikipedia/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java
@@ -29,7 +29,10 @@
 import org.wikipedia.ViewAnimations;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.bridge.CommunicationBridge;
+import org.wikipedia.page.Page;
+import org.wikipedia.page.PageProperties;
 import org.wikipedia.page.PageViewFragment;
+import org.wikipedia.page.PageViewFragmentInternal;
 import org.wikipedia.views.ObservableWebView;
 import org.wikipedia.wikidata.WikidataCache;
 
@@ -262,7 +265,7 @@
      * @param listener Listener that will receive an event when the layout is 
completed.
      */
     public void beginLayout(OnLeadImageLayoutListener listener) {
-        String thumbUrl = 
parentFragment.getFragment().getPage().getPageProperties().getLeadImageUrl();
+        String thumbUrl = getLeadImageUrl();
 
         if (!WikipediaApp.getInstance().showImages() || displayHeight < 
MIN_SCREEN_HEIGHT_DP
                 || WikipediaApp.getInstance().getReleaseType() == 
WikipediaApp.RELEASE_PROD) {
@@ -281,6 +284,23 @@
         // kick off the (asynchronous) laying out of the page title text
         
layoutPageTitle((int)(parentFragment.getResources().getDimension(R.dimen.titleTextSize)
                 / displayDensity), listener);
+    }
+
+    // NPE, you shall not pass: https://phabricator.wikimedia.org/T78501
+    private String getLeadImageUrl() {
+        final PageViewFragmentInternal internalFragment = 
parentFragment.getFragment();
+        if (internalFragment == null) {
+            return null;
+        }
+        final Page page = internalFragment.getPage();
+        if (page == null) {
+            return null;
+        }
+        final PageProperties pageProperties = page.getPageProperties();
+        if (pageProperties == null) {
+            return null;
+        }
+        return pageProperties.getLeadImageUrl();
     }
 
     /**
@@ -435,7 +455,7 @@
         bridge.sendMessage("setPaddingTop", payload);
 
         // and start fetching the lead image, if we have one
-        String thumbUrl = 
parentFragment.getFragment().getPage().getPageProperties().getLeadImageUrl();
+        String thumbUrl = getLeadImageUrl();
         if (!isMainPage && thumbUrl != null && leadImagesEnabled) {
             thumbUrl = WikipediaApp.getInstance().getNetworkProtocol() + ":" + 
thumbUrl;
             Picasso.with(parentFragment.getActivity())

-- 
To view, visit https://gerrit.wikimedia.org/r/180321
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc1b027ceca932bf83b8a3ec3760937bca5caf55
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>

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

Reply via email to