mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Bot preview improvements
This commit is contained in:
@@ -11,6 +11,7 @@ import SearchUI
|
||||
|
||||
public class LanguageSelectionScreen: ViewController {
|
||||
private let context: AccountContext
|
||||
private let excludeIds: [String]
|
||||
private let selectLocalization: (LocalizationInfo) -> Void
|
||||
|
||||
private var controllerNode: LanguageSelectionScreenNode {
|
||||
@@ -29,8 +30,9 @@ public class LanguageSelectionScreen: ViewController {
|
||||
|
||||
private var previousContentOffset: ListViewVisibleContentOffset?
|
||||
|
||||
public init(context: AccountContext, selectLocalization: @escaping (LocalizationInfo) -> Void) {
|
||||
public init(context: AccountContext, excludeIds: [String] = [], selectLocalization: @escaping (LocalizationInfo) -> Void) {
|
||||
self.context = context
|
||||
self.excludeIds = excludeIds
|
||||
self.selectLocalization = selectLocalization
|
||||
|
||||
self.presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||
@@ -92,7 +94,7 @@ public class LanguageSelectionScreen: ViewController {
|
||||
}
|
||||
|
||||
override public func loadDisplayNode() {
|
||||
self.displayNode = LanguageSelectionScreenNode(context: self.context, presentationData: self.presentationData, navigationBar: self.navigationBar!, requestActivateSearch: { [weak self] in
|
||||
self.displayNode = LanguageSelectionScreenNode(context: self.context, presentationData: self.presentationData, navigationBar: self.navigationBar!, excludeIds: self.excludeIds, requestActivateSearch: { [weak self] in
|
||||
self?.activateSearch()
|
||||
}, requestDeactivateSearch: { [weak self] in
|
||||
self?.deactivateSearch()
|
||||
|
||||
@@ -294,6 +294,7 @@ final class LanguageSelectionScreenNode: ViewControllerTracingNode {
|
||||
private let context: AccountContext
|
||||
private var presentationData: PresentationData
|
||||
private weak var navigationBar: NavigationBar?
|
||||
private let excludeIds: [String]
|
||||
private let requestActivateSearch: () -> Void
|
||||
private let requestDeactivateSearch: () -> Void
|
||||
private let present: (ViewController, Any?) -> Void
|
||||
@@ -316,11 +317,12 @@ final class LanguageSelectionScreenNode: ViewControllerTracingNode {
|
||||
|
||||
private var currentListState: LocalizationListState?
|
||||
|
||||
init(context: AccountContext, presentationData: PresentationData, navigationBar: NavigationBar, requestActivateSearch: @escaping () -> Void, requestDeactivateSearch: @escaping () -> Void, present: @escaping (ViewController, Any?) -> Void, push: @escaping (ViewController) -> Void, selectLocalization: @escaping (LocalizationInfo) -> Void) {
|
||||
init(context: AccountContext, presentationData: PresentationData, navigationBar: NavigationBar, excludeIds: [String], requestActivateSearch: @escaping () -> Void, requestDeactivateSearch: @escaping () -> Void, present: @escaping (ViewController, Any?) -> Void, push: @escaping (ViewController) -> Void, selectLocalization: @escaping (LocalizationInfo) -> Void) {
|
||||
self.context = context
|
||||
self.presentationData = presentationData
|
||||
self.presentationDataValue.set(.single(presentationData))
|
||||
self.navigationBar = navigationBar
|
||||
self.excludeIds = excludeIds
|
||||
self.requestActivateSearch = requestActivateSearch
|
||||
self.requestDeactivateSearch = requestDeactivateSearch
|
||||
self.present = present
|
||||
@@ -362,6 +364,12 @@ final class LanguageSelectionScreenNode: ViewControllerTracingNode {
|
||||
var entries: [LanguageListEntry] = []
|
||||
var existingIds = Set<String>()
|
||||
|
||||
var localizationListState = localizationListState
|
||||
localizationListState.availableOfficialLocalizations = localizationListState.availableOfficialLocalizations.filter {
|
||||
!strongSelf.excludeIds.contains($0.languageCode)
|
||||
}
|
||||
localizationListState.availableSavedLocalizations = []
|
||||
|
||||
if !localizationListState.availableOfficialLocalizations.isEmpty {
|
||||
strongSelf.currentListState = localizationListState
|
||||
|
||||
|
||||
Reference in New Issue
Block a user