Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
ebea180
update Pro CTA for animated profile image
Jul 9, 2025
15c950c
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 14, 2025
b867dff
update set profile image modal and ProCTA modals
Jul 15, 2025
374a0cb
add pro proof logic for animated profile picture
Jul 17, 2025
5ea753f
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 21, 2025
76256cf
minor fix
Jul 21, 2025
0d65ae2
add logic for current user's pro state
Jul 22, 2025
bcce90e
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 22, 2025
bf78f1f
got the session pro state across all profile picture view
Jul 23, 2025
989c66a
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 23, 2025
e3a40ab
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 23, 2025
8309985
[WIP] upload profile picture before expiry
Jul 24, 2025
c301f85
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 24, 2025
6ea0f7b
add dev settings for custom file ttl
Jul 24, 2025
b7ecdf6
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 24, 2025
afbf33f
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 24, 2025
d137e2b
re-upload profile picture before it expires
Jul 24, 2025
cb4dca1
[Automated] Update translations from Crowdin
ThomasSession Jul 25, 2025
e95bb71
update profile picture settings modal clear logic
Jul 25, 2025
9c4dee6
Merge branch 'increased-pinnded-convos' into animated-profile-picture
Jul 30, 2025
afb7b65
add profile update from libsession
Jul 30, 2025
5b2fe54
update setting profile picture modal
Jul 30, 2025
f42d167
wip: user profile modal implementation
Jul 31, 2025
be2f248
wip: user profile modal implementation
Aug 1, 2025
db07547
fix unit test
Aug 1, 2025
b741393
minor fix
Aug 1, 2025
cfb3832
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 3, 2025
1dc69d8
Merge branch 'feature/update-crowdin-translations' of https://github.…
Aug 4, 2025
9706d9a
fix some ui issues for upm
Aug 4, 2025
a98c89a
Reworked the ImageDataManager to better handle large animated images
mpretty-cyro Aug 4, 2025
4095b53
Fixed a couple of minor issues with the SessionImageView
mpretty-cyro Aug 4, 2025
18fceca
fix issue on tap gesture and ui
Aug 5, 2025
f20f0bb
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 5, 2025
275d1c1
fix tooltip ui
Aug 5, 2025
6c4994a
implement is message requests off for community upm
Aug 5, 2025
0398779
minor fix
Aug 5, 2025
bcf71e3
fix tap gesture issues
Aug 5, 2025
faf9d82
WIP: update QRCode generation
Aug 5, 2025
dae5cf8
clean
Aug 5, 2025
c38be5b
Merge branch 'dev' into animated-profile-picture
Aug 6, 2025
5adc58b
Fix issues after merge
Aug 6, 2025
972ee61
manually positioning animated profile image in Pro CTA
Aug 6, 2025
97daeec
wip: fix profile image not animating
Aug 7, 2025
47508e1
Merge branch 'dev' into animated-profile-picture
Aug 7, 2025
86469ab
fix ui issue on profile picture view
Aug 7, 2025
6b68c7f
update protobuf and logic on profile updated timestamp
Aug 7, 2025
69d5544
minor fix on profile update timestamp default value
Aug 7, 2025
49075da
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 7, 2025
61da31b
wip: lightbox to show and share qr code
Aug 7, 2025
d91e122
light box for qrcode in ump
Aug 8, 2025
48683ff
minor fix on input accessory view
Aug 8, 2025
53aacad
clean
Aug 8, 2025
a6bb7a2
clean up
Aug 8, 2025
0c1ea79
wip: clean up
Aug 8, 2025
aa64d36
clean up
Aug 10, 2025
c41a780
clean up
Aug 11, 2025
55b97a8
rename and refactor on animation behaviour for profile picture views
Aug 11, 2025
e4d4a26
renaming
Aug 11, 2025
9841df9
clean up and merge last profile updated timestamps
Aug 12, 2025
a65841a
wip: fix unit test
Aug 12, 2025
d03c51e
fix unit test
Aug 12, 2025
7961eaf
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 12, 2025
a14265d
fix an clean up update profile picture job
Aug 12, 2025
cc613f9
clean up the mock logic in LibSession+Pro
Aug 13, 2025
03f870e
clean up and refactor on profile picture view subscribing current use…
Aug 13, 2025
d3566da
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 13, 2025
083c7b8
fix unit test
Aug 13, 2025
ce2b915
Merge branch 'dev' into animated-profile-picture
Aug 13, 2025
d733def
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 13, 2025
6c8f84b
minor fix
Aug 13, 2025
57b4e0d
Merge branch 'dev' into animated-profile-picture
Aug 26, 2025
28d8223
Merge branch 'dev' into user-profile-modal
Aug 26, 2025
41c5bf6
Merge branch 'dev' into animated-profile-picture
Aug 27, 2025
10df780
Merge branch 'animated-profile-picture' into user-profile-modal
Aug 27, 2025
68c5f4f
Merge branch 'dev' into animated-profile-picture
Sep 8, 2025
ced8f6b
Merge branch 'animated-profile-picture' into user-profile-modal
Sep 8, 2025
835de81
feat: share config for current user profile picture update
Sep 11, 2025
8e8bae5
Merge branch 'animated-profile-picture' into user-profile-modal
Sep 11, 2025
f541d4b
wip: fix current user profile picture reupload logic
Sep 11, 2025
4c4b610
clean up
Sep 11, 2025
c52889d
further clean up
Sep 11, 2025
bbafaf2
fix current user profile picture reupload logic
Sep 12, 2025
0cb25b4
Merge branch 'animated-profile-picture' into user-profile-modal
Sep 12, 2025
ea8dac9
Fixed a bug where profile data wouldn't be updated for new contacts
mpretty-cyro Sep 15, 2025
d2ba543
Fixed the broken unit tests
mpretty-cyro Sep 15, 2025
0732a74
Merge remote-tracking branch 'upstream/dev' into animated-profile-pic…
mpretty-cyro Sep 15, 2025
ad267f0
Update migration order unit test
mpretty-cyro Sep 15, 2025
f013982
Merge branch 'animated-profile-picture' into user-profile-modal
mpretty-cyro Sep 15, 2025
3bf67ed
Updated notification content to group message request type notifications
mikoldin123 Sep 17, 2025
ee2295c
Updated notification grouping cases
mikoldin123 Sep 18, 2025
2a3f88b
Updated input disabled field and use better string for communities
mikoldin123 Sep 18, 2025
2801419
Fix delete emoji icon too large
mikoldin123 Sep 18, 2025
20cd5ac
Merge branch 'dev' into fix/SES-4471/delete_emoji_reaction_too_big
mikoldin123 Sep 19, 2025
3d9ab32
Merge branch 'dev' into feat/SES-3848/show_disabled_input_for_communi…
mikoldin123 Sep 19, 2025
da81cad
Merge remote-tracking branch 'upstream/dev' into animated-profile-pic…
mpretty-cyro Sep 19, 2025
efd5f98
Merge branch 'animated-profile-picture' into user-profile-modal
mpretty-cyro Sep 19, 2025
bafe40e
Show empty video inset as soon as any video starts
mikoldin123 Sep 19, 2025
0ca8399
Updated "profileLastUpdated" logic to be consistent with other platforms
mpretty-cyro Sep 19, 2025
3be1a14
Merge branch 'animated-profile-picture' into user-profile-modal
mpretty-cyro Sep 19, 2025
2d8c5f9
Updated variable flag definition to constant
mikoldin123 Sep 22, 2025
88482e2
fix: profile picture modal shows incorrect pro description for non-pr…
Sep 23, 2025
a9accf0
Merge branch 'dev' into animated-profile-picture
Sep 23, 2025
23b0d4f
fix unit test
Sep 23, 2025
03f1862
Add handling of enter key from external keyboard
mikoldin123 Sep 23, 2025
8010f68
Merge branch 'animated-profile-picture' into user-profile-modal
Sep 23, 2025
a867300
feat: tap on author label to show user profile modal
Sep 24, 2025
6edb57a
feat: show pro cta when tapping pro badge on user profile modal for n…
Sep 24, 2025
15e07ac
fix: blinded id truncation
Sep 24, 2025
f51a40f
fix: nickname, display name and account id resolving for user profile…
Sep 24, 2025
b668905
fix: animation for profile picture expanding
Sep 24, 2025
1c17b97
Fix to only show approved contacts on global search
mikoldin123 Sep 25, 2025
ebb0c63
Fix valid ip address labeled as unknown country path on some locale
mikoldin123 Sep 25, 2025
f6ed270
Fix log file fails to upload to google drive when shared
mikoldin123 Sep 26, 2025
c52905a
Moved file modification handling to `Attachmentmanager`
mikoldin123 Sep 29, 2025
8178020
Updated `numColumnsBeforeProfiles` count for the new column
mikoldin123 Sep 29, 2025
675910e
Updated disabled conversation input buttons colors
mikoldin123 Sep 29, 2025
b1257b2
Centered play button for audio type attachment
mikoldin123 Sep 29, 2025
76bc2f5
Fixes inputAccessoryView disappears when dismissing emoji search modal
mikoldin123 Sep 29, 2025
50aee06
Added whitespace removal on other file name creation
mikoldin123 Sep 30, 2025
4672b4a
Added missing accessibility identifier for Missed call dialogs
mikoldin123 Sep 30, 2025
6101338
bump up libsession version
Sep 30, 2025
f168de7
Merge branch 'dev' into animated-profile-picture
Sep 30, 2025
277a917
Merge branch 'animated-profile-picture' into user-profile-modal
Sep 30, 2025
47e5519
clean up
Sep 30, 2025
4af8066
clean up
Sep 30, 2025
a2e01ac
fix an concurrency issue after merge
Sep 30, 2025
00b5df0
Removed generic cancel button identifier
mikoldin123 Oct 1, 2025
e0e031f
fix a minor ui style issue
Oct 1, 2025
fef1194
[Automated] Update translations from Crowdin
mpretty-cyro Oct 1, 2025
3f2b27e
Merge pull request #587 from session-foundation/feature/update-crowdi…
mpretty-cyro Oct 1, 2025
6040c74
quick fix for unit test
Oct 1, 2025
a49ffff
Merge branch 'dev' into animated-profile-picture
Oct 1, 2025
55670d3
Merge branch 'animated-profile-picture' into user-profile-modal
Oct 1, 2025
c616c10
Fixed layout bugs with contact list items and blocked contacts button
mpretty-cyro Oct 2, 2025
34b979c
Fixed profile cell layout, fixed Community 'next' button on iPhone SE
mpretty-cyro Oct 2, 2025
da0ad25
[Automated] Update translations from Crowdin
mpretty-cyro Oct 7, 2025
323cdc2
Merge pull request #599 from session-foundation/feature/update-crowdi…
mpretty-cyro Oct 7, 2025
83dc62f
[Automated] Update translations from Crowdin
mpretty-cyro Oct 8, 2025
9852348
Merge pull request #604 from session-foundation/feature/update-crowdi…
mpretty-cyro Oct 8, 2025
1b6071a
Removed camera permission request on call start
mikoldin123 Sep 16, 2025
fc7f6c8
Clean up permission and preview handling
mikoldin123 Sep 16, 2025
9dc19d2
Additional camera permission instructions and behavior
mikoldin123 Oct 8, 2025
6d33617
Added missing localized string and cleaned up code
mikoldin123 Oct 8, 2025
284b1aa
Fix end call camera instruction not showing
mikoldin123 Oct 10, 2025
7e2a8e6
[Automated] Update translations from Crowdin
mpretty-cyro Oct 10, 2025
c2db476
Merge pull request #490 from RyanRory/animated-profile-picture
mpretty-cyro Oct 10, 2025
971ac79
Merge pull request #495 from RyanRory/user-profile-modal
mpretty-cyro Oct 10, 2025
4b58291
Merge pull request #568 from mikoldin123/feat/SES-4293/message_reques…
mpretty-cyro Oct 10, 2025
8be06ff
Merge pull request #576 from mikoldin123/feat/SES-3848/show_disabled_…
mpretty-cyro Oct 10, 2025
f3f0685
Merge pull request #577 from mikoldin123/fix/SES-4471/delete_emoji_re…
mpretty-cyro Oct 10, 2025
266fd66
Merge pull request #580 from mikoldin123/feat/SES-2357/show_empty_vid…
mpretty-cyro Oct 10, 2025
c40e0e8
Merge pull request #584 from mikoldin123/feat/SES-495/external_keyboa…
mpretty-cyro Oct 10, 2025
68e54cc
Merge pull request #589 from mikoldin123/fix/SES-4578/show_only_appro…
mpretty-cyro Oct 10, 2025
16815b4
Merge pull request #590 from mikoldin123/fix/SES-2855/path_shows_unkn…
mpretty-cyro Oct 10, 2025
78148ac
Merge pull request #591 from mikoldin123/fix/SES-3228/google_drive_up…
mpretty-cyro Oct 10, 2025
e4e7dc7
Merge pull request #592 from mikoldin123/fix/SES-3850/update_disabled…
mpretty-cyro Oct 10, 2025
2c8f56e
Merge pull request #593 from mikoldin123/fix/SES-3428/input_accessory…
mpretty-cyro Oct 10, 2025
450a7d4
Merge pull request #595 from mikoldin123/fix/SES-4192/missed_call_dia…
mpretty-cyro Oct 10, 2025
cc552a5
Merge pull request #601 from mpretty-cyro/fix/layout-bugs
mpretty-cyro Oct 10, 2025
27d052a
Merge pull request #607 from session-foundation/feature/update-crowdi…
mpretty-cyro Oct 10, 2025
a6de09d
Added a dev setting to trigger a refund for a transaction
mpretty-cyro Oct 10, 2025
b4b300f
Merge branch 'dev' into fix/SES-4373/allow_calls_without_camera_permi…
mpretty-cyro Oct 10, 2025
94fddd3
Alternate approach for `shouldShowCameraPermissionInstructions`
mpretty-cyro Oct 10, 2025
a5a643a
Added some logs around notification and UserMetadata loading
mpretty-cyro Oct 10, 2025
63640b9
Merge pull request #608 from mpretty-cyro/feature/request-refund-dev-…
mpretty-cyro Oct 10, 2025
c46d3ce
Merge remote-tracking branch 'upstream/dev' into fix/SES-4373/allow_c…
mpretty-cyro Oct 10, 2025
c4e8fcd
Tweaked the modal buttons to have some padding and wrap
mpretty-cyro Oct 10, 2025
6ca079b
Fixed issues found during QA
mpretty-cyro Oct 12, 2025
b9d9e03
Some minor tweaks to ensure consistent profile update behaviour
mpretty-cyro Oct 12, 2025
d17be79
Bumped build number
mpretty-cyro Oct 12, 2025
38d2ed2
Fixed a layout issue picked up by the regression tests
mpretty-cyro Oct 13, 2025
81e824e
[Automated] Update translations from Crowdin
mpretty-cyro Oct 13, 2025
46ab808
Fixed a couple of bugs found during testing
mpretty-cyro Oct 13, 2025
963bc33
Merge pull request #611 from session-foundation/feature/update-crowdi…
mpretty-cyro Oct 13, 2025
36e8d5a
Merge pull request #565 from mikoldin123/fix/SES-4373/allow_calls_wit…
mpretty-cyro Oct 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 77 additions & 27 deletions Session.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

