Skip to content

Commit

Permalink
fix merge
Browse files Browse the repository at this point in the history
  • Loading branch information
langleyd committed Mar 17, 2022
1 parent 4e1e9af commit 0251a01
Show file tree
Hide file tree
Showing 17 changed files with 391 additions and 36 deletions.
8 changes: 4 additions & 4 deletions Podfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ use_frameworks!
# - `{ :specHash => {sdk spec hash}` to depend on specific pod options (:git => …, :podspec => …) for MatrixSDK repo. Used by Fastfile during CI
#
# Warning: our internal tooling depends on the name of this variable name, so be sure not to change it
$matrixSDKVersion = '= 0.22.6'
# $matrixSDKVersion = :local
# $matrixSDKVersion = { :branch => 'develop'}
# $matrixSDKVersion = '= 0.22.6'
$matrixSDKVersion = :local
#$matrixSDKVersion = { :branch => 'develop'}
# $matrixSDKVersion = { :specHash => { git: 'https://git.io/fork123', branch: 'fix' } }

########################################
Expand Down Expand Up @@ -154,4 +154,4 @@ post_install do |installer|
config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['$(inherited)', '-Xcc', '-Wno-nullability-completeness']
end
end
end
end
9 changes: 5 additions & 4 deletions Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ DEPENDENCIES:
- KeychainAccess (~> 4.2.2)
- KTCenterFlowLayout (~> 1.3.1)
- libPhoneNumber-iOS (~> 0.9.13)
- MatrixSDK (= 0.22.6)
- MatrixSDK/JingleCallStack (= 0.22.6)
- MatrixSDK (from `../matrix-ios-sdk/MatrixSDK.podspec`)
- MatrixSDK/JingleCallStack (from `../matrix-ios-sdk/MatrixSDK.podspec`)
- OLMKit
- PostHog (~> 1.4.4)
- ReadMoreTextView (~> 3.0.1)
Expand Down Expand Up @@ -156,7 +156,6 @@ SPEC REPOS:
- libPhoneNumber-iOS
- LoggerAPI
- Logging
- MatrixSDK
- OLMKit
- PostHog
- ReadMoreTextView
Expand All @@ -177,6 +176,8 @@ EXTERNAL SOURCES:
AnalyticsEvents:
:branch: release/swift
:git: https://github.com/matrix-org/matrix-analytics-events.git
MatrixSDK:
:path: "../matrix-ios-sdk/MatrixSDK.podspec"

CHECKOUT OPTIONS:
AnalyticsEvents:
Expand Down Expand Up @@ -225,6 +226,6 @@ SPEC CHECKSUMS:
zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c
ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb

PODFILE CHECKSUM: 16aaf5e59ec902619fbfd799939f044728a92ab7
PODFILE CHECKSUM: add4568acff884a72cf19933027bbc5507725185

