Brion VIBBER has submitted this change and it was merged.

Change subject: Fix crashes with NavDrawer when running in Strict Mode
......................................................................


Fix crashes with NavDrawer when running in Strict Mode

Change-Id: I8ecdbcf81c1db284e40e07bdd9fe20bc11fe947a
---
M wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
1 file changed, 18 insertions(+), 7 deletions(-)

Approvals:
  Brion VIBBER: Verified; Looks good to me, approved



diff --git a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java 
b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
index 4039581..2cb3ce8 100644
--- a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
@@ -34,8 +34,13 @@
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) {
-        View parentView = inflater.inflate(R.layout.fragment_navdrawer, 
container, false);
-        navList = (ListView) parentView.findViewById(R.id.nav_list);
+        return inflater.inflate(R.layout.fragment_navdrawer, container, false);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        navList = (ListView) getView().findViewById(R.id.nav_list);
         adapter = new NavListAdapter();
         app = (WikipediaApp)getActivity().getApplicationContext();
 
@@ -43,8 +48,6 @@
 
         navList.setAdapter(adapter);
         navList.setOnItemClickListener(this);
-
-        return parentView;
     }
 
     @Override
@@ -77,9 +80,17 @@
 
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) 
{
-        if (resultCode == LoginActivity.LOG_IN_SUCCESSFUL) {
-            setupDynamicItems();
-            ((NavListAdapter)navList.getAdapter()).notifyDataSetChanged();
+        // Okay, so this is really, really stupid, but
+        // sometimes if the previous activity was destroyed before the 
callback is done
+        // onActivityResult may be called *before* the onCreate, 
onActivityAttach, etc are called
+        // This, of course, is fucking stupid. However, in this particular 
case (updating the login status)
+        // we can just ignore it if that is the case and keep going.
+        // BUGS! GRR!
+        if (getView() != null) {
+            if (resultCode == LoginActivity.LOG_IN_SUCCESSFUL) {
+                setupDynamicItems();
+                ((NavListAdapter)navList.getAdapter()).notifyDataSetChanged();
+            }
         }
     }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I8ecdbcf81c1db284e40e07bdd9fe20bc11fe947a
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to