Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
aac2207
updating build settings
rabble Feb 2, 2025
fe6997b
Add notification preference settings
rabble Apr 6, 2025
8ad6c4e
Fix compiler type-checking issue in SettingsView
rabble Apr 6, 2025
8211b3e
Fix compilation issues in notification preference implementation
rabble Apr 6, 2025
46cf02c
Enhance notification preferences with more filtering options
rabble Apr 6, 2025
2d994a5
Fix author following check in notification filtering
rabble Apr 6, 2025
6a9043a
Fix async context issues in notification filtering
rabble Apr 6, 2025
28ac008
Fix return type issues in notification processing
rabble Apr 6, 2025
3ac165e
Reorganize notification preferences with a thread replies toggle
rabble Apr 6, 2025
99d9fff
Add muted content management section to notification settings
rabble Apr 6, 2025
158074c
Fix optional unwrapping in thread reply check
rabble Apr 6, 2025
4d381b2
Fix NosToggle implementation in notification settings
rabble Apr 6, 2025
a0e9397
Fix toggle implementation in notification settings
rabble Apr 6, 2025
273cf56
Fix navigation to muted users screen
rabble Apr 6, 2025
be66b9d
Improve notification settings text for better clarity
rabble Apr 6, 2025
2a81140
Simplify notification setting labels for better readability
rabble Apr 6, 2025
84dbad8
Use proper localization keys in notification settings
rabble Apr 6, 2025
c4a7147
Add unit tests for notification preferences
rabble Apr 6, 2025
20cf4de
Fix string merging script to use Python's JSON handling
rabble Apr 6, 2025
1e45bc3
Simplify string merging script using direct text processing
rabble Apr 6, 2025
fed9f7f
Rewrite string merging script with more reliable approach
rabble Apr 6, 2025
955b204
chore: Update Localizable.xcstrings file
rabble Apr 6, 2025
91c64ba
fix: Initialize Localizable.xcstrings with valid JSON structure
rabble Apr 6, 2025
c91ffce
Simplify notification preferences UI
rabble Apr 6, 2025
b05a2d4
Add notification preferences and improve notification filtering
rabble Apr 6, 2025
2e044d2
Fix tests and SettingsView integration
rabble Apr 6, 2025
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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Release Notes
- Fixed: crash in Event.trackDelete(on:context:).
- Added: Notification preference settings to control who can notify you
- Added: Option to get notifications from "Anyone" (including people outside your network)
- Added: Thread reply notification toggle

### Internal Changes
- Fixed: Contact Support event fires too often.
- Fixed: Notification filtering to properly respect user preferences
- Performance improvements for RepliesLabel, AuthorLabel, NoteCardHeader, Date+Elapsed

