Skip to content

Commit

Permalink
Release 4.2.1 (Artificial-Pancreas#728)
Browse files Browse the repository at this point in the history
Resolved issues:
1. Artificial-Pancreas#711.
2. Artificial-Pancreas#712.
3. Artificial-Pancreas#705, by @yurique 
4. Artificial-Pancreas@dc733d9, by @scrappy 
5. Artificial-Pancreas#720, by @bastiaanv 

Miscellaneous:
6. Remove extra characters in pop-up.
7. Remove requirement having a NS URL.
8. Use autosens min/max limits also for eventual dynamic basal adjustments.
9. More logging.

Translations:
Thank you Hung Nguyen Phuteleco!

Co-authored-by: yurique <i@yurique.com>
Co-authored-by: Marc G. Fournier <scrappy@hub.org>
Co-authored-by: Bastiaan Verhaar <3987804+bastiaanv@users.noreply.github.com>
  • Loading branch information
4 people authored Jun 2, 2024
1 parent f0a74dd commit 570ded7
Show file tree
Hide file tree
Showing 24 changed files with 109 additions and 86 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Title text for the button to remove a CGM from Loop */
"Glucose" = "Đường huyết";

/* Describes a glucose value adjusted to reflect a recent calibration */
"Glucose (Adjusted)" = "Đường huyết (Được điều chỉnh)";
"Glucose (Adjusted)" = "Đường huyết (Đã điều chỉnh)";

/* Section title for latest glucose calibration */
"Latest Calibration" = "Lần hiệu chỉnh gần nhất";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"Qub-6B-0aB.headerTitle" = "Số ID của Transmitter";

/* Class = "UITableViewSection"; footerTitle = "Data can be downloaded over the Internet from Share when the transmitter connection fails."; ObjectID = "k1N-Rg-XDy"; */
"k1N-Rg-XDy.footerTitle" = "Dữ liệu có thể được tải xuống qua đường truyền Internet trên ứng dụng Share khi kết nối với transmitter bị đứt.";
"k1N-Rg-XDy.footerTitle" = "Dữ liệu có thể được tải xuống qua Internet từ Chia sẻ khi kết nối bộ phát không thành công.";

/* Class = "UITableViewSection"; headerTitle = "Dexcom Share"; ObjectID = "k1N-Rg-XDy"; */
"k1N-Rg-XDy.headerTitle" = "Dữ liệu từ Dexcom Share";
Expand Down
6 changes: 3 additions & 3 deletions Dependencies/G7SensorKit/vi.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

"Time" = "Thời gian";

"Trend" = "Xu hướng Glucose";
"Trend" = "Xu hướng";

"Bluetooth" = "Bluetooth";

Expand All @@ -64,7 +64,7 @@
"Connecting" = "Đang kết nối";

/* title for g7 settings row showing sensor last connect time */
"Last Connect" = "Kết nối gần đây nhất";
"Last Connect" = "Kết nối mới nhất";

/* Configuration */
"Configuration" = "Cấu hình";
Expand Down Expand Up @@ -111,7 +111,7 @@
"Grace period remaining" = "Thời gian gia hạn còn lại";

/* G7 Status highlight text for searching for sensor */
"Searching for\nSensor" = "Đang tìm kiếm \n sensor";
"Searching for\nSensor" = "Đang tìm kiếm\ncảm biến";

/* G7 Status highlight text for sensor expired */
"Sensor\nExpired" = "Sensor\n hết hạn";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"Alkaline" = "Alkaline";

/* The format string description of a BasalProfileStartPumpEvent. (1: The index of the profile)(2: The basal rate) */
"Basal Profile %1$@: %2$@ U/hour" = "Hồ sơ Basal %1$@: %2$@ U/giờ";
"Basal Profile %1$@: %2$@ U/hour" = "Hồ sơ liều Basal %1$@: %2$@ U/giờ";

/* Pump error code when bolus is in progress */
"Bolus in progress" = "Liều Bolus đang được thực hiện";
Expand All @@ -23,19 +23,19 @@
"Command refused" = "Lệnh bị từ chối";

/* No comment provided by engineer. */
"Comms with another pump detected" = "Comms cho bơm khác được phát hiện.";
"Comms with another pump detected" = "Liên lạc cho bơm khác được phát hiện.";

/* Error description */
"Decoding Error" = "Đang giải mã bị lỗi";
"Decoding Error" = "Lỗi giải mã";

/* Error description */
"Device Error" = "Thiết bị lỗi";
"Device Error" = "Lỗi thiết bị";

/* Describing the pump history insulin data source */
"Event History" = "Lược sử tác vụ trước đó";

/* Format string for failure reason. (1: The operation being performed) (2: The response data) */
"Invalid response during %1$@: %2$@" = "Phản ứng không phù hợp trong khoảng %1$@: %2$@";
"Invalid response during %1$@: %2$@" = "Phản hồi không xác định trong %1$@: %2$@";

/* Describing the battery chemistry as Lithium */
"Lithium" = "Lithium";
Expand All @@ -44,7 +44,7 @@
"Make sure your RileyLink is nearby and powered on" = "Đảm bảo RileyLink bên cạnh và đã được bật";

/* Pump error code describing max setting exceeded */
"Max setting exceeded" = "Cài đặt tối đa vượt giới hạn";
"Max setting exceeded" = "Đã vượt quá cài đặt tối đa";

/* Pump title (1: model number) */
"Minimed %@" = "Minimed %@";
Expand All @@ -59,7 +59,7 @@
"Pump did not respond" = "Bơm không phản hồi";

/* Error description */
"Pump Error" = "Bơm lỗi";
"Pump Error" = "Lỗi bơm";

/* No comment provided by engineer. */
"Pump is suspended" = "Bơm đang tạm ngưng";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"Best Frequency" = "Tần số tối ưu";

/* The format string describing pump bolusing state: (1: bolusing) */
"Bolusing: %1$@\n" = "Đang tiêm liều bolus: %1$@\n";
"Bolusing: %1$@\n" = "Đang thực hiện bolus %1$@\n";

/* Cancel button title */
"Cancel" = "Hủy bỏ";
Expand Down
14 changes: 7 additions & 7 deletions Dependencies/OmniBLE/Localizations/vi.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"Low Reservoir" = "Sắp hết thuốc";

/* Alert content title for suspendInProgress pod alert */
"Suspend In Progress Reminder" = "Suspend In Progress Reminder";
"Suspend In Progress Reminder" = "Tạm dừng lời nhắc đang tiến hành";

/* Alert content title for suspendEnded pod alert */
"Resume Insulin" = "Tiếp tục lại việc tiêm insulin";
Expand All @@ -45,7 +45,7 @@
"%1$@ insulin or less remaining in Pod. Change Pod soon." = "%1$@ insulin hoặc ít hơn còn lại trong Pod. Thay Pod ngay.";

/* Alert content body for suspendInProgress pod alert */
"Suspend In Progress Reminder" = "Suspend In Progress Reminder";
"Suspend In Progress Reminder" = "Tạm dừng lời nhắc đang tiến hành";

/* Alert content body for suspendEnded pod alert */
"The insulin suspension period has ended.\n\nYou can resume delivery from the banner on the home screen or from your pump settings screen. You will be reminded again in 15 minutes." = "Thời gian tạm ngưng insulin đã kết thúc.\n\n Bạn có thể phục hồi việc tiêm thuốc từ màn hình chính hoặc từ màn hình cài đặt bơm. Sẽ có thông báo nhắc trong vòng 15 phút.";
Expand Down Expand Up @@ -388,7 +388,7 @@
"Failed to Suspend Insulin Delivery" = "Thất bại khi tạm dừng liều insulin";

/* Alert title for resume error */
"Failed to Resume Insulin Delivery" = "Không thể tiêm insulin trở lại";
"Failed to Resume Insulin Delivery" = "Không thể tiếp tục cung cấp insulin";

/* Alert title for time sync error */
"Failed to Set Pump Time" = "Không thể cài đặt thời gian cho bơm";
Expand All @@ -406,7 +406,7 @@
"Deactivate Pod" = "Hủy kích hoạt Pod";

/* */
"Slide to Insert Cannula" = "Trượt để chèn ống thông";
"Slide to Insert Cannula" = "Trượt để chèn Cannula";

/* */
"Slide to Deactivate Pod" = "Trượt để vô hiệu hóa Pod";
Expand All @@ -415,7 +415,7 @@
"Deactivating." = "Đang hủy kích hoạt.";

/* Deactivate pod action button accessibility label when deactivation complete */
"Pod deactivated successfully. Continue." = "Pod hủy kích hoạt thành công. Tiếp tục.";
"Pod deactivated successfully. Continue." = "Đã huỷ kích hoạt Pod thành công. Tiếp tục.";

/* Action button description for deactivate after failed attempt */
"Retry" = "Thử lại";
Expand All @@ -424,7 +424,7 @@
"Continue" = "Tiếp tục";

/* Format string for recovery suggestion during deactivate pod. */
"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Đã xảy ra sự cố khi giao tiếp với Pod. Nếu sự cố này vẫn tiếp diễn, hãy nhấn vào Discard Pod. Sau đó, bạn có thể kích hoạt Pod mới.";
"There was a problem communicating with the pod. If this problem persists, tap Discard Pod. You can then activate a new Pod." = "Đã xảy ra sự cố khi giao tiếp với Pod. Nếu sự cố này vẫn tiếp diễn, hãy nhấn vào Loại bỏ pod. Sau đó, bạn có thể kích hoạt Pod mới.";

/* Text for discard pod button */
"Discard Pod" = "Loại bỏ pod";
Expand Down Expand Up @@ -623,7 +623,7 @@
"Rate" = "Tỷ lệ";

/* Insulin unit per hour */
"U/hr" = "U/giờ";
"U/hr" = "U/hr";

/* Summary string for temporary basal rate configuration page */
"%1$@ for %2$@" = "%1$@ cho %2$@";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
"Disabled" = "Vô hiệu hóa";

/* Description for Empty reservoir pod fault */
"Empty reservoir" = "Ngăn chứa insulin rỗng";
"Empty reservoir" = "Hết insulin";

/* Error message shown when empty response from pod was received */
"Empty response from pod" = "Không có phản hồi từ pod";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -666,7 +666,7 @@
"Sync to Current Time" = "Đồng bộ thời gian hiện tại";

/* Title of button to sync basal profile from pod */
"Sync With Pod" = "Sync với Pod";
"Sync With Pod" = "Đồng bộ dữ liệu với pod";

/* Label text for step one of insert cannula instructions */
"Tap below to start cannula insertion." = "Chạm phía dưới để bắt đầu gắn cannula.";
Expand Down Expand Up @@ -696,7 +696,7 @@
"The App notifies you when the amount of insulin in the Pod reaches this level." = "Ứng dụng nhắc nhở bạn khi lượng insulin trong pod đạt đến mức này.";

/* Description text for critical alerts */
"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Lời nhắc ở trên sẽ không phát ra âm thanh nếu thiết bị của bạn ở trạng thái Silent hoặc Do Not Disturb.\n\n Có nhiều cách cảnh báo khác nhau phát ra âm thanh ngay cả khi thiết bị của bạn ở trạng thái Silent hoặc Do Not Disturb.";
"The reminders above will not sound if your device is in Silent or Do Not Disturb mode.\n\nThere are other critical Pod alerts and alarms that will sound even if your device is set to Silent or Do Not Disturb mode." = "Lời nhắc ở trên sẽ không phát ra âm thanh nếu thiết bị của bạn ở trạng thái Silent hoặc Do Not Disturb.\n\n Có nhiều cách cảnh báo khác nhau phát ra âm thanh ngay cả khi thiết bị của bạn ở trạng thái im lặng hoặc không làm phiền.";

/* Message for pod sync time action sheet */
"The time on your pump is different from the current time. Do you want to update the time on your pump to the current time?" = "Thời gian trên máy bơm của bạn khác với thời gian hiện tại. Bạn có muốn cập nhật thời gian trên máy bơm của mình đến thời điểm hiện tại không?";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,5 +62,5 @@
"minimumSMB": 0.3,
"useInsulinBars": false,
"uploadVersion": true,
"birtDate": new Date()
"birthDate": Date.distantPast
}
2 changes: 1 addition & 1 deletion FreeAPS/Sources/APS/APSManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1207,7 +1207,7 @@ final class BaseAPSManager: APSManager, Injectable {
Variance: variance
),
id: getIdentifier(),
dob: settingsManager.settings.birtDate,
dob: settingsManager.settings.birthDate,
sex: settingsManager.settings.sexSetting
)
storage.save(dailystat, as: file)
Expand Down
2 changes: 1 addition & 1 deletion FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ final class OpenAPS {
insertedResons += ", Dynamic ISF/CR: On/Off"
}
if let tddFactor = readMiddleware(json: profile, variable: "tdd_factor"), tddFactor.count > 1 {
insertedResons += ", Basal Adjustment: \(tddFactor)"
insertedResons += ", Basal Adjustment: \(tddFactor.suffix(max(tddFactor.count - 6, 0)))"
}

insertedResons += tddString
Expand Down
13 changes: 13 additions & 0 deletions FreeAPS/Sources/Helpers/UIDevice+Extensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ extension UIDevice {

func mapToDevice(identifier: String) -> String {
switch identifier {
case "iPhone10,1":
return "iPhone 8"
case "iPhone10,2":
return "iPhone 8 Plus"
case "iPhone10,4":
return "iPhone 8"
case "iPhone10,5":
Expand Down Expand Up @@ -59,6 +63,15 @@ extension UIDevice {
return "iPhone 14 Pro"
case "iPhone15,3":
return "iPhone 14 Pro Max"
case "iPhone15,4":
return "iPhone 15"
case "iPhone15,5":
return "iPhone 15 Plus"

case "iPhone16,1":
return "iPhone 15 Pro"
case "iPhone16,2":
return "iPhone 15 Pro Max"

default:
return identifier
Expand Down
14 changes: 7 additions & 7 deletions FreeAPS/Sources/Localizations/Main/vi.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@
"Duration" = "Duration";

/* */
"Enact Temp Target" = "Chấp nhận mục tiêu tạm thời";
"Enact Temp Target" = "Hủy bỏ mục tiêu tạm thời";

/* */
"Target" = "Mục tiêu";
Expand Down Expand Up @@ -263,7 +263,7 @@
"Run now" = "Chạy ngay";

/* */
"Last run" = "Chạy lần trước";
"Last run" = "Lần chạy gần nhất";

/* */
"Sensitivity" = "Độ nhạy";
Expand Down Expand Up @@ -393,7 +393,7 @@ Enact a temp Basal or a temp target */
"Allow Remote control of iAPS" = "Cho phép điều khiển iAPS từ xa";

/* Imported Profiles Alert */
"\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 iAPS Settings > Configuration.\n\nBad or invalid profile settings could have disatrous effects." = "\n Bây giờ xin hãy xác minh lại tất cả các cài đặt của bạn kỹ lưỡng:\n\n* Cài đặt liều nền\n * Tỷ lệ Carb\n * Mục tiêu đường huyết \n * Độ nhạy của Insulin\n * Thời gian hoạt động của insulin\n\n trong iAPS Cài đặt > Cấu hình.\n\n Cấu hình không hợp lệ hoặc tồi có thể có tác động thảm họa.";
"\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 iAPS Settings > Configuration.\n\nBad or invalid profile settings could have disatrous effects." = "\n Bây giờ xin hãy xác minh lại tất cả các cài đặt của bạn kỹ lưỡng:\n\n* Basal Settings\n * Carb Ratios\n * Glucose Targets\n * Insulin Sensitivities\n * DIA\n\n trong iAPS Cài đặt > Cấu hình.\n\n Cấu hình không hợp lệ hoặc tồi có thể có tác động thảm họa.\n.";

/* Profile Import Alert */
"This will replace some or all of your current pump settings. Are you sure you want to import profile settings from Nightscout?" = "Việc này có thể thay thế một vài hoặc tất cả những cấu hình bơm hiện tại của bạn. Bạn có chắc bạn muốn nhập cấu hình từ Nightscout?";
Expand Down Expand Up @@ -684,7 +684,7 @@ Enact a temp Basal or a temp target */
"mg/dL" = "mg/dL";

/* */
"Add calibration" = "Thêm kết quả hiệu chuẩn";
"Add calibration" = "Thêm hiệu chuẩn";

/* When adding capillary glucose meater reading */
"Meter glucose" = "Máy đo đường huyết";
Expand Down Expand Up @@ -834,7 +834,7 @@ Enact a temp Basal or a temp target */
"Snooze Alerts" = "Báo lại cảnh báo";

/* */
"Last measurement" = "Lần đo cuối cùng";
"Last measurement" = "Lần đo gần nhất";

/* */
"Sensor Footer checksum" = "Tổng kiểm tra cảm biến";
Expand Down Expand Up @@ -2099,7 +2099,7 @@ Enact a temp Basal or a temp target */
"DeltaContactValue" = "Chênh lệch";

/* Contact Image, settings, Trend (data to display) */
"TrendContactValue" = "Xu hướng Glucose";
"TrendContactValue" = "Xu hướng";

/* Contact Image, settings, Last loop time (data to display) */
"LastLoopTimeContactValue" = "Thời gian vòng lặp cuối cùng";
Expand Down Expand Up @@ -2137,7 +2137,7 @@ Enact a temp Basal or a temp target */
"Defaults to false. When set to true, can lower sensitivity (higher sensitivity ratio) for temptargets <= 99. The lower your temp target below 100 will result in less sensitive (higher) ratios, e.g., temp target of 95 results in sensitivity ratio of 1.09, while 85 results in 1.33 (with default halfBasalTarget of 160)." = "Mặc định là False. Khi được đặt thành True, có thể giảm độ nhạy (tỷ lệ độ nhạy cao hơn) cho mục tiêu tạm thời <= 99. Mục tiêu tạm thời của bạn càng thấp dưới 100 sẽ dẫn đến tỷ lệ kém nhạy hơn (cao hơn), ví dụ: mục tiêu tạm thời là 95 dẫn đến tỷ lệ độ nhạy là 1,09, trong khi 85 kết quả là 1,33 (với Một nửa mục tiêu cơ bản mặc định là 160).";

/* Headline ”Sensitivity Raises Target" */
"Sensitivity Raises Target" = "Sensitivity Raises Target";
"Sensitivity Raises Target" = "Độ nhạy tăng mục tiêu";

/* ”Sensitivity Raises Target" */
"When true, raises BG target when autosens detects sensitivity" = "Khi True, tăng mục tiêu BG khi cảm biến tự động phát hiện độ nhạy";
Expand Down
6 changes: 3 additions & 3 deletions FreeAPS/Sources/Models/FreeAPSSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ struct FreeAPSSettings: JSON, Equatable {
var useInsulinBars: Bool = false
var disableCGMError: Bool = true
var uploadVersion: Bool = true
var birtDate = Date.now
var birthDate = Date.distantPast
// var sex: Sex = .secret
var sexSetting: Int = 3
}
Expand Down Expand Up @@ -332,8 +332,8 @@ extension FreeAPSSettings: Decodable {
settings.uploadVersion = uploadVersion
}

if let birtDate = try? container.decode(Date.self, forKey: .birtDate) {
settings.birtDate = birtDate
if let birthDate = try? container.decode(Date.self, forKey: .birthDate) {
settings.birthDate = birthDate
}

if let sexSetting = try? container.decode(Int.self, forKey: .sexSetting) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,15 @@ extension AutotuneConfig {
.foregroundColor(.red)
}

Section {
Button {
replaceAlert = true
}
label: { Text("Save as your Normal Basal Rates") }
} header: {
Text("Save on Pump")
}
/*
Section {
Button {
replaceAlert = true
}
label: { Text("Save as your Normal Basal Rates") }
} header: {
Text("Save on Pump")
}*/
}
}
.dynamicTypeSize(...DynamicTypeSize.xxLarge)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@ extension ContactTrick {
private let processQueue = DispatchQueue(label: "ContactTrickProvider.processQueue")

var contacts: [ContactTrickEntry] {
storage.retrieve(OpenAPS.Settings.contactTrick, as: [ContactTrickEntry].self)
?? [ContactTrickEntry](from: OpenAPS.defaults(for: OpenAPS.Settings.contactTrick))
?? []
contactTrickManager.currentContacts
}

func saveContacts(_ contacts: [ContactTrickEntry]) -> AnyPublisher<[ContactTrickEntry], Error> {
Expand Down
Loading

0 comments on commit 570ded7

Please sign in to comment.