Hide compatibility in debug options

This commit is contained in:
Ali 2021-04-02 21:38:17 +04:00
parent e937ca52bf
commit d0fef93d37
4 changed files with 32 additions and 6 deletions

View File

@ -73,6 +73,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
case photoPreview(PresentationTheme, Bool) case photoPreview(PresentationTheme, Bool)
case knockoutWallpaper(PresentationTheme, Bool) case knockoutWallpaper(PresentationTheme, Bool)
case demoVideoChats(Bool) case demoVideoChats(Bool)
case experimentalCompatibility(Bool)
case playerEmbedding(Bool) case playerEmbedding(Bool)
case playlistPlayback(Bool) case playlistPlayback(Bool)
case voiceConference case voiceConference
@ -92,7 +93,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return DebugControllerSection.logging.rawValue return DebugControllerSection.logging.rawValue
case .enableRaiseToSpeak, .keepChatNavigationStack, .skipReadHistory, .crashOnSlowQueries: case .enableRaiseToSpeak, .keepChatNavigationStack, .skipReadHistory, .crashOnSlowQueries:
return DebugControllerSection.experiments.rawValue return DebugControllerSection.experiments.rawValue
case .clearTips, .reimport, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .demoVideoChats, .playerEmbedding, .playlistPlayback, .voiceConference: case .clearTips, .reimport, .resetData, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .reindexUnread, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .demoVideoChats, .experimentalCompatibility, .playerEmbedding, .playlistPlayback, .voiceConference:
return DebugControllerSection.experiments.rawValue return DebugControllerSection.experiments.rawValue
case .preferredVideoCodec: case .preferredVideoCodec:
return DebugControllerSection.videoExperiments.rawValue return DebugControllerSection.videoExperiments.rawValue
@ -155,6 +156,8 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return 23 return 23
case .demoVideoChats: case .demoVideoChats:
return 24 return 24
case .experimentalCompatibility:
return 25
case .playerEmbedding: case .playerEmbedding:
return 26 return 26
case .playlistPlayback: case .playlistPlayback:
@ -712,6 +715,16 @@ private enum DebugControllerEntry: ItemListNodeEntry {
}) })
}).start() }).start()
}) })
case let .experimentalCompatibility(value):
return ItemListSwitchItem(presentationData: presentationData, title: "Experimental Compatibility", value: value, sectionId: self.section, style: .blocks, updated: { value in
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in
var settings = settings as? ExperimentalUISettings ?? ExperimentalUISettings.defaultSettings
settings.experimentalCompatibility = value
return settings
})
}).start()
})
case let .playerEmbedding(value): case let .playerEmbedding(value):
return ItemListSwitchItem(presentationData: presentationData, title: "Player Embedding", value: value, sectionId: self.section, style: .blocks, updated: { value in return ItemListSwitchItem(presentationData: presentationData, title: "Player Embedding", value: value, sectionId: self.section, style: .blocks, updated: { value in
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
@ -820,6 +833,7 @@ private func debugControllerEntries(sharedContext: SharedAccountContext, present
if isMainApp { if isMainApp {
entries.append(.knockoutWallpaper(presentationData.theme, experimentalSettings.knockoutWallpaper)) entries.append(.knockoutWallpaper(presentationData.theme, experimentalSettings.knockoutWallpaper))
entries.append(.demoVideoChats(experimentalSettings.demoVideoChats)) entries.append(.demoVideoChats(experimentalSettings.demoVideoChats))
entries.append(.experimentalCompatibility(experimentalSettings.experimentalCompatibility))
entries.append(.playerEmbedding(experimentalSettings.playerEmbedding)) entries.append(.playerEmbedding(experimentalSettings.playerEmbedding))
entries.append(.playlistPlayback(experimentalSettings.playlistPlayback)) entries.append(.playlistPlayback(experimentalSettings.playlistPlayback))
} }

View File

@ -238,7 +238,7 @@ public final class AccountContextImpl: AccountContext {
}) })
} }
account.callSessionManager.updateVersions(versions: PresentationCallManagerImpl.voipVersions(includeExperimental: true, includeReference: false).map { version, supportsVideo -> CallSessionManagerImplementationVersion in account.callSessionManager.updateVersions(versions: PresentationCallManagerImpl.voipVersions(includeExperimental: true, includeReference: sharedContext.immediateExperimentalUISettings.experimentalCompatibility).map { version, supportsVideo -> CallSessionManagerImplementationVersion in
CallSessionManagerImplementationVersion(version: version, supportsVideo: supportsVideo) CallSessionManagerImplementationVersion(version: version, supportsVideo: supportsVideo)
}) })
} }

View File

