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.App; import org.softeg.slartus.forpdaplus.Client; import org.softeg.slartus.forpdaplus.R; import org.softeg.slartus.forpdaplus.classes.common.ExtColor; import org.softeg.slartus.forpdaplus.common.AppLog; import org.softeg.slartus.forpdaplus.fragments.profile.ProfileFragment; import java.util.ArrayList; /* * Created by slinkin on 17.06.2015. */ public class TopicReadersListFragment extends BaseLoaderListFragment { public static final String TOPIC_ID_KEY = "TOPIC_ID_KEY"; private String m_TopicId; UsersAdapter mAdapter; @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().getTopicReadingUsers(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_reader_item, parent, false); holder = new ViewHolder(); assert convertView != null; holder.txtNick = (TextView) convertView.findViewById(R.id.txtNick); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final OldUser user = (OldUser) this.getItem(position); holder.txtNick.setText(Html.fromHtml(user.getNick())); try { holder.txtNick.setTextColor(ExtColor.parseColor(correctHtmlColor(user.getHtmlColor()))); } catch (Exception ex) { AppLog.e(App.getContext(), new Exception(getContext().getString(R.string.what_is_color) + user.getHtmlColor())); } convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openProfile(user); } }); return convertView; } public String correctHtmlColor(String color) { switch (color) { case "green": color = "#10BB10";//Обычный и активынй пользователь break; case "#FF9900": color = "#EC9B22";//Друг 4пда break; case "purple": color = "purple";//Почетные форумчане break; case "#32CD32": color = "#4EC14E";//FAQMakers break; case "#9A60FF": color = "#8461C0";//Участники спецпроекта break; case "#B100BF": color = "#8E1E97";//Бизнессмены break; case "#0099FF": color = "#107AC0";//Пощники модератора и модераторы break; case "blue": color = "#4545E5";//Супермодераторы break; case "red": color = "#CB3838";//Администраторы break; } return color; } public class ViewHolder { TextView txtNick; } } public void openProfile(OldUser user){ ProfileFragment.showProfile(user.getMid(), user.getMid()); } }