* #31230: changed search view
diff --git a/src/org/sflphone/adapters/ContactsAdapter.java b/src/org/sflphone/adapters/ContactsAdapter.java
index 7a68361..57ab39a 100644
--- a/src/org/sflphone/adapters/ContactsAdapter.java
+++ b/src/org/sflphone/adapters/ContactsAdapter.java
@@ -13,15 +13,14 @@
import org.sflphone.fragments.ContactListFragment;
import org.sflphone.model.CallContact;
-import android.app.Fragment;
import android.content.Context;
-import android.util.Log;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
+import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SectionIndexer;
import android.widget.TextView;
@@ -76,19 +75,33 @@
}
private View getViewContact(int position, LayoutInflater inflater, View convertView) {
-
+ ContactView entryView;
+
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_contact, null);
+
+ entryView = new ContactView();
+ entryView.quick_starred = (ImageButton) convertView.findViewById(R.id.quick_starred);
+ entryView.quick_edit = (ImageButton) convertView.findViewById(R.id.quick_edit);
+ entryView.quick_discard = (ImageButton) convertView.findViewById(R.id.quick_discard);
+ entryView.quick_call = (ImageButton) convertView.findViewById(R.id.quick_call);
+ entryView.quick_msg = (ImageButton) convertView.findViewById(R.id.quick_message);
+ entryView.photo = (ImageView) convertView.findViewById(R.id.photo);
+ entryView.display_name = (TextView) convertView.findViewById(R.id.display_name);
+ convertView.setTag(entryView);
+ } else {
+ entryView = (ContactView) convertView.getTag();
}
+
final CallContact item = headers.getCallContact(position);
- ((TextView) convertView.findViewById(R.id.display_name)).setText(item.getmDisplayName());
- ImageView photo_view = (ImageView) convertView.findViewById(R.id.photo);
+ entryView.display_name.setText(item.getmDisplayName());
- infos_fetcher.execute(new ContactPictureTask(mContext, photo_view, item.getId()));
- convertView.findViewById(R.id.quick_call).setOnClickListener(new OnClickListener() {
+ infos_fetcher.execute(new ContactPictureTask(mContext, entryView.photo, item.getId()));
+
+ entryView.quick_call.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -97,7 +110,7 @@
}
});
- convertView.findViewById(R.id.quick_starred).setOnClickListener(new OnClickListener() {
+ entryView.quick_starred.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -105,7 +118,7 @@
}
});
- convertView.findViewById(R.id.quick_edit).setOnClickListener(new OnClickListener() {
+ entryView.quick_edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -114,7 +127,7 @@
}
});
- convertView.findViewById(R.id.quick_discard).setOnClickListener(new OnClickListener() {
+ entryView.quick_discard.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -125,7 +138,7 @@
- convertView.findViewById(R.id.quick_message).setOnClickListener(new OnClickListener() {
+ entryView.quick_msg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -135,6 +148,15 @@
return convertView;
}
+
+ /*********************
+ * ViewHolder Pattern
+ *********************/
+ public class ContactView {
+ ImageButton quick_starred, quick_edit, quick_discard, quick_call, quick_msg;
+ ImageView photo;
+ TextView display_name;
+ }
@Override
public int getCount() {
diff --git a/src/org/sflphone/fragments/ContactListFragment.java b/src/org/sflphone/fragments/ContactListFragment.java
index 1e9216c..197b955 100644
--- a/src/org/sflphone/fragments/ContactListFragment.java
+++ b/src/org/sflphone/fragments/ContactListFragment.java
@@ -43,15 +43,12 @@
import org.sflphone.views.SwipeListViewTouchListener;
import org.sflphone.views.TACGridView;
-import android.animation.LayoutTransition;
import android.app.Activity;
import android.app.Fragment;
import android.app.LoaderManager;
-import android.content.Intent;
import android.content.Loader;
import android.net.Uri;
import android.os.Bundle;
-import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.util.Log;
import android.view.DragEvent;
@@ -67,7 +64,6 @@
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ImageButton;
-import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SearchView;
@@ -77,7 +73,7 @@
private static final String TAG = "ContactListFragment";
ContactsAdapter mListAdapter;
StarredContactsAdapter mGridAdapter;
-
+ SearchView search;
String mCurFilter;
@Override
@@ -220,6 +216,8 @@
}
});
+
+ search = (SearchView) inflatedView.findViewById(R.id.contact_search);
grid.setExpanded(true);
grid.setOnDragListener(dragListener);
@@ -334,19 +332,21 @@
@Override
public void onClick(View v) {
- SearchView search = new SearchView(getActivity());
+// SearchView search = new SearchView(getActivity());
// Get the ID for the search bar LinearLayout
- int searchBarId = search.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
+// int searchBarId = search.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
// Get the search bar Linearlayout
- LinearLayout searchBar = (LinearLayout) search.findViewById(searchBarId);
- searchBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
- LinearLayout.LayoutParams.WRAP_CONTENT));
+// LinearLayout searchBar = (LinearLayout) search.findViewById(searchBarId);
+// searchBar.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
+// LinearLayout.LayoutParams.WRAP_CONTENT));
// Give the Linearlayout a transition animation.
- searchBar.setLayoutTransition(new LayoutTransition());
+// searchBar.setLayoutTransition(new LayoutTransition());
+ list.smoothScrollToPosition(0);
search.setOnQueryTextListener(ContactListFragment.this);
search.setIconified(false);
- getActivity().getActionBar().setDisplayShowCustomEnabled(true);
- getActivity().getActionBar().setCustomView(search);
+// getActivity().getActionBar().hide();
+// getActivity().getActionBar().setDisplayShowCustomEnabled(true);
+// getActivity().getActionBar().setCustomView(search);
mCallbacks.openDrawer();
}
diff --git a/src/org/sflphone/views/CustomSlidingDrawer.java b/src/org/sflphone/views/CustomSlidingDrawer.java
index 79397ef..d0edd5b 100644
--- a/src/org/sflphone/views/CustomSlidingDrawer.java
+++ b/src/org/sflphone/views/CustomSlidingDrawer.java
@@ -105,7 +105,7 @@
private static final float MAXIMUM_TAP_VELOCITY = 100.0f;
private static final float MAXIMUM_MINOR_VELOCITY = 150.0f;
private static final float MAXIMUM_MAJOR_VELOCITY = 200.0f;
- private static final float MAXIMUM_ACCELERATION = 2000.0f;
+ private static final float MAXIMUM_ACCELERATION = 1500.0f;
private static final int VELOCITY_UNITS = 1000;
private static final int MSG_ANIMATE = 1000;
private static final int ANIMATION_FRAME_DURATION = 1000 / 60;