moved date to title

This commit is contained in:
Vadim 2025-07-19 19:00:47 +02:00
parent 137d13cfbe
commit 3cd4d32a2b
6 changed files with 44 additions and 60 deletions

View file

@ -170,7 +170,6 @@
"addEquipmentProfileTitle": "Ausrüstung hinzufügen", "addEquipmentProfileTitle": "Ausrüstung hinzufügen",
"editEquipmentProfileTitle": "Ausrüstung bearbeiten", "editEquipmentProfileTitle": "Ausrüstung bearbeiten",
"editPhotoTitle": "Foto bearbeiten", "editPhotoTitle": "Foto bearbeiten",
"date": "Datum",
"ndFilter": "ND Filter", "ndFilter": "ND Filter",
"note": "Notiz", "note": "Notiz",
"notSet": "Nicht gesetzt", "notSet": "Nicht gesetzt",

View file

@ -170,7 +170,6 @@
"addEquipmentProfileTitle": "Add equipment", "addEquipmentProfileTitle": "Add equipment",
"editEquipmentProfileTitle": "Edit equipment", "editEquipmentProfileTitle": "Edit equipment",
"editPhotoTitle": "Edit Photo", "editPhotoTitle": "Edit Photo",
"date": "Date",
"ndFilter": "ND Filter", "ndFilter": "ND Filter",
"note": "Note", "note": "Note",
"notSet": "Not set", "notSet": "Not set",

View file

@ -161,7 +161,6 @@
"addEquipmentProfileTitle": "Ajouter un profil", "addEquipmentProfileTitle": "Ajouter un profil",
"editEquipmentProfileTitle": "Editer le profil", "editEquipmentProfileTitle": "Editer le profil",
"editPhotoTitle": "Modifier la photo", "editPhotoTitle": "Modifier la photo",
"date": "Date",
"ndFilter": "Filtre ND", "ndFilter": "Filtre ND",
"note": "Note", "note": "Note",
"notSet": "Non défini", "notSet": "Non défini",

View file

@ -160,7 +160,6 @@
"addEquipmentProfileTitle": "Добавить профиль", "addEquipmentProfileTitle": "Добавить профиль",
"editEquipmentProfileTitle": "Редактировать профиль", "editEquipmentProfileTitle": "Редактировать профиль",
"editPhotoTitle": "Редактировать фото", "editPhotoTitle": "Редактировать фото",
"date": "Дата",
"ndFilter": "ND фильтр", "ndFilter": "ND фильтр",
"note": "Заметка", "note": "Заметка",
"notSet": "Не задано", "notSet": "Не задано",

View file

@ -158,7 +158,6 @@
"addEquipmentProfileTitle": "添加设备", "addEquipmentProfileTitle": "添加设备",
"editEquipmentProfileTitle": "编辑设备", "editEquipmentProfileTitle": "编辑设备",
"editPhotoTitle": "编辑照片", "editPhotoTitle": "编辑照片",
"date": "日期",
"ndFilter": "ND 滤镜", "ndFilter": "ND 滤镜",
"note": "备注", "note": "备注",
"notSet": "未设置", "notSet": "未设置",

View file

