瀏覽代碼

Release 1.3 (#19)

Release 1.3

1. New App Name inside of iAPS and in iPhone settings

2. New icons for APS app made by Tom Barrows.

3. I made a new App icon chooser in iAPS setting. Thanks for the idea, @becksen!

4. I made a makeover of the experimental Temp Target slider. I simplified it a lot and also added for advanced sets to change at which target glucose to reduce the basal to half of normal (it sounds complicated but the UX will make it clear, I hope). When using the Slider some settings are automatically enabled during the TT you set, to make it easier for you not having to worry about which setting does what. When TT ends everything returns to normal. 

4. I created profiles for iAPS. Using this is like using an override in Loop (if you ever used this app), but much better, of course. You can set a duration or enable the Profile Override indefinitely (from now on until you disable it). All Profile Basal rates, scheduled ISFs and CRs will be adjusted. In total your total insulin delivered will be adjusted with this override. To use when sick for many days, when hiking for may days or hours or for whatever purpose. 
Current Overide % and time remaining of override will be displayed in info panel in main view.

5. Several Meal presets can now be combined when adding carbs etc in Add Carbs View. Use + and - button to remove or add several instances of presets. I added a "waiters notepad" for easier overview for test. Will improve the UI later. 

6. Pierre Avous' awesome shooting implementation, mainly intended for G7 and perhaps G6, is now also uploading smoothed readings to NS.

6. New complications from Tom Barrows (Thanks!). Old pegasus replaced with new images.

7. "FreeAPS X" text in Fastlane instructions replaced with "iAPS". Thanks Bjørn Ole!

8. Bug fixes and refactoring. 

To build this new release you need to do a completely new clone via terminal or use "Open with Xcode" via GitHub. Fastlane/GH Action build method is currently not working. Doing an update is also not recommended for this version. Many big files deleted and added and Xcode settings changed. See readme for some basic build instructions: https://github.com/Artificial-Pancreas/iAPS

If you're using a ConfigOverride file to override default config settings in Xcode, you need to comment out or delete any references to APP_ICON in this file (but not the normal Config file!).
Jon B Mårtensson 3 年之前
父節點
當前提交
72a998a85c
共有 100 個文件被更改,包括 618 次插入192 次删除
  1. 4 4
      .github/workflows/build_FAX.yml
  2. 3 3
      Config.xcconfig
  3. 21 2
      Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents
  4. 42 3
      Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json
  5. 102 14
      FreeAPS.xcodeproj/project.pbxproj
  6. 6 6
      FreeAPS.xcworkspace/xcshareddata/swiftpm/Package.resolved
  7. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024 1.png
  8. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024 2.png
  9. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024.png
  10. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/128.png
  11. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/16.png
  12. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/256.png
  13. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/32.png
  14. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/512.png
  15. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/64.png
  16. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon117x117@2x.png
  17. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon129x129@2x.png
  18. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon33x33@2x.png
  19. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon46x46@2x.png
  20. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon51x51@2x.png
  21. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon54x54@2x.png
  22. 0 80
      FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
  23. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1024 1.png
  24. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1024.png
  25. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1025.png
  26. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-128.png
  27. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-16.png
  28. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-256.png
  29. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-257.png
  30. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-32.png
  31. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-33.png
  32. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-512.png
  33. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-513.png
  34. 二進制
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-64.png
  35. 0 80
      FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/Contents.json
  36. 二進制
      FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Cat2 1.png
  37. 二進制
      FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Cat2.png
  38. 20 0
      FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Contents.json
  39. 20 0
      FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/Contents.json
  40. 二進制
      FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/catWithPodWhiteBG1024x1024 1.png
  41. 二進制
      FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/catWithPodWhiteBG1024x1024.png
  42. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/Contents.json
  43. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/iAPS Text 1.png
  44. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/iAPS Text.png
  45. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/Contents.json
  46. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/iAPS Icon2 1.png
  47. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/iAPS Icon2.png
  48. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/Contents.json
  49. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/iAPS Icon4 1.png
  50. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/iAPS Icon4.png
  51. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Contents.json
  52. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Logo_Pink 1.png
  53. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Logo_Pink.png
  54. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/Contents.json
  55. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/iAPS Icon1 1.png
  56. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/iAPS Icon1.png
  57. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/Contents.json
  58. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/iAPS Pump_Bevel 1.png
  59. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/iAPS Pump_Bevel.png
  60. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/Contents.json
  61. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/iAPS Pump_Black 1.png
  62. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/iAPS Pump_Black.png
  63. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/Contents.json
  64. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/iAPS Pump_Bevel2_Black 1.png
  65. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/iAPS Pump_Bevel2_Black.png
  66. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/Contents.json
  67. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/imageLoop 1.png
  68. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/imageLoop.png
  69. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/Contents.json
  70. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/LoopWhite 1.png
  71. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/LoopWhite.png
  72. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/Contents.json
  73. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/image 1.png
  74. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/image.png
  75. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/Contents.json
  76. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/LoopWhite 1.png
  77. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/LoopWhite.png
  78. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/Contents.json
  79. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/iAPS Pump_Bevel2_Transparent.png
  80. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/iAPS_NoButtons_Gray1024x1024.png
  81. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/Contents.json
  82. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/iAPS Pump_FlatGradient 1.png
  83. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/iAPS Pump_FlatGradient.png
  84. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/Contents.json
  85. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/iAPS Icon3 1.png
  86. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/iAPS Icon3.png
  87. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/Contents.json
  88. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/iAPS Pump_White 1.png
  89. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/iAPS Pump_White.png
  90. 20 0
      FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/Contents.json
  91. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/iAPS Icon5 1.png
  92. 二進制
      FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/iAPS Icon5.png
  93. 20 0
      FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Contents.json
  94. 二進制
      FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Pod2 1.png
  95. 二進制
      FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Pod2.png
  96. 20 0
      FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/Contents.json
  97. 二進制
      FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/pod4 1.png
  98. 二進制
      FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/pod4.png
  99. 20 0
      FreeAPS/Resources/Assets.xcassets/podTemplateWhite.appiconset/Contents.json
  100. 0 0
      FreeAPS/Resources/Assets.xcassets/podTemplateWhite.appiconset/Pod3 1.png

+ 4 - 4
.github/workflows/build_FAX.yml

@@ -1,5 +1,5 @@
-name: 4. Build FAX
-run-name: Build FAX
+name: 4. Build iAPS
+run-name: Build iAPS (${{ github.ref_name }})
 on:
   workflow_dispatch:
   
@@ -34,9 +34,9 @@ jobs:
       - name: Patch Match Tables
         run: find /usr/local/lib/ruby/gems -name table_printer.rb | xargs sed -i "" "/puts(Terminal::Table.new(params))/d"
       
-      # Build signed FreeAPS X IPA file
+      # Build signed iAPS IPA file
       - name: Fastlane Build & Archive
-        run: fastlane build_fax
+        run: fastlane build_iAPS
         env:
           TEAMID: ${{ secrets.TEAMID }}
           GH_PAT: ${{ secrets.GH_PAT }}

+ 3 - 3
Config.xcconfig

@@ -1,11 +1,11 @@
 APP_DISPLAY_NAME = iAPS
-APP_VERSION = 1.1.2
+APP_VERSION = 1.3.0
 APP_BUILD_NUMBER = 1
 COPYRIGHT_NOTICE =
 DEVELOPER_TEAM = ##TEAM_ID##
 BUNDLE_IDENTIFIER = ru.artpancreas.$(DEVELOPMENT_TEAM).FreeAPS
 APP_GROUP_ID = group.com.$(DEVELOPMENT_TEAM).loopkit.LoopGroup
-APP_ICON = AppIcon
+APP_ICON = pod_colorful
 
 #include? "ConfigOverride.xcconfig"
-#include? "../../ConfigOverride.xcconfig"
+//#include? "../../ConfigOverride.xcconfig"

+ 21 - 2
Core_Data.xcdatamodeld/Core_Data.xcdatamodel/contents

@@ -21,7 +21,6 @@
         <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
         <attribute name="enteredBy" optional="YES" attributeType="String"/>
     </entity>
-    <entity name="Entity" representedClassName="Entity" syncable="YES" codeGenerationType="class"/>
     <entity name="HbA1c" representedClassName="HbA1c" syncable="YES" codeGenerationType="class">
         <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
         <attribute name="hba1c" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
@@ -47,6 +46,13 @@
         <relationship name="computedInsulinDistribution" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="InsulinDistribution" inverseName="insulin" inverseEntity="InsulinDistribution"/>
         <relationship name="computedTDD" optional="YES" toMany="YES" deletionRule="Nullify" destinationEntity="TDD" inverseName="computed" inverseEntity="TDD"/>
     </entity>
+    <entity name="Override" representedClassName="Override" syncable="YES" codeGenerationType="class">
+        <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
+        <attribute name="duration" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
+        <attribute name="enabled" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
+        <attribute name="indefinite" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
+        <attribute name="percentage" optional="YES" attributeType="Double" defaultValueString="100" usesScalarValueType="YES"/>
+    </entity>
     <entity name="Presets" representedClassName="Presets" syncable="YES" codeGenerationType="class">
         <attribute name="carbs" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
         <attribute name="dish" optional="YES" attributeType="String"/>
@@ -65,8 +71,21 @@
         <attribute name="timestamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
         <relationship name="computed" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Oref0Suggestion" inverseName="computedTDD" inverseEntity="Oref0Suggestion"/>
     </entity>
-    <entity name="ViewPercentage" representedClassName="ViewPercentage" syncable="YES" codeGenerationType="class">
+    <entity name="TempTargets" representedClassName="TempTargets" syncable="YES" codeGenerationType="class">
+        <attribute name="active" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
+        <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
+        <attribute name="duration" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
+        <attribute name="hbt" optional="YES" attributeType="Double" defaultValueString="160" usesScalarValueType="YES"/>
+        <attribute name="id" optional="YES" attributeType="String"/>
+        <attribute name="startDate" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
+    </entity>
+    <entity name="TempTargetsSlider" representedClassName="TempTargetsSlider" syncable="YES" codeGenerationType="class">
         <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
+        <attribute name="defaultHBT" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES"/>
+        <attribute name="duration" optional="YES" attributeType="Decimal" defaultValueString="0.0"/>
         <attribute name="enabled" optional="YES" attributeType="Boolean" defaultValueString="100" usesScalarValueType="YES"/>
+        <attribute name="hbt" optional="YES" attributeType="Double" defaultValueString="160" usesScalarValueType="YES"/>
+        <attribute name="id" optional="YES" attributeType="String" defaultValueString="empy"/>
+        <attribute name="isPreset" optional="YES" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
     </entity>
 </model>

+ 42 - 3
Dependencies/CGMBLEKit/ResetTransmitter/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -139,6 +139,13 @@
       "size" : "29x29"
     },
     {
+      "idiom" : "watch",
+      "role" : "notificationCenter",
+      "scale" : "2x",
+      "size" : "33x33",
+      "subtype" : "45mm"
+    },
+    {
       "filename" : "Icon-40@2x.png",
       "idiom" : "watch",
       "role" : "appLauncher",
@@ -158,10 +165,31 @@
       "idiom" : "watch",
       "role" : "appLauncher",
       "scale" : "2x",
+      "size" : "46x46",
+      "subtype" : "41mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
       "size" : "50x50",
       "subtype" : "44mm"
     },
     {
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "51x51",
+      "subtype" : "45mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "appLauncher",
+      "scale" : "2x",
+      "size" : "54x54",
+      "subtype" : "49mm"
+    },
+    {
       "filename" : "Icon-86@2x.png",
       "idiom" : "watch",
       "role" : "quickLook",
@@ -185,6 +213,20 @@
       "subtype" : "44mm"
     },
     {
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "117x117",
+      "subtype" : "45mm"
+    },
+    {
+      "idiom" : "watch",
+      "role" : "quickLook",
+      "scale" : "2x",
+      "size" : "129x129",
+      "subtype" : "49mm"
+    },
+    {
       "idiom" : "watch-marketing",
       "scale" : "1x",
       "size" : "1024x1024"
@@ -193,8 +235,5 @@
   "info" : {
     "author" : "xcode",
     "version" : 1
-  },
-  "properties" : {
-    "pre-rendered" : true
   }
 }

