* #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() {