@ -15,6 +15,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
public var disableVideoAspectScaling: Bool public var disableVideoAspectScaling: Bool
public var enableVoipTcp: Bool public var enableVoipTcp: Bool
public var demoVideoChats: Bool public var demoVideoChats: Bool
public var experimentalCompatibility: Bool
public static var defaultSettings: ExperimentalUISettings { public static var defaultSettings: ExperimentalUISettings {
return ExperimentalUISettings( return ExperimentalUISettings(
@ -29,7 +30,8 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
preferredVideoCodec: nil, preferredVideoCodec: nil,
disableVideoAspectScaling: false, disableVideoAspectScaling: false,
enableVoipTcp: false, enableVoipTcp: false,
demoVideoChats: false demoVideoChats: false,
experimentalCompatibility: false
) )
} }
@ -45,7 +47,8 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
preferredVideoCodec: String?, preferredVideoCodec: String?,
disableVideoAspectScaling: Bool, disableVideoAspectScaling: Bool,
enableVoipTcp: Bool, enableVoipTcp: Bool,
demoVideoChats: Bool demoVideoChats: Bool,
experimentalCompatibility: Bool
) { ) {
self.keepChatNavigationStack = keepChatNavigationStack self.keepChatNavigationStack = keepChatNavigationStack
self.skipReadHistory = skipReadHistory self.skipReadHistory = skipReadHistory
@ -59,6 +62,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
self.disableVideoAspectScaling = disableVideoAspectScaling self.disableVideoAspectScaling = disableVideoAspectScaling
self.enableVoipTcp = enableVoipTcp self.enableVoipTcp = enableVoipTcp
self.demoVideoChats = demoVideoChats self.demoVideoChats = demoVideoChats
self.experimentalCompatibility = experimentalCompatibility
} }
public init(decoder: PostboxDecoder) { public init(decoder: PostboxDecoder) {
@ -74,6 +78,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
self.disableVideoAspectScaling = decoder.decodeInt32ForKey("disableVideoAspectScaling", orElse: 0) != 0 self.disableVideoAspectScaling = decoder.decodeInt32ForKey("disableVideoAspectScaling", orElse: 0) != 0
self.enableVoipTcp = decoder.decodeInt32ForKey("enableVoipTcp", orElse: 0) != 0 self.enableVoipTcp = decoder.decodeInt32ForKey("enableVoipTcp", orElse: 0) != 0
self.demoVideoChats = decoder.decodeInt32ForKey("demoVideoChats", orElse: 0) != 0 self.demoVideoChats = decoder.decodeInt32ForKey("demoVideoChats", orElse: 0) != 0
self.experimentalCompatibility = decoder.decodeInt32ForKey("experimentalCompatibility", orElse: 0) != 0
} }
public func encode(_ encoder: PostboxEncoder) { public func encode(_ encoder: PostboxEncoder) {
@ -91,6 +96,7 @@ public struct ExperimentalUISettings: Equatable, PreferencesEntry {
encoder.encodeInt32(self.disableVideoAspectScaling ? 1 : 0, forKey: "disableVideoAspectScaling") encoder.encodeInt32(self.disableVideoAspectScaling ? 1 : 0, forKey: "disableVideoAspectScaling")
encoder.encodeInt32(self.enableVoipTcp ? 1 : 0, forKey: "enableVoipTcp") encoder.encodeInt32(self.enableVoipTcp ? 1 : 0, forKey: "enableVoipTcp")
encoder.encodeInt32(self.demoVideoChats ? 1 : 0, forKey: "demoVideoChats") encoder.encodeInt32(self.demoVideoChats ? 1 : 0, forKey: "demoVideoChats")
encoder.encodeInt32(self.experimentalCompatibility ? 1 : 0, forKey: "experimentalCompatibility")
} }
public func isEqual(to: PreferencesEntry) -> Bool { public func isEqual(to: PreferencesEntry) -> Bool {

View File

@ -332,8 +332,14 @@ static void (*InternalVoipLoggingFunction)(NSString *) = NULL;
return 92; return 92;
} }
+ (NSArray<NSString *> * _Nonnull)versionsWithIncludeReference:(bool)__unused includeReference { + (NSArray<NSString *> * _Nonnull)versionsWithIncludeReference:(bool)includeReference {
return @[@"2.7.7", @"3.0.0", @"4.0.0"]; NSMutableArray<NSString *> *list = [[NSMutableArray alloc] init];
[list addObject:@"2.7.7"];
[list addObject:@"3.0.0"];
if (includeReference) {
[list addObject:@"4.0.0"];
}
return list;
} }
+ (tgcalls::ProtocolVersion)protocolVersionFromLibraryVersion:(NSString *)version { + (tgcalls::ProtocolVersion)protocolVersionFromLibraryVersion:(NSString *)version {