package im.actor.sdk.controllers;
import android.view.View;
import android.widget.TextView;
import im.actor.core.entity.Avatar;
import im.actor.core.viewmodel.GroupVM;
import im.actor.core.viewmodel.UserVM;
import im.actor.runtime.mvvm.Value;
import im.actor.runtime.mvvm.ValueDoubleChangedListener;
import im.actor.runtime.mvvm.ValueDoubleListener;
import im.actor.runtime.mvvm.ValueListener;
import im.actor.sdk.view.avatar.AvatarView;
import im.actor.sdk.view.avatar.CoverAvatarView;
import im.actor.runtime.mvvm.ValueChangedListener;
import im.actor.runtime.mvvm.ValueModel;
public class BinderCompatFragment extends android.support.v4.app.Fragment {
private final ActorBinder BINDER = new ActorBinder();
private boolean unbindOnPause = false;
public boolean isUnbindOnPause() {
return unbindOnPause;
}
public void setUnbindOnPause(boolean unbindOnPause) {
this.unbindOnPause = unbindOnPause;
}
public void bind(final TextView textView, ValueModel<String> value) {
BINDER.bind(textView, value);
}
public <T> void bind(ValueModel<T> value, ValueChangedListener<T> listener) {
BINDER.bind(value, listener);
}
public <T> void bind(ValueModel<T> value, ValueListener<T> listener) {
BINDER.bind(value, listener);
}
public <T1, T2> void bind(Value<T1> value1, Value<T2> value2, ValueDoubleListener<T1, T2> listener) {
BINDER.bind(value1, value2, listener);
}
public <T> void bind(ValueModel<T> value, boolean notify, ValueChangedListener<T> listener) {
BINDER.bind(value, listener, notify);
}
public <T1, T2> ActorBinder.Binding[] bind(ValueModel<T1> value1, ValueModel<T2> value2, ValueDoubleChangedListener<T1, T2> listener) {
return BINDER.bind(value1, value2, listener);
}
public void bind(final CoverAvatarView avatarView, final ValueModel<Avatar> avatar) {
BINDER.bind(avatarView, avatar);
}
public ActorBinder.Binding bind(final TextView textView, final UserVM user) {
return BINDER.bind(textView, user);
}
public void bind(final AvatarView avatarView, final int id,
final Value<Avatar> avatar, final Value<String> name) {
BINDER.bind(avatarView, id, avatar, name);
}
public void bindGroupTyping(final TextView textView, final View container, final View titleContainer, final Value<int[]> typing) {
BINDER.bindGroupTyping(textView, container, titleContainer, typing);
}
public void bind(final TextView textView, View titleContainer, GroupVM value) {
BINDER.bind(textView, titleContainer, value);
}
public void bindPrivateTyping(final TextView textView, final View container, final View titleContainer, final Value<Boolean> typing) {
BINDER.bindPrivateTyping(textView, container, titleContainer, typing);
}
public ActorBinder.Binding bindOnline(final TextView textView, final UserVM user) {
return BINDER.bindOnline(textView, user);
}
public void bind(final TextView textView, final View container, ValueModel<String> value) {
BINDER.bind(textView, container, value);
}
public void bind(final TextView textView, final View container, ValueModel<String> value, ActorBinder.OnChangedListener callback, boolean hide, String defaultValue) {
BINDER.bind(textView, container, value, callback, hide, defaultValue);
}
@Override
public void onPause() {
super.onPause();
if (unbindOnPause) {
BINDER.unbindAll();
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (!unbindOnPause) {
BINDER.unbindAll();
}
}
protected ActorBinder getBINDER() {
return BINDER;
}
public void unbind(ActorBinder.Binding b) {
BINDER.unbind(b);
}
}