aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java180
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() {