package org.gdg.frisbee.android.chapter; import android.app.Activity; import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ListFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import org.gdg.frisbee.android.Const; import org.gdg.frisbee.android.R; import org.gdg.frisbee.android.api.model.LeadMessage; import org.gdg.frisbee.android.utils.Utils; import butterknife.BindView; import butterknife.ButterKnife; public class LeadFragment extends ListFragment { private LeadAnnouncementsAdapter mAdapter; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_for_leads, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mAdapter = new LeadAnnouncementsAdapter(getActivity()); setListAdapter(mAdapter); mAdapter.add(LeadMessage.newMessage(getString(R.string.leads_welcome_title), getString(R.string.leads_welcome))); mAdapter.add(LeadMessage.newResource(getString(R.string.leads_resources_title), getString(R.string.leads_resources), Const.URL_GDG_RESOURCE_FOLDER)); mAdapter.add(LeadMessage.newResource(getString(R.string.leads_wisdom_title), getString(R.string.leads_wisdom), Const.URL_GDG_WISDOM_BOOK)); mAdapter.add(LeadMessage.newResource(getString(R.string.leads_gplus_community_title), getString(R.string.leads_gplus_community), Const.URL_GDG_LEADS_GPLUS_COMMUNITY)); } @Override public void onListItemClick(final ListView l, final View v, final int position, final long id) { final LeadMessage item = mAdapter.getItem(position); if (item.getType() == LeadMessage.Type.resource) { Activity activity = getActivity(); startActivity(Utils.createExternalIntent(activity, Uri.parse(item.getLinkUrl()))); } } private static class LeadAnnouncementsAdapter extends ArrayAdapter<LeadMessage> { private LayoutInflater layoutInflater; public LeadAnnouncementsAdapter(final Context context) { super(context, R.layout.list_announcement_item); layoutInflater = LayoutInflater.from(context); } @Override public View getView(final int position, View convertView, final ViewGroup parent) { if (convertView == null) { convertView = layoutInflater.inflate(R.layout.list_announcement_item, parent, false); final ViewHolder viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); } ViewHolder viewHolder = (ViewHolder) convertView.getTag(); viewHolder.title.setText(getItem(position).getTitle()); viewHolder.details.setText(getItem(position).getDetails()); viewHolder.type.setText(getContext().getString(getItem(position).getType().getName())); return convertView; } } public static class ViewHolder { @BindView(R.id.msg_title) TextView title; @BindView(R.id.msg_details) TextView details; @BindView(R.id.msg_type) TextView type; public ViewHolder(View view) { ButterKnife.bind(this, view); } } }