diff --git a/Podfile.lock b/Podfile.lock index 7d5732330b..d7e0089e2c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -157,7 +157,7 @@ CHECKOUT OPTIONS: :commit: c34d9ccef689c55b9eae69f3c65283da8d8b0c6c :git: https://github.com/RocketChat/RCMarkdownParser.git RocketChatViewController: - :commit: 93164faa2437e9a24dfbc4bc603cff2268e87a0b + :commit: ff8b2f080e05e10286f1d84304f0713375c3f952 :git: https://github.com/RocketChat/RocketChatViewController SimpleImageViewer: :commit: 8222c338de0f285ca0c2d556c5d8dedd4a365b52 diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 7d5732330b..d7e0089e2c 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -157,7 +157,7 @@ CHECKOUT OPTIONS: :commit: c34d9ccef689c55b9eae69f3c65283da8d8b0c6c :git: https://github.com/RocketChat/RCMarkdownParser.git RocketChatViewController: - :commit: 93164faa2437e9a24dfbc4bc603cff2268e87a0b + :commit: ff8b2f080e05e10286f1d84304f0713375c3f952 :git: https://github.com/RocketChat/RocketChatViewController SimpleImageViewer: :commit: 8222c338de0f285ca0c2d556c5d8dedd4a365b52 diff --git a/Pods/RocketChatViewController/Composer/Classes/Library/AudioRecorder.swift b/Pods/RocketChatViewController/Composer/Classes/Library/AudioRecorder.swift index 047dd6a215..7b62079581 100644 --- a/Pods/RocketChatViewController/Composer/Classes/Library/AudioRecorder.swift +++ b/Pods/RocketChatViewController/Composer/Classes/Library/AudioRecorder.swift @@ -80,7 +80,7 @@ public class AudioRecorder: NSObject { private func setSession(active: Bool) { let session = AVAudioSession.sharedInstance() do { - try session.setActive(active) + try session.setActive(active, with: [.notifyOthersOnDeactivation]) } catch let error { print("Set active error: \(error.localizedDescription).") } diff --git a/Pods/RocketChatViewController/Composer/Classes/Overlays/PreviewAudioView.swift b/Pods/RocketChatViewController/Composer/Classes/Overlays/PreviewAudioView.swift index a097d21525..df91e0cba4 100644 --- a/Pods/RocketChatViewController/Composer/Classes/Overlays/PreviewAudioView.swift +++ b/Pods/RocketChatViewController/Composer/Classes/Overlays/PreviewAudioView.swift @@ -172,11 +172,15 @@ public class PreviewAudioView: UIView, ComposerLocalizable { // MARK: Events extension PreviewAudioView { + @objc func touchUpInsideDiscardButton() { guard let url = audioView.audioUrl else { return } + audioView.player?.stop() + audioView.player = nil + delegate?.previewAudioView(self, didDiscardAudio: url) } @@ -185,8 +189,12 @@ extension PreviewAudioView { return } + audioView.player?.stop() + audioView.player = nil + delegate?.previewAudioView(self, didConfirmAudio: url) } + } // MARK: SwipeIndicatorView @@ -357,15 +365,18 @@ public class AudioView: UIView { // MARK: AVAudioPlayerDelegate extension AudioView: AVAudioPlayerDelegate { - func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { + + private func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { playing = false progressSlider.value = 0.0 } + } // MARK: Events extension AudioView { + @objc func didStartSlidingSlider(_ sender: UISlider) { playing = false } @@ -384,4 +395,5 @@ extension AudioView { @objc func didPressPlayButton(_ sender: UIButton) { playing = !playing } + } diff --git a/Pods/RocketChatViewController/Composer/Classes/Overlays/RecordAudioView.swift b/Pods/RocketChatViewController/Composer/Classes/Overlays/RecordAudioView.swift index bda8b6b53f..6d1eee5f5d 100644 --- a/Pods/RocketChatViewController/Composer/Classes/Overlays/RecordAudioView.swift +++ b/Pods/RocketChatViewController/Composer/Classes/Overlays/RecordAudioView.swift @@ -19,8 +19,7 @@ public class RecordAudioView: UIView { public var soundFeedbacksPlayer: AVAudioPlayer? - internal let impactFeedbackLight = UIImpactFeedbackGenerator(style: .light) - internal let impactFeedbackMedium = UIImpactFeedbackGenerator(style: .medium) + internal let feedbackNotification = UINotificationFeedbackGenerator() public let audioRecorder = AudioRecorder() @@ -88,11 +87,11 @@ public class RecordAudioView: UIView { micButton.transform = CGAffineTransform(translationX: translationX, y: 0) timeLabel.alpha = 0 - UIView.animate(withDuration: 0.25, animations: { + UIView.animate(withDuration: 0.25, delay: 0, options: .allowUserInteraction, animations: { self.swipeIndicatorView.transform = CGAffineTransform(translationX: 0, y: 0) self.micButton.transform = CGAffineTransform(translationX: 0, y: 0) self.timeLabel.alpha = 1 - }) + }, completion: nil) } public override init(frame: CGRect) { @@ -172,13 +171,13 @@ public class RecordAudioView: UIView { */ func startRecording() { if !audioRecorder.isRecording { - impactFeedbackMedium.impactOccurred() + feedbackNotification.notificationOccurred(.warning) if let startAudioRecordURL = ComposerAssets.startAudioRecordSound { play(sound: startAudioRecordURL) } - DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.75) { self.audioRecorder.record() } } @@ -190,10 +189,7 @@ public class RecordAudioView: UIView { func stopRecording() { if audioRecorder.isRecording { audioRecorder.stop() - - DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) { - self.impactFeedbackLight.impactOccurred() - } + self.feedbackNotification.notificationOccurred(.success) } } @@ -205,16 +201,14 @@ public class RecordAudioView: UIView { play(sound: cancelAudioRecordURL) } + self.feedbackNotification.notificationOccurred(.success) + UIView.animate(withDuration: 0.25, animations: { self.transform = CGAffineTransform(translationX: -self.frame.width, y: 0) }) { _ in self.audioRecorder.delegate = nil self.audioRecorder.cancel() self.delegate?.recordAudioViewDidCancel(self) - - DispatchQueue.main.asyncAfter(deadline: .now() + 0.15) { - self.impactFeedbackLight.impactOccurred() - } } } diff --git a/Rocket.Chat.ShareExtension/Info.plist b/Rocket.Chat.ShareExtension/Info.plist index 9ab65131e2..e9b62a5f40 100644 --- a/Rocket.Chat.ShareExtension/Info.plist +++ b/Rocket.Chat.ShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 3.4.0 CFBundleVersion - 245 + 247 ITSEncryptionExportComplianceCode NSExtension diff --git a/Rocket.Chat/Info.plist b/Rocket.Chat/Info.plist index 0b582cfcca..ac3448b998 100644 --- a/Rocket.Chat/Info.plist +++ b/Rocket.Chat/Info.plist @@ -222,7 +222,7 @@ CFBundleVersion - 245 + 247 Fabric APIKey diff --git a/Rocket.Chat/Models/Mapping/SubscriptionModelMapping.swift b/Rocket.Chat/Models/Mapping/SubscriptionModelMapping.swift index d3da013b97..b70062068a 100644 --- a/Rocket.Chat/Models/Mapping/SubscriptionModelMapping.swift +++ b/Rocket.Chat/Models/Mapping/SubscriptionModelMapping.swift @@ -135,9 +135,18 @@ extension Subscription: ModelMappeable { } if values["lastMessage"].dictionary != nil { - let user = User() - user.map(values["lastMessage"]["u"], realm: realm) - realm?.add(user, update: true) + if let userIdentifier = values["lastMessage"]["u"]["_id"].string { + if let realm = realm { + if let user = realm.object(ofType: User.self, forPrimaryKey: userIdentifier as AnyObject) { + user.map(values["u"], realm: realm) + realm.add(user, update: true) + } else { + let user = User() + user.map(values["u"], realm: realm) + realm.add(user, update: true) + } + } + } let message = Message() message.map(values["lastMessage"], realm: realm) diff --git a/Rocket.Chat/Models/Subscription/Subscription.swift b/Rocket.Chat/Models/Subscription/Subscription.swift index 64c4b52cfc..939a4661c7 100644 --- a/Rocket.Chat/Models/Subscription/Subscription.swift +++ b/Rocket.Chat/Models/Subscription/Subscription.swift @@ -151,12 +151,14 @@ extension Subscription { guard let auth = auth ?? AuthManager.isAuthenticated(), let baseURL = auth.baseURL(), + let userId = auth.userId, + let token = auth.token, let encodedName = name.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed) else { return nil } - return URL(string: "\(baseURL)/avatar/%22\(encodedName)?format=jpeg") + return URL(string: "\(baseURL)/avatar/%22\(encodedName)?format=jpeg&rc_uid=\(userId)&rc_token=\(token)") } } diff --git a/Rocket.Chat/Resources/el.lproj/Localizable.strings b/Rocket.Chat/Resources/el.lproj/Localizable.strings index 10961f5d05..d059487a34 100644 --- a/Rocket.Chat/Resources/el.lproj/Localizable.strings +++ b/Rocket.Chat/Resources/el.lproj/Localizable.strings @@ -3,7 +3,7 @@ "global.yes" = "Ναι"; "global.no" = "Όχι"; "global.cancel" = "Ακύρωση"; -"global.error" = "λάθος"; +"global.error" = "Λάθος"; // Errors "error.socket.default_error.title" = "Ωπ!"; @@ -50,7 +50,7 @@ "alert.authorization_error.create_channel.description" = "Δεν μπορείτε να δημιουργήστετε κανάλια"; "alert.unsupported_feature.title" = "Η λειτουργικότητα δεν υποστηρίζεται"; -"alert.unsupported_feature.message" = "Η έκδοση του εξυπηρετητή είναι: %@. Αητή η λειτουργικότητα υποστηρίζεται μονο σε εκδόσεις %@ και άνω."; +"alert.unsupported_feature.message" = "Η έκδοση του εξυπηρετητή είναι: %@. Αυτή η λειτουργικότητα υποστηρίζεται μόνο σε εκδόσεις %@ και άνω."; "alert.upload_error.title" = "Σφάλμα στο ανέβασμα"; "alert.upload_error.message" = "Συνέβη κάποιο σφάλμα ενώ ανεβάζατε το αρχείο σας. Παρακαλούμε ξαναπροσπαθήστε."; @@ -94,14 +94,14 @@ // Socket Connection "connection.title" = "Συνδεθείτε στον εξυπηρετητή σας"; "connection.button_connect" = "Σύνδεση"; -"connection.server_url.placeholder" = "your-company.rocket.chat"; // TODO +"connection.server_url.placeholder" = "δική-σας-εταιρία.rocket.chat"; "connection.offline.banner.message" = "Βρίσκεστε εκτός σύνδεσης, προσπαθήστε να συνδεθείτε ξανά"; "connection.connecting.banner.message" = "Συνδεόμαστε..."; "connection.waiting_for_network.banner.message" = "Περιμένετε για το δίκτυο"; // Onboarding -"onboarding.label_welcome" = "Καλώς ορίσατε στο Rocket Chat"; -"onboarding.label_subtitle" = "Team Communication"; // TODO +"onboarding.label_welcome" = "Καλωσήρθατε στο Rocket Chat"; +"onboarding.label_subtitle" = "Επικοινωνία Ομάδας"; "onboarding.button_connect_server" = "Συνδεθείτε σε ένα εξυπηρετητή"; "onboarding.button_create_server" = "Συνδεθείτε σε ένα Χώρο Εργασίας"; "onboarding.button_join_community_prefix" = "Συνδεθείτε με την κοινότητα"; @@ -111,7 +111,7 @@ "auth.connect.ssl_required" = "Απαιτείται υποστήριξη SSL στον εξυπηρετητή"; "auth.connect.connecting" = "Σύνδεση σε εξέλιξη. Περιμένετε παρακαλώ"; "auth.email_auth_prefix" = "Σύνδεση με "; -"auth.email_auth" = "e-mail"; // TODO +"auth.email_auth" = "e-mail"; // TODO: maybe should not be translated "auth.login_service_prefix" = "Συνέχεια με "; "auth.signup_title" = "Εγγραφή"; @@ -152,11 +152,11 @@ "subscriptions.list.no_message" = "Κανένα μήνυμα"; "subscriptions.list.sent_an_attachment" = "στείλτε ένα συνημμένο"; "subscriptions.list.date.yesterday" = "Εχθές"; -"subscriptions.list.actions.read" = "Read"; // TODO -"subscriptions.list.actions.unread" = "Unread"; // TODO -"subscriptions.list.actions.favorite" = "Favorite"; // TODO -"subscriptions.list.actions.unfavorite" = "Unfavorite"; // TODO -"subscriptions.list.actions.hide" = "Hide"; // TODO +"subscriptions.list.actions.read" = "Αναγνωσμένο"; +"subscriptions.list.actions.unread" = "Αδιάβαστο"; +"subscriptions.list.actions.favorite" = "Αγαπημένο"; +"subscriptions.list.actions.unfavorite" = "Μη αγαπημένο"; +"subscriptions.list.actions.hide" = "Απόκρυψη"; // Servers "servers.add_new_team" = "Προσθέστε νέα ομάδας"; @@ -200,11 +200,11 @@ "chat.muted" = "Έχετε τεθεί σε σίγαση"; "chat.loading_messages" = "Φόρτωση μηνυμάτων..."; "chat.unread_separator" = "νέα μηνύματα"; -"chat.preview.actions.read" = "Mark as read"; // TODO -"chat.preview.actions.unread" = "Mark as unread"; // TODO -"chat.preview.actions.favorite" = "Favorite"; // TODO -"chat.preview.actions.unfavorite" = "Unfavorite"; // TODO -"chat.preview.actions.hide" = "Hide"; // TODO +"chat.preview.actions.read" = "Σημαδέψτε σαν αναγνωσμένο"; +"chat.preview.actions.unread" = "Σημαδέψτε σαν μη αναγνωσμένο"; +"chat.preview.actions.favorite" = "Αγαπημένο"; +"chat.preview.actions.unfavorite" = "Μη αγαπημένο"; +"chat.preview.actions.hide" = "Κρυφό"; // Read Receipts "chat.read_receipt_list.title" = "Διαβάστηκε από"; @@ -223,8 +223,8 @@ "chat.message.actions.unstar" = "Όχι-αστέρι"; "chat.message.actions.quote" = "Επιδείξτε μήνυμα"; "chat.message.actions.reply" = "Απαντήστε σε μήνυμα"; -"chat.message.actions.join_video_call" = "Join Video Call"; // TODO -"chat.message.actions.permalink" = "Permalink"; //TODO +"chat.message.actions.join_video_call" = "Συνδεση σε βιντεοκλήση"; +"chat.message.actions.permalink" = "Μόνιμος σύνδεσμος"; "chat.message.actions.delete" = "Διαγράψτε μήνυμα"; "chat.message.actions.delete.confirm.title" = "Να διαγράψουμε αυτό το μήνυμα;"; "chat.message.actions.delete.confirm.message" = "Σίγουρα θέλετε να διαγράψετε αυτό το μήνυμα; Αυτή η διαδικασία δεν μπορεί να ακυρωθεί."; @@ -267,10 +267,10 @@ "chat.drawing.settings.color.others" = "Επιλλέξτε χρώμα:"; // Chat Typing -"chat.users_are_typing" = "%@ are typing..."; // TODO -"chat.user_is_typing" = "%@ is typing..."; // TODO -"chat.typing" = "typing..."; // TODO -"chat.several_typing" = "several users are typing..."; // TODO +"chat.users_are_typing" = "%@ πληκτρολογούν..."; +"chat.user_is_typing" = "%@ πληκτρολογεί..."; +"chat.typing" = "πληκτρολογεί..."; +"chat.several_typing" = "διαφοροι χρήστες πληκτρολογούν..."; // Message Types "chat.message.type.room_name_changed" = "Το όνομα του δωματίου άλλαξε σε: %@ by %@"; @@ -287,12 +287,12 @@ "chat.message.type.room_archived" = "Αυτό το δωμάτιο αρχειοθετήθηκε από %@"; "chat.message.type.room_unarchived" = "Αυτό το δωμάτιο αποαρχειοθετήθηκε από %@"; "chat.message.type.message_pinned" = "Καρφιτσώθηκε ένα μήνυμα:"; -"chat.message.type.message_snippeted" = "Created a snippet: \"%@\""; // TODO -"chat.message.type.room_changed_privacy" = "Room privacy changed to \"%@\" by %@"; // TODO -"chat.message.type.room_changed_topic" = "Room topic changed to \"%@\" by %@"; // TODO -"chat.message.type.room_changed_announcement" = "Room annoucement changed to \"%@\" by %@"; // TODO -"chat.message.type.room_changed_description" = "Room description changed to \"%@\" by %@"; // TODO -"chat.message.type.video_call_started" = "Video call started by %@"; // TODO +"chat.message.type.message_snippeted" = "Δημιουργήστε ένα απόσπασμα: \"%@\""; +"chat.message.type.room_changed_privacy" = "H Ιδιωτικότητα(απόρρητο) του Δωματίου μεταβλήθηκε σε \"%@\" από %@"; +"chat.message.type.room_changed_topic" = "Το θέμα του δωματίου μεταβλήθηκε σε \"%@\" από %@"; +"chat.message.type.room_changed_announcement" = "Η αναγγελία του δωματίου μεταβλήθηκε σε \"%@\" από %@"; +"chat.message.type.room_changed_description" = "Η περιγραφή του Δωματίου μεταβλήθηκε σε \"%@\" από %@"; +"chat.message.type.video_call_started" = "Μια Βεντοκλήση ξεκίνησε από %@"; // Chat Information "chat.info.title" = "Πληροφορία"; @@ -300,13 +300,13 @@ "chat.info.item.no_topic" = "Όχι θέμα"; "chat.info.item.description" = "Περιγραφή"; "chat.info.item.no_description" = "Έλλειψη περιγραφής"; -"chat.info.item.announcement" = "Announcement"; // TODO -"chat.info.item.no_announcement" = "No announcement"; // TODO -"chat.info.item.notifications" = "Ειδοποιήσεις"; +"chat.info.item.announcement" = "Αναγγελία"; +"chat.info.item.no_announcement" = "Καμία αναγγελία"; +"chat.info.item.notifications" = "Γνωστοποιήσεις"; "chat.info.item.members" = "Μέλη"; "chat.info.item.pinned" = "Καρφιτσωμένα"; "chat.info.item.starred" = "Αστερωμένα"; -"chat.info.item.mentions" = "Αναφέρθηκαν"; +"chat.info.item.mentions" = "Αναφορές"; "chat.info.item.files" = "Αρχεία"; "chat.info.item.share" = "Κοινή Χρήση"; @@ -324,7 +324,7 @@ "chat.messages.list.search.placeholder" = "Αναζήτηση μηνυμάτων"; "chat.messages.pinned.list.title" = "Καρφιτσωμένα Μηνύματα"; "chat.messages.starred.list.title" = "Αστερωμένα Μηνύματα"; -"chat.messages.mentions.list.title" = "Αναφέρθηκε"; +"chat.messages.mentions.list.title" = "Αναφορές"; "chat.messages.files.list.title" = "Αρχεία"; "chat.messages.files.list.empty" = "Δεν βρέθηκαν αρχεία"; @@ -340,15 +340,15 @@ "myaccount.settings.contactus" = "Επικοινωνήστε μαζί μας"; "myaccount.settings.profile" = "Λογαριασμός"; "myaccount.settings.license" = "Άδεια"; -"myaccount.settings.language" = "Language"; -"myaccount.settings.review" = "Review this App"; // TODO -"myaccount.settings.share" = "Share this App"; // TODO +"myaccount.settings.language" = "Γλώσσα"; +"myaccount.settings.review" = "Αξιολογήστε την εφαρμογή"; +"myaccount.settings.share" = "Μοιραστείτε την εφαρμογή"; "myaccount.settings.appicon" = "Εικονίδιο Εφαρμογής"; "myaccount.settings.version" = "Έκδοση: %@ (%@)"; "myaccount.settings.server_version" = "Έκδοση Εξυπηρετητή: %@"; "myaccount.settings.web_browser" = "Πρόγραμμα Περιήγησης"; "myaccount.settings.tracking.title" = "Αποστολή Αναφοράς Κατάρευσης"; -"myaccount.settings.tracking.footer" = "Δεν καταγράφουμε ποτέ το περιεχόμενο των συνομιλιών σας. Η αναφορά κατάρευσης πειλαμβάνει μόνο σχετική πληροφορία για μας ώστε να εντοπίσουμε προβλήματα και να τα διορθώσουμε."; +"myaccount.settings.tracking.footer" = "Δεν καταγράφουμε ποτέ το περιεχόμενο των συνομιλιών σας. Η αναφορά κατάρρευσης περιλαμβάνει μόνο σχετική πληροφορία για μας ώστε να εντοπίσουμε προβλήματα και να τα διορθώσουμε."; // Change Application Icon "myaccount.settings.changeicon.title" = "Επιλέξτε Εικονίδιο"; @@ -362,53 +362,53 @@ "myaccount.settings.language.message" = "Έχετε μεταβάλει τις ρυθμίσεις γλώσσας. Πρέπει να επανεκκινήσετε το Rocket.Chat ώστε να τεθούν σε εφαρμογή οι νέες ρυθμίσεις."; // Notifications preferences -"myaccount.settings.notifications.title" = "Notification Preferences"; // TODO -"myaccount.settings.notifications.save" = "Save"; // TODO +"myaccount.settings.notifications.title" = "Προτιμήσεις Γνωστοποιήσεων"; +"myaccount.settings.notifications.save" = "Αποθήκευση"; -"myaccount.settings.notifications.receive.title" = "Receive Notifications"; // TODO -"myaccount.settings.notifications.receive.footer" = "Receive notifications from %@"; // TODO -"myaccount.settings.notifications.show.title" = "Show Unread Counter"; // TODO -"myaccount.settings.notifications.show.footer" = "Unread counter is displayed as a badge on to the right of the channel, in the list."; // TODO +"myaccount.settings.notifications.receive.title" = "Λήψη Γνωστοποιήσεων"; +"myaccount.settings.notifications.receive.footer" = "Λήψη Γνωστοποιήσεων από %@"; +"myaccount.settings.notifications.show.title" = "Εμφάνιση Μετρητή μη αναγνωσμένων"; +"myaccount.settings.notifications.show.footer" = "Ο μετρητής μη αναγνωσμένων εμφανίζεται σαν σήμα στα δεξιά του καναλιού, στη λίστα."; -"myaccount.settings.notifications.inapp" = "In-app and Desktop"; // TODO -"myaccount.settings.notifications.inapp.alerts" = "Alerts"; // TODO -"myaccount.settings.notifications.inapp.footer" = "Displays a banner at the top of the screen when the app is open, and displays a notification on desktop."; // TODO +"myaccount.settings.notifications.inapp" = "Εντός-Εφαρμογής και Επιφάνειας Εργασίας"; +"myaccount.settings.notifications.inapp.alerts" = "Συναγερμοί"; +"myaccount.settings.notifications.inapp.footer" = "Εμφανίζει ένα μπάνερ στην κορυφή της οθόνης όταν η εφαρμογή είναι ανοιχτή, και εμφανίζει μια γνωστοποίηση στην επιφάνεια εργασίας."; -"myaccount.settings.notifications.mobile" = "Mobile"; // TODO -"myaccount.settings.notifications.mobile.alerts" = "Alerts"; // TODO -"myaccount.settings.notifications.mobile.footer" = "These notifications are delivered to your device when the app is not open."; // TODO +"myaccount.settings.notifications.mobile" = "Κινητού"; +"myaccount.settings.notifications.mobile.alerts" = "Συναγερμοί"; +"myaccount.settings.notifications.mobile.footer" = "Αυτές οι γνωστοποιήσεις εμφανίζονται στη συσκευή σας όταν η εφαρμογή δεν είναι ενεργή."; -"myaccount.settings.notifications.desktop" = "Desktop options"; // TODO -"myaccount.settings.notifications.desktop.audio" = "Audio"; // TODO -"myaccount.settings.notifications.desktop.sound" = "Sound"; // TODO -"myaccount.settings.notifications.desktop.duration" = "Notification Duration"; // TODO +"myaccount.settings.notifications.desktop" = "Επιλογές Επιφάνειας"; +"myaccount.settings.notifications.desktop.audio" = "Ακουστική"; +"myaccount.settings.notifications.desktop.sound" = "Ήχος"; +"myaccount.settings.notifications.desktop.duration" = "Διάρκεια Γνωστοποιήσεων"; -"myaccount.settings.notifications.mail" = "Email"; // TODO -"myaccount.settings.notifications.email.alerts" = "Alerts"; // TODO +"myaccount.settings.notifications.mail" = "Email"; // TODO: maybe should not be translated +"myaccount.settings.notifications.email.alerts" = "Συναγερμοί"; -"myaccount.settings.notifications.duration.default" = "Default"; // TODO -"myaccount.settings.notifications.duration.seconds" = "seconds"; // TODO +"myaccount.settings.notifications.duration.default" = "Προεπιλογή"; +"myaccount.settings.notifications.duration.seconds" = "δευτερόλεπτα"; -"alert.update_notifications_preferences_success.title" = "Preferences saved"; // TODO +"alert.update_notifications_preferences_success.title" = "Οι Προτιμήσεις αποθηκεύτηκαν"; -"alert.update_notifications_preferences_save_error.title" = "Failed to update notifications preferences"; // TODO: -"alert.update_notifications_preferences_save_error.message" = "Something wrong happened while saving your notification preferences. Please, try again."; // TODO +"alert.update_notifications_preferences_save_error.title" = "Απέτυχε η ενημέρωση των προτιμήσεων γνωστοποιήσεων"; +"alert.update_notifications_preferences_save_error.message" = "Κάποιο σφάλμα συνέβη κατά την αποθήκευση των προτιμήσεών σας για τις Γνωστοποιήσεις. Παρακαλούμε ξαναπροσπαθήστε."; // Enum SubscriptionNotificationsStatus -"subscription.notifications.status.default" = "Default"; // TODO -"subscription.notifications.status.nothing" = "Nothing"; // TODO -"subscription.notifications.status.all" = "All"; // TODO -"subscription.notifications.status.mentions" = "Mentions"; // TODO +"subscription.notifications.status.default" = "Προεπιλογή"; +"subscription.notifications.status.nothing" = "Καμία"; +"subscription.notifications.status.all" = "Όλες"; +"subscription.notifications.status.mentions" = "Αναφορές"; // Enum SubscriptionNotificationsAudioValue -"subscription.notifications.audio.value.none" = "None"; // TODO -"subscription.notifications.audio.value.default" = "Default"; // TODO -"subscription.notifications.audio.value.beep" = "Beep"; // TODO +"subscription.notifications.audio.value.none" = "Καμία"; +"subscription.notifications.audio.value.default" = "Προεπιλογή"; +"subscription.notifications.audio.value.beep" = "Μπίπ"; "subscription.notifications.audio.value.chelle" = "Chelle"; // TODO -"subscription.notifications.audio.value.ding" = "Ding"; // TODO -"subscription.notifications.audio.value.droplet" = "Droplet"; // TODO -"subscription.notifications.audio.value.highbell" = "Highbell"; // TODO -"subscription.notifications.audio.value.seasons" = "Seasons"; // TODO +"subscription.notifications.audio.value.ding" = "Κουδούνι"; +"subscription.notifications.audio.value.droplet" = "Σταγόνα"; +"subscription.notifications.audio.value.highbell" = "Καμπάνα"; +"subscription.notifications.audio.value.seasons" = "Εποχές"; // Choose Web Browser "web_browser.safari.title" = "Safari"; @@ -417,7 +417,7 @@ "web_browser.opera.title" = "Opera Mini"; "web_browser.firefox.title" = "Firefox"; "myaccount.settings.web_browser.title" = "Πρόγραμμα Περιήγησης"; -"myaccount.settings.web_browser.footer" = "Αυτή η εφαρμογή θα χρησμοποιηθεί για να ανοίξει συνδέσμους στο Rocket Chat."; +"myaccount.settings.web_browser.footer" = "Αυτή η εφαρμογή θα χρησιμοποιηθεί για να ανοίξει συνδέσμους στο Rocket Chat."; // Update Profile "myaccount.settings.profile.title" = "Λογαριασμός"; @@ -429,7 +429,7 @@ "myaccount.settings.profile.section.password" = "Συνθηματικό"; "myaccount.settings.profile.name_placeholder" = "Όνομα"; "myaccount.settings.profile.username_placeholder" = "Όνομα χρήστη"; -"myaccount.settings.profile.email_placeholder" = "E-mail"; +"myaccount.settings.profile.email_placeholder" = "E-mail"; //TODO: maybe should not be translated "myaccount.settings.profile.status.title" = "Κατάσταση"; "myaccount.settings.profile.password_required.title" = "Εισάγετε το συνθηματικό σας"; "myaccount.settings.profile.password_required.message" = "Το συνθηματικό σας είναι απαραίτητο όταν αλλάζετε το e-mail σας."; @@ -438,7 +438,7 @@ // New Password "myaccount.settings.profile.new_password.title" = "Νέο συνθηματικό"; "myaccount.settings.profile.new_password.section.password" = "Συνθηματικό"; -"myaccount.settings.profile.new_password.actions.save" = "Save"; +"myaccount.settings.profile.new_password.actions.save" = "Αποθήκευση"; "myaccount.settings.profile.new_password.password_placeholder" = "Νέο συνθηματικό"; "myaccount.settings.profile.new_password.password_confirmation_placeholder" = "Επιβεβαίωση Συνθηματικού"; "myaccount.settings.profile.new_password.password_required.title" = "Εισάγετε το συνθηματικό σας"; @@ -455,12 +455,12 @@ "user_details.status" = "Κατάσταση"; "user_details.role" = "Ρόλος"; "user_details.roles" = "Ρόλοι"; -"user_details.email" = "Email"; // TODO -"user_details.emails" = "Emails"; // TODO +"user_details.email" = "Email"; // TODO: maybe should not be translated +"user_details.emails" = "Emails"; // TODO: maybe should not be translated "user_details.timezone" = "Ζώνη ώρας"; "user_details.message_button" = "Μήνυμα"; -"user_details.voice_call_button" = "Κλήση Ομιλίας"; -"user_details.video_call_button" = "Κλήση Βίντεο"; +"user_details.voice_call_button" = "Φωνητική κλήση"; +"user_details.video_call_button" = "Βιντεοκλήση"; // Theme "theme.settings.title" = "Θέμα"; @@ -480,36 +480,36 @@ "subscriptions.grouping.unread_top" = "Αδιάβαστα στην κορυφή"; // Shortcuts -"shortcuts.type_message" = "Type message"; //TODO -"shortcuts.preferences" = "Preferences"; //TODO -"shortcuts.room_search" = "Rooms search"; //TODO -"shortcuts.room_selection" = "Room selection 1...9"; //TODO -"shortcuts.next_room" = "Next room"; //TODO -"shortcuts.previous_room" = "Previous room"; //TODO -"shortcuts.new_room" = "New room"; //TODO -"shortcuts.room_actions" = "Room actions"; //TODO -"shortcuts.upload_room" = "Upload to room"; //TODO -"shortcuts.search_messages" = "Search messages"; //TODO -"shortcuts.scroll_messages" = "Scroll messages"; //TODO -"shortcuts.reply_latest" = "Reply to latest"; //TODO -"shortcuts.server_selection" = "Server selection"; //TODO -"shortcuts.server_selection_numbers" = "Server selection 1...9"; //TODO -"shortcuts.add_server" = "Add server"; //TODO -"shortcuts.change_theme" = "Change theme"; //TODO -"shortcuts.send" = "Send"; //TODO -"shortcuts.new_line" = "New line"; //TODO +"shortcuts.type_message" = "Γράψτε μήνυμα"; +"shortcuts.preferences" = "Προτιμήσεις"; +"shortcuts.room_search" = "Αναζήτηση δωματίου"; +"shortcuts.room_selection" = "Επιλογή δωματίου 1...9"; +"shortcuts.next_room" = "Επόμενο δωματιο"; +"shortcuts.previous_room" = "Προηγούμενο δωμάτιο"; +"shortcuts.new_room" = "Νέο δωμάτιο"; +"shortcuts.room_actions" = "Ενέργειες δωματίων"; +"shortcuts.upload_room" = "Μεταφόρτωση στο δωμάτιο"; +"shortcuts.search_messages" = "Αναζήτηση μηνυμάτων"; +"shortcuts.scroll_messages" = "Κοίληση μηνυμάτων"; +"shortcuts.reply_latest" = "Απάντηση στο πιο πρόσφατο"; +"shortcuts.server_selection" = "Επιλογή εξυπηρετητή"; +"shortcuts.server_selection_numbers" = "Επιλογή εξυπηρετητή 1...9"; +"shortcuts.add_server" = "Προσθήκη εξυπηρετητή"; +"shortcuts.change_theme" = "Αλλαγή θέματος"; +"shortcuts.send" = "Αποστολή"; +"shortcuts.new_line" = "Νέα γραμμή"; // Chat Components -"chat.components.quote.replied" = "Replied"; //TODO -"chat.components.quote.pinned" = "Pinned"; //TODO -"chat.components.text_attachment.no_title" = "No title"; //TODO +"chat.components.quote.replied" = "Απαντήθηκε"; +"chat.components.quote.pinned" = "Καρφιτσώθηκε"; +"chat.components.text_attachment.no_title" = "Χωρίς Τίτλο"; // Directory -"directory.title" = "Directory"; // TODO -"directory.filters.channels" = "Channels"; // TODO -"directory.filters.users" = "Users"; // TODO -"directory.filters.by" = "Search by"; // TODO -"directory.filters.global.title" = "Search for global users"; // TODO -"directory.filters.global.subtitle" = "If you turn-on, you can search for any user from others companies or servers. "; // TODO -"directory.users.1_user" = "1 member"; // TODO -"directory.users.x_users" = "%@ members"; // TODO +"directory.title" = "Κατάλογος"; +"directory.filters.channels" = "Κανάλια"; +"directory.filters.users" = "Χρήστες"; +"directory.filters.by" = "Αναζήτηση με"; +"directory.filters.global.title" = "Αναζήτηση για χρήστες παντού"; +"directory.filters.global.subtitle" = "Αν το ενεργοποιήσετε, θα μπορείτε να αναζητήσετε για οποιοδήποτε χρήστη και από άλλες εταιρίες ή εξυπηρετητές. "; +"directory.users.1_user" = "1 μέλος"; +"directory.users.x_users" = "%@ μέλη"; diff --git a/Rocket.Chat/Views/Cells/Subscription/BaseSubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/BaseSubscriptionCell.swift index d0519a94cb..246575bf15 100644 --- a/Rocket.Chat/Views/Cells/Subscription/BaseSubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/BaseSubscriptionCell.swift @@ -109,8 +109,7 @@ class BaseSubscriptionCell: SwipeTableViewCell, SubscriptionCellProtocol { labelUnread.text = "\(subscription.unread)" } } else { - viewUnread.isHidden = false - labelUnread.text = "!" + viewUnread.isHidden = true } } diff --git a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift index 9286410649..3aacb33c19 100644 --- a/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift +++ b/Rocket.Chat/Views/Cells/Subscription/SubscriptionCell.swift @@ -42,19 +42,37 @@ final class SubscriptionCell: BaseSubscriptionCell { super.updateSubscriptionInformation() + setLastMessageColor() setDateColor() } override func updateViewForAlert(with subscription: Subscription) { super.updateViewForAlert(with: subscription) + labelDate.font = UIFont.systemFont(ofSize: labelDate.font.pointSize, weight: .bold) labelLastMessage.font = UIFont.systemFont(ofSize: labelLastMessage.font.pointSize, weight: .medium) } override func updateViewForNoAlert(with subscription: Subscription) { super.updateViewForNoAlert(with: subscription) + labelDate.font = UIFont.systemFont(ofSize: labelDate.font.pointSize, weight: .regular) labelLastMessage.font = UIFont.systemFont(ofSize: labelLastMessage.font.pointSize, weight: .regular) } + private func setLastMessageColor() { + guard + let theme = theme, + let subscription = subscription?.managedObject + else { + return + } + + if subscription.unread > 0 || subscription.alert { + labelLastMessage.textColor = theme.bodyText + } else { + labelLastMessage.textColor = theme.auxiliaryText + } + } + private func setDateColor() { guard let theme = theme, @@ -90,9 +108,7 @@ final class SubscriptionCell: BaseSubscriptionCell { extension SubscriptionCell { override func applyTheme() { super.applyTheme() - guard let theme = theme else { return } - - labelLastMessage.textColor = theme.auxiliaryText + setLastMessageColor() setDateColor() } } diff --git a/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.swift b/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.swift index dec5328ffd..4534da82f8 100644 --- a/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.swift +++ b/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.swift @@ -85,7 +85,7 @@ extension QuoteCell { let theme = self.theme ?? .light containerView.backgroundColor = theme.chatComponentBackground purpose.textColor = theme.auxiliaryText - username.textColor = theme.actionTintColor + username.textColor = theme.bodyText text.textColor = theme.bodyText containerView.layer.borderColor = theme.borderColor.cgColor } diff --git a/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.xib b/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.xib index a49585cf8f..ee6f62d3ce 100644 --- a/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.xib +++ b/Rocket.Chat/Views/Chat/New Chat/Cells/QuoteCell.xib @@ -37,11 +37,10 @@ -