2021-06-28 09:09:00 +02:00
|
|
|
package jp.juggler.subwaytooter.actmain
|
|
|
|
|
2021-06-28 14:52:26 +02:00
|
|
|
import android.view.View
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
2021-06-28 09:09:00 +02:00
|
|
|
import jp.juggler.subwaytooter.ActMain
|
2021-06-28 14:52:26 +02:00
|
|
|
import jp.juggler.subwaytooter.PrefB
|
|
|
|
import jp.juggler.subwaytooter.R
|
|
|
|
import jp.juggler.subwaytooter.view.MyViewPager
|
2021-06-23 06:14:25 +02:00
|
|
|
|
|
|
|
// スマホモードならラムダを実行する。タブレットモードならnullを返す
|
2021-06-28 14:52:26 +02:00
|
|
|
inline fun <R : Any?> ActMain.phoneOnly(code: (ActMainPhoneViews) -> R): R? = phoneViews?.let { code(it) }
|
2021-06-23 06:14:25 +02:00
|
|
|
|
|
|
|
// タブレットモードならラムダを実行する。スマホモードならnullを返す
|
2021-06-28 14:52:26 +02:00
|
|
|
inline fun <R : Any?> ActMain.tabOnly(code: (ActMainTabletViews) -> R): R? = tabletViews?.let { code(it) }
|
2021-06-23 06:14:25 +02:00
|
|
|
|
|
|
|
// スマホモードとタブレットモードでコードを切り替える
|
2021-06-28 14:52:26 +02:00
|
|
|
inline fun <R : Any?> ActMain.phoneTab(codePhone: (ActMainPhoneViews) -> R, codeTablet: (ActMainTabletViews) -> R): R {
|
2021-06-23 06:14:25 +02:00
|
|
|
phoneViews?.let { return codePhone(it) }
|
|
|
|
tabletViews?.let { return codeTablet(it) }
|
|
|
|
error("missing phoneViews/tabletViews")
|
|
|
|
}
|
2021-06-28 14:52:26 +02:00
|
|
|
|
|
|
|
fun ActMain.initPhoneTablet() {
|
|
|
|
val columnWMin = loadColumnMin(density)
|
|
|
|
val sw = resources.displayMetrics.widthPixels
|
|
|
|
val tmpPhonePager: MyViewPager = findViewById(R.id.viewPager)
|
|
|
|
val tmpTabletPager: RecyclerView = findViewById(R.id.rvPager)
|
|
|
|
|
|
|
|
// スマホモードとタブレットモードの切り替え
|
|
|
|
if (PrefB.bpDisableTabletMode(pref) || sw < columnWMin * 2) {
|
|
|
|
tmpTabletPager.visibility = View.GONE
|
|
|
|
phoneViews = ActMainPhoneViews(this).apply {
|
|
|
|
initUI(tmpPhonePager)
|
|
|
|
}
|
|
|
|
resizeAutoCW(sw)
|
|
|
|
} else {
|
|
|
|
tmpPhonePager.visibility = View.GONE
|
|
|
|
tabletViews = ActMainTabletViews(this).apply {
|
|
|
|
initUI(tmpTabletPager)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|