Release 2.0.0

This commit is contained in:
Frank Rotermund
2022-11-27 13:18:53 +00:00
parent bf57719009
commit 0dc8ec0982
570 changed files with 20366 additions and 4410 deletions
@@ -26,22 +26,6 @@ struct UserSessionCardView: View {
var onViewDetailsAction: ((String) -> Void)?
var onLearnMoreAction: (() -> Void)?
private var verificationStatusImageName: String {
viewData.isVerified ? Asset.Images.userSessionVerified.name : Asset.Images.userSessionUnverified.name
}
private var verificationStatusText: String {
viewData.isVerified ? VectorL10n.userSessionVerified : VectorL10n.userSessionUnverified
}
private var verificationStatusColor: Color {
viewData.isVerified ? theme.colors.accent : theme.colors.alert
}
private var verificationStatusAdditionalInfoText: String {
viewData.isVerified ? VectorL10n.userSessionVerifiedAdditionalInfo : VectorL10n.userSessionUnverifiedAdditionalInfo
}
private var backgroundShape: RoundedRectangle {
RoundedRectangle(cornerRadius: 8)
}
@@ -52,28 +36,26 @@ struct UserSessionCardView: View {
var body: some View {
VStack(alignment: .center, spacing: 12) {
DeviceAvatarView(viewData: viewData.deviceAvatarViewData)
DeviceAvatarView(viewData: viewData.deviceAvatarViewData, isSelected: false)
.accessibilityHidden(true)
Text(viewData.sessionName)
.font(theme.fonts.headline)
.foregroundColor(theme.colors.primaryContent)
.multilineTextAlignment(.center)
HStack {
Image(verificationStatusImageName)
Text(verificationStatusText)
.font(theme.fonts.subheadline)
.foregroundColor(verificationStatusColor)
.multilineTextAlignment(.center)
}
Label(viewData.verificationStatusText, image: viewData.verificationStatusImageName)
.font(theme.fonts.subheadline)
.foregroundColor(theme.colors[keyPath: viewData.verificationStatusColor])
.multilineTextAlignment(.center)
if viewData.isCurrentSessionDisplayMode {
Text(verificationStatusAdditionalInfoText)
Text(viewData.verificationStatusAdditionalInfoText)
.font(theme.fonts.footnote)
.foregroundColor(theme.colors.secondaryContent)
.multilineTextAlignment(.center)
} else {
InlineTextButton(verificationStatusAdditionalInfoText + " %@", tappableText: VectorL10n.userSessionLearnMore) {
InlineTextButton(viewData.verificationStatusAdditionalInfoText + " %@", tappableText: VectorL10n.userSessionLearnMore) {
onLearnMoreAction?()
}
.font(theme.fonts.footnote)
@@ -83,13 +65,18 @@ struct UserSessionCardView: View {
if showExtraInformations {
VStack(spacing: 2) {
if let lastActivityDateString = viewData.lastActivityDateString, lastActivityDateString.isEmpty == false {
Text(lastActivityDateString)
.font(theme.fonts.footnote)
.foregroundColor(theme.colors.secondaryContent)
.multilineTextAlignment(.center)
HStack {
if let lastActivityIcon = viewData.lastActivityIcon {
Image(lastActivityIcon)
.padding(.leading, 2)
}
if let lastActivityDateString = viewData.lastActivityDateString, lastActivityDateString.isEmpty == false {
Text(lastActivityDateString)
.font(theme.fonts.footnote)
.foregroundColor(theme.colors.secondaryContent)
.multilineTextAlignment(.center)
}
}
if let lastSeenIPInfo = viewData.lastSeenIPInfo, lastSeenIPInfo.isEmpty == false {
Text(lastSeenIPInfo)
.font(theme.fonts.footnote)
@@ -99,7 +86,7 @@ struct UserSessionCardView: View {
}
}
if viewData.isVerified == false {
if viewData.verificationState == .unverified {
Button {
onVerifyAction?(viewData.sessionId)
} label: {
@@ -137,23 +124,23 @@ struct UserSessionCardViewPreview: View {
let viewData: UserSessionCardViewData
init(isCurrent: Bool = false) {
init(isCurrent: Bool = false, verificationState: UserSessionInfo.VerificationState = .unverified) {
let sessionInfo = UserSessionInfo(id: "alice",
name: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: nil,
applicationName: "Element iOS",
applicationVersion: "1.0.0",
applicationURL: nil,
deviceModel: nil,
deviceOS: "iOS 15.5",
lastSeenIPLocation: nil,
clientName: "Element",
clientVersion: "1.0.0",
isActive: true,
isCurrent: isCurrent)
name: "iOS",
deviceType: .mobile,
verificationState: verificationState,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: nil,
applicationName: "Element iOS",
applicationVersion: "1.0.0",
applicationURL: nil,
deviceModel: nil,
deviceOS: "iOS 15.5",
lastSeenIPLocation: nil,
clientName: "Element",
clientVersion: "1.0.0",
isActive: true,
isCurrent: isCurrent)
viewData = UserSessionCardViewData(sessionInfo: sessionInfo)
}
@@ -174,6 +161,13 @@ struct UserSessionCardView_Previews: PreviewProvider {
UserSessionCardViewPreview(isCurrent: true).theme(.dark).preferredColorScheme(.dark)
UserSessionCardViewPreview().theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview().theme(.dark).preferredColorScheme(.dark)
UserSessionCardViewPreview(isCurrent: true, verificationState: .verified)
.theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview(verificationState: .verified)
.theme(.light).preferredColorScheme(.light)
UserSessionCardViewPreview(verificationState: .unknown)
.theme(.light).preferredColorScheme(.light)
}
}
}