package com.pinthecloud.athere.adapter; import java.util.List; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.pinthecloud.athere.AhApplication; import com.pinthecloud.athere.AhGlobalVariable; import com.pinthecloud.athere.R; import com.pinthecloud.athere.activity.AhActivity; import com.pinthecloud.athere.activity.SettingsActivity; import com.pinthecloud.athere.analysis.GAHelper; import com.pinthecloud.athere.fragment.AhFragment; import com.pinthecloud.athere.model.AhUser; import com.pinthecloud.athere.model.AppDrawerListItem; public class AppDrawerListAdapter extends RecyclerView.Adapter<AppDrawerListAdapter.ViewHolder> { private enum TYPE{ SETTINGS, SHARE, QUESTION } private Context context; private AhActivity activity; private AhFragment frag; private AhUser user; private List<AppDrawerListItem> appDrawerList; private GAHelper gaHelper; public AppDrawerListAdapter(Context context, AhFragment frag, AhUser user, List<AppDrawerListItem> appDrawerList) { this.context = context; this.activity = (AhActivity)context; this.frag = frag; this.user = user; this.appDrawerList = appDrawerList; this.gaHelper = AhApplication.getInstance().getGAHelper(); } public static class ViewHolder extends RecyclerView.ViewHolder { public View view; public ImageView icon; public TextView title; public ViewHolder(View view) { super(view); this.view = view; this.icon = (ImageView)view.findViewById(R.id.row_app_drawer_list_icon); this.title = (TextView)view.findViewById(R.id.row_app_drawer_list_title); } } @Override public AppDrawerListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_app_drawer_list, parent, false); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { AppDrawerListItem item = appDrawerList.get(position); holder.icon.setImageResource(item.getIconId()); holder.title.setText(item.getTitle()); holder.view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = null; if(position == TYPE.QUESTION.ordinal()){ gaHelper.sendEventGA( frag.getClass().getSimpleName(), "Question", "DrawerQuestion"); intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:pinthecloud@gmail.com")); activity.startActivity(intent); } else if(position == TYPE.SHARE.ordinal()){ gaHelper.sendEventGA( frag.getClass().getSimpleName(), "Share", "DrawerShare"); intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT, context.getResources().getText(R.string.share_sentence)); intent.setType("text/plain"); activity.startActivity(Intent.createChooser(intent, context.getResources().getText(R.string.share_to))); } else if(position == TYPE.SETTINGS.ordinal()){ gaHelper.sendEventGA( frag.getClass().getSimpleName(), "Settings", "DrawerSettings"); intent = new Intent(context, SettingsActivity.class); intent.putExtra(AhGlobalVariable.USER_KEY, user); activity.startActivity(intent); } } }); } @Override public int getItemCount() { return this.appDrawerList.size(); } }