diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj
index d4273355..f1351b85 100644
--- a/Mastodon.xcodeproj/project.pbxproj
+++ b/Mastodon.xcodeproj/project.pbxproj
@@ -3198,7 +3198,6 @@
DB9A487C2603456B008B817C /* XCRemoteSwiftPackageReference "UITextView-Placeholder" */,
DBB525062611EAC0002F1F29 /* XCRemoteSwiftPackageReference "Tabman" */,
DB6804722637CC1200430867 /* XCRemoteSwiftPackageReference "KeychainAccess" */,
- DB6F5E30264E7410009108F4 /* XCRemoteSwiftPackageReference "TwitterTextEditor" */,
DBAC6481267D0B21007FE9FD /* XCRemoteSwiftPackageReference "DifferenceKit" */,
DBAC649C267DFE43007FE9FD /* XCRemoteSwiftPackageReference "DiffableDataSources" */,
DBAC649F267E6D01007FE9FD /* XCRemoteSwiftPackageReference "Fuzi" */,
@@ -4282,7 +4281,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets";
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = Mastodon/Info.plist;
@@ -4309,7 +4308,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets";
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = Mastodon/Info.plist;
@@ -4574,7 +4573,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = ShareActionExtension/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4598,7 +4597,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = ShareActionExtension/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4622,7 +4621,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = ShareActionExtension/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4646,7 +4645,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = ShareActionExtension/ShareActionExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = ShareActionExtension/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4736,7 +4735,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets";
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = Mastodon/Info.plist;
@@ -4851,7 +4850,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = NotificationService/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4970,7 +4969,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Mastodon/Mastodon.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets";
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = Mastodon/Info.plist;
@@ -5085,7 +5084,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = NotificationService/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -5139,7 +5138,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = NotificationService/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -5162,7 +5161,7 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 44;
+ CURRENT_PROJECT_VERSION = 45;
DEVELOPMENT_TEAM = 5Z4GVSS33P;
INFOPLIST_FILE = NotificationService/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
@@ -5348,14 +5347,6 @@
minimumVersion = 4.2.2;
};
};
- DB6F5E30264E7410009108F4 /* XCRemoteSwiftPackageReference "TwitterTextEditor" */ = {
- isa = XCRemoteSwiftPackageReference;
- repositoryURL = "https://github.com/MainasuK/TwitterTextEditor.git";
- requirement = {
- branch = "feature/expose-layout";
- kind = branch;
- };
- };
DB9A487C2603456B008B817C /* XCRemoteSwiftPackageReference "UITextView-Placeholder" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/MainasuK/UITextView-Placeholder";
diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
index d551bebb..d28d5cdd 100644
--- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -12,7 +12,7 @@
CoreDataStack.xcscheme_^#shared#^_
orderHint
- 25
+ 22
Mastodon - ASDK.xcscheme_^#shared#^_
@@ -37,12 +37,12 @@
NotificationService.xcscheme_^#shared#^_
orderHint
- 23
+ 24
ShareActionExtension.xcscheme_^#shared#^_
orderHint
- 24
+ 23
SuppressBuildableAutocreation
diff --git a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved
index 56f675a6..dc848b69 100644
--- a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -190,15 +190,6 @@
"version": "2.6.0"
}
},
- {
- "package": "TwitterTextEditor",
- "repositoryURL": "https://github.com/MainasuK/TwitterTextEditor.git",
- "state": {
- "branch": "feature/expose-layout",
- "revision": "c208329b23dcb3c8c7192de34776440d625a26a4",
- "version": null
- }
- },
{
"package": "UITextView+Placeholder",
"repositoryURL": "https://github.com/MainasuK/UITextView-Placeholder",
diff --git a/Mastodon/Diffiable/Section/Status/StatusSection.swift b/Mastodon/Diffiable/Section/Status/StatusSection.swift
index 9bb34466..c6cde80f 100644
--- a/Mastodon/Diffiable/Section/Status/StatusSection.swift
+++ b/Mastodon/Diffiable/Section/Status/StatusSection.swift
@@ -1035,6 +1035,7 @@ extension StatusSection {
}
snapshot.appendItems(pollItems, toSection: .main)
cell.statusView.pollTableViewDataSource?.apply(snapshot, animatingDifferences: false, completion: nil)
+ cell.statusView.pollTableViewHeightLayoutConstraint.constant = PollOptionTableViewCell.height * CGFloat(poll.options.count)
}
static func configureActionToolBar(
diff --git a/Mastodon/Scene/Compose/ComposeViewModel+DataSource.swift b/Mastodon/Scene/Compose/ComposeViewModel+DataSource.swift
index 79fe538d..49406144 100644
--- a/Mastodon/Scene/Compose/ComposeViewModel+DataSource.swift
+++ b/Mastodon/Scene/Compose/ComposeViewModel+DataSource.swift
@@ -9,7 +9,6 @@ import os.log
import UIKit
import Combine
import CoreDataStack
-import TwitterTextEditor
import MastodonSDK
import MastodonMeta
import MetaTextKit
diff --git a/Mastodon/Scene/Profile/Header/ProfileHeaderViewController.swift b/Mastodon/Scene/Profile/Header/ProfileHeaderViewController.swift
index f0bf72af..216c8168 100644
--- a/Mastodon/Scene/Profile/Header/ProfileHeaderViewController.swift
+++ b/Mastodon/Scene/Profile/Header/ProfileHeaderViewController.swift
@@ -11,7 +11,6 @@ import Combine
import PhotosUI
import AlamofireImage
import CropViewController
-import TwitterTextEditor
import MastodonMeta
import MetaTextKit
diff --git a/Mastodon/Scene/Report/ReportViewController.swift b/Mastodon/Scene/Report/ReportViewController.swift
index ebe1788f..efaa533e 100644
--- a/Mastodon/Scene/Report/ReportViewController.swift
+++ b/Mastodon/Scene/Report/ReportViewController.swift
@@ -11,8 +11,8 @@ import CoreData
import CoreDataStack
import os.log
import UIKit
-import TwitterTextEditor
import MastodonSDK
+import MastodonMeta
class ReportViewController: UIViewController, NeedsDependency {
static let kAnimationDuration: TimeInterval = 0.33
@@ -92,6 +92,8 @@ class ReportViewController: UIViewController, NeedsDependency {
}()
var bottomConstraint: NSLayoutConstraint!
+
+ let titleView = DoubleTitleLabelNavigationBarTitleView()
override func viewDidLoad() {
super.viewDidLoad()
@@ -267,10 +269,19 @@ class ReportViewController: UIViewController, NeedsDependency {
return nil
}
}()
-
- navigationItem.title = L10n.Scene.Report.title(
- beReportedUser?.displayNameWithFallback ?? ""
- )
+
+ navigationItem.titleView = titleView
+ if let user = beReportedUser {
+ do {
+ let mastodonConent = MastodonContent(content: user.displayNameWithFallback, emojis: user.emojiMeta)
+ let metaContent = try MastodonMetaContent.convert(document: mastodonConent)
+ titleView.update(titleMetaContent: metaContent, subtitle: nil)
+ } catch {
+ let metaContent = PlaintextMetaContent(string: user.displayNameWithFallback)
+ titleView.update(titleMetaContent: metaContent, subtitle: nil)
+ }
+ }
+
}
private func switchToStep2Content() {
diff --git a/Mastodon/Scene/Settings/SettingsViewController.swift b/Mastodon/Scene/Settings/SettingsViewController.swift
index 0685229c..475b93f5 100644
--- a/Mastodon/Scene/Settings/SettingsViewController.swift
+++ b/Mastodon/Scene/Settings/SettingsViewController.swift
@@ -358,11 +358,10 @@ extension SettingsViewController: UITableViewDelegate {
guard let dataSource = viewModel.dataSource else { return }
guard let item = dataSource.itemIdentifier(for: indexPath) else { return }
- let feedbackGenerator = UIImpactFeedbackGenerator(style: .light)
-
switch item {
case .appearance:
- feedbackGenerator.impactOccurred()
+ // do nothing
+ break
case .notification:
// do nothing
break
@@ -370,6 +369,7 @@ extension SettingsViewController: UITableViewDelegate {
// do nothing
break
case .boringZone(let link), .spicyZone(let link):
+ let feedbackGenerator = UIImpactFeedbackGenerator(style: .light)
feedbackGenerator.impactOccurred()
switch link {
case .accountSettings:
@@ -447,7 +447,8 @@ extension SettingsViewController: SettingsAppearanceTableViewCellDelegate {
setting.update(appearanceRaw: appearanceMode.rawValue)
}
.sink { _ in
- // do nothing
+ let feedbackGenerator = UIImpactFeedbackGenerator(style: .light)
+ feedbackGenerator.impactOccurred()
}.store(in: &disposeBag)
}
}
diff --git a/Mastodon/Scene/Share/View/Content/StatusView.swift b/Mastodon/Scene/Share/View/Content/StatusView.swift
index c1294bff..49452e1b 100644
--- a/Mastodon/Scene/Share/View/Content/StatusView.swift
+++ b/Mastodon/Scene/Share/View/Content/StatusView.swift
@@ -287,6 +287,7 @@ extension StatusView {
headerContainerStackView.trailingAnchor.constraint(equalTo: headerContainerView.trailingAnchor),
headerContainerView.bottomAnchor.constraint(equalTo: headerContainerStackView.bottomAnchor, constant: StatusView.containerStackViewSpacing).priority(.defaultHigh),
])
+ headerContainerStackView.setContentCompressionResistancePriority(.required - 5, for: .vertical)
containerStackView.addArrangedSubview(headerContainerView)
defer {
containerStackView.bringSubviewToFront(headerContainerView)
@@ -418,17 +419,21 @@ extension StatusView {
NSLayoutConstraint.activate([
pollTableViewHeightLayoutConstraint,
])
-
- statusPollTableViewHeightObservation = pollTableView.observe(\.contentSize, options: .new, changeHandler: { [weak self] tableView, _ in
- guard let self = self else { return }
- guard self.pollTableView.contentSize.height != .zero else {
- self.pollTableViewHeightLayoutConstraint.constant = 44
- return
- }
- self.pollTableViewHeightLayoutConstraint.constant = self.pollTableView.contentSize.height
- })
-
+
+ // statusPollTableViewHeightObservation = pollTableView.observe(\.contentSize, options: .new, changeHandler: { [weak self] tableView, _ in
+ // guard let self = self else { return }
+ // guard self.pollTableView.contentSize.height != .zero else {
+ // self.pollTableViewHeightLayoutConstraint.constant = 44
+ // return
+ // }
+ // self.pollTableViewHeightLayoutConstraint.constant = self.pollTableView.contentSize.height
+ // })
+
+ pollStatusStackView.translatesAutoresizingMaskIntoConstraints = false
statusContainerStackView.addArrangedSubview(pollStatusStackView)
+ NSLayoutConstraint.activate([
+ pollStatusStackView.heightAnchor.constraint(equalToConstant: 30).priority(.required - 10)
+ ])
pollStatusStackView.axis = .horizontal
pollStatusStackView.addArrangedSubview(pollVoteCountLabel)
pollStatusStackView.addArrangedSubview(pollStatusDotLabel)
diff --git a/Mastodon/Scene/Share/View/TableviewCell/PollOptionTableViewCell.swift b/Mastodon/Scene/Share/View/TableviewCell/PollOptionTableViewCell.swift
index fdcaa95f..16b39feb 100644
--- a/Mastodon/Scene/Share/View/TableviewCell/PollOptionTableViewCell.swift
+++ b/Mastodon/Scene/Share/View/TableviewCell/PollOptionTableViewCell.swift
@@ -10,6 +10,8 @@ import Combine
final class PollOptionTableViewCell: UITableViewCell {
+ static let height: CGFloat = PollOptionView.height
+
var disposeBag = Set()
let pollOptionView = PollOptionView()