From 9dedaa0f7a7110412def7a591c3abd42627810ec Mon Sep 17 00:00:00 2001 From: tom79 Date: Fri, 8 Sep 2017 18:30:49 +0200 Subject: [PATCH] Flags new toots. --- .../gouv/etalab/mastodon/client/Entities/Status.java | 11 +++++++++++ .../etalab/mastodon/drawers/StatusListAdapter.java | 8 ++++++++ .../etalab/mastodon/services/StreamingService.java | 1 + app/src/main/res/layout/drawer_status.xml | 10 ++++++++++ 4 files changed, 30 insertions(+) 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 4fd0cc909..1901c5ef7 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 @@ -55,6 +55,7 @@ public class Status implements Parcelable { private String language; private boolean isTranslated = false; private boolean isTranslationShown = false; + private boolean isNew = false; protected Status(Parcel in) { id = in.readString(); @@ -79,6 +80,7 @@ public class Status implements Parcelable { spoilerShown = in.readByte() != 0; isTranslated = in.readByte() != 0; isTranslationShown = in.readByte() != 0; + isNew = in.readByte() != 0; } public Status(){} @@ -294,6 +296,7 @@ public class Status implements Parcelable { dest.writeByte((byte) (spoilerShown ? 1 : 0)); dest.writeByte((byte) (isTranslated ? 1 : 0)); dest.writeByte((byte) (isTranslationShown ? 1 : 0)); + dest.writeByte((byte) (isNew ? 1 : 0)); } public boolean isSpoilerShown() { @@ -343,4 +346,12 @@ public class Status implements Parcelable { public void setReplies(List replies) { this.replies = replies; } + + public boolean isNew() { + return isNew; + } + + public void setNew(boolean aNew) { + isNew = aNew; + } } 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 973e08d61..abde2ee37 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 @@ -211,6 +211,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf holder.status_replies = (LinearLayout) convertView.findViewById(R.id.status_replies); holder.status_replies_profile_pictures = (LinearLayout) convertView.findViewById(R.id.status_replies_profile_pictures); holder.status_replies_text = (TextView) convertView.findViewById(R.id.status_replies_text); + holder.new_element = (ImageView) convertView.findViewById(R.id.new_element); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); @@ -262,6 +263,11 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf } } + changeDrawableColor(context, R.drawable.ic_fiber_new,R.color.mastodonC4); + if( status.isNew()) + holder.new_element.setVisibility(View.VISIBLE); + else + holder.new_element.setVisibility(View.GONE); int iconSizePercent = sharedpreferences.getInt(Helper.SET_ICON_SIZE, 130); int textSizePercent = sharedpreferences.getInt(Helper.SET_TEXT_SIZE, 110); @@ -1092,6 +1098,8 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf LinearLayout status_replies_profile_pictures; TextView status_replies_text; LinearLayout loader_replies; + + ImageView new_element; } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/services/StreamingService.java b/app/src/main/java/fr/gouv/etalab/mastodon/services/StreamingService.java index 80c07ae04..3edc978f2 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/services/StreamingService.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/services/StreamingService.java @@ -386,6 +386,7 @@ public class StreamingService extends Service { }else if ( event == EventStreaming.UPDATE){ status = API.parseStatuses(getApplicationContext(), response); status.setReplies(new ArrayList()); //Force to don't display replies + status.setNew(true); Helper.cacheStatus(getApplicationContext(), status, userId); if( status.getContent() != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml index 537ebdb07..0cce01044 100644 --- a/app/src/main/res/layout/drawer_status.xml +++ b/app/src/main/res/layout/drawer_status.xml @@ -71,6 +71,16 @@ style="?attr/shapeBorder" android:visibility="gone" tools:ignore="ContentDescription" /> + +