mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-25 02:52:45 +02:00
Merge remote-tracking branch 'origin/yostyle/voice_broadcast_playing' into yostyle/voice_broadcast_playing
This commit is contained in:
@@ -19,6 +19,7 @@ import Foundation
|
||||
struct ComposerViewState: BindableState {
|
||||
var eventSenderDisplayName: String?
|
||||
var sendMode: ComposerSendMode = .send
|
||||
var placeholder: String?
|
||||
}
|
||||
|
||||
extension ComposerViewState {
|
||||
|
||||
@@ -63,4 +63,10 @@ final class ComposerViewModelTests: XCTestCase {
|
||||
context.send(viewAction: .cancel)
|
||||
XCTAssert(result == .cancel)
|
||||
}
|
||||
|
||||
func testPlaceholder() {
|
||||
XCTAssert(context.viewState.placeholder == nil)
|
||||
viewModel.placeholder = "Placeholder Test"
|
||||
XCTAssert(context.viewState.placeholder == "Placeholder Test")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ struct Composer: View {
|
||||
didUpdateText: wysiwygViewModel.didUpdateText
|
||||
)
|
||||
.tintColor(theme.colors.accent)
|
||||
.placeholder(viewModel.viewState.placeholder, color: theme.colors.tertiaryContent)
|
||||
.frame(height: wysiwygViewModel.idealHeight)
|
||||
.padding(.horizontal, horizontalPadding)
|
||||
.onAppear {
|
||||
|
||||
@@ -45,6 +45,15 @@ final class ComposerViewModel: ComposerViewModelType, ComposerViewModelProtocol
|
||||
}
|
||||
}
|
||||
|
||||
var placeholder: String? {
|
||||
get {
|
||||
state.placeholder
|
||||
}
|
||||
set {
|
||||
state.placeholder = newValue
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
override func process(viewAction: ComposerViewAction) {
|
||||
|
||||
@@ -21,4 +21,5 @@ protocol ComposerViewModelProtocol {
|
||||
var callback: ((ComposerViewModelResult) -> Void)? { get set }
|
||||
var sendMode: ComposerSendMode { get set }
|
||||
var eventSenderDisplayName: String? { get set }
|
||||
var placeholder: String? { get set }
|
||||
}
|
||||
|
||||
@@ -84,8 +84,7 @@ final class TimelinePollCoordinator: Coordinator, Presentable, PollAggregatorDel
|
||||
func start() { }
|
||||
|
||||
func toPresentable() -> UIViewController {
|
||||
VectorHostingController(rootView: TimelinePollView(viewModel: viewModel.context),
|
||||
forceZeroSafeAreaInsets: true)
|
||||
VectorHostingController(rootView: TimelinePollView(viewModel: viewModel.context))
|
||||
}
|
||||
|
||||
func canEndPoll() -> Bool {
|
||||
|
||||
@@ -26,13 +26,13 @@ class TimelinePollProvider {
|
||||
|
||||
/// Create or retrieve the poll timeline coordinator for this event and return
|
||||
/// a view to be displayed in the timeline
|
||||
func buildTimelinePollViewForEvent(_ event: MXEvent) -> UIView? {
|
||||
func buildTimelinePollVCForEvent(_ event: MXEvent) -> UIViewController? {
|
||||
guard let session = session, let room = session.room(withRoomId: event.roomId) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
if let coordinator = coordinatorsForEventIdentifiers[event.eventId] {
|
||||
return coordinator.toPresentable().view
|
||||
return coordinator.toPresentable()
|
||||
}
|
||||
|
||||
let parameters = TimelinePollCoordinatorParameters(session: session, room: room, pollStartEvent: event)
|
||||
@@ -42,7 +42,7 @@ class TimelinePollProvider {
|
||||
|
||||
coordinatorsForEventIdentifiers[event.eventId] = coordinator
|
||||
|
||||
return coordinator.toPresentable().view
|
||||
return coordinator.toPresentable()
|
||||
}
|
||||
|
||||
/// Retrieve the poll timeline coordinator for the given event or nil if it hasn't been created yet
|
||||
|
||||
+1
-2
@@ -61,8 +61,7 @@ final class VoiceBroadcastPlaybackCoordinator: Coordinator, Presentable {
|
||||
func start() { }
|
||||
|
||||
func toPresentable() -> UIViewController {
|
||||
VectorHostingController(rootView: VoiceBroadcastPlaybackView(viewModel: viewModel.context),
|
||||
forceZeroSafeAreaInsets: true)
|
||||
VectorHostingController(rootView: VoiceBroadcastPlaybackView(viewModel: viewModel.context))
|
||||
}
|
||||
|
||||
func canEndVoiceBroadcast() -> Bool {
|
||||
|
||||
+3
-3
@@ -26,13 +26,13 @@ class VoiceBroadcastPlaybackProvider {
|
||||
|
||||
/// Create or retrieve the voiceBroadcast timeline coordinator for this event and return
|
||||
/// a view to be displayed in the timeline
|
||||
func buildVoiceBroadcastPlaybackViewForEvent(_ event: MXEvent, senderDisplayName: String?) -> UIView? {
|
||||
func buildVoiceBroadcastPlaybackVCForEvent(_ event: MXEvent, senderDisplayName: String?) -> UIViewController? {
|
||||
guard let session = session, let room = session.room(withRoomId: event.roomId) else {
|
||||
return nil
|
||||
}
|
||||
|
||||
if let coordinator = coordinatorsForEventIdentifiers[event.eventId] {
|
||||
return coordinator.toPresentable().view
|
||||
return coordinator.toPresentable()
|
||||
}
|
||||
|
||||
let dispatchGroup = DispatchGroup()
|
||||
@@ -62,7 +62,7 @@ class VoiceBroadcastPlaybackProvider {
|
||||
|
||||
coordinatorsForEventIdentifiers[event.eventId] = coordinator
|
||||
|
||||
return coordinator.toPresentable().view
|
||||
return coordinator.toPresentable()
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user