+ 102 - 14
FreeAPS.xcodeproj/project.pbxproj

@@ -15,7 +15,10 @@
 		17A9D0899046B45E87834820 /* CREditorProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C8D5F457B5AFF763F8CF3DF /* CREditorProvider.swift */; };
 		19012CDC291D2CB900FB8210 /* LoopStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19012CDB291D2CB900FB8210 /* LoopStats.swift */; };
 		1927C8E62744606D00347C69 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1927C8E82744606D00347C69 /* InfoPlist.strings */; };
-		1935364028496F7D001E0B16 /* TDD_averages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1935363F28496F7D001E0B16 /* TDD_averages.swift */; };
+		1935364028496F7D001E0B16 /* Oref2_variables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1935363F28496F7D001E0B16 /* Oref2_variables.swift */; };
+		1967DFBE29D052C200759F30 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFBD29D052C200759F30 /* Icons.swift */; };
+		1967DFC029D053AC00759F30 /* IconSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFBF29D053AC00759F30 /* IconSelection.swift */; };
+		1967DFC229D053D300759F30 /* IconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967DFC129D053D300759F30 /* IconImage.swift */; };
 		19795118275953E50044850D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; };
 		198377D2266BFFF6004DE65E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 198377D4266BFFF6004DE65E /* Localizable.strings */; };
 		19854F492961C3E500941627 /* DurationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19854F482961C3E500941627 /* DurationButton.swift */; };
