summaryrefslogtreecommitdiff
path: root/resources/settings/properties.xml
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-20 18:36:54 +0200
committercirakg <cirakg@cirakg.xyz>2026-10-20 18:36:54 +0200
commit151bfda5d4c567ff909a61dc9c90bf8eece1db37 (patch)
treef8487b91cf6a9ce59dba02e95e67250fc84d8e80 /resources/settings/properties.xml
parent25910f3a7a7fb28c4a58367b6e56dd2468b60933 (diff)
feat(settings): add the Add OTP, Add code and Manage entry forms with a PIN queue for locked entries
The full phone settings form (README 10.2) and its processing (10.3) as one resumable job: Import, Add OTP, Add code, Manage, then the About fields. Forms are applied only when their switch is on, cleared afterwards (secret first; only the secret after a problem), deduplicated by keyed hash, and report into their Result field and the results screen. - Add OTP validates per README 10.4; Add code runs the real encoder (CodeCheck, a job for 2D codes) and caches 2D codes on the way in. - Manage entry: edit, move, require/drop PIN, replace, counter, delete. Changes to locked entries are sealed under "q" and applied only after the PIN is entered under "Phone changes" in the menu. - About: catalog (800 characters max), version, storage use. - "Encrypt names" now applies to new and existing entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'resources/settings/properties.xml')
-rw-r--r--resources/settings/properties.xml57
1 files changed, 51 insertions, 6 deletions
diff --git a/resources/settings/properties.xml b/resources/settings/properties.xml
index e6b75a4..bcd31b6 100644
--- a/resources/settings/properties.xml
+++ b/resources/settings/properties.xml
@@ -1,17 +1,57 @@
<!--
Author: cirakg & claude ai
- Summary: App properties (README 10.2): the Import form (M5) and the Options group with their defaults.
+ Summary: App properties (README 10.2): every settings form field with its default, the options and the read-only About fields.
-->
<!--
Every property the watch reads must be defined here: reading an undefined
one stops the app with a system error that can't be caught.
- * Import (M5): read by source/settings/SettingsProcessor.mc. impText1-8
- are joined in order; the watch clears them and turns impApply off after
- processing, and writes the result to impStatus.
- * Options: read by source/app/Options.mc; list values are indexes. Their
- phone form follows in M7 with the other groups.
+ * Forms (Add OTP, Add code, Manage entry, Import): read by
+ source/settings/SettingsJob.mc when their switch (otpAdd, codeAdd,
+ mgApply, impApply) is on. Afterwards the watch turns the switch off,
+ clears the form (secret fields first) and writes *Status. The defaults
+ here are the values a cleared form returns to (OtpForm/CodeForm/
+ ManageForm.defaults() must match them).
+ * Options: read by source/app/Options.mc; list values are indexes.
+ * About (catalog, version, storageUse): written by the watch only
+ (source/settings/AboutScan.mc).
-->
<properties>
+ <!-- Add OTP -->
+ <property id="otpType" type="number">0</property>
+ <property id="otpIssuer" type="string"></property>
+ <property id="otpAccount" type="string"></property>
+ <property id="otpSecret" type="string"></property>
+ <property id="otpAlgorithm" type="number">0</property>
+ <property id="otpDigits" type="number">6</property>
+ <property id="otpPeriod" type="number">30</property>
+ <property id="otpCounter" type="long">0</property>
+ <property id="otpGroup" type="string"></property>
+ <property id="otpLocked" type="boolean">false</property>
+ <property id="otpAdd" type="boolean">false</property>
+ <property id="otpStatus" type="string"></property>
+ <!-- Add code -->
+ <property id="codeName" type="string"></property>
+ <property id="codeSymbology" type="number">0</property>
+ <property id="codePayload" type="string"></property>
+ <property id="codeEcLevel" type="number">1</property>
+ <property id="codeCheckDigit" type="number">0</property>
+ <property id="codeShowText" type="boolean">true</property>
+ <property id="codeGroup" type="string"></property>
+ <property id="codeLocked" type="boolean">false</property>
+ <property id="codeAdd" type="boolean">false</property>
+ <property id="codeStatus" type="string"></property>
+ <!-- Manage entry -->
+ <property id="mgId" type="string"></property>
+ <property id="mgAction" type="number">0</property>
+ <property id="mgName" type="string"></property>
+ <property id="mgAccount" type="string"></property>
+ <property id="mgGroup" type="string"></property>
+ <property id="mgPosition" type="number">1</property>
+ <property id="mgSecret" type="string"></property>
+ <property id="mgCounter" type="long">0</property>
+ <property id="mgApply" type="boolean">false</property>
+ <property id="mgStatus" type="string"></property>
+ <!-- Import -->
<property id="impText1" type="string"></property>
<property id="impText2" type="string"></property>
<property id="impText3" type="string"></property>
@@ -24,6 +64,7 @@
<property id="impLocked" type="boolean">false</property>
<property id="impApply" type="boolean">false</property>
<property id="impStatus" type="string"></property>
+ <!-- Options -->
<property id="optAutoLock" type="number">3</property>
<property id="optWipe" type="boolean">false</property>
<property id="optTimeOffset" type="number">0</property>
@@ -33,4 +74,8 @@
<property id="optEncryptNames" type="boolean">false</property>
<property id="optGlanceCode" type="boolean">false</property>
<property id="optBrightness" type="boolean">true</property>
+ <!-- About (written by the watch) -->
+ <property id="catalog" type="string"></property>
+ <property id="version" type="string"></property>
+ <property id="storageUse" type="string"></property>
</properties>