package com.V4Creations.vtulife.controller.adapters; import java.util.Calendar; import android.app.Activity; import android.content.Context; import android.text.format.DateFormat; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import com.V4Creations.vtulife.R; import com.V4Creations.vtulife.model.VTULifeNotification; import com.V4Creations.vtulife.util.system.SystemFeatureChecker; public class NotificationAdapter extends SupportArrayAdapter<VTULifeNotification> { public NotificationAdapter(Context context) { super(context); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = getLayoutInflater().inflate( R.layout.notification_list_item, null); ViewHolder viewHolder = new ViewHolder(); viewHolder.mTypeImageView = (ImageView) convertView .findViewById(R.id.notificationTypeImageView); viewHolder.mTitleTextView = (TextView) convertView .findViewById(R.id.titleTextView); viewHolder.mMessageTextView = (TextView) convertView .findViewById(R.id.messageTextView); viewHolder.mTimeTextView = (TextView) convertView .findViewById(R.id.timeTextView); viewHolder.mDownloadImageButton = (ImageButton) convertView .findViewById(R.id.downloadImageButton); convertView.setTag(viewHolder); } ViewHolder viewHolder = (ViewHolder) convertView.getTag(); VTULifeNotification notification = getItem(position); viewHolder.mTitleTextView.setText(notification.getTitleString()); viewHolder.mMessageTextView.setText(notification.getMessageString()); viewHolder.mTimeTextView.setText(getFormatedTimeStamb(notification .getTime())); viewHolder.mDownloadImageButton .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SystemFeatureChecker .rateAppOnPlayStore((Activity) getContext()); } }); int imageId; if (notification.isNormalNotification()) { imageId = notification.isNotificationSaw() ? R.drawable.ic_action_email_disabled : R.drawable.ic_action_email; viewHolder.mDownloadImageButton.setVisibility(View.GONE); } else { imageId = notification.isNotificationSaw() ? R.drawable.ic_action_download_disabled : R.drawable.ic_action_download; viewHolder.mDownloadImageButton.setVisibility(View.VISIBLE); } if (notification.isNotificationSaw()) { viewHolder.mDownloadImageButton.setEnabled(false); viewHolder.mTimeTextView .setTextColor(getColor(R.color.solid_white)); viewHolder.mTitleTextView .setTextColor(getColor(R.color.solid_white)); viewHolder.mMessageTextView .setTextColor(getColor(R.color.solid_white)); } else { viewHolder.mDownloadImageButton.setEnabled(true); viewHolder.mTimeTextView.setTextColor(getColor(R.color.black)); viewHolder.mTitleTextView .setTextColor(getColor(R.color.text_muted)); viewHolder.mMessageTextView .setTextColor(getColor(R.color.text_muted)); } viewHolder.mTypeImageView.setImageResource(imageId); int color = R.color.odd_color; if (position % 2 == 0) color = R.color.even_color; convertView.setBackgroundResource(color); return convertView; } private CharSequence getFormatedTimeStamb(long time) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); return DateFormat.getDateFormat(getContext()) .format(calendar.getTime()); } private static class ViewHolder { public ImageView mTypeImageView; public TextView mTitleTextView, mMessageTextView, mTimeTextView; public ImageButton mDownloadImageButton; } private int getColor(int resColor) { return getContext().getResources().getColor(resColor); } }