Skip to content

Commit

Permalink
Merge branch 'main' into iOS-18
Browse files Browse the repository at this point in the history
  • Loading branch information
Dimillian committed Aug 14, 2024
2 parents 5fd18d4 + 9d11814 commit 1b4506c
Show file tree
Hide file tree
Showing 12 changed files with 96 additions and 54 deletions.
28 changes: 14 additions & 14 deletions IceCubesApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1193,7 +1193,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesNotifications";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1228,7 +1228,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesNotifications";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1267,7 +1267,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesAppWidgetsExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1303,7 +1303,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesAppWidgetsExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1336,7 +1336,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesShareExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1370,7 +1370,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesShareExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1516,10 +1516,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIconAlternate0 AppIconAlternate6 AppIconAlternate7 AppIconAlternate8 AppIconAlternate10 AppIconAlternate11 AppIconAlternate12 AppIconAlternate13 AppIconAlternate14 AppIconAlternate15 AppIconAlternate16 AppIconAlternate17 AppIconAlternate19 AppIconAlternate18 AppIconAlternate20 AppIconAlternate21 AppIconAlternate22 AppIconAlternate23 AppIconAlternate24 AppIconAlternate25 AppIconAlternate26 AppIconAlternate27 AppIconAlternate28 AppIconAlternate29 AppIconAlternate30 AppIconAlternate31 AppIconAlternate32 AppIconAlternate33 AppIconAlternate34 AppIconAlternate35 AppIconAlternate36 AppIconAlternate37 AppIconAlternate38 AppIconAlternate39 AppIconAlternate40 AppIconAlternate42 AppIconAlternate2 AppIconAlternate41 AppIconAlternate45 AppIconAlternate44 AppIconAlternate1 AppIconAlternate4 AppIconAlternate3 AppIconAlternate5 AppIconAlternate46 AppIconAlternate9 AppIconAlternate49 AppIconAlternate48 AppIconAlternate47 AppIconAlternate43";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR = all;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO;
CODE_SIGN_ENTITLEMENTS = IceCubesApp/App/IceCubesApp.entitlements;
CODE_SIGN_IDENTITY = "-";
Expand Down Expand Up @@ -1554,7 +1554,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp";
PRODUCT_NAME = "Ice Cubes";
SDKROOT = auto;
Expand Down Expand Up @@ -1583,10 +1583,10 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIconAlternate0 AppIconAlternate6 AppIconAlternate7 AppIconAlternate8 AppIconAlternate10 AppIconAlternate11 AppIconAlternate12 AppIconAlternate13 AppIconAlternate14 AppIconAlternate15 AppIconAlternate16 AppIconAlternate17 AppIconAlternate19 AppIconAlternate18 AppIconAlternate20 AppIconAlternate21 AppIconAlternate22 AppIconAlternate23 AppIconAlternate24 AppIconAlternate25 AppIconAlternate26 AppIconAlternate27 AppIconAlternate28 AppIconAlternate29 AppIconAlternate30 AppIconAlternate31 AppIconAlternate32 AppIconAlternate33 AppIconAlternate34 AppIconAlternate35 AppIconAlternate36 AppIconAlternate37 AppIconAlternate38 AppIconAlternate39 AppIconAlternate40 AppIconAlternate42 AppIconAlternate2 AppIconAlternate41 AppIconAlternate45 AppIconAlternate44 AppIconAlternate1 AppIconAlternate4 AppIconAlternate3 AppIconAlternate5 AppIconAlternate46 AppIconAlternate9 AppIconAlternate49 AppIconAlternate48 AppIconAlternate47 AppIconAlternate43";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR = all;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO;
CODE_SIGN_ENTITLEMENTS = "IceCubesApp/App/IceCubesApp-release.entitlements";
CODE_SIGN_IDENTITY = "-";
Expand Down Expand Up @@ -1621,7 +1621,7 @@
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp";
PRODUCT_NAME = "Ice Cubes";
SDKROOT = auto;
Expand Down Expand Up @@ -1667,7 +1667,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesActionExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down Expand Up @@ -1702,7 +1702,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.10.47;
MARKETING_VERSION = 1.10.48;
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesActionExtension";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@
"version" : "0.3.0"
}
},
{
"identity" : "swiftsdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/TelemetryDeck/SwiftSDK",
"state" : {
"revision" : "13a26cf125b70d695913eb9bea9f9b9c29da5790",
"version" : "2.3.0"
}
},
{
"identity" : "swiftsoup",
"kind" : "remoteSourceControl",
Expand Down
2 changes: 2 additions & 0 deletions IceCubesApp/App/Main/IceCubesApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
try? AVAudioSession.sharedInstance().setCategory(.ambient, options: .mixWithOthers)
try? AVAudioSession.sharedInstance().setActive(true)
PushNotificationsService.shared.setAccounts(accounts: AppAccountsManager.shared.pushAccounts)
Telemetry.setup()
Telemetry.signal("app.launched")
return true
}

