mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Cleanup from comments
This commit is contained in:
parent
3dfdb0fa83
commit
b792af6594
9 changed files with 28 additions and 14 deletions
|
@ -29,6 +29,9 @@ extension EnvironmentValues {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
A theme modifier for setting the theme for this view all it's decendants in the hierarchy.
|
||||
*/
|
||||
@available(iOS 14.0, *)
|
||||
extension View {
|
||||
func theme(_ theme: Theme) -> some View {
|
||||
|
|
|
@ -35,6 +35,10 @@ enum ThemeIdentifier: String, RawRepresentable {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
A Convenience extension for getting the theme given a specific Id.
|
||||
E.g. in SwiftUI preview to set a theme via `ThemeIdentifier.dark.theme`
|
||||
*/
|
||||
extension ThemeIdentifier {
|
||||
var theme: Theme {
|
||||
ThemeService.shared().theme(withThemeId: self.rawValue)
|
||||
|
|
|
@ -40,14 +40,22 @@ class AvatarService: AvatarServiceType {
|
|||
static let avatarDownloadSize = AvatarSize.xxLarge.size
|
||||
}
|
||||
|
||||
let avatarGenerator: AvatarGenerator
|
||||
let mediaManager: MXMediaManager
|
||||
private let avatarGenerator: AvatarGenerator
|
||||
private let mediaManager: MXMediaManager
|
||||
|
||||
init(avatarGenerator: AvatarGenerator, mediaManager: MXMediaManager) {
|
||||
self.avatarGenerator = avatarGenerator
|
||||
self.mediaManager = mediaManager
|
||||
}
|
||||
|
||||
/**
|
||||
Given an avatar inpute this function returns a publisher of UIImage.
|
||||
If possible to retrieve the actualy image it will from network or cache.
|
||||
While waiting ont he netowrk or if one can't be retrieved it will return the generated acatar.
|
||||
|
||||
- Parameter inputData: data required to fetch the avatar or generate the image
|
||||
- Returns: A publisher of UIImage? that doesn't error(always possible to generate the image)
|
||||
*/
|
||||
@available(iOS 14.0, *)
|
||||
func avatarImage(inputData: AvatarInputType) -> AnyPublisher<UIImage?, Never> {
|
||||
|
||||
|
|
|
@ -23,11 +23,11 @@ import SwiftUI
|
|||
@available(iOS 14.0, *)
|
||||
struct VectorContentModifier: ViewModifier {
|
||||
|
||||
@StateObject var themeObservor = ThemeObserver.shared
|
||||
@StateObject private var themeObserver = ThemeObserver.shared
|
||||
|
||||
func body(content: Content) -> some View {
|
||||
content
|
||||
.theme(themeObservor.theme)
|
||||
.theme(themeObserver.theme)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -44,10 +44,11 @@ final class RoomNotificationSettingsCoordinator: RoomNotificationSettingsCoordin
|
|||
let avatarData: AvatarInputOption?
|
||||
let showAvatar = presentedModally
|
||||
if #available(iOS 14.0.0, *) {
|
||||
avatarData = showAvatar ? .swiftUI(AvatarInput(mxContentUri: room.summary.avatar,
|
||||
itemId: room.roomId,
|
||||
displayName: room.summary.displayname
|
||||
)) : nil
|
||||
avatarData = showAvatar ? .swiftUI(AvatarInput(
|
||||
mxContentUri: room.summary.avatar,
|
||||
itemId: room.roomId,
|
||||
displayName: room.summary.displayname
|
||||
)) : nil
|
||||
} else {
|
||||
avatarData = showAvatar ? .uiKit(RoomAvatarViewData(
|
||||
roomId: room.roomId,
|
||||
|
|
|
@ -36,7 +36,7 @@ final class RoomNotificationSettingsViewModel: RoomNotificationSettingsViewModel
|
|||
@available(iOS 14.0, *)
|
||||
@Published var viewState: RoomNotificationSettingsViewState!
|
||||
@available(iOS 14.0, *)
|
||||
lazy var bag = Set<AnyCancellable>()
|
||||
lazy var cancelables = Set<AnyCancellable>()
|
||||
|
||||
// MARK: Public
|
||||
|
||||
|
@ -72,13 +72,13 @@ final class RoomNotificationSettingsViewModel: RoomNotificationSettingsViewModel
|
|||
let avatarData = avatarData,
|
||||
case let AvatarInputOption.swiftUI(data) = avatarData {
|
||||
avatarService.avatarImage(inputData: data)
|
||||
.sink{ image in
|
||||
.sink { image in
|
||||
var newState = self.state
|
||||
newState.avatar = image
|
||||
newState.displayName = data.displayName
|
||||
self.state = newState
|
||||
}
|
||||
.store(in: &bag)
|
||||
.store(in: &cancelables)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
*/
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
protocol RoomNotificationSettingsViewModelViewDelegate: AnyObject {
|
||||
func roomNotificationSettingsViewModel(_ viewModel: RoomNotificationSettingsViewModelType, didUpdateViewState viewState: RoomNotificationSettingsViewStateType)
|
||||
|
|
|
@ -29,7 +29,6 @@ struct FormSectionHeaderView: View {
|
|||
.padding(.leading)
|
||||
.padding(.bottom, 8)
|
||||
.font(Font(theme.fonts.footnote))
|
||||
.autocapitalization(.allCharacters)
|
||||
.textCase(.uppercase)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ struct RoomNotificationSettingsView: View {
|
|||
@ViewBuilder
|
||||
private var leftButton: some View {
|
||||
if presentedModally {
|
||||
SwiftUI.Button(VectorL10n.cancel) {
|
||||
Button(VectorL10n.cancel) {
|
||||
viewModel.process(viewAction: .cancel)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue