Skip to content

Commit

Permalink
Merge branch 'NightscoutFoundation:master' into Navid_2023_09_11
Browse files Browse the repository at this point in the history
  • Loading branch information
Navid200 authored Oct 6, 2023
2 parents ead6c35 + 1a9d941 commit 87f8475
Show file tree
Hide file tree
Showing 24 changed files with 278 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public static void updateAge(final String transmitterId, final int dexTimeStamp,
if (dexTimeStamp < 1) {
UserError.Log.e(TAG, "Invalid dex timestamp in updateAge: " + dexTimeStamp);
if (dexTimeStamp == 0 && absolute) {
if (FirmwareCapability.isTransmitterRawIncapable(getTransmitterID())) { // Firefly, which cannot be hard reset
if (FirmwareCapability.isTransmitterStandardFirefly(getTransmitterID())) { // Firefly, which cannot be hard reset
UserError.Log.e(TAG, "Your transmitter clock has stopped or never started.");
} else {
DexResetHelper.offer("Your transmitter clock has stopped or never started. Do you want to hard reset it?");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ public static boolean isTransmitterModified(final String tx_id) {
return false;
}

public static boolean isTransmitterStandardFirefly(final String tx_id) { // Firefly that has not been modified
if (!isTransmitterModified(tx_id) && isTransmitterRawIncapable(tx_id)) {
return true;
}
return false;
}

public static boolean isTransmitterG5(final String tx_id) {
return isG5Firmware(getRawFirmwareVersionString(tx_id));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -770,7 +770,7 @@ public static boolean doGetData(Ob1G5CollectionService parent, RxBleConnection c
if (session_start.isFubar()) {
final long tk = DexTimeKeeper.getDexTime(getTransmitterID(), tsl());
if (tk > 0) {
if (FirmwareCapability.isTransmitterRawIncapable(getTransmitterID())) {// Firefly, which cannot be hard reset
if (FirmwareCapability.isTransmitterStandardFirefly(getTransmitterID())) {// Firefly, which cannot be hard reset
UserError.Log.e(TAG, "Unusual session start failure");
} else {
DexResetHelper.offer("Unusual session start failure, is transmitter crashed? Try Hard Reset?");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ public static void migrateOOP2CalibrationPreferences() {
private static void legacySettingsFix() {
Pref.setBoolean("use_ob1_g5_collector_service", true);
Pref.setBoolean("ob1_g5_fallback_to_xdrip", false);
Pref.setBoolean("always_unbond_G5", false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@

import com.eveningoutpost.dexdrip.adapters.ObservableArrayMapNoNotify;

import lombok.val;

/**
* Created by jamorham on 05/10/2017.
*
* <p>
* Implementation of PrefsView
*/

Expand All @@ -15,12 +17,14 @@ public class PrefsViewImpl extends ObservableArrayMapNoNotify<String, Boolean> i
private Runnable runnable;

public boolean getbool(String name) {
return Pref.getBooleanDefaultFalse(name);
if (name == null) return false;
return PrefHandle.parse(name).getBoolean();
}

public void setbool(String name, boolean value) {
Pref.setBoolean(name, value);
super.put(name, value);
val handle = PrefHandle.parse(name);
Pref.setBoolean(handle.key, value);
super.put(handle.key, value);
doRunnable();
}

Expand All @@ -42,27 +46,57 @@ private void doRunnable() {
@NonNull
@Override
public Boolean get(Object key) {
Boolean value = super.get(key);
val handle = PrefHandle.parse((String) key);
Boolean value = super.get(handle.key);
if (value == null) {
value = getbool((String) key);
super.putNoNotify((String) key, value);
super.putNoNotify(handle.key, value);
}
return value;
}

@Override
public Boolean put(String key, Boolean value) {
if (!(super.get(key).equals(value))) {
Pref.setBoolean(key, value);
super.put(key, value);
val handle = PrefHandle.parse(key);
if (!(super.get(handle.key).equals(value))) {
Pref.setBoolean(handle.key, value);
super.put(handle.key, value);
doRunnable();
}
return value;
}

public void put(Object key, boolean value) {
if (!(super.get(key).equals(value))) {
super.put((String) key, value);
val handle = PrefHandle.parse((String) key);
if (!(super.get(handle.key).equals(value))) {
super.put(handle.key, value);
}
}

public static class PrefHandle {
public final String key;
public final boolean defaultValue;

public PrefHandle(final String key, final boolean defaultValue) {
this.key = key;
this.defaultValue = defaultValue;
}

boolean getBoolean() {
return Pref.getBoolean(key, defaultValue);
}

public static PrefHandle parse(final String identifier) {
if (identifier == null) {
return null;
}

final String[] parts = identifier.split(":", 2);
if (parts.length == 2) {
return new PrefHandle(parts[0], Boolean.parseBoolean(parts[1]));
} else {
return new PrefHandle(identifier, false);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,9 @@ public static void checkForAnUpdate(final Context context, final boolean fromUi)
}
} else {
Log.i(TAG, "Our current version is the most recent: " + versionnumber + " vs " + newversion);
if (fromUi) { // Only for manual update check
JoH.static_toast_long(xdrip.gs(R.string.current_version_is_up_to_date));
}
}
} catch (Exception e) {
Log.e(TAG, "Got exception parsing update version: " + e.toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2457,6 +2457,7 @@ public void run() {
private void removeLegacyPreferences() {
// removePreferenceFromCategory("use_ob1_g5_collector_service", "ob1_options");
// removePreferenceFromCategory("ob1_g5_fallback_to_xdrip", "ob1_options");
// removePreferenceFromCategory("always_unbond_G5", "ob1_options");
}

private void removePreferenceFromCategory(final String preference, final String category) {
Expand Down
65 changes: 65 additions & 0 deletions app/src/main/res/values-ar/strings-ar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
<string name="pref_title_broadcast_enabled">البث محليا</string>
<string name="title_activity_share_test">مشاركة الاختبار</string>
<!-- pebble settings -->
<string name="pref_summary_display_trend">إظهار اتجاه قراءة السكر على وجه الساعة.</string>
<string name="pref_pebble_display_high_line">عرض خط الارتفاع</string>
<string name="pref_pebble_display_low_line">عرض خط الانخفاض</string>
<!-- Amazfit Settings -->
Expand All @@ -91,6 +92,7 @@
<string name="taskerConfiguration">Tasker Configuration</string>
<string name="add_widget">اضافة تطبيق مصغر</string>
<string name="title_activity_alert_list">قائمة التنبيه</string>
<string name="speaktreatment">نطق العلاج</string>
<string name="title_activity_update">تحديث xDrip+ متوفر</string>
<string name="title_activity_display_qrcode">مشاركة الإعدادات بواسطة رمز QR</string>
<string name="title_activity_send_feed_back">إرسال ملاحظات إلى Jamorham</string>
Expand Down Expand Up @@ -170,61 +172,124 @@
<string name="extrapolate_data_to_try_to_predict_lows">استخراج البيانات لمحاولة التنبؤ بانخفاض</string>
<string name="other_xdrip_plus_alerts">تنبيهات xDrip+ الأخرى</string>
<string name="xdrip_plus_display_settings">إعدادات عرض xDrip+</string>
<string name="display_customisations">تخصيصات العرض</string>
<string name="insulin_carb_ratios_etc_for_models">إنسولين، نسب كارب إلخ للنماذج</string>
<string name="grams_of_carbohydrate_one_unit_covers">غرام من الكاربوهيدرات يغطي وحدة واحدة</string>
<string name="carb_absorption_rate">معدل امتصاص الكارب</string>
<string name="add_calibration">إضافة معايرة</string>
<string name="system_status">حالة النظام</string>
<string name="settings">الإعدادات</string>
<string name="cannot_calibrate_right_now">لا يمكن المعايرة الآن</string>
<string name="hardware_data_source">مصدر البيانات</string>
<string name="enter_ten_character_dexcom_receiver_serial">ادخل الرقم التسلسلي الخاص بمستقبل ديكسكوم (10 أحرف)</string>
<string name="data_source_settings">إعدادات مصدر البيانات</string>
<string name="smart_watch_features">خصائص الساعة الذكية</string>
<string name="pref_show_treatments">اظهار المعالجة</string>
<string name="pref_summary_show_treatments">اظهار المعالجة في الرسم البياني</string>
<string name="history">السجل</string>
<string name="statistics">الإحصائيات</string>
<string name="snooze_alert">تنبيه الغفوة</string>
<string name="less_common_settings">إعدادات أقل شيوعاً</string>
<string name="view_recent_errors_warnings">عرض الأخطاء/التنبيهات الأخيرة</string>
<string name="other_settings">إعدادات أخرى</string>
<string name="speak_readings">تحدث القراءات</string>
<string name="manage_followers">إدارة المتابعين</string>
<string name="manage_existing_followers">إدارة متابعيك الحاليين ودعوة أشخاص جدد.</string>
<string name="invite_follower">دعوة متابع</string>
<string name="glucose_calibration_and_other_alerts">مستوى السكر ، المعايرة، والتنبيهات الأخرى</string>
<string name="smart_alerting">التنبيه الذكي</string>
<string name="dont_alarm_during_phone_calls">لا تفعل التنبيه أثناء المكالمات الهاتفية.</string>
<string name="start_snoozed">بدء غفوة</string>
<string name="reset">إعادة تعيين</string>
<string name="pebble_and_android_wear_options">خيارات لساعات مختلفة</string>
<string name="customize_colours">تخصيص الألوان</string>
<string name="xdrip_plus_color_settings">إعدادات عرض xDrip+</string>
<string name="high_glucose_values">قيم السكر المرتفعة</string>
<string name="in_range_glucose_values">قيم السكر في النطاق المطلوب</string>
<string name="default_color_selected">اللون الافتراضي المحدد</string>
<string name="color_bg_values">ألوان قراءات سكر الدم وأسهم الاتجاه</string>
<string name="xdrip_plus_extra_settings">إعدادات xDrip+ إضافية</string>
<string name="treatments_prediction_curves">العلاج / منحنيات التنبؤات</string>
<string name="carbs_per_unit">كربوهيدرات لكل وحدة</string>
<string name="everyday">كل يوم</string>
<string name="insulin_sensitivity_glucose_drop_per_unit">معامل حساسية الإنسولين: خفض السكر لكل وحدة</string>
<string name="transmitter_battery">بطارية جهاز الإرسال</string>
<string name="very_low">منخفض جدا</string>
<string name="low">منخفض</string>
<string name="space_units">" وحدات"</string>
<string name="units">وحدات</string>
<string name="carbs">كربوهيدرات</string>
<string name="speak_your_treatment">قراءة معالجتك مثال: س وحدات الإنسولين / ص غرام نشويات</string>
<string name="speech_recognition_is_not_supported">تسجيل الحديث غير مدعوم</string>
<string name="treatment_note">ملاحظة معالجة</string>
<string name="exported_to">"تصدير إلى "</string>
<string name="done">تم</string>
<string name="entering_a_calibration_now_will_override_your_previously_entered_calibration">إدخال المعايرة الآن سيتجاهل المعايرة التي أدخلتها سابقا.</string>
<string name="enter_blood_glucose_value">أدخل مستوى سكر الدم</string>
<string name="this_does_not_get_used_for_anything_its_just_to_keep_track_of_differences_for_algorithem_improvement_purposes">هذا لا يستخدم لأي شيء, فقط لتتبع الاختلافات لأغراض تحسين الخوارزميات</string>
<string name="no_active_alert_exists">لا توجد تنبيهات نشطة</string>
<string name="all_alerts_disabled_until">"تم تعطيل جميع التنبيهات حتى "</string>
<string name="low_alerts_disabled_until">"تم تعطيل تنبيهات الإنخفاض حتى "</string>
<string name="high_alerts_disabled_until">"تم تعطيل تنبيهات الإرتفاع حتى "</string>
<string name="default_snooze">الغفوة الافتراضية</string>
<string name="until_you_reenable">حتى تقوم بإعادة التفعيل</string>
<string name="set">ضبط</string>
<string name="disable_low_alerts">تعطيل التنبيهات الانخفاض</string>
<string name="re_enable_low_alerts">اعادة تشغيل تنبيهات الانخفاض</string>
<string name="disable_high_alerts">تعطيل تنبيهات الارتفاع</string>
<string name="re_enable_high_alerts">إعادة تشغيل تنبيهات الارتفاع</string>
<string name="disable_all_alerts">تعطيل جميع التنبيهات</string>
<string name="re_enable_all_alerts">إعادة تشغيل جميع التنبيهات</string>
<string name="alert_snoozed_by_watch"> غفوة التنبيه بواسطة الساعة</string>
<string name="a_new_version_is_available">يتوفر إصدار جديد</string>
<string name="version_details">تفاصيل الإصدار</string>
<string name="download_now">تنزيل الآن</string>
<string name="automatically_check_for_updates">التحقق تلقائياً من وجود تحديثات</string>
<string name="here_you_can_save_the_settings_to_the_external_storage_sdcard">هنا، يمكنك حفظ الإعدادات إلى وحدة التخزين الداخلية (Download/xDrip-export/com.eveningoutpost.dexdrip_preferences.xml).\n\nبمجرد الحفظ في ملف، قد يكون من الممكن لأي تطبيق قراءة الإعدادات التي قد تحتوي على معلومات حساسة.\n\nينصح بحذف الإعدادات بمجرد استيرادها مرة أخرى إذا كنت قلقا حيال ذلك.</string>
<string name="save_all_settings_to_sdcard">حفظ كافة الإعدادات في بطاقة الذاكرة</string>
<string name="load_all_settings_from_sdcard">تحميل جميع الإعدادات من بطاقة الذاكرة</string>
<string name="delete_any_settings_on_sdcard">حذف مجلد الإعدادات (Download/xDrip-export)</string>
<string name="use_qr_codes_to_transfer_settings_using_settings_auto_configure_feature"><![CDATA[استخدام رمز QR لنقل الإعدادات باستخدام الإعدادات-> تكوين تلقائي]]></string>
<string name="copy_all_settings">نسخ جميع الإعدادات</string>
<string name="sensor_is_ready_please_enter_double_calibration">المستشعر جاهز، الرجاء إدخال المعايرة الأولية</string>
<string name="in_order_to_get_started_please_perform_two_finger">من أجل البدء، يرجى إجراء اختبار أو اثنين للأصابع وإدخال القيم هنا!</string>
<string name="enter_first_bg_value">ادخل قراءة الدم الأولى</string>
<string name="enter_second_bg_value">ادخل قراءة الدم الثانية</string>
<string name="language_editor">تحرير اللغات</string>
<string name="reset_all_language_data">إعادة تعيين جميع بيانات اللغة</string>
<string name="treatment_color">الإنسولين النشط</string>
<string name="treatment_color_dark">نشاط الإنسولين</string>
<string name="treatment_background">خلفية العلاج</string>
<string name="treatment_foreground">تمهيد العلاج</string>
<string name="pref_message_influxdb_uri">استبدل القيم في المثال التي في {} مع القيم الصحيحة الخاصة بك</string>
<string name="process_nsclient_treatments">معالجة بيانات العلاج الواردة من تطبيق NSClient</string>
<string name="accept_treatments">قبول العلاج</string>
<string name="show_total_carbs">اظهر إجمالي النشويات</string>
<string name="show_total_insulin">اظهر إجمالي وحدات الإنسولين</string>
<string name="low_prediction_values">مستوى التنبؤ للقيم المنخفضة</string>
<string name="stop_sensor">إيقاف الحساس</string>
<string name="initial_calibration">المعايرة الأولية</string>
<string name="bluetooth_scan">بحث البلوتوث</string>
<!-- trend arrow for speak -->
<string name="summary_cloud_storage_api_download_enable">قم بتحميل بيانات المعالجة من NS</string>
<string name="title_cloud_storage_api_download_enable">تنزيل بيانات العلاج</string>
<string name="title_send_treatments_to_nightscout">رفع بيانات العلاج</string>
<string name="sync_treatments">مزامنة العلاج</string>
<string name="title_miband_graph_treatment_enable">اظهر الجرعة</string>
<string name="summary_nsfollow_download_treatments">قم بتحميل بيانات المعالجة من NS كمتابع</string>
<string name="title_nsfollow_download_treatments">تنزيل بيانات العلاج</string>
<string name="summary_plus_accept_follower_actions">سيتم قبول العلاج والمعايرة والإجراءات الأخرى من المتابعين</string>
<string name="summary_pendiq_send_treatments">قم بإعداد القلم مع وحدات الأنسولين العلاجية. يجب عليك دائماً التحقق من ذلك.</string>
<string name="title_pendiq_send_treatments">ارسل المعالجة إلى القلم</string>
<string name="calibrate_sensor">معايرة الحساس؟</string>
<string name="calibrate">معايرة</string>
<string name="are_you_sure_you_want_to_delete_this_treatment">هل أنت متأكد أنك تريد حذف هذه المعالجة؟</string>
<string name="yes_please">نعم, من فضلك</string>
<string name="treatment_cancelled">تم إلغاء المعالجة</string>
<string name="treatment_time_wrong">وقت العلاج خاطئ</string>
<string name="treatment_error">خطأ في العلاج</string>
<string name="treatment_processed">سيرت المعالجة</string>
<string name="enable_streaming_dialog_dont_ask_again"> لا تسألني ذلك مرة أخرى</string>
<string name="type_treatment_eg">نوع المعالجة\nمثال: وحدات x.x</string>
<string name="titleInside_yRange">تفعيل</string>
</resources>
Loading

0 comments on commit 87f8475

Please sign in to comment.