Просмотр исходного кода

Merge pull request #157 from marionbarker/trio-rename

Update app name to Trio
MikePlante1 2 лет назад
Родитель
Сommit
4a75c68d3d
100 измененных файлов с 442 добавлено и 520 удалено
  1. 12 12
      .github/workflows/build_Open-iAPS.yml
  2. 4 4
      Config.xcconfig
  3. 0 36
      FAQ.md
  4. 0 36
      FAQ_RU.md
  5. 0 0
      FreeAPS.xcodeproj/xcshareddata/xcschemes/Trio.xcscheme
  6. 0 0
      FreeAPS.xcodeproj/xcshareddata/xcschemes/Trio_WatchApp.xcscheme
  7. 0 0
      FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/3D Watch.png
  8. 0 0
      FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/Contents.json
  9. 0 0
      FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/OiAPS 3d.png
  10. 0 0
      FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/A 1.png
  11. 0 0
      FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/A.png
  12. 0 0
      FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/Contents.json
  13. 0 0
      FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/C 1.png
  14. 0 0
      FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/C.png
  15. 0 0
      FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/Contents.json
  16. 0 0
      FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/Contents.json
  17. 0 0
      FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/imageLoop 1.png
  18. 0 0
      FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/imageLoop.png
  19. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/8.png
  20. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/9.png
  21. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/Contents.json
  22. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/Contents.json
  23. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/D 1.png
  24. 0 0
      FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/D.png
  25. 1 5
      FreeAPS/Resources/Info.plist
  26. 2 2
      FreeAPS/Sources/APS/FetchGlucoseManager.swift
  27. 1 1
      FreeAPS/Sources/Application/FreeAPSApp.swift
  28. 12 12
      FreeAPS/Sources/Localizations/Main/ar.lproj/Localizable.strings
  29. 10 10
      FreeAPS/Sources/Localizations/Main/ca.lproj/Localizable.strings
  30. 13 13
      FreeAPS/Sources/Localizations/Main/da.lproj/Localizable.strings
  31. 12 12
      FreeAPS/Sources/Localizations/Main/de.lproj/Localizable.strings
  32. 12 12
      FreeAPS/Sources/Localizations/Main/en.lproj/Localizable.strings
  33. 12 12
      FreeAPS/Sources/Localizations/Main/es.lproj/Localizable.strings
  34. 12 12
      FreeAPS/Sources/Localizations/Main/fi.lproj/Localizable.strings
  35. 12 12
      FreeAPS/Sources/Localizations/Main/fr.lproj/Localizable.strings
  36. 12 12
      FreeAPS/Sources/Localizations/Main/he.lproj/Localizable.strings
  37. 12 12
      FreeAPS/Sources/Localizations/Main/hu.lproj/Localizable.strings
  38. 14 14
      FreeAPS/Sources/Localizations/Main/it.lproj/Localizable.strings
  39. 12 12
      FreeAPS/Sources/Localizations/Main/nb.lproj/Localizable.strings
  40. 19 19
      FreeAPS/Sources/Localizations/Main/nl.lproj/Localizable.strings
  41. 12 12
      FreeAPS/Sources/Localizations/Main/pl.lproj/Localizable.strings
  42. 12 12
      FreeAPS/Sources/Localizations/Main/pt-BR.lproj/Localizable.strings
  43. 12 12
      FreeAPS/Sources/Localizations/Main/pt-PT.lproj/Localizable.strings
  44. 12 12
      FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings
  45. 13 13
      FreeAPS/Sources/Localizations/Main/sk.lproj/Localizable.strings
  46. 20 20
      FreeAPS/Sources/Localizations/Main/sv.lproj/Localizable.strings
  47. 13 13
      FreeAPS/Sources/Localizations/Main/tr.lproj/Localizable.strings
  48. 12 12
      FreeAPS/Sources/Localizations/Main/uk.lproj/Localizable.strings
  49. 13 13
      FreeAPS/Sources/Localizations/Main/vi.lproj/Localizable.strings
  50. 12 12
      FreeAPS/Sources/Localizations/Main/zh-Hans.lproj/Localizable.strings
  51. 1 1
      FreeAPS/Sources/Models/AlertEntry.swift
  52. 1 1
      FreeAPS/Sources/Models/CarbsEntry.swift
  53. 6 6
      FreeAPS/Sources/Models/Icons.swift
  54. 1 1
      FreeAPS/Sources/Models/NightscoutTreatment.swift
  55. 1 1
      FreeAPS/Sources/Models/TempTarget.swift
  56. 1 1
      FreeAPS/Sources/Modules/HealthKit/View/AppleHealthKitRootView.swift
  57. 1 1
      FreeAPS/Sources/Modules/IconConfig/View/IconSelection.swift
  58. 2 2
      FreeAPS/Sources/Modules/NightscoutConfig/View/NightscoutConfigRootView.swift
  59. 1 1
      FreeAPS/Sources/Modules/NotificationsConfig/View/NotificationsConfigRootView.swift
  60. 5 5
      FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift
  61. 1 1
      FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift
  62. 2 2
      FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift
  63. 1 1
      FreeAPS/Sources/Services/Calendar/CalendarManager.swift
  64. 5 5
      FreeAPS/Sources/Services/HealthKit/HealthKitManager.swift
  65. 2 2
      FreeAPS/Sources/Services/Network/NightscoutAPI.swift
  66. 1 1
      FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift
  67. 2 2
      FreeAPS/Sources/Services/WatchManager/GarminManager.swift
  68. 5 5
      FreeAPS/Sources/Shortcuts/State/ListStateIntent.swift
  69. 1 1
      FreeAPS/Sources/Shortcuts/State/ListStateView.swift
  70. 4 4
      FreeAPS/Sources/Shortcuts/State/StateIntentRequest.swift
  71. 1 1
      FreeAPSTests/FileStorageTests.swift
  72. 4 4
      FreeAPSWatch WatchKit Extension/ComplicationController.swift
  73. 50 52
      README.md
  74. 0 0
      Trio.xcworkspace/contents.xcworkspacedata
  75. 0 0
      Trio.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  76. 0 0
      Trio.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  77. 0 0
      Trio.xcworkspace/xcshareddata/swiftpm/Package.resolved
  78. 5 5
      fastlane/Fastfile
  79. 23 23
      fastlane/testflight.md
  80. 0 0
      trio-ref/lib/autotune-prep/categorize.js
  81. 0 0
      trio-ref/lib/autotune-prep/dosed.js
  82. 0 0
      trio-ref/lib/autotune-prep/index.js
  83. 0 0
      trio-ref/lib/autotune/index.js
  84. 0 0
      trio-ref/lib/basal-set-temp.js
  85. 0 0
      trio-ref/lib/bolus.js
  86. 0 0
      trio-ref/lib/calc-glucose-stats.js
  87. 0 0
      trio-ref/lib/determine-basal/autosens.js
  88. 0 0
      trio-ref/lib/determine-basal/cob.js
  89. 0 0
      trio-ref/lib/determine-basal/determine-basal.js
  90. 0 0
      trio-ref/lib/glucose-get-last.js
  91. 0 0
      trio-ref/lib/glucose-stats.js
  92. 0 0
      trio-ref/lib/iob/calculate.js
  93. 0 0
      trio-ref/lib/iob/history.js
  94. 0 0
      trio-ref/lib/iob/index.js
  95. 0 0
      trio-ref/lib/iob/total.js
  96. 0 0
      trio-ref/lib/meal/history.js
  97. 0 0
      trio-ref/lib/meal/index.js
  98. 0 0
      trio-ref/lib/meal/total.js
  99. 0 0
      trio-ref/lib/medtronic-clock.js
  100. 0 0
      open-iaps-oref/lib/oref0-setup/alias.json

+ 12 - 12
.github/workflows/build_Open-iAPS.yml

