Removing the about section title + Fix notification tap crash (#778)

* Removing the about section title

updated tests

* fixed a bug that made the app crash when tapping

a notification in an unhandled state

* missing screenshots
This commit is contained in:
Mauro 2023-04-06 18:40:27 +02:00 committed by GitHub
parent cabb8e5442
commit f02a5c7ac0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 74 additions and 44 deletions

View File

@ -476,7 +476,7 @@ extension AppCoordinator: NotificationManagerDelegate {
return return
} }
userSessionFlowCoordinator?.tryDisplayingRoomScreen(roomId: content.threadIdentifier) userSessionFlowCoordinator?.handleAppRoute(.room(roomID: content.threadIdentifier))
} }
func handleInlineReply(_ service: NotificationManagerProtocol, content: UNNotificationContent, replyText: String) async { func handleInlineReply(_ service: NotificationManagerProtocol, content: UNNotificationContent, replyText: String) async {

View File

@ -0,0 +1,21 @@
//
// Copyright 2023 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import Foundation
enum AppRoute {
case room(roomID: String)
}

View File

@ -33,9 +33,7 @@ struct RoomDetailsScreen: View {
aboutSection aboutSection
} }
if context.viewState.isEncrypted { securitySection
securitySection
}
if let recipient = context.viewState.dmRecipient { if let recipient = context.viewState.dmRecipient {
ignoreUserSection(user: recipient) ignoreUserSection(user: recipient)
@ -134,31 +132,31 @@ struct RoomDetailsScreen: View {
.foregroundColor(.element.primaryContent) .foregroundColor(.element.primaryContent)
.accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.people) .accessibilityIdentifier(A11yIdentifiers.roomDetailsScreen.people)
.disabled(context.viewState.isLoadingMembers) .disabled(context.viewState.isLoadingMembers)
} header: {
Text(L10n.commonAbout)
.formSectionHeader()
} }
.formSectionStyle() .formSectionStyle()
} }
@ViewBuilder
private var securitySection: some View { private var securitySection: some View {
Section { if context.viewState.isEncrypted {
Label { Section {
VStack(alignment: .leading, spacing: 2) { Label {
Text(L10n.screenRoomDetailsEncryptionEnabledTitle) VStack(alignment: .leading, spacing: 2) {
Text(L10n.screenRoomDetailsEncryptionEnabledSubtitle) Text(L10n.screenRoomDetailsEncryptionEnabledTitle)
.foregroundColor(.element.secondaryContent) Text(L10n.screenRoomDetailsEncryptionEnabledSubtitle)
.font(.element.footnote) .foregroundColor(.element.secondaryContent)
.font(.element.footnote)
}
} icon: {
Image(systemName: "lock.shield")
} }
} icon: { .labelStyle(FormRowLabelStyle(alignment: .top))
Image(systemName: "lock.shield") } header: {
Text(L10n.commonSecurity)
.formSectionHeader()
} }
.labelStyle(FormRowLabelStyle(alignment: .top)) .formSectionStyle()
} header: {
Text(L10n.commonSecurity)
.formSectionHeader()
} }
.formSectionStyle()
} }
private var leaveRoomSection: some View { private var leaveRoomSection: some View {

View File

@ -62,8 +62,17 @@ class UserSessionFlowCoordinator: CoordinatorProtocol {
stateMachine.isDisplayingRoomScreen(withRoomId: roomId) stateMachine.isDisplayingRoomScreen(withRoomId: roomId)
} }
func tryDisplayingRoomScreen(roomId: String) { func handleAppRoute(_ appRoute: AppRoute) {
stateMachine.processEvent(.selectRoom(roomId: roomId)) switch stateMachine.state {
case .feedbackScreen, .sessionVerificationScreen, .settingsScreen, .startChatScreen:
navigationSplitCoordinator.setSheetCoordinator(nil)
case .roomList, .initial:
break
}
switch appRoute {
case .room(let roomID):
stateMachine.processEvent(.selectRoom(roomId: roomID))
}
} }
// MARK: - Private // MARK: - Private

1
changelog.d/777.change Normal file
View File

@ -0,0 +1 @@
Removed the about title copy from the people section.

1
changelog.d/779.bugfix Normal file
View File

@ -0,0 +1 @@
Fixed a bug that crashed the app when tapping on push notifications while the app was in some specific unhandled screens.