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