package org.iilab.pb.adapter; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import java.util.List; import org.iilab.pb.CalculatorActivity; import org.iilab.pb.MainActivity; import org.iilab.pb.R; import org.iilab.pb.WizardActivity; import org.iilab.pb.common.AppConstants; import org.iilab.pb.model.PageAction; /** * Created by aoe on 1/5/14. */ public class PageActionAdapter extends ArrayAdapter<PageAction> { private Context mContext; private boolean isPageStatusAvailable; private LayoutInflater mInflater; private int parentActivity; public PageActionAdapter(Context context, List<PageAction> actionList, boolean isPageStatusAvailable, int parentActivity) { super(context, R.layout.row_page_action); this.mContext = context; mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); this.isPageStatusAvailable = isPageStatusAvailable; this.parentActivity = parentActivity; } private static class ViewHolder { Button bActionWithoutStatus; Button bActionWithStatus; ImageView ivTick; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.row_page_action, null); holder = new ViewHolder(); holder.bActionWithoutStatus = (Button) convertView.findViewById(R.id.b_action_without_status); holder.bActionWithStatus = (Button) convertView.findViewById(R.id.b_action_with_status); holder.ivTick = (ImageView) convertView.findViewById(R.id.iv_tick); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } PageAction item = getItem(position); if(isPageStatusAvailable){ holder.bActionWithoutStatus.setVisibility(View.INVISIBLE); holder.bActionWithStatus.setVisibility(View.VISIBLE); } else{ holder.bActionWithoutStatus.setVisibility(View.VISIBLE); holder.bActionWithStatus.setVisibility(View.INVISIBLE); } holder.bActionWithoutStatus.setText(item.getTitle()); holder.bActionWithoutStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String pageId = getItem(position).getLink(); if (pageId.equals("close")) { // ApplicationSettings.setFirstRun(mContext, false); Intent i = new Intent(mContext, CalculatorActivity.class); // i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); mContext.startActivity(i); ((MainActivity)mContext).callFinishActivityReceiver(); // ((Activity) mContext).overridePendingTransition(R.anim.show_from_bottom, R.anim.hide_to_top); } else { Intent i = new Intent(mContext, WizardActivity.class); if(parentActivity == AppConstants.FROM_WIZARD_ACTIVITY){ i = new Intent(mContext, WizardActivity.class); } else{ // AppUtil.showToast("Real alert deactivated.", 1000, mContext); // new PanicAlert(mContext).deActivate(); // if(pageId.equalsIgnoreCase("home-not-configured")) // ApplicationSettings.setRestartedSetup(mContext, true); i = new Intent(mContext, MainActivity.class); // i = AppUtil.clearBackStack(i); } // Intent i = new Intent(mContext, WizardActivity.class); i.putExtra("page_id", pageId); mContext.startActivity(i); } } }); if (item.getStatus() != null) { holder.bActionWithoutStatus.setEnabled(false); if (item.getStatus().equals("checked")) { holder.ivTick.setVisibility(View.VISIBLE); } else { // status = "disabled" holder.ivTick.setVisibility(View.INVISIBLE); } } else { holder.bActionWithoutStatus.setEnabled(true); holder.ivTick.setVisibility(View.INVISIBLE); } holder.bActionWithStatus.setText(item.getTitle()); holder.bActionWithStatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String pageId = getItem(position).getLink(); if (pageId.equals("close")) { // ApplicationSettings.setFirstRun(mContext, false); Intent i = new Intent(mContext.getApplicationContext(), CalculatorActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); mContext.startActivity(i); ((Activity) mContext).overridePendingTransition(R.anim.show_from_bottom, R.anim.hide_to_top); } else { Intent i; if(parentActivity == AppConstants.FROM_WIZARD_ACTIVITY){ i = new Intent(mContext, WizardActivity.class); } else{ i = new Intent(mContext, MainActivity.class); } // Intent i = new Intent(mContext, WizardActivity.class); i.putExtra("page_id", pageId); mContext.startActivity(i); } } }); if (item.getStatus() != null) { holder.bActionWithStatus.setEnabled(false); if (item.getStatus().equals("checked")) { holder.ivTick.setVisibility(View.VISIBLE); } else { // status = "disabled" holder.ivTick.setVisibility(View.INVISIBLE); } } else { holder.bActionWithStatus.setEnabled(true); holder.ivTick.setVisibility(View.INVISIBLE); } return convertView; } public void setData(List<PageAction> actionList) { clear(); if (actionList != null) { for (int i = 0; i < actionList.size(); i++) { add(actionList.get(i)); } } } }