2020-07-27 13:58:58 +00:00
|
|
|
package org.thoughtcrime.securesms.util;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
import android.view.View;
|
|
|
|
|
|
|
|
import androidx.annotation.IdRes;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.lifecycle.LifecycleOwner;
|
|
|
|
|
2021-07-20 16:08:52 +00:00
|
|
|
import java.util.LinkedList;
|
|
|
|
import java.util.List;
|
|
|
|
|
2020-07-27 13:58:58 +00:00
|
|
|
public abstract class MappingViewHolder<Model extends MappingModel<Model>> extends LifecycleViewHolder implements LifecycleOwner {
|
|
|
|
|
2021-07-20 16:08:52 +00:00
|
|
|
protected final Context context;
|
|
|
|
protected final List<Object> payload;
|
2020-07-27 13:58:58 +00:00
|
|
|
|
|
|
|
public MappingViewHolder(@NonNull View itemView) {
|
|
|
|
super(itemView);
|
|
|
|
context = itemView.getContext();
|
2021-07-20 16:08:52 +00:00
|
|
|
payload = new LinkedList<>();
|
2020-07-27 13:58:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public <T extends View> T findViewById(@IdRes int id) {
|
|
|
|
return itemView.findViewById(id);
|
|
|
|
}
|
|
|
|
|
2020-09-10 20:59:47 +00:00
|
|
|
public @NonNull Context getContext() {
|
|
|
|
return itemView.getContext();
|
|
|
|
}
|
|
|
|
|
2020-07-27 13:58:58 +00:00
|
|
|
public abstract void bind(@NonNull Model model);
|
2021-04-06 16:03:33 +00:00
|
|
|
|
2021-07-20 16:08:52 +00:00
|
|
|
public void setPayload(@NonNull List<Object> payload) {
|
|
|
|
this.payload.clear();
|
|
|
|
this.payload.addAll(payload);
|
|
|
|
}
|
|
|
|
|
2021-04-06 16:03:33 +00:00
|
|
|
public static final class SimpleViewHolder<Model extends MappingModel<Model>> extends MappingViewHolder<Model> {
|
|
|
|
public SimpleViewHolder(@NonNull View itemView) {
|
|
|
|
super(itemView);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void bind(@NonNull Model model) { }
|
|
|
|
}
|
2020-07-27 13:58:58 +00:00
|
|
|
}
|