Commit Graph

2564 Commits (master)

Author SHA1 Message Date
Ryan ZHAO fcfca0e7f4 migrate to strings catalog 2 years ago
Ryan ZHAO 0b00e96d88 fix an ui issue on join open group vc 2 years ago
Ryan ZHAO 003816117f Merge branch 'dev' into standardised-strings 2 years ago
Morgan Pretty 2098cb32dd Number of fixes and tweaks related to the deadlock issue
• Fixed some cases where errors weren't being displayed correctly
• Tweaked the "nodeNotFound" error to be a bit more human readable
• Tweaked the BackgroundPoller timeout to have a 5 second buffer instead of a 1 second buffer
• Moved the lastHash pruning into the GarbageCollectionJob instead of the pre-poll fetching to avoid needing to use a write query before polling
• Reworked the Pollers to make their database queries part of the polling stream (and as such, cancellable)
2 years ago
Ryan ZHAO 6758ad010e show message input box when permission is changed in a conversation 2 years ago
Morgan Pretty 6a838a486c Fixed an issue where the blocked contacts screen might not show values 2 years ago
Morgan Pretty d4e66dde14 Fixed a few more issues found during testing
• Fixed an issue where the conversation 'created' timestamp wasn't correctly getting set when creating a group
• Fixed an issue where sending a message to 'Note to Self' may not show the conversation in the conversation list
• Fixed an issue where sharing a message with an attachment might not include the attachment
• Fixed an issue where list paging wouldn't work in some cases after values were inserted into the database after the currently loaded pages
• Added some handling for invalid 'joinedAt' values for groups (seems like we can have an incorrect resolution)
2 years ago
Morgan Pretty 3676f63cb0 Fixed some bugs found during QA
• Fixed a bug where the onboarding wouldn't be considered complete after successfully retrieving a displayName when restoring an account
• Fixed a couple of libSession networking bugs
• Tweaked some logging
• Removed some legacy code
2 years ago
Morgan Pretty ed472f44c5 Merge remote-tracking branch 'upstream/dev' into release/2.6.3
# Conflicts:
#	Session/Meta/AppDelegate.swift
#	Session/Onboarding/LandingVC.swift
#	Session/Onboarding/LinkDeviceVC.swift
#	Session/Onboarding/RegisterVC.swift
#	Session/Onboarding/RestoreVC.swift
2 years ago
Ryan ZHAO fe312a0d68 update translation link 2 years ago
Morgan Pretty 402083e0cf Removed the path screen attribution label 2 years ago
Morgan Pretty 234694b292 Fixed a couple of BackgroundPoller behaviours
• Fixed an issue where the BackgroundPoller would fail if a single destination failed
  - This would suspend the network, then the other pending requests would error and automatically retry, attempting to create a new connection which could loop a number of times rapidly since the network was suspended
