Fix back button behaviour
This commit is contained in:
parent
4589c0f833
commit
017650bf37
2 changed files with 12 additions and 25 deletions
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue