diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
index 6badcb09f..575dc6248 100644
--- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -7,33 +7,68 @@
AppShared.xcscheme_^#shared#^_
orderHint
- 26
+ 32
CoreDataStack.xcscheme_^#shared#^_
orderHint
- 24
+ 33
Mastodon - ASDK.xcscheme_^#shared#^_
orderHint
- 2
-
- Mastodon - JP.xcscheme_^#shared#^_
-
- orderHint
- 23
+ 7
Mastodon - RTL.xcscheme_^#shared#^_
orderHint
- 3
+ 8
Mastodon - Release.xcscheme_^#shared#^_
+
+ orderHint
+ 6
+
+ Mastodon - ar.xcscheme_^#shared#^_
+
+ orderHint
+ 5
+
+ Mastodon - ca.xcscheme_^#shared#^_
+
+ orderHint
+ 30
+
+ Mastodon - en.xcscheme_^#shared#^_
orderHint
1
+ Mastodon - es-419.xcscheme_^#shared#^_
+
+ orderHint
+ 3
+
+ Mastodon - es.xcscheme_^#shared#^_
+
+ orderHint
+ 2
+
+ Mastodon - fr.xcscheme_^#shared#^_
+
+ orderHint
+ 4
+
+ Mastodon - jp.xcscheme_^#shared#^_
+
+ orderHint
+ 28
+
+ Mastodon - zh_Hans.xcscheme_^#shared#^_
+
+ orderHint
+ 29
+
Mastodon.xcscheme_^#shared#^_
orderHint
@@ -42,7 +77,7 @@
MastodonIntent.xcscheme_^#shared#^_
orderHint
- 25
+ 31
MastodonIntents.xcscheme_^#shared#^_
@@ -57,12 +92,12 @@
NotificationService.xcscheme_^#shared#^_
orderHint
- 4
+ 9
ShareActionExtension.xcscheme_^#shared#^_
orderHint
- 27
+ 35
SuppressBuildableAutocreation
diff --git a/Mastodon/Resources/es-419.lproj/Localizable.strings b/Mastodon/Resources/es-419.lproj/Localizable.strings
index 862c2b37b..7b60cd0cd 100644
--- a/Mastodon/Resources/es-419.lproj/Localizable.strings
+++ b/Mastodon/Resources/es-419.lproj/Localizable.strings
@@ -248,7 +248,7 @@ pulsá en el enlace para confirmar tu cuenta.";
"Scene.Register.Error.Reason.Unreachable" = "%@ parece no existir";
"Scene.Register.Error.Special.EmailInvalid" = "Esta no es una dirección de correo electrónico válida";
"Scene.Register.Error.Special.PasswordTooShort" = "La contraseña es demasiado corta (debe tener al menos 8 caracteres)";
-"Scene.Register.Error.Special.UsernameInvalid" = "El nombre de usuario sólo debe contener caracteres alfanuméricos sin signos diacríticos y subguiones ("_")";
+"Scene.Register.Error.Special.UsernameInvalid" = "El nombre de usuario sólo debe contener caracteres alfanuméricos sin signos diacríticos y subguiones (\"_\")";
"Scene.Register.Error.Special.UsernameTooLong" = "El nombre de usuario es demasiado largo (no puede tener más de 30 caracteres)";
"Scene.Register.Input.Avatar.Delete" = "Eliminar";
"Scene.Register.Input.DisplayName.Placeholder" = "nombre para mostrar";
@@ -349,4 +349,4 @@ el que quieras.";
"Scene.Thread.BackTitle" = "Mensaje";
"Scene.Thread.Title" = "Mensaje de %@";
"Scene.Welcome.Slogan" = "La red social,
-nuevamente en tu poder.";
\ No newline at end of file
+nuevamente en tu poder.";
diff --git a/Mastodon/Scene/Profile/Header/View/ProfileHeaderView.swift b/Mastodon/Scene/Profile/Header/View/ProfileHeaderView.swift
index c45a0f648..90f2e7a11 100644
--- a/Mastodon/Scene/Profile/Header/View/ProfileHeaderView.swift
+++ b/Mastodon/Scene/Profile/Header/View/ProfileHeaderView.swift
@@ -160,6 +160,8 @@ final class ProfileHeaderView: UIView {
let relationshipActionButton: ProfileRelationshipActionButton = {
let button = ProfileRelationshipActionButton()
button.titleLabel?.font = .systemFont(ofSize: 17, weight: .semibold)
+ button.titleLabel?.adjustsFontSizeToFitWidth = true
+ button.titleLabel?.minimumScaleFactor = 0.5
return button
}()
@@ -406,9 +408,10 @@ extension ProfileHeaderView {
relationshipActionButton.topAnchor.constraint(equalTo: dashboardContainerView.topAnchor),
relationshipActionButton.leadingAnchor.constraint(greaterThanOrEqualTo: statusDashboardView.trailingAnchor, constant: 8),
relationshipActionButton.trailingAnchor.constraint(equalTo: dashboardContainerView.readableContentGuide.trailingAnchor),
- relationshipActionButton.widthAnchor.constraint(equalToConstant: ProfileHeaderView.friendshipActionButtonSize.width).priority(.defaultHigh),
+ relationshipActionButton.widthAnchor.constraint(greaterThanOrEqualToConstant: ProfileHeaderView.friendshipActionButtonSize.width).priority(.required - 1),
relationshipActionButton.heightAnchor.constraint(equalToConstant: ProfileHeaderView.friendshipActionButtonSize.height).priority(.defaultHigh),
])
+ relationshipActionButton.setContentHuggingPriority(.required - 10, for: .horizontal)
bioContainerView.preservesSuperviewLayoutMargins = true
metaContainerStackView.addArrangedSubview(bioContainerView)
diff --git a/Mastodon/Scene/Profile/Header/View/ProfileRelationshipActionButton.swift b/Mastodon/Scene/Profile/Header/View/ProfileRelationshipActionButton.swift
index aed539047..fffb061b4 100644
--- a/Mastodon/Scene/Profile/Header/View/ProfileRelationshipActionButton.swift
+++ b/Mastodon/Scene/Profile/Header/View/ProfileRelationshipActionButton.swift
@@ -53,6 +53,8 @@ extension ProfileRelationshipActionButton {
setBackgroundImage(.placeholder(color: actionOptionSet.backgroundColor.withAlphaComponent(0.5)), for: .highlighted)
setBackgroundImage(.placeholder(color: actionOptionSet.backgroundColor.withAlphaComponent(0.5)), for: .disabled)
+ titleEdgeInsets = UIEdgeInsets(top: 0, left: 4, bottom: 0, right: 4)
+
activityIndicatorView.stopAnimating()
if let option = actionOptionSet.highPriorityAction(except: .editOptions), option == .blocked || option == .suspended {
diff --git a/Mastodon/Scene/Profile/Header/View/ProfileStatusDashboardMeterView.swift b/Mastodon/Scene/Profile/Header/View/ProfileStatusDashboardMeterView.swift
index 0f32f3304..53cd21f60 100644
--- a/Mastodon/Scene/Profile/Header/View/ProfileStatusDashboardMeterView.swift
+++ b/Mastodon/Scene/Profile/Header/View/ProfileStatusDashboardMeterView.swift
@@ -33,6 +33,9 @@ final class ProfileStatusDashboardMeterView: UIView {
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.8
}
+ label.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
+ label.adjustsFontSizeToFitWidth = true
+ label.minimumScaleFactor = 0.5
return label
}()
diff --git a/Mastodon/Scene/Search/Search/View/SearchRecommendCollectionHeader.swift b/Mastodon/Scene/Search/Search/View/SearchRecommendCollectionHeader.swift
index 91ec0128c..a828c64b6 100644
--- a/Mastodon/Scene/Search/Search/View/SearchRecommendCollectionHeader.swift
+++ b/Mastodon/Scene/Search/Search/View/SearchRecommendCollectionHeader.swift
@@ -13,6 +13,8 @@ class SearchRecommendCollectionHeader: UIView {
let label = UILabel()
label.textColor = Asset.Colors.Label.primary.color
label.font = .systemFont(ofSize: 20, weight: .semibold)
+ label.adjustsFontSizeToFitWidth = true
+ label.minimumScaleFactor = 0.6
return label
}()
@@ -71,6 +73,7 @@ extension SearchRecommendCollectionHeader {
titleLabel.setContentHuggingPriority(.defaultLow - 1, for: .horizontal)
horizontalStackView.addArrangedSubview(titleLabel)
horizontalStackView.addArrangedSubview(seeAllButton)
+ seeAllButton.setContentCompressionResistancePriority(.defaultHigh + 10, for: .horizontal)
containerStackView.addArrangedSubview(horizontalStackView)
containerStackView.addArrangedSubview(descriptionLabel)
diff --git a/Mastodon/Scene/Settings/SettingsViewController.swift b/Mastodon/Scene/Settings/SettingsViewController.swift
index c6e41e624..e93668801 100644
--- a/Mastodon/Scene/Settings/SettingsViewController.swift
+++ b/Mastodon/Scene/Settings/SettingsViewController.swift
@@ -63,15 +63,20 @@ class SettingsViewController: UIViewController, NeedsDependency {
let notifyLabel = UILabel()
private(set) lazy var notifySectionHeader: UIView = {
let view = notifySectionHeaderStackView
+
notifyLabel.translatesAutoresizingMaskIntoConstraints = false
notifyLabel.adjustsFontForContentSizeCategory = true
notifyLabel.font = UIFontMetrics(forTextStyle: .headline).scaledFont(for: UIFont.systemFont(ofSize: 20, weight: .semibold))
notifyLabel.textColor = Asset.Colors.Label.primary.color
notifyLabel.text = L10n.Scene.Settings.Section.Notifications.Trigger.title
+ notifyLabel.adjustsFontSizeToFitWidth = true
+ notifyLabel.minimumScaleFactor = 0.5
+
view.addArrangedSubview(notifyLabel)
view.addArrangedSubview(whoButton)
whoButton.setContentHuggingPriority(.defaultHigh + 1, for: .horizontal)
whoButton.setContentHuggingPriority(.defaultHigh + 1, for: .vertical)
+
return view
}()
@@ -86,6 +91,8 @@ class SettingsViewController: UIViewController, NeedsDependency {
whoButton.contentEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
whoButton.layer.cornerRadius = 10
whoButton.clipsToBounds = true
+ whoButton.titleLabel?.adjustsFontSizeToFitWidth = true
+ whoButton.titleLabel?.minimumScaleFactor = 0.5
return whoButton
}()