Skip to content

Commit 28d1a96

Browse files
Merge pull request #105 from Adamant-im/develop
Release 2.6.0
2 parents a99eacf + 8c217a0 commit 28d1a96

File tree

73 files changed

+2880
-1588
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+2880
-1588
lines changed

Adamant.xcodeproj/project.pbxproj

Lines changed: 144 additions & 55 deletions
Large diffs are not rendered by default.

Adamant.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,15 @@
181181
"version": "1.2.2"
182182
}
183183
},
184+
{
185+
"package": "SnapKit",
186+
"repositoryURL": "https://github.com/SnapKit/SnapKit.git",
187+
"state": {
188+
"branch": null,
189+
"revision": "f222cbdf325885926566172f6f5f06af95473158",
190+
"version": "5.6.0"
191+
}
192+
},
184193
{
185194
"package": "Starscream",
186195
"repositoryURL": "https://github.com/daltoniam/Starscream.git",

Adamant/AppDelegate.swift

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -152,30 +152,25 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
152152
if let reachability = container.resolve(ReachabilityMonitor.self) {
153153
reachability.start()
154154

155-
switch reachability.connection {
156-
case .cellular, .wifi:
155+
if reachability.connection {
157156
dialogService.dissmisNoConnectionNotification()
158-
break
159-
160-
case .none:
157+
} else {
161158
dialogService.showNoConnectionNotification()
162159
repeater.pauseAll()
163160
}
164161

165162
NotificationCenter.default.addObserver(forName: Notification.Name.AdamantReachabilityMonitor.reachabilityChanged, object: reachability, queue: nil) { [weak self] notification in
166-
guard let connection = notification.userInfo?[AdamantUserInfoKey.ReachabilityMonitor.connection] as? AdamantConnection,
163+
guard let connection = notification.userInfo?[AdamantUserInfoKey.ReachabilityMonitor.connection] as? Bool,
167164
let repeater = self?.repeater else {
168165
return
169166
}
170167

171-
switch connection {
172-
case .cellular, .wifi:
168+
if connection {
173169
DispatchQueue.onMainSync {
174170
self?.dialogService.dissmisNoConnectionNotification()
175171
}
176172
repeater.resumeAll()
177-
178-
case .none:
173+
} else {
179174
DispatchQueue.onMainSync {
180175
self?.dialogService.showNoConnectionNotification()
181176
}
@@ -254,17 +249,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
254249
notificationService.removeAllDeliveredNotifications()
255250
}
256251

257-
if let connection = container.resolve(ReachabilityMonitor.self)?.connection {
258-
switch connection {
259-
case .wifi, .cellular:
260-
repeater.resumeAll()
261-
262-
case .none:
263-
break
264-
}
265-
} else {
266-
repeater.resumeAll()
267-
}
252+
guard container.resolve(ReachabilityMonitor.self)?.connection == true
253+
else { return }
254+
255+
repeater.resumeAll()
268256
}
269257
}
270258

Adamant/Assets/l18n/de.lproj/Localizable.strings

Lines changed: 107 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@
7070
/* About scene: Show Welcome screens */
7171
"About.Row.Welcome" = "Willkommensbildschirm";
7272

73+
/* Account tab: 'Currency' row */
74+
"AccountTab.Row.Currency" = "Währung";
75+
7376
/* System accounts: ADAMANT Tokens */
7477
"Accounts.AdamantTokens" = "Willkommen in ADAMANT";
7578

@@ -175,9 +178,6 @@
175178
/* Account tab: 'Theme' row value 'Dark' */
176179
"AccountTab.Row.Theme.Dark" = "Dark";
177180

178-
/* Account tab: 'Currency' row */
179-
"AccountTab.Row.Currency" = "Währung";
180-
181181
/* Account tab: 'About' row */
182182
"AccountTab.Row.About" = "Über ADAMANT";
183183

@@ -232,6 +232,9 @@
232232
/* Serious internal error: Error parsing response */
233233
"ApiService.InternalError.ParsingFailed" = "Parsing fehlgeschlagen. Bericht senden";
234234

235+
/* Serious internal error: No nodes available */
236+
"ApiService.InternalError.NoNodesAvailable" = "No nodes available. Report a bug";
237+
235238
/* Eureka forms Cancel button */
236239
"Cancel" = "Abbrechen";
237240

@@ -322,6 +325,9 @@
322325
/* Chat: 'Sent funds' bubble title */
323326
"ChatScene.Sent" = "Versendet";
324327

328+
/* Chat: 'Sent funds' buble 'Tap for details' tip */
329+
"ChatScene.tapForDetails" = "Tap for details";
330+
325331
/* Chat: status message for failed to send chat transaction */
326332
"ChatScene.MessageStatus.FailToSend" = "Fehler beim Senden";
327333

@@ -439,6 +445,9 @@
439445
/* Shared error: Network problems. In most cases - no connection */
440446
"Error.NoNetwork" = "Keine Verbindung";
441447

448+
/* Shared error: Request cancelled */
449+
"Error.RequestCancelled" = "Request cancelled";
450+
442451
/* Shared error: Remote error format, %@ for message */
443452
"Error.RemoteServerErrorFormat" = "Blockchain-Node Fehler: %@";
444453

@@ -544,8 +553,68 @@
544553
/* NodesList: 'Add new node' button lable */
545554
"NodesList.AddNewNode" = "Eine neue Node hinzufügen";
546555

547-
/* NodesList: 'Node url' plaseholder */
548-
"NodesList.NodeUrl" = "Node-URL";
556+
/* NodesList: Reset nodes alert title */
557+
"NodesList.ResetNodeListAlert" = "Reset nodes list to default?";
558+
559+
/* NodesList: 'Reset' button */
560+
"NodesList.ResetButton" = "Reset";
561+
562+
/* NodesList: 'Prefer the fastest node' switch */
563+
"NodesList.PreferTheFastestNode" = "Prefer the fastest node";
564+
565+
/* NodesList.NodeCell: Node ping */
566+
"NodesList.NodeCell.Ping" = "Ping";
567+
568+
/* NodesList.NodeCell: Milliseconds */
569+
"NodesList.NodeCell.Milliseconds" = "ms";
570+
571+
/* NodesList.NodeCell: Node is synchronizing */
572+
"NodesList.NodeCell.Synchronizing" = "Synchronizing";
573+
574+
/* NodesList.NodeCell: Node is offline */
575+
"NodesList.NodeCell.Offline" = "Offline";
576+
577+
/* NodesList.NodeCell: Node version */
578+
"NodesList.NodeCell.Version" = "version";
579+
580+
/* NodeList: Inform that default nodes was loaded, if user deleted all nodes */
581+
"NodeList.DefaultNodesLoaded" = "Default nodes list was loaded";
582+
583+
/* NodesEditor: New node scene title */
584+
"NodesEditor.NewNodeTitle" = "New node";
585+
586+
/* NodesEditor: Delete node confirmation message */
587+
"NodesEditor.DeleteNodeAlert" = "Delete this node?";
588+
589+
/* NodesEditor: Testing in progress */
590+
"NodesEditor.TestingInProgressMessage" = "Checking connection…";
591+
592+
/* NodesEditor: Scheme row */
593+
"NodesEditor.SchemeRow" = "Scheme";
594+
595+
/* NodesEditor: Port row */
596+
"NodesEditor.PortRow" = "Port";
597+
598+
/* NodesEditor: Host row */
599+
"NodesEditor.HostRow" = "Host";
600+
601+
/* NodesEditor: Web sockets */
602+
"NodesEditor.WebSockets" = "Web sockets";
603+
604+
/* NodesEditor: Web sockets are supported */
605+
"NodesEditor.WebSocketsSupported" = "Supported";
606+
607+
/* NodesEditor: Web sockets aren't supported */
608+
"NodesEditor.WebSocketsNotSupported" = "Not supported";
609+
610+
/* NodesEditor: Delete node button */
611+
"NodesEditor.DeleteNodeButton" = "Delete";
612+
613+
/* NodesEditor: Host row placeholder */
614+
"NodesEditor.HostRow.Placeholder" = "IP or host name";
615+
616+
/* NodesEditor: Failed to build URL alert */
617+
"NodesEditor.FailedToBuildURL" = "Invalid host";
549618

550619
/* Security: Notification modes description. Markdown supported. */
551620
"SecurityPage.Row.Notifications.ModesDescription" = "#### Benachrichtigungsmodi\n\n#### Deaktiviert\nKeine Benachrichtigungen.\n\n#### Hintergrundaktualisierung\nIhr Gerät erhält neue Nachrichteninformationen automatisch. Keine externen Aufrufe. Die Hintergrundaktualisierung wird von iOS verwaltet, die Zeit wird vom Betriebssystem bestimmt und ist von vielen Faktoren wie Akkustand, Netzwerkauslastung, Nutzungsmuster abhängig und kann nicht vorhergesagt werden. Es können 20 Minuten, 6 Stunden, oder ein Tag sein. Sie können die App trotzdem öffnen und nachschauen, ob eine Nachricht angekommen ist.\n\n#### Push\nBenachrichtigungen werden auf Ihr Gerät vom ADAMANT Benachrichtigungsservice gesendet. Sie erhalten eine Benachrichtigung umgehend, nachdem die Nachricht versendet und von der Blockchain bestätigt wurde - mit einer kleinen Verzögerung. Jedoch erfordert dieser Modus, dass der Gerätetoken Ihres Geräts in der Servicedatenbank registriert ist. Gerätetokens sind sicher, und diese Option ist zu empfehlen.\n\nSie können mehr über die Geräteregistrierung auf der ADAMANTs Github-Seite nachlesen.";
@@ -613,6 +682,9 @@
613682
/* PrivateKeyGenerator: Security alert. Keep your passphrase safe */
614683
"PkGeneratorScene.Alert" = "ADAMANT account includes crypto wallets. All of them are connected with your Passphrase, and only you have access to these wallets. You can export private key to use them in other applications. Store keys in secure place.";
615684

685+
/* PrivateKeyGenerator: Generate button */
686+
"PkGeneratorScene.GenerateButton" = "Generate Keys";
687+
616688
/* Security: scene title */
617689
"SecurityPage.Title" = "Sicherheit";
618690

@@ -670,6 +742,9 @@
670742
/* Shared alert notification: body message for no internet connection. */
671743
"Shared.NoInternet.Body" = "Bitte überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut";
672744

745+
/* Shared alert notification: message for no Mail services. */
746+
"Shared.NoMail" = "Mail services are not available";
747+
673748
/* Shared alert 'Ok' button. Used anywhere */
674749
"Shared.Ok" = "Ok";
675750

@@ -706,9 +781,24 @@
706781
/* TransactionList: scene title */
707782
"TransactionListScene.Title" = "Transaktionen";
708783

784+
/* TransactionList: To Chat button */
785+
"TransactionListScene.ToChat" = "To Chat";
786+
787+
/* TransactionList: Start Chat button */
788+
"TransactionListScene.StartChat" = "Start Chat";
789+
790+
/* TransactionList: 'Transactions not found' message. */
791+
"TransactionListScene.Error.NotFound" = "Transactions not found";
792+
709793
/* TransactionList: 'No transactions yet' message. */
710794
"TransactionListScene.NoTransactionYet" = "Noch keine Transaktionen";
711795

796+
/* TransactionList: 'Transactions not found' localize error message from API. */
797+
"No transactions found" = "Transactions not found";
798+
799+
/* Transaction send: recipient minimum remaining balance requirement */
800+
"TransactionSend.Minimum.Balance" = "Recipient must have at least 0.05 LSK—Send more tokens";
801+
712802
/* Transaction status: updating in progress */
713803
"TransactionStatus.Updating" = "Aktualisieren…";
714804

@@ -751,6 +841,12 @@
751841
/* Transaction details: sender row. */
752842
"TransactionDetailsScene.Row.From" = "Von";
753843

844+
/* Transaction details: fiat value at the time */
845+
"TransactionDetailsScene.Row.HistoryFiat" = "Value at time of Txn";
846+
847+
/* Transaction details: fiat value at the time */
848+
"TransactionDetailsScene.Row.CurrentFiat" = "Current value";
849+
754850
/* Transaction details: Id row. */
755851
"TransactionDetailsScene.Row.Id" = "ID";
756852

@@ -775,12 +871,18 @@
775871
/* "Transaction details: 'Actions' section" */
776872
"TransactionDetailsScene.Section.Actions" = "Aktionen";
777873

874+
/* Transaction details: 'Requesting Data' progress message. */
875+
"TransactionDetailsScene.RequestingData" = "Requesting Data…";
876+
778877
/* Transaction details: 'Your address' flag. */
779878
"TransactionDetailsScene.YourAddress" = "Sie";
780879

781880
/* TransfersProvider: Transaction not found error. %@ for transaction's ID */
782881
"TransfersProvider.Error.TransactionNotFoundFormat" = "Transaktion mit der ID %@ nicht gefunden";
783882

883+
/* Transfer: Minimal transaction amount is 0.00001 */
884+
"TransferScene.Error.MinAmount" = "Minimum transaction amount is 0.00001";
885+
784886
/* Transfer: transfer amount placeholder */
785887
"TransferScene.Amount.Placeholder" = "senden";
786888

Adamant/Assets/l18n/en.lproj/Localizable.strings

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@
229229
/* Serious internal error: Error parsing response */
230230
"ApiService.InternalError.ParsingFailed" = "Parsing failed. Report a bug";
231231

232+
/* Serious internal error: No nodes available */
233+
"ApiService.InternalError.NoNodesAvailable" = "No nodes available. Report a bug";
234+
232235
/* Eureka forms Cancel button */
233236
"Cancel" = "Cancel";
234237

@@ -436,6 +439,9 @@
436439
/* Shared error: Network problems. In most cases - no connection */
437440
"Error.NoNetwork" = "No connection";
438441

442+
/* Shared error: Request cancelled */
443+
"Error.RequestCancelled" = "Request cancelled";
444+
439445
/* Shared error: Remote error format, %@ for message */
440446
"Error.RemoteServerErrorFormat" = "Blockchain node error: %@";
441447

@@ -541,6 +547,24 @@
541547
/* NodesList: 'Reset' button */
542548
"NodesList.ResetButton" = "Reset";
543549

550+
/* NodesList: 'Prefer the fastest node' switch */
551+
"NodesList.PreferTheFastestNode" = "Prefer the fastest node";
552+
553+
/* NodesList.NodeCell: Node ping */
554+
"NodesList.NodeCell.Ping" = "Ping";
555+
556+
/* NodesList.NodeCell: Milliseconds */
557+
"NodesList.NodeCell.Milliseconds" = "ms";
558+
559+
/* NodesList.NodeCell: Node is synchronizing */
560+
"NodesList.NodeCell.Synchronizing" = "Synchronizing";
561+
562+
/* NodesList.NodeCell: Node is offline */
563+
"NodesList.NodeCell.Offline" = "Offline";
564+
565+
/* NodesList.NodeCell: Node version */
566+
"NodesList.NodeCell.Version" = "version";
567+
544568
/* NodeList: Inform that default nodes was loaded, if user deleted all nodes */
545569
"NodeList.DefaultNodesLoaded" = "Default nodes list was loaded";
546570

@@ -562,14 +586,14 @@
562586
/* NodesEditor: Host row */
563587
"NodesEditor.HostRow" = "Host";
564588

565-
/* NodesEditor: Test button */
566-
"NodesEditor.TestButton" = "Test node";
589+
/* NodesEditor: Web sockets */
590+
"NodesEditor.WebSockets" = "Web sockets";
567591

568-
/* NodesEditor: Test passed */
569-
"NodesEditor.NodeTestPassed" = "Passed";
592+
/* NodesEditor: Web sockets are supported */
593+
"NodesEditor.WebSocketsSupported" = "Supported";
570594

571-
/* NodesEditor: Test failed */
572-
"NodesEditor.NodeTestFailed" = "Failed";
595+
/* NodesEditor: Web sockets aren't supported */
596+
"NodesEditor.WebSocketsNotSupported" = "Not supported";
573597

574598
/* NodesEditor: Delete node button */
575599
"NodesEditor.DeleteNodeButton" = "Delete";

0 commit comments

Comments
 (0)