Prevent NPE with FragmentManager not being initialized

This commit is contained in:
str4d
2014-06-20 08:20:10 +00:00
parent efcba9ecce
commit 0d45721c9b
2 changed files with 28 additions and 32 deletions

View File

@@ -1,25 +1,9 @@
package i2p.bote.android.config; package i2p.bote.android.config;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;
import i2p.bote.I2PBote;
import i2p.bote.android.R;
import i2p.bote.android.util.BoteHelper;
import i2p.bote.android.util.EditPictureFragment;
import i2p.bote.android.util.RobustAsyncTask;
import i2p.bote.android.util.TaskFragment;
import i2p.bote.StatusListener;
import i2p.bote.crypto.CryptoFactory;
import i2p.bote.crypto.CryptoImplementation;
import i2p.bote.email.EmailIdentity;
import i2p.bote.fileencryption.PasswordException;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@@ -33,6 +17,22 @@ import android.widget.EditText;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.List;
import i2p.bote.I2PBote;
import i2p.bote.StatusListener;
import i2p.bote.android.R;
import i2p.bote.android.util.BoteHelper;
import i2p.bote.android.util.EditPictureFragment;
import i2p.bote.android.util.RobustAsyncTask;
import i2p.bote.android.util.TaskFragment;
import i2p.bote.crypto.CryptoFactory;
import i2p.bote.crypto.CryptoImplementation;
import i2p.bote.email.EmailIdentity;
import i2p.bote.fileencryption.PasswordException;
public class EditIdentityFragment extends EditPictureFragment { public class EditIdentityFragment extends EditPictureFragment {
private Callbacks mCallbacks = sDummyCallbacks; private Callbacks mCallbacks = sDummyCallbacks;
@@ -68,7 +68,6 @@ public class EditIdentityFragment extends EditPictureFragment {
static final int DEFAULT_CRYPTO_IMPL = 2; static final int DEFAULT_CRYPTO_IMPL = 2;
private String mKey; private String mKey;
private FragmentManager mFM;
MenuItem mSave; MenuItem mSave;
EditText mNameField; EditText mNameField;
EditText mDescField; EditText mDescField;
@@ -90,8 +89,7 @@ public class EditIdentityFragment extends EditPictureFragment {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setHasOptionsMenu(true); setHasOptionsMenu(true);
mFM = getFragmentManager(); IdentityWaiterFrag f = (IdentityWaiterFrag) getFragmentManager().findFragmentByTag(IDENTITY_WAITER_TAG);
IdentityWaiterFrag f = (IdentityWaiterFrag) mFM.findFragmentByTag(IDENTITY_WAITER_TAG);
if (f != null) if (f != null)
f.setTargetFragment(this, IDENTITY_WAITER); f.setTargetFragment(this, IDENTITY_WAITER);
} }
@@ -151,7 +149,7 @@ public class EditIdentityFragment extends EditPictureFragment {
inflater.inflate(R.menu.edit_identity, menu); inflater.inflate(R.menu.edit_identity, menu);
mSave = menu.findItem(R.id.action_save_identity); mSave = menu.findItem(R.id.action_save_identity);
IdentityWaiterFrag f = (IdentityWaiterFrag) mFM.findFragmentByTag(IDENTITY_WAITER_TAG); IdentityWaiterFrag f = (IdentityWaiterFrag) getFragmentManager().findFragmentByTag(IDENTITY_WAITER_TAG);
if (f != null) if (f != null)
setInterfaceEnabled(false); setInterfaceEnabled(false);
} }
@@ -187,7 +185,7 @@ public class EditIdentityFragment extends EditPictureFragment {
setDefault); setDefault);
f.setTask(new IdentityWaiter()); f.setTask(new IdentityWaiter());
f.setTargetFragment(EditIdentityFragment.this, IDENTITY_WAITER); f.setTargetFragment(EditIdentityFragment.this, IDENTITY_WAITER);
mFM.beginTransaction() getFragmentManager().beginTransaction()
.replace(R.id.identity_waiter_frag, f, IDENTITY_WAITER_TAG) .replace(R.id.identity_waiter_frag, f, IDENTITY_WAITER_TAG)
.commit(); .commit();
return true; return true;

View File

@@ -1,16 +1,10 @@
package i2p.bote.android.config; package i2p.bote.android.config;
import i2p.bote.I2PBote;
import i2p.bote.android.R;
import i2p.bote.android.util.RobustAsyncTask;
import i2p.bote.android.util.TaskFragment;
import i2p.bote.StatusListener;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@@ -21,6 +15,12 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import i2p.bote.I2PBote;
import i2p.bote.StatusListener;
import i2p.bote.android.R;
import i2p.bote.android.util.RobustAsyncTask;
import i2p.bote.android.util.TaskFragment;
public class SetPasswordFragment extends Fragment { public class SetPasswordFragment extends Fragment {
private Callbacks mCallbacks = sDummyCallbacks; private Callbacks mCallbacks = sDummyCallbacks;
@@ -51,7 +51,6 @@ public class SetPasswordFragment extends Fragment {
// instance of this fragment after rotation. // instance of this fragment after rotation.
static final String PASSWORD_WAITER_TAG = "passwordWaiterTask"; static final String PASSWORD_WAITER_TAG = "passwordWaiterTask";
private FragmentManager mFM;
MenuItem mSave; MenuItem mSave;
EditText mOldField; EditText mOldField;
EditText mNewField; EditText mNewField;
@@ -63,8 +62,7 @@ public class SetPasswordFragment extends Fragment {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setHasOptionsMenu(true); setHasOptionsMenu(true);
mFM = getFragmentManager(); PasswordWaiterFrag f = (PasswordWaiterFrag) getFragmentManager().findFragmentByTag(PASSWORD_WAITER_TAG);
PasswordWaiterFrag f = (PasswordWaiterFrag) mFM.findFragmentByTag(PASSWORD_WAITER_TAG);
if (f != null) if (f != null)
f.setTargetFragment(this, PASSWORD_WAITER); f.setTargetFragment(this, PASSWORD_WAITER);
} }
@@ -91,7 +89,7 @@ public class SetPasswordFragment extends Fragment {
mSave = menu.findItem(R.id.action_set_password); mSave = menu.findItem(R.id.action_set_password);
// If task is running, disable the save button. // If task is running, disable the save button.
PasswordWaiterFrag f = (PasswordWaiterFrag) mFM.findFragmentByTag(PASSWORD_WAITER_TAG); PasswordWaiterFrag f = (PasswordWaiterFrag) getFragmentManager().findFragmentByTag(PASSWORD_WAITER_TAG);
if (f != null) if (f != null)
setInterfaceEnabled(false); setInterfaceEnabled(false);
} }
@@ -113,7 +111,7 @@ public class SetPasswordFragment extends Fragment {
PasswordWaiterFrag f = PasswordWaiterFrag.newInstance(oldPassword, newPassword, confirmNewPassword); PasswordWaiterFrag f = PasswordWaiterFrag.newInstance(oldPassword, newPassword, confirmNewPassword);
f.setTask(new PasswordWaiter()); f.setTask(new PasswordWaiter());
f.setTargetFragment(SetPasswordFragment.this, PASSWORD_WAITER); f.setTargetFragment(SetPasswordFragment.this, PASSWORD_WAITER);
mFM.beginTransaction() getFragmentManager().beginTransaction()
.replace(R.id.password_waiter_frag, f, PASSWORD_WAITER_TAG) .replace(R.id.password_waiter_frag, f, PASSWORD_WAITER_TAG)
.commit(); .commit();
return true; return true;