package org.wikipedia.readinglist;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.SwitchCompat;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import org.wikipedia.R;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class ReadingListItemActionsView extends LinearLayout {
public interface Callback {
void onToggleOffline();
void onShare();
void onAddToOther();
void onDelete();
}
@BindView(R.id.reading_list_item_title) TextView titleView;
@BindView(R.id.reading_list_item_remove_text) TextView removeTextView;
@BindView(R.id.reading_list_item_offline_switch) SwitchCompat offlineSwitchView;
@Nullable private Callback callback;
public ReadingListItemActionsView(Context context) {
super(context);
init();
}
public ReadingListItemActionsView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public ReadingListItemActionsView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public ReadingListItemActionsView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
public void setState(@NonNull String pageTitle, @NonNull String listTitle, boolean offline) {
offlineSwitchView.setChecked(offline);
titleView.setText(pageTitle);
removeTextView.setText(getResources().getString(R.string.reading_list_remove_from_list,
listTitle));
}
public void setCallback(@Nullable Callback callback) {
this.callback = callback;
}
@OnClick(R.id.reading_list_item_offline) void onOfflineClick(View view) {
if (callback != null) {
callback.onToggleOffline();
}
}
@OnClick(R.id.reading_list_item_share) void onShareClick(View view) {
if (callback != null) {
callback.onShare();
}
}
@OnClick(R.id.reading_list_item_add_to_other) void onAddToOtherClick(View view) {
if (callback != null) {
callback.onAddToOther();
}
}
@OnClick(R.id.reading_list_item_remove) void onRemoveClick(View view) {
if (callback != null) {
callback.onDelete();
}
}
private void init() {
inflate(getContext(), R.layout.view_reading_list_page_actions, this);
ButterKnife.bind(this);
setOrientation(VERTICAL);
}
}