@@ -25,6 +28,17 @@
 		19D466A529AA2BD4004D5F33 /* FPUConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A429AA2BD4004D5F33 /* FPUConfigProvider.swift */; };
 		19D466A729AA2C22004D5F33 /* FPUConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A629AA2C22004D5F33 /* FPUConfigStateModel.swift */; };
 		19D466AA29AA3099004D5F33 /* FPUConfigRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D466A929AA3099004D5F33 /* FPUConfigRootView.swift */; };
+		19DA48E829CD339B00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; };
+		19DA48E929CD339C00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; };
+		19DA48EA29CD339C00EEA1E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */; };
+		19DC677F29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DC677E29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift */; };
+		19DC678129CA676A00FD9EC4 /* OverrideProfilesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DC678029CA676A00FD9EC4 /* OverrideProfilesProvider.swift */; };
+		19DC678329CA677D00FD9EC4 /* OverrideProfilesStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DC678229CA677D00FD9EC4 /* OverrideProfilesStateModel.swift */; };
+		19DC678529CA67A400FD9EC4 /* OverrideProfilesRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DC678429CA67A400FD9EC4 /* OverrideProfilesRootView.swift */; };
+		19E1F7E829D082D0005C8D20 /* IconConfigDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7E729D082D0005C8D20 /* IconConfigDataFlow.swift */; };
+		19E1F7EA29D082ED005C8D20 /* IconConfigProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7E929D082ED005C8D20 /* IconConfigProvider.swift */; };
+		19E1F7EC29D082FE005C8D20 /* IconConfigStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7EB29D082FE005C8D20 /* IconConfigStateModel.swift */; };
+		19E1F7EF29D08EBA005C8D20 /* IconConfigRootWiew.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E1F7EE29D08EBA005C8D20 /* IconConfigRootWiew.swift */; };
 		1BBB001DAD60F3B8CEA4B1C7 /* ISFEditorStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 505E09DC17A0C3D0AF4B66FE /* ISFEditorStateModel.swift */; };
 		1D845DF2E3324130E1D95E67 /* DataTableProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60744C3E9BB3652895C908CC /* DataTableProvider.swift */; };
 		23888883D4EA091C88480FF2 /* BolusProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C19984D62EFC0035A9E9644D /* BolusProvider.swift */; };
@@ -130,7 +144,6 @@
 		388358C825EEF6D200E024B2 /* BasalProfileEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 388358C725EEF6D200E024B2 /* BasalProfileEntry.swift */; };
 		38887CCE25F5725200944304 /* IOBEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38887CCD25F5725200944304 /* IOBEntry.swift */; };
 		388E595C25AD948C0019842D /* FreeAPSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 388E595B25AD948C0019842D /* FreeAPSApp.swift */; };
-		388E596025AD948E0019842D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388E595F25AD948E0019842D /* Assets.xcassets */; };
 		388E596C25AD95110019842D /* OpenAPS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 388E596B25AD95110019842D /* OpenAPS.swift */; };
 		388E596F25AD96040019842D /* javascript in Resources */ = {isa = PBXBuildFile; fileRef = 388E596E25AD96040019842D /* javascript */; };
 		388E597225AD9CF10019842D /* json in Resources */ = {isa = PBXBuildFile; fileRef = 388E597125AD9CF10019842D /* json */; };