140 changes: 95 additions & 45 deletions Session/Calls/CallVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,13 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
UIView.animate(withDuration: 0.25) {
let remoteVideoView: RemoteVideoView = self.floatingViewVideoSource == .remote ? self.floatingRemoteVideoView : self.fullScreenRemoteVideoView
remoteVideoView.alpha = isEnabled ? 1 : 0

// Retain floating view visibility if any of the video feeds are enabled
let isAnyVideoFeedEnabled: Bool = (isEnabled || self.call.isVideoEnabled)

// Shows floating camera to allow user to switch to fullscreen or floating
// even if the other party has not yet turned on their video feed.
self.floatingViewContainer.isHidden = !isAnyVideoFeedEnabled
}

if self.callInfoLabelStackView.alpha < 0.5 {
Expand Down Expand Up @@ -464,9 +471,8 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
setUpViewHierarchy()
setUpProfilePictureImage()

if shouldRestartCamera { cameraManager.prepare() }

_ = call.videoCapturer // Force the lazy var to instantiate

titleLabel.text = self.call.contactName
if self.call.hasConnected {
callDurationLabel.isHidden = false
Expand Down Expand Up @@ -659,14 +665,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
self.callInfoLabelStackView.alpha = 1
}

Timer.scheduledTimer(withTimeInterval: 2, repeats: false) { [weak self] _ in
DispatchQueue.main.async {
self?.dismiss(animated: true, completion: {
self?.conversationVC?.becomeFirstResponder()
self?.conversationVC?.showInputAccessoryView()
})
}
}
self.shouldHandleCallDismiss(delay: 2)
}

