package com.macrohard.musicbug; import com.macrohard.musicbug.R; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; public class ListFooterView extends LinearLayout implements View.OnClickListener { private View mLoading; private View mNetworkError; private View mRetry; enum Status { LOADED, LOADING, ERROR }; public static interface RetryNetworkInterface { void retryNetwork(); } public ListFooterView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onFinishInflate() { super.onFinishInflate(); mLoading = findViewById(R.id.loading); mNetworkError = findViewById(R.id.network_error); mRetry = findViewById(R.id.retry_button); mRetry.setOnClickListener(this); } public void onClick(View v) { ((RetryNetworkInterface) v.getTag()).retryNetwork(); } public void bind(Status status, RetryNetworkInterface retry) { mRetry.setTag(retry); switch (status) { case LOADED: throw new IllegalStateException(); case LOADING: mLoading.setVisibility(View.VISIBLE); mNetworkError.setVisibility(View.GONE); break; case ERROR: mNetworkError.setVisibility(View.VISIBLE); mLoading.setVisibility(View.GONE); break; } } }