From c5051e8813ae9069ddbf062bef4c6e22e6421042 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 5 Apr 2017 12:37:04 +1000 Subject: [PATCH] Extract "days since date" to Utils --- app/src/main/java/org/fdroid/fdroid/Utils.java | 10 ++++++++++ .../fdroid/views/AppDetailsRecyclerViewAdapter.java | 7 ++----- .../fdroid/fdroid/views/main/WhatsNewViewBinder.java | 8 +++----- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/Utils.java b/app/src/main/java/org/fdroid/fdroid/Utils.java index c812e1273..de2101a22 100644 --- a/app/src/main/java/org/fdroid/fdroid/Utils.java +++ b/app/src/main/java/org/fdroid/fdroid/Utils.java @@ -66,12 +66,14 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.Formatter; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.concurrent.TimeUnit; public final class Utils { @@ -508,6 +510,14 @@ public final class Utils { return sb; } + /** + * Calculate the number of days since the given date. + */ + public static int daysSince(@NonNull Date date) { + long msDiff = Calendar.getInstance().getTimeInMillis() - date.getTime(); + return (int) TimeUnit.MILLISECONDS.toDays(msDiff); + } + // Need this to add the unimplemented support for ordered and unordered // lists to Html.fromHtml(). public static class HtmlTagHandler implements Html.TagHandler { diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java index 94de54327..9e26721f8 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -48,10 +48,8 @@ import org.fdroid.fdroid.privileged.views.AppSecurityPermissions; import java.text.NumberFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.List; import java.util.Locale; -import java.util.concurrent.TimeUnit; public class AppDetailsRecyclerViewAdapter extends RecyclerView.Adapter { @@ -405,9 +403,8 @@ public class AppDetailsRecyclerViewAdapter authorView.setVisibility(View.GONE); } if (app.lastUpdated != null) { - long msDiff = Calendar.getInstance().getTimeInMillis() - app.lastUpdated.getTime(); - int daysDiff = (int) TimeUnit.MILLISECONDS.toDays(msDiff); - lastUpdateView.setText(lastUpdateView.getContext().getResources().getQuantityString(R.plurals.details_last_update_days, daysDiff, daysDiff)); + int daysSince = Utils.daysSince(app.lastUpdated); + lastUpdateView.setText(lastUpdateView.getContext().getResources().getQuantityString(R.plurals.details_last_update_days, daysSince, daysSince)); lastUpdateView.setVisibility(View.VISIBLE); } else { lastUpdateView.setVisibility(View.GONE); diff --git a/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java b/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java index 4aaf66606..8d0ed9bd2 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java +++ b/app/src/main/java/org/fdroid/fdroid/views/main/WhatsNewViewBinder.java @@ -17,15 +17,14 @@ import android.widget.TextView; import org.fdroid.fdroid.R; import org.fdroid.fdroid.UpdateService; +import org.fdroid.fdroid.Utils; import org.fdroid.fdroid.data.AppProvider; import org.fdroid.fdroid.data.RepoProvider; import org.fdroid.fdroid.data.Schema; import org.fdroid.fdroid.views.apps.AppListActivity; import org.fdroid.fdroid.views.whatsnew.WhatsNewAdapter; -import java.util.Calendar; import java.util.Date; -import java.util.concurrent.TimeUnit; /** * Loads a list of newly added or recently updated apps and displays them to the user. @@ -123,9 +122,8 @@ class WhatsNewViewBinder implements LoaderManager.LoaderCallbacks { if (lastUpdate == null) { emptyStateText.append(activity.getString(R.string.latest__empty_state__never_updated)); } else { - long msDiff = Calendar.getInstance().getTimeInMillis() - lastUpdate.getTime(); - int daysDiff = (int) TimeUnit.MILLISECONDS.toDays(msDiff); - emptyStateText.append(activity.getResources().getQuantityString(R.plurals.details_last_update_days, daysDiff, daysDiff)); + int daysSince = Utils.daysSince(lastUpdate); + emptyStateText.append(activity.getResources().getQuantityString(R.plurals.details_last_update_days, daysSince, daysSince)); } }