diff --git a/.idea/dictionaries/tateisu.xml b/.idea/dictionaries/tateisu.xml
index 5e33879d..cbf6ca42 100644
--- a/.idea/dictionaries/tateisu.xml
+++ b/.idea/dictionaries/tateisu.xml
@@ -84,6 +84,7 @@
mastodonsearch
mimumedon
misskey
+ misskeyclientproto
miyon
mpeg
mpga
@@ -126,6 +127,7 @@
styler
subwaytooter
swipy
+ systemui
taisaku
tateisu
tbody
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
index 03385e19..7fcd0e40 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
@@ -54,276 +54,262 @@ import kotlin.math.max
import kotlin.math.min
class ActMain : AsyncActivity(), Column.Callback, View.OnClickListener,
- ViewPager.OnPageChangeListener, DrawerLayout.DrawerListener {
-
- class PhoneEnv {
-
- internal lateinit var pager : MyViewPager
- internal lateinit var pager_adapter : ColumnPagerAdapter
- }
-
- class TabletEnv {
-
- internal lateinit var tablet_pager : RecyclerView
- internal lateinit var tablet_pager_adapter : TabletColumnPagerAdapter
- internal lateinit var tablet_layout_manager : LinearLayoutManager
- internal lateinit var tablet_snap_helper : GravitySnapHelper
- }
-
- companion object {
-
- val log = LogCategory("ActMain")
-
- // リザルト
- const val RESULT_APP_DATA_IMPORT = Activity.RESULT_FIRST_USER
-
- // リクエスト
- const val REQUEST_CODE_COLUMN_LIST = 1
- const val REQUEST_CODE_ACCOUNT_SETTING = 2
- const val REQUEST_APP_ABOUT = 3
- const val REQUEST_CODE_NICKNAME = 4
- const val REQUEST_CODE_POST = 5
- const val REQUEST_CODE_COLUMN_COLOR = 6
- const val REQUEST_CODE_APP_SETTING = 7
- const val REQUEST_CODE_TEXT = 8
- const val REQUEST_CODE_LANGUAGE_FILTER = 9
-
- const val COLUMN_WIDTH_MIN_DP = 300
-
- const val STATE_CURRENT_PAGE = "current_page"
-
- // 外部からインテントを受信した後、アカウント選択中に画面回転したらアカウント選択からやり直す
- internal var sent_intent2 : Intent? = null
-
- // アプリ設定のキャッシュ
- var boostButtonSize = 1
- var replyIconSize = 1
- var headerIconSize = 1
- var stripIconSize = 1
- var screenBottomPadding = 0
- var timeline_font : Typeface = Typeface.DEFAULT
- var timeline_font_bold : Typeface = Typeface.DEFAULT_BOLD
-
- private fun Float.clipFontSize() : Float =
- if(isNaN()) this else max(1f, this)
- }
-
- // アプリ設定のキャッシュ
- var density = 0f
- var acct_pad_lr = 0
- var timeline_font_size_sp = Float.NaN
- var acct_font_size_sp = Float.NaN
- var notification_tl_font_size_sp = Float.NaN
- var header_text_size_sp = Float.NaN
- var timeline_spacing : Float? = null
- var avatarIconSize : Int = 0
- var notificationTlIconSize : Int = 0
-
- // onResume() .. onPause() の間なら真
- private var isResumed = false
-
- // onStart() .. onStop() の間なら真
- private var isStart_ = false
-
- // onActivityResultで設定されてonResumeで消化される
- // 状態保存の必要なし
- private var posted_acct : Acct? = null // acctAscii
- private var posted_status_id : EntityId? = null
- private var posted_reply_id : EntityId? = null
- private var posted_redraft_id : EntityId? = null
-
- // 画面上のUI操作で生成されて
- // onPause,onPageDestroy 等のタイミングで閉じられる
- // 状態保存の必要なし
- internal var listItemPopup : StatusButtonsPopup? = null
-
- private var phoneEnv : PhoneEnv? = null
- private var tabletEnv : TabletEnv? = null
-
- private var nScreenColumn : Int = 0
- private var nColumnWidth : Int = 0 // dividerの幅を含む
-
- private var nAutoCwCellWidth = 0
- private var nAutoCwLines = 0
-
- private var dlgPrivacyPolicy : WeakReference