Compare commits

...

124 Commits

Author SHA1 Message Date
Andrea Busi 20972dd799 release: Increase version for release 2021-04-16 14:15:21 +02:00
Andrea Busi fe0429e68d fix: Update wrong localisation for countries 2021-04-16 14:15:21 +02:00
Andrea Busi 38968a8f89 fix: Properly reset map in alert notification 2021-04-16 14:13:47 +02:00
Andrea Busi 805f033495 chore: Update push payload for different countries 2021-04-16 14:13:47 +02:00
Andrea Busi 8d54357897 dependency: Update Pods 2021-04-15 13:24:14 +02:00
Andrea Busi c9f8bc25a6 feat: Add translations also for InfoPlist strings 2021-04-15 13:22:51 +02:00
Andrea Busi 24882b702f fix: Minor UI fixes 2021-04-15 13:22:51 +02:00
Andrea Busi d4549792a8 feat: Add new languages: EL, FR, HR, TR, ID 2021-04-15 12:45:05 +02:00
Andrea Busi c0d4778d06 refactor: Remove unused localisation file in notification content extension 2021-04-15 12:45:05 +02:00
Andrea Busi 32c5b28d45 refactor: Remove localisation for LaunchScreen file 2021-04-15 12:45:05 +02:00
Andrea Busi d0dd99a194 feat: Add France, Greece and Croatia as network providers 2021-04-15 12:45:05 +02:00
Andrea Busi cd169696be refactor: Align existing string to Android app 2021-04-15 07:31:06 +02:00
Andrea Busi 71f4331551 release: Increase version for release 2021-04-13 07:12:54 +02:00
Andrea Busi b3db82dbc4 refactor: Change Gray color to #AAAAAA 2021-04-13 07:12:54 +02:00
Andrea Busi 67cd9b7ab7 fix: Minor fixes 2021-04-13 07:12:54 +02:00
Andrea Busi 18d653da05 release: Increase version for release 2021-04-11 17:34:34 +02:00
Andrea Busi 108916af37 refactor: Rename EQNFiltroMappa in EQNBaseMapFilter 2021-04-11 17:34:34 +02:00
Andrea Busi bf0d733776 refactor: Cleanup some constants 2021-04-11 17:34:34 +02:00
Andrea Busi 926af27ffd refactor: Add missing translations from Android app 2021-04-11 17:34:34 +02:00
Andrea Busi 0504cdbea4 refactor: Complete strings alignment 2021-04-09 09:41:13 +02:00
Andrea Busi 8085afea4f refactor: Align strings with Android app 2021-04-06 22:07:44 +02:00
Andrea Busi c3123f8d33 refactor: Some strings alignment 2021-04-05 21:12:46 +02:00
Andrea Busi 943f9e75cf refactor: Remove no longer used Storyboard localization files 2021-04-05 21:00:34 +02:00
Andrea Busi 10e7f5ad9d refactor: Move strings from Storyboard to code and align with Android strings 2021-04-05 20:58:54 +02:00
Andrea Busi 660d710e20 refactor: Move strings from Storyboard to code and align with Android strings 2021-04-05 19:55:16 +02:00
Andrea Busi 97d805b71b refactor: Move strings from Storyboard to code and align with Android strings 2021-04-05 11:13:52 +02:00
Andrea Busi b3dbd71f0e refactor: Move some strings from storyboard to code 2021-04-04 11:26:50 +02:00
Andrea Busi 6f75fe14e7 refactor: Cleanup some strings 2021-04-04 10:59:03 +02:00
Andrea Busi b9e2e09be7 fix: Don't return nil color to avoid strange UI behaviour 2021-03-27 17:50:10 +01:00
Andrea Busi 5dc64c4f77 refactor: Add extension to Dictionary to simplify values retrieve 2021-03-27 17:49:47 +01:00
Andrea Busi f437c3cde6 release: Increase version for release 2021-03-27 15:28:15 +01:00
Andrea Busi f197ff8ac9 fix: Use now as default date if parse failes 2021-03-27 15:26:45 +01:00
Andrea Busi 0687cc03a5 fix: Remove unexpected char from strings, that cause some random crashes in ES 2021-03-27 15:13:14 +01:00
Andrea Busi fa69edaa26 fix: Prevent crash for nil values 2021-03-27 15:08:50 +01:00
Andrea Busi 783a1a5cb4 release: Increase version for release 2021-03-24 20:31:00 +01:00
Andrea Busi a746a70860 dependency: Update Pods 2021-03-24 20:31:00 +01:00
Andrea Busi 4cb0bc8288 fix: Solve non working twice tap on an annotation 2021-03-24 20:23:20 +01:00
Andrea Busi 45f19a7533 feat: Add circles in map detail 2021-03-24 20:23:20 +01:00
Andrea Busi f7eeef58df refactor: Minor code and UI improvements 2021-03-23 19:12:39 +01:00
Andrea Busi 88c0cda3a4 chore: Regenerate provisioning profiles without unused capabilities 2021-03-23 19:12:39 +01:00
Andrea Busi ae247a1695 feat: Allows to change filters from map detail (seismic network) 2021-03-23 19:12:39 +01:00
Andrea Busi 87c5444a37 refactor: Move filters in a dedicated folder and make controller conforms to StoryboardInitializable 2021-03-23 19:12:39 +01:00
Andrea Busi 6ed4500c4b fix: Solve non working subscription button in simulator 2021-03-23 19:12:39 +01:00
Andrea Busi 7e4d9c89bb feat: Add new setting to enable/disable critical alerts
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/31
2021-03-23 19:12:39 +01:00
Andrea Busi a467646cac chore: Add AppGroup and recreate identifiers (and provisionings) for extensions 2021-03-23 19:12:39 +01:00
Andrea Busi 05f6592b81 refactor: Use new icons in notification extension 2021-03-23 19:12:39 +01:00
Andrea Busi b52e050dd6 refactor: Use new icons in app 2021-03-23 19:12:39 +01:00
Andrea Busi 10eaee71f8 release: Increase version for release 2021-03-23 19:12:39 +01:00
Andrea Busi f953d5fdb4 refactor: Various UI improvements
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/37
2021-03-23 19:12:39 +01:00
Andrea Busi 5e61c126aa release: Increase version for release 2021-03-18 19:09:02 +01:00
Andrea Busi 1e17ad257a feat: Recreate seismic networks map with new logic and aligned with Android app
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/36
2021-03-18 18:54:34 +01:00
Andrea Busi 2cbb4cd526 refactor: Edit custom annotation view to support a 2 labels layout 2021-03-15 16:40:16 +01:00
Andrea Busi b5525eda01 refactor: Create a viewmodel for a seismic, to share logic 2021-03-15 16:40:16 +01:00
Andrea Busi 699bf1c159 release: Increase version for release 2021-03-15 14:42:56 +01:00
Andrea Busi 1a28b6389f feat: Add new logic to set the initial filter 2021-03-15 14:42:14 +01:00
Andrea Busi cc38943d05 refactor: Move map center to superclass 2021-03-14 15:12:16 +01:00
Andrea Busi eae914681d fix: Calculate proper offset for custom annotation 2021-03-14 15:12:16 +01:00
Andrea Busi c6c9461667 feat: Add circles around newest pastquake on the map 2021-03-14 15:12:16 +01:00
Andrea Busi 0fb0882666 feat: Display extra informations when tap on an annotation 2021-03-14 15:12:16 +01:00
Andrea Busi 4ff2b75121 refactor: Create an enum for pastquake intensities 2021-03-14 15:12:16 +01:00
Andrea Busi 6b6f189eda refactor: Align some strings with Android 2021-03-14 15:12:16 +01:00
Andrea Busi 9e863ad6ca refactor: Move date formatter to utils 2021-03-14 15:12:16 +01:00
Andrea Busi c00a29a222 refactor: Improve style and code for log controller 2021-03-11 20:23:18 +01:00
Andrea Busi e9b0343be7 refactor: Update star icons with better ones 2021-03-11 20:05:35 +01:00
Andrea Busi cca042ca61 refactor: Use new annotation models also in notification extension 2021-03-11 20:05:35 +01:00
Andrea Busi 5ab5309838 feat: Recreate pastquakes map with new logic and aligned with Android app
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/35
2021-03-11 20:05:35 +01:00
Andrea Busi c997c5d5a3 refactor: Improve models for Pasquakes 2021-03-10 21:28:37 +01:00
Andrea Busi 50c3937676 release: Increase version for release 2021-03-10 21:28:16 +01:00
Andrea Busi 23c7069660 fix: Solve typo in constant 2021-03-10 21:28:16 +01:00
Andrea Busi f08a4b47aa refactor: Who needs a utility method to filter an array? 2021-03-10 21:28:16 +01:00
Andrea Busi 897d726ee9 refactor: Use blurred button in simulator map 2021-03-10 21:28:16 +01:00
Andrea Busi 3898eb3de2 feat: Recreate mappa segnalazioni with new logic and aligned with Android app
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/34
2021-03-10 21:28:16 +01:00
Andrea Busi d3a8e410d0 refactor: Seismic map detail now inherit from new base map controller 2021-03-10 21:28:16 +01:00
Andrea Busi 4713dd78b3 feat: Add base map controller to handle shared map logics 2021-03-10 21:28:16 +01:00
Andrea Busi 05a187b7ec feat: Add blurred close button 2021-03-08 21:25:03 +01:00
Andrea Busi 8465350a67 refactor: Improve EQNSegnalazione model 2021-03-06 17:25:27 +01:00
Andrea Busi 5def7e15a9 refactor: Improve Swift interoperability 2021-03-06 17:25:27 +01:00
Andrea Busi 1531d2851e refactor: Rename some enum to be more Swift friendly 2021-03-06 17:25:27 +01:00
Andrea Busi 14c2464549 release: Increase version for release 2021-03-02 19:29:10 +01:00
Andrea Busi 0070f6761e chore: Add push paylod sample 2021-03-02 19:29:10 +01:00
Andrea Busi 9166fcc59b feat: Handle critical notifications in payload extension, due to FCM legacy api limitation 2021-03-02 19:29:10 +01:00
Andrea Busi e806d1caf0 feat: Ask for critical alerts permission 2021-02-28 10:21:49 +01:00
Andrea Busi f71cd9c8bc feat: Add critical alerts entitlement 2021-02-28 10:21:49 +01:00
Andrea Busi 37acb767de chore: Update provisioning profiles with critical alerts entitlement 2021-02-28 10:21:49 +01:00
Andrea Busi 05dd10fa23 fix: Remove wrong references in Notification Content extension 2021-02-28 10:21:34 +01:00
Andrea Busi 25c2a7374d feat: Add debug page (5 taps on settings tab bar item) 2021-02-28 10:21:34 +01:00
Andrea Busi d523bbf626 feat: Store push token 2021-02-28 10:21:34 +01:00
Andrea Busi 23cb35c71c refactor: Improve names for user constants 2021-02-28 10:21:32 +01:00
Andrea Busi 44d01ecc20 release: Increase version for release 2021-02-27 23:05:20 +01:00
Andrea Busi e43e187d84 refactor: Disable shake in subscriptions 2021-02-27 23:05:20 +01:00
Andrea Busi 849170cd2b fix: Properly hide banner 2021-02-27 22:55:36 +01:00
Andrea Busi d36b07cbd4 feat: Add countdown also in home alert cell 2021-02-27 21:05:42 +01:00
Andrea Busi ceeb999b7f fix: Show proper distance in simulator cell
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/33
2021-02-27 18:10:04 +01:00
Andrea Busi 51c4e15c57 fix: Solve crash during initial setup 2021-02-27 17:12:56 +01:00
Andrea Busi 67b266ae0e release: Increase version for release 2021-02-25 19:48:19 +01:00
Andrea Busi 6f2866a202 fix: Force server registration when Firebase token is received 2021-02-25 19:47:20 +01:00
Andrea Busi dfa6e960da refactor: Avoid self usage in init method to avoid concurrency issues 2021-02-25 19:47:20 +01:00
Andrea Busi ff2f6e1e5a release: Increase version for release 2021-02-25 19:47:20 +01:00
Andrea Busi c10000df53 fix: Retry server registration if fails
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/30
2021-02-24 21:05:50 +01:00
Andrea Busi 6e6f1bed17 feat: Use native ads in seismics section
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/22
2021-02-21 20:56:12 +01:00
Andrea Busi c77a31e322 refactor: Remove no longer used EQNAdsUtility class 2021-02-21 20:56:12 +01:00
Andrea Busi 47db205135 refactor: Use adaptive banners in maps
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/22
2021-02-21 20:56:05 +01:00
Andrea Busi 5ab30c139f refactor: Rename ReteSismicaAnnotation in EQNMapAnnotationSeismicNetwork 2021-02-21 20:56:05 +01:00
Andrea Busi 852e950428 refactor: Rename PastquakesAnnotation in EQNMapAnnotationPastquakes 2021-02-21 20:56:05 +01:00
Andrea Busi e882a83694 refactor: Rewrite seismic map in Swift and rename its annotation model 2021-02-21 20:56:05 +01:00
Andrea Busi 0d26e641d7 refactor: Improve NSNotification definition to be Swift friendly 2021-02-21 20:56:05 +01:00
Andrea Busi 4c6a07c9d0 refactor: Use adaptive banners in main controllers
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/22
2021-02-21 20:55:51 +01:00
Andrea Busi fe38921f23 fix: Use test ads during debug 2021-02-21 20:54:12 +01:00
Andrea Busi 118991feea dependency: Add missing SKAdNetworkItems in info.plist for GoogleMobileAds 2021-02-21 20:52:07 +01:00
Andrea Busi a87750f380 dependency: Add -ObjC flag to let GoogleMobileAds works 2021-02-21 20:52:07 +01:00
Andrea Busi cb8ee2cb67 dependency: Update Pods 2021-02-21 20:52:07 +01:00
Andrea Busi 787cd8b4e7 refactor: Rename some constants 2021-02-21 20:51:28 +01:00
Andrea Busi 64ec53e6f8 refactor: Remove unused method to validate app receipt 2021-02-21 20:50:55 +01:00
Andrea Busi 2df5342da2 chore: Remove old xcuserdata from versioning 2020-12-18 22:00:26 +01:00
Andrea Busi d8fdba5e4f release: Increase version for release 2020-12-08 16:20:10 +01:00
Andrea Busi a05e186275 refactor: Rewrite EQNReteSmartphone model in Swift and use proper types for properties 2020-12-08 16:20:10 +01:00
Andrea Busi 7730da5faa dependency: Update Pods 2020-12-07 09:57:27 +01:00
Andrea Busi 9844dc9ac2 fix: Add missing return 2020-12-07 09:57:27 +01:00
Andrea Busi a9f16bca4a refactor: Reorganise code related to background monitoring
- Move to Models folder
- Improve code and nullability notation
- Rename class with typo in name
2020-12-07 09:46:43 +01:00
Andrea Busi 5612768d7f refactor: Remove useless imports 2020-12-07 09:46:43 +01:00
Andrea Busi ad1487afdf feat: Add server request to register in-app purchase
Resolves: https://gitlab.steamware.net/eqn/eqn.ios/-/issues/29
2020-12-07 09:46:24 +01:00
Andrea Busi f707186dea refactor: Show restored product in alert 2020-12-02 21:16:10 +01:00
Andrea Busi 24f63c7d4b feat: Add message if no subscriptions are available to restore 2020-12-02 21:16:10 +01:00
Andrea Busi 9678040d51 refactor: Improve log in in-app purchase manager 2020-12-02 21:16:10 +01:00
635 changed files with 8833 additions and 5126 deletions
+124
View File
@@ -1,5 +1,129 @@
# Changelog
## Versione 4.1
### Build (80)
- Allineate stringhe esistenti ad Android
- Aggiunte nuove lingue
- Fix grafici minori
### Build (77)
- Allineate stringhe con app Android
## Versione 4.0.1
### Build (76)
- Corretto crash in recap segnalazioni ultime 24h
- Corretto crash in filtro mappe, per date nulle
- Corretto carattere errato in stringhe ES, che causava crash a random
## Versione 4.0
### Build (75)
- Corretto tap doppio non funzionante
- Cerchi nascosti se sisma non è più tra quelli da mostrare
### Build (74)
- Aggiunti cerchi su sisma selezionato in mappa sismi da rete sismica
- Piccole correzioni grafiche e traduzioni mancanti
- RImossi entitlements non utilizzati da provisioning
### Build (73)
- Aggiunti filtri in mappa sismi da rete sismica
### Build (72)
- Aggiornate icone per mappe/notifiche
- Aggiunto nuovo flag per attivare/disattivare critical alerts
### Build (71)
- Correzioni varie interfaccia
- Aggiunto pulsante per aprire Telegram
- Versione incrementata da 3.4 a 4.0
### Build (70)
- Rifatta mappa sismi reti sismiche
### Build (69)
- Corretta gestione filtri iniziale
### Build (68)
- Corretto allineamento icone su mappa (centrate rispetto alla coordinata)
- Aggiunta logica per determinare filtro iniziale
### Build (66)
- Corretti valori sballati segnalazioni utente
### Build (64)
- Aggiunto alert al tap sui vari punti della mappa
- Aggiunti cerchi su terremoto più recente in allerte sismiche passate
### Build (63)
- Rifatta mappa allerte sismiche passate
- Aggiornate icone
- Utilizzati nuovi modelli anche in estensione notifiche
### Build (62)
- Corretto cluster visualizzato (quello che contiene la segnalazione più recente)
- Aumentato zoom sul cluster
- Corretto problema di refresh
### Build (61)
- Creato controller base per gestire mappe (al momento usato in mappa segnalazioni utente, mappa sisma e simulatore)
- Aggiunto bottone "X" per chiudere mappa invece della nav bar azzurra
- Allineate funzionalità mappa segnalazioni utente con Android (cluster, icone più grandi)
- Rivisto picker filtro in mappa
- Filtro "6 ore" non era gestito
- Colore icone in mappa segnalazioni utente era spesso sbagliato
- Rivisti modelli per dati scaricati
### Build (60)
- Riprodotto suono custom per notifiche critiche
### Build (59)
- Workaround per notifiche critiche con api firebase legacy
### Build (55)
- Aggiunta pagina di debug
- Abilitati critical alerts
## Versione 3.3.2
### Build (58)
- Corretto spazio banner sempre visibile
### Build (57)
- Corretto layout conteggio
### Build (56)
- Corretto crash in configurazione iniziale
- Corretta distanza in allerta tempo reale
- Aggiunto conto alla rovescia in allerta tempo reale in home
## Versione 3.3.1
### Build (54)
- Corretto problema user-id non ricavato
## Versione 3.3
### Build (52)
- Aggiunta gestione in caso di fallita registrazione iniziale al server
### Build (51)
- Utilizzati adaptive e native banner
- Aggiornate dipendenze
- Rimosso codice non utilizzato
## Versione 3.2.1
### Build (50)
- Aggiunta chiamata per registrazione acquisto
- Rivisto modell EQNReteSmartphone
### Build (49)
- Aggiunta indicazione prodotto ripristinato
- Aggiunto messaggio se nessun prodotto da ripristinare
## Versione 3.2.0
### Build (48)
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 21:34:50",
"detection_latitude": "37.983810",
"detection_longitude": "23.727539",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "37.683810",
"location": "150 km (Test)",
"longitude": "23.327539",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-16 12:41:20",
"detection_latitude": "37.3229978",
"detection_longitude": "-122.0321823",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "37.9229978",
"location": "150 km (Test)",
"longitude": "-121.0321823",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 20:39:00",
"detection_latitude": "-34.603722",
"detection_longitude": "-58.381592",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "-34.103722",
"location": "150 km (Test)",
"longitude": "-58.781592",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 21:37:40",
"detection_latitude": "48.856614",
"detection_longitude": "2.8522219",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "48.456614",
"location": "150 km (Test)",
"longitude": "2.3522219",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 21:39:50",
"detection_latitude": "45.813177",
"detection_longitude": "15.977048",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "45.413177",
"location": "150 km (Test)",
"longitude": "15.677048",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 21:42:40",
"detection_latitude": "-2.548926",
"detection_longitude": "118.0148634",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "-2.948926",
"location": "150 km (Test)",
"longitude": "118.6148634",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 20:32:20",
"detection_latitude": "45.64664",
"detection_longitude": "9.188540",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "45.164664",
"location": "150 km (Test)",
"longitude": "9.788540",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-16 12:39:40",
"detection_latitude": "19.432608",
"detection_longitude": "-99.133209",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "19.932608",
"location": "150 km (Test)",
"longitude": "-98.033209",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -0,0 +1,33 @@
{
"Simulator Target Bundle": "com.finazzi.distquake",
"aps": {
"alert": {
"loc-args": [
"150 km (Test)"
],
"loc-key": "Rilevato sisma forte a",
"title-loc-key": "Allerta sismica in tempo reale"
},
"category": "notifica_con_mappa",
"content-available": 1,
"mutable-content": 1,
"sound": "alert_star_trek.wav"
},
"counter": 10,
"datetime": "2021-04-15 21:44:30",
"detection_latitude": "41.008238",
"detection_longitude": "28.978359",
"gcm.message_id": "1614708857742608",
"google.c.a.e": 1,
"google.c.sender.id": "899482329945",
"intensity": 2,
"latitude": "41.608238",
"location": "150 km (Test)",
"longitude": "28.678359",
"peak": "-1",
"randcode": 0,
"test": 1,
"type": "eqn",
"wave_speed": "4.7",
"critical": true
}
@@ -2,3 +2,6 @@
// Use this file to import your target's public headers that you would like to expose to Swift.
//
#import "EQNPastquakes.h"
#import "EQNSegnalazione.h"
#import "EQNUtility.h"
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.finazzi.distquake</string>
</array>
</dict>
</plist>
@@ -7,9 +7,8 @@
//
#import "NotificationViewController.h"
#import "PastquakesAnnotation.h"
#import "ReteSismicaAnnotation.h"
#import "EQNUtility.h"
#import "EQNNotificationContent-Swift.h"
@import UserNotifications;
@import UserNotificationsUI;
@@ -40,7 +39,8 @@
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any required interface initialization here.
[self.mapView registerClass:[EQNCustomAnnotationView class] forAnnotationViewWithReuseIdentifier:EQNCustomAnnotationView.SingleLineIdentifier];
}
- (void)didReceiveNotification:(UNNotification *)notification
@@ -61,20 +61,20 @@
[self.mapView setRegion:region animated:YES];
if ([userInfo[@"type"] isEqualToString:@"eqn"]) {
PastquakesAnnotation *annotation = [[PastquakesAnnotation alloc] initWithTitle:content.body
location:coordinate.coordinate
intensita:[userInfo[@"intensity"] intValue]];
EQNMapAnnotationPastquake *annotation = [[EQNMapAnnotationPastquake alloc] initWithTitle:@""
coordinate:coordinate.coordinate
intensity:[userInfo[@"intensity"] intValue]];
[self.mapView addAnnotation:annotation];
} else if ([userInfo[@"type"] isEqualToString:@"manual"]){
ReteSismicaAnnotation *annotation = [[ReteSismicaAnnotation alloc] initWithTitle:content.body
location:coordinate.coordinate
magnitudo:[userInfo[@"magnitudo"] intValue]];
EQNMapAnnotationUserReport *annotation = [[EQNMapAnnotationUserReport alloc] initWithTitle:@""
coordinate:coordinate.coordinate
magnitude:[userInfo[@"magnitudo"] intValue]];
[self.mapView addAnnotation:annotation];
}
self.userSeismicTimestamp = [self calculateUserSeismicTimestampWithInfo:userInfo];
self.userSeismicTimestamp = [EQNUtility calculateUserSeismicTimestampFromUserInfo:userInfo];
if (self.userSeismicTimestamp) {
// start the countdown
self.countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
@@ -88,45 +88,13 @@
#pragma mark - Private
- (nullable NSDate *)calculateUserSeismicTimestampWithInfo:(NSDictionary *)info
{
// dobbiamo calcolare l'ora in cui il sisma arriverà nella posizione dell'utente
// per fare questo, il calcolo sarà:
// timestamp sisma + warning time
// ultima posizione nota dell'utente
CLLocationManager *manager = [[CLLocationManager alloc] init];
CLLocation *lastUserLocation = manager.location;
if (!lastUserLocation) {
return nil;
}
// posizione sisma
double latitude = [info[@"latitude"] doubleValue];
double longitude = [info[@"longitude"] doubleValue];
CLLocation *location = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
// distanza tra sisma e utente (in km)
CLLocationDistance distance = [lastUserLocation distanceFromLocation:location];
double userDistance = distance/1000;
// calcoliamo warning_time
double waveSpeed = [info[@"wave_speed"] doubleValue];
double warningTime = round(userDistance/waveSpeed - 5);
// aggiungiamo il warning time al timestamp del sisma
NSDate *seismicDate = [EQNUtility getDateFromString:info[@"datetime"]];
NSDate *userSeismicDate = [seismicDate dateByAddingTimeInterval:warningTime];
return userSeismicDate;
}
- (void)countdownFired:(id)sender
{
NSDate *now = [NSDate date];
NSTimeInterval difference = MAX([self.userSeismicTimestamp timeIntervalSinceDate:now], 0);
NSInteger seconds = (int)lround(difference);
self.waveLabel.text = [NSString stringWithFormat:@"%@ %.0f %@", NSLocalizedString(@"alert_wave", @""), difference, NSLocalizedString(@"alert_seconds", @"")];
self.waveLabel.text = [NSString stringWithFormat:NSLocalizedString(@"alert_wave", @""), seconds];
if (difference <= 0) {
// stop the countdown
@@ -139,24 +107,20 @@
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[PastquakesAnnotation class]]) {
PastquakesAnnotation *anLocation = (PastquakesAnnotation *)annotation;
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:IDENTIFIER_ANNOTATION_PASTQUAKES];
if (annotationView == nil) {
annotationView = anLocation.annotationView;
} else {
annotationView.annotation = anLocation;
}
if ([annotation isKindOfClass:[EQNMapAnnotationPastquake class]]) {
EQNMapAnnotationPastquake *pastquake = (EQNMapAnnotationPastquake *)annotation;
EQNCustomAnnotationView *annotationView = (EQNCustomAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:EQNCustomAnnotationView.SingleLineIdentifier];
annotationView.image = pastquake.image;
annotationView.title = pastquake.title;
return annotationView;
} else if ([annotation isKindOfClass:[ReteSismicaAnnotation class]]) {
ReteSismicaAnnotation *anLocation = (ReteSismicaAnnotation *)annotation;
MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:IDENTIFIER_ANNOTATION_RETESMARTPHONE];
if (annotationView == nil) {
annotationView = anLocation.annotationView;
} else {
annotationView.annotation = anLocation;
}
} else if ([annotation isKindOfClass:[EQNMapAnnotationUserReport class]]) {
EQNMapAnnotationUserReport *report = (EQNMapAnnotationUserReport *)annotation;
EQNCustomAnnotationView *annotationView = (EQNCustomAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:EQNCustomAnnotationView.SingleLineIdentifier];
annotationView.image = report.image;
annotationView.title = report.title;
return annotationView;
}
return nil;
@@ -1,9 +0,0 @@
/* Class = "UILabel"; text = "Label"; ObjectID = "bT3-3m-qLh"; */
"bT3-3m-qLh.text" = "Label";
/* Class = "UILabel"; text = "Label"; ObjectID = "f3d-th-bgU"; */
"f3d-th-bgU.text" = "Label";
/* Class = "UILabel"; text = "Label"; ObjectID = "pCT-Wh-lut"; */
"pCT-Wh-lut.text" = "Label";
@@ -1,9 +0,0 @@
/* Class = "UILabel"; text = "Label"; ObjectID = "bT3-3m-qLh"; */
"bT3-3m-qLh.text" = "Label";
/* Class = "UILabel"; text = "Label"; ObjectID = "f3d-th-bgU"; */
"f3d-th-bgU.text" = "Label";
/* Class = "UILabel"; text = "Label"; ObjectID = "pCT-Wh-lut"; */
"pCT-Wh-lut.text" = "Label";
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.finazzi.distquake</string>
</array>
</dict>
</plist>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files have changed in this diff Show More