diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 25963a359f..5a7c2d27c2 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -51,78 +51,51 @@ import androidx.recyclerview.widget.RecyclerView; public class AdapterFolder extends RecyclerView.Adapter { private Context context; private LifecycleOwner owner; + private String accountState = null; private List all = new ArrayList<>(); private List filtered = new ArrayList<>(); public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { View itemView; - ImageView ivEdit; + ImageView ivState; TextView tvName; TextView tvMessages; - TextView tvType; ImageView ivUnified; + TextView tvType; TextView tvAfter; ImageView ivSync; - ImageView ivState; TextView tvError; - private final static int action_synchronize = 1; - private final static int action_delete_local = 2; + private final static int action_edit = 1; + private final static int action_sync = 2; + private final static int action_delete = 3; ViewHolder(View itemView) { super(itemView); this.itemView = itemView; - ivEdit = itemView.findViewById(R.id.ivEdit); + ivState = itemView.findViewById(R.id.ivState); tvName = itemView.findViewById(R.id.tvName); tvMessages = itemView.findViewById(R.id.tvMessages); - tvType = itemView.findViewById(R.id.tvType); ivUnified = itemView.findViewById(R.id.ivUnified); + tvType = itemView.findViewById(R.id.tvType); tvAfter = itemView.findViewById(R.id.tvAfter); ivSync = itemView.findViewById(R.id.ivSync); tvError = itemView.findViewById(R.id.tvError); - ivState = itemView.findViewById(R.id.ivState); } - private void wire(boolean properties) { + private void wire() { itemView.setOnClickListener(this); itemView.setOnLongClickListener(this); - if (properties) - ivEdit.setOnClickListener(this); } private void unwire() { itemView.setOnClickListener(null); itemView.setOnLongClickListener(null); - ivEdit.setOnClickListener(null); } private void bindTo(TupleFolderEx folder) { - boolean outbox = EntityFolder.OUTBOX.equals(folder.type); - ivEdit.setVisibility(outbox ? View.INVISIBLE : View.VISIBLE); - - String name = Helper.localizeFolderName(context, folder.name); - if (folder.unseen > 0) - tvName.setText(context.getString(R.string.title_folder_unseen, name, folder.unseen)); - else - tvName.setText(name); - tvName.setTypeface(null, folder.unseen > 0 ? Typeface.BOLD : Typeface.NORMAL); - tvName.setTextColor(Helper.resolveColor(context, folder.unseen > 0 ? R.attr.colorUnread : android.R.attr.textColorSecondary)); - - tvMessages.setText(Integer.toString(folder.messages)); - - int resid = context.getResources().getIdentifier( - "title_folder_" + folder.type.toLowerCase(), - "string", - context.getPackageName()); - tvType.setText(resid > 0 ? context.getString(resid) : folder.type); - - ivUnified.setVisibility(folder.unified ? View.VISIBLE : View.GONE); - - tvAfter.setText(Integer.toString(folder.after)); - ivSync.setVisibility(folder.synchronize ? View.VISIBLE : View.INVISIBLE); - if ("connected".equals(folder.state)) ivState.setImageResource(R.drawable.baseline_cloud_24); else if ("connecting".equals(folder.state)) @@ -135,6 +108,33 @@ public class AdapterFolder extends RecyclerView.Adapter 0) + tvName.setText(context.getString(R.string.title_folder_unseen, name, folder.unseen)); + else + tvName.setText(name); + tvName.setTypeface(null, folder.unseen > 0 ? Typeface.BOLD : Typeface.NORMAL); + tvName.setTextColor(Helper.resolveColor(context, folder.unseen > 0 ? R.attr.colorUnread : android.R.attr.textColorSecondary)); + + tvMessages.setText(Integer.toString(folder.messages)); + + ivUnified.setVisibility(folder.unified ? View.VISIBLE : View.INVISIBLE); + + int resid = context.getResources().getIdentifier( + "title_folder_" + folder.type.toLowerCase(), + "string", + context.getPackageName()); + tvType.setText(resid > 0 ? context.getString(resid) : folder.type); + + if (folder.account == null) { + tvAfter.setText(null); + ivSync.setVisibility(View.GONE); + } else { + tvAfter.setText(Integer.toString(folder.after)); + ivSync.setImageResource(folder.synchronize ? R.drawable.baseline_sync_24 : R.drawable.baseline_sync_disabled_24); + ivSync.setVisibility(View.VISIBLE); + } + tvError.setText(folder.error); tvError.setVisibility(folder.error == null ? View.GONE : View.VISIBLE); } @@ -147,19 +147,10 @@ public class AdapterFolder extends RecyclerView.Adapter prev; private List next; @@ -333,6 +341,6 @@ public class AdapterFolder extends RecyclerView.Adapter + + diff --git a/app/src/main/res/layout/fragment_folders.xml b/app/src/main/res/layout/fragment_folders.xml index e7b0167ab7..a12dbc65da 100644 --- a/app/src/main/res/layout/fragment_folders.xml +++ b/app/src/main/res/layout/fragment_folders.xml @@ -6,6 +6,39 @@ android:layout_height="match_parent" tools:context=".ActivityView"> + + + + + + + app:layout_constraintTop_toBottomOf="@id/vSeparator" /> + + -