package im.actor.sdk.controllers.settings;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import im.actor.core.entity.User;
import im.actor.core.viewmodel.UserVM;
import im.actor.runtime.actors.messages.Void;
import im.actor.runtime.function.Consumer;
import im.actor.sdk.ActorSDK;
import im.actor.sdk.R;
import im.actor.sdk.controllers.BaseFragment;
import static im.actor.sdk.util.ActorSDKMessenger.messenger;
public class BlockedListFragment extends BaseFragment {
RecyclerView list;
TextView emptyView;
BlockedAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View res = inflater.inflate(R.layout.fragment_recycler_list, container, false);
list = (RecyclerView) res.findViewById(R.id.listView);
list.setLayoutManager(new LinearLayoutManager(getActivity()));
emptyView = (TextView) res.findViewById(R.id.emptyView);
emptyView.setText(R.string.blocked_loading);
res.setBackgroundColor(ActorSDK.sharedActor().style.getBackyardBackgroundColor());
emptyView.setTextColor(ActorSDK.sharedActor().style.getTextSecondaryColor());
adapter = new BlockedAdapter(new ArrayList<User>(), new BlockedAdapter.OnBlockedClickListener() {
@Override
public void onClick(UserVM u) {
execute(messenger().unblockUser(u.getId())
.then(new Consumer<Void>() {
@Override
public void apply(Void aVoid) {
checkBlockedList();
}
}));
}
});
list.setAdapter(adapter);
checkBlockedList();
return res;
}
public void checkBlockedList() {
messenger().loadBlockedUsers()
.then(new Consumer<List<User>>() {
@Override
public void apply(final List<User> users) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (users.size() > 0) {
hideView(emptyView);
showView(list);
} else {
hideView(list);
showView(emptyView);
emptyView.setText(R.string.blocked_empty_list);
}
adapter.setBlockedList(users);
}
});
}
});
}
}