Repository navigation
Conversation
Owner
|
Hi @jawzf can you address the conflcits |
jawzf
force-pushed
the
feat/004-macros
branch
from
October 18, 2026 09:51
a53d2ce to
91d3011
Compare
Contributor
Author
|
Hi @sameerasw this is done! |
…andled by progress plugin
A macro is a named list of actions saved once and reused anywhere actions can be picked. DIY gets a taskbar-style Automations | Macros switch, a macro list with test and delete, and a macro editor built on the existing action sequence editor. Every action picker gains a Macros category (automations, button remap, lockscreen shortcuts, action shortcut, and the Island, Duo and Status Glance gesture pickers). Action.RunMacro stores the macro id, so edits apply everywhere; it runs through executeAll, and a deleted macro shows "Deleted macro" and posts the failure notice. Macros can't nest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jawzf
force-pushed
the
feat/004-macros
branch
from
October 23, 2026 12:30
a56c489 to
ffb8c89
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds Macros to DIY: a macro is a named list of actions you save once and reuse anywhere actions can be picked.
Before: the same action sequence had to be rebuilt in every automation, button remap, lockscreen shortcut or gesture that needed it, and changing it meant editing each copy.
After:
How:
Macro(id, name, actions)indomain/diy/Macro.kt;DIYRepositorysavesmacrosunder a newsaved_macroskey in the same prefs, using the existing Action Gson adapter.Action.RunMacro(macroId)runs throughCombinedActionExecutor.executeAll, so each inner action gets the same permission check and failure notice as a normal sequence.ActionRegistry.getMacroCategory()builds the picker category;Action.displayName(context)gives the macro's name forRunMacroand the title for everything else.Action.matches, which comparesRunMacroby id and everything else by class as before.DIYScreen.ktdiff is indentation from wrapping the content inAnimatedContent; it's easier to read with whitespace changes hidden.Type of change
UI changes
The DIY tab with the Automations | Macros switch.
The Macros view.
diy-switch.mp4
Switching between Automations and Macros.
The macro editor: a name and the usual action list.
The Macros category at the end of an automation's add-action sheet.
The Island long-press picker with the Macros category; only the assigned macro is selected.
Checklist
develop(notmain)../gradlew assembleDebug(andassembleRelease)../gradlew testDebugUnitTest(5 new tests inMacroJsonTest:RunMacroround trip in an action list, type-only JSON loads with an empty id, two macros round-trip throughDIYRepository, invalid JSON gives an empty list, unknown action types inside a macro are skipped).ActionSequenceEditor,RoundedCardContainer,EssentialsFloatingToolbar,SegmentedDropdownMenuand the existing failure notifier.strings.xml(English only).FeatureRegistry.kt.🤖 Generated with Claude Code