2015年11月21日 星期六

XTextList 2.0 使用說明

English version : XTextList brief introduction

自製 Xposed Module , XTextList 更新到 2.0 ,決定正式來寫一個使用說明,文末是一些小小的心得,稍微抒發一下製作這個程式的心路歷程(?)。

XTextList 是一個 Xposed Module , 手機必須有安裝 Xposed framework 才能使用,主要功能是讓我們可以快速地輸入文字,可以讓大家快速的輸入事先設定好文字內容。

註:手機沒安裝 Xposed 也可以考慮使用我做的另外一個 App :  Floating Clipboard,可以參考重灌達人的介紹

XTextList 會在使用者輸入文字的時候,跳出一個浮動視窗,點選後會出現事先設定好的文字列表提供選擇,只要點選指定文字,就可以將文字內容輸入正在打字的地方。

特點介紹:
  1. 使用浮動視窗 ( 可自訂大小與顏色、透明度 )
  2. 可以快速輸入事先設定的文字
  3. 提供剪貼簿歷史紀錄功能
  4. 兩種清單模式:純文字、別名
  5. 匯出 / 匯入文字清單
  6. 採用 Android 6.0 的 Runtime permission 設定

支援系統: Android 4.0.3 ~ Android 6.0

直接看 gif 動畫效果展示:



[ 主要功能介紹 ]

XTexList 提供兩種使用方式,大家可以自由切換,但要記得需要重新開機才能生效:

◎ 模式一 : 浮動視窗  ( 預設、推薦使用 )

  此模式會在「輸入法鍵盤跳出」時,顯示一個浮動視窗,點選視窗
  即可出現文字候選清單,選擇文字就會立刻輸入該內容。
  浮動視窗可以記錄上次的位置。


◎ 模式二 : Tap & Long-Press - 底下簡稱 TLP 模式

  這是舊版的使用方式,在文字輸入區先輕點一下(要放開),再馬上按住不放;
  感覺有點像電腦滑鼠快速點兩下,但第二下不要放開;
  之後就會跳出文字候選清單提供選取。




※ 限制及注意事項 ※

浮動視窗模式:Android 6.0 使用者在第一次開啟此程式時,請先手動給予顯示浮動視窗的權限。
(點圖放大檢視)

點選紅色選項,會出現詢問視窗,記得開啟此權限,成功的話會看到變成綠色的


TLP 模式:僅支援基本的文字輸入區 ( EditText ) 以及網頁 (WebView) 撰寫,因此可能不支援許多主流瀏覽器,如 Chrome、Firefox、Opera...等等
※ TLP 模式未來不會再更新。未來如有新的功能都只會實作在浮動視窗模式。

文字清單以及分類選單

文字清單新功能:



  • A 快速時間日期按鈕:點選可以切換為日期時間輸入模式,點選後可以快速輸入現在的時間與日期。
  • B 多次輸入模式:勾選後,可以點選、輸入多筆文字,不會關閉文字清單對話框,直到使用者自己關閉對話框為止。( Back 鍵或點外面 )


設定主頁面如下圖,底下將一一介紹各功能:
(如果有任何建議,可以按右上角的回饋喔)
取得權限的部分僅供 Android M 使用



[ 基本設定 ]


在基本設定中,可以切換是否啟用 XTextList 以及監聽剪貼簿功能;使用方式也是在此進行設定。

第一個呈現的清單」是指每一次文字列表跳出時,會先顯示哪一個清單,建議勾選「記住上次使用的」會比較方便喔。

其餘功能應該不需特別介紹,請注意此處的設定要按下「儲存」才會生效

※切換使用方式需要重新啟動手機。

2.0 alpha 1 之後,切換剪貼簿歷史紀錄功能不再需要重新啟動囉


[ 管理文字清單 ]

在說明此功能前,先介紹文字清單的運作方式:
  • 首先,你可以建立多個文字清單,可以想像成分類,比如「住址」、「信箱」...等等
  • 建立好清單後,可以在該清單下新增許多文字內容,使用時點選這些內容即可快速將文字輸入進去
  • 清單分為兩類「文字」與「別名」,文字顧名思義就是看到什麼,輸入什麼;而別名則是可以替要輸入的文字取名字,比如替「台南市東區大學路1號」取名「學校」,那麼在清單上會看到學校,但是點選則會輸入台南市東區大學路1號


在清單列表中可以新增列表手動排序以及長按重新命名,點選特定清單可以編輯該清單的內容 ( 左圖 )。

而在編輯清單的畫面(右圖),可以新增項目排序清空列表刪除列表,點選特定項目可以編輯該項目長按可以刪除



 
 [ Tap & Long-Press 設定 ]

 當使用 TLP 模式時,這邊可以設定 Tap 到 Long-Press 之間的間隔時間。如果 Tap 到 Long-Press 的間隔時間超過設定的值( 預設為 1500 = 1.5 秒 ),就不會有任何反應。





 [ 浮動視窗設定 ] -- 重要