## [1.2.1] - 2025-02-19Z
Expand Down
24 changes: 10 additions & 14 deletions Nos.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -3031,12 +3031,11 @@
ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = accent;
CODE_SIGN_ENTITLEMENTS = Nos/NosStaging.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Verse Communications, Inc. (GZCZBKH7MY)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 224;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = GZCZBKH7MY;
DEVELOPMENT_TEAM = GZCZBKH7MY;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
Expand Down Expand Up @@ -3069,7 +3068,6 @@
PRODUCT_MODULE_NAME = Nos;
PRODUCT_NAME = "$(TARGET_NAME) Staging";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.verse.Nos-staging";
SCHEME_PREFIX = "nos-staging";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
Expand Down Expand Up @@ -3486,11 +3484,11 @@
ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = accent;
CODE_SIGN_ENTITLEMENTS = Nos/Nos.entitlements;
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 224;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = GZCZBKH7MY;
DEVELOPMENT_TEAM = GZCZBKH7MY;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
Expand Down Expand Up @@ -3522,7 +3520,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.verse.Nos;
PRODUCT_MODULE_NAME = Nos;
PRODUCT_NAME = "$(TARGET_NAME)";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.verse.Nos";
PROVISIONING_PROFILE_SPECIFIER = "";
SCHEME_PREFIX = nos;
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
Expand All @@ -3543,12 +3541,11 @@
ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOLS = NO;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = accent;
CODE_SIGN_ENTITLEMENTS = Nos/Nos.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: Verse Communications, Inc. (GZCZBKH7MY)";
CODE_SIGN_STYLE = Manual;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 224;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = GZCZBKH7MY;
DEVELOPMENT_TEAM = GZCZBKH7MY;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
Expand Down Expand Up @@ -3580,7 +3577,6 @@
PRODUCT_MODULE_NAME = Nos;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.verse.Nos";
SCHEME_PREFIX = nos;
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
Expand Down
149 changes: 140 additions & 9 deletions Nos/Assets/Localization/Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -1349,6 +1349,16 @@
}
}
},
"allMentions" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Anyone"
}
}
}
},
"allMyRelays" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -2965,6 +2975,16 @@
}
}
},
"comingSoon" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Coming Soon"
}
}
}
},
"completeProfileButton" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -9005,7 +9025,7 @@
"other" : {
"stringUnit" : {
"state" : "translated",
"value" : "被**%1$@**、**%2$@**和**%3lld個其他用戶**關注"
"value" : "被**%1$@**、**%2$@**和**%3$@個其他用戶**關注"
}
}
}
Expand Down Expand Up @@ -9392,6 +9412,26 @@
}
}
},
"friendsOfFriends" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "My Network"
}
}
}
},
"fromFollowsOnly" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "People I Follow"
}
}
}
},
"getMyHandle" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -9894,6 +9934,16 @@
}
}
},
"includingOutsideNetwork" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Including people outside your network"
}
}
}
},
"inNetwork" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -10997,6 +11047,16 @@
}
}
},
"manageMutesTitle" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Muted Content"
}
}
}
},
"manageUsers" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -11266,13 +11326,22 @@
}
}
},
"mutedThreads" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Muted Threads"
}
}
}
},
"mutedUsers" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Blocked Users"
"value" : "Muted Users"
}
}
}
Expand Down Expand Up @@ -13281,7 +13350,7 @@
"other" : {
"stringUnit" : {
"state" : "translated",
"value" : "此笔记因 %3$@ 被 **%1$@** 和 **%2$lld 个其他用户** 举报。"
"value" : "此笔记因 %3$@ 被 **%1$@** 和 **%2$@ 个其他用户** 举报。"
}
}
}
Expand All @@ -13293,7 +13362,7 @@
"other" : {
"stringUnit" : {
"state" : "translated",
"value" : "此筆記因 %3$@ 被 **%1$@** 和 **%2$lld 個其他用戶** 舉報。"
"value" : "此筆記因 %3$@ 被 **%1$@** 和 **%2$@ 個其他用戶** 舉報。"
}
}
}
Expand Down Expand Up @@ -13478,6 +13547,27 @@
}
}
},
"notificationSettings" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Notification Settings"
}
}
}
},
"notificationSettingsDescription" : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Control which notifications you receive"
}
}
}
},
"notOldEnoughButton" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -14205,7 +14295,7 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Your **@username** is your identity in the Nos community.\u2028\nChoose a name that reflects you or your organization. Make it memorable and distinct!"
"value" : "Your **@username** is your identity in the Nos community.\nChoose a name that reflects you or your organization. Make it memorable and distinct!"
}
},
"es" : {
Expand Down Expand Up @@ -18183,6 +18273,27 @@
}
}
},
"sourceFilterDescription" : {
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Limit who can send you notifications"
}
}
}
},
"sourceFilterTitle" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Who Can Notify Me"
}
}
}
},
"spam" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -18927,6 +19038,26 @@
}
}
},
"threadRepliesDescription" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Get notified about replies in my threads even when I'm not mentioned"
}
}
}
},
"threadRepliesTitle" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Thread Notifications"
}
}
}
},
"tryAgainOrContactSupport" : {
"extractionState" : "manual",
"localizations" : {
Expand Down Expand Up @@ -19463,7 +19594,7 @@
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Well done, you've successfully claimed your **@username**!\u2028\nYou can share this name with other people in the Nostr and Fediverse communities to make it easy to find you."
"value" : "Well done, you've successfully claimed your **@username**!\nYou can share this name with other people in the Nostr and Fediverse communities to make it easy to find you."
}
},
"es" : {
Expand Down Expand Up @@ -19787,7 +19918,7 @@
"other" : {
"stringUnit" : {
"state" : "translated",
"value" : "此用户因 %3$@ 被 **%1$@** 和 **%2$lld 个其他用户** 举报。"
"value" : "此用户因 %3$@ 被 **%1$@** 和 **%2$@ 个其他用户** 举报。"
}
}
}
Expand All @@ -19799,7 +19930,7 @@
"other" : {
"stringUnit" : {
"state" : "translated",
"value" : "此用戶因 %3$@ 被 **%1$@** 和 **%2$lld 個其他用戶** 舉報。"
"value" : "此用戶因 %3$@ 被 **%1$@** 和 **%2$@ 個其他用戶** 舉報。"
}
}
}
Expand Down
Loading
Loading