Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1293,7 +1293,6 @@ private fun composePresenter(
media.setMediaSensitive(draft.data.sensitive)
pollState.takeSuccess()?.setPoll(draft.data.poll)
contentWarningState.takeSuccess()?.setText(draft.data.spoilerText)
state.visibilityState.takeSuccess()?.setVisibility(draft.data.visibility)
languageState.takeSuccess()?.setSelectedLanguages(draft.data.language)
state.consumeLoadedDraft()
}
Expand Down Expand Up @@ -1329,9 +1328,7 @@ private fun composePresenter(
},
sensitive = media.isMediaSensitive,
spoilerText = spoilerText,
visibility =
state.visibilityState.takeSuccess()?.visibility
?: UiTimelineV2.Post.Visibility.Public,
visibility = state.visibility,
referenceStatus =
state.composeStatus?.let {
ComposeData.ReferenceStatus(
Expand Down Expand Up @@ -1619,6 +1616,14 @@ internal val UiTimelineV2.Post.Visibility.localName: Int
R.string.misskey_visibility_specified
}

UiTimelineV2.Post.Visibility.Friends -> {
R.string.visibility_friends
}

UiTimelineV2.Post.Visibility.SelfOnly -> {
R.string.visibility_self
}

UiTimelineV2.Post.Visibility.Channel -> {
R.string.misskey_visibility_public
}
Expand All @@ -1643,6 +1648,14 @@ internal val UiTimelineV2.Post.Visibility.localDescription: Int
R.string.misskey_visibility_specified_description
}

UiTimelineV2.Post.Visibility.Friends -> {
R.string.visibility_friends_description
}

UiTimelineV2.Post.Visibility.SelfOnly -> {
R.string.visibility_self_description
}

