数値が更新されたらUIに表すものは、LiveDataで登録。
外部で書き換えできないもの、自由に書き換えできるもの、
危険性を考慮して用意する。
class MainViewModel: ViewModel() {
// 0-landscape 1-portrait (ActivityInfo)
val screenType: MutableLiveData<Int> by lazy { MutableLiveData<Int>() }
// 画面の回転をLock、Unlockさせる。
val rotateLock: MutableLiveData<Int> by lazy { MutableLiveData<Int>() }
// true 右開き false 左開き
val openBookMode: MutableLiveData<Boolean> by lazy { MutableLiveData<Boolean>() }
// 1枚表示か2枚表示かを保持。外部から_pageModeに書き込みできない仕様
private var _pageMode = 0
val pageMode: Int // 通常アクセス。読み取り専用
get() = _pageMode
// 1枚表示か2枚表示かをセットするメソッド
// 外部から書き込みできないので画面の向きで枚数を決定する
fun setPageMode(){
when(screenType.value){
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT -> {
_pageMode = 1
}
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE -> {
_pageMode = 2
}
else -> _pageMode = 0
}
}
override fun onCleared() {
super.onCleared()
}
}