COCOAPODS: 1.11.2
1 change: 1 addition & 0 deletions Riot/Modules/Settings/SettingsViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -2478,6 +2478,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N
else if (row == LABS_ENABLE_AUTO_REPORT_DECRYPTION_ERRORS)
{
cell = [self buildAutoReportDecryptionErrorsCellForTableView:tableView atIndexPath:indexPath];
}
else if (row == LABS_USE_ONLY_LATEST_USER_AVATAR_AND_NAME_INDEX)
{
MXKTableViewCellWithLabelAndSwitch *labelAndSwitchCell = [self getLabelAndSwitchCell:tableView forIndexPath:indexPath];
Expand Down
25 changes: 22 additions & 3 deletions Riot/Modules/SideMenu/SideMenuCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ final class SideMenuCoordinator: NSObject, SideMenuCoordinatorType {
private var createSpaceCoordinator: SpaceCreationCoordinator?
private var createRoomCoordinator: CreateRoomCoordinator?
private var spaceSettingsCoordinator: Coordinator?
private var chatCoordinator: TemplateRoomsCoordinator?

// MARK: Public

Expand Down Expand Up @@ -238,10 +239,28 @@ final class SideMenuCoordinator: NSObject, SideMenuCoordinatorType {
}

private func showInviteFriends(from sourceView: UIView?) {
let myUserId = self.parameters.userSessionsService.mainUserSession?.userId ?? ""
// let myUserId = self.parameters.userSessionsService.mainUserSession?.userId ?? ""

let inviteFriendsPresenter = InviteFriendsPresenter()
inviteFriendsPresenter.present(for: myUserId, from: self.sideMenuViewController, sourceView: sourceView, animated: true)
// let inviteFriendsPresenter = InviteFriendsPresenter()
// inviteFriendsPresenter.present(for: myUserId, from: self.sideMenuViewController, sourceView: sourceView, animated: true)

guard let session = self.parameters.userSessionsService.mainUserSession?.matrixSession else {
return
}
let coordinator = TemplateRoomsCoordinator(parameters: TemplateRoomsCoordinatorParameters(session: session))
coordinator.callback = { [weak self] in
guard let self = self else { return }

coordinator.toPresentable().dismiss(animated: true) {
self.chatCoordinator = nil
}
}

let presentable = coordinator.toPresentable()
presentable.presentationController?.delegate = self
toPresentable().present(presentable, animated: true, completion: nil)
coordinator.start()
self.chatCoordinator = coordinator
}

private func showMenu(forSpaceWithId spaceId: String, from sourceView: UIView?) {
Expand Down
2 changes: 1 addition & 1 deletion RiotSwiftUI/Modules/Common/Mock/MockAppScreens.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import Foundation

/// The static list of mocked screens in RiotSwiftUI
@available(iOS 14.0, *)
@available(iOS 15.0, *)
enum MockAppScreens {
static let appScreens: [MockScreenState.Type] = [
MockOnboardingCongratulationsScreenState.self,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ final class TemplateRoomsCoordinator: Coordinator, Presentable {


func start() {
if #available(iOS 14.0, *) {
if #available(iOS 15.0, *) {
MXLog.debug("[TemplateRoomsCoordinator] did start.")
let rootCoordinator = self.createTemplateRoomListCoordinator()
rootCoordinator.start()
Expand All @@ -71,7 +71,7 @@ final class TemplateRoomsCoordinator: Coordinator, Presentable {

// MARK: - Private

@available(iOS 14.0, *)
@available(iOS 15.0, *)
private func createTemplateRoomListCoordinator() -> TemplateRoomListCoordinator {
let coordinator: TemplateRoomListCoordinator = TemplateRoomListCoordinator(parameters: TemplateRoomListCoordinatorParameters(session: parameters.session))

Expand All @@ -88,13 +88,13 @@ final class TemplateRoomsCoordinator: Coordinator, Presentable {
return coordinator
}

@available(iOS 14.0, *)
@available(iOS 15.0, *)
private func createTemplateRoomChatCoordinator(room: MXRoom) -> TemplateRoomChatCoordinator {
let coordinator: TemplateRoomChatCoordinator = TemplateRoomChatCoordinator(parameters: TemplateRoomChatCoordinatorParameters(room: room))
return coordinator
}

@available(iOS 14.0, *)
@available(iOS 15.0, *)
func showTemplateRoomChat(roomId: String) {
guard let room = parameters.session.room(withRoomId: roomId) else {
MXLog.error("[TemplateRoomsCoordinator] Failed to find room by selected Id.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ final class TemplateRoomChatCoordinator: Coordinator, Presentable {

// MARK: - Setup

@available(iOS 14.0, *)
@available(iOS 15.0, *)
init(parameters: TemplateRoomChatCoordinatorParameters) {
self.parameters = parameters
let viewModel = TemplateRoomChatViewModel(templateRoomChatService: TemplateRoomChatService(room: parameters.room))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import SwiftUI

/// Using an enum for the screen allows you define the different state cases with
/// the relevant associated data for each case.
@available(iOS 14.0, *)
@available(iOS 15.0, *)
enum MockTemplateRoomChatScreenState: MockScreenState, CaseIterable {
// A case for each state you want to represent
// with specific, minimal associated data that will allow you
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import Foundation
import Combine
import MatrixSDK

@available(iOS 14.0, *)
class TemplateRoomChatService: TemplateRoomChatServiceProtocol {
Expand Down Expand Up @@ -96,20 +97,21 @@ class TemplateRoomChatService: TemplateRoomChatServiceProtocol {
return events
.filter({ event in
event.type == kMXEventTypeStringRoomMessage
&& event.content[kMXMessageTypeKey] as? String == kMXMessageTypeText
&& (event.content[kMXMessageTypeKey] as? String == kMXMessageTypeText
|| event.content[kMXMessageTypeKey] as? String == kMXMessageTypeImage)

// TODO: New to our SwiftUI Template? Why not implement another message type like image?

})
.compactMap({ event -> TemplateRoomChatMessage? in
guard let eventId = event.eventId,
let body = event.content[kMXMessageBodyKey] as? String,
let sender = senderForMessage(event: event)
else { return nil }

let messageContent = messageContentForEvent(event: event)
return TemplateRoomChatMessage(
id: eventId,
content: .text(TemplateRoomChatMessageTextContent(body: body)),
content: messageContent,
sender: sender,
timestamp: Date(timeIntervalSince1970: TimeInterval(event.originServerTs / 1000))
)
Expand All @@ -124,4 +126,25 @@ class TemplateRoomChatService: TemplateRoomChatServiceProtocol {
let avatarUrl = eventFormatter.senderAvatarUrl(for: event, with: roomState)
return TemplateRoomChatMember(id: sender, avatarUrl: avatarUrl, displayName: displayName)
}

private func messageContentForEvent(event: MXEvent) -> TemplateRoomChatMessageContent {
switch event.content[kMXMessageTypeKey] as? String {
case kMXMessageTypeText:
let body = event.content[kMXMessageBodyKey] as? String ?? ""
return .text(TemplateRoomChatMessageTextContent(body: body))
case kMXMessageTypeImage:
let url: URL
// room.mxSession.mediaManager.
if let contentURL = event.content["url"] as? String,
let info = event.content["info"] as? [String: Any],
let localImagePath = MXMediaManager.cachePath(forMatrixContentURI: contentURL, andType:info["mimetype"] as? String, inFolder: event.roomId) {
url = URL(fileURLWithPath: localImagePath)
} else{
url = URL(string: "https://cahilldental.ie/wp-content/uploads/2016/10/orionthemes-placeholder-image.png")!
}
return .image(TemplateRoomChatMessageImageContent(url: url))
default: break
}
fatalError("unsupported event type content")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ class MockTemplateRoomChatService: TemplateRoomChatServiceProtocol {

static let amadine = TemplateRoomChatMember(id: "@amadine:matrix.org", avatarUrl: "!aaabaa:matrix.org", displayName: "Amadine")
static let mathew = TemplateRoomChatMember(id: "@mathew:matrix.org", avatarUrl: "!bbabb:matrix.org", displayName: "Mathew")
static let partyImageUrl = URL(string: "https://img.evbuc.com/https%3A%2F%2Fcdn.evbuc.com%2Fimages%2F184375039%2F474927372937%2F1%2Foriginal.20211111-155142?w=800&auto=format%2Ccompress&q=75&sharp=10&rect=0%2C236%2C4724%2C2362&s=18c17c71af6df1e5e46d630fac923834")!
static let mockMessages = [
TemplateRoomChatMessage(id: "!0:matrix.org", content: .text(TemplateRoomChatMessageTextContent(body: "Shall I put it live?")) , sender: amadine, timestamp: Date(timeIntervalSinceNow: 60 * -3)),
TemplateRoomChatMessage(id: "!1:matrix.org", content: .text(TemplateRoomChatMessageTextContent(body: "Yea go for it! ...and then let's head to the pub")), sender: mathew, timestamp: Date(timeIntervalSinceNow: 60)),
TemplateRoomChatMessage(id: "!2:matrix.org", content: .text(TemplateRoomChatMessageTextContent(body: "Deal.")), sender: amadine, timestamp: Date(timeIntervalSinceNow: 60 * -2)),
TemplateRoomChatMessage(id: "!3:matrix.org", content: .text(TemplateRoomChatMessageTextContent(body: "Ok, Done. 🍻")), sender: amadine, timestamp: Date(timeIntervalSinceNow: 60 * -1)),
TemplateRoomChatMessage(id: "!3:matrix.org", content: .image(TemplateRoomChatMessageImageContent(url: partyImageUrl)), sender: mathew, timestamp: Date(timeIntervalSinceNow: 60 * -1)),
]
var roomInitializationStatus: CurrentValueSubject<TemplateRoomChatRoomInitializationStatus, Never>
var chatMessagesSubject: CurrentValueSubject<[TemplateRoomChatMessage], Never>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import UIKit

/// An image sent as a message.
struct TemplateRoomChatMessageImageContent: Equatable {
var image: UIImage
var url: URL
}

/// The text content of a message sent by a user.
Expand Down
Loading

0 comments on commit 0251a01

Please sign in to comment.