Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
34 changes: 33 additions & 1 deletion Session.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -1173,6 +1173,10 @@
FDFE75B42ABD46B600655640 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD83B9D127D59495005E1583 /* MockUserDefaults.swift */; };
FDFE75B52ABD46B700655640 /* MockUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD83B9D127D59495005E1583 /* MockUserDefaults.swift */; };
FDFF9FDF2A787F57005E0628 /* JSONEncoder+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDFF9FDE2A787F57005E0628 /* JSONEncoder+Utilities.swift */; };
FE5809902E6EACB0000296AB /* Lucide in Frameworks */ = {isa = PBXBuildFile; productRef = FE58098F2E6EACB0000296AB /* Lucide */; };
FE5809922E6EADFA000296AB /* Lucide in Frameworks */ = {isa = PBXBuildFile; productRef = FE5809912E6EADFA000296AB /* Lucide */; };
FEACA5AF2E6FB03300AA20F3 /* Lucide in Frameworks */ = {isa = PBXBuildFile; productRef = FEACA5AE2E6FB03300AA20F3 /* Lucide */; };
FEACA5B12E6FB10E00AA20F3 /* Lucide in Frameworks */ = {isa = PBXBuildFile; productRef = FEACA5B02E6FB10E00AA20F3 /* Lucide */; };
FED288F32E4C28CF00C31171 /* AppReviewPromptDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED288F22E4C28CF00C31171 /* AppReviewPromptDialog.swift */; };
FED288F82E4C3BE100C31171 /* AppReviewPromptModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED288F72E4C3BE100C31171 /* AppReviewPromptModel.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -2481,6 +2485,7 @@
B8D64FC725BA78520029CFC0 /* SessionMessagingKit.framework in Frameworks */,
C3D90A5C25773A25002C9DF5 /* SessionUtilitiesKit.framework in Frameworks */,
C3402FE52559036600EA6424 /* SessionUIKit.framework in Frameworks */,
FEACA5AF2E6FB03300AA20F3 /* Lucide in Frameworks */,
B8D64FCB25BA78A90029CFC0 /* SignalUtilitiesKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -2489,6 +2494,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FEACA5B12E6FB10E00AA20F3 /* Lucide in Frameworks */,
B8D64FBB25BA78310029CFC0 /* SessionMessagingKit.framework in Frameworks */,
FD8A5B182DBF47E9004C689B /* SessionUIKit.framework in Frameworks */,
B8D64FBD25BA78310029CFC0 /* SessionNetworkingKit.framework in Frameworks */,
Expand All @@ -2514,6 +2520,8 @@
FD6A39222C2AA91D00762359 /* NVActivityIndicatorView in Frameworks */,
FD22866F2C38D42300BC06F7 /* DifferenceKit in Frameworks */,
C33FD9C2255A54EF00E217F9 /* SessionMessagingKit.framework in Frameworks */,
C33FD9C4255A54EF00E217F9 /* SessionSnodeKit.framework in Frameworks */,
FE5809922E6EADFA000296AB /* Lucide in Frameworks */,
C33FD9C4255A54EF00E217F9 /* SessionNetworkingKit.framework in Frameworks */,
C33FD9C5255A54EF00E217F9 /* SessionUtilitiesKit.framework in Frameworks */,
);
Expand Down Expand Up @@ -2549,6 +2557,7 @@
FD6673FA2D7021F800041530 /* SessionUtil in Frameworks */,
FD2286732C38D43900BC06F7 /* DifferenceKit in Frameworks */,
FDC4386C27B4E90300C60D73 /* SessionUtilitiesKit.framework in Frameworks */,
FE5809902E6EACB0000296AB /* Lucide in Frameworks */,
C3C2A70B25539E1E00C340D1 /* SessionNetworkingKit.framework in Frameworks */,
FD6A39132C2A946A00762359 /* SwiftProtobuf in Frameworks */,
);
Expand Down Expand Up @@ -5386,6 +5395,7 @@
name = SessionShareExtension;
packageProductDependencies = (
FD860CC82D6ED2ED00BBE29C /* DifferenceKit */,
FEACA5AE2E6FB03300AA20F3 /* Lucide */,
);
productName = SignalShareExtension;
productReference = 453518681FC635DD00210559 /* SessionShareExtension.appex */;
Expand Down Expand Up @@ -5455,6 +5465,7 @@
packageProductDependencies = (
FD6A39212C2AA91D00762359 /* NVActivityIndicatorView */,
FD22866E2C38D42300BC06F7 /* DifferenceKit */,
FE5809912E6EADFA000296AB /* Lucide */,
);
productName = SignalUtilitiesKit;
productReference = C33FD9AB255A548A00E217F9 /* SignalUtilitiesKit.framework */;
Expand Down Expand Up @@ -5529,6 +5540,7 @@
FD6A39122C2A946A00762359 /* SwiftProtobuf */,
FD2286722C38D43900BC06F7 /* DifferenceKit */,
FD6673F92D7021F800041530 /* SessionUtil */,
FE58098F2E6EACB0000296AB /* Lucide */,
);
productName = SessionMessagingKit;
productReference = C3C2A6F025539DE700C340D1 /* SessionMessagingKit.framework */;
Expand Down Expand Up @@ -10552,7 +10564,7 @@
repositoryURL = "https://github.com/session-foundation/session-lucide.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 0.468.0;
minimumVersion = 0.473.1;
};
};
/* End XCRemoteSwiftPackageReference section */
Expand Down Expand Up @@ -10701,6 +10713,26 @@
package = FD6A390E2C2A93CD00762359 /* XCRemoteSwiftPackageReference "WebRTC" */;
productName = WebRTC;
};
FE58098F2E6EACB0000296AB /* Lucide */ = {
isa = XCSwiftPackageProductDependency;
package = FD756BEE2D06686500BD7199 /* XCRemoteSwiftPackageReference "session-lucide" */;
productName = Lucide;
};
FE5809912E6EADFA000296AB /* Lucide */ = {
isa = XCSwiftPackageProductDependency;
package = FD756BEE2D06686500BD7199 /* XCRemoteSwiftPackageReference "session-lucide" */;
productName = Lucide;
};
FEACA5AE2E6FB03300AA20F3 /* Lucide */ = {
isa = XCSwiftPackageProductDependency;
package = FD756BEE2D06686500BD7199 /* XCRemoteSwiftPackageReference "session-lucide" */;
productName = Lucide;
};
FEACA5B02E6FB10E00AA20F3 /* Lucide */ = {
isa = XCSwiftPackageProductDependency;
package = FD756BEE2D06686500BD7199 /* XCRemoteSwiftPackageReference "session-lucide" */;
productName = Lucide;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = D221A080169C9E5E00537ABF /* Project object */;
Expand Down

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

45 changes: 25 additions & 20 deletions Session/Calls/CallVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import UIKit
import MediaPlayer
import AVKit
import Lucide
import SessionUIKit
import SessionMessagingKit
import SessionUtilitiesKit
Expand Down Expand Up @@ -82,10 +83,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
result.themeBackgroundColor = .backgroundSecondary
result.makeViewDraggable()

let noVideoIcon: UIImageView = UIImageView(
image: UIImage(systemName: "video.slash")?
.withRenderingMode(.alwaysTemplate)
)
let noVideoIcon = LucideIconView(icon: .videoOff, size: 28)
noVideoIcon.themeTintColor = .textPrimary
noVideoIcon.set(.width, to: 34)
noVideoIcon.set(.height, to: 28)
Expand All @@ -98,10 +96,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
result.addSubview(floatingRemoteVideoView)
floatingRemoteVideoView.pin(to: result)

let swappingVideoIcon: UIImageView = UIImageView(
image: UIImage(systemName: "arrow.2.squarepath")?
.withRenderingMode(.alwaysTemplate)
)
let swappingVideoIcon = LucideIconView(icon: .repeat2, size: 12)
swappingVideoIcon.themeTintColor = .textPrimary
swappingVideoIcon.set(.width, to: 16)
swappingVideoIcon.set(.height, to: 12)
Expand Down Expand Up @@ -145,7 +140,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
private lazy var minimizeButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "Minimize")?
Lucide.image(icon: .minimize2, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -164,7 +159,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
result.accessibilityIdentifier = "Answer call"
result.accessibilityLabel = "Answer call"
result.setImage(
UIImage(named: "AnswerCall")?
UIImage(named: "phone-fill-answer-custom")?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -184,7 +179,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
let result = UIButton(type: .custom)
result.accessibilityLabel = "End call button"
result.setImage(
UIImage(named: "EndCall")?
UIImage(named: "phone-fill-custom")?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -210,7 +205,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
let result = UIButton(type: .custom)
result.isEnabled = call.isVideoEnabled
result.setImage(
UIImage(named: "SwitchCamera")?
Lucide.image(icon: .switchCamera, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -227,7 +222,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
private lazy var switchAudioButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "AudioOff")?
Lucide.image(icon: .micOff, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -250,7 +245,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
private lazy var videoButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "VideoCall")?
Lucide.image(icon: .video, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand Down Expand Up @@ -278,7 +273,7 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel
private lazy var routePickerButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "Speaker")?
Lucide.image(icon: .volume2, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand Down Expand Up @@ -867,33 +862,43 @@ final class CallVC: UIViewController, VideoPreviewDelegate, AVRoutePickerViewDel

switch currentOutput.portType {
case .builtInSpeaker:
let image = UIImage(named: "Speaker")?.withRenderingMode(.alwaysTemplate)
let image = Lucide.image(icon: .volume2, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate)

routePickerButton.setImage(image, for: .normal)
routePickerButton.themeTintColor = .backgroundSecondary
routePickerButton.themeBackgroundColor = .textPrimary

case .headphones:
let image = UIImage(named: "Headsets")?.withRenderingMode(.alwaysTemplate)
let image = UIImage(named: "Headsets")?
.withRenderingMode(.alwaysTemplate)

routePickerButton.setImage(image, for: .normal)
routePickerButton.themeTintColor = .backgroundSecondary
routePickerButton.themeBackgroundColor = .textPrimary

case .bluetoothLE: fallthrough
case .bluetoothA2DP:
let image = UIImage(named: "Bluetooth")?.withRenderingMode(.alwaysTemplate)
let image = UIImage(named: "Bluetooth")?
.withRenderingMode(.alwaysTemplate)

routePickerButton.setImage(image, for: .normal)
routePickerButton.themeTintColor = .backgroundSecondary
routePickerButton.themeBackgroundColor = .textPrimary

case .bluetoothHFP:
let image = UIImage(named: "Airpods")?.withRenderingMode(.alwaysTemplate)
let image = UIImage(named: "Airpods")?
.withRenderingMode(.alwaysTemplate)

routePickerButton.setImage(image, for: .normal)
routePickerButton.themeTintColor = .backgroundSecondary
routePickerButton.themeBackgroundColor = .textPrimary

case .builtInReceiver: fallthrough
default:
let image = UIImage(named: "Speaker")?.withRenderingMode(.alwaysTemplate)
let image = Lucide.image(icon: .volume2, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate)

routePickerButton.setImage(image, for: .normal)
routePickerButton.themeTintColor = .textPrimary
routePickerButton.themeBackgroundColor = .backgroundSecondary
Expand Down
5 changes: 3 additions & 2 deletions Session/Calls/VideoPreviewVC.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.

import UIKit
import Lucide
import SessionUIKit
import CoreMedia

Expand Down Expand Up @@ -44,7 +45,7 @@ class VideoPreviewVC: UIViewController, CameraManagerDelegate {
private lazy var closeButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "X")?
Lucide.image(icon: .x, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand All @@ -59,7 +60,7 @@ class VideoPreviewVC: UIViewController, CameraManagerDelegate {
private lazy var confirmButton: UIButton = {
let result = UIButton(type: .custom)
result.setImage(
UIImage(named: "Check")?
Lucide.image(icon: .check, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate),
for: .normal
)
Expand Down
7 changes: 3 additions & 4 deletions Session/Calls/Views & Modals/CallMissedTipsModal.swift
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.

import UIKit
import Lucide
import SessionUIKit
import SessionUtilitiesKit

Expand All @@ -11,10 +12,8 @@ final class CallMissedTipsModal: Modal {

private lazy var tipsIconContainerView: UIView = UIView()

private lazy var tipsIconImageView: UIImageView = {
let result: UIImageView = UIImageView(
image: UIImage(named: "Tips")?.withRenderingMode(.alwaysTemplate)
)
private lazy var tipsIconImageView: LucideIconView = {
let result = LucideIconView(icon: .lightbulb)
result.themeTintColor = .textPrimary
result.set(.width, to: 19)
result.set(.height, to: 28)
Expand Down
4 changes: 2 additions & 2 deletions Session/Calls/Views & Modals/IncomingCallBanner.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ final class IncomingCallBanner: UIView, UIGestureRecognizerDelegate {
.withConfiguration(
UIButton.Configuration
.plain()
.withImage(UIImage(named: "AnswerCall")?.withRenderingMode(.alwaysTemplate))
.withImage(UIImage(named: "phone-fill-answer-custom")?.withRenderingMode(.alwaysTemplate))
.withContentInsets(NSDirectionalEdgeInsets(top: 6, leading: 6, bottom: 6, trailing: 6))
)
.withConfigurationUpdateHandler { button in
Expand All @@ -65,7 +65,7 @@ final class IncomingCallBanner: UIView, UIGestureRecognizerDelegate {
.withConfiguration(
UIButton.Configuration
.plain()
.withImage(UIImage(named: "EndCall")?.withRenderingMode(.alwaysTemplate))
.withImage(UIImage(named: "phone-fill-custom")?.withRenderingMode(.alwaysTemplate))
.withContentInsets(NSDirectionalEdgeInsets(top: 13, leading: 9, bottom: 13, trailing: 9))
)
.withConfigurationUpdateHandler { button in
Expand Down
5 changes: 3 additions & 2 deletions Session/Closed Groups/EditGroupViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import Foundation
import Combine
import Lucide
import GRDB
import DifferenceKit
import SessionUIKit
Expand Down Expand Up @@ -255,7 +256,7 @@ class EditGroupViewModel: SessionTableViewModel, NavigatableStateHolder, Observa
elements: [
SessionCell.Info(
id: .invite,
leadingAccessory: .icon(UIImage(named: "icon_invite")?.withRenderingMode(.alwaysTemplate)),
leadingAccessory: .icon(Lucide.image(icon: .userRoundPlus, size: IconSize.medium.size)?.withRenderingMode(.alwaysTemplate)),
title: "membersInvite".localized(),
accessibility: Accessibility(
identifier: "Invite button",
Expand All @@ -266,7 +267,7 @@ class EditGroupViewModel: SessionTableViewModel, NavigatableStateHolder, Observa
(!isUpdatedGroup || !dependencies[feature: .updatedGroupsAllowInviteById] ? nil :
SessionCell.Info(
id: .inviteById,
leadingAccessory: .icon(UIImage(named: "ic_plus_24")?.withRenderingMode(.alwaysTemplate)),
leadingAccessory: .icon(Lucide.image(icon: .plus, size: IconSize.medium.size)?.withRenderingMode(.alwaysTemplate)),
title: "accountIdOrOnsInvite".localized(),
accessibility: Accessibility(
identifier: "Invite by id",
Expand Down
6 changes: 5 additions & 1 deletion Session/Closed Groups/NewClosedGroupVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import UIKit
import Combine
import Lucide
import GRDB
import DifferenceKit
import SessionUIKit
Expand Down Expand Up @@ -228,7 +229,10 @@ final class NewClosedGroupVC: BaseVC, UITableViewDataSource, UITableViewDelegate
setNavBarTitle("groupCreate".localized(), customFontSize: customTitleFontSize)

if !hideCloseButton {
let closeButton = UIBarButtonItem(image: #imageLiteral(resourceName: "X"), style: .plain, target: self, action: #selector(close))
let closeIcon = Lucide.image(icon: .x, size: IconSize.medium.size)?
.withRenderingMode(.alwaysTemplate)

let closeButton = UIBarButtonItem(image: closeIcon, style: .plain, target: self, action: #selector(close))
closeButton.themeTintColor = .textPrimary
navigationItem.rightBarButtonItem = closeButton
navigationItem.leftBarButtonItem?.accessibilityIdentifier = "Cancel"
Expand Down
Loading