Files
deflock-app/lib/keys.dart
Doug Borg 5728b4f70f Force simulate mode when OSM OAuth secrets are missing
Preview/PR builds don't have access to GitHub Secrets, so the OAuth
client IDs are empty. Previously this caused a runtime crash from
keys.dart throwing on empty values. Now we detect missing secrets
and force simulate mode, which already fully supports fake auth
and uploads.

Also fixes a latent bug where forceLogin() would crash with
LateInitializationError in simulate mode since _helper is never
initialized when OAuth setup is skipped.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 11:25:17 -07:00

20 lines
662 B
Dart

// OpenStreetMap OAuth client IDs for this app.
// These must be provided via --dart-define at build time.
/// Whether OSM OAuth secrets were provided at build time.
/// When false, the app should force simulate mode.
bool get kHasOsmSecrets {
const prod = String.fromEnvironment('OSM_PROD_CLIENTID');
const sandbox = String.fromEnvironment('OSM_SANDBOX_CLIENTID');
return prod.isNotEmpty && sandbox.isNotEmpty;
}
String get kOsmProdClientId {
const fromBuild = String.fromEnvironment('OSM_PROD_CLIENTID');
return fromBuild;
}
String get kOsmSandboxClientId {
const fromBuild = String.fromEnvironment('OSM_SANDBOX_CLIENTID');
return fromBuild;
}