Use number format

pull/153/head
M66B 7 years ago
parent 079da6f6de
commit 93b1e7f9fa

@ -73,6 +73,7 @@ import java.io.OutputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URL; import java.net.URL;
import java.text.Collator; import java.text.Collator;
import java.text.NumberFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
@ -112,6 +113,8 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
private OpenPgpServiceConnection pgpService; private OpenPgpServiceConnection pgpService;
private static NumberFormat nf = NumberFormat.getNumberInstance();
static final int REQUEST_UNIFIED = 1; static final int REQUEST_UNIFIED = 1;
static final int REQUEST_THREAD = 2; static final int REQUEST_THREAD = 2;
@ -311,13 +314,15 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
List<DrawerItem> items = new ArrayList<>(); List<DrawerItem> items = new ArrayList<>();
for (TupleAccountEx account : accounts) for (TupleAccountEx account : accounts) {
items.add(new DrawerItem( StringBuilder sb = new StringBuilder();
account.id, sb.append(account);
if (account.unseen > 0)
sb.append(" (").append(nf.format(account.unseen)).append(")");
items.add(new DrawerItem(account.id,
"connected".equals(account.state) ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24, "connected".equals(account.state) ? R.drawable.baseline_folder_24 : R.drawable.baseline_folder_open_24,
account.color, account.color, sb.toString(), account.unseen > 0));
account.unseen > 0 ? getString(R.string.title_unseen_count, account.name, account.unseen) : account.toString(), }
account.unseen > 0));
items.add(new DrawerItem(-1)); items.add(new DrawerItem(-1));
items.add(new DrawerItem(-2, R.string.menu_answers, R.drawable.baseline_reply_24)); items.add(new DrawerItem(-2, R.string.menu_answers, R.drawable.baseline_reply_24));

@ -67,7 +67,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
private List<TupleFolderEx> all = new ArrayList<>(); private List<TupleFolderEx> all = new ArrayList<>();
private List<TupleFolderEx> filtered = new ArrayList<>(); private List<TupleFolderEx> filtered = new ArrayList<>();
private NumberFormat nf = NumberFormat.getInstance(); private static NumberFormat nf = NumberFormat.getNumberInstance();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private View itemView; private View itemView;
@ -164,11 +164,11 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
ivNotify.setVisibility(folder.notify ? View.VISIBLE : View.GONE); ivNotify.setVisibility(folder.notify ? View.VISIBLE : View.GONE);
String name = folder.getDisplayName(context); StringBuilder n = new StringBuilder();
n.append(folder.getDisplayName(context));
if (folder.unseen > 0) if (folder.unseen > 0)
tvName.setText(context.getString(R.string.title_unseen_count, name, folder.unseen)); n.append(" (").append(nf.format(folder.unseen)).append(")");
else tvName.setText(n.toString());
tvName.setText(name);
tvName.setTypeface(null, folder.unseen > 0 ? Typeface.BOLD : Typeface.NORMAL); tvName.setTypeface(null, folder.unseen > 0 ? Typeface.BOLD : Typeface.NORMAL);
tvName.setTextColor(folder.unseen > 0 ? colorUnread : textColorSecondary); tvName.setTextColor(folder.unseen > 0 ? colorUnread : textColorSecondary);
@ -206,10 +206,14 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
tvAfter.setText(null); tvAfter.setText(null);
ivSync.setImageResource(R.drawable.baseline_sync_24); ivSync.setImageResource(R.drawable.baseline_sync_24);
} else { } else {
StringBuilder a = new StringBuilder();
a.append(nf.format(folder.sync_days));
a.append('/');
if (folder.keep_days == Integer.MAX_VALUE) if (folder.keep_days == Integer.MAX_VALUE)
tvAfter.setText(String.format("%d/∞", folder.sync_days)); a.append('∞');
else else
tvAfter.setText(String.format("%d/%d", folder.sync_days, folder.keep_days)); a.append(nf.format(folder.keep_days));
tvAfter.setText(a.toString());
ivSync.setImageResource(folder.synchronize ? R.drawable.baseline_sync_24 : R.drawable.baseline_sync_disabled_24); ivSync.setImageResource(folder.synchronize ? R.drawable.baseline_sync_24 : R.drawable.baseline_sync_disabled_24);
} }
ivSync.setImageTintList(ColorStateList.valueOf( ivSync.setImageTintList(ColorStateList.valueOf(

@ -99,6 +99,7 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.text.Collator; import java.text.Collator;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -172,6 +173,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
enum ViewType {UNIFIED, FOLDER, THREAD, SEARCH} enum ViewType {UNIFIED, FOLDER, THREAD, SEARCH}
private static NumberFormat nf = NumberFormat.getNumberInstance();
private static DateFormat tf = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT); private static DateFormat tf = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT);
private static DateFormat dtf = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG); private static DateFormat dtf = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG, SimpleDateFormat.LONG);
@ -597,7 +599,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvCount.setVisibility(View.GONE); tvCount.setVisibility(View.GONE);
ivThread.setVisibility(View.GONE); ivThread.setVisibility(View.GONE);
} else { } else {
tvCount.setText(Integer.toString(message.visible)); tvCount.setText(nf.format(message.visible));
ivThread.setVisibility(View.VISIBLE); ivThread.setVisibility(View.VISIBLE);
} }

