From 74f6cc94d2d24821708faf6ff9d5dddfcdec3995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Siret?= <loic.siret@savoirfairelinux.com> Date: Wed, 6 Sep 2017 15:01:10 -0400 Subject: [PATCH] androidtv: rework Card Styles This patches remove duplicate information on cards. if the title and description are the same, we display one one line card. Change-Id: I5794710a34010275edb25c053d8a3595dc1993b4 --- .../src/main/java/cx/ring/tv/cards/Card.java | 2 ++ .../ring/tv/cards/CardPresenterSelector.java | 8 ++++++- .../ring/tv/cards/contacts/ContactCard.java | 14 ++++++++++- .../java/cx/ring/tv/main/MainPresenter.java | 3 +-- .../app/src/main/res/values/styles.xml | 23 +++++++++++++++---- 5 files changed, 42 insertions(+), 8 deletions(-) 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 10287838d..a5502b0f6 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 7238ac39e..4ffafb686 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 034d04250..ea292a157 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 93612a69c..f875cefec 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 f6f3d41d8..3c5bae88d 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"> -- GitLab