From 06637f6c59cd1980ff189b2ccb04e832cec2ee9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 3 Feb 2016 11:48:43 -0500 Subject: [PATCH] conversation list: show all contacts Tuleap: #327 Change-Id: I609c7dfe412c7c152774dbfd82c233e7234a66ce --- .../cx/ring/adapters/ContactsAdapter.java | 7 --- .../cx/ring/fragments/CallListFragment.java | 62 +++---------------- .../java/cx/ring/service/LocalService.java | 6 ++ .../src/main/res/layout/frag_call_list.xml | 5 +- .../res/layout/frag_contact_list_header.xml | 2 - .../app/src/main/res/layout/frag_home.xml | 2 +- .../app/src/main/res/layout/header.xml | 1 - .../app/src/main/res/layout/item_calllist.xml | 4 +- .../app/src/main/res/layout/item_contact.xml | 12 ++-- 9 files changed, 25 insertions(+), 76 deletions(-) diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ContactsAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ContactsAdapter.java index 8913f80f0..7464883a2 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/ContactsAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/ContactsAdapter.java @@ -167,13 +167,6 @@ public class ContactsAdapter extends BaseAdapter implements StickyListHeadersAda })); } - convertView.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - parent.get().onTextContact(item); - } - }); - return convertView; } diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallListFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallListFragment.java index dd584e957..833ac0ffd 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/CallListFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/CallListFragment.java @@ -63,7 +63,6 @@ import cx.ring.adapters.ContactsAdapter; import cx.ring.adapters.StarredContactsAdapter; import cx.ring.client.ConversationActivity; import cx.ring.client.HomeActivity; -import cx.ring.client.NewConversationActivity; import cx.ring.loaders.ContactsLoader; import cx.ring.loaders.LoaderConstants; import cx.ring.model.CallContact; @@ -235,7 +234,6 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText searchView.setInputType(EditorInfo.TYPE_CLASS_TEXT); else searchView.setInputType(EditorInfo.TYPE_CLASS_PHONE); - //searchMenuItem.expandActionView(); return true; case R.id.menu_clear_history: mCallbacks.getService().clearHistory(); @@ -279,7 +277,7 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText newconv_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - startActivity(new Intent().setClass(getActivity(), NewConversationActivity.class)); + searchMenuItem.expandActionView(); } }); @@ -292,6 +290,13 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText contactList = (StickyListHeadersListView) inflatedView.findViewById(R.id.contacts_stickylv); contactList.setDivider(null); contactList.addHeaderView(mHeader, null, false); + contactList.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView<?> parent, View view, int position, long id) { + final CallContact item = (CallContact) parent.getItemAtPosition(position); + ((HomeActivity)getActivity()).onTextContact(item); + } + }); mStarredGrid = (GridView) mHeader.findViewById(R.id.favorites_grid); llMain = (LinearLayout) mHeader.findViewById(R.id.llMain); @@ -472,7 +477,7 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText return; calls.clear(); for (Conversation c : list) { - if (!c.getAccountsUsed().isEmpty() || c.getCurrentCall() != null) + if (!c.getContact().isUnknown() || !c.getAccountsUsed().isEmpty() || c.getCurrentCall() != null) calls.add(c); } notifyDataSetChanged(); @@ -569,59 +574,10 @@ public class CallListFragment extends Fragment implements SearchView.OnQueryText infos_fetcher.execute(task); } } - convertView.setOnDragListener(dragListener); return convertView; } } - OnDragListener dragListener = new OnDragListener() { - - @SuppressWarnings("deprecation") - // deprecated in API 16.... - @Override - public boolean onDrag(View v, DragEvent event) { - switch (event.getAction()) { - case DragEvent.ACTION_DRAG_STARTED: - // Do nothing - // Log.w(TAG, "ACTION_DRAG_STARTED"); - break; - case DragEvent.ACTION_DRAG_ENTERED: - // Log.w(TAG, "ACTION_DRAG_ENTERED"); - v.setBackgroundColor(Color.GREEN); - break; - case DragEvent.ACTION_DRAG_EXITED: - // Log.w(TAG, "ACTION_DRAG_EXITED"); - v.setBackgroundDrawable(getResources().getDrawable(cx.ring.R.drawable.item_generic_selector)); - break; - case DragEvent.ACTION_DROP: - // Log.w(TAG, "ACTION_DROP"); - View view = (View) event.getLocalState(); - - Item i = event.getClipData().getItemAt(0); - Intent intent = i.getIntent(); - intent.setExtrasClassLoader(Conference.class.getClassLoader()); - - Conversation initial = ((CallListAdapter.ViewHolder) view.getTag()).conv; - Conversation target = ((CallListAdapter.ViewHolder) v.getTag()).conv; - - if (initial == target) { - return true; - } - - break; - case DragEvent.ACTION_DRAG_ENDED: - // Log.w(TAG, "ACTION_DRAG_ENDED"); - View view1 = (View) event.getLocalState(); - view1.setVisibility(View.VISIBLE); - v.setBackgroundDrawable(getResources().getDrawable(cx.ring.R.drawable.item_generic_selector)); - default: - break; - } - return true; - } - - }; - @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/ring-android/app/src/main/java/cx/ring/service/LocalService.java b/ring-android/app/src/main/java/cx/ring/service/LocalService.java index 2ed45b7f0..c5d575bf9 100644 --- a/ring-android/app/src/main/java/cx/ring/service/LocalService.java +++ b/ring-android/app/src/main/java/cx/ring/service/LocalService.java @@ -1014,6 +1014,12 @@ public class LocalService extends Service implements SharedPreferences.OnSharedP } for (Conversation c : ret.values()) Log.w(TAG, "Conversation : " + c.getContact().getId() + " " + c.getContact().getDisplayName() + " " + c.getLastNumberUsed(c.getLastAccountUsed()) + " " + c.getLastInteraction().toString()); + for (int i=0; i<localContactCache.size(); i++) { + CallContact contact = localContactCache.valueAt(i); + String key = contact.getIds().get(0); + if (!ret.containsKey(key)) + ret.put(key, new Conversation(contact)); + } } catch (RemoteException | SQLException e) { e.printStackTrace(); } diff --git a/ring-android/app/src/main/res/layout/frag_call_list.xml b/ring-android/app/src/main/res/layout/frag_call_list.xml index c131bdc82..81d153c2a 100644 --- a/ring-android/app/src/main/res/layout/frag_call_list.xml +++ b/ring-android/app/src/main/res/layout/frag_call_list.xml @@ -53,10 +53,8 @@ along with this program; if not, write to the Free Software android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_below="@+id/error_msg_pane" - android:background="@android:color/white" android:clipToPadding="false" android:divider="@null" - android:drawSelectorOnTop="true" android:elevation="2dp" android:fastScrollEnabled="true" android:paddingBottom="8dp" @@ -72,7 +70,6 @@ along with this program; if not, write to the Free Software android:layout_below="@+id/error_msg_pane" android:layout_marginLeft="0dp" android:layout_marginTop="0dp" - android:background="@android:color/white" android:clipToPadding="false" android:divider="@null" android:elevation="2dp" @@ -90,7 +87,7 @@ along with this program; if not, write to the Free Software android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_compat_margin" android:elevation="6dp" - android:src="@drawable/ic_add_white_24dp" + android:src="@drawable/ic_dialpad_white_24dp" app:backgroundTint="@color/color_primary_light" app:elevation="6dp" app:pressedTranslationZ="12dp" diff --git a/ring-android/app/src/main/res/layout/frag_contact_list_header.xml b/ring-android/app/src/main/res/layout/frag_contact_list_header.xml index 42696c593..49bff46ed 100644 --- a/ring-android/app/src/main/res/layout/frag_contact_list_header.xml +++ b/ring-android/app/src/main/res/layout/frag_contact_list_header.xml @@ -16,7 +16,6 @@ android:id="@+id/fav_head_label" android:layout_width="match_parent" android:layout_height="48dp" - android:background="@android:color/white" android:gravity="center_vertical" android:paddingLeft="16dp" android:paddingRight="16dp" @@ -36,7 +35,6 @@ android:id="@+id/llMain" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@android:color/white" android:padding="8dp"> <GridView diff --git a/ring-android/app/src/main/res/layout/frag_home.xml b/ring-android/app/src/main/res/layout/frag_home.xml index fc63c4335..9adffadf7 100644 --- a/ring-android/app/src/main/res/layout/frag_home.xml +++ b/ring-android/app/src/main/res/layout/frag_home.xml @@ -2,7 +2,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical" > + android:orientation="vertical"> <!-- <ImageView android:layout_width="match_parent" diff --git a/ring-android/app/src/main/res/layout/header.xml b/ring-android/app/src/main/res/layout/header.xml index d8814ff38..d4d61c399 100644 --- a/ring-android/app/src/main/res/layout/header.xml +++ b/ring-android/app/src/main/res/layout/header.xml @@ -2,7 +2,6 @@ <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="48dp" - android:background="@android:color/white" android:clickable="false" android:focusable="false" android:orientation="vertical" > diff --git a/ring-android/app/src/main/res/layout/item_calllist.xml b/ring-android/app/src/main/res/layout/item_calllist.xml index c32e81e99..0f88ddd45 100644 --- a/ring-android/app/src/main/res/layout/item_calllist.xml +++ b/ring-android/app/src/main/res/layout/item_calllist.xml @@ -22,8 +22,8 @@ along with this program; if not, write to the Free Software android:id="@+id/call_entry" android:layout_width="match_parent" android:layout_height="72dp" - android:background="@drawable/item_history_selector" - android:descendantFocusability="blocksDescendants"> + android:descendantFocusability="blocksDescendants" + android:padding="16dp"> <ImageView android:id="@+id/photo" diff --git a/ring-android/app/src/main/res/layout/item_contact.xml b/ring-android/app/src/main/res/layout/item_contact.xml index 28bde0631..85502dd5c 100644 --- a/ring-android/app/src/main/res/layout/item_contact.xml +++ b/ring-android/app/src/main/res/layout/item_contact.xml @@ -23,7 +23,8 @@ along with this program; if not, write to the Free Software android:id="@+id/contactview" android:layout_width="match_parent" android:layout_height="72dp" - android:minHeight="72dp"> + android:minHeight="72dp" + android:descendantFocusability="blocksDescendants"> <ImageView android:id="@+id/photo" @@ -52,14 +53,13 @@ along with this program; if not, write to the Free Software <ImageButton android:id="@+id/quick_call" android:layout_width="wrap_content" - android:layout_height="fill_parent" + android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" - android:background="@null" android:contentDescription="@string/contact_quick_call_description" - android:paddingLeft="32dp" - android:paddingRight="32dp" android:src="@drawable/ic_call_white_24dp" - android:tint="@color/black" /> + android:tint="@color/black" + android:background="?selectableItemBackgroundBorderless" + android:padding="16dp" /> </RelativeLayout> -- GitLab