diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index 8b1ac2a1e..c2cc6564f 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -628,7 +628,11 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On }); holder.poll_container.setVisibility(View.VISIBLE); holder.number_votes.setText(context.getResources().getQuantityString(R.plurals.number_of_voters, status.getPoll().getVoters_count(), status.getPoll().getVoters_count())); - holder.remaining_time.setText(context.getString(R.string.poll_finish_at, Helper.dateToStringPoll(poll.getExpires_at()))); + if( poll.isExpired()){ + holder.remaining_time.setText(context.getString(R.string.poll_finish_at, Helper.dateToStringPoll(poll.getExpires_at()))); + }else{ + holder.remaining_time.setText(context.getString(R.string.poll_finish_in, Helper.dateDiffPoll(context, poll.getExpires_at()))); + } } else { holder.poll_container.setVisibility(View.GONE); } diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java index 0b27df753..de6c4bd90 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -895,7 +895,11 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct }); holder.poll_container.setVisibility(View.VISIBLE); holder.number_votes.setText(context.getResources().getQuantityString(R.plurals.number_of_voters, poll.getVoters_count(), poll.getVoters_count())); - holder.remaining_time.setText(context.getString(R.string.poll_finish_at, Helper.dateToStringPoll(poll.getExpires_at()))); + if( poll.isExpired()){ + holder.remaining_time.setText(context.getString(R.string.poll_finish_at, Helper.dateToStringPoll(poll.getExpires_at()))); + }else{ + holder.remaining_time.setText(context.getString(R.string.poll_finish_in, Helper.dateDiffPoll(context, poll.getExpires_at()))); + } } else { holder.poll_container.setVisibility(View.GONE); } diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 27d15e021..c0ff6cb37 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -1001,6 +1001,33 @@ public class Helper { } } + /*** + * Returns a String depending of the date + * @param context Context + * @param dateEndPoll Date + * @return String + */ + public static String dateDiffPoll(Context context, Date dateEndPoll) { + Date now = new Date(); + long diff = dateEndPoll.getTime() - now.getTime(); + long seconds = diff / 1000; + long minutes = seconds / 60; + long hours = minutes / 60; + long days = hours / 24; + + if (days > 0) + return context.getResources().getQuantityString(R.plurals.date_day_polls, (int) days, (int) days); + else if (hours > 0) + return context.getResources().getQuantityString(R.plurals.date_hours_polls, (int) hours, (int) hours); + else if (minutes > 0) + return context.getResources().getQuantityString(R.plurals.date_minutes_polls, (int) minutes, (int) minutes); + else { + if (seconds < 0) + seconds = 0; + return context.getResources().getQuantityString(R.plurals.date_seconds_polls, (int) seconds, (int) seconds); + } + } + /*** * Toast message depending of the status code and the initial action * @param context Context diff --git a/app/src/main/res/layout/layout_poll.xml b/app/src/main/res/layout/layout_poll.xml index 07747e304..0f3edbc6b 100644 --- a/app/src/main/res/layout/layout_poll.xml +++ b/app/src/main/res/layout/layout_poll.xml @@ -45,14 +45,14 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:visibility="gone"> + android:visibility="gone"/> + android:visibility="gone"/> %d h %d d + + %d second + %d seconds + + + %d minute + %d minutes + + + %d hour + %d hours + + + + %d day + %d days + + Warning What is on your mind? @@ -1154,4 +1172,5 @@ Status count Instance count Blocked + End in %s \ No newline at end of file