Repository: Automattic/pocket-casts-ios
File: Modules/Utils/Sources/PocketCastsUtils/Feature Flags/FeatureFlag.swift (Swift)

Code before:
    /// Enable the End of Year to use first story as loading screen
    case endOfYearLoadIsFirstStory

    /// Upgrades the Effects Player's AudioReadTask to a QOS level of "userInitiated" from "default"
    case effectsPlayerQOSUpgrade

    /// Refreshes by listening to notifications for podcast subscribe/unsubscribe
    case refreshPlaylistOnSubscriptions

    /// Uses the PlaylistMetadataLoader cache before running the query (the query will update when it's done)
    case playlistDataCacheBeforeQuery

    /// Avoid returning cached episode early and use policy instead
    case episodesInfoCacheReloadPolicy

    /// Ignores play remote commands when other audio is playing
    case ignorePlayWithOtherAudio

    /// Read streaming data from memory buffer it's available
    case streamAndDownloadReadFromMemoryBuffer

    /// activates the audio session in the background to avoid locks in the main thread
    case activateAudioSessionInBackground

    /// Use cellular-specific network APIs instead of expensive network APIs
    case useCellularNetworkAPIs

    public var enabled: Bool {
        if let overriddenValue = FeatureFlagOverrideStore().overriddenValue(for: self) {
            return overriddenValue
        }

        return `default`
    }

    public var `default`: Bool {
        switch self {
        case .tracksLogging:
            false
        case .appThemePropertiesLogging:
            if BuildEnvironment.current == .debug {
                false
            } else {
                true
            }
        case .firebaseLogging:
            false
        case .endOfYear:
            false
        case .errorLogoutHandling:
            false

Review comment (suggestion):
Just a warning that this name of feature flag will be translated to `use_celullar_network_a_p_is` so maybe change to `Apis`

Code after:
    /// Enable the End of Year to use first story as loading screen
    case endOfYearLoadIsFirstStory

    /// Upgrades the Effects Player's AudioReadTask to a QOS level of "userInitiated" from "default"
    case effectsPlayerQOSUpgrade

    /// Refreshes by listening to notifications for podcast subscribe/unsubscribe
    case refreshPlaylistOnSubscriptions

    /// Uses the PlaylistMetadataLoader cache before running the query (the query will update when it's done)
    case playlistDataCacheBeforeQuery

    /// Avoid returning cached episode early and use policy instead
    case episodesInfoCacheReloadPolicy

    /// Ignores play remote commands when other audio is playing
    case ignorePlayWithOtherAudio

    /// Read streaming data from memory buffer it's available
    case streamAndDownloadReadFromMemoryBuffer

    /// activates the audio session in the background to avoid locks in the main thread
    case activateAudioSessionInBackground

    /// Use cellular-specific network APIs instead of expensive network APIs
    case useCellularNetworkApis

    public var enabled: Bool {
        if let overriddenValue = FeatureFlagOverrideStore().overriddenValue(for: self) {
            return overriddenValue
        }

        return `default`
    }

    public var `default`: Bool {
        switch self {
        case .tracksLogging:
            false
        case .appThemePropertiesLogging:
            if BuildEnvironment.current == .debug {
                false
            } else {
                true
            }
        case .firebaseLogging:
            false
        case .endOfYear:
            false
        case .errorLogoutHandling:
            false