Allow the services that are configured by secrets to be disabled. (#3961)

* Make the map tiler key optional.

* Make the bug report URL optional.

* Make the sentry URL optional.

* Make the analytics configuration optional and handle consent taking Sentry into account.

* Stop prompting users to report crashes when Sentry is disabled.
This commit is contained in:
Doug
2025-04-01 09:24:12 +01:00
committed by GitHub
parent 36903bf3fb
commit 5e50823223
71 changed files with 321 additions and 134 deletions
@@ -39,7 +39,7 @@ class AnalyticsService {
/// Whether to show the user the analytics opt in prompt.
var shouldShowAnalyticsPrompt: Bool {
// Only show the prompt once, and when analytics are enabled in BuildSettings.
appSettings.analyticsConsentState == .unknown && appSettings.analyticsConfiguration.isEnabled
appSettings.analyticsConsentState == .unknown && appSettings.canPromptForAnalytics
}
var isEnabled: Bool {
@@ -65,9 +65,9 @@ class AnalyticsService {
/// Starts the analytics client if the user has opted in, otherwise does nothing.
func startIfEnabled() {
guard isEnabled, !client.isRunning else { return }
guard isEnabled, !client.isRunning, let configuration = appSettings.analyticsConfiguration else { return }
client.start(analyticsConfiguration: appSettings.analyticsConfiguration)
client.start(analyticsConfiguration: configuration)
// Sanity check in case something went wrong.
guard client.isRunning else { return }