タブレット用プログラムの書き止め

android OS & iPadOS の記録。

【kotlin】ViewModelの設計

2024-02-11 03:02:55 | Android studio 日記

数値が更新されたら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()
    }
}