Skip to content

Commit

Permalink
Release 1.9.6 (440)
Browse files Browse the repository at this point in the history
  • Loading branch information
denis15yo committed Feb 10, 2025
1 parent 84edf58 commit bd24a95
Show file tree
Hide file tree
Showing 27 changed files with 197 additions and 127 deletions.
10 changes: 5 additions & 5 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@ public extension SetDefaultSpeech2TextSettingsUseCase {
guard nicegramSettingsRepository.settings().speechToText.enableApple == nil else { return }
var result: Bool = true

let isNicegramPremium = PremiumContainer.shared
.getPremiumStatusUseCase()
.hasPremiumOnDevice()
let isNicegramPremium = isPremium()

if isTelegramPremium {
result = false
Expand Down
20 changes: 6 additions & 14 deletions Nicegram/NGData/Sources/NGSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -181,24 +181,16 @@ public struct NGSharedSettings {
public var VarNGSharedSettings = NGSharedSettings()

public func checkPremium(completion: @escaping (Bool) -> Void) {
Task {
let refreshPremiumSubStatusUseCase = BillingContainer.shared.refreshPremiumSubStatusUseCase()
await refreshPremiumSubStatusUseCase()

await MainActor.run {
completion(PremiumContainer.shared.getPremiumStatusUseCase().hasPremiumOnDevice())
}
Task { @MainActor in
let subscriptionStatusesRefresher = BillingContainer.shared.subscriptionStatusesRefresher()
await subscriptionStatusesRefresher.refresh()

completion(isPremium())
}
}

public func isPremium() -> Bool {
if #available(iOS 13.0, *) {
return PremiumContainer.shared
.getPremiumStatusUseCase()
.hasPremiumOnDevice()
} else {
return false
}
PremiumContainer.shared.getPremiumStatusUseCase()().premium.activeLocally
}

public func usetrButton() -> [(Bool, [String])] {
Expand Down
140 changes: 95 additions & 45 deletions Nicegram/NGUI/Sources/NicegramSettingsController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import Display
import FeatImagesHubUI
import FeatNicegramHub
import FeatPinnedChats
import FeatPumpAds
import Foundation
import ItemListUI
import NGData
Expand Down Expand Up @@ -103,7 +104,13 @@ private enum NicegramSettingsControllerEntry: ItemListNodeEntry {
case showFeedTab(String, Bool)

case pinnedChatsHeader
case pinnedChat(Int32, PinnedChat)
case pinnedChat(PinnedChat)
struct PinnedChat: Equatable {
var index: Int32 = 0
let title: String
let enabled: Bool
@IgnoreEquatable var setEnabled: (Bool) -> Void
}

case FoldersHeader(String)
case foldersAtBottom(String, Bool)
Expand Down Expand Up @@ -199,8 +206,8 @@ private enum NicegramSettingsControllerEntry: ItemListNodeEntry {
case .pinnedChatsHeader:
return 1910

case let .pinnedChat(index, _):
return 1911 + index
case let .pinnedChat(chat):
return 1911 + chat.index

case .RoundVideosHeader:
return 2000
Expand Down Expand Up @@ -415,9 +422,8 @@ private enum NicegramSettingsControllerEntry: ItemListNodeEntry {
} else {
return false
}
case let .pinnedChat(lhsIndex, lhsChat):
if case let .pinnedChat(rhsIndex, rhsChat) = rhs,
lhsIndex == rhsIndex,
case let .pinnedChat(lhsChat):
if case let .pinnedChat(rhsChat) = rhs,
lhsChat == rhsChat {
return true
} else {
Expand Down Expand Up @@ -640,28 +646,16 @@ private enum NicegramSettingsControllerEntry: ItemListNodeEntry {
text: NGCoreUI.strings.ngSettingsPinnedChats().localizedUppercase,
sectionId: section
)
case let .pinnedChat(_, chat):
if #available(iOS 13.0, *) {
return ItemListSwitchItem(
presentationData: presentationData,
title: chat.name,
value: chat.isPinned,
enabled: true,
sectionId: section,
style: .blocks,
updated: { value in
Task {
let setChatPinnedUseCase = PinnedChatsContainer.shared.setChatPinnedUseCase()
await setChatPinnedUseCase(
id: chat.id,
pinned: value
)
}
}
)
} else {
fatalError()
}
case let .pinnedChat(chat):
return ItemListSwitchItem(
presentationData: presentationData,
title: chat.title,
value: chat.enabled,
enabled: true,
sectionId: section,
style: .blocks,
updated: chat.setEnabled
)
case let .enableAppleSpeech2Text(text, value):
return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, enabled: true, sectionId: section, style: .blocks, updated: { value in
updateNicegramSettings {
Expand All @@ -678,7 +672,7 @@ private enum NicegramSettingsControllerEntry: ItemListNodeEntry {

// MARK: Entries list

private func nicegramSettingsControllerEntries(presentationData: PresentationData, experimentalSettings: ExperimentalUISettings, showCalls: Bool, pinnedChats: [PinnedChat], sharingSettings: SharingSettings?, context: AccountContext) -> [NicegramSettingsControllerEntry] {
private func nicegramSettingsControllerEntries(presentationData: PresentationData, experimentalSettings: ExperimentalUISettings, showCalls: Bool, pinnedChats: [NicegramSettingsControllerEntry.PinnedChat], sharingSettings: SharingSettings?, context: AccountContext) -> [NicegramSettingsControllerEntry] {
let nicegramSettings = getNicegramSettings()

var entries: [NicegramSettingsControllerEntry] = []
Expand Down Expand Up @@ -715,14 +709,10 @@ private func nicegramSettingsControllerEntries(presentationData: PresentationDat
l("NiceFeatures.Folders.TgFolders.Notice")
))

let pinnedChatsEntries = pinnedChats.enumerated().map { index, chat in
NicegramSettingsControllerEntry.pinnedChat(Int32(index), chat)
}

if !pinnedChatsEntries.isEmpty {
if !pinnedChats.isEmpty {
entries.append(.pinnedChatsHeader)
pinnedChatsEntries.forEach {
entries.append($0)
pinnedChats.forEach {
entries.append(.pinnedChat($0))
}
}

Expand Down Expand Up @@ -882,15 +872,57 @@ public func nicegramSettingsController(context: AccountContext, accountsContexts
ApplicationSpecificSharedDataKeys.experimentalUISettings,
])

let pinnedChatsSignal: Signal<[PinnedChat], NoError>
if #available(iOS 13.0, *) {
pinnedChatsSignal = PinnedChatsContainer.shared.getPinnedChatsUseCase()
.publisher()
.toSignal()
.skipError()
} else {
pinnedChatsSignal = .single([])
}
let pinnedChatsSignal = PinnedChatsContainer.shared.getPinnedChatsUseCase()
.publisher()
.combineLatestThreadSafe(
PumpAdsModule.shared.getConfigUseCase().publisher(),
PumpAdsModule.shared.getSettingsUseCase().publisher()
)
.map { pinnedChats, pumpConfig, pumpSettings in
var entries = [NicegramSettingsControllerEntry.PinnedChat]()

if pumpConfig != nil {
entries.append(
NicegramSettingsControllerEntry.PinnedChat(
index: (entries.last?.index ?? 0) + 1,
title: PumpAdsUtils.chatName(),
enabled: pumpSettings.enabled,
setEnabled: { value in
Task {
let updateSettingsUseCase = PumpAdsModule.shared.updateSettingsUseCase()
await updateSettingsUseCase.setEnabled(value)
}
}
)
)
}

entries.append(
contentsOf: pinnedChats.map { chat in
NicegramSettingsControllerEntry.PinnedChat(
title: chat.name,
enabled: chat.isPinned,
setEnabled: { value in
Task {
let setChatPinnedUseCase = PinnedChatsContainer.shared.setChatPinnedUseCase()
await setChatPinnedUseCase(
id: chat.id,
pinned: value
)
}
}
)
}
)

for i in entries.startIndex..<entries.endIndex {
entries[i].index = Int32(i + 1)
}

return entries
}
.toSignal()
.skipError()

let sharingSettingsSignal: Signal<SharingSettings?, NoError>
if #available(iOS 13.0, *) {
Expand Down Expand Up @@ -973,3 +1005,21 @@ private func showRestartRequiredAlert(

arguments.presentController(controller, nil)
}

@propertyWrapper
private struct IgnoreEquatable<Value>: Equatable {
var value: Value

init(wrappedValue: Value) {
self.value = wrappedValue
}

var wrappedValue: Value {
get { value }
set { value = newValue }
}

static func == (lhs: IgnoreEquatable<Value>, rhs: IgnoreEquatable<Value>) -> Bool {
true
}
}
8 changes: 4 additions & 4 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
"location" : "git@bitbucket.org:mobyrix/nicegram-assistant-ios.git",
"state" : {
"branch" : "master",
"revision" : "c9ec26612692ab48e92e3742f6cd47b4fdef5815"
"revision" : "fb3416e277158089eecf69858d17b5d76fbd39e1"
}
},
{
Expand All @@ -123,7 +123,7 @@
"location" : "git@bitbucket.org:mobyrix/nicegram-wallet-ios.git",
"state" : {
"branch" : "master",
"revision" : "8120ced5b8a2f7cadeb0644e3d705ec701445ee0"
"revision" : "b6e8ac84e5aab0958e341d00c4564f1ad8c23277"
}
},
{
Expand Down Expand Up @@ -356,8 +356,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/trustwallet/wallet-core.git",
"state" : {
"revision" : "23ae9525ed3bd28a010d6cdd78e39955b1b2cdef",
"version" : "4.2.3"
"revision" : "b4bed73be374877bc5e0153f77369b6606a12950",
"version" : "4.2.6"
}
},
{
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/ar.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "إخفاء";
"ChatContextMenu.Unhide" = "إظهار";
"HiddenChatsTooltip" = "اضغط مع الاستمرار على هذا الزر لإظهار الدردشات السرية المخفية";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "مشاركة معلومات البوتات";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/de.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Verbergen";
"ChatContextMenu.Unhide" = "Einblenden";
"HiddenChatsTooltip" = "Halten Sie diese Taste gedrückt, um versteckte geheime Chats anzuzeigen";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Teilen Sie Bot-Informationen";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/es.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Esconder";
"ChatContextMenu.Unhide" = "Mostrar";
"HiddenChatsTooltip" = "Mantenga presionado este botón para revelar chats secretos ocultos";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Compartir información de bots";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/fr.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Masquer";
"ChatContextMenu.Unhide" = "Révéler";
"HiddenChatsTooltip" = "Appuyez sur ce bouton et maintenez-le enfoncé pour révéler les discussions secrètes cachées";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Partager les informations des bots";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/it.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Nascondi";
"ChatContextMenu.Unhide" = "Rivelare";
"HiddenChatsTooltip" = "Premi e tieni premuto questo pulsante per rivelare le chat segrete nascoste";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Condividi informazioni sui bot";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/ko.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "숨기기";
"ChatContextMenu.Unhide" = "숨김 해제";
"HiddenChatsTooltip" = "이 버튼을 길게 누르면 숨겨진 비밀 채팅이 표시됩니다";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "봇 정보 공유하기";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/pl.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Ukryj";
"ChatContextMenu.Unhide" = "Odkryj";
"HiddenChatsTooltip" = "Naciśnij i przytrzymaj ten przycisk, aby wyświetlić ukryte tajne czaty";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Udostępnij informacje o botach";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/pt.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Esconder";
"ChatContextMenu.Unhide" = "Revelar";
"HiddenChatsTooltip" = "Pressione e segure este botão para revelar chats secretos ocultos";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Partilhar informação de bots";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/ru.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Скрыть";
"ChatContextMenu.Unhide" = "Показать";
"HiddenChatsTooltip" = "Нажмите и удерживайте эту кнопку, чтобы открыть скрытые чаты";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Поделиться информацией о ботах";
Expand Down
1 change: 1 addition & 0 deletions Telegram/Telegram-iOS/tr.lproj/NiceLocalizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "Gizle";
"ChatContextMenu.Unhide" = "Göster";
"HiddenChatsTooltip" = "Gizli gizli sohbetleri ortaya çıkarmak için bu düğmeye basın ve basılı tutun";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "Bot bilgilerini paylaş";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@
/*Hidden Chats*/
"ChatContextMenu.Hide" = "隐藏";
"ChatContextMenu.Unhide" = "取消隐藏";
"HiddenChatsTooltip" = "按住此按钮可显示隐藏的秘密聊天";

/*Data Sharing*/
"NicegramSettings.ShareBotsToggle" = "分享机器人信息";
Expand Down
Loading

0 comments on commit bd24a95

Please sign in to comment.