UiTimelineV2.Post.Visibility.Channel -> {
R.string.misskey_visibility_public_description
}
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -929,4 +929,8 @@
<string name="agent_error_interrupted">执行已中断,请确认已完成的操作后再发送新消息。</string>
<string name="weibo_friends_circle_title">好友圈</string>
<string name="weibo_private_following_title">悄悄关注</string>
<string name="visibility_friends">好友圈可见</string>
<string name="visibility_friends_description">仅互相关注的好友可以看到此微博</string>
<string name="visibility_self">仅自己可见</string>
<string name="visibility_self_description">仅你自己可以看到此微博</string>
</resources>
4 changes: 4 additions & 0 deletions app/src/main/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -800,4 +800,8 @@
<string name="plugin_uninstall_confirm_message">從本機刪除 %1$s 及其帳號、憑證和帳號資料?刪除後立即生效。</string>
<string name="weibo_friends_circle_title">好友圈</string>
<string name="weibo_private_following_title">悄悄關注</string>
<string name="visibility_friends">好友圈可見</string>
<string name="visibility_friends_description">僅互相關注的好友可以看到此微博</string>
<string name="visibility_self">僅自己可見</string>
<string name="visibility_self_description">僅你自己可以看到此微博</string>
</resources>
4 changes: 4 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -994,4 +994,8 @@
<string name="agent_error_interrupted">This run was interrupted. Check what was completed before sending another message.</string>
<string name="weibo_friends_circle_title">Friends Circle</string>
<string name="weibo_private_following_title">Private Following</string>
<string name="visibility_friends">Friends circle</string>
<string name="visibility_friends_description">Only people who follow you and whom you follow can see this post</string>
<string name="visibility_self">Only me</string>
<string name="visibility_self_description">Only you can see this post</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,10 @@ private extension UiTimelineV2.PostVisibility {
"matrix_followers"
case .specified:
"status_visibility_specified"
case .friends:
"visibility_friends"
case .selfOnly:
"visibility_self"
case .channel:
"status_visibility_public"
}
Expand All @@ -326,6 +330,10 @@ private extension UiTimelineV2.PostVisibility {
"status_visibility_followers_description"
case .specified:
"status_visibility_specified_description"
case .friends:
"visibility_friends_description"
case .selfOnly:
"visibility_self_description"
case .channel:
"status_visibility_public_description"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public final class ComposeContentViewModel {
}

public func makeComposeData(
visibility: UiTimelineV2.PostVisibility,
visibility: UiTimelineV2.PostVisibility?,
medias: [ComposeData.Media],
sensitive: Bool,
composeStatus: ComposeStatus?,
Expand All @@ -72,7 +72,7 @@ public final class ComposeContentViewModel {
)
}

public func applyDraft(_ draft: UiDraft) -> ComposeDraftRestoreResult {
public func applyDraft(_ draft: UiDraft) {
let data = draft.data
text = data.content
contentWarning = data.spoilerText ?? ""
Expand All @@ -81,10 +81,6 @@ public final class ComposeContentViewModel {
languages = data.language
}
pollViewModel.apply(poll: data.poll)
return ComposeDraftRestoreResult(
sensitive: data.sensitive,
visibility: data.visibility
)
}

private func referenceStatus(from composeStatus: ComposeStatus?) -> ComposeData.ReferenceStatus? {
Expand All @@ -95,16 +91,3 @@ public final class ComposeContentViewModel {
}
}
}

public struct ComposeDraftRestoreResult {
public let sensitive: Bool
public let visibility: UiTimelineV2.PostVisibility

public init(
sensitive: Bool,
visibility: UiTimelineV2.PostVisibility
) {
self.sensitive = sensitive
self.visibility = visibility
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ public struct StatusVisibilityView: View {
case .channel:
Image(fontAwesome: .tv)
.accessibilityLabel(Text("channel_title", bundle: FlareAppleUILocalization.bundle))
case .friends:
Image(fontAwesome: .heart)
.accessibilityLabel(Text("visibility_friends", bundle: FlareAppleUILocalization.bundle))
case .selfOnly:
Image(fontAwesome: .lock)
.accessibilityLabel(Text("visibility_self", bundle: FlareAppleUILocalization.bundle))
}
}
}
88 changes: 88 additions & 0 deletions appleApp/Shared/FlareAppleResource/Resources/Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,94 @@
}
}
},
"visibility_friends": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Friends circle"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "好友圈可见"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "好友圈可見"
}
}
}
},
"visibility_friends_description": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Only people who follow you and whom you follow can see this post"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "仅互相关注的好友可以看到此微博"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "僅互相關注的好友可以看到此微博"
}
}
}
},
"visibility_self": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Only me"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "仅自己可见"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "僅自己可見"
}
}
}
},
"visibility_self_description": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Only you can see this post"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "仅你自己可以看到此微博"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "僅你自己可以看到此微博"
}
}
}
},
"agent_error_interrupted": {
"localizations": {
"en": {
Expand Down
6 changes: 6 additions & 0 deletions appleApp/ios/UI/Component/Status/StatusUIKitLeaves.swift
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,12 @@ final class StatusVisibilityImageView: UIImageView {
case .channel:
icon = .tv
accessibilityLabel = String(localized: "channel_title")
case .friends:
icon = .heart
accessibilityLabel = String(localized: "visibility_friends")
case .selfOnly:
icon = .lock
accessibilityLabel = String(localized: "visibility_self")
default:
icon = .globe
accessibilityLabel = String(localized: "status_visibility_public")
Expand Down
16 changes: 5 additions & 11 deletions appleApp/ios/UI/Screen/ComposeScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -582,10 +582,9 @@ struct ComposeScreen: View {
}

private func applyDraft(_ draft: UiDraft) {
let result = viewModel.applyDraft(draft)
mediaViewModel.sensitive = result.sensitive
viewModel.applyDraft(draft)
mediaViewModel.sensitive = draft.data.sensitive
mediaViewModel.restore(draftMedias: draft.medias)
setVisibility(result.visibility)
requestComposerFocus()
}

Expand All @@ -602,17 +601,12 @@ struct ComposeScreen: View {
return .init(file: file, altText: item.altText.isEmpty ? nil : item.altText)
}
}
private func getVisibility() -> UiTimelineV2.PostVisibility {
switch onEnum(of: presenter.state.visibilityState) {
case .success(let success): return success.data.visibility
default: return .public
}
private func getVisibility() -> UiTimelineV2.PostVisibility? {
presenter.state.visibility
}

private func setVisibility(_ visibility: UiTimelineV2.PostVisibility) {
if case .success(let visibilityState) = onEnum(of: presenter.state.visibilityState) {
visibilityState.data.setVisibility(value: visibility)
}
presenter.state.setVisibility(value: visibility)
}

private var composeVisibility: UiTimelineV2.PostVisibility? {
Expand Down
18 changes: 5 additions & 13 deletions appleApp/macos/UI/Screen/MacComposeScreen.swift
Original file line number Diff line number Diff line change
Expand Up @@ -498,13 +498,8 @@ struct MacComposeScreen: View {
.frame(width: 380, height: 480)
}

private var currentVisibility: UiTimelineV2.PostVisibility {
switch onEnum(of: presenter.state.visibilityState) {
case .success(let success):
success.data.visibility
default:
.public
}
private var currentVisibility: UiTimelineV2.PostVisibility? {
presenter.state.visibility
}

private func importFiles(_ result: Result<[URL], Error>) {
Expand Down Expand Up @@ -565,9 +560,7 @@ struct MacComposeScreen: View {
}

private func setVisibility(_ visibility: UiTimelineV2.PostVisibility) {
if case .success(let visibilityState) = onEnum(of: presenter.state.visibilityState) {
visibilityState.data.setVisibility(value: visibility)
}
presenter.state.setVisibility(value: visibility)
}

private var composeVisibility: UiTimelineV2.PostVisibility? {
Expand Down Expand Up @@ -635,11 +628,10 @@ struct MacComposeScreen: View {
}

private func applyDraft(_ draft: UiDraft) {
let result = viewModel.applyDraft(draft)
sensitive = result.sensitive
viewModel.applyDraft(draft)
sensitive = draft.data.sensitive
mediaItems = draft.medias.compactMap(MacComposeMediaItem.init(draftMedia:))
syncMediaMimeTypes()
setVisibility(result.visibility)
}

private func syncMediaMimeTypes() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -448,4 +448,6 @@

<string name="weibo_friends_circle_title">好友圈</string>
<string name="weibo_private_following_title">悄悄关注</string>
<string name="visibility_friends">好友圈可见</string>
<string name="visibility_self">仅自己可见</string>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -438,4 +438,6 @@
<string name="ugoira_loading">正在載入動圖</string>
<string name="weibo_friends_circle_title">好友圈</string>
<string name="weibo_private_following_title">悄悄關注</string>
<string name="visibility_friends">好友圈可見</string>
<string name="visibility_self">僅自己可見</string>
</resources>
2 changes: 2 additions & 0 deletions compose-ui/src/commonMain/composeResources/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -589,4 +589,6 @@

<string name="weibo_friends_circle_title">Friends Circle</string>
<string name="weibo_private_following_title">Private Following</string>
<string name="visibility_friends">Friends circle</string>
<string name="visibility_self">Only me</string>
</resources>
Loading