diff --git a/ring-android/app/src/main/java/cx/ring/tv/cards/Card.java b/ring-android/app/src/main/java/cx/ring/tv/cards/Card.java index 10287838de3fead44ba40f59fcd64af055bfe77e..a5502b0f620a19f3ebbeeab8eaec3af10b9d7096 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/cards/Card.java +++ b/ring-android/app/src/main/java/cx/ring/tv/cards/Card.java @@ -125,6 +125,8 @@ public class Card { SEARCH_RESULT, CONTRIBUTOR, LICENCES, + CONTACT, + CONTACT_WITH_USERNAME, } } \ No newline at end of file diff --git a/ring-android/app/src/main/java/cx/ring/tv/cards/CardPresenterSelector.java b/ring-android/app/src/main/java/cx/ring/tv/cards/CardPresenterSelector.java index 7238ac39ed09e595857c79d9e3aeed38dbb2ddef..4ffafb68606cd7533dac324d02f8424a0b6f4e21 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/cards/CardPresenterSelector.java +++ b/ring-android/app/src/main/java/cx/ring/tv/cards/CardPresenterSelector.java @@ -52,7 +52,13 @@ public class CardPresenterSelector extends PresenterSelector { presenter = new AboutCardPresenter(mContext); break; case SEARCH_RESULT: - presenter = new ContactCardPresenter(mContext,R.style.SearchtCardTheme); + presenter = new ContactCardPresenter(mContext,R.style.SearchCardTheme); + break; + case CONTACT: + presenter = new ContactCardPresenter(mContext,R.style.ContactCardTheme); + break; + case CONTACT_WITH_USERNAME: + presenter = new ContactCardPresenter(mContext,R.style.ContactCompleteCardTheme); break; default: presenter = new ContactCardPresenter(mContext, R.style.DefaultCardTheme); diff --git a/ring-android/app/src/main/java/cx/ring/tv/cards/contacts/ContactCard.java b/ring-android/app/src/main/java/cx/ring/tv/cards/contacts/ContactCard.java index 034d042506add4b851d8471b9319ff3928e654e2..ea292a15787afec5d900e544404e643e6f29681c 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/cards/contacts/ContactCard.java +++ b/ring-android/app/src/main/java/cx/ring/tv/cards/contacts/ContactCard.java @@ -25,6 +25,7 @@ import cx.ring.tv.cards.Card; public class ContactCard extends Card { CallContact mCallContact = null; private byte[] mPhoto = null; + public ContactCard(CallContact pCallContact, Type type) { mCallContact = pCallContact; setId(pCallContact.getId()); @@ -37,7 +38,18 @@ public class ContactCard extends Card { } public ContactCard(CallContact pCallContact) { - this(pCallContact, Type.DEFAULT); + mCallContact = pCallContact; + setId(pCallContact.getId()); + setTitle(pCallContact.getDisplayName()); + setDescription(pCallContact.getRingUsername()); + if (pCallContact.getPhoto() != null) { + mPhoto = pCallContact.getPhoto(); + } + if (pCallContact.getDisplayName().equals(pCallContact.getRingUsername())) { + setType(Type.CONTACT); + } else { + setType(Type.CONTACT_WITH_USERNAME); + } } public CallContact getCallContact() { diff --git a/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java b/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java index 93612a69c0b623b24b55e5f1200b7511cbba4264..f875cefec5859df67c6119b4d697817e500d1ba7 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java @@ -92,10 +92,9 @@ public class MainPresenter extends RootPresenter<MainView> implements Observer<S switch (event.getEventType()) { case CONVERSATIONS_CHANGED: - reloadConversations(); - break; case ACCOUNTS_CHANGED: case NAME_REGISTRATION_ENDED: + reloadConversations(); reloadAccountInfos(); break; } diff --git a/ring-android/app/src/main/res/values/styles.xml b/ring-android/app/src/main/res/values/styles.xml index f6f3d41d82e8da2fa48d28c40867c1204692027c..3c5bae88d3c6ae567a1f8c3eeb3217f97fd29b4d 100644 --- a/ring-android/app/src/main/res/values/styles.xml +++ b/ring-android/app/src/main/res/values/styles.xml @@ -128,6 +128,14 @@ <item name="lbImageCardViewType">Title</item> </style> + <style name="ContactTitleViewStyle" parent="DefaultCardStyle"> + <item name="lbImageCardViewType">Title</item> + </style> + + <style name="ContactCompleteCardViewStyle" parent="DefaultCardStyle"> + <item name="lbImageCardViewType">Title|Content</item> + </style> + <style name="IconCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle"> <item name="android:layout_width">96dp</item> <item name="android:layout_height">96dp</item> @@ -147,8 +155,8 @@ <item name="layout_viewType">main</item> </style> - <!-- A Searcht card style. Used in cards example. --> - <style name="SearchtCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle"> + <!-- A Search card style. Used in cards example. --> + <style name="SearchCardImageStyle" parent="Widget.Leanback.ImageCardView.ImageStyle"> <item name="android:layout_width">@dimen/search_image_card_width</item> <item name="android:layout_height">@dimen/search_image_card_height</item> </style> @@ -157,11 +165,18 @@ <item name="cardBackground">@null</item> <item name="android:layout_width">96dp</item> <item name="android:layout_height">96dp</item> + <item name="lbImageCardViewType">Title</item> </style> - <style name="SearchtCardTheme" parent="Theme.Leanback"> + <style name="ContactCardTheme" parent="DefaultCardTheme"> + <item name="imageCardViewStyle">@style/ContactTitleViewStyle</item> + </style> + <style name="ContactCompleteCardTheme" parent="DefaultCardTheme"> + <item name="imageCardViewStyle">@style/ContactCompleteCardViewStyle</item> + </style> + <style name="SearchCardTheme" parent="Theme.Leanback"> <item name="imageCardViewStyle">@style/SearchCardStyle</item> - <item name="imageCardViewImageStyle">@style/SearchtCardImageStyle</item> + <item name="imageCardViewImageStyle">@style/SearchCardImageStyle</item> </style> <!-- Theme corresponding to the IconCardStyle --> <style name="IconCardTheme" parent="Theme.Leanback">