使用浮動視窗模式時,可以在此進行許多設定,包含漸層顏色、透明度、圖示以及大小。

顏色的部分直接點選色塊可以選擇顏色,中間的箭頭可以交換顏色 。

圖示使用 Android 系統內建圖示,因此每台手機可能不一樣,大小目前提供三種選擇。

若偶爾不想讓浮動視窗跳出來,可以開啟「暫停使用此功能」,這個不需要重新開機。

需要注意的是「點選延遲」和「浮動視窗等級」兩個:

點選延遲是設定手指放上浮動視窗多久之後,才算開始移動,因為有的手機比較敏感,或者有的人手指比較大,容易造成系統認為你想要「移動」浮動視窗而非「點選」,而造成怎麼點都沒反應的感覺。因此若常常點選都沒反應,可以試著將這個值調大一點,但是如果調太大,要移動浮動視窗時會有很明顯的 Delay。( PS:單位不是秒,是系統偵測次數 )

反過來說,萬一哪一天不想要讓浮動視窗移動的時候,可以把這個值調得非常大 XD

浮動視窗等級則是設定浮動視窗在系統中的等級,預設為 PHONE:
  • PHONE:有可能在使用如 Facebook Messenger 或 Link Bubble 這類具有浮動功能的 App 時,會被壓在他們下面而無法點選。
  • ALERT:應該都可以顯示在上述的 App 之上,所以如果需要在上述這類軟體中使用,可以改為這個選項。
  • ERROR:系統最幾乎高等級的浮動視窗,也會浮在通知欄之上,通常不建議使用此等級。
左圖為 PHONE 和 ALERT;右圖是 ERROR,甚至可以浮在通知欄上


浮動視窗設定頁面只要一修改就會儲存,您也可以按下右上角的「測試輸入」觀看結果。




 [ 匯出 / 匯入 ]
Android M 會多出一個「取得讀寫檔案權限」的按鈕

將目前的文字清單內容匯出成 json 格式的文字檔案;或者從 json 格式的文字檔案中匯入資料,可以用來做備份,或者拿到電腦上作修改。

※注意:
  1. Android M 使用者這裡會多一個按鈕,請先按下取得讀寫儲存空間的權限。
  2. 匯出的檔案會覆蓋同檔名的檔案
  3. 匯入資料時會清空目前所有的文字清單及內容
  4. 編輯匯入檔案必須按照 json 及特定格式,並使用 UTF-8 編碼
  5. 勾選「減少匯出檔案大小」會將不必要的空格及換行刪除,但要拿來編輯會比較不容易看


XTextList 使用介紹到此結束,謝謝大家的知持 :)

==== 底下是廢話時間 ====

對我個人來說,在手機上要打字實在有點麻煩,有時候很多常用的東西,比如地址、常用語、信箱.... 等等,每次打字都會花比較長的時間,所以才決定開發這種快速輸入文字的 App。

其實最早是玩 Sony 的 SmallApp 的時候想到可以做這個的: MultiClipboard for SmallApp

但這個只能給 Sony 使用,而且功能不算完善,後來發現有人寫出讓 Widget 變成浮動視窗的 App,所以又寫了一個 ClipWidget,再上架幾天後,就看到了 XDA 有人做出來的 StandOut 浮動視窗 Lib,所以就把 ClipWidget 下架,改成浮動視窗版本的 Floating Clipboard

大家可以注意到,這些 App 的概念都是相同的,甚至連介面... 都很像XDD

但是老實說,複製、貼上,用久了其實有點懶(掩面...),那時候有看到有外國某個輸入法可以自訂文字在輸入法中,達到類似的效果,但我已經無法離開 Swype , 所以到最後也是作罷....

就在接觸到 Xposed 開發後,我又將腦筋動到這個 App 上面 XD

所以就做了第一版的 XTextList,當時只有 Tap & Long-Press 功能,支援度少,加上沒研究其他 ROM,所以一直都只有自己使用,但這確實大幅改變我使用的頻率和速度

在 PTT 上發表之後,忽然收到很多支持的聲音,才會想要更進一步更新這個 Module,所以又找了很多 Source Code 研究,讓我發現可以綁定在輸入法上,並透過浮動視窗讓整個功能更加完善,所以也很謝謝版上熱心提供建議的版友們。

當初也沒想到,到最後居然是我自己把這個功能和輸入法綁起來的 XDDD

XTextList 算是到目前為止自己花最多心思也是最滿意的作品,再次感謝大家的支持 :)

5 則留言:

  1. 不知道作者有沒有空或興趣加上換行符號(^P)或是TAB(^T)等,可以實現在純文字輸入時的換行或是換表單的功能。

    回覆刪除
  2. 之前的手機有用過覺得好用換新手機後發現不支援android 6...期待作者放出支援的版本

    回覆刪除
  3. is possible for android 7? without xposed?

    回覆刪除