@@ -1,5 +1,5 @@
-name: 4. Build Open-iAPS
-run-name: Build Open-iAPS (${{ github.ref_name }})
+name: 4. Build Trio
+run-name: Build Trio (${{ github.ref_name }})
 on:
 on:
   workflow_dispatch:
   workflow_dispatch:
   
   
@@ -12,7 +12,7 @@ on:
     - cron: '0 6 1 * *' # Builds the app on the 1st of every month at 06:00 UTC
     - cron: '0 6 1 * *' # Builds the app on the 1st of every month at 06:00 UTC
 
 
 env:  
 env:  
-  UPSTREAM_REPO: nightscout/Open-iAPS
+  UPSTREAM_REPO: nightscout/Trio
   UPSTREAM_BRANCH: ${{ github.ref_name }} # branch on upstream repository to sync from (replace with specific branch name if needed)
   UPSTREAM_BRANCH: ${{ github.ref_name }} # branch on upstream repository to sync from (replace with specific branch name if needed)
   TARGET_BRANCH: ${{ github.ref_name }} # target branch on fork to be kept in sync, and target branch on upstream to be kept alive (replace with specific branch name if needed)
   TARGET_BRANCH: ${{ github.ref_name }} # target branch on fork to be kept in sync, and target branch on upstream to be kept alive (replace with specific branch name if needed)
   ALIVE_BRANCH: alive
   ALIVE_BRANCH: alive
@@ -69,7 +69,7 @@ jobs:
       env:
       env:
         GITHUB_TOKEN: ${{ secrets.GH_PAT }}
         GITHUB_TOKEN: ${{ secrets.GH_PAT }}
       run: |
       run: |
