package org.wikipedia.page.linkpreview; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import org.wikipedia.R; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class LinkPreviewOverlayView extends FrameLayout { public interface Callback { void onPrimaryClick(); void onSecondaryClick(); } @BindView(R.id.link_preview_primary_button) TextView primaryButton; @BindView(R.id.link_preview_secondary_button) View secondaryButton; @Nullable private Callback callback; public LinkPreviewOverlayView(Context context) { super(context); init(); } public LinkPreviewOverlayView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public LinkPreviewOverlayView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public LinkPreviewOverlayView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(); } public void setCallback(@Nullable Callback callback) { this.callback = callback; } public void setPrimaryButtonText(@Nullable CharSequence text) { primaryButton.setText(text); } public void showSecondaryButton(boolean show) { secondaryButton.setVisibility(show ? VISIBLE : GONE); } @OnClick(R.id.link_preview_primary_button) void onPrimaryClick(View view) { if (callback != null) { callback.onPrimaryClick(); } } @OnClick(R.id.link_preview_secondary_button) void onSecondaryClick(View view) { if (callback != null) { callback.onSecondaryClick(); } } private void init() { inflate(getContext(), R.layout.view_link_preview_overlay, this); ButterKnife.bind(this); } }