Some Post-demo Cleanups (#200)

* Remove redundant string

* Use placeholder avatar on home screen

* Add initial home screen ui test

* Fix settings screen PR remarks

* Remove UIKit alert from home screen sign out

* Remove UIKit alert from soft logout clear all data

* Add reference screenshots for home screen UI tests

* Formatting fixes

* Add clearing room method to client proxy

* Clear room proxies on screen dismiss

* Fix retain cycle in room view model

* Do not go into authentication state immediately

* Define sizes for user and room avatars on different screens

* Use defined avatar sizes everywhere

* Disable image disk caching

* Rename rounded corner shape

* Fix text color of placeholder avatars

* Fix PR reviews on formatted body text

* Fix merge conflict

* Remove shouldShowSenderDetails everywhere and just use it from inGroupState

* Remove redundant linter disablings

* Fix PR remarks

* Rename media provider size parameter
This commit is contained in:
ismailgulek
2022-09-23 12:21:41 +03:00
committed by GitHub
parent b9f8fb0b6f
commit bdc83dac27
54 changed files with 307 additions and 204 deletions
+83
View File
@@ -0,0 +1,83 @@
//
// Copyright 2022 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
import UIKit
enum AvatarSize {
case user(on: UserAvatarSizeOnScreen)
case room(on: RoomAvatarSizeOnScreen)
// custom
case custom(CGFloat)
/// Value in UIKit points
var value: CGFloat {
switch self {
case .user(let screen):
return screen.value
case .room(let screen):
return screen.value
case .custom(let val):
return val
}
}
/// Value in pixels by using the scale of the main screen
var scaledValue: CGFloat {
value * UIScreen.main.scale
}
}
enum UserAvatarSizeOnScreen {
case timeline
case home
case settings
var value: CGFloat {
switch self {
case .timeline:
return 32
case .home:
return 32
case .settings:
return 60
}
}
}
enum RoomAvatarSizeOnScreen {
case timeline
case home
var value: CGFloat {
switch self {
case .timeline:
return 32
case .home:
return 44
}
}
}
extension AvatarSize {
var size: CGSize {
CGSize(width: value, height: value)
}
var scaledSize: CGSize {
CGSize(width: scaledValue, height: scaledValue)
}
}
@@ -0,0 +1,26 @@
//
// Copyright 2022 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
import Kingfisher
extension ImageCache {
static var onlyInMemory: ImageCache {
let result = ImageCache.default
result.diskStorage.config.sizeLimit = 1
return result
}
}
@@ -16,7 +16,7 @@
import SwiftUI
struct RoundedCorner: Shape {
struct RoundedCornerShape: Shape {
let radius: CGFloat
let corners: UIRectCorner
@@ -39,10 +39,10 @@ struct RoundedCorner: Shape {
extension View {
func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View {
clipShape(RoundedCorner(radius: radius, corners: corners))
clipShape(RoundedCornerShape(radius: radius, corners: corners))
}
func cornerRadius(_ radius: CGFloat, inGroupState: TimelineItemInGroupState) -> some View {
clipShape(RoundedCorner(radius: radius, inGroupState: inGroupState))
clipShape(RoundedCornerShape(radius: radius, inGroupState: inGroupState))
}
}