Small improvements

pull/153/head
M66B 7 years ago
parent c5b90389ee
commit c91443b99f

@ -47,13 +47,12 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
private Context context;
private LayoutInflater inflater;
private List<EntityAccount> all = new ArrayList<>();
private List<EntityAccount> filtered = new ArrayList<>();
private List<EntityAccount> items = new ArrayList<>();
private static final DateFormat df = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
View itemView;
View view;
View vwColor;
ImageView ivPrimary;
TextView tvName;
@ -67,7 +66,7 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
vwColor = itemView.findViewById(R.id.vwColor);
ivPrimary = itemView.findViewById(R.id.ivPrimary);
tvName = itemView.findViewById(R.id.tvName);
@ -80,15 +79,15 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
}
private void bindTo(EntityAccount account) {
itemView.setActivated(account.tbd != null);
view.setActivated(account.tbd != null);
vwColor.setBackgroundColor(account.color == null ? Color.TRANSPARENT : account.color);
ivPrimary.setVisibility(account.primary ? View.VISIBLE : View.INVISIBLE);
tvName.setText(account.name);
@ -119,7 +118,7 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
if (pos == RecyclerView.NO_POSITION)
return;
EntityAccount account = filtered.get(pos);
EntityAccount account = items.get(pos);
if (account.tbd != null)
return;
@ -146,16 +145,19 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
Collections.sort(accounts, new Comparator<EntityAccount>() {
@Override
public int compare(EntityAccount a1, EntityAccount a2) {
return collator.compare(a1.host, a2.host);
int n = collator.compare(a1.name, a2.name);
if (n != 0)
return n;
int e = collator.compare(a1.user, a2.user);
if (e != 0)
return e;
return a1.id.compareTo(a2.id);
}
});
all = accounts;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, accounts), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = accounts;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -182,12 +184,12 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
}
private class DiffCallback extends DiffUtil.Callback {
private List<EntityAccount> prev;
private List<EntityAccount> next;
private List<EntityAccount> prev = new ArrayList<>();
private List<EntityAccount> next = new ArrayList<>();
DiffCallback(List<EntityAccount> prev, List<EntityAccount> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -217,12 +219,12 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -235,7 +237,7 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
EntityAccount account = filtered.get(position);
EntityAccount account = items.get(position);
holder.bindTo(account);
holder.wire();

@ -46,30 +46,29 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
private LifecycleOwner owner;
private LayoutInflater inflater;
private List<EntityAnswer> all = new ArrayList<>();
private List<EntityAnswer> filtered = new ArrayList<>();
private List<EntityAnswer> items = new ArrayList<>();
private boolean primary = false;
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private View itemView;
private View view;
private TextView tvName;
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
tvName = itemView.findViewById(R.id.tvName);
}
private void wire() {
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
view.setOnClickListener(this);
view.setOnLongClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
itemView.setOnLongClickListener(null);
view.setOnClickListener(null);
view.setOnLongClickListener(null);
}
private void bindTo(EntityAnswer answer) {
@ -82,7 +81,7 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
if (pos == RecyclerView.NO_POSITION)
return;
EntityAnswer answer = filtered.get(pos);
EntityAnswer answer = items.get(pos);
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
lbm.sendBroadcast(
@ -99,7 +98,7 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
if (pos == RecyclerView.NO_POSITION)
return false;
EntityAnswer answer = filtered.get(pos);
EntityAnswer answer = items.get(pos);
context.startActivity(new Intent(context, ActivityCompose.class)
.putExtra("action", "new")
@ -142,16 +141,16 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
Collections.sort(answers, new Comparator<EntityAnswer>() {
@Override
public int compare(EntityAnswer a1, EntityAnswer a2) {
return collator.compare(a1.name, a2.name);
int n = collator.compare(a1.name, a2.name);
if (n != 0)
return n;
return a1.id.compareTo(a2.id);
}
});
all = answers;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, answers), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = answers;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -178,12 +177,12 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
}
private class DiffCallback extends DiffUtil.Callback {
private List<EntityAnswer> prev;
private List<EntityAnswer> next;
private List<EntityAnswer> prev = new ArrayList<>();
private List<EntityAnswer> next = new ArrayList<>();
DiffCallback(List<EntityAnswer> prev, List<EntityAnswer> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -213,12 +212,12 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -230,7 +229,7 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
EntityAnswer answer = filtered.get(position);
EntityAnswer answer = items.get(position);
holder.bindTo(answer);
holder.wire();
}

@ -62,11 +62,10 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
private boolean readonly;
private boolean debug;
private List<EntityAttachment> all = new ArrayList<>();
private List<EntityAttachment> filtered = new ArrayList<>();
private List<EntityAttachment> items = new ArrayList<>();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
View itemView;
View view;
ImageView ivDelete;
TextView tvName;
TextView tvType;
@ -79,7 +78,7 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
ivDelete = itemView.findViewById(R.id.ivDelete);
tvName = itemView.findViewById(R.id.tvName);
tvType = itemView.findViewById(R.id.tvType);
@ -91,19 +90,19 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
ivDelete.setOnClickListener(this);
ivSave.setOnClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
ivDelete.setOnClickListener(null);
ivSave.setOnClickListener(null);
}
private void bindTo(EntityAttachment attachment) {
itemView.setAlpha(attachment.isInline() ? Helper.LOW_LIGHT : 1.0f);
view.setAlpha(attachment.isInline() ? Helper.LOW_LIGHT : 1.0f);
ivDelete.setVisibility(readonly ? View.GONE : attachment.isInline() ? View.INVISIBLE : View.VISIBLE);
tvName.setText(attachment.name);
@ -147,7 +146,7 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
int pos = getAdapterPosition();
if (pos == RecyclerView.NO_POSITION)
return;
final EntityAttachment attachment = filtered.get(pos);
final EntityAttachment attachment = items.get(pos);
if (view.getId() == R.id.ivDelete)
onDelete(attachment);
@ -320,12 +319,9 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
}
});
all = attachments;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, attachments), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = attachments;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -352,12 +348,12 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
}
private class DiffCallback extends DiffUtil.Callback {
private List<EntityAttachment> prev;
private List<EntityAttachment> next;
private List<EntityAttachment> prev = new ArrayList<>();
private List<EntityAttachment> next = new ArrayList<>();
DiffCallback(List<EntityAttachment> prev, List<EntityAttachment> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -387,12 +383,12 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -405,7 +401,7 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
EntityAttachment attachment = filtered.get(position);
EntityAttachment attachment = items.get(position);
holder.bindTo(attachment);
holder.wire();

@ -201,11 +201,10 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
public void set(@NonNull List<EntityContact> contacts) {
Log.i("Set contacts=" + contacts.size());
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, contacts));
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, contacts), false);
items = contacts;
diff.dispatchUpdatesTo(this);
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
public void onInserted(int position, int count) {
@ -227,6 +226,7 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
Log.i("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
}
private class DiffCallback extends DiffUtil.Callback {

@ -70,7 +70,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
private static NumberFormat nf = NumberFormat.getNumberInstance();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private View itemView;
private View view;
private View vwColor;
private View vwLevel;
private ImageView ivState;
@ -95,7 +95,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
vwColor = itemView.findViewById(R.id.vwColor);
vwLevel = itemView.findViewById(R.id.vwLevel);
ivState = itemView.findViewById(R.id.ivState);
@ -112,18 +112,18 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
}
private void wire() {
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
view.setOnClickListener(this);
view.setOnLongClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
itemView.setOnLongClickListener(null);
view.setOnClickListener(null);
view.setOnLongClickListener(null);
}
private void bindTo(TupleFolderEx folder) {
itemView.setActivated(folder.tbc != null || folder.tbd != null);
itemView.setAlpha(folder.hide ? 0.5f : 1.0f);
view.setActivated(folder.tbc != null || folder.tbd != null);
view.setAlpha(folder.hide ? 0.5f : 1.0f);
if (textSize != 0)
tvName.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
@ -256,7 +256,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
if (folder.tbd != null)
return false;
PopupMenu popupMenu = new PopupMenu(context, itemView);
PopupMenu popupMenu = new PopupMenu(context, view);
popupMenu.getMenu().add(Menu.NONE, action_synchronize_now, 1, R.string.title_synchronize_now);
@ -336,7 +336,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
@Override
protected void onException(Bundle args, Throwable ex) {
if (ex instanceof IllegalArgumentException)
Snackbar.make(itemView, ex.getMessage(), Snackbar.LENGTH_LONG).show();
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
else
Helper.unexpectedError(context, owner, ex);
}
@ -490,10 +490,9 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
if (!folder.hide || showAll)
shown.add((TupleFolderEx) folder);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, shown));
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, shown), false);
filtered.clear();
filtered.addAll(shown);
filtered = shown;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -520,12 +519,12 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
}
private class DiffCallback extends DiffUtil.Callback {
private List<TupleFolderEx> prev;
private List<TupleFolderEx> next;
private List<TupleFolderEx> prev = new ArrayList<>();
private List<TupleFolderEx> next = new ArrayList<>();
DiffCallback(List<TupleFolderEx> prev, List<TupleFolderEx> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override

@ -47,13 +47,12 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
private Context context;
private LayoutInflater inflater;
private List<TupleIdentityEx> all = new ArrayList<>();
private List<TupleIdentityEx> filtered = new ArrayList<>();
private List<TupleIdentityEx> items = new ArrayList<>();
private static final DateFormat df = SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
View itemView;
View view;
View vwColor;
ImageView ivPrimary;
TextView tvName;
@ -68,7 +67,7 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
vwColor = itemView.findViewById(R.id.vwColor);
ivPrimary = itemView.findViewById(R.id.ivPrimary);
tvName = itemView.findViewById(R.id.tvName);
@ -82,15 +81,15 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
}
private void bindTo(TupleIdentityEx identity) {
itemView.setActivated(identity.tbd != null);
view.setActivated(identity.tbd != null);
vwColor.setBackgroundColor(identity.color == null ? Color.TRANSPARENT : identity.color);
ivPrimary.setVisibility(identity.primary ? View.VISIBLE : View.INVISIBLE);
tvName.setText(identity.getDisplayName());
@ -120,7 +119,7 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
if (pos == RecyclerView.NO_POSITION)
return;
TupleIdentityEx identity = filtered.get(pos);
TupleIdentityEx identity = items.get(pos);
if (identity.tbd != null)
return;
@ -146,16 +145,19 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
Collections.sort(identities, new Comparator<TupleIdentityEx>() {
@Override
public int compare(TupleIdentityEx i1, TupleIdentityEx i2) {
return collator.compare(i1.host, i2.host);
int n = collator.compare(i1.getDisplayName(), i2.getDisplayName());
if (n != 0)
return n;
int e = collator.compare(i1.email, i2.email);
if (e != 0)
return e;
return i1.id.compareTo(i2.id);
}
});
all = identities;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, identities), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = identities;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -182,12 +184,12 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
}
private class DiffCallback extends DiffUtil.Callback {
private List<TupleIdentityEx> prev;
private List<TupleIdentityEx> next;
private List<TupleIdentityEx> prev = new ArrayList<>();
private List<TupleIdentityEx> next = new ArrayList<>();
DiffCallback(List<TupleIdentityEx> prev, List<TupleIdentityEx> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -217,12 +219,12 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -235,7 +237,7 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
TupleIdentityEx identity = filtered.get(position);
TupleIdentityEx identity = items.get(position);
holder.bindTo(identity);
holder.wire();

@ -52,28 +52,27 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
private LayoutInflater inflater;
private LifecycleOwner owner;
private List<EntityAttachment> all = new ArrayList<>();
private List<EntityAttachment> filtered = new ArrayList<>();
private List<EntityAttachment> items = new ArrayList<>();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
View itemView;
View view;
ImageView image;
TextView caption;
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
image = itemView.findViewById(R.id.image);
caption = itemView.findViewById(R.id.caption);
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
}
private void bindTo(EntityAttachment attachment) {
@ -97,7 +96,7 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
if (pos == RecyclerView.NO_POSITION)
return;
EntityAttachment attachment = filtered.get(pos);
EntityAttachment attachment = items.get(pos);
if (attachment.available) {
// Build file name
File file = attachment.getFile(context);
@ -188,12 +187,9 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
}
});
all = attachments;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, attachments), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = attachments;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -220,12 +216,12 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
}
private class DiffCallback extends DiffUtil.Callback {
private List<EntityAttachment> prev;
private List<EntityAttachment> next;
private List<EntityAttachment> prev = new ArrayList<>();
private List<EntityAttachment> next = new ArrayList<>();
DiffCallback(List<EntityAttachment> prev, List<EntityAttachment> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -255,12 +251,12 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -273,7 +269,7 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
EntityAttachment attachment = filtered.get(position);
EntityAttachment attachment = items.get(position);
holder.bindTo(attachment);
holder.wire();

@ -39,8 +39,7 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
private Context context;
private LayoutInflater inflater;
private List<EntityLog> all = new ArrayList<>();
private List<EntityLog> filtered = new ArrayList<>();
private List<EntityLog> items = new ArrayList<>();
private static final DateFormat DF = SimpleDateFormat.getTimeInstance();
@ -71,12 +70,9 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
public void set(@NonNull List<EntityLog> logs) {
Log.i("Set logs=" + logs.size());
all = logs;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, logs), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = logs;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -103,12 +99,12 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
}
private class DiffCallback extends DiffUtil.Callback {
private List<EntityLog> prev;
private List<EntityLog> next;
private List<EntityLog> prev = new ArrayList<>();
private List<EntityLog> next = new ArrayList<>();
DiffCallback(List<EntityLog> prev, List<EntityLog> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -138,12 +134,12 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -154,7 +150,7 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
EntityLog log = filtered.get(position);
EntityLog log = items.get(position);
holder.bindTo(log);
}
}

@ -178,7 +178,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
public class ViewHolder extends RecyclerView.ViewHolder implements
View.OnClickListener, View.OnLongClickListener, BottomNavigationView.OnNavigationItemSelectedListener {
private View itemView;
private View view;
private TextView tvDay;
private View vwColor;
private ImageView ivExpander;
@ -266,7 +266,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
ViewHolder(final View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
tvDay = itemView.findViewById(R.id.tvDay);
vwColor = itemView.findViewById(R.id.vwColor);
ivExpander = itemView.findViewById(R.id.ivExpander);
@ -368,7 +368,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
void setDisplacement(float dx) {
ViewGroup group = (ViewGroup) itemView;
ViewGroup group = (ViewGroup) view;
for (int i = 0; i < group.getChildCount(); i++) {
View child = group.getChildAt(i);
int id = child.getId();
@ -380,15 +380,15 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private void wire() {
final View touch = (viewType == ViewType.THREAD && threading ? ivExpander : vwColor);
touch.setOnClickListener(this);
itemView.post(new Runnable() {
view.post(new Runnable() {
@Override
public void run() {
Rect rect = new Rect(
itemView.getLeft(),
view.getLeft(),
vwColor.getTop(),
itemView.getRight(),
view.getRight(),
vwColor.getBottom());
itemView.setTouchDelegate(new TouchDelegate(rect, touch));
view.setTouchDelegate(new TouchDelegate(rect, touch));
}
});
@ -416,7 +416,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
vwColor.setOnClickListener(null);
ivExpander.setOnClickListener(null);
} else
itemView.setOnClickListener(null);
view.setOnClickListener(null);
ivSnoozed.setOnClickListener(null);
ivFlagged.setOnClickListener(null);
ivExpanderAddress.setOnClickListener(null);
@ -511,8 +511,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
grpDay.setVisibility(message.day ? View.VISIBLE : View.GONE);
// Selected / disabled
itemView.setActivated(selectionTracker != null && selectionTracker.isSelected(message.id));
itemView.setAlpha(
view.setActivated(selectionTracker != null && selectionTracker.isSelected(message.id));
view.setAlpha(
message.uid == null &&
!EntityFolder.OUTBOX.equals(message.folderType)
? Helper.LOW_LIGHT : 1.0f);
@ -1419,7 +1419,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
webView.setId(vwBody.getId());
webView.setVisibility(vwBody.getVisibility());
ConstraintLayout cl = (ConstraintLayout) itemView;
ConstraintLayout cl = (ConstraintLayout) view;
cl.removeView(vwBody);
cl.addView(webView, vwBody.getLayoutParams());
@ -1489,7 +1489,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
@Override
public boolean onTouch(View v, MotionEvent me) {
if (me.getPointerCount() == 2) {
ConstraintLayout cl = (ConstraintLayout) itemView;
ConstraintLayout cl = (ConstraintLayout) view;
switch (me.getAction()) {
case MotionEvent.ACTION_DOWN:
cl.requestDisallowInterceptTouchEvent(true);
@ -2825,7 +2825,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
protected void onExecuted(Bundle args, List<EntityAnswer> answers) {
if (answers == null || answers.size() == 0) {
Snackbar snackbar = Snackbar.make(
itemView,
view,
context.getString(R.string.title_no_answers),
Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.title_fix, new View.OnClickListener() {

@ -50,11 +50,10 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
private boolean debug;
private List<TupleOperationEx> all = new ArrayList<>();
private List<TupleOperationEx> filtered = new ArrayList<>();
private List<TupleOperationEx> items = new ArrayList<>();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private View itemView;
private View view;
private TextView tvFolder;
private TextView tvOperation;
private TextView tvTime;
@ -63,7 +62,7 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
tvFolder = itemView.findViewById(R.id.tvFolder);
tvOperation = itemView.findViewById(R.id.tvOperation);
tvTime = itemView.findViewById(R.id.tvTime);
@ -71,19 +70,19 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
if (BuildConfig.DEBUG || debug)
itemView.setOnLongClickListener(this);
view.setOnLongClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
if (BuildConfig.DEBUG || debug)
itemView.setOnLongClickListener(null);
view.setOnLongClickListener(null);
}
private void bindTo(TupleOperationEx operation) {
itemView.setAlpha(operation.synchronize ? 1.0f : Helper.LOW_LIGHT);
view.setAlpha(operation.synchronize ? 1.0f : Helper.LOW_LIGHT);
StringBuilder sb = new StringBuilder();
sb.append(operation.name);
@ -111,7 +110,7 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
if (pos == RecyclerView.NO_POSITION)
return;
TupleOperationEx operation = filtered.get(pos);
TupleOperationEx operation = items.get(pos);
if (operation == null)
return;
@ -176,7 +175,7 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
if (pos == RecyclerView.NO_POSITION)
return false;
TupleOperationEx operation = filtered.get(pos);
TupleOperationEx operation = items.get(pos);
if (operation == null)
return false;
@ -219,12 +218,9 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
public void set(@NonNull List<TupleOperationEx> operations) {
Log.i("Set operations=" + operations.size());
all = operations;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, operations), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = operations;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -251,12 +247,12 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
}
private class DiffCallback extends DiffUtil.Callback {
private List<TupleOperationEx> prev;
private List<TupleOperationEx> next;
private List<TupleOperationEx> prev = new ArrayList<>();
private List<TupleOperationEx> next = new ArrayList<>();
DiffCallback(List<TupleOperationEx> prev, List<TupleOperationEx> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -286,12 +282,12 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -304,7 +300,7 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
TupleOperationEx operation = filtered.get(position);
TupleOperationEx operation = items.get(position);
holder.bindTo(operation);
holder.wire();

@ -46,11 +46,10 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
private LifecycleOwner owner;
private LayoutInflater inflater;
private List<TupleRuleEx> all = new ArrayList<>();
private List<TupleRuleEx> filtered = new ArrayList<>();
private List<TupleRuleEx> items = new ArrayList<>();
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private View itemView;
private View view;
private TextView tvName;
private TextView tvOrder;
private ImageView ivStop;
@ -58,22 +57,22 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
ViewHolder(View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
view = itemView.findViewById(R.id.clItem);
tvName = itemView.findViewById(R.id.tvName);
tvOrder = itemView.findViewById(R.id.tvOrder);
ivStop = itemView.findViewById(R.id.ivStop);
}
private void wire() {
itemView.setOnClickListener(this);
view.setOnClickListener(this);
}
private void unwire() {
itemView.setOnClickListener(null);
view.setOnClickListener(null);
}
private void bindTo(TupleRuleEx rule) {
itemView.setActivated(!rule.enabled);
view.setActivated(!rule.enabled);
tvName.setText(rule.name);
tvOrder.setText(Integer.toString(rule.order));
ivStop.setVisibility(rule.stop ? View.VISIBLE : View.INVISIBLE);
@ -85,7 +84,7 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
if (pos == RecyclerView.NO_POSITION)
return;
TupleRuleEx rule = filtered.get(pos);
TupleRuleEx rule = items.get(pos);
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
lbm.sendBroadcast(
@ -112,12 +111,6 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
Collections.sort(rules, new Comparator<TupleRuleEx>() {
@Override
public int compare(TupleRuleEx r1, TupleRuleEx r2) {
int a = collator.compare(r1.accountName, r2.accountName);
if (a != 0)
return a;
int f = collator.compare(r1.folderName, r2.folderName);
if (f != 0)
return f;
int o = ((Integer) r1.order).compareTo(r2.order);
if (o != 0)
return 0;
@ -125,12 +118,9 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
}
});
all = rules;
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, rules), false);
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(filtered, all));
filtered.clear();
filtered.addAll(all);
items = rules;
diff.dispatchUpdatesTo(new ListUpdateCallback() {
@Override
@ -157,12 +147,12 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
}
private class DiffCallback extends DiffUtil.Callback {
private List<TupleRuleEx> prev;
private List<TupleRuleEx> next;
private List<TupleRuleEx> prev = new ArrayList<>();
private List<TupleRuleEx> next = new ArrayList<>();
DiffCallback(List<TupleRuleEx> prev, List<TupleRuleEx> next) {
this.prev = prev;
this.next = next;
this.prev.addAll(prev);
this.next.addAll(next);
}
@Override
@ -192,12 +182,12 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
@Override
public long getItemId(int position) {
return filtered.get(position).id;
return items.get(position).id;
}
@Override
public int getItemCount() {
return filtered.size();
return items.size();
}
@Override
@ -209,7 +199,7 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.unwire();
TupleRuleEx rule = filtered.get(position);
TupleRuleEx rule = items.get(position);
holder.bindTo(rule);
holder.wire();
}

@ -36,7 +36,10 @@ public interface DaoContact {
@Query("SELECT * FROM contact" +
" ORDER BY" +
" CASE WHEN favorite = 1 THEN 0 ELSE 1 END" +
" CASE" +
" WHEN favorite = 1 THEN 0" +
" WHEN favorite = 2 THEN 2" +
" ELSE 1 END" +
", times_contacted DESC" +
", last_contacted DESC")
LiveData<List<EntityContact>> liveContacts();

@ -37,7 +37,7 @@ public interface DaoRule {
@Query("SELECT * FROM rule" +
" WHERE folder = :folder" +
" AND enabled" +
" ORDER BY `order`")
" ORDER BY `order`, name")
List<EntityRule> getEnabledRules(long folder);
@Query("SELECT rule.*, folder.account, folder.name AS folderName, account.name AS accountName FROM rule" +

Loading…
Cancel
Save