Use touch delegate for expander

This commit is contained in:
M66B
2019-01-12 14:08:00 +00:00
parent e2eb059389
commit e1b2bf5456
3 changed files with 25 additions and 3 deletions

View File

@@ -30,6 +30,7 @@ import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
@@ -55,6 +56,7 @@ import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.TouchDelegate;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
@@ -211,7 +213,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private LiveData<List<EntityAttachment>> liveAttachments = null;
private Observer<List<EntityAttachment>> observerAttachments = null;
ViewHolder(View itemView) {
ViewHolder(final View itemView) {
super(itemView);
this.itemView = itemView.findViewById(R.id.clItem);
@@ -287,7 +289,22 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
private void wire() {
itemView.setOnClickListener(this);
if (viewType == ViewType.THREAD) {
ivExpander.setOnClickListener(this);
itemView.post(new Runnable() {
@Override
public void run() {
Rect rect = new Rect(
itemView.getLeft(),
ivExpander.getTop(),
itemView.getRight(),
ivExpander.getBottom());
Log.i("Touch delegate=" + rect);
itemView.setTouchDelegate(new TouchDelegate(rect, ivExpander));
}
});
} else
itemView.setOnClickListener(this);
ivSnoozed.setOnClickListener(this);
ivFlagged.setOnClickListener(this);
ivExpanderAddress.setOnClickListener(this);
@@ -302,7 +319,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
private void unwire() {
itemView.setOnClickListener(null);
if (viewType == ViewType.THREAD)
ivExpander.setOnClickListener(null);
else
itemView.setOnClickListener(null);
ivSnoozed.setOnClickListener(null);
ivFlagged.setOnClickListener(null);
ivExpanderAddress.setOnClickListener(null);