103 lines
3.5 KiB
Java
103 lines
3.5 KiB
Java
package com.discord.widgets.chat.input;
|
|
|
|
import android.graphics.Rect;
|
|
import android.view.View;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import d0.z.d.m;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.ListIterator;
|
|
/* compiled from: ExpressionPickerItemDecoration.kt */
|
|
public final class ExpressionPickerItemDecoration extends RecyclerView.ItemDecoration {
|
|
private final int bottomPaddingForLastRow;
|
|
private final List<Integer> headerIndices;
|
|
private final int numOfColumns;
|
|
|
|
public ExpressionPickerItemDecoration(int i, List<Integer> list, int i2) {
|
|
m.checkNotNullParameter(list, "headerIndices");
|
|
this.numOfColumns = i;
|
|
this.headerIndices = list;
|
|
this.bottomPaddingForLastRow = i2;
|
|
}
|
|
|
|
private final int getHeaderPositionForItem(int i) {
|
|
Integer num;
|
|
boolean z2;
|
|
List<Integer> list = this.headerIndices;
|
|
ListIterator<Integer> listIterator = list.listIterator(list.size());
|
|
while (true) {
|
|
if (!listIterator.hasPrevious()) {
|
|
num = null;
|
|
break;
|
|
}
|
|
num = listIterator.previous();
|
|
if (i >= num.intValue()) {
|
|
z2 = true;
|
|
continue;
|
|
} else {
|
|
z2 = false;
|
|
continue;
|
|
}
|
|
if (z2) {
|
|
break;
|
|
}
|
|
}
|
|
Integer num2 = num;
|
|
if (num2 != null) {
|
|
return num2.intValue();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
private final Integer getNextHeaderPositionForItem(int i) {
|
|
Object obj;
|
|
boolean z2;
|
|
Iterator<T> it = this.headerIndices.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
obj = null;
|
|
break;
|
|
}
|
|
obj = it.next();
|
|
if (i <= ((Number) obj).intValue()) {
|
|
z2 = true;
|
|
continue;
|
|
} else {
|
|
z2 = false;
|
|
continue;
|
|
}
|
|
if (z2) {
|
|
break;
|
|
}
|
|
}
|
|
return (Integer) obj;
|
|
}
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.ItemDecoration
|
|
public void getItemOffsets(Rect rect, View view, RecyclerView recyclerView, RecyclerView.State state) {
|
|
m.checkNotNullParameter(rect, "outRect");
|
|
m.checkNotNullParameter(view, "view");
|
|
m.checkNotNullParameter(recyclerView, "parent");
|
|
m.checkNotNullParameter(state, "state");
|
|
super.getItemOffsets(rect, view, recyclerView, state);
|
|
int childAdapterPosition = recyclerView.getChildAdapterPosition(view);
|
|
if (!this.headerIndices.contains(Integer.valueOf(childAdapterPosition))) {
|
|
int headerPositionForItem = getHeaderPositionForItem(childAdapterPosition);
|
|
Integer nextHeaderPositionForItem = getNextHeaderPositionForItem(childAdapterPosition);
|
|
int intValue = nextHeaderPositionForItem != null ? nextHeaderPositionForItem.intValue() : state.getItemCount();
|
|
boolean z2 = true;
|
|
int i = (intValue - headerPositionForItem) - 1;
|
|
int i2 = (childAdapterPosition - headerPositionForItem) - 1;
|
|
int i3 = this.numOfColumns;
|
|
int i4 = 0;
|
|
if (i2 < ((i / i3) - (i % i3 == 0 ? 1 : 0)) * i3) {
|
|
z2 = false;
|
|
}
|
|
if (z2) {
|
|
i4 = this.bottomPaddingForLastRow;
|
|
}
|
|
rect.bottom = i4;
|
|
}
|
|
}
|
|
}
|