Skip to content

Commit e547eff

Browse files
authored
Synchronize variant-specific settings defaults (#4910)
1 parent bb64b62 commit e547eff

1 file changed

Lines changed: 54 additions & 4 deletions

File tree

.github/workflows/main.yml

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,8 +2175,33 @@ jobs:
21752175
echo "#define INTERVALSICU_CLIENT_SECRET ${{ secrets.intervalsicu_client_secret }}" >> secret.h
21762176
echo "${{ secrets.cesiumkey }}" >> inner_templates/googlemaps/cesium-key.js
21772177
echo "#define LICENSE" >> secret.h
2178-
# Set variant-specific IP setting
2179-
sed -i 's/property string ${{ matrix.variant.setting_key }}: ""/property string ${{ matrix.variant.setting_key }}: "${{ matrix.variant.setting_value }}"/' settings.qml
2178+
# Keep the QML and C++ defaults identical for this artifact variant.
2179+
SETTING_KEY='${{ matrix.variant.setting_key }}' \
2180+
SETTING_VALUE='${{ matrix.variant.setting_value }}' \
2181+
python3 - <<'PY'
2182+
import os
2183+
from pathlib import Path
2184+
2185+
key = os.environ["SETTING_KEY"]
2186+
value = os.environ["SETTING_VALUE"]
2187+
replacements = {
2188+
Path("settings.qml"): (
2189+
f' property string {key}: ""',
2190+
f' property string {key}: "{value}"',
2191+
),
2192+
Path("qzsettings.cpp"): (
2193+
f'const QString QZSettings::default_{key} = QStringLiteral("");',
2194+
f'const QString QZSettings::default_{key} = QStringLiteral("{value}");',
2195+
),
2196+
}
2197+
for path, (original, variant) in replacements.items():
2198+
contents = path.read_text()
2199+
if contents.count(original) != 1:
2200+
raise SystemExit(f"Expected exactly one {original!r} in {path}")
2201+
path.write_text(contents.replace(original, variant))
2202+
if path.read_text().count(variant) != 1:
2203+
raise SystemExit(f"Failed to set {variant!r} in {path}")
2204+
PY
21802205
cd ..
21812206
21822207
ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK
@@ -2318,8 +2343,33 @@ jobs:
23182343
echo "#define INTERVALSICU_CLIENT_SECRET ${{ secrets.intervalsicu_client_secret }}" >> secret.h
23192344
echo "${{ secrets.cesiumkey }}" >> inner_templates/googlemaps/cesium-key.js
23202345
echo "#define LICENSE" >> secret.h
2321-
# Set variant-specific IP setting
2322-
sed -i 's/property string ${{ matrix.variant.setting_key }}: ""/property string ${{ matrix.variant.setting_key }}: "${{ matrix.variant.setting_value }}"/' settings.qml
2346+
# Keep the QML and C++ defaults identical for this artifact variant.
2347+
SETTING_KEY='${{ matrix.variant.setting_key }}' \
2348+
SETTING_VALUE='${{ matrix.variant.setting_value }}' \
2349+
python3 - <<'PY'
2350+
import os
2351+
from pathlib import Path
2352+
2353+
key = os.environ["SETTING_KEY"]
2354+
value = os.environ["SETTING_VALUE"]
2355+
replacements = {
2356+
Path("settings.qml"): (
2357+
f' property string {key}: ""',
2358+
f' property string {key}: "{value}"',
2359+
),
2360+
Path("qzsettings.cpp"): (
2361+
f'const QString QZSettings::default_{key} = QStringLiteral("");',
2362+
f'const QString QZSettings::default_{key} = QStringLiteral("{value}");',
2363+
),
2364+
}
2365+
for path, (original, variant) in replacements.items():
2366+
contents = path.read_text()
2367+
if contents.count(original) != 1:
2368+
raise SystemExit(f"Expected exactly one {original!r} in {path}")
2369+
path.write_text(contents.replace(original, variant))
2370+
if path.read_text().count(variant) != 1:
2371+
raise SystemExit(f"Failed to set {variant!r} in {path}")
2372+
PY
23232373
cd ..
23242374
23252375
# Keep FitPro APKs usable on older 32-bit iFIT/ProForm consoles.

0 commit comments

Comments
 (0)