• Fixed an issue where the BackgroundPoller could incorrectly try to write to the database after it had been suspended
2 years ago
Morgan Pretty 65807ec6d3 Further fixes
• Updated the pollers to NOT take the duration of the previous poll into account when scheduling the next poll
• Updated to the latest `libSession` version (a few optimisations/fixes)
• Fixed a minor layout issue with the attribution label on the Path screen
2 years ago
Morgan Pretty 6c9f4b506d Added the attribution label to the paths screen 2 years ago
Morgan Pretty 201659728f Removed some debug code 2 years ago
Morgan Pretty f7dcd47c0c Fixed a few more minor bugs and updated GeoLite2 data
• Updated the GeoLite2 country database data, added some basic localisation to it
• Managed to optimise the size of the GeoLite2 data bundled with the app (10mb -> 8mb)
• Cleaned up the IP2Country logic a little
• Removed some pluralisation from logs (want the logs to be identical outside of numbers)
• Tweaked the PushRegistrationManager to actually timeout
2 years ago
Morgan Pretty 592d743c82 Fixed a bug where the conversation settings button message request bug 2 years ago
Morgan Pretty a8d9200ef5 Fixed a few more bugs
• Fixed an issue where excessive job failures could result in jobs not running onLaunch or onActive as expected (extended network issues resulted in the default communities not getting fetched)
• Fixed an issue where the PathVC could end up in a weird state after the IP2Country cache gets updated
• Fixed an issue where LinkPreview caching was incorrectly case sensitive
• Fixed an issue where the IP2Country might load it's cache on the wrong thread
• Added the ability to copy the file path to the log file when exporting on the simulator
• Updated the Request type to correctly encode a body of 'Data' type when given (would previously incorrectly encode it as JSON)
2 years ago
Ryan ZHAO f8e1c4a20b update accessibility id 2 years ago
Ryan ZHAO e430ef7943 fix accessibility id 2 years ago
Ryan ZHAO 394bd19c96 WIP: ban & delete toast 2 years ago
Morgan Pretty 25150f931e Logging improvements, incorrect version number fix 2 years ago
Ryan ZHAO 27b5aeaec3 handle an edge case when user force quitting the app during account creation 2 years ago
Ryan ZHAO 1753a4a85d add animation 2 years ago
Ryan ZHAO 23511941c5 fix the ons error logic 2 years ago
Ryan ZHAO 77e9a1d29a fix landing screen T&C string 2 years ago
Ryan ZHAO 065e51381b add strings & update libsession build script 2 years ago
Ryan ZHAO 19b4055a2e Merge branch 'onboarding' into standardised-strings 2 years ago
Ryan ZHAO 75845619f7 update accessibility id 2 years ago
Ryan ZHAO b2a7e142a3 update onboarding flow when the seed is already stored 2 years ago
Ryan ZHAO eec4c7f944 add localised strings 2 years ago
Ryan ZHAO 4da21035ca fix ons search error 2 years ago
Morgan Pretty 1fd65230b7 Fixed the broken unit tests
• Added a method to customise mock parameter summaries for unit tests
• Pulled across the updated libSession cache logic
2 years ago
Ryan ZHAO 654419d116 fix multiple lines display name in settings screen 2 years ago
Ryan ZHAO 572e5ceb7d fix an issue where 100 bytes string won't pass the display name length test 2 years ago
Morgan Pretty 3dada9e58a Updated mention styling and added back path "recovery" logic 2 years ago
Morgan Pretty e2fc0a5b51 Further fixes
• Fixed an issue where the default log level was set too low
• Fixed an issue where sending the app to the background without any pending jobs could result in the database and network not being suspended correctly
• Updated to latest libSession (don't try to recover paths, just rebuild)
2 years ago
Ryan ZHAO ab2f93a993 workaround for restarting capture after going back from message notification screen 2 years ago
Ryan ZHAO 057e71f942 minor copy fix 2 years ago
Ryan ZHAO a05aab193c fix the error message for ons searching time out 2 years ago
Ryan ZHAO 216a6666cc fix error logic for recovery password 2 years ago
Morgan Pretty ea7b4a2de3 Fixed an issue with rapidly going to/from the background
• Fixed an issue where leaving and returning to the app rapidly could leave the app in a state when the database and network are inaccessible
• Fixed an issue where bad nodes might not get dropped from the pool (libSession update)
2 years ago
Morgan Pretty 185e84dc95 Fixed a few PN behaviours
• Tweaked the message request notification behaviour
• Fixed an issue where duplicate message errors would result in the generic notification being shown
• Further notification logging improvements
2 years ago
Morgan Pretty db796896f4 Tweaks to notification extension
• Fixed an issue where the notification extension could end up in an invalid state if you delete and create a new account in rapid succession
• Fixed an issue where notification processing errors weren't getting handled correctly resulting in the notification extension timing out
• Stopped the notification extension from trying to download profile images
• Added commit hash to version info
• Tweaked the notification extension logic flow to be more straight forward
2 years ago
Ryan ZHAO 0b7ff7b623 Merge branch 'dev' into onboarding 2 years ago
Ryan ZHAO e82cf79dd4 fix an issue that the camera freezes after scanning something other than a session id in new conversation screen 2 years ago
Ryan ZHAO d6b8616543 further fix for global search sorting 2 years ago
Ryan ZHAO ed04c5153e fix default contact list sorting behaviour in global search screen 2 years ago
Ryan ZHAO 497bfbe120 copy fix 2 years ago
Ryan ZHAO 28dcbffa99 copy fix 2 years ago
Ryan ZHAO 16f47d4f87 fix an issue where copy is cut off on small devices 2 years ago
Morgan Pretty cac5542868 Additional bug fixes, log tweaks and update checking
• Added a new CheckForAppUpdates job which runs at most once every 24 hours
• Updated the job failure logs to include the error that caused the failure
• Updated the network instance to use 'single_path_mode' when not executing within the main app
• Updated the logger to append extension logs when resuming instead of only during startup
• Updated the export logs behaviour to append the previously rotated log data if the latest log file is too short (to ensure we get more useful info when debugging)
• Updated to the latest libSession commit to resolve a couple of edge-cases
2 years ago
Morgan Pretty 6663bd64c4 Stopped the PN extension suspending the network and improved logging
• Removed the SOGS polling from the notification extension (rarely worked and caused network suspension bugs)
• Cleaned up some logging
2 years ago
Ryan ZHAO ac29ca484c update info plist translation file 2 years ago
Ryan ZHAO 527c921df3 Merge branch 'onboarding' into standardised-strings 2 years ago
Morgan Pretty 1726930e2e Merge remote-tracking branch 'upstream/dev' into onboarding 2 years ago
Ryan ZHAO 62854c57c7 fix recovery password qr code 2 years ago
Ryan ZHAO 1839d596ce replace "Unknown" section with "#" for global search 2 years ago
Ryan ZHAO 3f3c7321ad fix contacts sorting issue in global search 2 years ago
Ryan ZHAO 4c0ffdcd25 add paddings at the bottom of recovery password title 2 years ago
Ryan ZHAO 54fea140b7 fix global search section title for conversations 2 years ago
Morgan Pretty a91024f0bb Separate streams for attachment upload/download and bug fixes
• Updated the code to stop sending legacy PNs outside of legacy group conversations
• Updated the logger logic to clean things up and use the local date/time (with time zone info) to ease debugging user reports
• Fixed an issue where messages in a community could incorrectly accept disappearing message settings
• Fixed an issue where duplicate messages could be sent in some cases
• Fixed an issue where the conversation might not scroll to the bottom after sending an attachment
• Fixed an issue where attachment encryption was happening in a db write thread
2 years ago
Ryan ZHAO 45d9718ef8 fix a bunch of accessibility ids 2 years ago
Ryan ZHAO fea940c69d fix an issue that the screen stack is odd when sending message requests 2 years ago
Ryan ZHAO 7310f49b59 fix recovery password accessibility in light mode 2 years ago
Ryan ZHAO 63ca28b002 make the fake chat bubbles in landing screen scrollable 2 years ago
Morgan Pretty 6cb9294143 Changed the networking logic to suspend/resume rather than just cancel connections 2 years ago
Morgan Pretty d1a4683bc3 Worked on fixing the main libQuic crashes
• Revert logic to stop voice messages from playing when their associated message disappears
• Updated the libSession build script to pass through the build type (so we get debug libSession builds when doing debug builds)
• Fixed a couple of issues in libSession around recovering network connectivity
2 years ago
Ryan ZHAO ecb1b83a8e upgrade to minimum iOS 15.0 support 2 years ago
Ryan ZHAO 90de873ea0 add and modify strings 2 years ago
Ryan ZHAO c9130326bc fix some localised strings 2 years ago
Morgan Pretty b58a3f23cd Fixed a couple of bugs in the ConversationVC
• Fixed a bug where a disappearing voice message wouldn't stop playing
• Fixed a bug where the conversation screen was never freed from memory
• Fixed an issue with an earlier change where the openGroupManager cache would access itself while modifying itself causing a crash
2 years ago
Morgan Pretty f9d9954cf5 Attempts to fix more crashes and fix unit tests
• Fixed an index out of bounds issue with the mnemonic
• Attempt to fix a crash due to failing to hash SignalAttachment
• Attempt to fix a crash due to list data change inconsistencies
• Ensuring we are shutting down the network when resetting app data
• Updated the broken unit tests
2 years ago
Morgan Pretty 3b5eaa6bbb Fixed a few minor issues noticed in the logs
• Fixed an issue where SOGS pollers could be started multiple times
• Avoid checking if blinded conversations exist in the config (will always return false)
• Updated some logs to provide more timing information
2 years ago
Morgan Pretty 733694d464 Defensive coding for C API conversation, threading & logging tweaks
• Reworked some of the C API conversions to try to prevent invalid cases
• Tweaked the threading around libSession networking callbacks to minimise Swift code blocking libSession threads
• More logging tweaks
2 years ago
Morgan Pretty dd5716e831 Initial work on 2.6.0 issues
• Fixed an issue where voice messages wouldn't stop playing when deleting a message or leaving a conversation
• Fixed an issue where the notification extension was handling errors and finishing while within a database transaction
• Fixed an issue where the ShareExtension may not have been able to send LinkPreviews
• Fixed an issue where displaying or logging the paths weren't maintaining the correct order
• Tweaked some of the logging behaviours
2 years ago
Ryan ZHAO 1d01eb91ae Merge branch 'onboarding' into standardised-strings 2 years ago
Ryan ZHAO de4a367374 fix an issue that the navigation bar won't change as the appearance settings changes 2 years ago
Ryan ZHAO 431c024354 update accessibility ids 2 years ago
Ryan ZHAO ae4c87a5b0 minor refactor on how to show error messages when the mnemonic is incorrect 2 years ago
Ryan ZHAO 648c3e658e fix incorrectly displayed empty state in home screen 2 years ago
Ryan ZHAO aa5d7f14d3 fix home screen in light mode 2 years ago
Ryan ZHAO d8c6692fbc add closed button for Open URL Modal 2 years ago
Ryan ZHAO 0a9fa9de51 clean 2 years ago
Ryan ZHAO 27cfa40819 replace "Session ID" with "Account ID" 2 years ago
Ryan ZHAO 98b46bc142 replace "Lock Session" with "Lock App" 2 years ago
Ryan ZHAO 2301c75c08 fix toast error message for scanning recovery password qrcode 2 years ago
Ryan ZHAO 1c46faa500 update InfoPlist.xcstrings 2 years ago
Ryan ZHAO acb528f190 time localisation 2 years ago
Ryan ZHAO fdfc75967b Merge branch 'standardised-strings' of https://github.com/RyanRory/loki-messenger-ios into standardised-strings 2 years ago
Ryan ZHAO be150154d1 WIP: add scripts for OS permission strings 2 years ago
Morgan Pretty d9a64e0148 Merge remote-tracking branch 'upstream/dev' into standardised-strings
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Closed Groups/EditClosedGroupVC.swift
#	Session/Closed Groups/NewClosedGroupVC.swift
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Conversations/Emoji Picker/EmojiPickerCollectionView.swift
#	Session/Conversations/Settings/ThreadSettingsViewModel.swift
#	Session/Emoji/Emoji+Available.swift
#	Session/Home/New Conversation/NewDMVC.swift
#	Session/Media Viewing & Editing/GIFs/GifPickerViewController.swift
#	Session/Meta/AppDelegate.swift
#	Session/Meta/SessionApp.swift
#	Session/Onboarding/PNModeVC.swift
#	Session/Path/PathVC.swift
#	Session/Utilities/IP2Country.swift
#	SessionMessagingKit/Messages/Control Messages/SharedConfigMessage.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/Poller.swift
#	SessionNotificationServiceExtension/NotificationError.swift
#	SessionUIKit/Style Guide/Values.swift
#	SignalUtilitiesKit/Media Viewing & Editing/Attachment Approval/AttachmentCaptionToolbar.swift
2 years ago
Morgan Pretty 73193df2e1 Fixed error handling after merge 2 years ago
Morgan Pretty e420ce4e58 Merge remote-tracking branch 'upstream/dev' into onboarding
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/ConversationVC.swift
#	Session/Home/New Conversation/NewDMVC.swift
#	Session/Onboarding/PNModeVC.swift
#	SessionUIKit/Style Guide/Values.swift
2 years ago
Morgan Pretty 9e5a938d6f Use the new logger, fixed build script bug, latest libSession
• Updated to the latest libSession
• Updated the code to use the new logger
• Fixed a bug in the build script where changes to external libSession dependencies wouldn't result in a rebuild
2 years ago
Morgan Pretty fb8a1623df Updated the CI sim build command to use unbuffered io 2 years ago
Morgan Pretty fee7f09c38 Fixed keyboard obscuring the calls UI in one case, fixed QA ids 2 years ago
Ryan ZHAO 991d0b90d5 add a new modal for unknown errors when clearing data from network 2 years ago
Ryan ZHAO 8fe3cf7562 update strings and minor fix 2 years ago
Ryan ZHAO 688ab805d7 UI fix for onboarding merge 2 years ago
Ryan ZHAO 0d6ed3fa1f fix display name screen title 2 years ago
Ryan ZHAO 96832484b3 minor refactor on getting app name 2 years ago
Ryan ZHAO ed24b91199 replace community join error 2 years ago
Ryan ZHAO e790fa4519 make things compile 2 years ago
Ryan ZHAO bcc1d436bc WIP: update strings for onboarding changes 2 years ago
Morgan Pretty eccaa29c4a Fixed the background crash issues
• Updated GRDB and SQLCipher
• Shifted the ThreadSettingsViewModel code into a separate function to fix a compilation issue
2 years ago
Ryan ZHAO f4a979f55f Merge branch 'onboarding' into standardised-strings 2 years ago
Ryan ZHAO c4b035eb78 add localised strings for system controlled permission modals 2 years ago
Morgan Pretty 9491b4a97b Fixed a crash and config issue
• Fixed a bad memory crash which could occur when returning from the background
• Fixed an issue where config messages were incorrectly getting double wrapped in protobuf wrappers
2 years ago
Ryan ZHAO d50f867717 add dynamic variables for app name 2 years ago
Ryan ZHAO 7192a8478a replace more strings 2 years ago
Ryan ZHAO 534c0a13df rename dynamic variables in strings 2 years ago
Morgan Pretty 99abcdebf6 Removed some unneeded code and fixed a couple of bugs
• Removed the 'runOnceTransient' behaviour (no longer have jobs that run before the user exists)
• Removed the session id from the message snippet in the conversation list
• Fixed an issue where the SyncPushTokensJob might not run because the paths hadn't been built yet
2 years ago
Morgan Pretty 5ee15bbc3f Moved a bunch of networking logic into libSession
• Moved the snode cache and path building into libSession (deleted associated logic)
• Moved reachability detection into libSession (remove Reachability dependency)
• Fixed a couple of crashes with using libQuic requests
• Fixed a bug where the MessageRequestFooterView would show buttons on outgoing message requests
2 years ago
Ryan ZHAO 6d297dc2a9 update strings 2 years ago
Ryan ZHAO 6f6521c9ca update strings 2 years ago
Ryan ZHAO 1cda8887dc WIP: strings! 2 years ago
Morgan Pretty 8d99f64f56 Fixed a few more bugs
• Fixed an issue where the message status wouldn't update to the failed state if the MessageSendJob timed-out
• Fixed an issue where network issues could result in a backlog of TypingIndicator messages that failed to send (don't bother retrying them)
• Fixed an issue where concurrent jobs might not retry correctly if other jobs don't complete or the retry was triggered from the wrong queue
• Fixed an issue where the input view could disappear in some cases
2 years ago
Morgan Pretty 352f6d7337 Fixed a number of bugs found while testing the internal build
• Reworked the keyboard avoidance in ConversationVC to fix some bugs and simplify the behaviour
• Moved the message request footer UI into it's own view
• Fixed an issue where paths wouldn't get built for a new isntall
• Fixed an issue where a couple of LibSession+Networking errors weren't getting logged correctly
• Fixed a log that could be thrown incorrect for a unique constraint failure
• Fixed an annoying startup warning due to thread priorities
2 years ago
Morgan Pretty 5c0fd4a5de Merge remote-tracking branch 'upstream/dev' into feature/lib-quic-integration 2 years ago
Morgan Pretty a3188ebea4 Fixed a number of bugs found in the internal release
• Moved the 'getSwarm' behaviour into a distinct job to prevent duplicate API calls
• Updated to the latest libSession (fix libQuic crash)
• Updated the JobRunner to support the `runOnceTransient` behaviour and be able to run transient jobs in the app extensions
• Reworked the extension file logging to be written directly to the file in a single operation rather than line-by-line via the logger
• Fixed a bug where community invites has the wrong author
• Fixed a bug where the title on the disappearing messages settings screen was clipping vertically
• Fixed a bug where tapping on the disappearing messages setting subtitle could incorrectly appear in read-only state for admins
• Fixed a log which contained notification content
• Tweaks to extension logging logic
2 years ago
Ryan ZHAO b2540dca9f WIP: add toast for banning users in communities 2 years ago
Ryan ZHAO 5c9140cb4c Merge branch 'dev' into standardised-strings 2 years ago
Ryan ZHAO 7c993673bb Merge branch 'dev' into onboarding 2 years ago
Ryan ZHAO 5b863c4e38 WIP: add toast for banning users in communities 2 years ago
Ryan ZHAO 99f80f3efc remove unused formatting in home screen 2 years ago
Morgan Pretty c435f1b577
Merge pull request #965 from mpretty-cyro/fix/mention-automated-tests
Fix/mention automated tests
2 years ago
Morgan Pretty 075485ad42 Revert "Enable arbitrary loads for QA testing"
This reverts commit e6f683fb17.
2 years ago
Morgan Pretty f150732e99
Merge pull request #959 from mpretty-cyro/fix/sync-message-issues
Fixed a few bugs with sync messages
2 years ago
Ryan ZHAO 87efc38a04 minor refactor on context menu actions 2 years ago
Morgan Pretty e6f683fb17 Enable arbitrary loads for QA testing 2 years ago
Ryan ZHAO a7b8a120e3 minor fix and add toast for already a member of community 2 years ago
Morgan Pretty 2cffda17bc Merge remote-tracking branch 'upstream/dev' into feature/lib-quic-integration
# Conflicts:
#	Scripts/build_libSession_util.sh
2 years ago
Morgan Pretty afe1efbd90 Deduped path building and attempted to improve extension logging
• Moved the build paths logic into the BuildPathsJob to allow for better deduping
• Updated the notification and share extensions to generate log files and append to the bottom of the app log file
2 years ago
Morgan Pretty c6c2881338 Reworked the libSession network to be instance based
• Fixed an issue where the DisappearingMessagesJob was getting run for every individual message process instead of just once after processing all messages from a poll
• Tweaked the polling logic to split the user, groups and community pollers into separate queues
• Tweaked the logic to restart the open group poller immediately after joining a community (to avoid an edge-case where there could be a long delay before the initial poll is made)
• Tweaked the logic for checking if PNs are susceptible to failure to only dispatch to the main thread once
• Cleaned up some warnings
• Updated the app versioning to be at the project level instead of target level
• Added the ability to define a unique hash for a job for deduplication
2 years ago
Morgan Pretty 8c467dc511 Merge remote-tracking branch 'origin/fix/sync-message-issues' into feature/lib-quic-integration
# Conflicts:
#	.drone.jsonnet
#	SessionSnodeKit/Networking/SnodeAPI.swift
#	SessionSnodeKit/Types/OnionRequestAPIError.swift
#	SessionSnodeKit/Types/SnodeAPIError.swift
2 years ago
Ryan ZHAO f33a153c7f update more strings 2 years ago
Ryan ZHAO 62af0aa907 update more localized strings 2 years ago
Ryan ZHAO cdb9282313 replace more localized string 2 years ago
Ryan ZHAO 28dbef71c3 Merge branch 'dev' into standardised-strings 2 years ago
Ryan ZHAO 928fe3a1d6 Merge branch 'dev' into onboarding 2 years ago
Ryan ZHAO 63658f70d7 Merge branch 'dev' into standardised-strings 2 years ago
Morgan Pretty b01de2e65f Added missing keys to the privacy info file 2 years ago
Morgan Pretty fff1bcb9ba Added the FileTimestamp key to the PrivacyInfo plist 2 years ago
Morgan Pretty 53196b4694 Added new PrivacyInfo plist required by Apple 2 years ago
Morgan Pretty c065abc584 Cleaned up a bunch of warnings, renamed a couple of folders 2 years ago
Ryan ZHAO 54d0f06139 add some general localised strings 2 years ago
Ryan ZHAO 0075494a2d Merge branch 'dev' into onboarding 2 years ago
Ryan ZHAO 3a1e2a6c08 implement new empty state 2 years ago
Ryan ZHAO bcb2bbb2e7 fix faulty translation 2 years ago