* #31230: better swipe/scroll detection
diff --git a/src/org/sflphone/fragments/ContactListFragment.java b/src/org/sflphone/fragments/ContactListFragment.java
index 848afff..279ef59 100644
--- a/src/org/sflphone/fragments/ContactListFragment.java
+++ b/src/org/sflphone/fragments/ContactListFragment.java
@@ -57,6 +57,7 @@
import android.view.View.DragShadowBuilder;
import android.view.View.OnClickListener;
import android.view.View.OnDragListener;
+import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
@@ -95,7 +96,7 @@
@Override
public void onTextContact(CallContact c) {
}
-
+
@Override
public void onEditContact(CallContact c) {
}
@@ -157,6 +158,7 @@
}
ListView list;
+ private TACGridView grid;
private OnItemLongClickListener mItemLongClickListener = new OnItemLongClickListener() {
@Override
@@ -170,57 +172,33 @@
}
};
+ private SwipeListViewTouchListener mSwipeLvTouchListener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflatedView = inflater.inflate(R.layout.frag_contact_list, container, false);
list = (ListView) inflatedView.findViewById(R.id.contacts_list);
- list.setOnDragListener(dragListener);
- list.setOnTouchListener(new SwipeListViewTouchListener(list, new SwipeListViewTouchListener.OnSwipeCallback() {
- @Override
- public void onSwipeLeft(ListView listView, int[] reverseSortedPositions) {
- }
+
- @Override
- public void onSwipeRight(ListView listView, View down) {
- down.findViewById(R.id.quick_edit).setClickable(true);
- down.findViewById(R.id.quick_discard).setClickable(true);
- down.findViewById(R.id.quick_starred).setClickable(true);
-
- }
- }, true, false));
- list.setOnItemLongClickListener(mItemLongClickListener);
-
- list.setEmptyView(inflatedView.findViewById(android.R.id.empty));
View header = inflater.inflate(R.layout.frag_contact_list_header, null);
list.addHeaderView(header, null, false);
- TACGridView grid = (TACGridView) header.findViewById(R.id.favorites_grid);
-
list.setAdapter(mListAdapter);
- grid.setAdapter(mGridAdapter);
+ list.setEmptyView(inflatedView.findViewById(android.R.id.empty));
- list.setOnScrollListener(new OnScrollListener() {
-
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- // TODO Stub de la méthode généré automatiquement
-
- }
-
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- if (visibleItemCount > 0 && firstVisibleItem == 0 && view.getChildAt(0).getTop() == 0) {
- // ListView scrolled at top
-
- }
-
- }
- });
-
search = (SearchView) inflatedView.findViewById(R.id.contact_search);
+ grid = (TACGridView) header.findViewById(R.id.favorites_grid);
+ grid.setAdapter(mGridAdapter);
grid.setExpanded(true);
+
+ setListViewListeners(inflatedView);
+ setGridViewListeners();
+
+ return inflatedView;
+ }
+
+ private void setGridViewListeners() {
grid.setOnDragListener(dragListener);
grid.setOnItemClickListener(new OnItemClickListener() {
@@ -230,8 +208,47 @@
}
});
grid.setOnItemLongClickListener(mItemLongClickListener);
+ }
- return inflatedView;
+ private void setListViewListeners(View inflatedView) {
+ mSwipeLvTouchListener = new SwipeListViewTouchListener(list, new SwipeListViewTouchListener.OnSwipeCallback() {
+ @Override
+ public void onSwipeLeft(ListView listView, int[] reverseSortedPositions) {
+ }
+
+ @Override
+ public void onSwipeRight(ListView listView, View down) {
+ down.findViewById(R.id.quick_edit).setClickable(true);
+ down.findViewById(R.id.quick_discard).setClickable(true);
+ down.findViewById(R.id.quick_starred).setClickable(true);
+
+ }
+ }, true, false);
+
+ list.setOnDragListener(dragListener);
+ list.setOnTouchListener(mSwipeLvTouchListener);
+ list.setOnItemLongClickListener(mItemLongClickListener);
+
+ list.setOnItemClickListener(new OnItemClickListener() {
+
+ @Override
+ public void onItemClick(AdapterView<?> arg0, View view, int pos, long id) {
+ mSwipeLvTouchListener.openItem(view, pos, id);
+ }
+ });
+ list.setOnScrollListener(new OnScrollListener() {
+
+ @Override
+ public void onScrollStateChanged(AbsListView view, int scrollState) {
+ }
+
+ @Override
+ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+ if (visibleItemCount > 0 && firstVisibleItem == 0 && view.getChildAt(0).getTop() == 0) {
+ // ListView scrolled at top
+ }
+ }
+ });
}
OnDragListener dragListener = new OnDragListener() {
@@ -296,6 +313,8 @@
public Loader<Bundle> onCreateLoader(int id, Bundle args) {
Uri baseUri;
+ Log.e(TAG, "createLoader");
+
if (args != null) {
baseUri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI, Uri.encode(args.getString("filter")));
} else {