目前 EinkBro 真正有需要顯示自己的畫面的地方並不多,畫面上大部分的空間都留給了 WebView
。在全螢幕的情況下,更是一點其他的 UI 元件都沒有。稍微歸納了一下還稱得上是 UI 的畫面如下:
進入設定後的 PreferenceScreen
,這算是 UI 的大宗,但大部分都只需要設定 preference xml
,和在 fragment 中接一下 action 就可以搞定了
畫面下方除了有很彈性的工具列外,還包含了網址輸入框以及網頁內搜尋的介面。工具列得要配合工具列設定還有 Preference 才能完美運作。
網頁全文翻譯時,可以將畫面一分為二。主視窗依然可以利用工具列操控;副視窗則是會在畫面上有一條新增的工具列可以使用。這功能採用了自己客製出來的 TwoPaneLayout
,不僅可以上下分頁,還可以左右分頁,或是主副對調位置;更厲害的是,能透過畫面中的拉桿,調整兩個視窗的比例。
說多不多,但說少,想要一次全部改成用 Compose 實作,也是不大可能,尤其是我對於 Jetpack Compose 的認知也還極其有限,修改起來應該要花不少工夫。
最終,選定的策略是先從最單純,相依性不高的對話框開始改起。對話框的邏輯通常不會太複雜,給定資料後,只管呈現出來,再把最終使用者選的項目,做的修改,再帶回給呼叫的人處理就可以了。不會有太多的狀態變化要管理。這麼一來可以讓我先不去接觸 state management 這一塊。等到熟悉 Jetpack Compose 的基本實作方式後,再來處理比較複雜的元件,像是 AutoCompleteTextView,分頁列表,和工具列等元件。
在下一篇裡,在這麼多對話框中,先選出了一個相對單純的應用來試刀:快速切換設定選單。畫面上只需要幾筆項目,每一筆項目有圖,有文字,還有個 Checkbox,點下去會呼叫對應的 preference 改變。明天正式開工囉。