package org.softeg.slartus.forpdaplus.listfragments;
import android.content.Context;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import org.softeg.slartus.forpdaapi.IListItem;
import org.softeg.slartus.forpdaapi.OldUser;
import org.softeg.slartus.forpdaapi.classes.ListData;
import org.softeg.slartus.forpdaapi.users.Users;
import org.softeg.slartus.forpdaplus.Client;
import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.fragments.profile.ProfileFragment;
import java.util.ArrayList;
/*
* Created by slinkin on 17.06.2015.
*/
public class TopicWritersListFragment extends BaseLoaderListFragment {
public static final java.lang.String TOPIC_ID_KEY = "TOPIC_ID_KEY";
private String m_TopicId;
@Override
public void onResume() {
super.onResume();
setArrow();
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
m_TopicId = savedInstanceState.getString(TOPIC_ID_KEY);
} else if (getArguments() != null) {
m_TopicId = getArguments().getString(TOPIC_ID_KEY);
}
setArrow();
}
@Override
protected Bundle getLoadArgs() {
Bundle args = new Bundle();
args.putString(TOPIC_ID_KEY, m_TopicId);
return args;
}
@Override
protected BaseAdapter createAdapter() {
return new UsersAdapter(getActivity(), getData().getItems());
}
@Override
protected Boolean useCache() {
return false;
}
@Override
protected int getViewResourceId() {
return R.layout.list_fragment;
}
@Override
protected ListData loadData(int loaderId, Bundle args) throws Throwable {
Users users = Client.getInstance().getTopicWritersUsers(args.getString(TOPIC_ID_KEY));
ListData data = new ListData();
data.getItems().addAll(users);
return data;
}
public class UsersAdapter extends BaseAdapter {
protected LayoutInflater m_Inflater;
private ArrayList<IListItem> mUsers;
public UsersAdapter(Context context, ArrayList<IListItem> users) {
mUsers = users;
m_Inflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mUsers.size();
}
@Override
public Object getItem(int position) {
return mUsers.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = m_Inflater.inflate(R.layout.topic_writer_item, parent, false);
holder = new ViewHolder();
assert convertView != null;
holder.txtCount = (TextView) convertView.findViewById(R.id.txtMessagesCount);
holder.txtNick = (TextView) convertView.findViewById(R.id.txtNick);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
final OldUser user = (OldUser)this.getItem(position);
holder.txtCount.setText(user.MessagesCount);
holder.txtNick.setText(Html.fromHtml(user.getNick()));
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openProfile(user);
}
});
return convertView;
}
public class ViewHolder {
TextView txtNick;
TextView txtCount;
}
}
public void openProfile(OldUser user){
ProfileFragment.showProfile(user.getMid(), user.getMid());
}
}