yasushicohiのやんややんや

記事にするまでもないつぶやき、ありふれた想い、TIL。ブログ: https://yasushicohi.com

kotlin と RxJava 悩みのコード

  fun startCountDown(){

val timerDisplay = findViewById<TextView>(R.id.timer_display)
var d : Disposable
// TODO 一回ボタンを押して開始したら押せないようにするか、停止する。

val observable : Observable<Long> = Observable.interval(1, TimeUnit.SECONDS)
// d は必要 "The result of subscribe is not used"
d = observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.map(Function<Long, Long> {
return@Function TEN_MINUTE - 1 - it //itはどんどんカウントを増していく
})

.subscribe{
// もうKotlinがわからない
// itがいわゆるonNextで返される値。

// 分数で format 
// これformat使う方がええな。
//timerDisplay.text = ((it/60).toString() + " : " + (it%60).toString())
// format("" , intLongじゃないとダメ。多分Long , )
// はぁ、楽しかった。。。
// ここは、onNextでござる。
timerDisplay.text = String.format(" %02d : %02d ", (it / 60), (it % 60))

// TimeUnit.SECONDS.toMinutes(
// onCompleteとかはないから?ってとやろう??
//TODO 0になったら、トーストを出して、停止する。
// 分数を選べるようにする。
}


// Javaの場合。これで一生頑張っていた、JavaだったらこれでOK
// new Observer<Long>() {
// @Override
// public void onSubscribe(Disposable d) {
// disposable = d;
// }
//
// @Override
// public void onNext(Long aLong) {
// onTick(aLong);
// }
//
// @Override
// public void onError(Throwable e) {
// e.printStackTrace();
// }
//
// @Override
// public void onComplete() {
// onFinish();
// }
// });


}