1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-23 22:51:02 +00:00

Small behavior improvement

This commit is contained in:
M66B 2019-01-20 18:37:02 +00:00
parent 1adb42f0bd
commit be44b781d5
2 changed files with 23 additions and 10 deletions

View file

@ -300,6 +300,15 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
super.itemView.getBottom());
}
void setDisplacement(float dx) {
ViewGroup group = (ViewGroup) itemView;
for (int i = 0; i < group.getChildCount(); i++) {
View child = group.getChildAt(i);
if (child.getId() != R.id.tvDay && child.getId() != R.id.vSeparatorDay)
child.setTranslationX(dx);
}
}
private void wire() {
final View touch = (viewType == ViewType.THREAD && threading ? ivExpander : vwColor);
touch.setOnClickListener(this);

View file

@ -575,7 +575,12 @@ public class FragmentMessages extends FragmentBase {
}
@Override
public void onChildDraw(Canvas canvas, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
public void onChildDraw(
Canvas canvas, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
float dX, float dY, int actionState, boolean isCurrentlyActive) {
AdapterMessage.ViewHolder holder = ((AdapterMessage.ViewHolder) viewHolder);
holder.setDisplacement(dX);
TupleMessageEx message = getMessage(viewHolder);
if (message == null)
return;
@ -584,32 +589,31 @@ public class FragmentMessages extends FragmentBase {
if (swipes == null)
return;
Rect rect = ((AdapterMessage.ViewHolder) viewHolder).getItemRect();
Rect rect = holder.getItemRect();
int margin = Helper.dp2pixels(getContext(), 12);
int size = Helper.dp2pixels(getContext(), 24);
if (dX > margin) {
// Right swipe
Drawable d = getResources().getDrawable(getIcon(swipes.right_type), getContext().getTheme());
int padding = (rect.height() - d.getIntrinsicHeight());
int padding = (rect.height() - size);
d.setBounds(
rect.left + margin,
rect.top + padding / 2,
rect.left + margin + d.getIntrinsicWidth(),
rect.top + padding / 2 + d.getIntrinsicHeight());
rect.left + margin + size,
rect.top + padding / 2 + size);
d.draw(canvas);
} else if (dX < -margin) {
// Left swipe
Drawable d = getResources().getDrawable(getIcon(swipes.left_type), getContext().getTheme());
int padding = (rect.height() - d.getIntrinsicHeight());
int padding = (rect.height() - size);
d.setBounds(
rect.left + rect.width() - d.getIntrinsicWidth() - margin,
rect.left + rect.width() - size - margin,
rect.top + padding / 2,
rect.left + rect.width() - margin,
rect.top + padding / 2 + d.getIntrinsicHeight());
rect.top + padding / 2 + size);
d.draw(canvas);
}
super.onChildDraw(canvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
@Override