diff --git a/fitparse/profile.py b/fitparse/profile.py index ce44c78..daaf579 100644 --- a/fitparse/profile.py +++ b/fitparse/profile.py @@ -1380,6 +1380,14 @@ 7: 'swiss_ball_dumbbell_flye', }, ), + 'strava_product': FieldType( + name='strava_product', + base_type=BASE_TYPES[0x84], # uint16 + values={ + 101: 'Strava iPhone App', # recent versions of Strava iPhone app + 102: 'Strava Android App', # recent versions of Strava Android app + } + ), 'garmin_product': FieldType( name='garmin_product', base_type=BASE_TYPES[0x84], # uint16 @@ -4009,6 +4017,19 @@ value='dynastream_oem', raw_value=13, ), + ) + ), + SubField( + name='strava_product', + def_num=2, + type=FIELD_TYPES['strava_product'], + ref_fields=( + ReferenceField( + name='manufacturer', + def_num=1, + value='strava', + raw_value=265, + ), ), ), ), @@ -7077,6 +7098,19 @@ ), ), ), + SubField( + name='strava_product', + def_num=4, + type=FIELD_TYPES['strava_product'], + ref_fields=( + ReferenceField( + name='manufacturer', + def_num=2, + value='strava', + raw_value=265, + ), + ), + ), ), ), 5: Field( @@ -8580,6 +8614,19 @@ ), ), ), + SubField( + name='strava_product', + def_num=1, + type=FIELD_TYPES['strava_product'], + ref_fields=( + ReferenceField( + name='manufacturer', + def_num=0, + value='strava', + raw_value=265, + ), + ), + ), ), ), }, @@ -11446,6 +11493,19 @@ ), ), ), + SubField( + name='strava_product', + def_num=1, + type=FIELD_TYPES['strava_product'], + ref_fields=( + ReferenceField( + name='manufacturer', + def_num=0, + value='strava', + raw_value=265, + ), + ), + ), ), ), 2: Field( # Corresponds to file_id of scheduled workout / course. diff --git a/tests/files/strava-android-app-201.10-b1218918.fit b/tests/files/strava-android-app-201.10-b1218918.fit new file mode 100644 index 0000000..24977c7 Binary files /dev/null and b/tests/files/strava-android-app-201.10-b1218918.fit differ