diff --git a/Signal/src/Loki/Components/Button.swift b/SessionUIKit/Components/Button.swift
similarity index 95%
rename from Signal/src/Loki/Components/Button.swift
rename to SessionUIKit/Components/Button.swift
index 81449460e..a486c9fc8 100644
--- a/Signal/src/Loki/Components/Button.swift
+++ b/SessionUIKit/Components/Button.swift
@@ -1,18 +1,19 @@
+import UIKit
-final class Button : UIButton {
+public final class Button : UIButton {
private let style: Style
private let size: Size
private var heightConstraint: NSLayoutConstraint!
- enum Style {
+ public enum Style {
case unimportant, regular, prominentOutline, prominentFilled, regularBorderless
}
- enum Size {
+ public enum Size {
case medium, large, small
}
- init(style: Style, size: Size) {
+ public init(style: Style, size: Size) {
self.style = style
self.size = size
super.init(frame: .zero)
diff --git a/Signal/src/Loki/Components/SearchBar.swift b/SessionUIKit/Components/SearchBar.swift
similarity index 90%
rename from Signal/src/Loki/Components/SearchBar.swift
rename to SessionUIKit/Components/SearchBar.swift
index 5a6e78ed3..9897546d7 100644
--- a/Signal/src/Loki/Components/SearchBar.swift
+++ b/SessionUIKit/Components/SearchBar.swift
@@ -1,12 +1,13 @@
+import UIKit
-final class SearchBar : UISearchBar {
+public final class SearchBar : UISearchBar {
- override init(frame: CGRect) {
+ public override init(frame: CGRect) {
super.init(frame: frame)
setUpStyle()
}
- required init?(coder: NSCoder) {
+ public required init?(coder: NSCoder) {
super.init(coder: coder)
setUpStyle()
}
@@ -15,9 +16,9 @@ final class SearchBar : UISearchBar {
searchBarStyle = .minimal // Hide the border around the search bar
barStyle = .black // Use Apple's black design as a base
tintColor = Colors.accent // The cursor color
- let searchImage = #imageLiteral(resourceName: "searchbar_search").asTintedImage(color: Colors.searchBarPlaceholder)!
+ let searchImage = #imageLiteral(resourceName: "searchbar_search").withTint(Colors.searchBarPlaceholder)!
setImage(searchImage, for: .search, state: .normal)
- let clearImage = #imageLiteral(resourceName: "searchbar_clear").asTintedImage(color: Colors.searchBarPlaceholder)!
+ let clearImage = #imageLiteral(resourceName: "searchbar_clear").withTint(Colors.searchBarPlaceholder)!
setImage(clearImage, for: .clear, state: .normal)
let searchTextField: UITextField
if #available(iOS 13, *) {
diff --git a/Signal/src/Loki/Components/Separator.swift b/SessionUIKit/Components/Separator.swift
similarity index 87%
rename from Signal/src/Loki/Components/Separator.swift
rename to SessionUIKit/Components/Separator.swift
index 49ca4e05e..af5cea655 100644
--- a/Signal/src/Loki/Components/Separator.swift
+++ b/SessionUIKit/Components/Separator.swift
@@ -1,5 +1,6 @@
+import UIKit
-final class Separator : UIView {
+public final class Separator : UIView {
private let title: String
// MARK: Components
@@ -20,17 +21,17 @@ final class Separator : UIView {
}()
// MARK: Initialization
- init(title: String) {
+ public init(title: String) {
self.title = title
super.init(frame: CGRect.zero)
setUpViewHierarchy()
}
- override init(frame: CGRect) {
+ public override init(frame: CGRect) {
preconditionFailure("Use init(title:) instead.")
}
- required init?(coder: NSCoder) {
+ public required init?(coder: NSCoder) {
preconditionFailure("Use init(title:) instead.")
}
@@ -44,14 +45,14 @@ final class Separator : UIView {
}
// MARK: Updating
- override func layoutSubviews() {
+ public override func layoutSubviews() {
super.layoutSubviews()
updateLineLayer()
}
private func updateLineLayer() {
- let w = width()
- let h = height()
+ let w = bounds.width
+ let h = bounds.height
let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: h / 2))
let titleLabelFrame = titleLabel.frame.insetBy(dx: -10, dy: -6)
diff --git a/Signal/src/Loki/Components/TabBar.swift b/SessionUIKit/Components/TabBar.swift
similarity index 90%
rename from Signal/src/Loki/Components/TabBar.swift
rename to SessionUIKit/Components/TabBar.swift
index ce4aacf48..489ba145f 100644
--- a/Signal/src/Loki/Components/TabBar.swift
+++ b/SessionUIKit/Components/TabBar.swift
@@ -1,5 +1,6 @@
+import UIKit
-final class TabBar : UIView {
+public final class TabBar : UIView {
private let tabs: [Tab]
private var accentLineViewHorizontalCenteringConstraint: NSLayoutConstraint!
private var accentLineViewWidthConstraint: NSLayoutConstraint!
@@ -22,23 +23,28 @@ final class TabBar : UIView {
}()
// MARK: Types
- struct Tab {
+ public struct Tab {
let title: String
let onTap: () -> Void
+
+ public init(title: String, onTap: @escaping () -> Void) {
+ self.title = title
+ self.onTap = onTap
+ }
}
// MARK: Lifecycle
- init(tabs: [Tab]) {
+ public init(tabs: [Tab]) {
self.tabs = tabs
super.init(frame: CGRect.zero)
setUpViewHierarchy()
}
- override init(frame: CGRect) {
+ public override init(frame: CGRect) {
preconditionFailure("Use init(tabs:) instead.")
}
- required init?(coder: NSCoder) {
+ public required init?(coder: NSCoder) {
preconditionFailure("Use init(tabs:) instead.")
}
@@ -75,7 +81,7 @@ final class TabBar : UIView {
}
// MARK: Updating
- func selectTab(at index: Int, withAnimatedTransition isAnimated: Bool = true) {
+ public func selectTab(at index: Int, withAnimatedTransition isAnimated: Bool = true) {
let tabLabel = tabLabels[index]
accentLineViewHorizontalCenteringConstraint?.isActive = false
accentLineViewHorizontalCenteringConstraint = accentLineView.centerXAnchor.constraint(equalTo: tabLabel.centerXAnchor)
diff --git a/Signal/src/Loki/Components/TextField.swift b/SessionUIKit/Components/TextField.swift
similarity index 81%
rename from Signal/src/Loki/Components/TextField.swift
rename to SessionUIKit/Components/TextField.swift
index 58ceea023..95e4bb20a 100644
--- a/Signal/src/Loki/Components/TextField.swift
+++ b/SessionUIKit/Components/TextField.swift
@@ -1,11 +1,12 @@
+import UIKit
-final class TextField : UITextField {
+public final class TextField : UITextField {
private let usesDefaultHeight: Bool
private let height: CGFloat
private let horizontalInset: CGFloat
private let verticalInset: CGFloat
- init(placeholder: String, usesDefaultHeight: Bool = true, customHeight: CGFloat? = nil, customHorizontalInset: CGFloat? = nil, customVerticalInset: CGFloat? = nil) {
+ public init(placeholder: String, usesDefaultHeight: Bool = true, customHeight: CGFloat? = nil, customHorizontalInset: CGFloat? = nil, customVerticalInset: CGFloat? = nil) {
self.usesDefaultHeight = usesDefaultHeight
self.height = customHeight ?? Values.textFieldHeight
self.horizontalInset = customHorizontalInset ?? (isIPhone5OrSmaller ? Values.mediumSpacing : Values.largeSpacing)
@@ -15,11 +16,11 @@ final class TextField : UITextField {
setUpStyle()
}
- override init(frame: CGRect) {
+ public override init(frame: CGRect) {
preconditionFailure("Use init(placeholder:) instead.")
}
- required init?(coder: NSCoder) {
+ public required init?(coder: NSCoder) {
preconditionFailure("Use init(placeholder:) instead.")
}
@@ -40,7 +41,7 @@ final class TextField : UITextField {
layer.cornerRadius = Values.textFieldCornerRadius
}
- override func textRect(forBounds bounds: CGRect) -> CGRect {
+ public override func textRect(forBounds bounds: CGRect) -> CGRect {
if usesDefaultHeight {
return bounds.insetBy(dx: horizontalInset, dy: verticalInset)
} else {
@@ -48,7 +49,7 @@ final class TextField : UITextField {
}
}
- override func editingRect(forBounds bounds: CGRect) -> CGRect {
+ public override func editingRect(forBounds bounds: CGRect) -> CGRect {
if usesDefaultHeight {
return bounds.insetBy(dx: horizontalInset, dy: verticalInset)
} else {
diff --git a/Signal/src/Loki/Components/TextView.swift b/SessionUIKit/Components/TextView.swift
similarity index 80%
rename from Signal/src/Loki/Components/TextView.swift
rename to SessionUIKit/Components/TextView.swift
index e7bd08bfb..bb35f1f76 100644
--- a/Signal/src/Loki/Components/TextView.swift
+++ b/SessionUIKit/Components/TextView.swift
@@ -1,12 +1,13 @@
+import UIKit
-final class TextView : UITextView, UITextViewDelegate {
+public final class TextView : UITextView, UITextViewDelegate {
private let usesDefaultHeight: Bool
private let height: CGFloat
private let horizontalInset: CGFloat
private let verticalInset: CGFloat
private let placeholder: String
- override var contentSize: CGSize { didSet { centerTextVertically() } }
+ public override var contentSize: CGSize { didSet { centerTextVertically() } }
private lazy var placeholderLabel: UILabel = {
let result = UILabel()
@@ -15,7 +16,7 @@ final class TextView : UITextView, UITextViewDelegate {
return result
}()
- init(placeholder: String, usesDefaultHeight: Bool = true, customHeight: CGFloat? = nil, customHorizontalInset: CGFloat? = nil, customVerticalInset: CGFloat? = nil) {
+ public init(placeholder: String, usesDefaultHeight: Bool = true, customHeight: CGFloat? = nil, customHorizontalInset: CGFloat? = nil, customVerticalInset: CGFloat? = nil) {
self.usesDefaultHeight = usesDefaultHeight
self.height = customHeight ?? Values.textFieldHeight
self.horizontalInset = customHorizontalInset ?? (isIPhone5OrSmaller ? Values.mediumSpacing : Values.largeSpacing)
@@ -26,11 +27,11 @@ final class TextView : UITextView, UITextViewDelegate {
setUpStyle()
}
- override init(frame: CGRect, textContainer: NSTextContainer?) {
+ public override init(frame: CGRect, textContainer: NSTextContainer?) {
preconditionFailure("Use init(placeholder:) instead.")
}
- required init?(coder: NSCoder) {
+ public required init?(coder: NSCoder) {
preconditionFailure("Use init(placeholder:) instead.")
}
@@ -50,7 +51,7 @@ final class TextView : UITextView, UITextViewDelegate {
layer.borderWidth = Values.borderThickness
layer.cornerRadius = Values.textFieldCornerRadius
let horizontalInset = usesDefaultHeight ? self.horizontalInset : Values.mediumSpacing
- textContainerInset = UIEdgeInsets(top: 0, leading: horizontalInset, bottom: 0, trailing: horizontalInset)
+ textContainerInset = UIEdgeInsets(top: 0, left: horizontalInset, bottom: 0, right: horizontalInset)
addSubview(placeholderLabel)
placeholderLabel.pin(.leading, to: .leading, of: self, withInset: horizontalInset + 3) // Slight visual adjustment
placeholderLabel.pin(.top, to: .top, of: self)
@@ -58,7 +59,7 @@ final class TextView : UITextView, UITextViewDelegate {
pin(.bottom, to: .bottom, of: placeholderLabel)
}
- func textViewDidChange(_ textView: UITextView) {
+ public func textViewDidChange(_ textView: UITextView) {
placeholderLabel.isHidden = !text.isEmpty
}
diff --git a/SessionUIKit/Meta/Info.plist b/SessionUIKit/Meta/Info.plist
new file mode 100644
index 000000000..9bcb24442
--- /dev/null
+++ b/SessionUIKit/Meta/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ $(PRODUCT_BUNDLE_PACKAGE_TYPE)
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+
+
diff --git a/SessionUIKit/Meta/SessionUIKit.h b/SessionUIKit/Meta/SessionUIKit.h
new file mode 100644
index 000000000..a605fee5a
--- /dev/null
+++ b/SessionUIKit/Meta/SessionUIKit.h
@@ -0,0 +1,4 @@
+#import
+
+FOUNDATION_EXPORT double SessionUIKitVersionNumber;
+FOUNDATION_EXPORT const unsigned char SessionUIKitVersionString[];
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/AppMode.swift b/SessionUIKit/Style Guide/AppMode.swift
similarity index 98%
rename from SignalMessaging/Loki/Redesign/Style Guide/AppMode.swift
rename to SessionUIKit/Style Guide/AppMode.swift
index 640a2129d..2da777c2d 100644
--- a/SignalMessaging/Loki/Redesign/Style Guide/AppMode.swift
+++ b/SessionUIKit/Style Guide/AppMode.swift
@@ -1,3 +1,4 @@
+import Foundation
@objc(LKAppModeManager)
public final class AppModeManager : NSObject {
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.swift b/SessionUIKit/Style Guide/Colors.swift
similarity index 99%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.swift
rename to SessionUIKit/Style Guide/Colors.swift
index 36cbfbb5f..c7876635a 100644
--- a/SignalMessaging/Loki/Redesign/Style Guide/Colors.swift
+++ b/SessionUIKit/Style Guide/Colors.swift
@@ -1,3 +1,4 @@
+import UIKit
@objc public extension UIColor {
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_accent.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_accent.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_accent.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_accent.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_border.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_border.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_border.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_border.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_button_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_button_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_button_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_button_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_cell_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_cell_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_cell_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_cell_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_cell_selected.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_cell_selected.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_cell_selected.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_cell_selected.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_compose_view_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_compose_view_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_compose_view_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_compose_view_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_compose_view_text_field_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_compose_view_text_field_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_compose_view_text_field_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_compose_view_text_field_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_destructive.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_destructive.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_destructive.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_destructive.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_fake_chat_bubble_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_fake_chat_bubble_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_fake_chat_bubble_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_fake_chat_bubble_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_fake_chat_bubble_text.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_fake_chat_bubble_text.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_fake_chat_bubble_text.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_fake_chat_bubble_text.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_modal_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_modal_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_modal_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_modal_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_modal_border.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_modal_border.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_modal_border.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_modal_border.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_navigation_bar_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_navigation_bar_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_navigation_bar_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_navigation_bar_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_new_conversation_button_collapsed_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_new_conversation_button_collapsed_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_new_conversation_button_collapsed_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_new_conversation_button_collapsed_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_new_conversation_button_shadow.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_new_conversation_button_shadow.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_new_conversation_button_shadow.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_new_conversation_button_shadow.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_paths_building.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_paths_building.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_paths_building.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_paths_building.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_pn_option_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_pn_option_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_pn_option_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_pn_option_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_pn_option_border.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_pn_option_border.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_pn_option_border.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_pn_option_border.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_received_message_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_received_message_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_received_message_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_received_message_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_search_bar_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_search_bar_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_search_bar_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_search_bar_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_search_bar_placeholder.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_search_bar_placeholder.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_search_bar_placeholder.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_search_bar_placeholder.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_sent_message_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_sent_message_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_sent_message_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_sent_message_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_separator.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_separator.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_separator.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_separator.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_setting_button_selected.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_setting_button_selected.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_setting_button_selected.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_setting_button_selected.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_text.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_text.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_text.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_text.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_unimportant.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_unimportant.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_unimportant.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_unimportant.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_unimportant_button_background.colorset/Contents.json b/SessionUIKit/Style Guide/Colors.xcassets/session_unimportant_button_background.colorset/Contents.json
similarity index 100%
rename from SignalMessaging/Loki/Redesign/Style Guide/Colors.xcassets/session_unimportant_button_background.colorset/Contents.json
rename to SessionUIKit/Style Guide/Colors.xcassets/session_unimportant_button_background.colorset/Contents.json
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Fonts.swift b/SessionUIKit/Style Guide/Fonts.swift
similarity index 96%
rename from SignalMessaging/Loki/Redesign/Style Guide/Fonts.swift
rename to SessionUIKit/Style Guide/Fonts.swift
index 34e66a477..d6369b1ae 100644
--- a/SignalMessaging/Loki/Redesign/Style Guide/Fonts.swift
+++ b/SessionUIKit/Style Guide/Fonts.swift
@@ -1,3 +1,4 @@
+import UIKit
@objc(LKFonts)
public final class Fonts : NSObject {
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Gradients.swift b/SessionUIKit/Style Guide/Gradients.swift
similarity index 99%
rename from SignalMessaging/Loki/Redesign/Style Guide/Gradients.swift
rename to SessionUIKit/Style Guide/Gradients.swift
index 1af4d69d3..65730c225 100644
--- a/SignalMessaging/Loki/Redesign/Style Guide/Gradients.swift
+++ b/SessionUIKit/Style Guide/Gradients.swift
@@ -1,3 +1,4 @@
+import UIKit
@objc(LKGradient)
public final class Gradient : NSObject {
diff --git a/SessionUIKit/Style Guide/Notification+AppMode.swift b/SessionUIKit/Style Guide/Notification+AppMode.swift
new file mode 100644
index 000000000..d23762736
--- /dev/null
+++ b/SessionUIKit/Style Guide/Notification+AppMode.swift
@@ -0,0 +1,10 @@
+
+public extension Notification.Name {
+
+ static let appModeChanged = Notification.Name("appModeChanged")
+}
+
+@objc public extension NSNotification {
+
+ @objc public static let appModeChanged = Notification.Name.appModeChanged.rawValue as NSString
+}
diff --git a/SignalMessaging/Loki/Redesign/Style Guide/Values.swift b/SessionUIKit/Style Guide/Values.swift
similarity index 99%
rename from SignalMessaging/Loki/Redesign/Style Guide/Values.swift
rename to SessionUIKit/Style Guide/Values.swift
index 008b10c8f..59cf80756 100644
--- a/SignalMessaging/Loki/Redesign/Style Guide/Values.swift
+++ b/SessionUIKit/Style Guide/Values.swift
@@ -1,3 +1,4 @@
+import UIKit
@objc(LKValues)
public final class Values : NSObject {
diff --git a/SignalMessaging/Loki/Redesign/Utilities/DeviceUtilities.swift b/SessionUIKit/Utilities/DeviceUtilities.swift
similarity index 93%
rename from SignalMessaging/Loki/Redesign/Utilities/DeviceUtilities.swift
rename to SessionUIKit/Utilities/DeviceUtilities.swift
index ee4c13f95..16659ff30 100644
--- a/SignalMessaging/Loki/Redesign/Utilities/DeviceUtilities.swift
+++ b/SessionUIKit/Utilities/DeviceUtilities.swift
@@ -1,3 +1,4 @@
+import UIKit
public var isIPhone5OrSmaller: Bool {
return (UIScreen.main.bounds.height - 568) < 1
diff --git a/SessionUIKit/Utilities/UIImage+Tinting.swift b/SessionUIKit/Utilities/UIImage+Tinting.swift
new file mode 100644
index 000000000..ddabf8b4b
--- /dev/null
+++ b/SessionUIKit/Utilities/UIImage+Tinting.swift
@@ -0,0 +1,11 @@
+import UIKit
+
+public extension UIImage {
+
+ func withTint(_ color: UIColor) -> UIImage? {
+ let template = self.withRenderingMode(.alwaysTemplate)
+ let imageView = UIImageView(image: template)
+ imageView.tintColor = color
+ return imageView.toImage(isOpaque: imageView.isOpaque, scale: UIScreen.main.scale)
+ }
+}
diff --git a/SignalMessaging/Loki/Redesign/Utilities/UIView+Constraints.swift b/SessionUIKit/Utilities/UIView+Constraints.swift
similarity index 99%
rename from SignalMessaging/Loki/Redesign/Utilities/UIView+Constraints.swift
rename to SessionUIKit/Utilities/UIView+Constraints.swift
index 2a9873a6f..0dcad6829 100644
--- a/SignalMessaging/Loki/Redesign/Utilities/UIView+Constraints.swift
+++ b/SessionUIKit/Utilities/UIView+Constraints.swift
@@ -1,3 +1,4 @@
+import UIKit
public protocol ConstraintUtilitiesEdge { }
diff --git a/SessionUIKit/Utilities/UIView+Rendering.swift b/SessionUIKit/Utilities/UIView+Rendering.swift
new file mode 100644
index 000000000..9fc1b9379
--- /dev/null
+++ b/SessionUIKit/Utilities/UIView+Rendering.swift
@@ -0,0 +1,14 @@
+import UIKit
+
+public extension UIView {
+
+ func toImage(isOpaque: Bool, scale: CGFloat) -> UIImage? {
+ let format = UIGraphicsImageRendererFormat()
+ format.scale = scale
+ format.opaque = isOpaque
+ let renderer = UIGraphicsImageRenderer(bounds: self.bounds, format: format)
+ return renderer.image { context in
+ self.layer.render(in: context.cgContext)
+ }
+ }
+}
diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj
index 85b1da08f..db116d39c 100644
--- a/Signal.xcodeproj/project.pbxproj
+++ b/Signal.xcodeproj/project.pbxproj
@@ -523,7 +523,6 @@
B82B408E239DC00D00A248E7 /* DisplayNameVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B408D239DC00D00A248E7 /* DisplayNameVC.swift */; };
B82B4090239DD75000A248E7 /* RestoreVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B408F239DD75000A248E7 /* RestoreVC.swift */; };
B82B4094239DF15900A248E7 /* ConversationTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B4093239DF15900A248E7 /* ConversationTitleView.swift */; };
- B83F2B86240C7B8F000A54AB /* NewConversationButtonSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B83F2B85240C7B8F000A54AB /* NewConversationButtonSet.swift */; };
B83F2B88240CB75A000A54AB /* UIImage+Scaling.swift in Sources */ = {isa = PBXBuildFile; fileRef = B83F2B87240CB75A000A54AB /* UIImage+Scaling.swift */; };
B846365B22B7418B00AF1514 /* Identicon+ObjC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B846365A22B7418B00AF1514 /* Identicon+ObjC.swift */; };
B84664F5235022F30083A1CD /* MentionUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84664F4235022F30083A1CD /* MentionUtilities.swift */; };
@@ -533,12 +532,10 @@
B85357C723A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C623A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift */; };
B8544E3323D50E4900299F14 /* AppearanceUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8544E3223D50E4900299F14 /* AppearanceUtilities.swift */; };
B8544E3423D51EEF00299F14 /* ProfilePictureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82AC238F734800BA5194 /* ProfilePictureView.swift */; };
- B8544E3523D5201400299F14 /* UIView+Constraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */; };
B86BD08423399ACF000F5AE3 /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08323399ACF000F5AE3 /* Modal.swift */; };
B86BD08623399CEF000F5AE3 /* SeedModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08523399CEF000F5AE3 /* SeedModal.swift */; };
B8783E9E23EB948D00404FB8 /* UILabel+Interaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8783E9D23EB948D00404FB8 /* UILabel+Interaction.swift */; };
B879D449247E1BE300DB3608 /* PathVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B879D448247E1BE300DB3608 /* PathVC.swift */; };
- B879D44B247E1D9200DB3608 /* PathStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B879D44A247E1D9200DB3608 /* PathStatusView.swift */; };
B885D5F4233491AB00EE0D8E /* DeviceLinkingModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885D5F3233491AB00EE0D8E /* DeviceLinkingModal.swift */; };
B886B4A72398B23E00211ABE /* QRCodeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B886B4A62398B23E00211ABE /* QRCodeVC.swift */; };
B886B4A92398BA1500211ABE /* QRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B886B4A82398BA1500211ABE /* QRCode.swift */; };
@@ -547,21 +544,9 @@
B894D0712339D6F300B4D94D /* DeviceLinkingModalDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B894D0702339D6F300B4D94D /* DeviceLinkingModalDelegate.swift */; };
B894D0752339EDCF00B4D94D /* NukeDataModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B894D0742339EDCF00B4D94D /* NukeDataModal.swift */; };
B8B26C8F234D629C004ED98C /* MentionCandidateSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B26C8E234D629C004ED98C /* MentionCandidateSelectionView.swift */; };
- B8B5BCEC2394D869003823C9 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B5BCEB2394D869003823C9 /* Button.swift */; };
B8BB82A5238F627000BA5194 /* HomeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82A4238F627000BA5194 /* HomeVC.swift */; };
- B8BB82AB238F669C00BA5194 /* ConversationCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82AA238F669C00BA5194 /* ConversationCell.swift */; };
- B8BB82B12390C37000BA5194 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B02390C37000BA5194 /* SearchBar.swift */; };
- B8BB82B523947F2D00BA5194 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B423947F2D00BA5194 /* TextField.swift */; };
- B8BB82B92394911B00BA5194 /* Separator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B82394911B00BA5194 /* Separator.swift */; };
- B8C9689523FA1B72005F64E0 /* AppMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C9689023FA1401005F64E0 /* AppMode.swift */; };
- B8C9689623FA1B72005F64E0 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB829F238F322400BA5194 /* Colors.swift */; };
- B8C9689723FA1B72005F64E0 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82BD2394D4CE00BA5194 /* Fonts.swift */; };
- B8C9689823FA1B72005F64E0 /* Gradients.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82A8238F62FB00BA5194 /* Gradients.swift */; };
- B8C9689923FA1B72005F64E0 /* Values.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82A1238F356100BA5194 /* Values.swift */; };
- B8C9689A23FA1B95005F64E0 /* DeviceUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8544E3023D16CA500299F14 /* DeviceUtilities.swift */; };
B8CCF6352396005F0091D419 /* SpaceMono-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = B8CCF6342396005F0091D419 /* SpaceMono-Regular.ttf */; };
B8CCF63723961D6D0091D419 /* NewPrivateChatVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF63623961D6D0091D419 /* NewPrivateChatVC.swift */; };
- B8CCF639239721E20091D419 /* TabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF638239721E20091D419 /* TabBar.swift */; };
B8CCF63F23975CFB0091D419 /* JoinPublicChatVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF63E23975CFB0091D419 /* JoinPublicChatVC.swift */; };
B8CCF6432397711F0091D419 /* SettingsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF6422397711F0091D419 /* SettingsVC.swift */; };
B90418E6183E9DD40038554A /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B90418E5183E9DD40038554A /* DateUtil.m */; };
@@ -581,13 +566,39 @@
C31A6C5A247F214E001123EF /* UIView+Glow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31A6C59247F214E001123EF /* UIView+Glow.swift */; };
C31A6C5C247F2CF3001123EF /* CGRect+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31A6C5B247F2CF3001123EF /* CGRect+Utilities.swift */; };
C31D1DD325216101005D4DA8 /* UIView+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31D1DD225216101005D4DA8 /* UIView+Utilities.swift */; };
- C31D1DDD25217014005D4DA8 /* UserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31D1DDC25217014005D4DA8 /* UserCell.swift */; };
C31D1DE32521718E005D4DA8 /* UserSelectionVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31D1DE22521718E005D4DA8 /* UserSelectionVC.swift */; };
C31D1DE9252172D4005D4DA8 /* ContactUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31D1DE8252172D4005D4DA8 /* ContactUtilities.swift */; };
C31F812625258FB000DD9FD9 /* Storage+VolumeSamples.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31F812525258FB000DD9FD9 /* Storage+VolumeSamples.swift */; };
C31FFE57254A5FFE00F19441 /* KeyPairUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31FFE56254A5FFE00F19441 /* KeyPairUtilities.swift */; };
C329FEEC24F7277900B1C64C /* LightModeSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C329FEEB24F7277900B1C64C /* LightModeSheet.swift */; };
C329FEEF24F7743F00B1C64C /* UIViewController+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C329FEED24F7742E00B1C64C /* UIViewController+Utilities.swift */; };
+ C33100082558FF6D00070591 /* NewConversationButtonSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = B83F2B85240C7B8F000A54AB /* NewConversationButtonSet.swift */; };
+ C33100092558FF6D00070591 /* UserCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C31D1DDC25217014005D4DA8 /* UserCell.swift */; };
+ C33100142558FFC200070591 /* UIImage+Tinting.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33100132558FFC200070591 /* UIImage+Tinting.swift */; };
+ C33100282559000A00070591 /* UIView+Rendering.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33100272559000A00070591 /* UIView+Rendering.swift */; };
+ C3310033255900A400070591 /* Notification+AppMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3310032255900A400070591 /* Notification+AppMode.swift */; };
+ C331003D255900F200070591 /* SessionUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C331FF1B2558F9D300070591 /* SessionUIKit.framework */; };
+ C331FF1F2558F9D300070591 /* SessionUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C331FF1D2558F9D300070591 /* SessionUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C331FF222558F9D300070591 /* SessionUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C331FF1B2558F9D300070591 /* SessionUIKit.framework */; };
+ C331FF232558F9D300070591 /* SessionUIKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C331FF1B2558F9D300070591 /* SessionUIKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ C331FF962558FA6B00070591 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB829F238F322400BA5194 /* Colors.swift */; };
+ C331FF972558FA6B00070591 /* Fonts.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82BD2394D4CE00BA5194 /* Fonts.swift */; };
+ C331FF982558FA6B00070591 /* AppMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C9689023FA1401005F64E0 /* AppMode.swift */; };
+ C331FF992558FA6B00070591 /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C39DD28724F3318C008590FC /* Colors.xcassets */; };
+ C331FF9A2558FA6B00070591 /* Values.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82A1238F356100BA5194 /* Values.swift */; };
+ C331FF9B2558FA6B00070591 /* Gradients.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82A8238F62FB00BA5194 /* Gradients.swift */; };
+ C331FFB82558FA8D00070591 /* DeviceUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8544E3023D16CA500299F14 /* DeviceUtilities.swift */; };
+ C331FFB92558FA8D00070591 /* UIView+Constraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */; };
+ C331FFE02558FB0000070591 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B02390C37000BA5194 /* SearchBar.swift */; };
+ C331FFE32558FB0000070591 /* TabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF638239721E20091D419 /* TabBar.swift */; };
+ C331FFE42558FB0000070591 /* Button.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B5BCEB2394D869003823C9 /* Button.swift */; };
+ C331FFE72558FB0000070591 /* TextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B423947F2D00BA5194 /* TextField.swift */; };
+ C331FFE82558FB0000070591 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C3CF8824D8EED300E1CCE7 /* TextView.swift */; };
+ C331FFE92558FB0000070591 /* Separator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82B82394911B00BA5194 /* Separator.swift */; };
+ C331FFF32558FF0300070591 /* PathStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B879D44A247E1D9200DB3608 /* PathStatusView.swift */; };
+ C331FFF42558FF0300070591 /* PNOptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C353F8F8244809150011121A /* PNOptionView.swift */; };
+ C331FFFE2558FF3B00070591 /* ConversationCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8BB82AA238F669C00BA5194 /* ConversationCell.swift */; };
+ C3402FE52559036600EA6424 /* SessionUIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C331FF1B2558F9D300070591 /* SessionUIKit.framework */; };
C3471ECB2555356A00297E91 /* MessageSender+Encryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3471ECA2555356A00297E91 /* MessageSender+Encryption.swift */; };
C3471ED42555386B00297E91 /* AESGCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2A5D72553860B00C340D1 /* AESGCM.swift */; };
C3471F4225553A4D00297E91 /* Threading.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3471F4125553A4D00297E91 /* Threading.swift */; };
@@ -609,7 +620,6 @@
C352A3932557883D00338F3E /* JobDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C352A3922557883D00338F3E /* JobDelegate.swift */; };
C352A3A62557B60D00338F3E /* TSRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = C352A3A52557B60D00338F3E /* TSRequest.m */; };
C352A3B72557B6ED00338F3E /* TSRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = C352A3A42557B5F000338F3E /* TSRequest.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C353F8F9244809150011121A /* PNOptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C353F8F8244809150011121A /* PNOptionView.swift */; };
C3548F0624456447009433A8 /* PNModeVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3548F0524456447009433A8 /* PNModeVC.swift */; };
C3548F0824456AB6009433A8 /* UIView+Wrapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3548F0724456AB6009433A8 /* UIView+Wrapping.swift */; };
C354E75A23FE2A7600CE22E3 /* BaseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C354E75923FE2A7600CE22E3 /* BaseVC.swift */; };
@@ -628,9 +638,6 @@
C396DAF32518408B00FF6DC5 /* Description.swift in Sources */ = {isa = PBXBuildFile; fileRef = C396DAEC2518408A00FF6DC5 /* Description.swift */; };
C396DAF42518408B00FF6DC5 /* Parser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C396DAED2518408B00FF6DC5 /* Parser.swift */; };
C396DAF52518408B00FF6DC5 /* CSV.swift in Sources */ = {isa = PBXBuildFile; fileRef = C396DAEE2518408B00FF6DC5 /* CSV.swift */; };
- C39DD28824F3318C008590FC /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C39DD28724F3318C008590FC /* Colors.xcassets */; };
- C39DD28A24F3336E008590FC /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C39DD28724F3318C008590FC /* Colors.xcassets */; };
- C39DD28B24F3336F008590FC /* Colors.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C39DD28724F3318C008590FC /* Colors.xcassets */; };
C3A71D0B2558989C0043A11F /* MessageWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A71D0A2558989C0043A11F /* MessageWrapper.swift */; };
C3A71D1E25589AC30043A11F /* WebSocketProto.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A71D1C25589AC30043A11F /* WebSocketProto.swift */; };
C3A71D1F25589AC30043A11F /* WebSocketResources.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A71D1D25589AC30043A11F /* WebSocketResources.pb.swift */; };
@@ -807,7 +814,6 @@
C3C2AC0A2553C9A100C340D1 /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2AC092553C9A100C340D1 /* Configuration.swift */; };
C3C2AC2E2553CBEB00C340D1 /* String+Trimming.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C2AC2D2553CBEB00C340D1 /* String+Trimming.swift */; };
C3C2AC372553CCE600C340D1 /* SessionUtilitiesKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A679255388CC00C340D1 /* SessionUtilitiesKit.framework */; };
- C3C3CF8924D8EED300E1CCE7 /* TextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C3CF8824D8EED300E1CCE7 /* TextView.swift */; };
C3D0972B2510499C00F6E3E4 /* BackgroundPoller.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3D0972A2510499C00F6E3E4 /* BackgroundPoller.swift */; };
C3DAB3242480CB2B00725F25 /* SRCopyableLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3DAB3232480CB2A00725F25 /* SRCopyableLabel.swift */; };
C3DFFAC623E96F0D0058DAF8 /* Sheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3DFFAC523E96F0D0058DAF8 /* Sheet.swift */; };
@@ -881,6 +887,13 @@
remoteGlobalIDString = D221A088169C9E5E00537ABF;
remoteInfo = Signal;
};
+ C331FF202558F9D300070591 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D221A080169C9E5E00537ABF /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = C331FF1A2558F9D300070591;
+ remoteInfo = SessionUIKit;
+ };
C36B8705243C50B00049991D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
@@ -941,6 +954,7 @@
C3C2A681255388CC00C340D1 /* SessionUtilitiesKit.framework in Embed Frameworks */,
C3C2A5A7255385C100C340D1 /* SessionSnodeKit.framework in Embed Frameworks */,
4535189A1FC63DBF00210559 /* SignalMessaging.framework in Embed Frameworks */,
+ C331FF232558F9D300070591 /* SessionUIKit.framework in Embed Frameworks */,
C3C2A6F825539DE700C340D1 /* SessionMessagingKit.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
@@ -1637,6 +1651,12 @@
C31FFE56254A5FFE00F19441 /* KeyPairUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyPairUtilities.swift; sourceTree = ""; };
C329FEEB24F7277900B1C64C /* LightModeSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LightModeSheet.swift; sourceTree = ""; };
C329FEED24F7742E00B1C64C /* UIViewController+Utilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+Utilities.swift"; sourceTree = ""; };
+ C33100132558FFC200070591 /* UIImage+Tinting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Tinting.swift"; sourceTree = ""; };
+ C33100272559000A00070591 /* UIView+Rendering.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Rendering.swift"; sourceTree = ""; };
+ C3310032255900A400070591 /* Notification+AppMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+AppMode.swift"; sourceTree = ""; };
+ C331FF1B2558F9D300070591 /* SessionUIKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SessionUIKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C331FF1D2558F9D300070591 /* SessionUIKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SessionUIKit.h; sourceTree = ""; };
+ C331FF1E2558F9D300070591 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
C3471ECA2555356A00297E91 /* MessageSender+Encryption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MessageSender+Encryption.swift"; sourceTree = ""; };
C3471F4125553A4D00297E91 /* Threading.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Threading.swift; sourceTree = ""; };
C3471F4B25553AB000297E91 /* MessageReceiver+Decryption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MessageReceiver+Decryption.swift"; sourceTree = ""; };
@@ -1900,6 +1920,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ C3402FE52559036600EA6424 /* SessionUIKit.framework in Frameworks */,
453518A21FC63E2900210559 /* SignalMessaging.framework in Frameworks */,
2AE2882E4C2B96BFFF9EE27C /* Pods_SignalShareExtension.framework in Frameworks */,
);
@@ -1909,6 +1930,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ C331003D255900F200070591 /* SessionUIKit.framework in Frameworks */,
4AC4EA13C8A444455DAB351F /* Pods_SignalMessaging.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1922,6 +1944,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C331FF182558F9D300070591 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C3C2A59C255385C100C340D1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -1988,6 +2017,7 @@
C3C2A680255388CC00C340D1 /* SessionUtilitiesKit.framework in Frameworks */,
A1C32D5017A06538000A904E /* AddressBookUI.framework in Frameworks */,
D2AEACDC16C426DA00C364C0 /* CFNetwork.framework in Frameworks */,
+ C331FF222558F9D300070591 /* SessionUIKit.framework in Frameworks */,
D2179CFE16BB0B480006F3AB /* SystemConfiguration.framework in Frameworks */,
C3C2A6F725539DE700C340D1 /* SessionMessagingKit.framework in Frameworks */,
D2179CFC16BB0B3A0006F3AB /* CoreTelephony.framework in Frameworks */,
@@ -3132,12 +3162,6 @@
B8BB82A3238F356800BA5194 /* Style Guide */ = {
isa = PBXGroup;
children = (
- B8C9689023FA1401005F64E0 /* AppMode.swift */,
- B8BB829F238F322400BA5194 /* Colors.swift */,
- C39DD28724F3318C008590FC /* Colors.xcassets */,
- B8BB82BD2394D4CE00BA5194 /* Fonts.swift */,
- B8BB82A8238F62FB00BA5194 /* Gradients.swift */,
- B8BB82A1238F356100BA5194 /* Values.swift */,
);
path = "Style Guide";
sourceTree = "";
@@ -3173,9 +3197,7 @@
B8C9689423FA1B3D005F64E0 /* Utilities */ = {
isa = PBXGroup;
children = (
- B8544E3023D16CA500299F14 /* DeviceUtilities.swift */,
C329FEED24F7742E00B1C64C /* UIViewController+Utilities.swift */,
- B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */,
C31D1DD225216101005D4DA8 /* UIView+Utilities.swift */,
);
path = Utilities;
@@ -3184,22 +3206,16 @@
B8CCF63B239757C10091D419 /* Components */ = {
isa = PBXGroup;
children = (
- B8B5BCEB2394D869003823C9 /* Button.swift */,
B8BB82AA238F669C00BA5194 /* ConversationCell.swift */,
+ B83F2B85240C7B8F000A54AB /* NewConversationButtonSet.swift */,
+ C31D1DDC25217014005D4DA8 /* UserCell.swift */,
B82B4093239DF15900A248E7 /* ConversationTitleView.swift */,
B82B40892399EC0600A248E7 /* FakeChatView.swift */,
B8B26C8E234D629C004ED98C /* MentionCandidateSelectionView.swift */,
- B83F2B85240C7B8F000A54AB /* NewConversationButtonSet.swift */,
B879D44A247E1D9200DB3608 /* PathStatusView.swift */,
C353F8F8244809150011121A /* PNOptionView.swift */,
- B8BB82B02390C37000BA5194 /* SearchBar.swift */,
B85357BE23A1AE0800AAF6CD /* SeedReminderView.swift */,
- B8BB82B82394911B00BA5194 /* Separator.swift */,
2400888D239F30A600305217 /* SessionRestorationView.swift */,
- B8CCF638239721E20091D419 /* TabBar.swift */,
- B8BB82B423947F2D00BA5194 /* TextField.swift */,
- C3C3CF8824D8EED300E1CCE7 /* TextView.swift */,
- C31D1DDC25217014005D4DA8 /* UserCell.swift */,
C364534F252449260045C478 /* VoiceMessageView.swift */,
);
path = Components;
@@ -3330,6 +3346,64 @@
path = Dependencies;
sourceTree = "";
};
+ C331FF1C2558F9D300070591 /* SessionUIKit */ = {
+ isa = PBXGroup;
+ children = (
+ C331FF422558F9E400070591 /* Meta */,
+ C331FFCC2558FAF300070591 /* Components */,
+ C331FF5E2558FA0F00070591 /* Style Guide */,
+ C331FFAE2558FA7700070591 /* Utilities */,
+ );
+ path = SessionUIKit;
+ sourceTree = "";
+ };
+ C331FF422558F9E400070591 /* Meta */ = {
+ isa = PBXGroup;
+ children = (
+ C331FF1D2558F9D300070591 /* SessionUIKit.h */,
+ C331FF1E2558F9D300070591 /* Info.plist */,
+ );
+ path = Meta;
+ sourceTree = "";
+ };
+ C331FF5E2558FA0F00070591 /* Style Guide */ = {
+ isa = PBXGroup;
+ children = (
+ B8C9689023FA1401005F64E0 /* AppMode.swift */,
+ C3310032255900A400070591 /* Notification+AppMode.swift */,
+ B8BB829F238F322400BA5194 /* Colors.swift */,
+ C39DD28724F3318C008590FC /* Colors.xcassets */,
+ B8BB82BD2394D4CE00BA5194 /* Fonts.swift */,
+ B8BB82A8238F62FB00BA5194 /* Gradients.swift */,
+ B8BB82A1238F356100BA5194 /* Values.swift */,
+ );
+ path = "Style Guide";
+ sourceTree = "";
+ };
+ C331FFAE2558FA7700070591 /* Utilities */ = {
+ isa = PBXGroup;
+ children = (
+ B8544E3023D16CA500299F14 /* DeviceUtilities.swift */,
+ C33100132558FFC200070591 /* UIImage+Tinting.swift */,
+ B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */,
+ C33100272559000A00070591 /* UIView+Rendering.swift */,
+ );
+ path = Utilities;
+ sourceTree = "";
+ };
+ C331FFCC2558FAF300070591 /* Components */ = {
+ isa = PBXGroup;
+ children = (
+ B8B5BCEB2394D869003823C9 /* Button.swift */,
+ B8BB82B02390C37000BA5194 /* SearchBar.swift */,
+ B8BB82B82394911B00BA5194 /* Separator.swift */,
+ B8CCF638239721E20091D419 /* TabBar.swift */,
+ B8BB82B423947F2D00BA5194 /* TextField.swift */,
+ C3C3CF8824D8EED300E1CCE7 /* TextView.swift */,
+ );
+ path = Components;
+ sourceTree = "";
+ };
C352A2F325574B3300338F3E /* Jobs */ = {
isa = PBXGroup;
children = (
@@ -3755,6 +3829,7 @@
453518691FC635DD00210559 /* SignalShareExtension */,
453518931FC63DBF00210559 /* SignalMessaging */,
7BC01A3C241F40AB00BC7C55 /* LokiPushNotificationService */,
+ C331FF1C2558F9D300070591 /* SessionUIKit */,
C3C2A6F125539DE700C340D1 /* SessionMessagingKit */,
C3C2A8632553B41A00C340D1 /* SessionProtocolKit */,
C3C2A5A0255385C100C340D1 /* SessionSnodeKit */,
@@ -3777,6 +3852,7 @@
C3C2A679255388CC00C340D1 /* SessionUtilitiesKit.framework */,
C3C2A6F025539DE700C340D1 /* SessionMessagingKit.framework */,
C3C2A8622553B41A00C340D1 /* SessionProtocolKit.framework */,
+ C331FF1B2558F9D300070591 /* SessionUIKit.framework */,
);
name = Products;
sourceTree = "";
@@ -3945,6 +4021,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C331FF162558F9D300070591 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C331FF1F2558F9D300070591 /* SessionUIKit.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C3C2A59A255385C100C340D1 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -4088,6 +4172,24 @@
productReference = 7BC01A3B241F40AB00BC7C55 /* LokiPushNotificationService.appex */;
productType = "com.apple.product-type.app-extension";
};
+ C331FF1A2558F9D300070591 /* SessionUIKit */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C331FF262558F9D400070591 /* Build configuration list for PBXNativeTarget "SessionUIKit" */;
+ buildPhases = (
+ C331FF162558F9D300070591 /* Headers */,
+ C331FF172558F9D300070591 /* Sources */,
+ C331FF182558F9D300070591 /* Frameworks */,
+ C331FF192558F9D300070591 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = SessionUIKit;
+ productName = SessionUIKit;
+ productReference = C331FF1B2558F9D300070591 /* SessionUIKit.framework */;
+ productType = "com.apple.product-type.framework";
+ };
C3C2A59E255385C100C340D1 /* SessionSnodeKit */ = {
isa = PBXNativeTarget;
buildConfigurationList = C3C2A5AA255385C100C340D1 /* Build configuration list for PBXNativeTarget "SessionSnodeKit" */;
@@ -4188,6 +4290,7 @@
C3C2A67F255388CC00C340D1 /* PBXTargetDependency */,
C3C2A6F625539DE700C340D1 /* PBXTargetDependency */,
C3C2A8682553B41A00C340D1 /* PBXTargetDependency */,
+ C331FF212558F9D300070591 /* PBXTargetDependency */,
);
name = Signal;
productName = RedPhone;
@@ -4259,6 +4362,11 @@
DevelopmentTeam = SUQ8J2PCT7;
ProvisioningStyle = Automatic;
};
+ C331FF1A2558F9D300070591 = {
+ CreatedOnToolsVersion = 12.1;
+ DevelopmentTeam = SUQ8J2PCT7;
+ ProvisioningStyle = Automatic;
+ };
C3C2A59E255385C100C340D1 = {
CreatedOnToolsVersion = 12.1;
DevelopmentTeam = SUQ8J2PCT7;
@@ -4352,6 +4460,7 @@
453518671FC635DD00210559 /* SignalShareExtension */,
453518911FC63DBF00210559 /* SignalMessaging */,
7BC01A3A241F40AB00BC7C55 /* LokiPushNotificationService */,
+ C331FF1A2558F9D300070591 /* SessionUIKit */,
C3C2A6EF25539DE700C340D1 /* SessionMessagingKit */,
C3C2A8612553B41A00C340D1 /* SessionProtocolKit */,
C3C2A59E255385C100C340D1 /* SessionSnodeKit */,
@@ -4371,7 +4480,6 @@
347850331FD7494A007B8332 /* fontawesome-webfont.ttf in Resources */,
3478504C1FD7496D007B8332 /* Images.xcassets in Resources */,
347850311FD7494A007B8332 /* dripicons-v2.ttf in Resources */,
- C39DD28B24F3336F008590FC /* Colors.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -4379,7 +4487,6 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- C39DD28824F3318C008590FC /* Colors.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -4391,6 +4498,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C331FF192558F9D300070591 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C331FF992558FA6B00070591 /* Colors.xcassets in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C3C2A59D255385C100C340D1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -4468,7 +4583,6 @@
45B74A852044AAB600CD42F8 /* bamboo.aifc in Resources */,
45B74A782044AAB600CD42F8 /* bamboo-quiet.aifc in Resources */,
45B74A7B2044AAB600CD42F8 /* chord.aifc in Resources */,
- C39DD28A24F3336E008590FC /* Colors.xcassets in Resources */,
45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */,
45B74A832044AAB600CD42F8 /* circles.aifc in Resources */,
45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */,
@@ -4897,7 +5011,6 @@
34AC09E1211B39B100997B47 /* SelectThreadViewController.m in Sources */,
34AC09EF211B39B100997B47 /* ViewControllerUtils.m in Sources */,
346941A2215D2EE400B5BFAD /* OWSConversationColor.m in Sources */,
- B8C9689723FA1B72005F64E0 /* Fonts.swift in Sources */,
34AC0A17211B39EA00997B47 /* VideoPlayerView.swift in Sources */,
34BEDB1321C43F6A007B0EAE /* ImageEditorView.swift in Sources */,
34AC09EE211B39B100997B47 /* EditContactShareNameViewController.swift in Sources */,
@@ -4913,14 +5026,12 @@
346129B51FD1F7E800532771 /* OWSProfileManager.m in Sources */,
342950832124C9750000B063 /* OWSTextView.m in Sources */,
452EC6E1205FF5DC000E787C /* Bench.swift in Sources */,
- B8C9689923FA1B72005F64E0 /* Values.swift in Sources */,
34BBC85D220D19D600857249 /* ImageEditorPanGestureRecognizer.swift in Sources */,
342950882124CB0A0000B063 /* OWSSearchBar.m in Sources */,
342950822124C9750000B063 /* OWSTextField.m in Sources */,
34AC0A13211B39EA00997B47 /* DisappearingTimerConfigurationView.swift in Sources */,
4CA46F4D219CFDAA0038ABDE /* GalleryRailView.swift in Sources */,
34480B621FD0A98800BC14EF /* UIColor+OWS.m in Sources */,
- B8C9689823FA1B72005F64E0 /* Gradients.swift in Sources */,
4C20B2B720CA0034001BAC90 /* ThreadViewModel.swift in Sources */,
34BBC857220C7ADA00857249 /* ImageEditorItem.swift in Sources */,
346E35BE224283B100E55D5F /* UIAlertController+OWS.swift in Sources */,
@@ -4944,9 +5055,7 @@
451F8A461FD715BA005CB9DA /* OWSGroupAvatarBuilder.m in Sources */,
34BBC85B220C7ADA00857249 /* OrderedDictionary.swift in Sources */,
346129961FD1E30000532771 /* OWSDatabaseMigration.m in Sources */,
- B8544E3523D5201400299F14 /* UIView+Constraints.swift in Sources */,
34AC09EA211B39B100997B47 /* ModalActivityIndicatorViewController.swift in Sources */,
- B8C9689523FA1B72005F64E0 /* AppMode.swift in Sources */,
344F248D2007CCD600CFB4F4 /* DisplayableText.swift in Sources */,
450998651FD8A34D00D89EB3 /* DeviceSleepManager.swift in Sources */,
34AC09EB211B39B100997B47 /* ContactShareApprovalViewController.swift in Sources */,
@@ -4960,7 +5069,6 @@
451F8A341FD710C3005CB9DA /* FullTextSearcher.swift in Sources */,
34080F04222858DC0087E99F /* OWSViewController+ImageEditor.swift in Sources */,
34AC0A10211B39EA00997B47 /* TappableView.swift in Sources */,
- B8C9689A23FA1B95005F64E0 /* DeviceUtilities.swift in Sources */,
346129B61FD1F7E800532771 /* ProfileFetcherJob.swift in Sources */,
34AC09E9211B39B100997B47 /* OWSTableViewController.m in Sources */,
340872CE2239596100CB25B0 /* AttachmentApprovalInputAccessoryView.swift in Sources */,
@@ -5024,7 +5132,6 @@
4C948FF72146EB4800349F0D /* BlockListCache.swift in Sources */,
B846365B22B7418B00AF1514 /* Identicon+ObjC.swift in Sources */,
4551DB5A205C562300C8AE75 /* Collection+OWS.swift in Sources */,
- B8C9689623FA1B72005F64E0 /* Colors.swift in Sources */,
34BBC84F220B8A0100857249 /* ImageEditorCropViewController.swift in Sources */,
34AC09ED211B39B100997B47 /* ContactFieldView.swift in Sources */,
B8544E3423D51EEF00299F14 /* ProfilePictureView.swift in Sources */,
@@ -5044,6 +5151,29 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ C331FF172558F9D300070591 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C331FF972558FA6B00070591 /* Fonts.swift in Sources */,
+ C331FF9B2558FA6B00070591 /* Gradients.swift in Sources */,
+ C331FFB82558FA8D00070591 /* DeviceUtilities.swift in Sources */,
+ C331FFE72558FB0000070591 /* TextField.swift in Sources */,
+ C331FFE32558FB0000070591 /* TabBar.swift in Sources */,
+ C331FFB92558FA8D00070591 /* UIView+Constraints.swift in Sources */,
+ C331FF962558FA6B00070591 /* Colors.swift in Sources */,
+ C331FFE02558FB0000070591 /* SearchBar.swift in Sources */,
+ C331FF982558FA6B00070591 /* AppMode.swift in Sources */,
+ C331FFE82558FB0000070591 /* TextView.swift in Sources */,
+ C331FF9A2558FA6B00070591 /* Values.swift in Sources */,
+ C331FFE42558FB0000070591 /* Button.swift in Sources */,
+ C33100142558FFC200070591 /* UIImage+Tinting.swift in Sources */,
+ C3310033255900A400070591 /* Notification+AppMode.swift in Sources */,
+ C331FFE92558FB0000070591 /* Separator.swift in Sources */,
+ C33100282559000A00070591 /* UIView+Rendering.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C3C2A59B255385C100C340D1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -5240,7 +5370,6 @@
340FC8B8204DAC8D007AEB0F /* AddToGroupViewController.m in Sources */,
341F2C0F1F2B8AE700D07D6B /* DebugUIMisc.m in Sources */,
B893063F2383961A005EAA8E /* ScanQRCodeWrapperVC.swift in Sources */,
- B83F2B86240C7B8F000A54AB /* NewConversationButtonSet.swift in Sources */,
B879D449247E1BE300DB3608 /* PathVC.swift in Sources */,
34E3EF0D1EFC235B007F6822 /* DebugUIDiskUsage.m in Sources */,
454A84042059C787008B8C75 /* MediaTileViewController.swift in Sources */,
@@ -5248,7 +5377,6 @@
340FC8B4204DAC8D007AEB0F /* OWSBackupSettingsViewController.m in Sources */,
34D1F0871F8678AA0066283D /* ConversationViewItem.m in Sources */,
451A13B11E13DED2000A50FD /* AppNotifications.swift in Sources */,
- C31D1DDD25217014005D4DA8 /* UserCell.swift in Sources */,
34D99CE4217509C2000AFB39 /* AppEnvironment.swift in Sources */,
348570A820F67575004FF32B /* OWSMessageHeaderView.m in Sources */,
450DF2091E0DD2C6003D14BE /* UserNotificationsAdaptee.swift in Sources */,
@@ -5257,7 +5385,6 @@
34D1F0AB1F867BFC0066283D /* OWSContactOffersCell.m in Sources */,
C3548F0824456AB6009433A8 /* UIView+Wrapping.swift in Sources */,
B82B408A2399EC0600A248E7 /* FakeChatView.swift in Sources */,
- B8BB82B92394911B00BA5194 /* Separator.swift in Sources */,
343A65981FC4CFE7000477A1 /* ConversationScrollButton.m in Sources */,
B82B40882399EB0E00A248E7 /* LandingVC.swift in Sources */,
34D1F0A91F867BFC0066283D /* ConversationViewCell.m in Sources */,
@@ -5265,7 +5392,6 @@
EF764C351DB67CC5000D9A87 /* UIViewController+Permissions.m in Sources */,
45CD81EF1DC030E7004C9430 /* SyncPushTokensJob.swift in Sources */,
34D2CCE0206939B400CB1A14 /* DebugUIMessagesAssetLoader.m in Sources */,
- C3C3CF8924D8EED300E1CCE7 /* TextView.swift in Sources */,
4CEB78C92178EBAB00F315D2 /* OWSSessionResetJobRecord.m in Sources */,
45794E861E00620000066731 /* CallUIAdapter.swift in Sources */,
340FC8BA204DAC8D007AEB0F /* FingerprintViewScanController.m in Sources */,
@@ -5296,7 +5422,6 @@
34A8B3512190A40E00218A25 /* MediaAlbumCellView.swift in Sources */,
34D1F0AE1F867BFC0066283D /* OWSMessageCell.m in Sources */,
C396DAF42518408B00FF6DC5 /* Parser.swift in Sources */,
- B8BB82AB238F669C00BA5194 /* ConversationCell.swift in Sources */,
4C4AEC4520EC343B0020E72B /* DismissableTextField.swift in Sources */,
4CB5F26720F6E1E2004D1B42 /* MenuActionsViewController.swift in Sources */,
3496955E219B605E00DCFE74 /* PhotoLibrary.swift in Sources */,
@@ -5321,6 +5446,7 @@
346129991FD1E4DA00532771 /* SignalApp.m in Sources */,
3496957121A301A100DCFE74 /* OWSBackupImportJob.m in Sources */,
34BECE301F7ABCF800D7438D /* GifPickerLayout.swift in Sources */,
+ C331FFFE2558FF3B00070591 /* ConversationCell.swift in Sources */,
C3DFFAC623E96F0D0058DAF8 /* Sheet.swift in Sources */,
C31FFE57254A5FFE00F19441 /* KeyPairUtilities.swift in Sources */,
343A65951FC47D5E000477A1 /* DebugUISyncMessages.m in Sources */,
@@ -5337,20 +5463,18 @@
4542DF54208D40AC007B4E76 /* LoadingViewController.swift in Sources */,
34D5CCA91EAE3D30005515DB /* AvatarViewHelper.m in Sources */,
34D1F0B71F87F8850066283D /* OWSGenericAttachmentView.m in Sources */,
- B8B5BCEC2394D869003823C9 /* Button.swift in Sources */,
34D920E720E179C200D51158 /* OWSMessageFooterView.m in Sources */,
341341EF2187467A00192D59 /* ConversationViewModel.m in Sources */,
- B8BB82B12390C37000BA5194 /* SearchBar.swift in Sources */,
348BB25D20A0C5530047AEC2 /* ContactShareViewHelper.swift in Sources */,
34B3F8801E8DF1700035BE1A /* InviteFlow.swift in Sources */,
B85357C523A1F13800AAF6CD /* LinkDeviceVC.swift in Sources */,
457C87B82032645C008D52D6 /* DebugUINotifications.swift in Sources */,
4C21D5D8223AC60F00EF8A77 /* PhotoCapture.swift in Sources */,
+ C331FFF32558FF0300070591 /* PathStatusView.swift in Sources */,
4C13C9F620E57BA30089A98B /* ColorPickerViewController.swift in Sources */,
4CC1ECFB211A553000CC13BE /* AppUpdateNag.swift in Sources */,
C369549D24D27A3500CEB4E3 /* MultiDeviceRemovalSheet.swift in Sources */,
34B6A903218B3F63007C4606 /* TypingIndicatorView.swift in Sources */,
- B8CCF639239721E20091D419 /* TabBar.swift in Sources */,
458E38371D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m in Sources */,
34B6A905218B4C91007C4606 /* TypingIndicatorInteraction.swift in Sources */,
2400888E239F30A600305217 /* SessionRestorationView.swift in Sources */,
@@ -5361,13 +5485,13 @@
340FC8AB204DAC8D007AEB0F /* DomainFrontingCountryViewController.m in Sources */,
4C586926224FAB83003FD070 /* AVAudioSession+OWS.m in Sources */,
3496744D2076768700080B5F /* OWSMessageBubbleView.m in Sources */,
+ C331FFF42558FF0300070591 /* PNOptionView.swift in Sources */,
34B3F8751E8DF1700035BE1A /* CallViewController.swift in Sources */,
4C4AE6A1224AF35700D4AF6F /* SendMediaNavigationController.swift in Sources */,
34D8C0281ED3673300188D7C /* DebugUITableViewController.m in Sources */,
45F32C222057297A00A300D5 /* MediaDetailViewController.m in Sources */,
C3DAB3242480CB2B00725F25 /* SRCopyableLabel.swift in Sources */,
B8B26C8F234D629C004ED98C /* MentionCandidateSelectionView.swift in Sources */,
- B879D44B247E1D9200DB3608 /* PathStatusView.swift in Sources */,
C396DAF02518408B00FF6DC5 /* String+Lines.swift in Sources */,
B8CCF63F23975CFB0091D419 /* JoinPublicChatVC.swift in Sources */,
34ABC0E421DD20C500ED9469 /* ConversationMessageMapping.swift in Sources */,
@@ -5393,7 +5517,6 @@
340FC8BB204DAC8D007AEB0F /* OWSAddToContactViewController.m in Sources */,
45F32C232057297A00A300D5 /* MediaPageViewController.swift in Sources */,
452C468F1E427E200087B011 /* OutboundCallInitiator.swift in Sources */,
- C353F8F9244809150011121A /* PNOptionView.swift in Sources */,
B82B4094239DF15900A248E7 /* ConversationTitleView.swift in Sources */,
34D2CCDA2062E7D000CB1A14 /* OWSScreenLockUI.m in Sources */,
45F170BB1E2FC5D3003FC1F2 /* CallAudioService.swift in Sources */,
@@ -5411,7 +5534,6 @@
45F32C242057297A00A300D5 /* MessageDetailViewController.swift in Sources */,
C396DAEF2518408B00FF6DC5 /* ParsingState.swift in Sources */,
3496955C219B605E00DCFE74 /* ImagePickerController.swift in Sources */,
- B8BB82B523947F2D00BA5194 /* TextField.swift in Sources */,
34D1F0841F8678AA0066283D /* ConversationInputToolbar.m in Sources */,
457F671B20746193000EABCD /* QuotedReplyPreview.swift in Sources */,
C31D1DE32521718E005D4DA8 /* UserSelectionVC.swift in Sources */,
@@ -5430,6 +5552,7 @@
C3E7134F251C867C009649BB /* Sodium+Conversion.swift in Sources */,
340FC8B5204DAC8D007AEB0F /* AboutTableViewController.m in Sources */,
34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */,
+ C33100082558FF6D00070591 /* NewConversationButtonSet.swift in Sources */,
340FC8B9204DAC8D007AEB0F /* UpdateGroupViewController.m in Sources */,
B8BB82A5238F627000BA5194 /* HomeVC.swift in Sources */,
C31A6C5A247F214E001123EF /* UIView+Glow.swift in Sources */,
@@ -5463,6 +5586,7 @@
3427C64320F500E000EEC730 /* OWSMessageTimerView.m in Sources */,
B90418E6183E9DD40038554A /* DateUtil.m in Sources */,
340FC8BD204DAC8D007AEB0F /* ShowGroupMembersViewController.m in Sources */,
+ C33100092558FF6D00070591 /* UserCell.swift in Sources */,
C3645350252449260045C478 /* VoiceMessageView.swift in Sources */,
3496956F21A301A100DCFE74 /* OWSBackupLazyRestore.swift in Sources */,
459311FC1D75C948008DD4F0 /* OWSDeviceTableViewCell.m in Sources */,
@@ -5533,6 +5657,11 @@
target = D221A088169C9E5E00537ABF /* Signal */;
targetProxy = B6AFCEBA19A93DA60098CFCB /* PBXContainerItemProxy */;
};
+ C331FF212558F9D300070591 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = C331FF1A2558F9D300070591 /* SessionUIKit */;
+ targetProxy = C331FF202558F9D300070591 /* PBXContainerItemProxy */;
+ };
C36B8706243C50B00049991D /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 453518911FC63DBF00210559 /* SignalMessaging */;
@@ -5955,6 +6084,129 @@
};
name = "App Store Release";
};
+ C331FF242558F9D400070591 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = SUQ8J2PCT7;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ INFOPLIST_FILE = SessionUIKit/Meta/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.SessionUIKit";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ C331FF252558F9D400070591 /* App Store Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = SUQ8J2PCT7;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ INFOPLIST_FILE = SessionUIKit/Meta/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.SessionUIKit";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = "App Store Release";
+ };
C3C2A5A8255385C100C340D1 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A6344D429FFAC3B44E6A06FA /* Pods-SessionSnodeKit.debug.xcconfig */;
@@ -5991,7 +6243,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = SessionSnodeKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -6064,7 +6316,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = SessionSnodeKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -6117,7 +6369,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = SessionUtilitiesKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -6199,7 +6451,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = SessionUtilitiesKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -6261,7 +6513,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = SessionMessagingKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -6334,7 +6586,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = SessionMessagingKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -6387,7 +6639,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
INFOPLIST_FILE = SessionProtocolKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
@@ -6461,7 +6713,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = SessionProtocolKit/Meta/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.1;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
@@ -6913,6 +7165,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = "App Store Release";
};
+ C331FF262558F9D400070591 /* Build configuration list for PBXNativeTarget "SessionUIKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C331FF242558F9D400070591 /* Debug */,
+ C331FF252558F9D400070591 /* App Store Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = "App Store Release";
+ };
C3C2A5AA255385C100C340D1 /* Build configuration list for PBXNativeTarget "SessionSnodeKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/Signal/Signal-Prefix.pch b/Signal/Signal-Prefix.pch
index acba24111..1f72ce787 100644
--- a/Signal/Signal-Prefix.pch
+++ b/Signal/Signal-Prefix.pch
@@ -22,4 +22,5 @@
#import
#import
#import
+ #import
#endif
diff --git a/Signal/src/Loki/Components/ConversationCell.swift b/Signal/src/Loki/Components/ConversationCell.swift
index d01f89e93..c86a5d098 100644
--- a/Signal/src/Loki/Components/ConversationCell.swift
+++ b/Signal/src/Loki/Components/ConversationCell.swift
@@ -1,3 +1,4 @@
+import UIKit
final class ConversationCell : UITableViewCell {
var threadViewModel: ThreadViewModel! { didSet { update() } }
diff --git a/Signal/src/Loki/Components/NewConversationButtonSet.swift b/Signal/src/Loki/Components/NewConversationButtonSet.swift
index 98e9bb9a6..36c4b9d61 100644
--- a/Signal/src/Loki/Components/NewConversationButtonSet.swift
+++ b/Signal/src/Loki/Components/NewConversationButtonSet.swift
@@ -1,3 +1,4 @@
+import UIKit
final class NewConversationButtonSet : UIView {
private var isUserDragging = false
diff --git a/Signal/src/Loki/Components/PNOptionView.swift b/Signal/src/Loki/Components/PNOptionView.swift
index 8bf4e4c63..e0fdde313 100644
--- a/Signal/src/Loki/Components/PNOptionView.swift
+++ b/Signal/src/Loki/Components/PNOptionView.swift
@@ -1,3 +1,4 @@
+import UIKit
final class OptionView : UIView {
private let title: String
diff --git a/Signal/src/Loki/Components/PathStatusView.swift b/Signal/src/Loki/Components/PathStatusView.swift
index 1e0dcdf6c..01373c862 100644
--- a/Signal/src/Loki/Components/PathStatusView.swift
+++ b/Signal/src/Loki/Components/PathStatusView.swift
@@ -1,3 +1,4 @@
+import UIKit
final class PathStatusView : UIView {
diff --git a/Signal/src/Loki/Components/SessionRestorationView.swift b/Signal/src/Loki/Components/SessionRestorationView.swift
index 4126b2420..654020006 100644
--- a/Signal/src/Loki/Components/SessionRestorationView.swift
+++ b/Signal/src/Loki/Components/SessionRestorationView.swift
@@ -1,3 +1,4 @@
+import SessionUIKit
@objc(LKSessionRestorationView)
final class SessionRestorationView : UIView {
diff --git a/Signal/src/Loki/Components/UserCell.swift b/Signal/src/Loki/Components/UserCell.swift
index 86a447396..81e4516b1 100644
--- a/Signal/src/Loki/Components/UserCell.swift
+++ b/Signal/src/Loki/Components/UserCell.swift
@@ -1,3 +1,4 @@
+import UIKit
final class UserCell : UITableViewCell {
var accessory = Accessory.none
diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h
index b17ef8b9d..d7d08bd2f 100644
--- a/Signal/src/Signal-Bridging-Header.h
+++ b/Signal/src/Signal-Bridging-Header.h
@@ -4,6 +4,7 @@
#import
#import
+#import
// Separate iOS Frameworks from other imports.
#import "AppDelegate.h"
diff --git a/SignalMessaging/Loki/Redesign/Components/ProfilePictureView.swift b/SignalMessaging/Loki/Redesign/Components/ProfilePictureView.swift
index cf2aa5c78..4b90a25d8 100644
--- a/SignalMessaging/Loki/Redesign/Components/ProfilePictureView.swift
+++ b/SignalMessaging/Loki/Redesign/Components/ProfilePictureView.swift
@@ -1,3 +1,4 @@
+import SessionUIKit
@objc(LKProfilePictureView)
public final class ProfilePictureView : UIView {
diff --git a/SignalMessaging/Loki/Redesign/Utilities/UIView+Utilities.swift b/SignalMessaging/Loki/Redesign/Utilities/UIView+Utilities.swift
index 9048ba2e2..8856d2b91 100644
--- a/SignalMessaging/Loki/Redesign/Utilities/UIView+Utilities.swift
+++ b/SignalMessaging/Loki/Redesign/Utilities/UIView+Utilities.swift
@@ -1,3 +1,4 @@
+import SessionUIKit
public extension UIView {
diff --git a/SignalMessaging/Loki/Redesign/Utilities/UIViewController+Utilities.swift b/SignalMessaging/Loki/Redesign/Utilities/UIViewController+Utilities.swift
index 644e0e833..d9a3a42b6 100644
--- a/SignalMessaging/Loki/Redesign/Utilities/UIViewController+Utilities.swift
+++ b/SignalMessaging/Loki/Redesign/Utilities/UIViewController+Utilities.swift
@@ -1,3 +1,4 @@
+import SessionUIKit
@objc(LKViewControllerUtilities)
public final class ViewControllerUtilities : NSObject {
diff --git a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalInputAccessoryView.swift b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalInputAccessoryView.swift
index 64b579467..a28986786 100644
--- a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalInputAccessoryView.swift
+++ b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalInputAccessoryView.swift
@@ -4,6 +4,7 @@
import Foundation
import UIKit
+import SessionUIKit
protocol AttachmentApprovalInputAccessoryViewDelegate: class {
func attachmentApprovalInputUpdateMediaRail()
diff --git a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalViewController.swift b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalViewController.swift
index 2f813cd2a..6b90e61b8 100644
--- a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalViewController.swift
+++ b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentApprovalViewController.swift
@@ -6,6 +6,7 @@ import Foundation
import AVFoundation
import MediaPlayer
import PromiseKit
+import SessionUIKit
@objc
public protocol AttachmentApprovalViewControllerDelegate: class {
diff --git a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentCaptionToolbar.swift b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentCaptionToolbar.swift
index 0f455717b..3419bef56 100644
--- a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentCaptionToolbar.swift
+++ b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentCaptionToolbar.swift
@@ -4,6 +4,7 @@
import Foundation
import UIKit
+import SessionUIKit
protocol AttachmentCaptionToolbarDelegate: class {
func attachmentCaptionToolbarDidEdit(_ attachmentCaptionToolbar: AttachmentCaptionToolbar)
diff --git a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentPrepViewController.swift b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentPrepViewController.swift
index 74408eab4..dea19759d 100644
--- a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentPrepViewController.swift
+++ b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentPrepViewController.swift
@@ -5,6 +5,7 @@
import Foundation
import UIKit
import AVFoundation
+import SessionUIKit
protocol AttachmentPrepViewControllerDelegate: class {
func prepViewControllerUpdateNavigationBar()
diff --git a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentTextToolbar.swift b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentTextToolbar.swift
index 359e30053..8cdc30eb2 100644
--- a/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentTextToolbar.swift
+++ b/SignalMessaging/ViewControllers/AttachmentApproval/AttachmentTextToolbar.swift
@@ -4,6 +4,7 @@
import Foundation
import UIKit
+import SessionUIKit
// Coincides with Android's max text message length
let kMaxMessageBodyCharacterCount = 2000
diff --git a/SignalMessaging/ViewControllers/MediaMessageView.swift b/SignalMessaging/ViewControllers/MediaMessageView.swift
index 74f6def92..e54730edf 100644
--- a/SignalMessaging/ViewControllers/MediaMessageView.swift
+++ b/SignalMessaging/ViewControllers/MediaMessageView.swift
@@ -6,6 +6,7 @@ import Foundation
import MediaPlayer
import YYImage
import SessionServiceKit
+import SessionUIKit
@objc
public enum MediaMessageViewMode: UInt {
diff --git a/SignalMessaging/ViewControllers/OWSNavigationController.m b/SignalMessaging/ViewControllers/OWSNavigationController.m
index fe116ed4b..ea6bf3268 100644
--- a/SignalMessaging/ViewControllers/OWSNavigationController.m
+++ b/SignalMessaging/ViewControllers/OWSNavigationController.m
@@ -4,6 +4,7 @@
#import "OWSNavigationController.h"
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/ViewControllers/OWSTableViewController.m b/SignalMessaging/ViewControllers/OWSTableViewController.m
index 9e0777b91..69efbbfea 100644
--- a/SignalMessaging/ViewControllers/OWSTableViewController.m
+++ b/SignalMessaging/ViewControllers/OWSTableViewController.m
@@ -9,6 +9,7 @@
#import "UIFont+OWS.h"
#import "UIView+OWS.h"
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/ViewControllers/ScreenLockViewController.m b/SignalMessaging/ViewControllers/ScreenLockViewController.m
index 21d4c3514..5716aec0d 100644
--- a/SignalMessaging/ViewControllers/ScreenLockViewController.m
+++ b/SignalMessaging/ViewControllers/ScreenLockViewController.m
@@ -7,6 +7,7 @@
#import "UIFont+OWS.h"
#import "UIView+OWS.h"
#import
+#import
NSString *NSStringForScreenLockUIState(ScreenLockUIState value)
{
diff --git a/SignalMessaging/ViewControllers/SelectThreadViewController.m b/SignalMessaging/ViewControllers/SelectThreadViewController.m
index 081999754..d1edc2bfa 100644
--- a/SignalMessaging/ViewControllers/SelectThreadViewController.m
+++ b/SignalMessaging/ViewControllers/SelectThreadViewController.m
@@ -23,6 +23,7 @@
#import
#import
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m b/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m
index d3c4660c3..4c2417c13 100644
--- a/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m
+++ b/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m
@@ -14,6 +14,7 @@
#import
#import
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/Views/ContactCellView.m b/SignalMessaging/Views/ContactCellView.m
index eaaff2644..6fef73843 100644
--- a/SignalMessaging/Views/ContactCellView.m
+++ b/SignalMessaging/Views/ContactCellView.m
@@ -13,6 +13,7 @@
#import
#import
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/Views/GalleryRailView.swift b/SignalMessaging/Views/GalleryRailView.swift
index 3be72bcd4..013602477 100644
--- a/SignalMessaging/Views/GalleryRailView.swift
+++ b/SignalMessaging/Views/GalleryRailView.swift
@@ -3,6 +3,7 @@
//
import PromiseKit
+import SessionUIKit
public protocol GalleryRailItemProvider: class {
var railItems: [GalleryRailItem] { get }
diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift b/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift
index f4aa2db76..e777e120d 100644
--- a/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift
+++ b/SignalMessaging/Views/ImageEditor/ImageEditorBrushViewController.swift
@@ -3,6 +3,7 @@
//
import UIKit
+import SessionUIKit
@objc
public protocol ImageEditorBrushViewControllerDelegate: class {
diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorCropViewController.swift b/SignalMessaging/Views/ImageEditor/ImageEditorCropViewController.swift
index 2eab87b9b..8cb6f74b8 100644
--- a/SignalMessaging/Views/ImageEditor/ImageEditorCropViewController.swift
+++ b/SignalMessaging/Views/ImageEditor/ImageEditorCropViewController.swift
@@ -3,6 +3,7 @@
//
import UIKit
+import SessionUIKit
public protocol ImageEditorCropViewControllerDelegate: class {
func cropDidComplete(transform: ImageEditorTransform)
diff --git a/SignalMessaging/Views/ImageEditor/ImageEditorTextViewController.swift b/SignalMessaging/Views/ImageEditor/ImageEditorTextViewController.swift
index 7345dfcc7..662b02f56 100644
--- a/SignalMessaging/Views/ImageEditor/ImageEditorTextViewController.swift
+++ b/SignalMessaging/Views/ImageEditor/ImageEditorTextViewController.swift
@@ -3,6 +3,7 @@
//
import UIKit
+import SessionUIKit
@objc
public protocol VAlignTextViewDelegate: class {
diff --git a/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift b/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift
index eb47a8f29..a11132f07 100644
--- a/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift
+++ b/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift
@@ -3,6 +3,7 @@
//
import UIKit
+import SessionUIKit
public extension NSObject {
diff --git a/SignalMessaging/Views/OWSNavigationBar.swift b/SignalMessaging/Views/OWSNavigationBar.swift
index 6933403e0..7ba0c450d 100644
--- a/SignalMessaging/Views/OWSNavigationBar.swift
+++ b/SignalMessaging/Views/OWSNavigationBar.swift
@@ -4,6 +4,7 @@
import Foundation
import UIKit
+import SessionUIKit
@objc
public protocol NavBarLayoutDelegate: class {
diff --git a/SignalMessaging/Views/OWSSearchBar.m b/SignalMessaging/Views/OWSSearchBar.m
index 85a30cf66..00faa2c55 100644
--- a/SignalMessaging/Views/OWSSearchBar.m
+++ b/SignalMessaging/Views/OWSSearchBar.m
@@ -6,6 +6,7 @@
#import "Theme.h"
#import "UIView+OWS.h"
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/Views/OWSTextField.m b/SignalMessaging/Views/OWSTextField.m
index ed21e557b..9f57f2122 100644
--- a/SignalMessaging/Views/OWSTextField.m
+++ b/SignalMessaging/Views/OWSTextField.m
@@ -5,6 +5,7 @@
#import "OWSTextField.h"
#import "Theme.h"
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/Views/OWSTextView.m b/SignalMessaging/Views/OWSTextView.m
index 4c862eaa8..ba2408d79 100644
--- a/SignalMessaging/Views/OWSTextView.m
+++ b/SignalMessaging/Views/OWSTextView.m
@@ -5,6 +5,7 @@
#import "OWSTextView.h"
#import "Theme.h"
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/appearance/Theme.m b/SignalMessaging/appearance/Theme.m
index b24a3ffd0..0fdbb76a8 100644
--- a/SignalMessaging/appearance/Theme.m
+++ b/SignalMessaging/appearance/Theme.m
@@ -9,6 +9,7 @@
#import
#import
#import
+#import
NS_ASSUME_NONNULL_BEGIN
diff --git a/SignalMessaging/utils/ConversationStyle.swift b/SignalMessaging/utils/ConversationStyle.swift
index fb09c5d85..c93742cbb 100644
--- a/SignalMessaging/utils/ConversationStyle.swift
+++ b/SignalMessaging/utils/ConversationStyle.swift
@@ -3,6 +3,7 @@
//
import Foundation
+import SessionUIKit
@objc
public class ConversationStyle: NSObject {
diff --git a/SignalMessaging/utils/UIUtil.m b/SignalMessaging/utils/UIUtil.m
index ff1054bd9..b0d0a531d 100644
--- a/SignalMessaging/utils/UIUtil.m
+++ b/SignalMessaging/utils/UIUtil.m
@@ -7,6 +7,7 @@
#import "UIColor+OWS.h"
#import
#import
+#import
#define CONTACT_PICTURE_VIEW_BORDER_WIDTH 0.5f
diff --git a/SignalServiceKit/src/Loki/Utilities/Notification+Loki.swift b/SignalServiceKit/src/Loki/Utilities/Notification+Loki.swift
index 2830f82bc..da6894d6d 100644
--- a/SignalServiceKit/src/Loki/Utilities/Notification+Loki.swift
+++ b/SignalServiceKit/src/Loki/Utilities/Notification+Loki.swift
@@ -2,7 +2,6 @@
public extension Notification.Name {
// State changes
- public static let appModeChanged = Notification.Name("appModeChanged")
public static let blockedContactsUpdated = Notification.Name("blockedContactsUpdated")
public static let contactOnlineStatusChanged = Notification.Name("contactOnlineStatusChanged")
public static let groupThreadUpdated = Notification.Name("groupThreadUpdated")
@@ -29,7 +28,6 @@ public extension Notification.Name {
@objc public extension NSNotification {
// State changes
- @objc public static let appModeChanged = Notification.Name.appModeChanged.rawValue as NSString
@objc public static let blockedContactsUpdated = Notification.Name.blockedContactsUpdated.rawValue as NSString
@objc public static let contactOnlineStatusChanged = Notification.Name.contactOnlineStatusChanged.rawValue as NSString
@objc public static let groupThreadUpdated = Notification.Name.groupThreadUpdated.rawValue as NSString
diff --git a/SignalShareExtension/ShareViewController.swift b/SignalShareExtension/ShareViewController.swift
index 503c5eb47..762b9ca93 100644
--- a/SignalShareExtension/ShareViewController.swift
+++ b/SignalShareExtension/ShareViewController.swift
@@ -8,6 +8,7 @@ import SignalMessaging
import PureLayout
import SessionServiceKit
import PromiseKit
+import SessionUIKit
@objc
public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailedViewDelegate, AppModeManagerDelegate {
diff --git a/SignalShareExtension/SignalShareExtension-Prefix.pch b/SignalShareExtension/SignalShareExtension-Prefix.pch
index c89ce4a9b..416fc8ef5 100644
--- a/SignalShareExtension/SignalShareExtension-Prefix.pch
+++ b/SignalShareExtension/SignalShareExtension-Prefix.pch
@@ -18,4 +18,5 @@
#import
#import
#import
+ #import
#endif