package org.wordpress.android.ui.reader.views; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; import org.wordpress.android.R; import org.wordpress.android.models.ReaderTag; import org.wordpress.android.ui.reader.services.ReaderPostService; import org.wordpress.android.ui.reader.services.ReaderPostService.UpdateAction; import org.wordpress.android.util.NetworkUtils; /** * marker view between posts indicating a gap in time between them that can be filled in - designed * for use inside ReaderPostAdapter */ public class ReaderGapMarkerView extends RelativeLayout { private TextView mText; private ProgressBar mProgress; private ReaderTag mCurrentTag; public ReaderGapMarkerView(Context context) { super(context); initView(context); } public ReaderGapMarkerView(Context context, AttributeSet attrs) { super(context, attrs); initView(context); } public ReaderGapMarkerView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(context); } private void initView(Context context) { View view = inflate(context, R.layout.reader_gap_marker_view, this); mText = (TextView) view.findViewById(R.id.text_gap_marker); mProgress = (ProgressBar) view.findViewById(R.id.progress_gap_marker); mText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { fillTheGap(); } }); } public void setCurrentTag(ReaderTag tag) { mCurrentTag = tag; hideProgress(); } private void fillTheGap() { if (mCurrentTag == null || !NetworkUtils.checkConnection(getContext())) { return; } // start service to fill the gap - EventBus will notify the owning fragment of new posts, // and will take care of hiding this view ReaderPostService.startServiceForTag(getContext(), mCurrentTag, UpdateAction.REQUEST_OLDER_THAN_GAP); showProgress(); } private void showProgress() { mText.setVisibility(View.INVISIBLE); mProgress.setVisibility(View.VISIBLE); } private void hideProgress() { mText.setVisibility(View.VISIBLE); mProgress.setVisibility(View.GONE); } }