@objc private func answerCall() {
Expand All @@ -680,21 +679,14 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
}
}

@objc private func endCall() {
@objc private func endCall(presentCameraRequestDialog: Bool = false) {
dependencies[singleton: .callManager].endCall(call) { [weak self, dependencies] error in
self?.shouldHandleCallDismiss(delay: 1, presentCameraRequestDialog: presentCameraRequestDialog)

if let _ = error {
self?.call.endSessionCall()
dependencies[singleton: .callManager].reportCurrentCallEnded(reason: .declinedElsewhere)
}

Timer.scheduledTimer(withTimeInterval: 1, repeats: false) { [weak self] _ in
DispatchQueue.main.async {
self?.dismiss(animated: true, completion: {
self?.conversationVC?.becomeFirstResponder()
self?.conversationVC?.showInputAccessoryView()
})
}
}
}
}

Expand All @@ -721,43 +713,88 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
// MARK: - Video and Audio

@objc private func operateCamera() {

if (call.isVideoEnabled) {
floatingViewContainer.isHidden = true
// Hides local video feed
(floatingViewVideoSource == .local
? floatingLocalVideoView
: fullScreenLocalVideoView).alpha = 0

floatingViewContainer.isHidden = !call.isRemoteVideoEnabled

cameraManager.stop()
videoButton.themeTintColor = .textPrimary
videoButton.themeBackgroundColor = .backgroundSecondary
switchCameraButton.isEnabled = false
call.isVideoEnabled = false
}
else {
guard Permissions.requestCameraPermissionIfNeeded(using: dependencies) else {
let confirmationModal: ConfirmationModal = ConfirmationModal(
info: ConfirmationModal.Info(
title: "permissionsRequired".localized(),
body: .text("permissionsCameraAccessRequiredCallsIos".localized()),
showCondition: .disabled,
confirmTitle: "sessionSettings".localized(),
onConfirm: { _ in
UIApplication.shared.openSystemSettings()
}
)
)

// Added delay of preview due to permission dialog alert dismissal on allow.
// It causes issue on `VideoPreviewVC` presentation animation,
// If camera permission is already allowed no animation delay is needed
let previewDelay = Permissions.camera == .undetermined ? 0.5 : 0

Permissions.requestCameraPermissionIfNeeded(
useCustomDeniedAlert: true,
using: dependencies
) { [weak self, dependencies] isAuthorized in

self.navigationController?.present(confirmationModal, animated: true, completion: nil)
return
let status = Permissions.camera

switch (isAuthorized, status) {
case (false, .denied):
guard let presentingViewController: UIViewController = (self?.navigationController ?? dependencies[singleton: .appContext].frontMostViewController)
else { return }

DispatchQueue.main.async {
let confirmationModal: ConfirmationModal = ConfirmationModal(
info: ConfirmationModal.Info(
title: "cameraAccessRequired".localized(),
body: .attributedText(
"cameraAccessDeniedMessage"
.put(key: "app_name", value: Constants.app_name)
.localizedFormatted(),
scrollMode: .never
),
confirmTitle: "endCallToEnable".localized(),
confirmStyle: .danger,
cancelTitle: "remindMeLater".localized(),
cancelStyle: .alert_text,
onConfirm: { _ in
self?.endCall(presentCameraRequestDialog: true)
},
onCancel: { modal in
dependencies[defaults: .standard, key: .shouldRemindGrantingCameraPermissionForCalls] = true
modal.dismiss(animated: true)
}
)
)
presentingViewController.present(confirmationModal, animated: true, completion: nil)
}
case (true, _):
DispatchQueue.main.asyncAfter(deadline: .now() + previewDelay) { [weak self] in
let previewVC = VideoPreviewVC()
previewVC.delegate = self
self?.present(previewVC, animated: true, completion: nil)
}
break
default: break
}
}
let previewVC = VideoPreviewVC()
previewVC.delegate = self
present(previewVC, animated: true, completion: nil)
}
}

func cameraDidConfirmTurningOn() {
floatingViewContainer.isHidden = false

let localVideoView: LocalVideoView = self.floatingViewVideoSource == .local ? self.floatingLocalVideoView : self.fullScreenLocalVideoView
localVideoView.alpha = 1

// Camera preparation
cameraManager.prepare()
cameraManager.start()

videoButton.themeTintColor = .backgroundSecondary
videoButton.themeBackgroundColor = .textPrimary
switchCameraButton.isEnabled = true
Expand Down Expand Up @@ -874,13 +911,26 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
}
}

private func shouldHandleCallDismiss(delay: TimeInterval, presentCameraRequestDialog: Bool = false) {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(Int(delay))) { [weak self, dependencies] in
guard self?.presentingViewController != nil else { return }

self?.dismiss(animated: true, completion: {
self?.conversationVC?.becomeFirstResponder()
self?.conversationVC?.showInputAccessoryView()

if presentCameraRequestDialog {
Permissions.showEnableCameraAccessInstructions(using: dependencies)
} else {
Permissions.remindCameraAccessRequirement(using: dependencies)
}
})
}
}

