aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Wong <wongma7@outlook.com>2016-07-08 22:00:53 -0400
committerMatthew Wong <wongma7@outlook.com>2016-07-08 22:00:53 -0400
commit017650bf373e3ccc3a45680088297543a1470eff (patch)
tree3c6aa13c0e396cc6fabf38fb7892ad964f38f617
parent4589c0f833ca18f413f53f1d25555c9c7074624a (diff)
Fix back button behaviour
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java15
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordStore.java22
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();