package com.gettingmobile.goodnews.home; import android.view.View; import android.widget.TextView; import com.gettingmobile.android.widget.SimpleListItemViewType; import com.gettingmobile.goodnews.Activity; import com.gettingmobile.goodnews.Application; import com.gettingmobile.goodnews.R; import com.gettingmobile.goodnews.tip.TipDialogHandler; import com.gettingmobile.goodnews.util.ItemTimestampFormat; import java.util.Calendar; final class SyncStatusHeaderViewType extends SimpleListItemViewType { private final Activity activity; private final Application app; private final ItemTimestampFormat format; public SyncStatusHeaderViewType(Activity activity) { super(HomeListAdapter.VIEW_TYPE_SYNC_STATUS, true, R.layout.sync_status); this.activity = activity; this.app = activity.getApp(); format = new ItemTimestampFormat(activity, false); } @Override public void bindView(View view, Object item) { super.bindView(view, item); updateView(view); } public void updateView(View view) { if (view == null) return; /* * set pull time */ final Calendar lastSuccessfulPullTime = app.getSettings().getLastSuccessfulPullTimestamp(); if (lastSuccessfulPullTime != null) { ((TextView) view.findViewById(R.id.pull_sync_status)).setText( format.format(lastSuccessfulPullTime.getTime())); } /* * set push time */ final TextView pushTimeView = (TextView) view.findViewById(R.id.push_sync_status); final Calendar lastSuccessfulPushTime = app.getSettings().getLastSuccessfulPushTimestamp(); if (lastSuccessfulPushTime != null) { pushTimeView.setText(format.format(lastSuccessfulPushTime.getTime())); } final boolean requiresPush = app.getSyncService() != null && app.getSyncService().getService() != null && app.getSyncService().getService().isPushRequired(); pushTimeView.setCompoundDrawablesWithIntrinsicBounds(null, null, app.getThemeUtil().getThemeDrawable(pushTimeView, requiresPush ? R.attr.pushStatusRequiredIcon : R.attr.pushStatusIcon), null); /* * show tip on click */ view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { TipDialogHandler.start(activity, app.getTipManager(), "sync_status"); } }); } }