From 0ba4bf6973ec4ecaf72b82323a34061982f41f55 Mon Sep 17 00:00:00 2001 From: cketti Date: Tue, 2 Apr 2013 02:17:28 +0200 Subject: [PATCH] Fix NPE when fragment detached from activity --- src/com/fsck/k9/fragment/MessageViewFragment.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/fragment/MessageViewFragment.java b/src/com/fsck/k9/fragment/MessageViewFragment.java index e3341639e..3d36efe6f 100644 --- a/src/com/fsck/k9/fragment/MessageViewFragment.java +++ b/src/com/fsck/k9/fragment/MessageViewFragment.java @@ -100,6 +100,8 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList */ private boolean mInitialized = false; + private Context mContext; + class MessageViewHandler extends Handler { @@ -165,6 +167,8 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList public void onAttach(Activity activity) { super.onAttach(activity); + mContext = activity.getApplicationContext(); + try { mFragmentListener = (MessageViewFragmentListener) activity; } catch (ClassCastException e) { @@ -558,13 +562,13 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList public void run() { if (!clonedMessage.isSet(Flag.X_DOWNLOADED_FULL) && !clonedMessage.isSet(Flag.X_DOWNLOADED_PARTIAL)) { - String text = getString(R.string.message_view_downloading); + String text = mContext.getString(R.string.message_view_downloading); mMessageView.showStatusMessage(text); } mMessageView.setHeaders(clonedMessage, account); final String subject = clonedMessage.getSubject(); if (subject == null || subject.equals("")) { - displayMessageSubject(getString(R.string.general_no_subject)); + displayMessageSubject(mContext.getString(R.string.general_no_subject)); } else { displayMessageSubject(clonedMessage.getSubject()); } @@ -619,7 +623,8 @@ public class MessageViewFragment extends SherlockFragment implements OnClickList mHandler.networkError(); } if (mMessage == null || mMessage.isSet(Flag.X_DOWNLOADED_PARTIAL)) { - mMessageView.showStatusMessage(getString(R.string.webview_empty_message)); + mMessageView.showStatusMessage( + mContext.getString(R.string.webview_empty_message)); } } });