Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 1.14 KB

use-take-until-to-watch-terminal-situations.md

File metadata and controls

47 lines (34 loc) · 1.14 KB

Use takeUntil to watch terminal situations

Example: Stop fetching sensible data when the user logs out

@Retention(RetentionPolicy.RUNTIME) @Qualifier public @interface SignOut{}

@SignOut @Provides @Singleton
Observable<Void> provideSignOutObservable(@SignOut PublishSubject<Void> subject) {
  return subject;
}

@SignOut @Provides @Singleton
PublishSubject<Void> provideSignOutSubject() {
   return PublishSubject.create();
}

public DrawerView ... {
  void onSignoutClick() {
    //do some signout logic    
    this.signOut.onNext(null); //inform the rest of the app that use has signed out in a decoupled way 
  }
 }
 
@Retention(RetentionPolicy.RUNTIME) @Qualifier public @interface SignOut{}

@SignOut @Provides @Singleton
Observable<Void> provideSignOutObservable(@SignOut PublishSubject<Void> subject) {
  return subject;
}

@SignOut @Provides @Singleton
PublishSubject<Void> provideSignOutSubject() {
   return PublishSubject.create();
}

public DrawerView ... {
  void onSignoutClick() {
    //do some signout logic    
    this.signOut.onNext(null); //inform the rest of the app that use has signed out in a decoupled way 
  }
 }