diff --git a/android/build.gradle b/android/build.gradle index ae90d44bb..177e330d0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -25,6 +25,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/lib/data/models/invoice_model.dart b/lib/data/models/invoice_model.dart index ef3192008..b8e2f4246 100644 --- a/lib/data/models/invoice_model.dart +++ b/lib/data/models/invoice_model.dart @@ -1794,6 +1794,7 @@ abstract class InvitationEntity extends Object sentDate: '', viewedDate: '', openedDate: '', + messageId: '', updatedAt: 0, archivedAt: 0, isDeleted: false, @@ -1835,6 +1836,9 @@ abstract class InvitationEntity extends Object @BuiltValueField(wireName: 'email_error', compare: false) String get emailError; + @BuiltValueField(wireName: 'message_id', compare: false) + String get messageId; + String get downloadLink => '$link/download?t=${DateTime.now().millisecondsSinceEpoch}'; @@ -1903,7 +1907,8 @@ abstract class InvitationEntity extends Object ..clientContactId = '' ..vendorContactId = '' ..emailError = '' - ..emailStatus = ''; + ..emailStatus = '' + ..messageId = ''; static Serializer get serializer => _$invitationEntitySerializer; diff --git a/lib/data/models/invoice_model.g.dart b/lib/data/models/invoice_model.g.dart index f4f693205..bc63bedab 100644 --- a/lib/data/models/invoice_model.g.dart +++ b/lib/data/models/invoice_model.g.dart @@ -983,6 +983,9 @@ class _$InvitationEntitySerializer 'email_error', serializers.serialize(object.emailError, specifiedType: const FullType(String)), + 'message_id', + serializers.serialize(object.messageId, + specifiedType: const FullType(String)), 'created_at', serializers.serialize(object.createdAt, specifiedType: const FullType(int)), @@ -1082,6 +1085,10 @@ class _$InvitationEntitySerializer result.emailError = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; + case 'message_id': + result.messageId = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; case 'isChanged': result.isChanged = serializers.deserialize(value, specifiedType: const FullType(bool)) as bool?; @@ -2986,6 +2993,8 @@ class _$InvitationEntity extends InvitationEntity { @override final String emailError; @override + final String messageId; + @override final bool? isChanged; @override final int createdAt; @@ -3018,6 +3027,7 @@ class _$InvitationEntity extends InvitationEntity { required this.openedDate, required this.emailStatus, required this.emailError, + required this.messageId, this.isChanged, required this.createdAt, required this.updatedAt, @@ -3044,6 +3054,8 @@ class _$InvitationEntity extends InvitationEntity { emailStatus, r'InvitationEntity', 'emailStatus'); BuiltValueNullFieldError.checkNotNull( emailError, r'InvitationEntity', 'emailError'); + BuiltValueNullFieldError.checkNotNull( + messageId, r'InvitationEntity', 'messageId'); BuiltValueNullFieldError.checkNotNull( createdAt, r'InvitationEntity', 'createdAt'); BuiltValueNullFieldError.checkNotNull( @@ -3114,6 +3126,7 @@ class _$InvitationEntity extends InvitationEntity { ..add('openedDate', openedDate) ..add('emailStatus', emailStatus) ..add('emailError', emailError) + ..add('messageId', messageId) ..add('isChanged', isChanged) ..add('createdAt', createdAt) ..add('updatedAt', updatedAt) @@ -3169,6 +3182,10 @@ class InvitationEntityBuilder String? get emailError => _$this._emailError; set emailError(String? emailError) => _$this._emailError = emailError; + String? _messageId; + String? get messageId => _$this._messageId; + set messageId(String? messageId) => _$this._messageId = messageId; + bool? _isChanged; bool? get isChanged => _$this._isChanged; set isChanged(bool? isChanged) => _$this._isChanged = isChanged; @@ -3223,6 +3240,7 @@ class InvitationEntityBuilder _openedDate = $v.openedDate; _emailStatus = $v.emailStatus; _emailError = $v.emailError; + _messageId = $v.messageId; _isChanged = $v.isChanged; _createdAt = $v.createdAt; _updatedAt = $v.updatedAt; @@ -3272,6 +3290,7 @@ class InvitationEntityBuilder emailStatus, r'InvitationEntity', 'emailStatus'), emailError: BuiltValueNullFieldError.checkNotNull(emailError, r'InvitationEntity', 'emailError'), + messageId: BuiltValueNullFieldError.checkNotNull(messageId, r'InvitationEntity', 'messageId'), isChanged: isChanged, createdAt: BuiltValueNullFieldError.checkNotNull(createdAt, r'InvitationEntity', 'createdAt'), updatedAt: BuiltValueNullFieldError.checkNotNull(updatedAt, r'InvitationEntity', 'updatedAt'), diff --git a/lib/ui/invoice/edit/invoice_edit_contacts.dart b/lib/ui/invoice/edit/invoice_edit_contacts.dart index 0b177d8bd..05af4e832 100644 --- a/lib/ui/invoice/edit/invoice_edit_contacts.dart +++ b/lib/ui/invoice/edit/invoice_edit_contacts.dart @@ -181,7 +181,9 @@ class _ClientContactListTile extends StatelessWidget { style: Theme.of(context).textTheme.bodySmall, ), ), - if ((invitation?.emailError ?? '').isNotEmpty) + if ((invitation?.emailError ?? '').isNotEmpty && + invitation?.emailStatus != + InvitationEntity.EMAIL_STATUS_DELIVERED) Padding( padding: const EdgeInsets.only(top: 8), child: Text(