Expand Down
3 changes: 2 additions & 1 deletion IceCubesApp/App/Tabs/Settings/AccountSettingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,12 @@ struct AccountSettingsView: View {
await sub.deleteSubscription()
}
appAccountsManager.delete(account: appAccount)
Telemetry.signal("account.removed")
dismiss()
}
}
} label: {
Text("account.action.logout")
Label("account.action.logout", systemImage: "trash")
.frame(maxWidth: .infinity)
}
}
Expand Down
5 changes: 2 additions & 3 deletions IceCubesApp/App/Tabs/Settings/AddAccountsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,7 @@ struct AddAccountView: View {
.scrollDismissesKeyboard(.immediately)
#endif
.toolbar {
if !appAccountsManager.availableAccounts.isEmpty {
CancelToolbarItem()
}
CancelToolbarItem()
}
.onAppear {
isInstanceURLFieldFocused = true
Expand Down Expand Up @@ -293,6 +291,7 @@ struct AddAccountView: View {
let oauthToken = try await client.continueOauthFlow(url: url)
let client = Client(server: client.server, oauthToken: oauthToken)
let account: Account = try await client.get(endpoint: Accounts.verifyCredentials)
Telemetry.signal("account.added")
appAccountsManager.add(account: AppAccount(server: client.server,
accountName: "\(account.acct)@\(client.server)",
oauthToken: oauthToken))
Expand Down
13 changes: 8 additions & 5 deletions IceCubesApp/App/Tabs/Settings/SettingsTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,10 @@ struct SettingsTabs: View {
}
}
}
addAccountButton
if !appAccountsManager.availableAccounts.isEmpty {
editAccountButton
}
addAccountButton
}
#if !os(visionOS)
.listRowBackground(theme.primaryBackgroundColor)
Expand All @@ -147,6 +147,7 @@ struct SettingsTabs: View {
await timelineCache.clearCache(for: client.id)
await sub.deleteSubscription()
appAccountsManager.delete(account: account)
Telemetry.signal("account.removed")
}
}

Expand Down Expand Up @@ -307,23 +308,25 @@ struct SettingsTabs: View {
Button {
addAccountSheetPresented.toggle()
} label: {
Text("settings.account.add")
Label("settings.account.add", systemImage: "person.badge.plus")
}
.sheet(isPresented: $addAccountSheetPresented) {
AddAccountView()
}
}

