From 075d3dc6e9a965a70a1c36c587a8c9e03ca8468d Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 15 Jul 2019 21:28:25 +0200 Subject: [PATCH] Fixed some more time formatting --- .../eu/faircode/email/AdapterAccount.java | 7 ++++--- .../eu/faircode/email/AdapterIdentity.java | 7 ++++--- .../java/eu/faircode/email/AdapterLog.java | 5 +++-- .../eu/faircode/email/AdapterMessage.java | 15 +++++++------- .../eu/faircode/email/AdapterRuleMatch.java | 6 ++++-- app/src/main/java/eu/faircode/email/Core.java | 4 ++-- .../eu/faircode/email/FragmentCompose.java | 5 ++--- .../email/FragmentDialogDuration.java | 8 ++++---- .../eu/faircode/email/FragmentMessages.java | 2 +- .../faircode/email/FragmentOptionsMisc.java | 6 ++---- .../main/java/eu/faircode/email/Helper.java | 20 ++++++++++++++++++- app/src/main/java/eu/faircode/email/Log.java | 9 ++++----- .../eu/faircode/email/ServiceSynchronize.java | 3 +-- 13 files changed, 58 insertions(+), 39 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterAccount.java b/app/src/main/java/eu/faircode/email/AdapterAccount.java index 27485199bb..850b98c23b 100644 --- a/app/src/main/java/eu/faircode/email/AdapterAccount.java +++ b/app/src/main/java/eu/faircode/email/AdapterAccount.java @@ -52,7 +52,6 @@ import androidx.recyclerview.widget.RecyclerView; import java.text.DateFormat; import java.text.NumberFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -70,7 +69,7 @@ public class AdapterAccount extends RecyclerView.Adapter items = new ArrayList<>(); private NumberFormat nf = NumberFormat.getNumberInstance(); - private DateFormat df = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + private DateFormat DTF; public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { private View view; @@ -159,7 +158,7 @@ public class AdapterAccount extends RecyclerView.Adapter 0 || !settings ? View.GONE : View.VISIBLE); @@ -289,6 +288,8 @@ public class AdapterAccount extends RecyclerView.Adapter items = new ArrayList<>(); - private DateFormat df = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + private DateFormat DTF; public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { private View view; @@ -127,7 +126,7 @@ public class AdapterIdentity extends RecyclerView.Adapter { private List items = new ArrayList<>(); - private DateFormat TF = SimpleDateFormat.getTimeInstance(); + private DateFormat TF; public class ViewHolder extends RecyclerView.ViewHolder { private TextView tvTime; @@ -74,6 +73,8 @@ public class AdapterLog extends RecyclerView.Adapter { this.owner = parentFragment.getViewLifecycleOwner(); this.inflater = LayoutInflater.from(parentFragment.getContext()); + this.TF = Helper.getTimeInstance(context); + setHasStableIds(true); owner.getLifecycle().addObserver(new LifecycleObserver() { diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 17a60228f5..35014afc45 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -194,7 +194,7 @@ public class AdapterMessage extends RecyclerView.Adapter PARANOID_QUERY = Collections.unmodifiableList(Arrays.asList( "utm_source", @@ -1192,7 +1192,7 @@ public class AdapterMessage extends RecyclerView.Adapter items = new ArrayList<>(); - private DateFormat DF = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT); + private DateFormat DTF; public class ViewHolder extends RecyclerView.ViewHolder { private View view; @@ -68,7 +68,7 @@ public class AdapterRuleMatch extends RecyclerView.Adapter").append(messageContact.get(message).getDisplayName(true)).append(""); if (!TextUtils.isEmpty(message.subject)) sb.append(": ").append(message.subject); - sb.append(" ").append(df.format(message.received)); + sb.append(" ").append(DTF.format(message.received)); sb.append("
"); } diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 01854bb1e6..39d937489b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -130,7 +130,6 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.UnknownHostException; import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; @@ -2691,8 +2690,8 @@ public class FragmentCompose extends FragmentBase { if (draft.ui_snoozed == null) feedback = context.getString(R.string.title_queued); else { - DateFormat df = SimpleDateFormat.getDateTimeInstance(); - feedback = context.getString(R.string.title_queued_at, df.format(draft.ui_snoozed)); + DateFormat DTF = Helper.getDateTimeInstance(context); + feedback = context.getString(R.string.title_queued_at, DTF.format(draft.ui_snoozed)); } Handler handler = new Handler(context.getMainLooper()); diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogDuration.java b/app/src/main/java/eu/faircode/email/FragmentDialogDuration.java index 093edcc288..8515635d48 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogDuration.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogDuration.java @@ -65,8 +65,8 @@ public class FragmentDialogDuration extends DialogFragmentEx { cal.setTimeInMillis(savedInstanceState.getLong("fair:time")); Log.i("Set init=" + new Date(cal.getTimeInMillis())); - final DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.FULL, SimpleDateFormat.SHORT); - tvDuration.setText(df.format(cal.getTime())); + final DateFormat DTF = Helper.getDateTimeInstance(getContext(), SimpleDateFormat.FULL, SimpleDateFormat.SHORT); + tvDuration.setText(DTF.format(cal.getTime())); timePicker.setIs24HourView(android.text.format.DateFormat.is24HourFormat(getContext())); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { @@ -82,7 +82,7 @@ public class FragmentDialogDuration extends DialogFragmentEx { public void onTimeChanged(TimePicker view, int hour, int minute) { cal.set(Calendar.HOUR_OF_DAY, hour); cal.set(Calendar.MINUTE, minute); - tvDuration.setText(df.format(cal.getTime())); + tvDuration.setText(DTF.format(cal.getTime())); Log.i("Set hour=" + hour + " minute=" + minute + " time=" + new Date(cal.getTimeInMillis())); } @@ -98,7 +98,7 @@ public class FragmentDialogDuration extends DialogFragmentEx { cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month); cal.set(Calendar.DAY_OF_MONTH, day); - tvDuration.setText(df.format(cal.getTime())); + tvDuration.setText(DTF.format(cal.getTime())); Log.i("Set year=" + year + " month=" + month + " day=" + day + " time=" + new Date(cal.getTimeInMillis())); } diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index eadae293dd..60144183a6 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -4228,7 +4228,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. { Element span = document.createElement("span"); - DateFormat DTF = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG); + DateFormat DTF = Helper.getDateTimeInstance(context, SimpleDateFormat.LONG, SimpleDateFormat.LONG); span.text(getString(R.string.title_received) + " " + DTF.format(message.received)); p.append(span.html() + "
"); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 04b30f15dc..39fc7aef91 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -46,8 +46,6 @@ import androidx.preference.PreferenceManager; import com.bugsnag.android.Bugsnag; -import java.text.SimpleDateFormat; - public class FragmentOptionsMisc extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private SwitchCompat swBadge; private SwitchCompat swSubscriptions; @@ -318,10 +316,10 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc } private void setLastCleanup(long time) { - java.text.DateFormat df = SimpleDateFormat.getDateTimeInstance(); + java.text.DateFormat DTF = Helper.getDateTimeInstance(getContext()); tvLastCleanup.setText( getString(R.string.title_advanced_last_cleanup, - time < 0 ? "-" : df.format(time))); + time < 0 ? "-" : DTF.format(time))); } private void restart() { diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 62ea07570f..3bc1d6def4 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -347,8 +347,17 @@ public class Helper { return new DecimalFormat("@@").format(bytes / Math.pow(unit, exp)) + " " + pre + "B"; } + // https://issuetracker.google.com/issues/37054851 + + static DateFormat getTimeInstance(Context context) { + return Helper.getTimeInstance(context, SimpleDateFormat.MEDIUM); + } + + static DateFormat getDateInstance(Context context) { + return SimpleDateFormat.getDateInstance(SimpleDateFormat.MEDIUM); + } + static DateFormat getTimeInstance(Context context, int style) { - // https://issuetracker.google.com/issues/37054851 if (context != null && (style == SimpleDateFormat.SHORT || style == SimpleDateFormat.MEDIUM)) { Locale locale = Locale.getDefault(); @@ -362,6 +371,15 @@ public class Helper { return SimpleDateFormat.getTimeInstance(style); } + static DateFormat getDateTimeInstance(Context context) { + return Helper.getDateTimeInstance(context, SimpleDateFormat.MEDIUM, SimpleDateFormat.MEDIUM); + } + + static DateFormat getDateTimeInstance(Context context, int dateStyle, int timeStyle) { + // TODO fix time format + return SimpleDateFormat.getDateTimeInstance(dateStyle, timeStyle); + } + static CharSequence getRelativeTimeSpanString(Context context, long millis) { long now = System.currentTimeMillis(); long span = Math.abs(now - millis); diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index cd154709e3..461a58e902 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -53,7 +53,6 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.lang.reflect.Array; import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Map; @@ -410,10 +409,10 @@ public class Log { long size = 0; long from = new Date().getTime() - 24 * 3600 * 1000L; - DateFormat DF = SimpleDateFormat.getTimeInstance(); + DateFormat TF = Helper.getTimeInstance(context); for (EntityLog entry : db.log().getLogs(from)) - size += write(os, String.format("%s %s\r\n", DF.format(entry.time), entry.data)); + size += write(os, String.format("%s %s\r\n", TF.format(entry.time), entry.data)); db.attachment().setDownloaded(attachment.id, size); } @@ -436,11 +435,11 @@ public class Log { try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) { long size = 0; - DateFormat DF = SimpleDateFormat.getTimeInstance(); + DateFormat TF = Helper.getTimeInstance(context); for (EntityOperation op : db.operation().getOperations()) size += write(os, String.format("%s %d %s %s %s\r\n", - DF.format(op.created), + TF.format(op.created), op.message == null ? -1 : op.message, op.name, op.args, diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 94a0b3e77f..abf407413f 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -51,7 +51,6 @@ import com.sun.mail.imap.IMAPStore; import java.io.IOException; import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -720,7 +719,7 @@ public class ServiceSynchronize extends LifecycleService { Log.i("Reporting sync error after=" + delayed); Throwable warning = new Throwable( getString(R.string.title_no_sync, - SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT) + Helper.getDateTimeInstance(this, DateFormat.SHORT, DateFormat.SHORT) .format(account.last_connected)), ex); NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.notify("receive:" + account.id, 1,