package support.ui.content;
import android.content.Context;
import android.support.annotation.DrawableRes;
import android.support.annotation.StringRes;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.anthony.rxlibrary.R;
import butterknife.ButterKnife;
import support.ui.utilities.ViewUtils;
public class DefaultEmptyView extends FrameLayout implements EmptyView, View.OnClickListener {
private ImageView imageView;
private TextView titleTextView;
private TextView subtitleTextView;
private OnEmptyViewClickListener listener;
public DefaultEmptyView(Context context) {
super(context);
initialize(context);
}
private void initialize(Context context) {
View view = LayoutInflater.from(context).inflate(R.layout.support_ui_view_empty, this, false);
addView(view);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
setOnClickListener(this);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
setOnClickListener(null);
listener = null;
}
@Override
public DefaultEmptyView buildEmptyImageView(@DrawableRes int drawableRes) {
if (imageView() != null) {
imageView().setImageResource(drawableRes);
}
return this;
}
@Override
public DefaultEmptyView buildEmptyTitle(@StringRes int stringRes) {
return buildEmptyTitle(getContext().getString(stringRes));
}
public DefaultEmptyView buildEmptyTitle(String title) {
if (titleTextView() != null) {
titleTextView().setText(title);
}
return this;
}
@Override
public DefaultEmptyView buildEmptySubtitle(@StringRes int stringRes) {
return buildEmptySubtitle(getContext().getString(stringRes));
}
@Override
public DefaultEmptyView buildEmptySubtitle(String subtitle) {
if (subtitleTextView() != null) {
subtitleTextView().setText(subtitle);
}
return this;
}
@Override
public EmptyView shouldDisplayEmptySubtitle(boolean display) {
ViewUtils.setGone(subtitleTextView(), !display);
return this;
}
@Override
public EmptyView shouldDisplayEmptyTitle(boolean display) {
ViewUtils.setGone(titleTextView(), !display);
return this;
}
@Override
public EmptyView shouldDisplayEmptyImageView(boolean display) {
ViewUtils.setGone(imageView(), !display);
return this;
}
public TextView titleTextView() {
if (titleTextView == null) {
titleTextView = ButterKnife.findById(this, R.id.support_ui_empty_title);
}
return titleTextView;
}
public TextView subtitleTextView() {
if (subtitleTextView == null) {
subtitleTextView = ButterKnife.findById(this, R.id.support_ui_empty_subtitle);
}
return subtitleTextView;
}
public ImageView imageView() {
if (imageView == null) {
imageView = ButterKnife.findById(this, R.id.support_ui_empty_image_view);
}
return imageView;
}
@Override
public void onClick(View v) {
if (listener != null) {
listener.onEmptyViewClick(v);
}
}
@Override
public void setOnEmptyViewClickListener(OnEmptyViewClickListener listener) {
this.listener = listener;
}
}