private var editAccountButton: some View {
Button(role: isEditingAccount ? .none : .destructive) {
Button(role: .destructive) {
withAnimation {
isEditingAccount.toggle()
}
} label: {
if isEditingAccount {
Text("action.done")
Label("action.done", systemImage: "person.badge.minus")
.foregroundStyle(.red)
} else {
Text("account.action.logout")
Label("account.action.logout", systemImage: "person.badge.minus")
.foregroundStyle(.red)
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion IceCubesApp/App/Tabs/Timeline/TimelineTab.swift
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,11 @@ struct TimelineTab: View {
Button {
withAnimation {
if let index {
pinnedFilters.remove(at: index)
let timeline = pinnedFilters.remove(at: index)
Telemetry.signal("timeline.pin.removed", parameters: ["timeline" : timeline.rawValue])
} else {
pinnedFilters.append(timeline)
Telemetry.signal("timeline.pin.added", parameters: ["timeline" : timeline.rawValue])
}
}
} label: {
Expand Down
58 changes: 29 additions & 29 deletions IceCubesApp/Resources/Localization/Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -35814,44 +35814,44 @@
"localizations" : {
"be" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Налады ..."
"state" : "translated",
"value" : "Налады..."
}
},
"ca" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Configuració ..."
"state" : "translated",
"value" : "Configuració..."
}
},
"de" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Einstellungen ..."
"state" : "translated",
"value" : "Einstellungen..."
}
},
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Settings ..."
"value" : "Settings..."
}
},
"en-GB" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Settings ..."
"state" : "translated",
"value" : "Settings..."
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ajustes ..."
"value" : "Ajustes..."
}
},
"eu" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ezarpenak ..."
"value" : "Ezarpenak..."
}
},
"fr" : {
Expand All @@ -35862,26 +35862,26 @@
},
"it" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Impostazioni ..."
"state" : "translated",
"value" : "Impostazioni..."
}
},
"ja" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "設定 ..."
"state" : "translated",
"value" : "設定..."
}
},
"ko" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "앱 설정 ..."
"state" : "translated",
"value" : "앱 설정..."
}
},
"nb" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Innstillinger ..."
"state" : "translated",
"value" : "Innstillinger..."
}
},
"nl" : {
Expand All @@ -35892,38 +35892,38 @@
},
"pl" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Ustawienia ..."
"state" : "translated",
"value" : "Ustawienia..."
}
},
"pt-BR" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Configurações ..."
"state" : "translated",
"value" : "Configurações..."
}
},
"tr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Ayarlar ..."
"value" : "Ayarlar..."
}
},
"uk" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "Налаштування ..."
"state" : "translated",
"value" : "Налаштування..."
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "设置 ..."
"value" : "设置..."
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "needs_review",
"value" : "設定 ..."
"state" : "translated",
"value" : "設定..."
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions PRIVACY.MD
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
IceCubesApp does not collect or process any personal information from its users. The app is used to connect to third-party Mastodon servers that may or may not collect personal information and are not covered by this privacy policy. Each third-party Mastodon server comes equipped with its own privacy policy that can be viewed through the app or through that server's website.

When you use the OpenAI feature in the composer, please be aware that your input will be sent to the OpenAI server in order to generate a response. Please refer to the [OpenAI Privacy Policy](https://openai.com/policies/privacy-policy) if you want to know more. Nothing is sent to OpenAI if you don't use this feature. You can also completely disable this button in the app settings.

Ice Cubes use TelemetryDeck to collect anonymized usage data. This helps us understand how our users are using our app and how we can improve it. TelemetryDeck does not collect any personally identifiable information. You can read more about TelemetryDeck’s [privacy policy](https://telemetrydeck.com/privacy)
2 changes: 2 additions & 0 deletions Packages/Env/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ let package = Package(
.package(name: "Models", path: "../Models"),
.package(name: "Network", path: "../Network"),
.package(url: "https://github.com/evgenyneu/keychain-swift", branch: "master"),
.package(url: "https://github.com/TelemetryDeck/SwiftSDK", from: "2.3.0")
],
targets: [
.target(
Expand All @@ -28,6 +29,7 @@ let package = Package(
.product(name: "Models", package: "Models"),
.product(name: "Network", package: "Network"),
.product(name: "KeychainSwift", package: "keychain-swift"),
.product(name: "TelemetryDeck", package: "SwiftSDK")
],
swiftSettings: [
.swiftLanguageMode(.v6),
Expand Down
Loading

0 comments on commit 1b4506c

Please sign in to comment.