// MARK: - AVRoutePickerViewDelegate

func routePickerViewWillBeginPresentingRoutes(_ routePickerView: AVRoutePickerView) {

}
func routePickerViewWillBeginPresentingRoutes(_ routePickerView: AVRoutePickerView) {}

func routePickerViewDidEndPresentingRoutes(_ routePickerView: AVRoutePickerView) {

}
func routePickerViewDidEndPresentingRoutes(_ routePickerView: AVRoutePickerView) {}
}
2 changes: 2 additions & 0 deletions Session/Calls/Views & Modals/CallMissedTipsModal.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ final class CallMissedTipsModal: Modal {
result.text = "callsMissedCallFrom"
.put(key: "name", value: caller)
.localized()
result.accessibilityIdentifier = "Modal heading"
result.themeTextColor = .textPrimary
result.textAlignment = .center

Expand All @@ -44,6 +45,7 @@ final class CallMissedTipsModal: Modal {
result.themeAttributedText = "callsYouMissedCallPermissions"
.put(key: "name", value: caller)
.localizedFormatted(in: result)
result.accessibilityIdentifier = "Modal description"

return result
}()
Expand Down
5 changes: 4 additions & 1 deletion Session/Closed Groups/EditGroupViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,10 @@ class EditGroupViewModel: SessionTableViewModel, NavigatableStateHolder, Observa
),
styling: SessionCell.StyleInfo(
alignment: .centerHugging,
customPadding: SessionCell.Padding(bottom: Values.smallSpacing),
customPadding: SessionCell.Padding(
leading: 0,
bottom: Values.smallSpacing
),
backgroundStyle: .noBackground
),
accessibility: Accessibility(
Expand Down
Loading