package com.artemzin.qualitymatters.other;
import android.support.annotation.NonNull;
import java.util.concurrent.atomic.AtomicBoolean;
import rx.Subscription;
import rx.functions.Action0;
public class DisposableSubscription implements Subscription {
@NonNull
private final AtomicBoolean unsubscribed = new AtomicBoolean(false);
@NonNull
private final Action0 disposeAction;
public DisposableSubscription(@NonNull Action0 disposeAction) {
this.disposeAction = disposeAction;
}
@Override
public boolean isUnsubscribed() {
return unsubscribed.get();
}
@Override
public void unsubscribe() {
if (unsubscribed.compareAndSet(false, true)) {
disposeAction.call();
}
}
}