Added ability to change icon

This commit is contained in:
Peter 2019-05-10 20:18:27 +02:00
parent 1b5ea5f685
commit c939d6eb81
2 changed files with 19 additions and 3 deletions

View File

@ -34,8 +34,10 @@ public final class TelegramApplicationBindings {
public let getWindowHost: () -> WindowHost?
public let presentNativeController: (UIViewController) -> Void
public let dismissNativeController: () -> Void
public let getAlternateIconName: () -> String?
public let requestSetAlternateIconName: (String?, @escaping (Bool) -> Void) -> Void
public init(isMainApp: Bool, containerPath: String, appSpecificScheme: String, openUrl: @escaping (String) -> Void, openUniversalUrl: @escaping (String, TelegramApplicationOpenUrlCompletion) -> Void, canOpenUrl: @escaping (String) -> Bool, getTopWindow: @escaping () -> UIWindow?, displayNotification: @escaping (String) -> Void, applicationInForeground: Signal<Bool, NoError>, applicationIsActive: Signal<Bool, NoError>, clearMessageNotifications: @escaping ([MessageId]) -> Void, pushIdleTimerExtension: @escaping () -> Disposable, openSettings: @escaping () -> Void, openAppStorePage: @escaping () -> Void, registerForNotifications: @escaping (@escaping (Bool) -> Void) -> Void, requestSiriAuthorization: @escaping (@escaping (Bool) -> Void) -> Void, siriAuthorization: @escaping () -> AccessType, getWindowHost: @escaping () -> WindowHost?, presentNativeController: @escaping (UIViewController) -> Void, dismissNativeController: @escaping () -> Void) {
public init(isMainApp: Bool, containerPath: String, appSpecificScheme: String, openUrl: @escaping (String) -> Void, openUniversalUrl: @escaping (String, TelegramApplicationOpenUrlCompletion) -> Void, canOpenUrl: @escaping (String) -> Bool, getTopWindow: @escaping () -> UIWindow?, displayNotification: @escaping (String) -> Void, applicationInForeground: Signal<Bool, NoError>, applicationIsActive: Signal<Bool, NoError>, clearMessageNotifications: @escaping ([MessageId]) -> Void, pushIdleTimerExtension: @escaping () -> Disposable, openSettings: @escaping () -> Void, openAppStorePage: @escaping () -> Void, registerForNotifications: @escaping (@escaping (Bool) -> Void) -> Void, requestSiriAuthorization: @escaping (@escaping (Bool) -> Void) -> Void, siriAuthorization: @escaping () -> AccessType, getWindowHost: @escaping () -> WindowHost?, presentNativeController: @escaping (UIViewController) -> Void, dismissNativeController: @escaping () -> Void, getAlternateIconName: @escaping () -> String?, requestSetAlternateIconName: @escaping (String?, @escaping (Bool) -> Void) -> Void) {
self.isMainApp = isMainApp
self.containerPath = containerPath
self.appSpecificScheme = appSpecificScheme
@ -56,6 +58,8 @@ public final class TelegramApplicationBindings {
self.presentNativeController = presentNativeController
self.dismissNativeController = dismissNativeController
self.getWindowHost = getWindowHost
self.getAlternateIconName = getAlternateIconName
self.requestSetAlternateIconName = requestSetAlternateIconName
}
}

View File

@ -49,6 +49,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
case optimizeDatabase(PresentationTheme)
case animatedStickers(PresentationTheme)
case photoPreview(PresentationTheme, Bool)
case alternateIcon(PresentationTheme)
case versionInfo(PresentationTheme)
var section: ItemListSectionId {
@ -61,7 +62,7 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return DebugControllerSection.logging.rawValue
case .enableRaiseToSpeak, .keepChatNavigationStack, .skipReadHistory, .crashOnSlowQueries:
return DebugControllerSection.experiments.rawValue
case .clearTips, .reimport, .resetData, .resetBiometricsData, .optimizeDatabase, .animatedStickers, .photoPreview:
case .clearTips, .reimport, .resetData, .resetBiometricsData, .optimizeDatabase, .animatedStickers, .photoPreview, .alternateIcon:
return DebugControllerSection.experiments.rawValue
case .versionInfo:
return DebugControllerSection.info.rawValue
@ -108,8 +109,10 @@ private enum DebugControllerEntry: ItemListNodeEntry {
return 17
case .photoPreview:
return 18
case .versionInfo:
case .alternateIcon:
return 19
case .versionInfo:
return 20
}
}
@ -423,6 +426,14 @@ private enum DebugControllerEntry: ItemListNodeEntry {
})
}).start()
})
case let .alternateIcon(theme):
return ItemListActionItem(theme: theme, title: "Change Icon", kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: {
if arguments.sharedContext.applicationBindings.getAlternateIconName() == "Black" {
arguments.sharedContext.applicationBindings.requestSetAlternateIconName(nil, { _ in })
} else {
arguments.sharedContext.applicationBindings.requestSetAlternateIconName("Black", { _ in })
}
})
case let .versionInfo(theme):
let bundle = Bundle.main
let bundleId = bundle.bundleIdentifier ?? ""
@ -459,6 +470,7 @@ private func debugControllerEntries(presentationData: PresentationData, loggingS
entries.append(.resetData(presentationData.theme))
entries.append(.optimizeDatabase(presentationData.theme))
entries.append(.photoPreview(presentationData.theme, experimentalSettings.chatListPhotos))
entries.append(.alternateIcon(presentationData.theme))
entries.append(.versionInfo(presentationData.theme))
return entries