@@ -193,7 +206,6 @@
 		38E87401274F77E400975559 /* CoreNFC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38E873FD274F761800975559 /* CoreNFC.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 		38E87403274F78C000975559 /* libswiftCoreNFC.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 38E87402274F78C000975559 /* libswiftCoreNFC.tbd */; settings = {ATTRIBUTES = (Weak, ); }; };
 		38E87408274F9AD000975559 /* UserNotificationsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E87407274F9AD000975559 /* UserNotificationsManager.swift */; };
-		38E8751F27554D5700975559 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38E8751E27554D5700975559 /* Assets.xcassets */; };
 		38E8752527554D5700975559 /* FreeAPSWatch WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 38E8752427554D5700975559 /* FreeAPSWatch WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		38E8752A27554D5700975559 /* FreeAPSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E8752927554D5700975559 /* FreeAPSApp.swift */; };
 		38E8752C27554D5700975559 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E8752B27554D5700975559 /* MainView.swift */; };
@@ -203,8 +215,6 @@
 		38E8753427554D5800975559 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38E8753327554D5800975559 /* Assets.xcassets */; };
 		38E8753727554D5900975559 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38E8753627554D5800975559 /* Preview Assets.xcassets */; };
 		38E8753C27554D5900975559 /* FreeAPSWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 38E8751C27554D5500975559 /* FreeAPSWatch.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
-		38E8754527554D8800975559 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388E595F25AD948E0019842D /* Assets.xcassets */; };
-		38E8754627554D8A00975559 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 388E595F25AD948E0019842D /* Assets.xcassets */; };
 		38E8754727554DF100975559 /* Color+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38F37827261260DC009DB701 /* Color+Extensions.swift */; };
 		38E8754A275550BB00975559 /* CarbsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E87549275550BB00975559 /* CarbsView.swift */; };
 		38E8754C2755548F00975559 /* WatchStateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E8754B2755548F00975559 /* WatchStateModel.swift */; };
@@ -467,7 +477,11 @@
 		1927C8FA2744612500347C69 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		1927C8FB2744612600347C69 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 		1927C8FE274489BA00347C69 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = "<group>"; };
-		1935363F28496F7D001E0B16 /* TDD_averages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TDD_averages.swift; sourceTree = "<group>"; };
+		1935363F28496F7D001E0B16 /* Oref2_variables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Oref2_variables.swift; sourceTree = "<group>"; };
+		1967DFBD29D052C200759F30 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icons.swift; sourceTree = "<group>"; };
+		1967DFBF29D053AC00759F30 /* IconSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconSelection.swift; sourceTree = "<group>"; };
+		1967DFC129D053D300759F30 /* IconImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconImage.swift; sourceTree = "<group>"; };
+		1980131D29CC9839002FF024 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
 		198377D3266BFFF6004DE65E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
 		198377D5266C0A05004DE65E /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = "<group>"; };
 		198377D6266C0A0A004DE65E /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -496,6 +510,15 @@
 		19D466A429AA2BD4004D5F33 /* FPUConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigProvider.swift; sourceTree = "<group>"; };
 		19D466A629AA2C22004D5F33 /* FPUConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigStateModel.swift; sourceTree = "<group>"; };
 		19D466A929AA3099004D5F33 /* FPUConfigRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FPUConfigRootView.swift; sourceTree = "<group>"; };
+		19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		19DC677E29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesDataFlow.swift; sourceTree = "<group>"; };
+		19DC678029CA676A00FD9EC4 /* OverrideProfilesProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesProvider.swift; sourceTree = "<group>"; };
+		19DC678229CA677D00FD9EC4 /* OverrideProfilesStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesStateModel.swift; sourceTree = "<group>"; };
+		19DC678429CA67A400FD9EC4 /* OverrideProfilesRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverrideProfilesRootView.swift; sourceTree = "<group>"; };
+		19E1F7E729D082D0005C8D20 /* IconConfigDataFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigDataFlow.swift; sourceTree = "<group>"; };
+		19E1F7E929D082ED005C8D20 /* IconConfigProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigProvider.swift; sourceTree = "<group>"; };
+		19E1F7EB29D082FE005C8D20 /* IconConfigStateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigStateModel.swift; sourceTree = "<group>"; };
+		19E1F7EE29D08EBA005C8D20 /* IconConfigRootWiew.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconConfigRootWiew.swift; sourceTree = "<group>"; };
 		1CAE81192B118804DCD23034 /* SnoozeProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SnoozeProvider.swift; sourceTree = "<group>"; };
 		212E8BFE6D66EE65AA26A114 /* CalibrationsProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CalibrationsProvider.swift; sourceTree = "<group>"; };
 		223EC0494F55A91E3EA69EF4 /* BolusStateModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BolusStateModel.swift; sourceTree = "<group>"; };
@@ -589,7 +612,6 @@
 		38887CCD25F5725200944304 /* IOBEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IOBEntry.swift; sourceTree = "<group>"; };
 		388E595825AD948C0019842D /* FreeAPS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FreeAPS.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		388E595B25AD948C0019842D /* FreeAPSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FreeAPSApp.swift; sourceTree = "<group>"; };
-		388E595F25AD948E0019842D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
 		388E596425AD948E0019842D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		388E596B25AD95110019842D /* OpenAPS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAPS.swift; sourceTree = "<group>"; };
 		388E596E25AD96040019842D /* javascript */ = {isa = PBXFileReference; lastKnownFileType = folder; path = javascript; sourceTree = "<group>"; };
