diff options
author | Matthew Wong <wongma7@outlook.com> | 2016-07-08 22:00:53 -0400 |
---|---|---|
committer | Matthew Wong <wongma7@outlook.com> | 2016-07-08 22:00:53 -0400 |
commit | 017650bf373e3ccc3a45680088297543a1470eff (patch) | |
tree | 3c6aa13c0e396cc6fabf38fb7892ad964f38f617 | |
parent | 4589c0f833ca18f413f53f1d25555c9c7074624a (diff) |
Fix back button behaviour
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java | 15 | ||||
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/PasswordStore.java | 22 |
2 files changed, 12 insertions, 25 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 79401fbd..e1046fe2 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -1,7 +1,7 @@ package com.zeapo.pwdstore; -import android.app.Activity; import android.app.Fragment; +import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -94,24 +94,23 @@ public class PasswordFragment extends Fragment{ } @Override - public void onAttach(final Activity activity) { - super.onAttach(activity); + public void onAttach(final Context context) { + super.onAttach(context); try { mListener = new OnFragmentInteractionListener() { public void onFragmentInteraction(PasswordItem item) { if (item.getType() == PasswordItem.TYPE_CATEGORY) { // push the current password list (non filtered plz!) passListStack.push(pathStack.isEmpty() ? - PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(activity)) : - PasswordRepository.getPasswords(pathStack.peek(), PasswordRepository.getRepositoryDirectory(activity))); - + PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(context)) : + PasswordRepository.getPasswords(pathStack.peek(), PasswordRepository.getRepositoryDirectory(context))); //push the category were we're going pathStack.push(item.getFile()); scrollPosition.push(recyclerView.getVerticalScrollbarPosition()); recyclerView.scrollToPosition(0); recyclerAdapter.clear(); - recyclerAdapter.addAll(PasswordRepository.getPasswords(item.getFile(), PasswordRepository.getRepositoryDirectory(activity))); + recyclerAdapter.addAll(PasswordRepository.getPasswords(item.getFile(), PasswordRepository.getRepositoryDirectory(context))); ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); } else { @@ -128,7 +127,7 @@ public class PasswordFragment extends Fragment{ } }; } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() + throw new ClassCastException(context.toString() + " must implement OnFragmentInteractionListener"); } } diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java index e120b758..3be6419b 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java @@ -339,16 +339,6 @@ public class PasswordStore extends AppCompatActivity { if (fragmentManager.findFragmentByTag("PasswordsList") == null || settings.getBoolean("repo_changed", false)) { settings.edit().putBoolean("repo_changed", false).apply(); - // todo move this as it is duplicated upthere! - if (fragmentManager.findFragmentByTag("PasswordsList") != null) { - fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); - } - - // clean things up - if (fragmentManager.findFragmentByTag("ToCloneOrNot") != null) { - fragmentManager.popBackStack(); - } - plist = new PasswordFragment(); Bundle args = new Bundle(); args.putString("Path", PasswordRepository.getWorkTree().getAbsolutePath()); @@ -361,21 +351,19 @@ public class PasswordStore extends AppCompatActivity { plist.setArguments(args); - fragmentTransaction.addToBackStack("passlist"); - getSupportActionBar().show(); + getSupportActionBar().setDisplayHomeAsUpEnabled(false); + + fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); fragmentTransaction.replace(R.id.main_layout, plist, "PasswordsList"); fragmentTransaction.commit(); } } else { - // if we still have the pass list (after deleting the repository for instance) remove it - if (fragmentManager.findFragmentByTag("PasswordsList") != null) { - fragmentManager.popBackStack(); - } - getSupportActionBar().hide(); + fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); + ToCloneOrNot cloneFrag = new ToCloneOrNot(); fragmentTransaction.replace(R.id.main_layout, cloneFrag, "ToCloneOrNot"); fragmentTransaction.commit(); |