package Ġcom . sum era . arg allery . tools . observable s Ċ Ċ import Ġcom . appy vet . material range bar . Range Bar Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . android . MainThread Disposable Ċ Ċ class ĠRange Changed Observable ( private Ġval Ġview : ĠRange Bar ) Ġ: ĠObservable < Pair < Int , ĠInt >>() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsubscribe Actual ( observer : ĠObserver < in ĠPair < Int , ĠInt >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠListener ( view , Ġobserver ) ĊĠĠĠĠĠĠĠ Ġobserver . on Subscribe ( listener ) ĊĠĠĠĠĠĠĠ Ġview . setOn Range Bar ChangeListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠListener ( private Ġval Ġview : ĠRange Bar , Ġprivate Ġval Ġobserver : ĠObserver < in ĠPair < Int , ĠInt >>) Ġ: ĠMain Thread Disposable (), ĠRange Bar . On Range Bar ChangeListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Range ChangeListener ( range Bar : ĠRange Bar ?, Ġleft Pin Index : ĠInt , Ġright Pin Index : ĠInt , Ġleft Pin Value : ĠString ?, Ġright Pin Value : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Value Ġ= Ġleft Pin Value ?. toInt () Ġ?: Ġthrow ĠIllegalStateException (" Unexpected Ġvalue Ġ$ left Pin Value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Value Ġ= Ġright Pin Value ?. toInt () Ġ?: Ġthrow ĠIllegalStateException (" Unexpected Ġvalue Ġ$ right Pin Value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserver . onNext ( left Value Ġto Ġright Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOn Range Bar ChangeListener ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠRange Bar . range Changes (): ĠObservable < Pair < Int , ĠInt >> Ġ{ ĊĠĠĠ Ġreturn ĠRange Changed Observable ( this ) Ċ }