Extract "days since date" to Utils

This commit is contained in:
Peter Serwylo 2017-04-05 12:37:04 +10:00
parent 3b9f841117
commit c5051e8813
3 changed files with 15 additions and 10 deletions

View File

@ -66,12 +66,14 @@ import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.Formatter; import java.util.Formatter;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
public final class Utils { public final class Utils {
@ -508,6 +510,14 @@ public final class Utils {
return sb; 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 // Need this to add the unimplemented support for ordered and unordered
// lists to Html.fromHtml(). // lists to Html.fromHtml().
public static class HtmlTagHandler implements Html.TagHandler { public static class HtmlTagHandler implements Html.TagHandler {

View File

@ -48,10 +48,8 @@ import org.fdroid.fdroid.privileged.views.AppSecurityPermissions;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.concurrent.TimeUnit;
public class AppDetailsRecyclerViewAdapter public class AppDetailsRecyclerViewAdapter
extends RecyclerView.Adapter<RecyclerView.ViewHolder> { extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
@ -405,9 +403,8 @@ public class AppDetailsRecyclerViewAdapter
authorView.setVisibility(View.GONE); authorView.setVisibility(View.GONE);
} }
if (app.lastUpdated != null) { if (app.lastUpdated != null) {
long msDiff = Calendar.getInstance().getTimeInMillis() - app.lastUpdated.getTime(); int daysSince = Utils.daysSince(app.lastUpdated);
int daysDiff = (int) TimeUnit.MILLISECONDS.toDays(msDiff); lastUpdateView.setText(lastUpdateView.getContext().getResources().getQuantityString(R.plurals.details_last_update_days, daysSince, daysSince));
lastUpdateView.setText(lastUpdateView.getContext().getResources().getQuantityString(R.plurals.details_last_update_days, daysDiff, daysDiff));
lastUpdateView.setVisibility(View.VISIBLE); lastUpdateView.setVisibility(View.VISIBLE);
} else { } else {
lastUpdateView.setVisibility(View.GONE); lastUpdateView.setVisibility(View.GONE);

View File

@ -17,15 +17,14 @@ import android.widget.TextView;
import org.fdroid.fdroid.R; import org.fdroid.fdroid.R;
import org.fdroid.fdroid.UpdateService; import org.fdroid.fdroid.UpdateService;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.AppProvider; import org.fdroid.fdroid.data.AppProvider;
import org.fdroid.fdroid.data.RepoProvider; import org.fdroid.fdroid.data.RepoProvider;
import org.fdroid.fdroid.data.Schema; import org.fdroid.fdroid.data.Schema;
import org.fdroid.fdroid.views.apps.AppListActivity; import org.fdroid.fdroid.views.apps.AppListActivity;
import org.fdroid.fdroid.views.whatsnew.WhatsNewAdapter; import org.fdroid.fdroid.views.whatsnew.WhatsNewAdapter;
import java.util.Calendar;
import java.util.Date; 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. * 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<Cursor> {
if (lastUpdate == null) { if (lastUpdate == null) {
emptyStateText.append(activity.getString(R.string.latest__empty_state__never_updated)); emptyStateText.append(activity.getString(R.string.latest__empty_state__never_updated));
} else { } else {
long msDiff = Calendar.getInstance().getTimeInMillis() - lastUpdate.getTime(); int daysSince = Utils.daysSince(lastUpdate);
int daysDiff = (int) TimeUnit.MILLISECONDS.toDays(msDiff); emptyStateText.append(activity.getResources().getQuantityString(R.plurals.details_last_update_days, daysSince, daysSince));
emptyStateText.append(activity.getResources().getQuantityString(R.plurals.details_last_update_days, daysDiff, daysDiff));
} }
} }