mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
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:
@@ -9,12 +9,8 @@ import Foundation
|
||||
|
||||
/// A type that represents how to set up the analytics module in the app.
|
||||
struct AnalyticsConfiguration {
|
||||
/// Whether or not analytics should be enabled.
|
||||
let isEnabled: Bool
|
||||
/// The host to use for PostHog analytics.
|
||||
let host: String
|
||||
/// The public key for submitting analytics.
|
||||
let apiKey: String
|
||||
/// The URL to open with more information about analytics terms.
|
||||
let termsURL: URL
|
||||
}
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -9,8 +9,6 @@ import PostHog
|
||||
|
||||
extension PostHogConfig {
|
||||
static func standard(analyticsConfiguration: AnalyticsConfiguration) -> PostHogConfig? {
|
||||
guard analyticsConfiguration.isEnabled else { return nil }
|
||||
|
||||
let postHogConfiguration = PostHogConfig(apiKey: analyticsConfiguration.apiKey, host: analyticsConfiguration.host)
|
||||
// We capture screens manually
|
||||
postHogConfiguration.captureScreenViews = false
|
||||
|
||||
Reference in New Issue
Block a user