@@ -956,6 +978,46 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		19DC677C29CA66F200FD9EC4 /* OverrideProfilesConfig */ = {
+			isa = PBXGroup;
+			children = (
+				19DC677E29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift */,
+				19DC678029CA676A00FD9EC4 /* OverrideProfilesProvider.swift */,
+				19DC678229CA677D00FD9EC4 /* OverrideProfilesStateModel.swift */,
+				19DC677D29CA672500FD9EC4 /* View */,
+			);
+			path = OverrideProfilesConfig;
+			sourceTree = "<group>";
+		};
+		19DC677D29CA672500FD9EC4 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				19DC678429CA67A400FD9EC4 /* OverrideProfilesRootView.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		19E1F7E629D0828B005C8D20 /* IconConfig */ = {
+			isa = PBXGroup;
+			children = (
+				19E1F7E729D082D0005C8D20 /* IconConfigDataFlow.swift */,
+				19E1F7E929D082ED005C8D20 /* IconConfigProvider.swift */,
+				19E1F7EB29D082FE005C8D20 /* IconConfigStateModel.swift */,
+				19E1F7ED29D088C0005C8D20 /* View */,
+			);
+			path = IconConfig;
+			sourceTree = "<group>";
+		};
+		19E1F7ED29D088C0005C8D20 /* View */ = {
+			isa = PBXGroup;
+			children = (
+				19E1F7EE29D08EBA005C8D20 /* IconConfigRootWiew.swift */,
+				1967DFC129D053D300759F30 /* IconImage.swift */,
+				1967DFBF29D053AC00759F30 /* IconSelection.swift */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
 		29B478DF61BF8D270F7D8954 /* Snooze */ = {
 			isa = PBXGroup;
 			children = (
@@ -978,6 +1040,7 @@
 		3811DE0325C9D31700A708ED /* Modules */ = {
 			isa = PBXGroup;
 			children = (
+				19E1F7E629D0828B005C8D20 /* IconConfig */,
 				19D466A129AA2B0A004D5F33 /* FPUConfig */,
 				F90692CD274B99850037068D /* HealthKit */,
 				6DC5D590658EF8B8DF94F9F5 /* AddCarbs */,
@@ -998,6 +1061,7 @@
 				5031FE61F63C2A8A8B7674DD /* ManualTempBasal */,
 				D533BF261CDC1C3F871E7BFD /* NightscoutConfig */,
 				F66B236E00924A05D6A9F9DF /* NotificationsConfig */,
+				19DC677C29CA66F200FD9EC4 /* OverrideProfilesConfig */,
 				3E1C41D9301B7058AA7BF5EA /* PreferencesEditor */,
 				99C01B871ACAB3F32CE755C7 /* PumpConfig */,
 				E493126EA71765130F64CCE5 /* PumpSettingsEditor */,
@@ -1193,7 +1257,7 @@
 				3811DEC725C9DA7300A708ED /* FreeAPS.entitlements */,
 				388E596425AD948E0019842D /* Info.plist */,
 				1927C8E82744606D00347C69 /* InfoPlist.strings */,
-				388E595F25AD948E0019842D /* Assets.xcassets */,
+				19DA487F29CD2B8400EEA1E7 /* Assets.xcassets */,
 			);
 			path = Resources;
 			sourceTree = "<group>";
@@ -1416,12 +1480,13 @@
 				3871F39B25ED892B0013ECB5 /* TempTarget.swift */,
 				3811DE8E25C9D80400A708ED /* User.swift */,
 				E0D4F80427513ECF00BDF1FE /* HealthKitSample.swift */,
-				1935363F28496F7D001E0B16 /* TDD_averages.swift */,
+				1935363F28496F7D001E0B16 /* Oref2_variables.swift */,
 				CE82E02628E869DF00473A9C /* AlertEntry.swift */,
 				19B0EF2028F6D66200069496 /* Statistics.swift */,
 				19012CDB291D2CB900FB8210 /* LoopStats.swift */,
 				FE41E4D329463C660047FD55 /* NightscoutStatistics.swift */,
 				FE41E4D529463EE20047FD55 /* NightscoutPreferences.swift */,
+				1967DFBD29D052C200759F30 /* Icons.swift */,
 			);
 			path = Models;
 			sourceTree = "<group>";
@@ -1549,6 +1614,7 @@
 		38E8751D27554D5500975559 /* FreeAPSWatch */ = {
 			isa = PBXGroup;
 			children = (
+				1980131D29CC9839002FF024 /* Info.plist */,
 				38E8755627564B6100975559 /* FreeAPSWatch.entitlements */,
 				38E8751E27554D5700975559 /* Assets.xcassets */,
 			);
@@ -2175,11 +2241,11 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				388E596025AD948E0019842D /* Assets.xcassets in Resources */,
 				198377D2266BFFF6004DE65E /* Localizable.strings in Resources */,
 				38DF178D27733E6800B3528F /* snow.sks in Resources */,
 				388E597225AD9CF10019842D /* json in Resources */,
 				38DF178E27733E6800B3528F /* Assets.xcassets in Resources */,
+				19DA48E829CD339B00EEA1E7 /* Assets.xcassets in Resources */,
 				388E596F25AD96040019842D /* javascript in Resources */,
 				1927C8E62744606D00347C69 /* InfoPlist.strings in Resources */,
 			);
@@ -2189,8 +2255,7 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				38E8754527554D8800975559 /* Assets.xcassets in Resources */,
-				38E8751F27554D5700975559 /* Assets.xcassets in Resources */,
+				19DA48E929CD339C00EEA1E7 /* Assets.xcassets in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2200,7 +2265,7 @@
 			files = (
 				38E8753727554D5900975559 /* Preview Assets.xcassets in Resources */,
 				19795118275953E50044850D /* Localizable.strings in Resources */,
-				38E8754627554D8A00975559 /* Assets.xcassets in Resources */,
+				19DA48EA29CD339C00EEA1E7 /* Assets.xcassets in Resources */,
 				38E8753427554D5800975559 /* Assets.xcassets in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2277,6 +2342,8 @@
 				CEA4F62329BE10F70011ADF7 /* SavitzkyGolayFilter.swift in Sources */,
 				38B4F3C325E2A20B00E76A18 /* PumpSetupView.swift in Sources */,
 				38E4453C274E411700EC9A94 /* Disk+Codable.swift in Sources */,
+				19E1F7EF29D08EBA005C8D20 /* IconConfigRootWiew.swift in Sources */,
+				1967DFC229D053D300759F30 /* IconImage.swift in Sources */,
 				382C134B25F14E3700715CE1 /* BGTargets.swift in Sources */,
 				38AEE75725F0F18E0013F05B /* CarbsStorage.swift in Sources */,
 				38B4F3CA25E502E200E76A18 /* SwiftNotificationCenter.swift in Sources */,
@@ -2321,6 +2388,7 @@
 				E013D872273AC6FE0014109C /* GlucoseSimulatorSource.swift in Sources */,
 				388E5A5C25B6F0770019842D /* JSON.swift in Sources */,
 				3811DF0225CA9FEA00A708ED /* Credentials.swift in Sources */,
+				19DC678529CA67A400FD9EC4 /* OverrideProfilesRootView.swift in Sources */,
 				389A572026079BAA00BC102F /* Interpolation.swift in Sources */,
 				38B4F3C625E5017E00E76A18 /* NotificationCenter.swift in Sources */,
 				19D466A729AA2C22004D5F33 /* FPUConfigStateModel.swift in Sources */,
@@ -2395,7 +2463,8 @@
 				38C4D33A25E9A1ED00D30B77 /* NSObject+AssociatedValues.swift in Sources */,
 				38DF179027733EAD00B3528F /* SnowScene.swift in Sources */,
 				38AAF8712600C1B0004AF583 /* MainChartView.swift in Sources */,
-				1935364028496F7D001E0B16 /* TDD_averages.swift in Sources */,
+				19DC677F29CA675700FD9EC4 /* OverrideProfilesDataFlow.swift in Sources */,
+				1935364028496F7D001E0B16 /* Oref2_variables.swift in Sources */,
 				CE2FAD3A297D93F0001A872C /* BloodGlucoseExtensions.swift in Sources */,
 				38E4453A274E411700EC9A94 /* Disk+[UIImage].swift in Sources */,
 				72F1BD388F42FCA6C52E4500 /* ConfigEditorProvider.swift in Sources */,
@@ -2419,6 +2488,7 @@
 				A0B8EC8CC5CD1DD237D1BCD2 /* PumpSettingsEditorRootView.swift in Sources */,
 				E06B911A275B5EEA003C04B6 /* Array+Extension.swift in Sources */,
 				38EA0600262091870064E39B /* BolusProgressViewStyle.swift in Sources */,
+				19DC678329CA677D00FD9EC4 /* OverrideProfilesStateModel.swift in Sources */,
 				389ECDFE2601061500D86C4F /* View+Snapshot.swift in Sources */,
 				38FEF3FE2738083E00574A46 /* CGMProvider.swift in Sources */,
 				38E98A3725F5509500C0CED0 /* String+Extensions.swift in Sources */,
@@ -2457,12 +2527,15 @@
 				F5F7E6C1B7F098F59EB67EC5 /* TargetsEditorDataFlow.swift in Sources */,
 				5075C1608E6249A51495C422 /* TargetsEditorProvider.swift in Sources */,
 				E13B7DAB2A435F57066AF02E /* TargetsEditorStateModel.swift in Sources */,
+				19DC678129CA676A00FD9EC4 /* OverrideProfilesProvider.swift in Sources */,
 				9702FF92A09C53942F20D7EA /* TargetsEditorRootView.swift in Sources */,
+				1967DFBE29D052C200759F30 /* Icons.swift in Sources */,
 				38E8754F275556FA00975559 /* WatchManager.swift in Sources */,
 				A228DF96647338139F152B15 /* PreferencesEditorDataFlow.swift in Sources */,
 				389ECE052601144100D86C4F /* ConcurrentMap.swift in Sources */,
 				E4984C5262A90469788754BB /* PreferencesEditorProvider.swift in Sources */,
 				DD399FB31EACB9343C944C4C /* PreferencesEditorStateModel.swift in Sources */,
+				19E1F7EA29D082ED005C8D20 /* IconConfigProvider.swift in Sources */,
 				44190F0BBA464D74B857D1FB /* PreferencesEditorRootView.swift in Sources */,
 				E97285ED9B814CD5253C6658 /* AddCarbsDataFlow.swift in Sources */,
 				CE48C86428CA69D5007C0598 /* OmniBLEPumpManagerExtensions.swift in Sources */,
@@ -2486,9 +2559,11 @@
 				38569353270B5E350002C50D /* CGMRootView.swift in Sources */,
 				69A31254F2451C20361D172F /* BolusStateModel.swift in Sources */,
 				0CEA2EA070AB041AF3E3745B /* BolusRootView.swift in Sources */,
+				1967DFC029D053AC00759F30 /* IconSelection.swift in Sources */,
 				FEFFA7A22929FE49007B8193 /* UIDevice+Extensions.swift in Sources */,
 				F90692D3274B9A130037068D /* AppleHealthKitRootView.swift in Sources */,
 				3862CC1F273FDC9200BF832C /* CalibrationsChart.swift in Sources */,
+				19E1F7EC29D082FE005C8D20 /* IconConfigStateModel.swift in Sources */,
 				711C0CB42CAABE788916BC9D /* ManualTempBasalDataFlow.swift in Sources */,
 				BF1667ADE69E4B5B111CECAE /* ManualTempBasalProvider.swift in Sources */,
 				F90692D6274B9A450037068D /* HealthKitStateModel.swift in Sources */,
@@ -2515,6 +2590,7 @@
 				9050F378F0063C064D7FFC86 /* LibreConfigRootView.swift in Sources */,
 				B7C465E9472624D8A2BE2A6A /* CalibrationsDataFlow.swift in Sources */,
 				320D030F724170A637F06D50 /* CalibrationsProvider.swift in Sources */,
+				19E1F7E829D082D0005C8D20 /* IconConfigDataFlow.swift in Sources */,
 				E25073BC86C11C3D6A42F5AC /* CalibrationsStateModel.swift in Sources */,
 				BA90041DC8991147E5C8C3AA /* CalibrationsRootView.swift in Sources */,
 				E3A08AAE59538BC8A8ABE477 /* NotificationsConfigDataFlow.swift in Sources */,
@@ -2770,6 +2846,7 @@
 				APP_GROUP_ID = "$(APP_GROUP_ID)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
 				CODE_SIGN_STYLE = Automatic;
@@ -2806,6 +2883,7 @@
 				APP_GROUP_ID = "$(APP_GROUP_ID)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
 				CODE_SIGN_STYLE = Automatic;
@@ -2842,6 +2920,10 @@
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				ASSETCATALOG_COMPILER_INCLUDE_STICKER_CONTENT = YES;
+				ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR = all;
+				ASSETCATALOG_COMPILER_TARGET_STICKERS_ICON_ROLE = "host-app";
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
 				CODE_SIGN_ENTITLEMENTS = FreeAPSWatch/FreeAPSWatch.entitlements;
@@ -2850,6 +2932,7 @@
 				DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)";
 				GENERATE_INFOPLIST_FILE = YES;
 				IBSC_MODULE = FreeAPSWatch_WatchKit_Extension;
+				INFOPLIST_FILE = FreeAPSWatch/Info.plist;
 				INFOPLIST_KEY_CFBundleDisplayName = iAPS;
 				INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
 				INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "$(BUNDLE_IDENTIFIER)";
@@ -2872,6 +2955,10 @@
 				APP_DISPLAY_NAME = "$(APP_DISPLAY_NAME)";
 				ASSETCATALOG_COMPILER_APPICON_NAME = "$(APP_ICON)";
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
+				ASSETCATALOG_COMPILER_INCLUDE_STICKER_CONTENT = YES;
+				ASSETCATALOG_COMPILER_STANDALONE_ICON_BEHAVIOR = all;
+				ASSETCATALOG_COMPILER_TARGET_STICKERS_ICON_ROLE = "host-app";
 				BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER)";
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
 				CODE_SIGN_ENTITLEMENTS = FreeAPSWatch/FreeAPSWatch.entitlements;
@@ -2880,6 +2967,7 @@
 				DEVELOPMENT_TEAM = "$(DEVELOPER_TEAM)";
 				GENERATE_INFOPLIST_FILE = YES;
 				IBSC_MODULE = FreeAPSWatch_WatchKit_Extension;
+				INFOPLIST_FILE = FreeAPSWatch/Info.plist;
 				INFOPLIST_KEY_CFBundleDisplayName = iAPS;
 				INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
 				INFOPLIST_KEY_WKCompanionAppBundleIdentifier = "$(BUNDLE_IDENTIFIER)";

+ 6 - 6
FreeAPS.xcworkspace/xcshareddata/swiftpm/Package.resolved

@@ -6,8 +6,8 @@
         "repositoryURL": "https://github.com/krzyzanowskim/CryptoSwift",
         "state": {
           "branch": null,
-          "revision": "039f56c5d7960f277087a0be51f5eb04ed0ec073",
-          "version": "1.5.1"
+          "revision": "19b3c3ceed117c5cc883517c4e658548315ba70b",
+          "version": "1.6.0"
         }
       },
       {
@@ -51,8 +51,8 @@
         "repositoryURL": "https://github.com/SwiftKickMobile/SwiftMessages",
         "state": {
           "branch": null,
-          "revision": "1e49de7b3780b69927bc3e61903d8ec0693a3dc5",
-          "version": "9.0.5"
+          "revision": "b29dd21090b708aa0ae9ecbaf6e2d0487028dc3f",
+          "version": "9.0.6"
         }
       },
       {
@@ -60,8 +60,8 @@
         "repositoryURL": "https://github.com/Swinject/Swinject",
         "state": {
           "branch": null,
-          "revision": "f10b6e9ebff440f985c43008f7c2d097639fcb81",
-          "version": "2.8.1"
+          "revision": "8bc503e60965298984fb58cf47b71c541449fe2a",
+          "version": "2.8.3"
         }
       }
     ]