@ -37,6 +37,7 @@ class _LogbookPhotoEditScreenState extends State<LogbookPhotoEditScreen> {
builder: (context, state) => IgnorePointer( builder: (context, state) => IgnorePointer(
ignoring: state.isLoading, ignoring: state.isLoading,
child: SliverScreen( child: SliverScreen(
title: Text(_formatDate(state.timestamp)),
appBarActions: [ appBarActions: [
BlocBuilder<LogbookPhotoEditBloc, LogbookPhotoEditState>( BlocBuilder<LogbookPhotoEditBloc, LogbookPhotoEditState>(
buildWhen: (previous, current) => previous.canSave != current.canSave, buildWhen: (previous, current) => previous.canSave != current.canSave,
@ -60,29 +61,30 @@ class _LogbookPhotoEditScreenState extends State<LogbookPhotoEditScreen> {
SliverToBoxAdapter( SliverToBoxAdapter(
child: Opacity( child: Opacity(
opacity: state.isLoading ? Dimens.disabledOpacity : Dimens.enabledOpacity, opacity: state.isLoading ? Dimens.disabledOpacity : Dimens.enabledOpacity,
child: const Column( child: const Padding(
children: [ padding: EdgeInsets.symmetric(horizontal: Dimens.paddingM),
_PhotoPreviewBuilder(), child: Column(
Card( children: [
margin: EdgeInsets.all(Dimens.paddingM), _PhotoPreviewBuilder(),
child: Padding( SizedBox(height: Dimens.grid16),
padding: EdgeInsets.symmetric(vertical: Dimens.paddingM), Card(
child: Column( child: Padding(
children: [ padding: EdgeInsets.symmetric(vertical: Dimens.paddingM),
_DateListTile(), child: Column(
//TODO: maybe make it edge to edge and add InterActiveViewer children: [
LogbookPhotoCoordinatesListTile(), LogbookPhotoCoordinatesListTile(),
_NoteListTile(), _NoteListTile(),
_EvListTile(), _EvListTile(),
_IsoListTile(), _IsoListTile(),
_NdFilterListTile(), _NdFilterListTile(),
_AperturePickerListTile(), _AperturePickerListTile(),
_ShutterSpeedPickerListTile(), _ShutterSpeedPickerListTile(),
], ],
),
), ),
), ),
), ],
], ),
), ),
), ),
), ),
@ -92,6 +94,15 @@ class _LogbookPhotoEditScreenState extends State<LogbookPhotoEditScreen> {
), ),
); );
} }
String _formatDate(DateTime dateTime) {
final day = dateTime.day.toString().padLeft(2, '0');
final month = dateTime.month.toString().padLeft(2, '0');
final year = dateTime.year.toString();
final hour = dateTime.hour.toString().padLeft(2, '0');
final minute = dateTime.minute.toString().padLeft(2, '0');
return '$day.$month.$year $hour:$minute';
}
} }
class _PhotoPreviewBuilder extends StatelessWidget { class _PhotoPreviewBuilder extends StatelessWidget {
@ -105,46 +116,24 @@ class _PhotoPreviewBuilder extends StatelessWidget {
aspectRatio: PlatformConfig.cameraPreviewAspectRatio, aspectRatio: PlatformConfig.cameraPreviewAspectRatio,
child: Hero( child: Hero(
tag: state.id, tag: state.id,
child: PlatformConfig.cameraStubImage.isNotEmpty child: ClipRRect(
? Image.asset( borderRadius: BorderRadius.circular(Dimens.borderRadiusM),
PlatformConfig.cameraStubImage, child: PlatformConfig.cameraStubImage.isNotEmpty
fit: BoxFit.cover, ? Image.asset(
) PlatformConfig.cameraStubImage,
: Image.file( fit: BoxFit.cover,
File(state.name), )
fit: BoxFit.cover, : Image.file(
), File(state.name),
fit: BoxFit.cover,
),
),
), ),
), ),
); );
} }
} }
class _DateListTile extends StatelessWidget {
const _DateListTile();
String _formatDate(DateTime dateTime) {
final day = dateTime.day.toString().padLeft(2, '0');
final month = dateTime.month.toString().padLeft(2, '0');
final year = dateTime.year.toString();
final hour = dateTime.hour.toString().padLeft(2, '0');
final minute = dateTime.minute.toString().padLeft(2, '0');
return '$day.$month.$year $hour:$minute';
}
@override
Widget build(BuildContext context) {
return BlocBuilder<LogbookPhotoEditBloc, LogbookPhotoEditState>(
buildWhen: (_, __) => false,
builder: (context, state) => ListTile(
leading: const Icon(Icons.access_time),
title: Text(S.of(context).date),
trailing: Text(_formatDate(state.timestamp)),
),
);
}
}
class _NoteListTile extends StatelessWidget { class _NoteListTile extends StatelessWidget {
const _NoteListTile(); const _NoteListTile();