@ -60,6 +60,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import java.text.Collator; import java.text.Collator;
import java.text.NumberFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
@ -167,6 +168,8 @@ public class FragmentMessages extends FragmentBase {
private final int action_junk = 9; private final int action_junk = 9;
private final int action_move = 10; private final int action_move = 10;
private static NumberFormat nf = NumberFormat.getNumberInstance();
private static final int LOCAL_PAGE_SIZE = 100; private static final int LOCAL_PAGE_SIZE = 100;
private static final int REMOTE_PAGE_SIZE = 10; private static final int REMOTE_PAGE_SIZE = 10;
private static final int UNDO_TIMEOUT = 5000; // milliseconds private static final int UNDO_TIMEOUT = 5000; // milliseconds
@ -1544,11 +1547,11 @@ public class FragmentMessages extends FragmentBase {
errors = true; errors = true;
} }
String name = getString(R.string.title_folder_unified); StringBuilder sb = new StringBuilder();
sb.append(getString(R.string.title_folder_unified));
if (unseen > 0) if (unseen > 0)
setSubtitle(getString(R.string.title_unseen_count, name, unseen)); sb.append(" (").append(nf.format(unseen)).append(")");
else setSubtitle(sb.toString());
setSubtitle(name);
boolean refreshing = false; boolean refreshing = false;
for (TupleFolderEx folder : folders) for (TupleFolderEx folder : folders)
@ -1580,11 +1583,11 @@ public class FragmentMessages extends FragmentBase {
if (folder == null) if (folder == null)
setSubtitle(null); setSubtitle(null);
else { else {
String name = folder.getDisplayName(getContext()); StringBuilder sb = new StringBuilder();
sb.append(folder.getDisplayName(getContext()));
if (folder.unseen > 0) if (folder.unseen > 0)
setSubtitle(getString(R.string.title_unseen_count, name, folder.unseen)); sb.append(" (").append(nf.format(folder.unseen)).append(")");
else setSubtitle(sb.toString());
setSubtitle(name);
boolean outbox = EntityFolder.OUTBOX.equals(folder.type); boolean outbox = EntityFolder.OUTBOX.equals(folder.type);
if (FragmentMessages.this.outbox != outbox) { if (FragmentMessages.this.outbox != outbox) {

@ -268,8 +268,6 @@
<string name="title_pop3_hint">POP3 has significant limitations, so use IMAP whenever possible</string> <string name="title_pop3_hint">POP3 has significant limitations, so use IMAP whenever possible</string>
<string name="title_pop3_support">POP3 is not supported, see also the FAQ</string> <string name="title_pop3_support">POP3 is not supported, see also the FAQ</string>
<string name="title_unseen_count" translatable="false">%1$s (%2$d)</string>
<string name="title_synchronize_now">Synchronize now</string> <string name="title_synchronize_now">Synchronize now</string>
<string name="title_delete_local">Delete local messages</string> <string name="title_delete_local">Delete local messages</string>
<string name="title_delete_browsed">Delete browsed/searched messages</string> <string name="title_delete_browsed">Delete browsed/searched messages</string>

Loading…
Cancel
Save