package com.sls.superlight.slates.viewthree; import android.annotation.TargetApi; import android.content.Context; import android.support.design.widget.Snackbar; import android.util.AttributeSet; import android.widget.Button; import com.sls.superlight.R; import com.jakewharton.rxbinding.view.RxView; import com.sls.superlight.superlightstack.BaseView; import butterknife.BindView; import butterknife.ButterKnife; import rx.Observable; import rx.Subscription; import rx.subscriptions.CompositeSubscription; public class ViewThree extends BaseView { private final CompositeSubscription compositeSubscription = new CompositeSubscription(); private Context context; @BindView(R.id.show_message_button) Button showMessageButton; public ViewThree(Context context) { super(context); this.context = context; } public ViewThree(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; } public ViewThree(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; } @TargetApi(21) public ViewThree(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); this.context = context; } private Observable<Void> showMessageButton() { return RxView.clicks(showMessageButton); } private Subscription subscribeShowMessageButton() { return showMessageButton() .subscribe(a -> showMessage(super.getBundle().getString("VIEW_TWO"))); } private void showMessage(String message) { Snackbar.make(findViewById(R.id.ViewThree), message, Snackbar.LENGTH_SHORT).show(); } @Override protected void onFinishInflate() { ButterKnife.bind(this); compositeSubscription.add(subscribeShowMessageButton()); this.setId(R.id.ViewThree); super.onFinishInflate(); } @Override protected void onDetachedFromWindow() { compositeSubscription.clear(); super.onDetachedFromWindow(); } }