diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java index 19121f2252f54b31cd40160aed2c5e87483eac17..59776a0abeaedab0cb98e30e988b74cfbd8f54db 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java @@ -45,6 +45,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; @@ -90,42 +91,36 @@ public class ConversationsOverviewFragment extends XmppFragment { private FragmentConversationsOverviewBinding binding; private ConversationAdapter conversationsAdapter; private XmppActivity activity; - private float mSwipeEscapeVelocity = 0f; private final PendingActionHelper pendingActionHelper = new PendingActionHelper(); private final ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,LEFT|RIGHT) { @Override - public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { - //todo maybe we can manually changing the position of the conversation + public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) { return false; } @Override - public float getSwipeEscapeVelocity (float defaultValue) { - return mSwipeEscapeVelocity; + public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, + float dX, float dY, int actionState, boolean isCurrentlyActive) { + if (viewHolder instanceof ConversationAdapter.ConversationViewHolder conversationViewHolder) { + getDefaultUIUtil().onDraw(c,recyclerView,conversationViewHolder.binding.frame,dX,dY,actionState,isCurrentlyActive); + } } @Override - public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, - float dX, float dY, int actionState, boolean isCurrentlyActive) { - super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); - if(actionState != ItemTouchHelper.ACTION_STATE_IDLE){ - Paint paint = new Paint(); - paint.setColor(MaterialColors.getColor(viewHolder.itemView, com.google.android.material.R.attr.colorSecondaryFixedDim)); - paint.setStyle(Paint.Style.FILL); - c.drawRect(viewHolder.itemView.getLeft(),viewHolder.itemView.getTop() - ,viewHolder.itemView.getRight(),viewHolder.itemView.getBottom(), paint); + public void clearView(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { + if (viewHolder instanceof ConversationAdapter.ConversationViewHolder conversationViewHolder) { + getDefaultUIUtil().clearView(conversationViewHolder.binding.frame); } } @Override - public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { - super.clearView(recyclerView, viewHolder); - viewHolder.itemView.setAlpha(1f); + public float getSwipeEscapeVelocity(final float defaultEscapeVelocity) { + return 32 * defaultEscapeVelocity; } @Override - public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { + public void onSwiped(final RecyclerView.ViewHolder viewHolder, final int direction) { pendingActionHelper.execute(); int position = viewHolder.getLayoutPosition(); try { @@ -285,7 +280,6 @@ public class ConversationsOverviewFragment extends XmppFragment { @Override public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - this.mSwipeEscapeVelocity = getResources().getDimension(R.dimen.swipe_escape_velocity); this.binding = DataBindingUtil.inflate(inflater, R.layout.fragment_conversations_overview, container, false); this.binding.fab.setOnClickListener((view) -> StartConversationActivity.launch(getActivity())); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index 395781b0ec05025788b042e563579634f7cef858..a64ffd5f249329a0943f4316c38fa890e0a4f8ab 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -272,8 +272,8 @@ public class ConversationAdapter void onConversationClick(View view, Conversation conversation); } - static class ConversationViewHolder extends RecyclerView.ViewHolder { - private final ItemConversationBinding binding; + public static class ConversationViewHolder extends RecyclerView.ViewHolder { + public final ItemConversationBinding binding; private ConversationViewHolder(final ItemConversationBinding binding) { super(binding.getRoot()); diff --git a/src/main/res/layout/item_conversation.xml b/src/main/res/layout/item_conversation.xml index e0ab2fecdf352ec14dc548e33c407f84a85df5ba..1df9cb8d37d848910ae1ad4d531c02865355f7e3 100644 --- a/src/main/res/layout/item_conversation.xml +++ b/src/main/res/layout/item_conversation.xml @@ -3,11 +3,13 @@ xmlns:tools="http://schemas.android.com/tools"> diff --git a/src/main/res/values/dimens.xml b/src/main/res/values/dimens.xml index baa9d4ea902bb97ceb5e50d31bd16b7ec07186f0..1c812d9d1d8b5d6b004ee665ffdfa665747c7600 100644 --- a/src/main/res/values/dimens.xml +++ b/src/main/res/values/dimens.xml @@ -35,8 +35,6 @@ 4dp 8dp - 1200dp - 0.12 256dp