二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024 1.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024 2.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/1024.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/128.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/16.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/256.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/32.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/512.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/64.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon117x117@2x.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon129x129@2x.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon33x33@2x.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon46x46@2x.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon51x51@2x.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon54x54@2x.png


+ 0 - 80
FreeAPS/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,80 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "1024 1.png",
-      "idiom" : "universal",
-      "platform" : "ios",
-      "size" : "1024x1024"
-    },
-    {
-      "filename" : "16.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "16x16"
-    },
-    {
-      "filename" : "32.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "16x16"
-    },
-    {
-      "filename" : "32.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "32x32"
-    },
-    {
-      "filename" : "64.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "32x32"
-    },
-    {
-      "filename" : "128.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "128x128"
-    },
-    {
-      "filename" : "256.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "128x128"
-    },
-    {
-      "filename" : "256.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "256x256"
-    },
-    {
-      "filename" : "512.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "256x256"
-    },
-    {
-      "filename" : "512.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "512x512"
-    },
-    {
-      "filename" : "1024.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "512x512"
-    },
-    {
-      "filename" : "1024 2.png",
-      "idiom" : "universal",
-      "platform" : "watchos",
-      "size" : "1024x1024"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1024 1.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1024.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-1025.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-128.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-16.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-256.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-257.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-32.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-33.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-512.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-513.png


二進制
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/1024_-64.png


+ 0 - 80
FreeAPS/Resources/Assets.xcassets/AppIcon_BW.appiconset/Contents.json

@@ -1,80 +0,0 @@
-{
-  "images" : [
-    {
-      "filename" : "1024_-1024.png",
-      "idiom" : "universal",
-      "platform" : "ios",
-      "size" : "1024x1024"
-    },
-    {
-      "filename" : "1024_-16.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "16x16"
-    },
-    {
-      "filename" : "1024_-32.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "16x16"
-    },
-    {
-      "filename" : "1024_-33.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "32x32"
-    },
-    {
-      "filename" : "1024_-64.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "32x32"
-    },
-    {
-      "filename" : "1024_-128.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "128x128"
-    },
-    {
-      "filename" : "1024_-256.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "128x128"
-    },
-    {
-      "filename" : "1024_-257.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "256x256"
-    },
-    {
-      "filename" : "1024_-512.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "256x256"
-    },
-    {
-      "filename" : "1024_-513.png",
-      "idiom" : "mac",
-      "scale" : "1x",
-      "size" : "512x512"
-    },
-    {
-      "filename" : "1024_-1025.png",
-      "idiom" : "mac",
-      "scale" : "2x",
-      "size" : "512x512"
-    },
-    {
-      "filename" : "1024_-1024 1.png",
-      "idiom" : "universal",
-      "platform" : "watchos",
-      "size" : "1024x1024"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

二進制
FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Cat2 1.png


二進制
FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Cat2.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/catWithPod.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "Cat2.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "Cat2 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 20 - 0
FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "catWithPodWhiteBG1024x1024.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "catWithPodWhiteBG1024x1024 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/catWithPodWhiteBG1024x1024 1.png


二進制
FreeAPS/Resources/Assets.xcassets/catWithPodWhiteBG.appiconset/catWithPodWhiteBG1024x1024.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Text.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Text 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/iAPS Text 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS.appiconset/iAPS Text.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Icon2.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Icon2 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/iAPS Icon2 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Black.appiconset/iAPS Icon2.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Icon4.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Icon4 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/iAPS Icon4 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Black_Black.appiconset/iAPS Icon4.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "Logo_Pink.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "Logo_Pink 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Logo_Pink 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Clean.appiconset/Logo_Pink.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Icon1.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Icon1 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/iAPS Icon1 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Glow_BG.appiconset/iAPS Icon1.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Pump_Bevel.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_Bevel 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/iAPS Pump_Bevel 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray.appiconset/iAPS Pump_Bevel.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Pump_Black.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_Black 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/iAPS Pump_Black 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_Flat.appiconset/iAPS Pump_Black.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Pump_Bevel2_Black.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_Bevel2_Black 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/iAPS Pump_Bevel2_Black 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Gray_No_Buttons_BBG.appiconset/iAPS Pump_Bevel2_Black.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "imageLoop.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "imageLoop 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/imageLoop 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop.appiconset/imageLoop.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "LoopWhite.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "LoopWhite 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/LoopWhite 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Cyan_Text.appiconset/LoopWhite.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "image.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "image 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/image 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_Text.appiconset/image.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "LoopWhite.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "LoopWhite 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/LoopWhite 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Loop_White_Text.appiconset/LoopWhite.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS_NoButtons_Gray1024x1024.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_Bevel2_Transparent.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/iAPS Pump_Bevel2_Transparent.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_NoButtons_Gray_White_BG.appiconset/iAPS_NoButtons_Gray1024x1024.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Pump_FlatGradient.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_FlatGradient 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/iAPS Pump_FlatGradient 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Purple.appiconset/iAPS Pump_FlatGradient.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Icon3.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Icon3 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/iAPS Icon3 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_Purple_BG.appiconset/iAPS Icon3.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Pump_White.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Pump_White 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/iAPS Pump_White 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_WhiteAndGray.appiconset/iAPS Pump_White.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "iAPS Icon5.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "iAPS Icon5 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/iAPS Icon5 1.png


二進制
FreeAPS/Resources/Assets.xcassets/iAPS_White_BG.appiconset/iAPS Icon5.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "Pod2.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "Pod2 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Pod2 1.png


二進制
FreeAPS/Resources/Assets.xcassets/podPurple.appiconset/Pod2.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "pod4.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "pod4 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

二進制
FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/pod4 1.png


二進制
FreeAPS/Resources/Assets.xcassets/podTemplateBlack.appiconset/pod4.png


+ 20 - 0
FreeAPS/Resources/Assets.xcassets/podTemplateWhite.appiconset/Contents.json

@@ -0,0 +1,20 @@
+{
+  "images" : [
+    {
+      "filename" : "Pod3.png",
+      "idiom" : "universal",
+      "platform" : "ios",
+      "size" : "1024x1024"
+    },
+    {
+      "filename" : "Pod3 1.png",
+      "idiom" : "universal",
+      "platform" : "watchos",
+      "size" : "1024x1024"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 0 - 0
FreeAPS/Resources/Assets.xcassets/podTemplateWhite.appiconset/Pod3 1.png


部分文件因文件數量過多而無法顯示