package com.wealthfront.magellan.rx;
import android.content.Context;
import android.view.ViewGroup;
import com.wealthfront.magellan.Screen;
import com.wealthfront.magellan.ScreenView;
import rx.Subscription;
import rx.subscriptions.CompositeSubscription;
public abstract class RxScreen<V extends ViewGroup & ScreenView> extends Screen<V> {
private CompositeSubscription subscriptions = new CompositeSubscription();
@Override
protected final void onShow(Context context) {
subscriptions = new CompositeSubscription();
onSubscribe(context);
}
protected void onSubscribe(Context context) {}
protected final void autoUnsubscribe(Subscription subscription) {
subscriptions.add(subscription);
}
protected void onUnsubscribe(Context context) {}
@Override
protected final void onHide(Context context) {
onUnsubscribe(context);
subscriptions.unsubscribe();
}
}