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
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 1028783..a5502b0 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 @@
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 7238ac3..4ffafb6 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 @@
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 034d042..ea292a1 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 @@
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 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 93612a6..f875cef 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 @@
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 f6f3d41..3c5bae8 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">