mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-05 05:51:42 +00:00
Glass debug
This commit is contained in:
parent
724b4ccbdf
commit
5bbc75fc7c
@ -95,7 +95,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
|||||||
case knockoutWallpaper(PresentationTheme, Bool)
|
case knockoutWallpaper(PresentationTheme, Bool)
|
||||||
case experimentalCompatibility(Bool)
|
case experimentalCompatibility(Bool)
|
||||||
case enableDebugDataDisplay(Bool)
|
case enableDebugDataDisplay(Bool)
|
||||||
case rippleEffect(Bool)
|
case fakeGlass(Bool)
|
||||||
case browserExperiment(Bool)
|
case browserExperiment(Bool)
|
||||||
case allForumsHaveTabs(Bool)
|
case allForumsHaveTabs(Bool)
|
||||||
case enableReactionOverrides(Bool)
|
case enableReactionOverrides(Bool)
|
||||||
@ -135,7 +135,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
|||||||
return DebugControllerSection.web.rawValue
|
return DebugControllerSection.web.rawValue
|
||||||
case .keepChatNavigationStack, .skipReadHistory, .alwaysDisplayTyping, .debugRatingLayout, .crashOnSlowQueries, .crashOnMemoryPressure:
|
case .keepChatNavigationStack, .skipReadHistory, .alwaysDisplayTyping, .debugRatingLayout, .crashOnSlowQueries, .crashOnMemoryPressure:
|
||||||
return DebugControllerSection.experiments.rawValue
|
return DebugControllerSection.experiments.rawValue
|
||||||
case .clearTips, .resetNotifications, .crash, .fillLocalSavedMessageCache, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .resetTagHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .compressedEmojiCache, .storiesJpegExperiment, .checkSerializedData, .enableQuickReactionSwitch, .experimentalCompatibility, .enableDebugDataDisplay, .rippleEffect, .browserExperiment, .allForumsHaveTabs, .enableReactionOverrides, .restorePurchases, .disableReloginTokens, .liveStreamV2, .experimentalCallMute, .playerV2, .devRequests, .enableUpdates, .fakeAds, .enableLocalTranslation:
|
case .clearTips, .resetNotifications, .crash, .fillLocalSavedMessageCache, .resetDatabase, .resetDatabaseAndCache, .resetHoles, .resetTagHoles, .reindexUnread, .resetCacheIndex, .reindexCache, .resetBiometricsData, .optimizeDatabase, .photoPreview, .knockoutWallpaper, .compressedEmojiCache, .storiesJpegExperiment, .checkSerializedData, .enableQuickReactionSwitch, .experimentalCompatibility, .enableDebugDataDisplay, .fakeGlass, .browserExperiment, .allForumsHaveTabs, .enableReactionOverrides, .restorePurchases, .disableReloginTokens, .liveStreamV2, .experimentalCallMute, .playerV2, .devRequests, .enableUpdates, .fakeAds, .enableLocalTranslation:
|
||||||
return DebugControllerSection.experiments.rawValue
|
return DebugControllerSection.experiments.rawValue
|
||||||
case .logTranslationRecognition, .resetTranslationStates:
|
case .logTranslationRecognition, .resetTranslationStates:
|
||||||
return DebugControllerSection.translation.rawValue
|
return DebugControllerSection.translation.rawValue
|
||||||
@ -226,7 +226,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
|||||||
return 37
|
return 37
|
||||||
case .enableDebugDataDisplay:
|
case .enableDebugDataDisplay:
|
||||||
return 38
|
return 38
|
||||||
case .rippleEffect:
|
case .fakeGlass:
|
||||||
return 39
|
return 39
|
||||||
case .browserExperiment:
|
case .browserExperiment:
|
||||||
return 40
|
return 40
|
||||||
@ -1258,12 +1258,12 @@ private enum DebugControllerEntry: ItemListNodeEntry {
|
|||||||
})
|
})
|
||||||
}).start()
|
}).start()
|
||||||
})
|
})
|
||||||
case let .rippleEffect(value):
|
case let .fakeGlass(value):
|
||||||
return ItemListSwitchItem(presentationData: presentationData, title: "Ripple", value: value, sectionId: self.section, style: .blocks, updated: { value in
|
return ItemListSwitchItem(presentationData: presentationData, title: "Fake glass", value: value, sectionId: self.section, style: .blocks, updated: { value in
|
||||||
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
|
let _ = arguments.sharedContext.accountManager.transaction ({ transaction in
|
||||||
transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in
|
transaction.updateSharedData(ApplicationSpecificSharedDataKeys.experimentalUISettings, { settings in
|
||||||
var settings = settings?.get(ExperimentalUISettings.self) ?? ExperimentalUISettings.defaultSettings
|
var settings = settings?.get(ExperimentalUISettings.self) ?? ExperimentalUISettings.defaultSettings
|
||||||
settings.rippleEffect = value
|
settings.fakeGlass = value
|
||||||
return PreferencesEntry(settings)
|
return PreferencesEntry(settings)
|
||||||
})
|
})
|
||||||
}).start()
|
}).start()
|
||||||
@ -1543,7 +1543,7 @@ private func debugControllerEntries(sharedContext: SharedAccountContext, present
|
|||||||
entries.append(.knockoutWallpaper(presentationData.theme, experimentalSettings.knockoutWallpaper))
|
entries.append(.knockoutWallpaper(presentationData.theme, experimentalSettings.knockoutWallpaper))
|
||||||
entries.append(.experimentalCompatibility(experimentalSettings.experimentalCompatibility))
|
entries.append(.experimentalCompatibility(experimentalSettings.experimentalCompatibility))
|
||||||
entries.append(.enableDebugDataDisplay(experimentalSettings.enableDebugDataDisplay))
|
entries.append(.enableDebugDataDisplay(experimentalSettings.enableDebugDataDisplay))
|
||||||
entries.append(.rippleEffect(experimentalSettings.rippleEffect))
|
entries.append(.fakeGlass(experimentalSettings.fakeGlass))
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
entries.append(.browserExperiment(experimentalSettings.browserExperiment))
|
entries.append(.browserExperiment(experimentalSettings.browserExperiment))
|
||||||
#else
|
#else
|
||||||
|
|||||||
@ -294,8 +294,10 @@ public class GlassBackgroundView: UIView {
|
|||||||
|
|
||||||
private var params: Params?
|
private var params: Params?
|
||||||
|
|
||||||
|
public static var useCustomGlassImpl: Bool = false
|
||||||
|
|
||||||
public override init(frame: CGRect) {
|
public override init(frame: CGRect) {
|
||||||
if #available(iOS 26.0, *) {
|
if #available(iOS 26.0, *), !GlassBackgroundView.useCustomGlassImpl {
|
||||||
self.backgroundNode = nil
|
self.backgroundNode = nil
|
||||||
|
|
||||||
let glassEffect = UIGlassEffect(style: .regular)
|
let glassEffect = UIGlassEffect(style: .regular)
|
||||||
|
|||||||
@ -89,7 +89,7 @@ public final class TabBarComponent: Component {
|
|||||||
private weak var state: EmptyComponentState?
|
private weak var state: EmptyComponentState?
|
||||||
|
|
||||||
public override init(frame: CGRect) {
|
public override init(frame: CGRect) {
|
||||||
self.backgroundView = GlassBackgroundView(frame: CGRect())
|
self.backgroundView = GlassBackgroundView()
|
||||||
self.selectionView = GlassBackgroundView.ContentImageView()
|
self.selectionView = GlassBackgroundView.ContentImageView()
|
||||||
|
|
||||||
self.contextGestureContainerView = ContextControllerSourceView()
|
self.contextGestureContainerView = ContextControllerSourceView()
|
||||||
|
|||||||
@ -3761,12 +3761,6 @@ class ChatControllerNode: ASDisplayNode, ASScrollViewDelegate {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if let view, let location {
|
|
||||||
if context.sharedContext.immediateExperimentalUISettings.rippleEffect {
|
|
||||||
self.wrappingNode.triggerRipple(at: self.contentContainerNode.view.convert(location, from: view))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
switch self.chatPresentationInterfaceState.inputMode {
|
switch self.chatPresentationInterfaceState.inputMode {
|
||||||
case .none:
|
case .none:
|
||||||
break
|
break
|
||||||
|
|||||||
@ -86,6 +86,7 @@ import SendInviteLinkScreen
|
|||||||
import PostSuggestionsSettingsScreen
|
import PostSuggestionsSettingsScreen
|
||||||
import ForumSettingsScreen
|
import ForumSettingsScreen
|
||||||
import ForumCreateTopicScreen
|
import ForumCreateTopicScreen
|
||||||
|
import GlassBackgroundComponent
|
||||||
|
|
||||||
private final class AccountUserInterfaceInUseContext {
|
private final class AccountUserInterfaceInUseContext {
|
||||||
let subscribers = Bag<(Bool) -> Void>()
|
let subscribers = Bag<(Bool) -> Void>()
|
||||||
@ -477,12 +478,16 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
|||||||
|
|
||||||
let immediateExperimentalUISettingsValue = self.immediateExperimentalUISettingsValue
|
let immediateExperimentalUISettingsValue = self.immediateExperimentalUISettingsValue
|
||||||
let _ = immediateExperimentalUISettingsValue.swap(initialPresentationDataAndSettings.experimentalUISettings)
|
let _ = immediateExperimentalUISettingsValue.swap(initialPresentationDataAndSettings.experimentalUISettings)
|
||||||
|
|
||||||
|
GlassBackgroundView.useCustomGlassImpl = immediateExperimentalUISettingsValue.with({ $0.fakeGlass })
|
||||||
|
|
||||||
self.experimentalUISettingsDisposable = (self.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.experimentalUISettings])
|
self.experimentalUISettingsDisposable = (self.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.experimentalUISettings])
|
||||||
|> deliverOnMainQueue).start(next: { sharedData in
|
|> deliverOnMainQueue).start(next: { sharedData in
|
||||||
if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.experimentalUISettings]?.get(ExperimentalUISettings.self) {
|
if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.experimentalUISettings]?.get(ExperimentalUISettings.self) {
|
||||||
let _ = immediateExperimentalUISettingsValue.swap(settings)
|
let _ = immediateExperimentalUISettingsValue.swap(settings)
|
||||||
|
|
||||||
flatBuffers_checkedGet = settings.checkSerializedData
|
flatBuffers_checkedGet = settings.checkSerializedData
|
||||||
|
GlassBackgroundView.useCustomGlassImpl = settings.fakeGlass
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
public var enableVoipTcp: Bool
|
public var enableVoipTcp: Bool
|
||||||
public var experimentalCompatibility: Bool
|
public var experimentalCompatibility: Bool
|
||||||
public var enableDebugDataDisplay: Bool
|
public var enableDebugDataDisplay: Bool
|
||||||
public var rippleEffect: Bool
|
public var fakeGlass: Bool
|
||||||
public var compressedEmojiCache: Bool
|
public var compressedEmojiCache: Bool
|
||||||
public var localTranscription: Bool
|
public var localTranscription: Bool
|
||||||
public var enableReactionOverrides: Bool
|
public var enableReactionOverrides: Bool
|
||||||
@ -86,7 +86,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
enableVoipTcp: false,
|
enableVoipTcp: false,
|
||||||
experimentalCompatibility: false,
|
experimentalCompatibility: false,
|
||||||
enableDebugDataDisplay: false,
|
enableDebugDataDisplay: false,
|
||||||
rippleEffect: false,
|
fakeGlass: false,
|
||||||
compressedEmojiCache: false,
|
compressedEmojiCache: false,
|
||||||
localTranscription: false,
|
localTranscription: false,
|
||||||
enableReactionOverrides: false,
|
enableReactionOverrides: false,
|
||||||
@ -135,7 +135,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
enableVoipTcp: Bool,
|
enableVoipTcp: Bool,
|
||||||
experimentalCompatibility: Bool,
|
experimentalCompatibility: Bool,
|
||||||
enableDebugDataDisplay: Bool,
|
enableDebugDataDisplay: Bool,
|
||||||
rippleEffect: Bool,
|
fakeGlass: Bool,
|
||||||
compressedEmojiCache: Bool,
|
compressedEmojiCache: Bool,
|
||||||
localTranscription: Bool,
|
localTranscription: Bool,
|
||||||
enableReactionOverrides: Bool,
|
enableReactionOverrides: Bool,
|
||||||
@ -181,7 +181,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
self.enableVoipTcp = enableVoipTcp
|
self.enableVoipTcp = enableVoipTcp
|
||||||
self.experimentalCompatibility = experimentalCompatibility
|
self.experimentalCompatibility = experimentalCompatibility
|
||||||
self.enableDebugDataDisplay = enableDebugDataDisplay
|
self.enableDebugDataDisplay = enableDebugDataDisplay
|
||||||
self.rippleEffect = rippleEffect
|
self.fakeGlass = fakeGlass
|
||||||
self.compressedEmojiCache = compressedEmojiCache
|
self.compressedEmojiCache = compressedEmojiCache
|
||||||
self.localTranscription = localTranscription
|
self.localTranscription = localTranscription
|
||||||
self.enableReactionOverrides = enableReactionOverrides
|
self.enableReactionOverrides = enableReactionOverrides
|
||||||
@ -231,7 +231,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
self.enableVoipTcp = (try container.decodeIfPresent(Int32.self, forKey: "enableVoipTcp") ?? 0) != 0
|
self.enableVoipTcp = (try container.decodeIfPresent(Int32.self, forKey: "enableVoipTcp") ?? 0) != 0
|
||||||
self.experimentalCompatibility = (try container.decodeIfPresent(Int32.self, forKey: "experimentalCompatibility") ?? 0) != 0
|
self.experimentalCompatibility = (try container.decodeIfPresent(Int32.self, forKey: "experimentalCompatibility") ?? 0) != 0
|
||||||
self.enableDebugDataDisplay = (try container.decodeIfPresent(Int32.self, forKey: "enableDebugDataDisplay") ?? 0) != 0
|
self.enableDebugDataDisplay = (try container.decodeIfPresent(Int32.self, forKey: "enableDebugDataDisplay") ?? 0) != 0
|
||||||
self.rippleEffect = (try container.decodeIfPresent(Int32.self, forKey: "rippleEffect") ?? 0) != 0
|
self.fakeGlass = (try container.decodeIfPresent(Int32.self, forKey: "fakeGlass") ?? 0) != 0
|
||||||
self.compressedEmojiCache = (try container.decodeIfPresent(Int32.self, forKey: "compressedEmojiCache") ?? 0) != 0
|
self.compressedEmojiCache = (try container.decodeIfPresent(Int32.self, forKey: "compressedEmojiCache") ?? 0) != 0
|
||||||
self.localTranscription = (try container.decodeIfPresent(Int32.self, forKey: "localTranscription") ?? 0) != 0
|
self.localTranscription = (try container.decodeIfPresent(Int32.self, forKey: "localTranscription") ?? 0) != 0
|
||||||
self.enableReactionOverrides = try container.decodeIfPresent(Bool.self, forKey: "enableReactionOverrides") ?? false
|
self.enableReactionOverrides = try container.decodeIfPresent(Bool.self, forKey: "enableReactionOverrides") ?? false
|
||||||
@ -281,7 +281,7 @@ public struct ExperimentalUISettings: Codable, Equatable {
|
|||||||
try container.encode((self.enableVoipTcp ? 1 : 0) as Int32, forKey: "enableVoipTcp")
|
try container.encode((self.enableVoipTcp ? 1 : 0) as Int32, forKey: "enableVoipTcp")
|
||||||
try container.encode((self.experimentalCompatibility ? 1 : 0) as Int32, forKey: "experimentalCompatibility")
|
try container.encode((self.experimentalCompatibility ? 1 : 0) as Int32, forKey: "experimentalCompatibility")
|
||||||
try container.encode((self.enableDebugDataDisplay ? 1 : 0) as Int32, forKey: "enableDebugDataDisplay")
|
try container.encode((self.enableDebugDataDisplay ? 1 : 0) as Int32, forKey: "enableDebugDataDisplay")
|
||||||
try container.encode((self.rippleEffect ? 1 : 0) as Int32, forKey: "rippleEffect")
|
try container.encode((self.fakeGlass ? 1 : 0) as Int32, forKey: "fakeGlass")
|
||||||
try container.encode((self.compressedEmojiCache ? 1 : 0) as Int32, forKey: "compressedEmojiCache")
|
try container.encode((self.compressedEmojiCache ? 1 : 0) as Int32, forKey: "compressedEmojiCache")
|
||||||
try container.encode((self.localTranscription ? 1 : 0) as Int32, forKey: "localTranscription")
|
try container.encode((self.localTranscription ? 1 : 0) as Int32, forKey: "localTranscription")
|
||||||
try container.encode(self.enableReactionOverrides, forKey: "enableReactionOverrides")
|
try container.encode(self.enableReactionOverrides, forKey: "enableReactionOverrides")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user