-        # get ref for nightscout/Open-iAPS:main
+        # get ref for nightscout/Trio:main
         response=$(curl --request GET \
         response=$(curl --request GET \
                           --url "https://api.github.com/repos/${{ env.UPSTREAM_REPO }}/git/refs/heads/main" \
                           --url "https://api.github.com/repos/${{ env.UPSTREAM_REPO }}/git/refs/heads/main" \
                           --header "Authorization: Bearer $GITHUB_TOKEN" \
                           --header "Authorization: Bearer $GITHUB_TOKEN" \
@@ -82,7 +82,7 @@ jobs:
         fi
         fi
         echo "SHA of main branch: $SHA";
         echo "SHA of main branch: $SHA";
         
         
-        # Create alive branch based on nightscout/Open-iAPS:main
+        # Create alive branch based on nightscout/Trio:main
         gh api \
         gh api \
           --method POST \
           --method POST \
           -H "Authorization: token $GITHUB_TOKEN" \
           -H "Authorization: token $GITHUB_TOKEN" \
@@ -155,13 +155,13 @@ jobs:
       if: needs.check_alive_and_permissions.outputs.WORKFLOW_PERMISSION != 'true'
       if: needs.check_alive_and_permissions.outputs.WORKFLOW_PERMISSION != 'true'
       run: |
       run: |
         echo "### :calendar: Scheduled Sync and Build Disabled :mobile_phone_off:" >> $GITHUB_STEP_SUMMARY
         echo "### :calendar: Scheduled Sync and Build Disabled :mobile_phone_off:" >> $GITHUB_STEP_SUMMARY
-        echo "You have not yet configured the scheduled sync and build for Open-iAPS's browser build." >> $GITHUB_STEP_SUMMARY
-        echo "Synchronizing your fork of <code>Open-iAPS</code> with the upstream repository <code>nightscout/Open-iAPS</code> will be skipped." >> $GITHUB_STEP_SUMMARY
-        echo "If you want to enable automatic builds and updates for your Open-iAPS, please follow the instructions \
-              under the following path <code>Open-iAPS/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY
+        echo "You have not yet configured the scheduled sync and build for Trio's browser build." >> $GITHUB_STEP_SUMMARY
+        echo "Synchronizing your fork of <code>Trio</code> with the upstream repository <code>nightscout/Trio</code> will be skipped." >> $GITHUB_STEP_SUMMARY
+        echo "If you want to enable automatic builds and updates for your Trio, please follow the instructions \
+              under the following path <code>Trio/fastlane/testflight.md</code>." >> $GITHUB_STEP_SUMMARY
    
    
   
   
-  # Builds Open-iAPS
+  # Builds Trio
   build:
   build:
     name: Build
     name: Build
     needs: [validate, check_alive_and_permissions, check_latest_from_upstream]
     needs: [validate, check_alive_and_permissions, check_latest_from_upstream]
@@ -237,9 +237,9 @@ jobs:
       - name: Install project dependencies
       - name: Install project dependencies
         run: bundle install
         run: bundle install
       
       
-      # Build signed Open-iAPS IPA file
+      # Build signed Trio IPA file
       - name: Fastlane Build & Archive
       - name: Fastlane Build & Archive
-        run: bundle exec fastlane build_open_iaps
+        run: bundle exec fastlane build_trio
         env:
         env:
           TEAMID: ${{ secrets.TEAMID }}
           TEAMID: ${{ secrets.TEAMID }}
           GH_PAT: ${{ secrets.GH_PAT }}
           GH_PAT: ${{ secrets.GH_PAT }}

+ 4 - 4
Config.xcconfig

@@ -1,12 +1,12 @@
-APP_DISPLAY_NAME = Open-iAPS
+APP_DISPLAY_NAME = Trio
 APP_VERSION = 0.1.0
 APP_VERSION = 0.1.0
 APP_BUILD_NUMBER = 1
 APP_BUILD_NUMBER = 1
 COPYRIGHT_NOTICE =
 COPYRIGHT_NOTICE =
 DEVELOPER_TEAM = ##TEAM_ID##
 DEVELOPER_TEAM = ##TEAM_ID##
-BUNDLE_IDENTIFIER = org.nightscout.$(DEVELOPMENT_TEAM).openiaps
+BUNDLE_IDENTIFIER = org.nightscout.$(DEVELOPMENT_TEAM).trio
 APP_GROUP_ID = group.com.$(DEVELOPMENT_TEAM).loopkit.LoopGroup
 APP_GROUP_ID = group.com.$(DEVELOPMENT_TEAM).loopkit.LoopGroup
-APP_ICON = oiapsBlack
-APP_URL_SCHEME = Open-iAPS
+APP_ICON = trioBlack
+APP_URL_SCHEME = Trio
 
 
 #include? "../../ConfigOverride.xcconfig"
 #include? "../../ConfigOverride.xcconfig"
 #include? "ConfigOverride.xcconfig"
 #include? "ConfigOverride.xcconfig"

+ 0 - 36
FAQ.md

@@ -1,36 +0,0 @@
-# FAQ
-
-## How to get the Medtronic pump ready?
-
-- Set your temporary basal to units (not percents!).
-- Turn on the remote control with any ID (for example 00000).
-
-## Can I use Bolus assistant on a Medtronic pump?
-
-- You may, but you shouldn't to avoid control conflicts.
-- Carbs, entered through the bolus assistant on pump won't be counted in FreeAPS X.
-- Insulin, delivered through the bolus assistant on pump will be counted in FreeAPS X
-
-## Does the insulin model affect anything when connecting the pump?
-
-- No. This is a legacy screen of rileylink_ios library.
-- You can change an actual insulin type in Preferences -> Insulin Curve. Ultra-rapid for Fiast and Lyumjev, rapid-acting for others.
-
-## Can we manually set TBR?
-
-- Yes. For that you need to open the loop in settings and the button will appear on the main screen.
-
-## How to run the loop on demand manually?
-
-- There is no way of doing that. You can force the data update by long-tapping the loop icon. If this actions gets any new data, loop will be recalculated.
-
-## How to get BG values from Spike/Diabox?
-
-- Settings -> Nightscout -> Use Local Glucose Server, and set the port of a local server. Spike - 1979, Diabox - 17580
-
-## How to see raw data that is used inside the app?
-
-- Preferences -> Edit settings json. Set "debugOptions": true, and restart the app.
-- In Files application on iPhone.
-- You can also download all the data to your computer through iTunes or Finder.
-

+ 0 - 36
FAQ_RU.md

@@ -1,36 +0,0 @@
-# FAQ
-
-## Как подготовить помпу Medtronic?
-
-- Установить временный базал в единицах (не в процентах!).
-- Включить удаленный контроль с любым ID (например 00000).
-
-## Можно ли использовать Помощник болюса на помпе Medtronic?
-
-- Можно, но не рекомендуется, во избежание конфликтов управления помпой.
-- Углеводы, введенные через Помощник учтены не будут.
-- Инсулин, введенный через Помощник будет учтён.
-
-## Учитывается ли тип инсулина, выбранный при подключении помпы?
-
-- Нет. Этот экран - наследие библиотеки rileylink_ios.
-- Тип исулина выбирается настройкой Preferences -> Insulin Curve. ultra-rapid для Fiasp и Lyumjev, rapid-acting для остальных.
-
-## Можно ли установить ручной временный базал?
-
-- Да. Для этого надо открыть петлю в настройках. В главном меню появится кнопка.
-
-## Как запустить петлю прямо сейчас вручную?
-
-- Такой возможности нет. Можно принудительно обновить данные помпы долгим нажатием на круг. Если новые данные доступны, петля выполнится.
-
-## Как получать глюкозу из Spike/Diabox?
-
-- Settings -> Nightscout -> Use Local Glucose Server, затем укажите порт внутреннего сервера. Spike - 1979, Diabox - 17580
-
-## Как посмотреть сырые данные, с которыми работает приложение?
-
-- Preferences -> Edit settings json. Установите параметр "debugOprions": true, затем перезапустите приложение.
-- В приложении Файлы на iPhone.
-- Также возможно скачать все данные на компьютер через iTunes или Finder.
-

FreeAPS.xcodeproj/xcshareddata/xcschemes/Open-iAPS.xcscheme → FreeAPS.xcodeproj/xcshareddata/xcschemes/Trio.xcscheme


FreeAPS.xcodeproj/xcshareddata/xcschemes/FreeAPSWatch.xcscheme → FreeAPS.xcodeproj/xcshareddata/xcschemes/Trio_WatchApp.xcscheme


FreeAPS/Resources/Assets.xcassets/oiaps3D.appiconset/3D Watch.png → FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/3D Watch.png


FreeAPS/Resources/Assets.xcassets/oiaps3D.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/oiaps3D.appiconset/OiAPS 3d.png → FreeAPS/Resources/Assets.xcassets/trio3D.appiconset/OiAPS 3d.png


FreeAPS/Resources/Assets.xcassets/oiapsBlack.appiconset/A 1.png → FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/A 1.png


FreeAPS/Resources/Assets.xcassets/oiapsBlack.appiconset/A.png → FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/A.png


FreeAPS/Resources/Assets.xcassets/oiapsBlack.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trioBlack.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/oiapsColorBG.appiconset/C 1.png → FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/C 1.png


FreeAPS/Resources/Assets.xcassets/oiapsColorBG.appiconset/C.png → FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/C.png


FreeAPS/Resources/Assets.xcassets/oiapsColorBG.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trioColorBG.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/OiAPS_Loop.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/OiAPS_Loop.appiconset/imageLoop 1.png → FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/imageLoop 1.png


FreeAPS/Resources/Assets.xcassets/OiAPS_Loop.appiconset/imageLoop.png → FreeAPS/Resources/Assets.xcassets/trioLoop.appiconset/imageLoop.png


FreeAPS/Resources/Assets.xcassets/oiapsWhite.appiconset/8.png → FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/8.png


FreeAPS/Resources/Assets.xcassets/oiapsWhite.appiconset/9.png → FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/9.png


FreeAPS/Resources/Assets.xcassets/oiapsWhite.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trioWhite.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/oiAPSWhiteShadow.appiconset/Contents.json → FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/Contents.json


FreeAPS/Resources/Assets.xcassets/oiAPSWhiteShadow.appiconset/D 1.png → FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/D 1.png


FreeAPS/Resources/Assets.xcassets/oiAPSWhiteShadow.appiconset/D.png → FreeAPS/Resources/Assets.xcassets/trioWhiteShadow.appiconset/D.png


+ 1 - 5
FreeAPS/Resources/Info.plist

@@ -4,10 +4,6 @@
 <dict>
 <dict>
 	<key>AppGroupID</key>
 	<key>AppGroupID</key>
 	<string>$(APP_GROUP_ID)</string>
 	<string>$(APP_GROUP_ID)</string>
-	<key>BGTaskSchedulerPermittedIdentifiers</key>
-	<array>
-		<string>com.freeapsx.background-task.critical-event-log</string>
-	</array>
 	<key>CBBundleDisplayName</key>
 	<key>CBBundleDisplayName</key>
 	<string>$(APP_DISPLAY_NAME)</string>
 	<string>$(APP_DISPLAY_NAME)</string>
 	<key>CFBundleDevelopmentRegion</key>
 	<key>CFBundleDevelopmentRegion</key>
@@ -32,7 +28,7 @@
 			<key>CFBundleTypeRole</key>
 			<key>CFBundleTypeRole</key>
 			<string>None</string>
 			<string>None</string>
 			<key>CFBundleURLName</key>
 			<key>CFBundleURLName</key>
-			<string>com.artificial-pancreas-iaps</string>
+			<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 			<key>CFBundleURLSchemes</key>
 			<key>CFBundleURLSchemes</key>
 			<array>
 			<array>
 				<string>$(APP_URL_SCHEME)</string>
 				<string>$(APP_URL_SCHEME)</string>

+ 2 - 2
FreeAPS/Sources/APS/FetchGlucoseManager.swift

@@ -297,11 +297,11 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
     private func overcalibrate(entries: [BloodGlucose]) -> [BloodGlucose] {
     private func overcalibrate(entries: [BloodGlucose]) -> [BloodGlucose] {
         // overcalibrate
         // overcalibrate
         var overcalibration: ((Int) -> (Double))?
         var overcalibration: ((Int) -> (Double))?
-       
+
         if let cal = calibrationService {
         if let cal = calibrationService {
             overcalibration = cal.calibrate
             overcalibration = cal.calibrate
         }
         }
-       
+
         if let overcalibration = overcalibration {
         if let overcalibration = overcalibration {
             return entries.map { entry in
             return entries.map { entry in
                 var entry = entry
                 var entry = entry

+ 1 - 1
FreeAPS/Sources/Application/FreeAPSApp.swift

@@ -55,7 +55,7 @@ import Swinject
     init() {
     init() {
         debug(
         debug(
             .default,
             .default,
-            "Open-iAPS Started: v\(Bundle.main.releaseVersionNumber ?? "")(\(Bundle.main.buildVersionNumber ?? "")) [buildDate: \(Bundle.main.buildDate)] [buildExpires: \(Bundle.main.profileExpiration)]"
+            "Trio Started: v\(Bundle.main.releaseVersionNumber ?? "")(\(Bundle.main.buildVersionNumber ?? "")) [buildDate: \(Bundle.main.buildDate)] [buildExpires: \(Bundle.main.profileExpiration)]"
         )
         )
         loadServices()
         loadServices()
     }
     }

Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/ar.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
FreeAPS/Sources/Localizations/Main/ca.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 13 - 13
FreeAPS/Sources/Localizations/Main/da.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/de.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/en.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/es.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/fi.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/fr.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/he.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/hu.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 14 - 14
FreeAPS/Sources/Localizations/Main/it.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/nb.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 19 - 19
FreeAPS/Sources/Localizations/Main/nl.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/pl.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/pt-BR.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/pt-PT.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/ru.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 13 - 13
FreeAPS/Sources/Localizations/Main/sk.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 20 - 20
FreeAPS/Sources/Localizations/Main/sv.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 13 - 13
FreeAPS/Sources/Localizations/Main/tr.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/uk.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 13 - 13
FreeAPS/Sources/Localizations/Main/vi.lproj/Localizable.strings


Разница между файлами не показана из-за своего большого размера
+ 12 - 12
FreeAPS/Sources/Localizations/Main/zh-Hans.lproj/Localizable.strings


+ 1 - 1
FreeAPS/Sources/Models/AlertEntry.swift

@@ -15,7 +15,7 @@ struct AlertEntry: JSON, Codable, Hashable {
     let contentBody: String?
     let contentBody: String?
     var errorMessage: String?
     var errorMessage: String?
 
 
-    static let manual = "Open-iAPS"
+    static let manual = "Trio"
 
 
     static func == (lhs: AlertEntry, rhs: AlertEntry) -> Bool {
     static func == (lhs: AlertEntry, rhs: AlertEntry) -> Bool {
         lhs.issuedDate == rhs.issuedDate
         lhs.issuedDate == rhs.issuedDate

+ 1 - 1
FreeAPS/Sources/Models/CarbsEntry.swift

@@ -12,7 +12,7 @@ struct CarbsEntry: JSON, Equatable, Hashable {
     let isFPU: Bool?
     let isFPU: Bool?
     let fpuID: String?
     let fpuID: String?
 
 
-    static let manual = "Open-iAPS"
+    static let manual = "Trio"
     static let appleHealth = "applehealth"
     static let appleHealth = "applehealth"
 
 
     static func == (lhs: CarbsEntry, rhs: CarbsEntry) -> Bool {
     static func == (lhs: CarbsEntry, rhs: CarbsEntry) -> Bool {

+ 6 - 6
FreeAPS/Sources/Models/Icons.swift

@@ -3,15 +3,15 @@ import Foundation
 import UIKit
 import UIKit
 
 
 enum Icon_: String, CaseIterable, Identifiable {
 enum Icon_: String, CaseIterable, Identifiable {
-    case primary = "oiapsBlack"
-    case oiAPSWhiteShadow
-    case oiapsColorBG
-    case oiapsWhite
-    case oiaps3D
+    case primary = "trioBlack"
+    case trioWhiteShadow
+    case trioColorBG
+    case trioWhite
+    case trio3D
     case wilford = "diabeetus"
     case wilford = "diabeetus"
     case catWithPod
     case catWithPod
     case catWithPodWhite = "catWithPodWhiteBG"
     case catWithPodWhite = "catWithPodWhiteBG"
-    case loop = "OiAPS_Loop"
+    case loop = "trioLoop"
     var id: String { rawValue }
     var id: String { rawValue }
 }
 }
 
 

+ 1 - 1
FreeAPS/Sources/Models/NightscoutTreatment.swift

@@ -26,7 +26,7 @@ struct NightscoutTreatment: JSON, Hashable, Equatable {
     let targetTop: Decimal?
     let targetTop: Decimal?
     let targetBottom: Decimal?
     let targetBottom: Decimal?
 
 
-    static let local = "Open-iAPS"
+    static let local = "Trio"
 
 
     static let empty = NightscoutTreatment(from: "{}")!
     static let empty = NightscoutTreatment(from: "{}")!
 
 

+ 1 - 1
FreeAPS/Sources/Models/TempTarget.swift

@@ -10,7 +10,7 @@ struct TempTarget: JSON, Identifiable, Equatable, Hashable {
     let enteredBy: String?
     let enteredBy: String?
     let reason: String?
     let reason: String?
 
 
-    static let manual = "Open-iAPS"
+    static let manual = "Trio"
     static let custom = "Temp target"
     static let custom = "Temp target"
     static let cancel = "Cancel"
     static let cancel = "Cancel"
 
 

+ 1 - 1
FreeAPS/Sources/Modules/HealthKit/View/AppleHealthKitRootView.swift

@@ -13,7 +13,7 @@ extension AppleHealthKit {
                     HStack {
                     HStack {
                         Image(systemName: "pencil.circle.fill")
                         Image(systemName: "pencil.circle.fill")
                         Text(
                         Text(
-                            "This allows Open-iAPS to read from and write to Apple Heath. You must also give permissions in Settings > Health > Data Access. If you enter a glucose value into Apple Health, open Open-iAPS to confirm it shows up."
+                            "This allows Trio to read from and write to Apple Heath. You must also give permissions in Settings > Health > Data Access. If you enter a glucose value into Apple Health, open Trio to confirm it shows up."
                         )
                         )
                         .font(.caption)
                         .font(.caption)
                     }
                     }

+ 1 - 1
FreeAPS/Sources/Modules/IconConfig/View/IconSelection.swift

@@ -9,7 +9,7 @@ struct IconSelection: View {
 
 
         VStack {
         VStack {
             HStack {
             HStack {
-                Text("Open-iAPS Icon")
+                Text("Trio Icon")
                     .font(.title)
                     .font(.title)
                 IconImage(icon: model.appIcon)
                 IconImage(icon: model.appIcon)
                     .frame(maxHeight: 114)
                     .frame(maxHeight: 114)

+ 2 - 2
FreeAPS/Sources/Modules/NightscoutConfig/View/NightscoutConfigRootView.swift

@@ -104,7 +104,7 @@ extension NightscoutConfig {
                             message: Text(
                             message: Text(
                                 (fetchedErrors.first?.error ?? "").count < 4 ?
                                 (fetchedErrors.first?.error ?? "").count < 4 ?
                                     NSLocalizedString(
                                     NSLocalizedString(
-                                        "\nNow please verify all of your new settings thoroughly:\n\n* Basal Settings\n * Carb Ratios\n * Glucose Targets\n * Insulin Sensitivities\n * DIA\n\n in Open-iAPS Settings > Configuration.\n\nBad or invalid profile settings could have disatrous effects.",
+                                        "\nNow please verify all of your new settings thoroughly:\n\n* Basal Settings\n * Carb Ratios\n * Glucose Targets\n * Insulin Sensitivities\n * DIA\n\n in Trio Settings > Configuration.\n\nBad or invalid profile settings could have disatrous effects.",
                                         comment: "Imported Profiles Alert"
                                         comment: "Imported Profiles Alert"
                                     ) :
                                     ) :
                                     NSLocalizedString(fetchedErrors.first?.error ?? "", comment: "Import Error")
                                     NSLocalizedString(fetchedErrors.first?.error ?? "", comment: "Import Error")
@@ -130,7 +130,7 @@ extension NightscoutConfig {
 
 
                 Section {
                 Section {
                     Toggle("Remote control", isOn: $state.allowAnnouncements)
                     Toggle("Remote control", isOn: $state.allowAnnouncements)
-                } header: { Text("Allow Remote control of Open-iAPS") }
+                } header: { Text("Allow Remote control of Trio") }
             }
             }
             .onAppear(perform: configureView)
             .onAppear(perform: configureView)
             .navigationBarTitle("Nightscout Config")
             .navigationBarTitle("Nightscout Config")

+ 1 - 1
FreeAPS/Sources/Modules/NotificationsConfig/View/NotificationsConfigRootView.swift

@@ -92,7 +92,7 @@ extension NotificationsConfig {
 
 
             if !systemLiveActivitySetting {
             if !systemLiveActivitySetting {
                 footer =
                 footer =
-                    "Live activities are turned OFF in system settings. To enable live activities, go to Settings app -> Open-iAPS -> Turn live Activities ON.\n\n" +
+                    "Live activities are turned OFF in system settings. To enable live activities, go to Settings app -> Trio -> Turn live Activities ON.\n\n" +
                     footer
                     footer
             }
             }
 
 

Разница между файлами не показана из-за своего большого размера
+ 5 - 5
FreeAPS/Sources/Modules/PreferencesEditor/PreferencesEditorStateModel.swift


+ 1 - 1
FreeAPS/Sources/Modules/PreferencesEditor/View/PreferencesEditorRootView.swift

@@ -22,7 +22,7 @@ extension PreferencesEditor {
 
 
         var body: some View {
         var body: some View {
             Form {
             Form {
-                Section(header: Text("Open-iAPS").textCase(nil)) {
+                Section(header: Text("Trio").textCase(nil)) {
                     Picker("Glucose units", selection: $state.unitsIndex) {
                     Picker("Glucose units", selection: $state.unitsIndex) {
                         Text("mg/dL").tag(0)
                         Text("mg/dL").tag(0)
                         Text("mmol/L").tag(1)
                         Text("mmol/L").tag(1)

+ 2 - 2
FreeAPS/Sources/Modules/Settings/View/SettingsRootView.swift

@@ -18,12 +18,12 @@ extension Settings {
                 header: {
                 header: {
                     if let expirationDate = Bundle.main.profileExpiration {
                     if let expirationDate = Bundle.main.profileExpiration {
                         Text(
                         Text(
-                            "Open-iAPS v\(state.versionNumber) (\(state.buildNumber))\nBranch: \(state.branch) \(state.copyrightNotice)" +
+                            "Trio v\(state.versionNumber) (\(state.buildNumber))\nBranch: \(state.branch) \(state.copyrightNotice)" +
                                 "\nBuild Expires: " + expirationDate
                                 "\nBuild Expires: " + expirationDate
                         ).textCase(nil)
                         ).textCase(nil)
                     } else {
                     } else {
                         Text(
                         Text(
-                            "Open-iAPS v\(state.versionNumber) (\(state.buildNumber))\nBranch: \(state.branch) \(state.copyrightNotice)"
+                            "Trio v\(state.versionNumber) (\(state.buildNumber))\nBranch: \(state.branch) \(state.copyrightNotice)"
                         )
                         )
                     }
                     }
                 }
                 }

+ 1 - 1
FreeAPS/Sources/Services/Calendar/CalendarManager.swift

@@ -93,7 +93,7 @@ final class BaseCalendarManager: CalendarManager, Injectable {
         let title = glucoseText + " " + directionText + " " + deltaText
         let title = glucoseText + " " + directionText + " " + deltaText
 
 
         event.title = title
         event.title = title
-        event.notes = "Open-iAPS"
+        event.notes = "Trio"
         event.startDate = Date()
         event.startDate = Date()
         event.endDate = Date(timeIntervalSinceNow: 60 * 10)
         event.endDate = Date(timeIntervalSinceNow: 60 * 10)
         event.calendar = calendar
         event.calendar = calendar

+ 5 - 5
FreeAPS/Sources/Services/HealthKit/HealthKitManager.swift

@@ -19,9 +19,9 @@ protocol HealthKitManager: GlucoseSource {
     func saveIfNeeded(carbs: [CarbsEntry])
     func saveIfNeeded(carbs: [CarbsEntry])
     /// Save Insulin to Health store
     /// Save Insulin to Health store
     func saveIfNeeded(pumpEvents events: [PumpHistoryEvent])
     func saveIfNeeded(pumpEvents events: [PumpHistoryEvent])
-    /// Create observer for data passing beetwen Health Store and Open-iAPS
+    /// Create observer for data passing beetwen Health Store and Trio
     func createBGObserver()
     func createBGObserver()
-    /// Enable background delivering objects from Apple Health to Open-iAPS
+    /// Enable background delivering objects from Apple Health to Trio
     func enableBackgroundDelivery()
     func enableBackgroundDelivery()
     /// Delete glucose with syncID
     /// Delete glucose with syncID
     func deleteGlucose(syncID: String)
     func deleteGlucose(syncID: String)
@@ -46,7 +46,7 @@ final class BaseHealthKitManager: HealthKitManager, Injectable, CarbsObserver, P
         static let healthInsulinObject = HKObjectType.quantityType(forIdentifier: .insulinDelivery)
         static let healthInsulinObject = HKObjectType.quantityType(forIdentifier: .insulinDelivery)
 
 
         // Meta-data key of FreeASPX data in HealthStore
         // Meta-data key of FreeASPX data in HealthStore
-        static let freeAPSMetaKey = "From Open-iAPS"
+        static let freeAPSMetaKey = "From Trio"
     }
     }
 
 
     @Injected() private var glucoseStorage: GlucoseStorage!
     @Injected() private var glucoseStorage: GlucoseStorage!
@@ -495,8 +495,8 @@ final class BaseHealthKitManager: HealthKitManager, Injectable, CarbsObserver, P
 
 
         newGlucose += samples
         newGlucose += samples
             .compactMap { sample -> HealthKitSample? in
             .compactMap { sample -> HealthKitSample? in
-                let fromFAX = sample.metadata?[Config.freeAPSMetaKey] as? Bool ?? false
-                guard !fromFAX else { return nil }
+                let fromTrio = sample.metadata?[Config.freeAPSMetaKey] as? Bool ?? false
+                guard !fromTrio else { return nil }
                 return HealthKitSample(
                 return HealthKitSample(
                     healthKitId: sample.uuid.uuidString,
                     healthKitId: sample.uuid.uuidString,
                     date: sample.startDate,
                     date: sample.startDate,

+ 2 - 2
FreeAPS/Sources/Services/Network/NightscoutAPI.swift

@@ -37,8 +37,8 @@ extension NightscoutAPI {
     func checkConnection() -> AnyPublisher<Void, Swift.Error> {
     func checkConnection() -> AnyPublisher<Void, Swift.Error> {
         struct Check: Codable, Equatable {
         struct Check: Codable, Equatable {
             var eventType = "Note"
             var eventType = "Note"
-            var enteredBy = "Open-iAPS"
-            var notes = "Open-iAPS connected"
+            var enteredBy = "Trio"
+            var notes = "Trio connected"
         }
         }
         let check = Check()
         let check = Check()
         var request = URLRequest(url: url.appendingPathComponent(Config.treatmentsPath))
         var request = URLRequest(url: url.appendingPathComponent(Config.treatmentsPath))

+ 1 - 1
FreeAPS/Sources/Services/UserNotifiactions/UserNotificationsManager.swift

@@ -126,7 +126,7 @@ final class BaseUserNotificationsManager: NSObject, UserNotificationsManager, In
 
 
     private func scheduleMissingLoopNotifiactions(date _: Date) {
     private func scheduleMissingLoopNotifiactions(date _: Date) {
         ensureCanSendNotification {
         ensureCanSendNotification {
-            let title = NSLocalizedString("Open-iAPS Not Active", comment: "Open-iAPS Not Active")
+            let title = NSLocalizedString("Trio Not Active", comment: "Trio Not Active")
             let body = NSLocalizedString("Last loop was more than %d min ago", comment: "Last loop was more than %d min ago")
             let body = NSLocalizedString("Last loop was more than %d min ago", comment: "Last loop was more than %d min ago")
 
 
             let firstInterval = 20 // min
             let firstInterval = 20 // min

+ 2 - 2
FreeAPS/Sources/Services/WatchManager/GarminManager.swift

@@ -63,7 +63,7 @@ final class BaseGarminManager: NSObject, GarminManager, Injectable {
 
 
     init(resolver: Resolver) {
     init(resolver: Resolver) {
         super.init()
         super.init()
-        connectIQ?.initialize(withUrlScheme: "Open-iAPS", uiOverrideDelegate: self)
+        connectIQ?.initialize(withUrlScheme: "Trio", uiOverrideDelegate: self)
         injectServices(resolver)
         injectServices(resolver)
         restoreDevices()
         restoreDevices()
         subscribeToOpenFromGarminConnect()
         subscribeToOpenFromGarminConnect()
@@ -157,7 +157,7 @@ extension BaseGarminManager: IQUIOverrideDelegate {
         debug(.apsManager, NSLocalizedString("Garmin is not available", comment: ""))
         debug(.apsManager, NSLocalizedString("Garmin is not available", comment: ""))
         let messageCont = MessageContent(
         let messageCont = MessageContent(
             content: NSLocalizedString(
             content: NSLocalizedString(
-                "The app Garmin Connect must be installed to use for Open-iAPS.\n Go to App Store to download it",
+                "The app Garmin Connect must be installed to use for Trio.\n Go to App Store to download it",
                 comment: ""
                 comment: ""
             ),
             ),
             type: .warning
             type: .warning

+ 5 - 5
FreeAPS/Sources/Shortcuts/State/ListStateIntent.swift

@@ -3,26 +3,26 @@ import Foundation
 
 
 @available(iOS 16.0, *) struct ListStateIntent: AppIntent {
 @available(iOS 16.0, *) struct ListStateIntent: AppIntent {
     // Title of the action in the Shortcuts app
     // Title of the action in the Shortcuts app
-    static var title: LocalizedStringResource = "List last state available with Open-iAPS"
+    static var title: LocalizedStringResource = "List last state available with Trio"
 
 
     var stateIntent = StateIntentRequest()
     var stateIntent = StateIntentRequest()
 
 
     // Description of the action in the Shortcuts app
     // Description of the action in the Shortcuts app
     static var description = IntentDescription(
     static var description = IntentDescription(
-        "Allow to list the last Blood Glucose, trends, IOB and COB available in Open-iAPS"
+        "Allow to list the last Blood Glucose, trends, IOB and COB available in Trio"
     )
     )
 
 
     static var parameterSummary: some ParameterSummary {
     static var parameterSummary: some ParameterSummary {
-        Summary("List all states of Open-iAPS")
+        Summary("List all states of Trio")
     }
     }
 
 
-    @MainActor func perform() async throws -> some ReturnsValue<StateiAPSResults> & ShowsSnippetView {
+    @MainActor func perform() async throws -> some ReturnsValue<StateResults> & ShowsSnippetView {
         let glucoseValues = try? stateIntent.getLastBG()
         let glucoseValues = try? stateIntent.getLastBG()
         let iob_cob_value = try? stateIntent.getIOB_COB()
         let iob_cob_value = try? stateIntent.getIOB_COB()
 
 
         guard let glucoseValue = glucoseValues else { throw StateIntentError.NoBG }
         guard let glucoseValue = glucoseValues else { throw StateIntentError.NoBG }
         guard let iob_cob = iob_cob_value else { throw StateIntentError.NoIOBCOB }
         guard let iob_cob = iob_cob_value else { throw StateIntentError.NoIOBCOB }
-        let BG = StateiAPSResults(
+        let BG = StateResults(
             glucose: glucoseValue.glucose,
             glucose: glucoseValue.glucose,
             trend: glucoseValue.trend,
             trend: glucoseValue.trend,
             delta: glucoseValue.delta,
             delta: glucoseValue.delta,

+ 1 - 1
FreeAPS/Sources/Shortcuts/State/ListStateView.swift

@@ -3,7 +3,7 @@ import Foundation
 import SwiftUI
 import SwiftUI
 
 
 struct ListStateView: View {
 struct ListStateView: View {
-    var state: StateiAPSResults
+    var state: StateResults
 
 
     private var numberFormatter: NumberFormatter {
     private var numberFormatter: NumberFormatter {
         let formatter = NumberFormatter()
         let formatter = NumberFormatter()

+ 4 - 4
FreeAPS/Sources/Shortcuts/State/StateIntentRequest.swift

@@ -7,10 +7,10 @@ enum StateIntentError: Error {
     case NoIOBCOB
     case NoIOBCOB
 }
 }
 
 
-@available(iOS 16, *) struct StateiAPSResults: AppEntity {
+@available(iOS 16, *) struct StateResults: AppEntity {
     static var defaultQuery = StateBGQuery()
     static var defaultQuery = StateBGQuery()
 
 
-    static var typeDisplayRepresentation: TypeDisplayRepresentation = "Open-iAPS State Result"
+    static var typeDisplayRepresentation: TypeDisplayRepresentation = "Trio State Result"
 
 
     var displayRepresentation: DisplayRepresentation {
     var displayRepresentation: DisplayRepresentation {
         DisplayRepresentation(title: "\(glucose)")
         DisplayRepresentation(title: "\(glucose)")
@@ -44,11 +44,11 @@ enum StateIntentError: Error {
 }
 }
 
 
 @available(iOS 16.0, *) struct StateBGQuery: EntityQuery {
 @available(iOS 16.0, *) struct StateBGQuery: EntityQuery {
-    func entities(for _: [StateiAPSResults.ID]) async throws -> [StateiAPSResults] {
+    func entities(for _: [StateResults.ID]) async throws -> [StateResults] {
         []
         []
     }
     }
 
 
-    func suggestedEntities() async throws -> [StateiAPSResults] {
+    func suggestedEntities() async throws -> [StateResults] {
         []
         []
     }
     }
 }
 }

+ 1 - 1
FreeAPSTests/FileStorageTests.swift

@@ -9,7 +9,7 @@ class FileStorageTests: XCTestCase {
         let value: Decimal
         let value: Decimal
     }
     }
 
 
-    func testFileStorageOiAPS() {
+    func testFileStorageTrio() {
         let dummyObject = DummyObject(id: "21342Z", value: 78.2)
         let dummyObject = DummyObject(id: "21342Z", value: 78.2)
         fileStorage.save(dummyObject, as: "dummyObject")
         fileStorage.save(dummyObject, as: "dummyObject")
         let dummyObjectRetrieve = fileStorage.retrieve("dummyObject", as: DummyObject.self)
         let dummyObjectRetrieve = fileStorage.retrieve("dummyObject", as: DummyObject.self)

+ 4 - 4
FreeAPSWatch WatchKit Extension/ComplicationController.swift

@@ -8,7 +8,7 @@ class ComplicationController: NSObject, CLKComplicationDataSource {
         let descriptors = [
         let descriptors = [
             CLKComplicationDescriptor(
             CLKComplicationDescriptor(
                 identifier: "complication",
                 identifier: "complication",
-                displayName: "Open-iAPS",
+                displayName: "Trio",
                 supportedFamilies: [
                 supportedFamilies: [
                     .graphicCorner,
                     .graphicCorner,
                     .graphicCircular,
                     .graphicCircular,
@@ -52,14 +52,14 @@ class ComplicationController: NSObject, CLKComplicationDataSource {
                 return
                 return
             }
             }
             let template = CLKComplicationTemplateGraphicCornerTextImage(
             let template = CLKComplicationTemplateGraphicCornerTextImage(
-                textProvider: CLKTextProvider(format: "%@", "Open-iAPS"),
+                textProvider: CLKTextProvider(format: "%@", "Trio"),
                 imageProvider: CLKFullColorImageProvider(fullColorImage: image)
                 imageProvider: CLKFullColorImageProvider(fullColorImage: image)
             )
             )
             let timelineEntry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
             let timelineEntry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
             handler(timelineEntry)
             handler(timelineEntry)
         case .modularSmall:
         case .modularSmall:
             let template = CLKComplicationTemplateModularSmallRingText(
             let template = CLKComplicationTemplateModularSmallRingText(
-                textProvider: CLKTextProvider(format: "%@", "Open-iAPS"),
+                textProvider: CLKTextProvider(format: "%@", "Trio"),
                 fillFraction: 1,
                 fillFraction: 1,
                 ringStyle: .closed
                 ringStyle: .closed
             )
             )
@@ -78,7 +78,7 @@ class ComplicationController: NSObject, CLKComplicationDataSource {
             handler(timelineEntry)
             handler(timelineEntry)
         case .circularSmall:
         case .circularSmall:
             let template =
             let template =
-                CLKComplicationTemplateCircularSmallSimpleText(textProvider: CLKTextProvider(format: "%@", "Open-iAPS"))
+                CLKComplicationTemplateCircularSmallSimpleText(textProvider: CLKTextProvider(format: "%@", "Trio"))
             let timelineEntry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
             let timelineEntry = CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)
             handler(timelineEntry)
             handler(timelineEntry)
         default:
         default:

Разница между файлами не показана из-за своего большого размера
+ 50 - 52
README.md


Open-iAPS.xcworkspace/contents.xcworkspacedata → Trio.xcworkspace/contents.xcworkspacedata


Open-iAPS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist → Trio.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist


Open-iAPS.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings → Trio.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings


Open-iAPS.xcworkspace/xcshareddata/swiftpm/Package.resolved → Trio.xcworkspace/xcshareddata/swiftpm/Package.resolved


+ 5 - 5
fastlane/Fastfile

@@ -51,8 +51,8 @@ ENV["BUNDLE_ID"] = xcconfig["BUNDLE_IDENTIFIER"]
 
 
 # limit lane names to letters and underscores
 # limit lane names to letters and underscores
 platform :ios do
 platform :ios do
-  desc "Build Open-iAPS"
-  lane :build_open_iaps do
+  desc "Build Trio"
+  lane :build_trio do
     setup_ci if ENV['CI']
     setup_ci if ENV['CI']
     BUNDLE_ID = ENV["BUNDLE_ID"]
     BUNDLE_ID = ENV["BUNDLE_ID"]
 
 
@@ -135,8 +135,8 @@ platform :ios do
 
 
     gym(
     gym(
       export_method: "app-store",
       export_method: "app-store",
-      scheme: "Open-iAPS",
-      output_name: "Open-iAPS.ipa",
+      scheme: "Trio",
+      output_name: "Trio.ipa",
       configuration: "Release",
       configuration: "Release",
       destination: 'generic/platform=iOS',
       destination: 'generic/platform=iOS',
       buildlog_path: 'buildlog'
       buildlog_path: 'buildlog'
@@ -159,7 +159,7 @@ platform :ios do
     upload_to_testflight(
     upload_to_testflight(
       api_key: api_key,
       api_key: api_key,
       skip_submission: false,
       skip_submission: false,
-      ipa: "Open-iAPS.ipa",
+      ipa: "Trio.ipa",
       skip_waiting_for_build_processing: true,
       skip_waiting_for_build_processing: true,
       changelog: git_branch+" "+last_git_commit[:abbreviated_commit_hash],
       changelog: git_branch+" "+last_git_commit[:abbreviated_commit_hash],
     )
     )

+ 23 - 23
fastlane/testflight.md

@@ -1,18 +1,18 @@
 # Using Github Actions + FastLane to deploy to TestFlight: the "Browser Build" method
 # Using Github Actions + FastLane to deploy to TestFlight: the "Browser Build" method
 
 
-These instructions allow you to build Open-iAPS without having access to a Mac.
+These instructions allow you to build Trio without having access to a Mac.
 
 
-* You can install Open-iAPS on phones via TestFlight that are not connected to your computer
+* You can install Trio on phones via TestFlight that are not connected to your computer
 * You can send builds and updates to those you care for
 * You can send builds and updates to those you care for
-* You can install Open-iAPS on your phone using only the TestFlight app if a phone was lost or the app is accidentally deleted
+* You can install Trio on your phone using only the TestFlight app if a phone was lost or the app is accidentally deleted
 * You do not need to worry about specific Xcode/Mac versions for a given iOS
 * You do not need to worry about specific Xcode/Mac versions for a given iOS
 
 
 ## **Automatic Builds**
 ## **Automatic Builds**
 > 
 > 
-> The browser build defaults to automatically updating and building a new version of Open-iAPS according to this schedule:
+> The browser build defaults to automatically updating and building a new version of Trio according to this schedule:
 > - automatically checks for updates weekly on Wednesdays and if updates are found, it will build a new version of the app
 > - automatically checks for updates weekly on Wednesdays and if updates are found, it will build a new version of the app
 > - automatically builds once a month regardless of whether there are updates on the first of the month
 > - automatically builds once a month regardless of whether there are updates on the first of the month
-> - with each scheduled run (weekly or monthly), a successful Build Open-iAPS log appears - if the time is very short, it did not need to build - only the long actions (>10 minutes) built a new Open-iAPS app
+> - with each scheduled run (weekly or monthly), a successful Build Trio log appears - if the time is very short, it did not need to build - only the long actions (>10 minutes) built a new Trio app
 > 
 > 
 > It also creates an alive branch, if you don't already have one. See [Why do I have an alive branch?](#why-do-i-have-an-alive-branch).
 > It also creates an alive branch, if you don't already have one. See [Why do I have an alive branch?](#why-do-i-have-an-alive-branch).
 >
 >
@@ -29,7 +29,7 @@ There are more detailed instructions in LoopDocs for doing Browser Builds of Loo
 
 
 ## Prerequisites
 ## Prerequisites
 
 
-* A [github account](https://github.com/signup). The free level comes with plenty of storage and free compute time to build Open-iAPS, multiple times a day, if you wanted to.
+* A [github account](https://github.com/signup). The free level comes with plenty of storage and free compute time to build Trio, multiple times a day, if you wanted to.
 * A paid [Apple Developer account](https://developer.apple.com).
 * A paid [Apple Developer account](https://developer.apple.com).
 * Some time. Set aside a couple of hours to perform the setup. 
 * Some time. Set aside a couple of hours to perform the setup. 
 * Use the same GitHub account for all "Browser Builds" of the various DIY apps.
 * Use the same GitHub account for all "Browser Builds" of the various DIY apps.
@@ -81,9 +81,9 @@ The creation of the Match-Secrets repository is a common step for all GitHub Bro
 
 
 Once created, you will not take any direct actions with this repository; it needs to be there for the GitHub to use as you progress through the steps.
 Once created, you will not take any direct actions with this repository; it needs to be there for the GitHub to use as you progress through the steps.
 
 
-## Setup Github Open-iAPS repository
-1. Fork https://github.com/nightscout/Open-iAPS into your account. If you already have a fork of Open-iAPS in GitHub, you can't make another one. You can continue to work with your existing fork, or delete that from GitHub and then and fork https://github.com/nightscout/Open-iAPS.
-1. In the forked Open-iAPS repo, go to Settings -> Secrets and variables -> Actions.
+## Setup Github Trio repository
+1. Fork https://github.com/nightscout/Trio into your account. If you already have a fork of Trio in GitHub, you can't make another one. You can continue to work with your existing fork, or delete that from GitHub and then and fork https://github.com/nightscout/Trio.
+1. In the forked Trio repo, go to Settings -> Secrets and variables -> Actions.
 1. For each of the following secrets, tap on "New repository secret", then add the name of the secret, along with the value you recorded for it:
 1. For each of the following secrets, tap on "New repository secret", then add the name of the secret, along with the value you recorded for it:
     * `TEAMID`
     * `TEAMID`
     * `FASTLANE_ISSUER_ID`
     * `FASTLANE_ISSUER_ID`
@@ -96,23 +96,23 @@ Once created, you will not take any direct actions with this repository; it need
 
 
 This step validates most of your six Secrets and provides error messages if it detects an issue with one or more.
 This step validates most of your six Secrets and provides error messages if it detects an issue with one or more.
 
 
-1. Click on the "Actions" tab of your Open-iAPS repository and enable workflows if needed
+1. Click on the "Actions" tab of your Trio repository and enable workflows if needed
 1. On the left side, select "1. Validate Secrets".
 1. On the left side, select "1. Validate Secrets".
 1. On the right side, click "Run Workflow", and tap the green `Run workflow` button.
 1. On the right side, click "Run Workflow", and tap the green `Run workflow` button.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 1. The workflow will check if the required secrets are added and that they are correctly formatted. If errors are detected, please check the run log for details.
 1. The workflow will check if the required secrets are added and that they are correctly formatted. If errors are detected, please check the run log for details.
 
 
-## Add Identifiers for Open-iAPS App
+## Add Identifiers for Trio App
 
 
-1. Click on the "Actions" tab of your Open-iAPS repository.
+1. Click on the "Actions" tab of your Trio repository.
 1. On the left side, select "2. Add Identifiers".
 1. On the left side, select "2. Add Identifiers".
 1. On the right side, click "Run Workflow", and tap the green `Run workflow` button.
 1. On the right side, click "Run Workflow", and tap the green `Run workflow` button.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 
 
 ## Create App Group
 ## Create App Group
 
 
-If you have already built Open-iAPS via Xcode using this Apple ID, you can skip on to [Create Open-iAPS App in App Store Connect](#create-FreeAPS-X-app-in-app-store-connect).
-_Please note that in default builds of Open-iAPS, the app group is actually identical to the one used with Loop, so please enter these details exactly as described below. This is to ease the setup of apps such as Xdrip4iOS. It may require some caution if transfering between Open-iAPS and Loop._
+If you have already built Trio via Xcode using this Apple ID, you can skip on to [Create Trio App in App Store Connect](#create-trio-app-in-app-store-connect).
+_Please note that in default builds of Trio, the app group is actually identical to the one used with Loop, so please enter these details exactly as described below. This is to ease the setup of apps such as Xdrip4iOS. It may require some caution if transfering between Trio and Loop._
 
 
 1. Go to [Register an App Group](https://developer.apple.com/account/resources/identifiers/applicationGroup/add/) on the apple developer site.
 1. Go to [Register an App Group](https://developer.apple.com/account/resources/identifiers/applicationGroup/add/) on the apple developer site.
 1. For Description, use "Loop App Group".
 1. For Description, use "Loop App Group".
@@ -134,16 +134,16 @@ _Please note that in default builds of Open-iAPS, the app group is actually iden
 1. Click "Confirm".
 1. Click "Confirm".
 1. Remember to do this for each of the identifiers above.
 1. Remember to do this for each of the identifiers above.
 
 
-## Create Open-iAPS App in App Store Connect
+## Create Trio App in App Store Connect
 
 
-If you have created a Open-iAPS app in App Store Connect before, you can skip this section as well.
+If you have created a Trio app in App Store Connect before, you can skip this section as well.
 
 
 1. Go to the [apps list](https://appstoreconnect.apple.com/apps) on App Store Connect and click the blue "plus" icon to create a New App.
 1. Go to the [apps list](https://appstoreconnect.apple.com/apps) on App Store Connect and click the blue "plus" icon to create a New App.
     * Select "iOS".
     * Select "iOS".
     * Select a name: this will have to be unique, so you may have to try a few different names here, but it will not be the name you see on your phone, so it's not that important.
     * Select a name: this will have to be unique, so you may have to try a few different names here, but it will not be the name you see on your phone, so it's not that important.
     * Select your primary language.
     * Select your primary language.
     * Choose the bundle ID that matches the `BUNDLE_IDENTIFIER` in your `Config.xcconfig` file
     * Choose the bundle ID that matches the `BUNDLE_IDENTIFIER` in your `Config.xcconfig` file
-       * this is typically `org.nightscout.TEAMID.openiaps` with `TEAMID` matching your team id
+       * this is typically `org.nightscout.TEAMID.trio` with `TEAMID` matching your team id
     * SKU can be anything; e.g. "123".
     * SKU can be anything; e.g. "123".
     * Select "Full Access".
     * Select "Full Access".
 1. Click Create
 1. Click Create
@@ -152,19 +152,19 @@ You do not need to fill out the next form. That is for submitting to the app sto
 
 
 ## Create Building Certficates
 ## Create Building Certficates
 
 
-1. Go back to the "Actions" tab of your Open-iAPS repository in github.
+1. Go back to the "Actions" tab of your Trio repository in github.
 1. Select "3. Create Certificates".
 1. Select "3. Create Certificates".
 1. Click "Run Workflow", and tap the green button.
 1. Click "Run Workflow", and tap the green button.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 1. Wait, and within a minute or two you should see a green checkmark indicating the workflow succeeded.
 
 
-## Build Open-iAPS!
+## Build Trio!
 
 
-1. Click on the "Actions" tab of your Open-iAPS repository.
-1. On the left side, select "4. Build Open-iAPS".
+1. Click on the "Actions" tab of your Trio repository.
+1. On the left side, select "4. Build Trio".
 1. Click "Run Workflow", select your branch, and tap the green button.
 1. Click "Run Workflow", select your branch, and tap the green button.
 1. You have some time now. Go enjoy a coffee. The build should take about 15 minutes.
 1. You have some time now. Go enjoy a coffee. The build should take about 15 minutes.
 1. Your app should eventually appear on [App Store Connect](https://appstoreconnect.apple.com/apps).
 1. Your app should eventually appear on [App Store Connect](https://appstoreconnect.apple.com/apps).
-1. For each phone/person you would like to support Open-iAPS on:
+1. For each phone/person you would like to support Trio on:
     * Add them in [Users and Access](https://appstoreconnect.apple.com/access/users) on App Store Connect.
     * Add them in [Users and Access](https://appstoreconnect.apple.com/access/users) on App Store Connect.
     * Add them to your TestFlight Internal Testing group.
     * Add them to your TestFlight Internal Testing group.
 
 
@@ -178,6 +178,6 @@ For more details, please refer to [LoopDocs: Set Up Users](https://loopkit.githu
 
 
 If a GitHub repository has no activity (no commits are made) in 60 days, then GitHub disables the ability to use automated actions for that repository. We need to take action more frequently than that or the automated build process won't work.
 If a GitHub repository has no activity (no commits are made) in 60 days, then GitHub disables the ability to use automated actions for that repository. We need to take action more frequently than that or the automated build process won't work.
 
 
-The updated `build_Open-iAPS.yml` file uses a special branch called `alive` and adds a dummy commit to the `alive` branch at regular intervals. This "trick" keeps the Actions enabled so the automated build works.
+The `build_trio.yml` file uses a special branch called `alive` and adds a dummy commit to the `alive` branch at regular intervals. This "trick" keeps the Actions enabled so the automated build works.
 
 
 The branch `alive` is created automatically for you. Do not delete or rename it! Do not modify `alive` yourself; it is not used for building the app.
 The branch `alive` is created automatically for you. Do not delete or rename it! Do not modify `alive` yourself; it is not used for building the app.

open-iaps-oref/lib/autotune-prep/categorize.js → trio-ref/lib/autotune-prep/categorize.js


open-iaps-oref/lib/autotune-prep/dosed.js → trio-ref/lib/autotune-prep/dosed.js


open-iaps-oref/lib/autotune-prep/index.js → trio-ref/lib/autotune-prep/index.js


open-iaps-oref/lib/autotune/index.js → trio-ref/lib/autotune/index.js


open-iaps-oref/lib/basal-set-temp.js → trio-ref/lib/basal-set-temp.js


open-iaps-oref/lib/bolus.js → trio-ref/lib/bolus.js


open-iaps-oref/lib/calc-glucose-stats.js → trio-ref/lib/calc-glucose-stats.js


open-iaps-oref/lib/determine-basal/autosens.js → trio-ref/lib/determine-basal/autosens.js


open-iaps-oref/lib/determine-basal/cob.js → trio-ref/lib/determine-basal/cob.js


open-iaps-oref/lib/determine-basal/determine-basal.js → trio-ref/lib/determine-basal/determine-basal.js


open-iaps-oref/lib/glucose-get-last.js → trio-ref/lib/glucose-get-last.js


open-iaps-oref/lib/glucose-stats.js → trio-ref/lib/glucose-stats.js


open-iaps-oref/lib/iob/calculate.js → trio-ref/lib/iob/calculate.js


open-iaps-oref/lib/iob/history.js → trio-ref/lib/iob/history.js


open-iaps-oref/lib/iob/index.js → trio-ref/lib/iob/index.js


open-iaps-oref/lib/iob/total.js → trio-ref/lib/iob/total.js


open-iaps-oref/lib/meal/history.js → trio-ref/lib/meal/history.js


open-iaps-oref/lib/meal/index.js → trio-ref/lib/meal/index.js


open-iaps-oref/lib/meal/total.js → trio-ref/lib/meal/total.js


open-iaps-oref/lib/medtronic-clock.js → trio-ref/lib/medtronic-clock.js


+ 0 - 0
open-iaps-oref/lib/oref0-setup/alias.json


Некоторые файлы не были показаны из-за большого количества измененных файлов