From 383752072d3a797d71910037b753fe23f0ed83c5 Mon Sep 17 00:00:00 2001 From: VerstreuteSeele Date: Mon, 19 Dec 2022 17:45:02 +0100 Subject: [PATCH] Merge (Dev Commits)[https://github.com/flipperdevices/flipperzero-firmware/commits/dev] --- applications/debug/locale_test/locale_test.c | 4 +- .../plugins/badapple/bad_apple_10px.png | Bin 1732 -> 0 bytes applications/services/locale/locale.c | 28 +++--- applications/services/locale/locale.h | 86 ++++++++++++++---- .../services/notification/notification_app.c | 2 +- .../settings/system/system_settings.c | 8 +- firmware/targets/f7/api_symbols.csv | 16 +++- firmware/targets/f7/furi_hal/furi_hal_rtc.c | 39 ++++---- .../targets/furi_hal_include/furi_hal_rtc.h | 57 ++++++++++++ scripts/fbt_tools/fbt_extapps.py | 1 + scripts/fbt_tools/fbt_sdk.py | 4 +- scripts/testing/await_flipper.py | 2 +- 12 files changed, 182 insertions(+), 65 deletions(-) delete mode 100644 applications/plugins/badapple/bad_apple_10px.png diff --git a/applications/debug/locale_test/locale_test.c b/applications/debug/locale_test/locale_test.c index 594011de0..46248cf3c 100644 --- a/applications/debug/locale_test/locale_test.c +++ b/applications/debug/locale_test/locale_test.c @@ -21,8 +21,8 @@ static void locale_test_view_draw_callback(Canvas* canvas, void* _model) { FuriString* tmp_string = furi_string_alloc(); float temp = 25.3f; - LocaleMeasurementUnit units = locale_get_measurement_unit(); - if(units == LocaleMeasurementUnitMetric) { + LocaleMeasurementUnits units = locale_get_measurement_unit(); + if(units == LocaleMeasurementUnitsMetric) { furi_string_printf(tmp_string, "Temp: %5.1fC", (double)temp); } else { temp = locale_celsius_to_fahrenheit(temp); diff --git a/applications/plugins/badapple/bad_apple_10px.png b/applications/plugins/badapple/bad_apple_10px.png deleted file mode 100644 index 3032692732ece1313e07bbd60aa2fd0a693d583c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1732 zcmcIlO>g5w7Vhu7EX-Elf-K5F}B;J zJ#YYV;IvnSkXHPGN{AaAkoW;y_!TRGKwLp8uj3?}Ln*mnDV~o!@AH1Y{^Ic9$wuvA zO_HRI&R+Wn)^cCFdk5a%|GM=ImX-YI$z$p2=Qm!!VYT1#TaxtcvwMHjSK<8H;eL1L z`uZBS@Bj46C$OxgdmrSIbnkxoTamu{`T?NsN8OX+#NT(Bh*cVjfUDy;1+*kJx5g=D zr@TM`??;Iz|Ng^|GKxY^J~n;qr`voG?OkU4>E%I}U7j*0l(*j9s5QqfFvPr|XdDld z+#P%JgxH0Bd9BH40x3>Cxm9XJC;lPY78ysDiWP=2LAImnmSHp+?;wH+*08PVSRus4 zmTT70^pQawLd`7fxkv5YsX91$@}MYESJOtLkvgiYBI|3q<2V{78X*cGl>8zo=vYbe zM-|DGrpV59Gw?C z=b&Y3^o_)M_af!m5zob0#`w-TPl`t~Wg(l(rf1o3;%>+^KIAdLaxhGvt4ar=5cxp- ziy!m9=ia35cE)KTvaS%rS;7uyEQk;lqs`+e3B@RXtF&k;z}vLoo($O|3U(CT=#sjt zJFZFI#&s9t3hF~WgtVZ`fkhbgE|!7%zS~Lif+mc2+MWzXsZkWVgfuK-QL5Ap+f;bZ zu#|w4K&e}HL#NE5!1lPIQruBAy|MlY?|7DJKwB7~UNXC)0q4N5@$UX()yFDC6$_0FVep7M_uuBI(8 zjL@VWUCPQf@MKozpNI1FI=UgS%ehd|js_e^Z>ft4mWy67q8V@XAqoFociIw;|%n+<5v=P+oYZ5JJDYUNB?%vw{sDZv$PVU|^Mav}|b5>6mDo6_ZJKIwS^ zS~HmAfBg31PxuCGcG|7(gJUMG?C$R3jn&Ql#+_BPzWIFRo7(4V{IkKAAKqPiWqnvar_item_list = variable_item_list_alloc(); - item = variable_item_list_add( + item = variable_item_list_add( app->var_item_list, "Units", COUNT_OF(mesurement_units_text), @@ -225,4 +225,4 @@ int32_t system_settings_app(void* p) { view_dispatcher_run(app->view_dispatcher); system_settings_free(app); return 0; -} +} \ No newline at end of file diff --git a/firmware/targets/f7/api_symbols.csv b/firmware/targets/f7/api_symbols.csv index 1fbda971d..414a78f11 100644 --- a/firmware/targets/f7/api_symbols.csv +++ b/firmware/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,12.0,, +Version,v,12.1,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/cli/cli.h,, Header,+,applications/services/cli/cli_vcp.h,, @@ -1295,6 +1295,9 @@ Function,+,furi_hal_rtc_get_boot_mode,FuriHalRtcBootMode, Function,+,furi_hal_rtc_get_datetime,void,FuriHalRtcDateTime* Function,+,furi_hal_rtc_get_fault_data,uint32_t, Function,+,furi_hal_rtc_get_heap_track_mode,FuriHalRtcHeapTrackMode, +Function,?,furi_hal_rtc_get_locale_dateformat,FuriHalRtcLocaleDateFormat, +Function,?,furi_hal_rtc_get_locale_timeformat,FuriHalRtcLocaleTimeFormat, +Function,?,furi_hal_rtc_get_locale_units,FuriHalRtcLocaleUnits, Function,+,furi_hal_rtc_get_log_level,uint8_t, Function,+,furi_hal_rtc_get_pin_fails,uint32_t, Function,+,furi_hal_rtc_get_register,uint32_t,FuriHalRtcRegister @@ -1308,6 +1311,9 @@ Function,+,furi_hal_rtc_set_datetime,void,FuriHalRtcDateTime* Function,+,furi_hal_rtc_set_fault_data,void,uint32_t Function,+,furi_hal_rtc_set_flag,void,FuriHalRtcFlag Function,+,furi_hal_rtc_set_heap_track_mode,void,FuriHalRtcHeapTrackMode +Function,+,furi_hal_rtc_set_locale_dateformat,void,FuriHalRtcLocaleDateFormat +Function,+,furi_hal_rtc_set_locale_timeformat,void,FuriHalRtcLocaleTimeFormat +Function,+,furi_hal_rtc_set_locale_units,void,FuriHalRtcLocaleUnits Function,+,furi_hal_rtc_set_log_level,void,uint8_t Function,+,furi_hal_rtc_set_pin_fails,void,uint32_t Function,+,furi_hal_rtc_set_register,void,"FuriHalRtcRegister, uint32_t" @@ -1775,13 +1781,13 @@ Function,+,loading_free,void,Loading* Function,+,loading_get_view,View*,Loading* Function,+,locale_celsius_to_fahrenheit,float,float Function,+,locale_fahrenheit_to_celsius,float,float -Function,+,locale_format_date,void,"FuriString*, FuriHalRtcDateTime*, LocaleDateFormat, char*" -Function,+,locale_format_time,void,"FuriString*, FuriHalRtcDateTime*, LocaleTimeFormat, _Bool" +Function,+,locale_format_date,void,"FuriString*, const FuriHalRtcDateTime*, const LocaleDateFormat, const char*" +Function,+,locale_format_time,void,"FuriString*, const FuriHalRtcDateTime*, const LocaleTimeFormat, const _Bool" Function,+,locale_get_date_format,LocaleDateFormat, -Function,+,locale_get_measurement_unit,LocaleMeasurementUnit, +Function,+,locale_get_measurement_unit,LocaleMeasurementUnits, Function,+,locale_get_time_format,LocaleTimeFormat, Function,+,locale_set_date_format,void,LocaleDateFormat -Function,+,locale_set_measurement_unit,void,LocaleMeasurementUnit +Function,+,locale_set_measurement_unit,void,LocaleMeasurementUnits Function,+,locale_set_time_format,void,LocaleTimeFormat Function,-,localtime,tm*,const time_t* Function,-,localtime_r,tm*,"const time_t*, tm*" diff --git a/firmware/targets/f7/furi_hal/furi_hal_rtc.c b/firmware/targets/f7/furi_hal/furi_hal_rtc.c index 818fb5d21..7e3ee0bb1 100644 --- a/firmware/targets/f7/furi_hal/furi_hal_rtc.c +++ b/firmware/targets/f7/furi_hal/furi_hal_rtc.c @@ -29,11 +29,11 @@ typedef struct { uint8_t log_level : 4; uint8_t log_reserved : 4; uint8_t flags; - uint8_t boot_mode : 4; - uint8_t heap_track_mode : 2; - uint8_t locale_units : 1; - uint8_t locale_timeformat : 1; - uint8_t locale_dateformat : 2; + FuriHalRtcBootMode boot_mode : 4; + FuriHalRtcHeapTrackMode heap_track_mode : 2; + FuriHalRtcLocaleUnits locale_units : 1; + FuriHalRtcLocaleTimeFormat locale_timeformat : 1; + FuriHalRtcLocaleDateFormat locale_dateformat : 2; uint8_t reserved : 6; } SystemReg; @@ -225,7 +225,7 @@ void furi_hal_rtc_set_boot_mode(FuriHalRtcBootMode mode) { FuriHalRtcBootMode furi_hal_rtc_get_boot_mode() { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - return (FuriHalRtcBootMode)data->boot_mode; + return data->boot_mode; } void furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackMode mode) { @@ -238,47 +238,48 @@ void furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackMode mode) { FuriHalRtcHeapTrackMode furi_hal_rtc_get_heap_track_mode() { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - return (FuriHalRtcHeapTrackMode)data->heap_track_mode; + return data->heap_track_mode; } -void furi_hal_rtc_set_locale_units(uint8_t mode) { +void furi_hal_rtc_set_locale_units(FuriHalRtcLocaleUnits value) { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - data->locale_units = mode; + data->locale_units = value; furi_hal_rtc_set_register(FuriHalRtcRegisterSystem, data_reg); } -uint8_t furi_hal_rtc_get_locale_units() { +FuriHalRtcLocaleUnits furi_hal_rtc_get_locale_units() { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - return (uint8_t)data->locale_units; + return data->locale_units; } -void furi_hal_rtc_set_locale_timeformat(uint8_t mode) { +void furi_hal_rtc_set_locale_timeformat(FuriHalRtcLocaleTimeFormat value) { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - data->locale_timeformat = mode; + data->locale_timeformat = value; furi_hal_rtc_set_register(FuriHalRtcRegisterSystem, data_reg); } -uint8_t furi_hal_rtc_get_locale_timeformat() { +FuriHalRtcLocaleTimeFormat furi_hal_rtc_get_locale_timeformat() { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - return (uint8_t)data->locale_timeformat; + return data->locale_timeformat; } -void furi_hal_rtc_set_locale_dateformat(uint8_t mode) { +void furi_hal_rtc_set_locale_dateformat(FuriHalRtcLocaleDateFormat value) { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - data->locale_dateformat = mode; + data->locale_dateformat = value; furi_hal_rtc_set_register(FuriHalRtcRegisterSystem, data_reg); } -uint8_t furi_hal_rtc_get_locale_dateformat() { +FuriHalRtcLocaleDateFormat furi_hal_rtc_get_locale_dateformat() { uint32_t data_reg = furi_hal_rtc_get_register(FuriHalRtcRegisterSystem); SystemReg* data = (SystemReg*)&data_reg; - return (uint8_t)data->locale_dateformat; + return data->locale_dateformat; } + void furi_hal_rtc_set_datetime(FuriHalRtcDateTime* datetime) { furi_assert(datetime); diff --git a/firmware/targets/furi_hal_include/furi_hal_rtc.h b/firmware/targets/furi_hal_include/furi_hal_rtc.h index 5ce122271..8d40353a2 100644 --- a/firmware/targets/furi_hal_include/furi_hal_rtc.h +++ b/firmware/targets/furi_hal_include/furi_hal_rtc.h @@ -59,6 +59,22 @@ typedef enum { FuriHalRtcRegisterMAX, /**< Service value, do not use */ } FuriHalRtcRegister; +typedef enum { + FuriHalRtcLocaleUnitsMetric = 0, /**< Metric measurement units */ + FuriHalRtcLocaleUnitsImperial = 1, /**< Imperial measurement units */ +} FuriHalRtcLocaleUnits; + +typedef enum { + FuriHalRtcLocaleTimeFormat24h = 0, /**< 24-hour format */ + FuriHalRtcLocaleTimeFormat12h = 1, /**< 12-hour format */ +} FuriHalRtcLocaleTimeFormat; + +typedef enum { + FuriHalRtcLocaleDateFormatDMY = 0, /**< Day/Month/Year */ + FuriHalRtcLocaleDateFormatMDY = 1, /**< Month/Day/Year */ + FuriHalRtcLocaleDateFormatYMD = 2, /**< Year/Month/Day */ +} FuriHalRtcLocaleDateFormat; + /** Early initialization */ void furi_hal_rtc_init_early(); @@ -90,6 +106,47 @@ void furi_hal_rtc_set_heap_track_mode(FuriHalRtcHeapTrackMode mode); FuriHalRtcHeapTrackMode furi_hal_rtc_get_heap_track_mode(); +/** Set locale units + * + * @param[in] mode The RTC Locale Units + */ +void furi_hal_rtc_set_locale_units(FuriHalRtcLocaleUnits value); + +/** Get RTC Locale Units + * + * @return The RTC Locale Units. + */ +FuriHalRtcLocaleUnits furi_hal_rtc_get_locale_units(); + +/** Set RTC Locale Time Format + * + * @param[in] value The RTC Locale Time Format + */ +void furi_hal_rtc_set_locale_timeformat(FuriHalRtcLocaleTimeFormat value); + +/** Get RTC Locale Time Format + * + * @return The RTC Locale Time Format. + */ +FuriHalRtcLocaleTimeFormat furi_hal_rtc_get_locale_timeformat(); + +/** Set RTC Locale Date Format + * + * @param[in] value The RTC Locale Date Format + */ +void furi_hal_rtc_set_locale_dateformat(FuriHalRtcLocaleDateFormat value); + +/** Get RTC Locale Date Format + * + * @return The RTC Locale Date Format + */ +FuriHalRtcLocaleDateFormat furi_hal_rtc_get_locale_dateformat(); + +/** Set RTC Date Time + * + * @param datetime The date time to set + */ + void furi_hal_rtc_set_datetime(FuriHalRtcDateTime* datetime); void furi_hal_rtc_get_datetime(FuriHalRtcDateTime* datetime); diff --git a/scripts/fbt_tools/fbt_extapps.py b/scripts/fbt_tools/fbt_extapps.py index f0015cf25..f16d4c064 100644 --- a/scripts/fbt_tools/fbt_extapps.py +++ b/scripts/fbt_tools/fbt_extapps.py @@ -167,6 +167,7 @@ def prepare_app_metadata(target, source, env): sdk_cache = SdkCache(env["SDK_DEFINITION"].path, load_version_only=True) if not sdk_cache.is_buildable(): + print(target, source, env) raise UserError( "SDK version is not finalized, please review changes and re-run operation" ) diff --git a/scripts/fbt_tools/fbt_sdk.py b/scripts/fbt_tools/fbt_sdk.py index 3a37eacc9..48faf2125 100644 --- a/scripts/fbt_tools/fbt_sdk.py +++ b/scripts/fbt_tools/fbt_sdk.py @@ -219,9 +219,7 @@ def gen_sdk_data(sdk_cache: SdkCache): def _check_sdk_is_up2date(sdk_cache: SdkCache): if not sdk_cache.is_buildable(): - raise UserError( - "SDK version is not finalized, please review changes and re-run operation" - ) + print("Working with WIP SDK. Expect failures") def validate_sdk_cache(source, target, env): diff --git a/scripts/testing/await_flipper.py b/scripts/testing/await_flipper.py index 1f0d16194..efae6765d 100755 --- a/scripts/testing/await_flipper.py +++ b/scripts/testing/await_flipper.py @@ -24,7 +24,7 @@ def flp_serial_by_name(flp_name): return "" -UPDATE_TIMEOUT = 30 +UPDATE_TIMEOUT = 60 def main():