Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -833,7 +833,7 @@
"edit": "Edit",
"edit_album": "Edit album",
"edit_avatar": "Edit avatar",
"edit_birthday": "Edit Birthday",
"edit_birthday": "Edit birthday",
"edit_date": "Edit date",
"edit_date_and_time": "Edit date and time",
"edit_date_and_time_action_prompt": "{count} date and time edited",
Expand Down Expand Up @@ -1007,9 +1007,6 @@
"exif_bottom_sheet_location": "LOCATION",
"exif_bottom_sheet_people": "PEOPLE",
"exif_bottom_sheet_person_add_person": "Add name",
"exif_bottom_sheet_person_age_months": "Age {months} months",
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {months} months",
"exif_bottom_sheet_person_age_years": "Age {years}",
"exit_slideshow": "Exit Slideshow",
"expand_all": "Expand all",
"experimental_settings_new_asset_list_subtitle": "Work in progress",
Expand Down Expand Up @@ -1448,6 +1445,9 @@
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
"person": "Person",
"person_age_months": "{months} months old",
"person_age_year_months": "1 year, {months} months old",
"person_age_years": "{years} years old",
"person_birthdate": "Born on {date}",
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
"photo_shared_all_users": "Looks like you shared your photos with all users or you don't have any user to share with.",
Expand Down
1 change: 1 addition & 0 deletions mobile/lib/presentation/pages/drift_person.page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ class _DriftPersonPageState extends ConsumerState<DriftPersonPage> {
await handleEditBirthday(context);
context.pop();
},
birthdayExists: _person.birthDate != null,
);
},
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ class _DriftPersonNameEditFormState extends ConsumerState<DriftPersonBirthdayEdi
height: 300,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(16.0)),

child: ScrollDatePicker(
options: DatePickerOptions(
backgroundColor: context.colorScheme.surfaceContainerHigh,
Expand All @@ -72,14 +71,17 @@ class _DriftPersonNameEditFormState extends ConsumerState<DriftPersonBirthdayEdi
),
scrollViewOptions: DatePickerScrollViewOptions(
day: ScrollViewDetailOptions(
isLoop: false,
margin: const EdgeInsets.all(12),
selectedTextStyle: TextStyle(color: context.primaryColor, fontWeight: FontWeight.bold, fontSize: 16),
),
month: ScrollViewDetailOptions(
isLoop: false,
margin: const EdgeInsets.all(12),
selectedTextStyle: TextStyle(color: context.primaryColor, fontWeight: FontWeight.bold, fontSize: 16),
),
year: ScrollViewDetailOptions(
isLoop: false,
margin: const EdgeInsets.all(12),
selectedTextStyle: TextStyle(color: context.primaryColor, fontWeight: FontWeight.bold, fontSize: 16),
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/extensions/translate_extensions.dart';

class PersonOptionSheet extends ConsumerWidget {
const PersonOptionSheet({super.key, this.onEditName, this.onEditBirthday});
const PersonOptionSheet({super.key, this.onEditName, this.onEditBirthday, this.birthdayExists = false});

final VoidCallback? onEditName;
final VoidCallback? onEditBirthday;
final bool birthdayExists;

@override
Widget build(BuildContext context, WidgetRef ref) {
Expand All @@ -25,7 +26,7 @@ class PersonOptionSheet extends ConsumerWidget {
),
ListTile(
leading: const Icon(Icons.cake),
title: Text('edit_birthday'.t(context: context), style: textStyle),
title: Text((birthdayExists ? 'edit_birthday' : "add_birthday").t(context: context), style: textStyle),
onTap: onEditBirthday,
),
],
Expand Down
6 changes: 3 additions & 3 deletions mobile/lib/utils/people.utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ String formatAge(DateTime birthDate, DateTime referenceDate) {
int ageInMonths = _calculateAgeInMonths(birthDate, referenceDate);

if (ageInMonths <= 11) {
return "exif_bottom_sheet_person_age_months".t(args: {'months': ageInMonths.toString()});
return "person_age_months".t(args: {'months': ageInMonths.toString()});
} else if (ageInMonths > 12 && ageInMonths <= 23) {
return "exif_bottom_sheet_person_age_year_months".t(args: {'months': (ageInMonths - 12).toString()});
return "person_age_year_months".t(args: {'months': (ageInMonths - 12).toString()});
} else {
return "exif_bottom_sheet_person_age_years".t(args: {'years': ageInYears.toString()});
return "person_age_years".t(args: {'years': ageInYears.toString()});
}
}

Expand Down
32 changes: 2 additions & 30 deletions mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/models/search/search_curated_content.model.dart';
import 'package:immich_mobile/providers/asset_viewer/asset_people.provider.dart';
import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/utils/people.utils.dart';
import 'package:immich_mobile/widgets/search/curated_people_row.dart';
import 'package:immich_mobile/widgets/search/person_name_edit_form.dart';

Expand Down Expand Up @@ -41,7 +42,7 @@ class PeopleInfo extends ConsumerWidget {
id: p.id,
label: p.name,
subtitle: p.birthDate != null && p.birthDate!.isBefore(asset.fileCreatedAt)
? _formatAge(p.birthDate!, asset.fileCreatedAt)
? formatAge(p.birthDate!, asset.fileCreatedAt)
: null,
),
)
Expand Down Expand Up @@ -87,33 +88,4 @@ class PeopleInfo extends ConsumerWidget {
),
);
}

String _formatAge(DateTime birthDate, DateTime referenceDate) {
int ageInYears = _calculateAge(birthDate, referenceDate);
int ageInMonths = _calculateAgeInMonths(birthDate, referenceDate);

if (ageInMonths <= 11) {
return "exif_bottom_sheet_person_age_months".tr(namedArgs: {'months': ageInMonths.toString()});
} else if (ageInMonths > 12 && ageInMonths <= 23) {
return "exif_bottom_sheet_person_age_year_months".tr(namedArgs: {'months': (ageInMonths - 12).toString()});
} else {
return "exif_bottom_sheet_person_age_years".tr(namedArgs: {'years': ageInYears.toString()});
}
}

int _calculateAge(DateTime birthDate, DateTime referenceDate) {
int age = referenceDate.year - birthDate.year;
if (referenceDate.month < birthDate.month ||
(referenceDate.month == birthDate.month && referenceDate.day < birthDate.day)) {
age--;
}
return age;
}

int _calculateAgeInMonths(DateTime birthDate, DateTime referenceDate) {
return (referenceDate.year - birthDate.year) * 12 +
referenceDate.month -
birthDate.month -
(referenceDate.day < birthDate.day ? 1 : 0);
}
}