From 4f774e625151b8d61fbc49763efdcdb2ee7ac54a Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Fri, 14 Jul 2023 17:13:38 +1000 Subject: [PATCH] message bubble & file info --- Session.xcodeproj/project.pbxproj | 8 + .../MessageInfoView.swift | 176 +++++++++++++++++- 2 files changed, 178 insertions(+), 6 deletions(-) diff --git a/Session.xcodeproj/project.pbxproj b/Session.xcodeproj/project.pbxproj index d2db6a3ec..5f3fe66c0 100644 --- a/Session.xcodeproj/project.pbxproj +++ b/Session.xcodeproj/project.pbxproj @@ -2055,6 +2055,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + AA3B45F13C99CAEE72D01DAA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; C331FF182558F9D300070591 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -4673,6 +4680,7 @@ buildConfigurationList = FD9BDDFC2A5D2294005F1EBC /* Build configuration list for PBXNativeTarget "SessionUtil" */; buildPhases = ( FD9BDDFF2A5D229B005F1EBC /* Build libSessionUtil if Needed */, + AA3B45F13C99CAEE72D01DAA /* Frameworks */, ); buildRules = ( ); diff --git a/Session/Media Viewing & Editing/MessageInfoView.swift b/Session/Media Viewing & Editing/MessageInfoView.swift index 86779f8ca..5ec1beef1 100644 --- a/Session/Media Viewing & Editing/MessageInfoView.swift +++ b/Session/Media Viewing & Editing/MessageInfoView.swift @@ -9,7 +9,7 @@ struct MessageInfoView: View { var messageViewModel: MessageViewModel var body: some View { - ZStack { + ZStack (alignment: .topLeading) { if #available(iOS 14.0, *) { Color.black.ignoresSafeArea() } else { @@ -17,13 +17,160 @@ struct MessageInfoView: View { } VStack( - alignment: .center, + alignment: .leading, spacing: 10 ) { // Message bubble snapshot - Image("snapshot") - + if let body: String = messageViewModel.body { + ZStack { + RoundedRectangle(cornerRadius: 18) + .fill(Color(red: 49.0/255, green: 241.0/255, blue: 150.0/255)) + + Text(body) + .padding( + EdgeInsets( + top: 8, + leading: 16, + bottom: 8, + trailing: 16 + ) + ) + } + .frame( + maxWidth: .infinity, + maxHeight: .infinity, + alignment: .topLeading + ) + .fixedSize(horizontal: true, vertical: true) + .padding( + EdgeInsets( + top: 10, + leading: 30, + bottom: 10, + trailing: 30 + ) + ) + } // TODO: Attachment carousel view + + // Attachment Info + if (messageViewModel.attachments?.isEmpty != false) { + ZStack { + RoundedRectangle(cornerRadius: 17) + .fill(Color(red: 27.0/255, green: 27.0/255, blue: 27.0/255)) + + VStack( + alignment: .leading, + spacing: 16 + ) { + VStack( + alignment: .leading, + spacing: 4 + ) { + Text("ATTACHMENT_INFO_FILE_ID".localized() + ":") + .bold() + .font(.system(size: 18)) + .foregroundColor(.white) + Text("12378965485235985214") + .font(.system(size: 16)) + .foregroundColor(.white) + } + + HStack( + alignment: .center, + spacing: 48 + ) { + VStack( + alignment: .leading, + spacing: 4 + ) { + Text("ATTACHMENT_INFO_FILE_TYPE".localized() + ":") + .bold() + .font(.system(size: 18)) + .foregroundColor(.white) + Text(".PNG") + .font(.system(size: 16)) + .foregroundColor(.white) + } + + Spacer() + + VStack( + alignment: .leading, + spacing: 4 + ) { + Text("ATTACHMENT_INFO_FILE_SIZE".localized() + ":") + .bold() + .font(.system(size: 18)) + .foregroundColor(.white) + Text("6mb") + .font(.system(size: 16)) + .foregroundColor(.white) + } + + Spacer() + } + + HStack( + alignment: .center, + spacing: 48 + ) { + VStack( + alignment: .leading, + spacing: 4 + ) { + Text("ATTACHMENT_INFO_RESOLUTION".localized() + ":") + .bold() + .font(.system(size: 18)) + .foregroundColor(.white) + Text("550×550") + .font(.system(size: 16)) + .foregroundColor(.white) + } + + Spacer() + + VStack( + alignment: .leading, + spacing: 4 + ) { + Text("ATTACHMENT_INFO_DURATION".localized() + ":") + .bold() + .font(.system(size: 18)) + .foregroundColor(.white) + Text("N/A") + .font(.system(size: 16)) + .foregroundColor(.white) + } + + Spacer() + } + } + .frame( + maxWidth: .infinity, + maxHeight: .infinity, + alignment: .topLeading + ) + .padding( + EdgeInsets( + top: 16, + leading: 16, + bottom: 16, + trailing: 16 + ) + ) + } + .frame(maxHeight: .infinity) + .fixedSize(horizontal: false, vertical: true) + .padding( + EdgeInsets( + top: 10, + leading: 30, + bottom: 10, + trailing: 30 + ) + ) + } // Message Info ZStack { @@ -32,7 +179,7 @@ struct MessageInfoView: View { VStack( alignment: .leading, - spacing: 10 + spacing: 16 ) { VStack( alignment: .leading, @@ -40,8 +187,10 @@ struct MessageInfoView: View { ) { Text("Sent:") .bold() + .font(.system(size: 18)) .foregroundColor(.white) Text(messageViewModel.dateForUI.fromattedForMessageInfo) + .font(.system(size: 16)) .foregroundColor(.white) } @@ -51,8 +200,10 @@ struct MessageInfoView: View { ) { Text("Received:") .bold() + .font(.system(size: 18)) .foregroundColor(.white) Text(messageViewModel.receivedDateForUI.fromattedForMessageInfo) + .font(.system(size: 16)) .foregroundColor(.white) } @@ -62,18 +213,31 @@ struct MessageInfoView: View { ) { Text("From:") .bold() + .font(.system(size: 18)) .foregroundColor(.white) HStack( - spacing: 5 + spacing: 10 ) { + Circle() + .frame( + width: 46, + height: 46, + alignment: .topLeading + ) + .foregroundColor(Color(red: 49.0/255, green: 241.0/255, blue: 150.0/255)) +// ProfilePictureSwiftUI(size: .message) + + VStack( alignment: .leading, spacing: 4 ) { Text(messageViewModel.senderName ?? "Tester") .bold() + .font(.system(size: 18)) .foregroundColor(.white) Text(messageViewModel.authorId) + .font(.system(size: 16)) .foregroundColor(.white) } }