From d22ea3defff3a80fa2838bf664d540fa51c1fb52 Mon Sep 17 00:00:00 2001 From: Florens Douwes Date: Thu, 21 Aug 2014 12:04:21 +0200 Subject: [PATCH] Fix a NPE in replyfragment, and restoring reply after suspend. --- .../chan/ui/activity/ReplyActivity.java | 4 ++-- .../chan/ui/fragment/ReplyFragment.java | 22 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java index 9416608b..3114c7d0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java @@ -42,7 +42,7 @@ public class ReplyActivity extends Activity { ThemeHelper.setTheme(this); - if (loadable != null) { + if (loadable != null && savedInstanceState == null) { getActionBar().setDisplayHomeAsUpEnabled(true); FragmentTransaction ft = getFragmentManager().beginTransaction(); @@ -50,7 +50,7 @@ public class ReplyActivity extends Activity { ft.commitAllowingStateLoss(); loadable = null; - } else { + } else if (savedInstanceState == null) { Logger.e(TAG, "ThreadFragment was null, exiting!"); finish(); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java index 2ac629bc..7eb40f38 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ReplyFragment.java @@ -112,6 +112,7 @@ public class ReplyFragment extends DialogFragment { super.onSaveInstanceState(outState); loadable.writeToBundle(context, outState); + outState.putBoolean(context.getPackageName() + ".quickmode", quickMode); } @Override @@ -123,6 +124,7 @@ public class ReplyFragment extends DialogFragment { if (loadable == null && savedInstanceState != null) { loadable = new Loadable(); loadable.readFromBundle(context, savedInstanceState); + quickMode = savedInstanceState.getBoolean(context.getPackageName() + ".quickmode"); } if (loadable != null) { @@ -170,6 +172,16 @@ public class ReplyFragment extends DialogFragment { Selection.setSelection(commentView.getText(), commentView.getText().length()); setFile(draft.fileName, draft.file); + if (loadable.isThreadMode()) { + subjectView.setVisibility(View.GONE); + } + + if (quickMode) { + nameView.setVisibility(View.GONE); + emailView.setVisibility(View.GONE); + subjectView.setVisibility(View.GONE); + } + getCaptcha(); } else { Logger.e(TAG, "Loadable in ReplyFragment was null"); @@ -239,16 +251,6 @@ public class ReplyFragment extends DialogFragment { container.findViewById(R.id.reply_captcha).setVisibility(View.GONE); } - if (quickMode) { - nameView.setVisibility(View.GONE); - emailView.setVisibility(View.GONE); - subjectView.setVisibility(View.GONE); - } - - if (loadable.isThreadMode()) { - subjectView.setVisibility(View.GONE); - } - cancelButton = (Button) container.findViewById(R.id.reply_cancel); cancelButton.setOnClickListener(new OnClickListener() { @Override