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 | 180 |
1 files changed, 38 insertions, 142 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 7a327ef2..67e3e858 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -1,36 +1,22 @@ package com.zeapo.pwdstore; import android.app.Activity; -import android.content.Context; import android.os.Bundle; import android.app.Fragment; import android.support.v7.app.ActionBarActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.util.Log; -import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.ScaleAnimation; -import android.widget.AbsListView; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ExpandableListAdapter; -import android.widget.ExpandableListView; -import android.widget.LinearLayout; -import android.widget.ListAdapter; -import android.widget.ListView; - -import com.fortysevendeg.swipelistview.BaseSwipeListViewListener; -import com.fortysevendeg.swipelistview.SwipeListView; -import com.fortysevendeg.swipelistview.SwipeListViewListener; -import com.zeapo.pwdstore.utils.PasswordAdapter; + import com.zeapo.pwdstore.utils.PasswordItem; +import com.zeapo.pwdstore.utils.PasswordRecyclerAdapter; import com.zeapo.pwdstore.utils.PasswordRepository; import java.io.File; import java.util.ArrayList; -import java.util.List; import java.util.Stack; /** @@ -40,25 +26,21 @@ import java.util.Stack; * with a GridView. * <p /> */ -public class PasswordFragment extends Fragment implements SwipeListViewListener{ +public class PasswordFragment extends Fragment{ + + public interface OnFragmentInteractionListener { + public void onFragmentInteraction(PasswordItem item); + } // store the pass files list in a stack private Stack<ArrayList<PasswordItem>> passListStack; - + private Stack<Integer> scrollPosition; + private PasswordRecyclerAdapter recyclerAdapter; + private RecyclerView recyclerView; + private RecyclerView.LayoutManager mLayoutManager; private OnFragmentInteractionListener mListener; /** - * The fragment's ListView/GridView. - */ - private SwipeListView mListView; - - /** - * The Adapter which will be used to populate the ListView/GridView with - * Views. - */ - private PasswordAdapter mAdapter; - - /** * Mandatory empty constructor for the fragment manager to instantiate the * fragment (e.g. upon screen orientation changes). */ @@ -71,19 +53,23 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener{ String path = getArguments().getString("Path"); passListStack = new Stack<ArrayList<PasswordItem>>(); - - mAdapter = new PasswordAdapter((PasswordStore) getActivity(), PasswordRepository.getPasswords(new File(path))); + scrollPosition = new Stack<Integer>(); + recyclerAdapter = new PasswordRecyclerAdapter((PasswordStore) getActivity(), mListener, PasswordRepository.getPasswords(new File(path))); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_password, container, false); + View view = inflater.inflate(R.layout.password_recycler_view, container, false); - // Set the adapter - mListView = (SwipeListView) view.findViewById(R.id.pass_list); - ((AdapterView<ListAdapter>) mListView).setAdapter(mAdapter); - mListView.setSwipeListViewListener(this); + // use a linear layout manager + mLayoutManager = new LinearLayoutManager(getActivity()); + + recyclerView = (RecyclerView) view.findViewById(R.id.pass_recycler); + recyclerView.setLayoutManager(mLayoutManager); +// +// // Set the adapter + recyclerView.setAdapter(recyclerAdapter); return view; } @@ -92,18 +78,20 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener{ super.onAttach(activity); try { 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())); + passListStack.push((ArrayList<PasswordItem>) recyclerAdapter.getValues().clone()); + scrollPosition.push(recyclerView.getVerticalScrollbarPosition()); + Log.d("FRAG", scrollPosition.peek() + ""); + recyclerView.scrollToPosition(0); + recyclerAdapter.clear(); + recyclerAdapter.addAll(PasswordRepository.getPasswords(item.getFile())); + ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } - @Override public void savePosition(Integer position) { } @@ -115,113 +103,21 @@ public class PasswordFragment extends Fragment implements SwipeListViewListener{ } @Override - public void onDetach() { - super.onDetach(); - mListener = null; - } - - @Override public void onPause() { super.onPause(); - mListener.savePosition(mListView.getFirstVisiblePosition()); - mListView.closeOpenedItems(); - } - - @Override - public void onOpened(int i, boolean b) { - - } - - @Override - public void onClosed(int i, boolean b) { - - } - - @Override - public void onListChanged() { - - } - - @Override - public void onMove(int i, float v) { - - } - - @Override - public void onStartOpen(int i, int i2, boolean b) { - - } - - @Override - public void onStartClose(int i, boolean b) { - - } - - @Override - public void onClickFrontView(int i) { - if (mAdapter.getItem(i).getType() == PasswordItem.TYPE_PASSWORD) { - mListView.openAnimate(i); - } else if (null != mListener) { - // Notify the active callbacks interface (the activity, if the - // fragment is attached to one) that an item has been selected. - mListener.onFragmentInteraction(mAdapter.getItem(i)); - } - } - - @Override - public void onClickBackView(int i) { - mListView.closeAnimate(i); - } - - @Override - public void onDismiss(int[] ints) { - - } - - @Override - public int onChangeSwipeMode(int i) { - return 0; - } - - @Override - public void onChoiceChanged(int i, boolean b) { - - } - - @Override - public void onChoiceStarted() { - - } - - @Override - public void onChoiceEnded() { - - } - - @Override - public void onFirstListItem() { - - } - - @Override - public void onLastListItem() { - - } - - public interface OnFragmentInteractionListener { - public void onFragmentInteraction(PasswordItem item); - public void savePosition(Integer position); +// mListener.savePosition(mListView.getFirstVisiblePosition()); +// mListView.closeOpenedItems(); } public void updateAdapter() { - mAdapter.clear(); - mAdapter.addAll(PasswordRepository.getPasswords(new File(getArguments().getString("Path")))); - mListView.setAdapter((ListAdapter) mAdapter); + recyclerAdapter.clear(); + recyclerAdapter.addAll(PasswordRepository.getPasswords(new File(getArguments().getString("Path")))); } public void popBack() { - mAdapter.clear(); - mAdapter.addAll(passListStack.pop()); + recyclerView.scrollToPosition(scrollPosition.pop()); + recyclerAdapter.clear(); + recyclerAdapter.addAll(passListStack.pop()); } public boolean isNotEmpty() { |
