diff options
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 8278931b..7a327ef2 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -4,7 +4,9 @@ import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.app.Fragment; +import android.support.v7.app.ActionBarActivity; import android.util.Log; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -27,7 +29,9 @@ import com.zeapo.pwdstore.utils.PasswordItem; import com.zeapo.pwdstore.utils.PasswordRepository; import java.io.File; +import java.util.ArrayList; import java.util.List; +import java.util.Stack; /** * A fragment representing a list of Items. @@ -36,7 +40,10 @@ import java.util.List; * with a GridView. * <p /> */ -public class PasswordFragment extends Fragment implements SwipeListViewListener { +public class PasswordFragment extends Fragment implements SwipeListViewListener{ + + // store the pass files list in a stack + private Stack<ArrayList<PasswordItem>> passListStack; private OnFragmentInteractionListener mListener; @@ -62,6 +69,9 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener super.onCreate(savedInstanceState); String path = getArguments().getString("Path"); + + passListStack = new Stack<ArrayList<PasswordItem>>(); + mAdapter = new PasswordAdapter((PasswordStore) getActivity(), PasswordRepository.getPasswords(new File(path))); } @@ -74,8 +84,6 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener mListView = (SwipeListView) view.findViewById(R.id.pass_list); ((AdapterView<ListAdapter>) mListView).setAdapter(mAdapter); mListView.setSwipeListViewListener(this); - mListView.setSelectionFromTop(getArguments().getInt("Position"), 0); - return view; } @@ -83,7 +91,23 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener public void onAttach(Activity activity) { super.onAttach(activity); try { - mListener = (OnFragmentInteractionListener) activity; + mListener = new OnFragmentInteractionListener() { + @Override + public void onFragmentInteraction(PasswordItem item) { + if (item.getType() == PasswordItem.TYPE_CATEGORY) { + passListStack.push((ArrayList<PasswordItem>) mAdapter.getValues().clone()); + mAdapter.clear(); + mAdapter.addAll(PasswordRepository.getPasswords(item.getFile())); + + ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + } + + @Override + public void savePosition(Integer position) { + + } + }; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener"); @@ -195,4 +219,12 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener mListView.setAdapter((ListAdapter) mAdapter); } + public void popBack() { + mAdapter.clear(); + mAdapter.addAll(passListStack.pop()); + } + + public boolean isNotEmpty() { + return !passListStack.isEmpty(); + } } |
