Skip to content

[.mdr] 補上飛航模式、更換桌布、擴音的 class type 對照 #3

Description

@ADSFAaron

背景

.mdr 匯入是 best-effort:MdrToFlowConverter 用一張對照表把 MacroDroid 的 class_type
字串轉成 NexFlow 的 ActionType。表上沒有的就會變成 UNSUPPORTED,並在匯入時列出警告。

NexFlow 有 34 種動作,對照表目前只覆蓋 25 種。這個 issue 要補三個單純 1 對 1的動作。

要做什麼

core/macrodroid-compat/src/main/kotlin/com/nexflow/core/macrodroid/MdrToFlowConverter.kt
ACTION_TYPE_MAP(約在 140 行)加上:

  • AIRPLANE_TOGGLE — 飛航模式
  • SET_WALLPAPER — 更換桌布
  • SPEAKERPHONE — 擴音
  • (加分)LAUNCH_SHORTCUT — 啟動 App 捷徑,如果 MacroDroid 有對應的動作

怎麼查 MacroDroid 的 class name

不要用猜的,實際去 .mdr 檔裡面找:

  1. 裝一份 MacroDroid,建立一個巨集,動作選「飛航模式」
  2. 從 MacroDroid 匯出 .mdr
  3. 用文字編輯器打開(就是 JSON),在 action_list 裡找那個動作的 class_type 欄位
  4. 把看到的字串填進對照表

有現成的 .mdr 檔但沒有 MacroDroid 也可以 —— 只要那個檔案裡有這些動作即可。

驗收標準

  • 對照表補上正確的 class name
  • core/macrodroid-compat/src/test/kotlin/.../MdrToFlowConverterTest.kt 加測試,
    確認該 class type 轉出來的 type 是預期的 ActionType(不是 UNSUPPORTED
  • ./gradlew :core:macrodroid-compat:test 通過
  • PR 說明附上你是從哪個 .mdr 檔看到這些 class name 的

注意

匯入後的設定欄位目前不會自動對應(MacroDroid 的 option key 跟 NexFlow 的不一樣),
那是另一個 issue 的範圍。這個 issue 只要做到「動作類型被正確識別、不再是 UNSUPPORTED」即可。

有問題歡迎在這串下面問,或到 Discussions 聊。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgood first issue適合第一次貢獻的人,範圍小、有明確驗收標準macrodroidMacroDroid .mdr 匯入相容性

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions