mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2025-03-14 22:22:41 +00:00
Merge branch 'main' into tip-system
This commit is contained in:
commit
ce6ca8764f
11 changed files with 31 additions and 28 deletions
|
@ -1254,7 +1254,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 730;
|
||||
DEVELOPMENT_TEAM = "$(DEVELOPMENT_TEAM)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
|
@ -1267,7 +1267,7 @@
|
|||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
MARKETING_VERSION = 1.10.43;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesAppWidgetsExtension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
|
@ -1290,7 +1290,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
CURRENT_PROJECT_VERSION = 730;
|
||||
DEVELOPMENT_TEAM = "$(DEVELOPMENT_TEAM)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
|
@ -1303,7 +1303,7 @@
|
|||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0;
|
||||
MARKETING_VERSION = 1.10.43;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_ID_PREFIX).IceCubesApp.IceCubesAppWidgetsExtension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
|
@ -1391,7 +1391,7 @@
|
|||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
|
@ -1457,7 +1457,7 @@
|
|||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
||||
|
|
|
@ -5,7 +5,7 @@ struct AppShortcuts: AppShortcutsProvider {
|
|||
AppShortcut(
|
||||
intent: PostIntent(),
|
||||
phrases: [
|
||||
"Post \(\.$content) in \(.applicationName)",
|
||||
"Post in \(.applicationName)",
|
||||
"Post a status on Mastodon with \(.applicationName)",
|
||||
],
|
||||
shortTitle: "Compose a post",
|
||||
|
@ -23,7 +23,6 @@ struct AppShortcuts: AppShortcutsProvider {
|
|||
AppShortcut(
|
||||
intent: TabIntent(),
|
||||
phrases: [
|
||||
"Open \(\.$tab) in \(.applicationName)",
|
||||
"Open \(.applicationName)",
|
||||
],
|
||||
shortTitle: "Open Ice Cubes",
|
||||
|
@ -32,8 +31,10 @@ struct AppShortcuts: AppShortcutsProvider {
|
|||
AppShortcut(
|
||||
intent: PostImageIntent(),
|
||||
phrases: [
|
||||
"Post images \(\.$images) in \(.applicationName)",
|
||||
"Send photos \(\.$images) with \(.applicationName)",
|
||||
"Post images in \(.applicationName)",
|
||||
"Post an image in \(.applicationName)",
|
||||
"Send photos with \(.applicationName)",
|
||||
"Send a photo with \(.applicationName)",
|
||||
],
|
||||
shortTitle: "Post a status with an image",
|
||||
systemImageName: "photo"
|
||||
|
|
|
@ -2,7 +2,7 @@ import AppIntents
|
|||
import WidgetKit
|
||||
|
||||
struct AccountWidgetConfiguration: WidgetConfigurationIntent {
|
||||
static let title: LocalizedStringResource = "Configuration"
|
||||
static let title: LocalizedStringResource = "Account Widget Configuration"
|
||||
static let description = IntentDescription("Choose the account for this widget")
|
||||
|
||||
@Parameter(title: "Account")
|
||||
|
|
|
@ -2,7 +2,7 @@ import AppIntents
|
|||
import WidgetKit
|
||||
|
||||
struct HashtagPostsWidgetConfiguration: WidgetConfigurationIntent {
|
||||
static let title: LocalizedStringResource = "Configuration"
|
||||
static let title: LocalizedStringResource = "Hashtag Widget Configuration"
|
||||
static let description = IntentDescription("Choose the account and hashtag for this widget")
|
||||
|
||||
@Parameter(title: "Account")
|
||||
|
|
|
@ -2,7 +2,7 @@ import AppIntents
|
|||
import WidgetKit
|
||||
|
||||
struct LatestPostsWidgetConfiguration: WidgetConfigurationIntent {
|
||||
static let title: LocalizedStringResource = "Configuration"
|
||||
static let title: LocalizedStringResource = "Timeline Widget Configuration"
|
||||
static let description = IntentDescription("Choose the account and timeline for this widget")
|
||||
|
||||
@Parameter(title: "Account")
|
||||
|
|
|
@ -2,7 +2,7 @@ import AppIntents
|
|||
import WidgetKit
|
||||
|
||||
struct MentionsWidgetConfiguration: WidgetConfigurationIntent {
|
||||
static let title: LocalizedStringResource = "Configuration"
|
||||
static let title: LocalizedStringResource = "Mentions Widget Configuration"
|
||||
static let description = IntentDescription("Choose the account for this widget")
|
||||
|
||||
@Parameter(title: "Account")
|
||||
|
|
|
@ -8,7 +8,7 @@ public struct NotificationsPolicy: Codable, Sendable {
|
|||
public let summary: Summary
|
||||
|
||||
public struct Summary: Codable, Sendable {
|
||||
public let pendingRequestsCount: String
|
||||
public let pendingNotificationsCount: String
|
||||
public let pendingRequestsCount: Int
|
||||
public let pendingNotificationsCount: Int
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,12 +10,12 @@ struct NotificationsHeaderFilteredView: View {
|
|||
let filteredNotifications: NotificationsPolicy.Summary
|
||||
|
||||
var body: some View {
|
||||
if let count = Int(filteredNotifications.pendingNotificationsCount), count > 0 {
|
||||
if filteredNotifications.pendingNotificationsCount > 0 {
|
||||
HStack {
|
||||
Label("notifications.content-filter.requests.title", systemImage: "archivebox")
|
||||
.foregroundStyle(.secondary)
|
||||
Spacer()
|
||||
Text(filteredNotifications.pendingNotificationsCount)
|
||||
Text("\(filteredNotifications.pendingNotificationsCount)")
|
||||
.font(.footnote)
|
||||
.fontWeight(.semibold)
|
||||
.monospacedDigit()
|
||||
|
|
|
@ -212,6 +212,7 @@ struct StatusRowActionsView: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.sheet(isPresented: $showTextForSelection) {
|
||||
let content = viewModel.status.reblog?.content.asSafeMarkdownAttributedString ?? viewModel.status.content.asSafeMarkdownAttributedString
|
||||
SelectTextView(content: content)
|
||||
|
|
|
@ -27,7 +27,7 @@ struct StatusRowHeaderView: View {
|
|||
}
|
||||
}
|
||||
.accessibilityElement(children: .combine)
|
||||
.accessibilityLabel(Text("\(viewModel.finalStatus.account.safeDisplayName)") + Text(", ") + Text(viewModel.finalStatus.createdAt.relativeFormatted))
|
||||
.accessibilityLabel(Text("\(viewModel.finalStatus.account.safeDisplayName), \(viewModel.finalStatus.createdAt.relativeFormatted)"))
|
||||
.accessibilityAction {
|
||||
viewModel.navigateToAccountDetail(account: viewModel.finalStatus.account)
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ struct StatusRowHeaderView: View {
|
|||
Group {
|
||||
EmojiTextApp(viewModel.finalStatus.account.cachedDisplayName,
|
||||
emojis: viewModel.finalStatus.account.emojis)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.scaledSubheadline)
|
||||
.foregroundColor(theme.labelColor)
|
||||
.emojiText.size(Font.scaledSubheadlineFont.emojiSize)
|
||||
|
@ -59,6 +60,7 @@ struct StatusRowHeaderView: View {
|
|||
|
||||
if !redactionReasons.contains(.placeholder) {
|
||||
accountBadgeView
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.footnote)
|
||||
}
|
||||
}
|
||||
|
@ -69,6 +71,7 @@ struct StatusRowHeaderView: View {
|
|||
theme.avatarPosition == .top
|
||||
{
|
||||
Text("@\(theme.displayFullUsername ? viewModel.finalStatus.account.acct : viewModel.finalStatus.account.username)")
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.scaledFootnote)
|
||||
.foregroundStyle(.secondary)
|
||||
.lineLimit(1)
|
||||
|
@ -81,21 +84,18 @@ struct StatusRowHeaderView: View {
|
|||
}
|
||||
}
|
||||
|
||||
private var accountBadgeView: Text {
|
||||
private var accountBadgeView: Text? {
|
||||
if (viewModel.status.reblogAsAsStatus ?? viewModel.status).account.bot {
|
||||
return Text(Image(systemName: "poweroutlet.type.b.fill")) + Text(" ")
|
||||
return Text("\(Image(systemName: "poweroutlet.type.b.fill")) ")
|
||||
} else if (viewModel.status.reblogAsAsStatus ?? viewModel.status).account.locked {
|
||||
return Text(Image(systemName: "lock.fill")) + Text(" ")
|
||||
return Text("\(Image(systemName: "lock.fill")) ")
|
||||
}
|
||||
return Text("")
|
||||
return nil
|
||||
}
|
||||
|
||||
private var dateView: some View {
|
||||
Group {
|
||||
Text(Image(systemName: viewModel.finalStatus.visibility.iconName)) +
|
||||
Text(" ⸱ ") +
|
||||
Text(viewModel.finalStatus.createdAt.relativeFormatted)
|
||||
}
|
||||
Text("\(Image(systemName: viewModel.finalStatus.visibility.iconName)) ⸱ \(viewModel.finalStatus.createdAt.relativeFormatted)")
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(.scaledFootnote)
|
||||
.foregroundStyle(.secondary)
|
||||
.lineLimit(1)
|
||||
|
|
|
@ -19,6 +19,7 @@ struct StatusRowTextView: View {
|
|||
emojis: viewModel.finalStatus.emojis,
|
||||
language: viewModel.finalStatus.language,
|
||||
lineLimit: viewModel.lineLimit)
|
||||
.fixedSize(horizontal: false, vertical: true)
|
||||
.font(isFocused ? .scaledBodyFocused : .scaledBody)
|
||||
.lineSpacing(CGFloat(theme.lineSpacing))
|
||||
.foregroundColor(viewModel.textDisabled ? .gray : theme.labelColor)
|
||||
|
|
Loading…
Reference in a new issue