diff --git a/app/build.gradle b/app/build.gradle index efdaadcff..92c907015 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ allprojects { } ext.supportLibraryVersion = '28.0.0' ext.glideLibraryVersion = '4.8.0' -ext.conscryptLibraryVersion = '1.4.1' +ext.conscryptLibraryVersion = '1.3.0' ext.evernoteLibraryVersion = '1.3.0-alpha08' ext.gsonLibraryVersion = '2.8.2' ext.guavaLibraryVersion = '24.1-android' diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Card.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Card.java index 62cd83309..9590acdab 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Card.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Card.java @@ -15,6 +15,9 @@ package fr.gouv.etalab.mastodon.client.Entities; +import android.os.Parcel; +import android.os.Parcelable; + /** * Created by Thomas on 23/04/2017. * Manages card in toots, only used during a call to the context @@ -22,7 +25,7 @@ package fr.gouv.etalab.mastodon.client.Entities; * All values are not implemented */ -public class Card{ +public class Card implements Parcelable { private String url; private String title; @@ -41,6 +44,34 @@ public class Card{ public Card(){} + protected Card(Parcel in) { + url = in.readString(); + title = in.readString(); + description = in.readString(); + image = in.readString(); + type = in.readString(); + html = in.readString(); + author_name = in.readString(); + author_url = in.readString(); + embed_url = in.readString(); + provider_name = in.readString(); + provider_url = in.readString(); + height = in.readInt(); + width = in.readInt(); + } + + public static final Creator CREATOR = new Creator() { + @Override + public Card createFromParcel(Parcel in) { + return new Card(in); + } + + @Override + public Card[] newArray(int size) { + return new Card[size]; + } + }; + public String getUrl() { return url; } @@ -145,4 +176,26 @@ public class Card{ public void setWidth(int width) { this.width = width; } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(url); + dest.writeString(title); + dest.writeString(description); + dest.writeString(image); + dest.writeString(type); + dest.writeString(html); + dest.writeString(author_name); + dest.writeString(author_url); + dest.writeString(embed_url); + dest.writeString(provider_name); + dest.writeString(provider_url); + dest.writeInt(height); + dest.writeInt(width); + } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java index 1856ae9c7..a620b12b8 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/Entities/Status.java @@ -130,6 +130,7 @@ public class Status implements Parcelable{ in_reply_to_id = in.readString(); in_reply_to_account_id = in.readString(); reblog = in.readParcelable(Status.class.getClassLoader()); + card = in.readParcelable(Card.class.getClassLoader()); account = in.readParcelable(Account.class.getClassLoader()); application = in.readParcelable(Application.class.getClassLoader()); mentions = in.readArrayList(Mention.class.getClassLoader()); @@ -166,6 +167,7 @@ public class Status implements Parcelable{ dest.writeString(in_reply_to_id); dest.writeString(in_reply_to_account_id); dest.writeParcelable(reblog, flags); + dest.writeParcelable(card, flags); dest.writeParcelable(account, flags); dest.writeParcelable(application, flags); dest.writeList(mentions); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index 6059a922a..aa554a3d8 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -1222,15 +1222,14 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.webview_preview.setVisibility(View.VISIBLE); } boolean display_video_preview = sharedpreferences.getBoolean(Helper.SET_DISPLAY_VIDEO_PREVIEWS, true); - if( type == RetrieveFeedsAsyncTask.Type.CONTEXT || display_card || display_video_preview){ + if( (type == RetrieveFeedsAsyncTask.Type.CONTEXT && position == conversationPosition ) || display_card || display_video_preview){ - if( type == RetrieveFeedsAsyncTask.Type.CONTEXT) + if( type == RetrieveFeedsAsyncTask.Type.CONTEXT & position == conversationPosition) holder.status_cardview_content.setVisibility(View.VISIBLE); else holder.status_cardview_content.setVisibility(View.GONE); if( position == conversationPosition || display_card || display_video_preview){ - Card card = status.getReblog()!= null?status.getReblog().getCard():status.getCard(); if( card != null){ holder.status_cardview_content.setText(card.getDescription()); diff --git a/app/src/main/res/layout/drawer_status_focused.xml b/app/src/main/res/layout/drawer_status_focused.xml index fe5d914ba..9d668f918 100644 --- a/app/src/main/res/layout/drawer_status_focused.xml +++ b/app/src/main/res/layout/drawer_status_focused.xml @@ -214,25 +214,27 @@