remove iOS 16 support (#3443)

* remove iOS 16 support

* remove iOS 16 support

* test updates

* added more delay

* revert

* adding waiting time on the CI
This commit is contained in:
Mauro
2024-10-24 17:21:28 +02:00
committed by GitHub
parent 926924912f
commit 7d373c07a3
51 changed files with 91 additions and 91 deletions
+2 -4
View File
@@ -7458,9 +7458,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
IPHONEOS_DEPLOYMENT_TARGET = 17.6;
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
MACOSX_DEPLOYMENT_TARGET = 13.3;
MARKETING_VERSION = 1.9.4;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -7535,9 +7534,8 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
IPHONEOS_DEPLOYMENT_TARGET = 17.6;
KEYCHAIN_ACCESS_GROUP_IDENTIFIER = "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)";
MACOSX_DEPLOYMENT_TARGET = 13.3;
MARKETING_VERSION = 1.9.4;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -575,7 +575,7 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
// The user will log out, clear any existing notifications and unregister from receving new ones
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
UIApplication.shared.applicationIconBadgeNumber = 0
UNUserNotificationCenter.current().setBadgeCount(0)
unregisterForRemoteNotifications()
@@ -452,15 +452,15 @@ private struct NavigationSplitCoordinatorView: View {
}
// Handle `horizontalSizeClass` changes breaking the navigation bar
// https://github.com/element-hq/element-x-ios/issues/617
.onChange(of: horizontalSizeClass) { value in
.onChange(of: horizontalSizeClass) { _, newValue in
guard scenePhase != .background else {
return
}
isInSplitMode = value == .regular
isInSplitMode = newValue == .regular
}
.onChange(of: scenePhase) { value in
guard value == .active else {
.onChange(of: scenePhase) { _, newValue in
guard newValue == .active else {
return
}
+1 -1
View File
@@ -30,7 +30,7 @@ struct PillView: View {
.padding(.trailing, 6)
.padding(.vertical, 1)
.background { Capsule().foregroundColor(backgroundColor) }
.onChange(of: context.viewState.displayText) { _ in
.onChange(of: context.viewState.displayText) {
didChangeText()
}
}
+1 -1
View File
@@ -171,7 +171,7 @@ struct IsSearchingModifier: ViewModifier {
func body(content: Content) -> some View {
content
.onChange(of: isSearchingEnv) { isSearching = $0 }
.onChange(of: isSearchingEnv) { isSearching = $1 }
}
}
@@ -29,7 +29,7 @@ struct AppLockScreen: View {
pinInputField
.padding(.bottom, 16)
.offset(x: pinInputFieldOffset)
.onChange(of: context.viewState.numberOfPINAttempts) { newValue in
.onChange(of: context.viewState.numberOfPINAttempts) { _, newValue in
guard newValue > 0 else { return } // Reset without animation in Previews.
accessibilitySubtitleFocus = true
Task { await animatePINFailure() }
@@ -20,7 +20,7 @@ struct PINTextField: View {
.textFieldStyle(PINTextFieldStyle(pinCode: pinCode, isSecure: isSecure, maxLength: maxLength, size: size))
.keyboardType(.numberPad)
.accessibilityIdentifier(A11yIdentifiers.appLockSetupPINScreen.textField)
.onChange(of: pinCode) { newValue in
.onChange(of: pinCode) { _, newValue in
let sanitized = sanitize(newValue)
if sanitized != newValue {
MXLog.warning("PIN code input sanitized.")
@@ -29,7 +29,7 @@ struct AppLockSetupSettingsScreen: View {
Section {
ListRow(label: .plain(title: context.viewState.enableBiometricsTitle),
kind: .toggle($context.enableBiometrics))
.onChange(of: context.enableBiometrics) { _ in
.onChange(of: context.enableBiometrics) {
context.send(viewAction: .enableBiometricsChanged)
}
}
@@ -74,7 +74,9 @@ struct LoginScreen: View {
.textContentType(.username)
.autocapitalization(.none)
.submitLabel(.next)
.onChange(of: isUsernameFocused, perform: usernameFocusChanged)
.onChange(of: isUsernameFocused) { _, newValue in
usernameFocusChanged(isFocussed: newValue)
}
.onSubmit { isPasswordFocused = true }
.padding(.bottom, 20)
@@ -135,19 +137,19 @@ struct LoginScreen_Previews: PreviewProvider, TestablePreview {
LoginScreen(context: viewModel.context)
}
.previewDisplayName("matrix.org")
.snapshotPreferences(delay: 0.1)
.snapshotPreferences(delay: 1)
NavigationStack {
LoginScreen(context: credentialsViewModel.context)
}
.previewDisplayName("Credentials Entered")
.snapshotPreferences(delay: 0.1)
.snapshotPreferences(delay: 1)
NavigationStack {
LoginScreen(context: unconfiguredViewModel.context)
}
.previewDisplayName("Unsupported")
.snapshotPreferences(delay: 0.1)
.snapshotPreferences(delay: 1)
}
static func makeViewModel(homeserverAddress: String = "matrix.org", withCredentials: Bool = false) -> LoginScreenViewModel {
@@ -59,7 +59,7 @@ struct ServerSelectionScreen: View {
.keyboardType(.URL)
.autocapitalization(.none)
.disableAutocorrection(true)
.onChange(of: context.homeserverAddress) { _ in context.send(viewAction: .clearFooterError) }
.onChange(of: context.homeserverAddress) { context.send(viewAction: .clearFooterError) }
.submitLabel(.done)
.onSubmit(submit)
@@ -107,7 +107,7 @@ struct ServerSelection_Previews: PreviewProvider, TestablePreview {
NavigationStack {
ServerSelectionScreen(context: invalidViewModel.context)
}
.snapshotPreferences(delay: 0.25)
.snapshotPreferences(delay: 1)
}
static func makeViewModel(for homeserverAddress: String) -> ServerSelectionScreenViewModel {
@@ -30,7 +30,7 @@ struct BugReportScreen: View {
.navigationBarTitleDisplayMode(.inline)
.toolbar { toolbar }
.interactiveDismissDisabled()
.onChange(of: selectedScreenshot) { newItem in
.onChange(of: selectedScreenshot) { _, newItem in
Task {
guard let data = try? await newItem?.loadTransferable(type: Data.self),
let image = UIImage(data: data)
@@ -65,8 +65,8 @@ struct PollFormScreen: View {
}
.focused($focus, equals: .option(index: index))
.accessibilityIdentifier(A11yIdentifiers.pollFormScreen.optionID(index))
.onChange(of: context.options[index].text) { optionText in
guard let lastCharacter = optionText.last, lastCharacter.isNewline else {
.onChange(of: context.options[index].text) { _, newOptionText in
guard let lastCharacter = newOptionText.last, lastCharacter.isNewline else {
return
}
@@ -55,7 +55,7 @@ struct EmojiPickerScreen: View {
}
.presentationDetents([.medium, .large])
.presentationDragIndicator(isSearching ? .hidden : .visible)
.onChange(of: searchString) { _ in
.onChange(of: searchString) {
context.send(viewAction: .search(searchString: searchString))
}
}
@@ -49,7 +49,7 @@ struct GlobalSearchScreen: View {
selectedRoom = context.viewState.rooms.first
searchFieldFocus = true
}
.onChange(of: context.viewState.rooms) { _ in
.onChange(of: context.viewState.rooms) {
selectedRoom = context.viewState.rooms.first
}
.onTapGesture {
@@ -66,10 +66,10 @@ struct HomeScreenContent: View {
.onReceive(scrollViewAdapter.isScrolling) { _ in
updateVisibleRange()
}
.onChange(of: context.searchQuery) { _ in
.onChange(of: context.searchQuery) {
updateVisibleRange()
}
.onChange(of: context.viewState.visibleRooms) { _ in
.onChange(of: context.viewState.visibleRooms) {
updateVisibleRange()
// We have been seeing a lot of issues around the room list not updating properly after
@@ -110,7 +110,7 @@ struct InviteUsersScreen: View {
.frame(width: cellWidth)
}
}
.onChange(of: context.viewState.scrollToLastID) { lastAddedID in
.onChange(of: context.viewState.scrollToLastID) { _, lastAddedID in
guard let id = lastAddedID else { return }
withElementAnimation(.easeInOut) {
scrollView.scrollTo(id)
@@ -107,7 +107,7 @@ struct JoinRoomScreen: View {
VStack(alignment: .leading, spacing: 12) {
HStack(spacing: 0) {
TextField("", text: $context.knockMessage, axis: .vertical)
.onChange(of: context.knockMessage) { newValue in
.onChange(of: context.knockMessage) { _, newValue in
context.knockMessage = String(newValue.prefix(1000))
}
.lineLimit(4, reservesSpace: true)
@@ -108,7 +108,7 @@ struct IdentityConfirmationScreen_Previews: PreviewProvider, TestablePreview {
NavigationStack {
IdentityConfirmationScreen(context: viewModel.context)
}
.snapshotPreferences(delay: 0.25)
.snapshotPreferences(delay: 1)
}
private static var viewModel: IdentityConfirmationScreenViewModel {
@@ -71,8 +71,8 @@ struct RoomChangeRolesScreen: View {
.frame(width: cellWidth)
}
}
.onChange(of: context.viewState.lastPromotedMember) { member in
guard let member else { return }
.onChange(of: context.viewState.lastPromotedMember) { _, newValue in
guard let member = newValue else { return }
withElementAnimation(.easeInOut) {
scrollView.scrollTo(member.id)
}
@@ -185,7 +185,7 @@ struct RoomDetailsScreen: View {
ListRow(label: .default(title: L10n.commonFavourite, icon: \.favourite),
kind: .toggle($context.isFavourite))
.accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.favourite)
.onChange(of: context.isFavourite) { newValue in
.onChange(of: context.isFavourite) { _, newValue in
context.send(viewAction: .toggleFavourite(isFavourite: newValue))
}
@@ -35,7 +35,7 @@ struct RoomNotificationSettingsScreen: View {
kind: .toggle($context.allowCustomSetting))
.accessibilityIdentifier(A11yIdentifiers.roomNotificationSettingsScreen.allowCustomSetting)
.disabled(context.viewState.notificationSettingsState.isLoading)
.onChange(of: context.allowCustomSetting) { _ in
.onChange(of: context.allowCustomSetting) {
context.send(viewAction: .changedAllowCustomSettings)
}
} footer: {
@@ -47,8 +47,8 @@ struct RoomPollsHistoryScreen: View {
}
.pickerStyle(.segmented)
.readableFrame(maxWidth: 475)
.onChange(of: context.filter) { value in
context.send(viewAction: .filter(value))
.onChange(of: context.filter) { _, newValue in
context.send(viewAction: .filter(newValue))
}
}
@@ -180,18 +180,18 @@ struct ComposerToolbar: View {
guard !composerFocused else { return }
composerFocused = true
}
.onChange(of: context.composerFocused) { newValue in
.onChange(of: context.composerFocused) { _, newValue in
guard composerFocused != newValue else { return }
composerFocused = newValue
}
.onChange(of: composerFocused) { newValue in
.onChange(of: composerFocused) { _, newValue in
context.composerFocused = newValue
}
.onChange(of: context.plainComposerText) { _ in
.onChange(of: context.plainComposerText) {
context.send(viewAction: .plainComposerTextChanged)
}
.onChange(of: context.composerFormattingEnabled) { _ in
.onChange(of: context.composerFormattingEnabled) {
context.send(viewAction: .didToggleFormattingOptions)
}
.onAppear {
@@ -48,8 +48,8 @@ struct VoiceMessagePreviewComposer: View {
showCursor: playerState.showProgressIndicator,
onSeek: onSeek)
}
.onChange(of: isDragging) { isDragging in
onScrubbing(isDragging)
.onChange(of: isDragging) { _, newValue in
onScrubbing(newValue)
}
.padding(.vertical, 4.0)
.padding(.horizontal, 6.0)
@@ -32,8 +32,8 @@ struct SwipeRightAction<Label: View>: ViewModifier {
.offset(x: xOffset, y: 0.0)
.animation(.interactiveSpring().speed(0.5), value: xOffset)
.timelineGesture(gesture)
.onChange(of: dragGestureActive) { value in
if value == true {
.onChange(of: dragGestureActive) { _, newValue in
if newValue == true {
if shouldStartAction() {
feedbackGenerator.prepare()
canStartAction = true
@@ -19,7 +19,7 @@ struct SecureBackupRecoveryKeyScreen: View {
ScrollViewReader { reader in
mainContent
.padding(16)
.onChange(of: focused) { newValue in
.onChange(of: focused) { _, newValue in
guard newValue == true else { return }
reader.scrollTo(textFieldIdentifier)
}
@@ -24,7 +24,7 @@ struct AnalyticsSettingsScreen: View {
Section {
ListRow(label: .plain(title: L10n.screenAnalyticsSettingsShareData),
kind: .toggle($context.enableAnalytics))
.onChange(of: context.enableAnalytics) { _ in
.onChange(of: context.enableAnalytics) {
context.send(viewAction: .toggleAnalytics)
}
} footer: {
@@ -86,7 +86,7 @@ struct NotificationSettingsScreen: View {
Section {
ListRow(label: .plain(title: L10n.screenNotificationSettingsEnableNotifications),
kind: .toggle($context.enableNotifications))
.onChange(of: context.enableNotifications) { _ in
.onChange(of: context.enableNotifications) {
context.send(viewAction: .changedEnableNotifications)
}
}
@@ -128,7 +128,7 @@ struct NotificationSettingsScreen: View {
kind: .toggle($context.roomMentionsEnabled))
.disabled(context.viewState.settings?.roomMentionsEnabled == nil)
.allowsHitTesting(!context.viewState.applyingChange)
.onChange(of: context.roomMentionsEnabled) { _ in
.onChange(of: context.roomMentionsEnabled) {
context.send(viewAction: .roomMentionChanged)
}
} header: {
@@ -143,7 +143,7 @@ struct NotificationSettingsScreen: View {
kind: .toggle($context.callsEnabled))
.disabled(context.viewState.settings?.callsEnabled == nil)
.allowsHitTesting(!context.viewState.applyingChange)
.onChange(of: context.callsEnabled) { _ in
.onChange(of: context.callsEnabled) {
context.send(viewAction: .callsChanged)
}
} header: {
@@ -158,7 +158,7 @@ struct NotificationSettingsScreen: View {
kind: .toggle($context.invitationsEnabled))
.disabled(context.viewState.settings?.invitationsEnabled == nil)
.allowsHitTesting(!context.viewState.applyingChange)
.onChange(of: context.invitationsEnabled) { _ in
.onChange(of: context.invitationsEnabled) {
context.send(viewAction: .invitationsChanged)
}
} header: {
@@ -377,11 +377,12 @@ struct TimelineItemBubbledStylerView_Previews: PreviewProvider, TestablePreview
.previewDisplayName("Replies")
threads
.previewDisplayName("Thread decorator")
.snapshotPreferences(delay: 1)
encryptionAuthenticity
.previewDisplayName("Encryption Indicators")
pinned
.previewDisplayName("Pinned messages")
.snapshotPreferences(delay: 2.0)
.snapshotPreferences(delay: 1)
}
static var mockTimeline: some View {
@@ -25,7 +25,7 @@ struct TimelineStyler<Content: View>: View {
var body: some View {
mainContent
.onChange(of: timelineItem.properties.deliveryStatus) { newStatus in
.onChange(of: timelineItem.properties.deliveryStatus) { _, newStatus in
if case .sendingFailed = newStatus {
guard task == nil else {
return
@@ -43,7 +43,7 @@ struct ReactionsSummaryView: View {
scrollView.scrollTo(selectedReactionKey)
}
}
.onChange(of: selectedReactionKey) { _ in
.onChange(of: selectedReactionKey) {
scrollView.scrollTo(selectedReactionKey)
}
}
@@ -19,7 +19,7 @@ struct TypingIndicatorView: View {
.truncationMode(.middle)
.padding(.horizontal, 4)
.animation(.elementDefault, value: typingMembers.members)
.onChange(of: typingMembers.members) { newValue in
.onChange(of: typingMembers.members) { _, newValue in
if !newValue.isEmpty {
didShowTextOnce = true
}
@@ -51,8 +51,8 @@ struct VoiceMessageRoomPlaybackView: View {
}
.padding(.leading, 2)
.padding(.trailing, 8)
.onChange(of: isDragging) { isDragging in
onScrubbing(isDragging)
.onChange(of: isDragging) { _, newValue in
onScrubbing(newValue)
}
}
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:517d2adbb60ff9e40d7b0f530b05f3810f302180fed9259673afe57f2598d669
size 174777
oid sha256:27cf16e147a82ad2126e43a511d07ced65468b0c9ec18f86e30a1546ef9a0864
size 174751
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9a505f51ed4ce883a44c63856329f468b285480cf38d1f7e9f9dddd39beacd1
size 286018
oid sha256:17403a44b5f71ef51b12a2392d3c8eed2b30cd4ddeb25188c29e738f8ed3c3fc
size 285676
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ededd3cbc04f946fd5374d1f43ec0d9fe6a1537aae193a7dffbf9dc5ce2c2ff1
size 284462
oid sha256:2f576e2c44ecda928a8afdbd29bf9c79631517d9c42d6b8a16b1dcdbac1885a9
size 284180
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c7524b103a29f907484c183458dca038ccfe5d4396328fd774ce15d321eea13
size 107183
oid sha256:c4563bc0de73f8053c8c6a8ab08aea50ee6a5328aa46a5c627f37dfb1bdd6f5b
size 107113
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:685784026c5fbf1676f2e41105303c150a8520c0588081960dd6c679cb16f86f
size 176916
oid sha256:7a1ff79835b6de47a22fdbdca05a56a257aa5341da6d0515e02324570c70e05d
size 176994
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aaea7ab92cc40488cccadca3b281008eb829e49f99b9f55c4dad405afbf5d6ae
size 287689
oid sha256:fc726f43094e192a9f367c0ece419d581de5d43bab53275eaa73ae25969e65ab
size 287326
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:842fd304e64840dc39ad6231c8a52981de84d23d212229051c4b7cc2649fde28
size 285736
oid sha256:982eb9dd6ed5fe3c4c13811ae463b80f1b571fec18953d98d641d367cd705db0
size 285493
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9c7524b103a29f907484c183458dca038ccfe5d4396328fd774ce15d321eea13
size 107183
oid sha256:c4563bc0de73f8053c8c6a8ab08aea50ee6a5328aa46a5c627f37dfb1bdd6f5b
size 107113
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ad54f532f3ec4333e004b763956ea2ffec9aecfa0c3113b423f6a9f85ac87c7
size 127545
oid sha256:1af078d4671249c492161013d753905feed81303ce9e172e17e3432c3acfc372
size 127533
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:799c4d6ea7c9ae76270f0a4e5bdce5f1c8330b59fd0375cfccaa547fe10d9682
size 190665
oid sha256:1a39ebd070935b96d697dc0c70244962a8d55c6c9ce3e958808c35f8ed009506
size 190461
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:900a641ca6e9d716f2ac6ea0d5fcb0bba0587315250fac01bc63e92242071d33
size 188360
oid sha256:e4278c55045120935c02fe570409295a0eb0b984a103e5fd09d314bb2f4e09a6
size 188620
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9bf2e4421574f1fdfe25bebb6eafd22bae7e67dd032a4b3bd785dd48cd28b477
size 65845
oid sha256:516a4ad7cb46f4ef1ab316e6bea424abe8c5ef4767a2e4d838bccc80bb8db9be
size 65830
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8dd04554290d3299b0ce0a95d2304bce2d90a7c130f48a64efc6fc4b3b15727c
size 128846
oid sha256:4bc439fffcd4b212a103493a07f7f0f336c69bd641b86bb84768cc0595a82bd2
size 128840
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b8c11bc7b586274511cbaf4c3a54f5a3fe2ee51bf345d1feadcad327a207df02
size 188412
oid sha256:1eb05117714fb7853917a32dba87565ed0ad83b3097ca01703581dc0ec8e7b7a
size 188275
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1c4444924cad6f07ea6b85d2ad3f7a2c1f60d6e4d03fc2ea0880df496b157132
size 186021
oid sha256:a421129a41149ca0c3be3981ef169ddcbce8b0c57a0b94ea43a3fea2dc4202f8
size 186287
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9bf2e4421574f1fdfe25bebb6eafd22bae7e67dd032a4b3bd785dd48cd28b477
size 65845
oid sha256:516a4ad7cb46f4ef1ab316e6bea424abe8c5ef4767a2e4d838bccc80bb8db9be
size 65830
@@ -24,7 +24,7 @@ struct TemplateScreen: View {
}
.compoundList()
.navigationTitle(context.viewState.title)
.onChange(of: context.composerText) { _ in
.onChange(of: context.composerText) {
context.send(viewAction: .textChanged)
}
}
+1 -2
View File
@@ -10,8 +10,7 @@ options:
groupSortPosition: bottom
createIntermediateGroups: true
deploymentTarget:
iOS: '16.4'
macOS: '13.3'
iOS: '17.6'
groupOrdering:
- order:
- ElementX