fixing background notification

This commit is contained in:
otsmr 2025-10-30 20:47:15 +01:00
parent 09cb0552c0
commit 7748ecec3c
6 changed files with 152 additions and 5 deletions

View file

@ -162,6 +162,8 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
final totalMediaCounter = group.totalMediaCounter + 1; final totalMediaCounter = group.totalMediaCounter + 1;
var flameCounter = group.flameCounter; var flameCounter = group.flameCounter;
var maxFlameCounter = group.maxFlameCounter;
var maxFlameCounterFrom = group.maxFlameCounterFrom;
if (group.lastMessageReceived != null && group.lastMessageSend != null) { if (group.lastMessageReceived != null && group.lastMessageSend != null) {
final now = DateTime.now(); final now = DateTime.now();
@ -198,6 +200,10 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
if (updateFlame) { if (updateFlame) {
flameCounter += 1; flameCounter += 1;
lastFlameCounterChange = Value(timestamp); lastFlameCounterChange = Value(timestamp);
if (flameCounter > maxFlameCounter) {
maxFlameCounter = flameCounter;
maxFlameCounterFrom = DateTime.now();
}
} }
} }
} else { } else {
@ -218,6 +224,8 @@ class GroupsDao extends DatabaseAccessor<TwonlyDB> with _$GroupsDaoMixin {
lastMessageReceived: lastMessageReceived, lastMessageReceived: lastMessageReceived,
lastMessageSend: lastMessageSend, lastMessageSend: lastMessageSend,
flameCounter: Value(flameCounter), flameCounter: Value(flameCounter),
maxFlameCounter: Value(maxFlameCounter),
maxFlameCounterFrom: Value(maxFlameCounterFrom),
), ),
); );
} }

View file

@ -29,6 +29,9 @@ class Groups extends Table {
IntColumn get flameCounter => integer().withDefault(const Constant(0))(); IntColumn get flameCounter => integer().withDefault(const Constant(0))();
IntColumn get maxFlameCounter => integer().withDefault(const Constant(0))();
DateTimeColumn get maxFlameCounterFrom => dateTime().nullable()();
DateTimeColumn get lastMessageExchange => DateTimeColumn get lastMessageExchange =>
dateTime().withDefault(currentDateAndTime)(); dateTime().withDefault(currentDateAndTime)();

View file

@ -775,6 +775,20 @@ class $GroupsTable extends Groups with TableInfo<$GroupsTable, Group> {
type: DriftSqlType.int, type: DriftSqlType.int,
requiredDuringInsert: false, requiredDuringInsert: false,
defaultValue: const Constant(0)); defaultValue: const Constant(0));
static const VerificationMeta _maxFlameCounterMeta =
const VerificationMeta('maxFlameCounter');
@override
late final GeneratedColumn<int> maxFlameCounter = GeneratedColumn<int>(
'max_flame_counter', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: false,
defaultValue: const Constant(0));
static const VerificationMeta _maxFlameCounterFromMeta =
const VerificationMeta('maxFlameCounterFrom');
@override
late final GeneratedColumn<DateTime> maxFlameCounterFrom =
GeneratedColumn<DateTime>('max_flame_counter_from', aliasedName, true,
type: DriftSqlType.dateTime, requiredDuringInsert: false);
static const VerificationMeta _lastMessageExchangeMeta = static const VerificationMeta _lastMessageExchangeMeta =
const VerificationMeta('lastMessageExchange'); const VerificationMeta('lastMessageExchange');
@override @override
@ -800,6 +814,8 @@ class $GroupsTable extends Groups with TableInfo<$GroupsTable, Group> {
lastFlameCounterChange, lastFlameCounterChange,
lastFlameSync, lastFlameSync,
flameCounter, flameCounter,
maxFlameCounter,
maxFlameCounterFrom,
lastMessageExchange lastMessageExchange
]; ];
@override @override
@ -901,6 +917,18 @@ class $GroupsTable extends Groups with TableInfo<$GroupsTable, Group> {
flameCounter.isAcceptableOrUnknown( flameCounter.isAcceptableOrUnknown(
data['flame_counter']!, _flameCounterMeta)); data['flame_counter']!, _flameCounterMeta));
} }
if (data.containsKey('max_flame_counter')) {
context.handle(
_maxFlameCounterMeta,
maxFlameCounter.isAcceptableOrUnknown(
data['max_flame_counter']!, _maxFlameCounterMeta));
}
if (data.containsKey('max_flame_counter_from')) {
context.handle(
_maxFlameCounterFromMeta,
maxFlameCounterFrom.isAcceptableOrUnknown(
data['max_flame_counter_from']!, _maxFlameCounterFromMeta));
}
if (data.containsKey('last_message_exchange')) { if (data.containsKey('last_message_exchange')) {
context.handle( context.handle(
_lastMessageExchangeMeta, _lastMessageExchangeMeta,
@ -949,6 +977,11 @@ class $GroupsTable extends Groups with TableInfo<$GroupsTable, Group> {
DriftSqlType.dateTime, data['${effectivePrefix}last_flame_sync']), DriftSqlType.dateTime, data['${effectivePrefix}last_flame_sync']),
flameCounter: attachedDatabase.typeMapping flameCounter: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}flame_counter'])!, .read(DriftSqlType.int, data['${effectivePrefix}flame_counter'])!,
maxFlameCounter: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}max_flame_counter'])!,
maxFlameCounterFrom: attachedDatabase.typeMapping.read(
DriftSqlType.dateTime,
data['${effectivePrefix}max_flame_counter_from']),
lastMessageExchange: attachedDatabase.typeMapping.read( lastMessageExchange: attachedDatabase.typeMapping.read(
DriftSqlType.dateTime, DriftSqlType.dateTime,
data['${effectivePrefix}last_message_exchange'])!, data['${effectivePrefix}last_message_exchange'])!,
@ -977,6 +1010,8 @@ class Group extends DataClass implements Insertable<Group> {
final DateTime? lastFlameCounterChange; final DateTime? lastFlameCounterChange;
final DateTime? lastFlameSync; final DateTime? lastFlameSync;
final int flameCounter; final int flameCounter;
final int maxFlameCounter;
final DateTime? maxFlameCounterFrom;
final DateTime lastMessageExchange; final DateTime lastMessageExchange;
const Group( const Group(
{required this.groupId, {required this.groupId,
@ -994,6 +1029,8 @@ class Group extends DataClass implements Insertable<Group> {
this.lastFlameCounterChange, this.lastFlameCounterChange,
this.lastFlameSync, this.lastFlameSync,
required this.flameCounter, required this.flameCounter,
required this.maxFlameCounter,
this.maxFlameCounterFrom,
required this.lastMessageExchange}); required this.lastMessageExchange});
@override @override
Map<String, Expression> toColumns(bool nullToAbsent) { Map<String, Expression> toColumns(bool nullToAbsent) {
@ -1023,6 +1060,10 @@ class Group extends DataClass implements Insertable<Group> {
map['last_flame_sync'] = Variable<DateTime>(lastFlameSync); map['last_flame_sync'] = Variable<DateTime>(lastFlameSync);
} }
map['flame_counter'] = Variable<int>(flameCounter); map['flame_counter'] = Variable<int>(flameCounter);
map['max_flame_counter'] = Variable<int>(maxFlameCounter);
if (!nullToAbsent || maxFlameCounterFrom != null) {
map['max_flame_counter_from'] = Variable<DateTime>(maxFlameCounterFrom);
}
map['last_message_exchange'] = Variable<DateTime>(lastMessageExchange); map['last_message_exchange'] = Variable<DateTime>(lastMessageExchange);
return map; return map;
} }
@ -1052,6 +1093,10 @@ class Group extends DataClass implements Insertable<Group> {
? const Value.absent() ? const Value.absent()
: Value(lastFlameSync), : Value(lastFlameSync),
flameCounter: Value(flameCounter), flameCounter: Value(flameCounter),
maxFlameCounter: Value(maxFlameCounter),
maxFlameCounterFrom: maxFlameCounterFrom == null && nullToAbsent
? const Value.absent()
: Value(maxFlameCounterFrom),
lastMessageExchange: Value(lastMessageExchange), lastMessageExchange: Value(lastMessageExchange),
); );
} }
@ -1078,6 +1123,9 @@ class Group extends DataClass implements Insertable<Group> {
serializer.fromJson<DateTime?>(json['lastFlameCounterChange']), serializer.fromJson<DateTime?>(json['lastFlameCounterChange']),
lastFlameSync: serializer.fromJson<DateTime?>(json['lastFlameSync']), lastFlameSync: serializer.fromJson<DateTime?>(json['lastFlameSync']),
flameCounter: serializer.fromJson<int>(json['flameCounter']), flameCounter: serializer.fromJson<int>(json['flameCounter']),
maxFlameCounter: serializer.fromJson<int>(json['maxFlameCounter']),
maxFlameCounterFrom:
serializer.fromJson<DateTime?>(json['maxFlameCounterFrom']),
lastMessageExchange: lastMessageExchange:
serializer.fromJson<DateTime>(json['lastMessageExchange']), serializer.fromJson<DateTime>(json['lastMessageExchange']),
); );
@ -1103,6 +1151,8 @@ class Group extends DataClass implements Insertable<Group> {
serializer.toJson<DateTime?>(lastFlameCounterChange), serializer.toJson<DateTime?>(lastFlameCounterChange),
'lastFlameSync': serializer.toJson<DateTime?>(lastFlameSync), 'lastFlameSync': serializer.toJson<DateTime?>(lastFlameSync),
'flameCounter': serializer.toJson<int>(flameCounter), 'flameCounter': serializer.toJson<int>(flameCounter),
'maxFlameCounter': serializer.toJson<int>(maxFlameCounter),
'maxFlameCounterFrom': serializer.toJson<DateTime?>(maxFlameCounterFrom),
'lastMessageExchange': serializer.toJson<DateTime>(lastMessageExchange), 'lastMessageExchange': serializer.toJson<DateTime>(lastMessageExchange),
}; };
} }
@ -1123,6 +1173,8 @@ class Group extends DataClass implements Insertable<Group> {
Value<DateTime?> lastFlameCounterChange = const Value.absent(), Value<DateTime?> lastFlameCounterChange = const Value.absent(),
Value<DateTime?> lastFlameSync = const Value.absent(), Value<DateTime?> lastFlameSync = const Value.absent(),
int? flameCounter, int? flameCounter,
int? maxFlameCounter,
Value<DateTime?> maxFlameCounterFrom = const Value.absent(),
DateTime? lastMessageExchange}) => DateTime? lastMessageExchange}) =>
Group( Group(
groupId: groupId ?? this.groupId, groupId: groupId ?? this.groupId,
@ -1148,6 +1200,10 @@ class Group extends DataClass implements Insertable<Group> {
lastFlameSync: lastFlameSync:
lastFlameSync.present ? lastFlameSync.value : this.lastFlameSync, lastFlameSync.present ? lastFlameSync.value : this.lastFlameSync,
flameCounter: flameCounter ?? this.flameCounter, flameCounter: flameCounter ?? this.flameCounter,
maxFlameCounter: maxFlameCounter ?? this.maxFlameCounter,
maxFlameCounterFrom: maxFlameCounterFrom.present
? maxFlameCounterFrom.value
: this.maxFlameCounterFrom,
lastMessageExchange: lastMessageExchange ?? this.lastMessageExchange, lastMessageExchange: lastMessageExchange ?? this.lastMessageExchange,
); );
Group copyWithCompanion(GroupsCompanion data) { Group copyWithCompanion(GroupsCompanion data) {
@ -1188,6 +1244,12 @@ class Group extends DataClass implements Insertable<Group> {
flameCounter: data.flameCounter.present flameCounter: data.flameCounter.present
? data.flameCounter.value ? data.flameCounter.value
: this.flameCounter, : this.flameCounter,
maxFlameCounter: data.maxFlameCounter.present
? data.maxFlameCounter.value
: this.maxFlameCounter,
maxFlameCounterFrom: data.maxFlameCounterFrom.present
? data.maxFlameCounterFrom.value
: this.maxFlameCounterFrom,
lastMessageExchange: data.lastMessageExchange.present lastMessageExchange: data.lastMessageExchange.present
? data.lastMessageExchange.value ? data.lastMessageExchange.value
: this.lastMessageExchange, : this.lastMessageExchange,
@ -1213,6 +1275,8 @@ class Group extends DataClass implements Insertable<Group> {
..write('lastFlameCounterChange: $lastFlameCounterChange, ') ..write('lastFlameCounterChange: $lastFlameCounterChange, ')
..write('lastFlameSync: $lastFlameSync, ') ..write('lastFlameSync: $lastFlameSync, ')
..write('flameCounter: $flameCounter, ') ..write('flameCounter: $flameCounter, ')
..write('maxFlameCounter: $maxFlameCounter, ')
..write('maxFlameCounterFrom: $maxFlameCounterFrom, ')
..write('lastMessageExchange: $lastMessageExchange') ..write('lastMessageExchange: $lastMessageExchange')
..write(')')) ..write(')'))
.toString(); .toString();
@ -1235,6 +1299,8 @@ class Group extends DataClass implements Insertable<Group> {
lastFlameCounterChange, lastFlameCounterChange,
lastFlameSync, lastFlameSync,
flameCounter, flameCounter,
maxFlameCounter,
maxFlameCounterFrom,
lastMessageExchange); lastMessageExchange);
@override @override
bool operator ==(Object other) => bool operator ==(Object other) =>
@ -1256,6 +1322,8 @@ class Group extends DataClass implements Insertable<Group> {
other.lastFlameCounterChange == this.lastFlameCounterChange && other.lastFlameCounterChange == this.lastFlameCounterChange &&
other.lastFlameSync == this.lastFlameSync && other.lastFlameSync == this.lastFlameSync &&
other.flameCounter == this.flameCounter && other.flameCounter == this.flameCounter &&
other.maxFlameCounter == this.maxFlameCounter &&
other.maxFlameCounterFrom == this.maxFlameCounterFrom &&
other.lastMessageExchange == this.lastMessageExchange); other.lastMessageExchange == this.lastMessageExchange);
} }
@ -1275,6 +1343,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
final Value<DateTime?> lastFlameCounterChange; final Value<DateTime?> lastFlameCounterChange;
final Value<DateTime?> lastFlameSync; final Value<DateTime?> lastFlameSync;
final Value<int> flameCounter; final Value<int> flameCounter;
final Value<int> maxFlameCounter;
final Value<DateTime?> maxFlameCounterFrom;
final Value<DateTime> lastMessageExchange; final Value<DateTime> lastMessageExchange;
final Value<int> rowid; final Value<int> rowid;
const GroupsCompanion({ const GroupsCompanion({
@ -1293,6 +1363,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
this.lastFlameCounterChange = const Value.absent(), this.lastFlameCounterChange = const Value.absent(),
this.lastFlameSync = const Value.absent(), this.lastFlameSync = const Value.absent(),
this.flameCounter = const Value.absent(), this.flameCounter = const Value.absent(),
this.maxFlameCounter = const Value.absent(),
this.maxFlameCounterFrom = const Value.absent(),
this.lastMessageExchange = const Value.absent(), this.lastMessageExchange = const Value.absent(),
this.rowid = const Value.absent(), this.rowid = const Value.absent(),
}); });
@ -1312,6 +1384,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
this.lastFlameCounterChange = const Value.absent(), this.lastFlameCounterChange = const Value.absent(),
this.lastFlameSync = const Value.absent(), this.lastFlameSync = const Value.absent(),
this.flameCounter = const Value.absent(), this.flameCounter = const Value.absent(),
this.maxFlameCounter = const Value.absent(),
this.maxFlameCounterFrom = const Value.absent(),
this.lastMessageExchange = const Value.absent(), this.lastMessageExchange = const Value.absent(),
this.rowid = const Value.absent(), this.rowid = const Value.absent(),
}) : groupId = Value(groupId), }) : groupId = Value(groupId),
@ -1334,6 +1408,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
Expression<DateTime>? lastFlameCounterChange, Expression<DateTime>? lastFlameCounterChange,
Expression<DateTime>? lastFlameSync, Expression<DateTime>? lastFlameSync,
Expression<int>? flameCounter, Expression<int>? flameCounter,
Expression<int>? maxFlameCounter,
Expression<DateTime>? maxFlameCounterFrom,
Expression<DateTime>? lastMessageExchange, Expression<DateTime>? lastMessageExchange,
Expression<int>? rowid, Expression<int>? rowid,
}) { }) {
@ -1356,6 +1432,9 @@ class GroupsCompanion extends UpdateCompanion<Group> {
'last_flame_counter_change': lastFlameCounterChange, 'last_flame_counter_change': lastFlameCounterChange,
if (lastFlameSync != null) 'last_flame_sync': lastFlameSync, if (lastFlameSync != null) 'last_flame_sync': lastFlameSync,
if (flameCounter != null) 'flame_counter': flameCounter, if (flameCounter != null) 'flame_counter': flameCounter,
if (maxFlameCounter != null) 'max_flame_counter': maxFlameCounter,
if (maxFlameCounterFrom != null)
'max_flame_counter_from': maxFlameCounterFrom,
if (lastMessageExchange != null) if (lastMessageExchange != null)
'last_message_exchange': lastMessageExchange, 'last_message_exchange': lastMessageExchange,
if (rowid != null) 'rowid': rowid, if (rowid != null) 'rowid': rowid,
@ -1378,6 +1457,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
Value<DateTime?>? lastFlameCounterChange, Value<DateTime?>? lastFlameCounterChange,
Value<DateTime?>? lastFlameSync, Value<DateTime?>? lastFlameSync,
Value<int>? flameCounter, Value<int>? flameCounter,
Value<int>? maxFlameCounter,
Value<DateTime?>? maxFlameCounterFrom,
Value<DateTime>? lastMessageExchange, Value<DateTime>? lastMessageExchange,
Value<int>? rowid}) { Value<int>? rowid}) {
return GroupsCompanion( return GroupsCompanion(
@ -1398,6 +1479,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
lastFlameCounterChange ?? this.lastFlameCounterChange, lastFlameCounterChange ?? this.lastFlameCounterChange,
lastFlameSync: lastFlameSync ?? this.lastFlameSync, lastFlameSync: lastFlameSync ?? this.lastFlameSync,
flameCounter: flameCounter ?? this.flameCounter, flameCounter: flameCounter ?? this.flameCounter,
maxFlameCounter: maxFlameCounter ?? this.maxFlameCounter,
maxFlameCounterFrom: maxFlameCounterFrom ?? this.maxFlameCounterFrom,
lastMessageExchange: lastMessageExchange ?? this.lastMessageExchange, lastMessageExchange: lastMessageExchange ?? this.lastMessageExchange,
rowid: rowid ?? this.rowid, rowid: rowid ?? this.rowid,
); );
@ -1454,6 +1537,13 @@ class GroupsCompanion extends UpdateCompanion<Group> {
if (flameCounter.present) { if (flameCounter.present) {
map['flame_counter'] = Variable<int>(flameCounter.value); map['flame_counter'] = Variable<int>(flameCounter.value);
} }
if (maxFlameCounter.present) {
map['max_flame_counter'] = Variable<int>(maxFlameCounter.value);
}
if (maxFlameCounterFrom.present) {
map['max_flame_counter_from'] =
Variable<DateTime>(maxFlameCounterFrom.value);
}
if (lastMessageExchange.present) { if (lastMessageExchange.present) {
map['last_message_exchange'] = map['last_message_exchange'] =
Variable<DateTime>(lastMessageExchange.value); Variable<DateTime>(lastMessageExchange.value);
@ -1483,6 +1573,8 @@ class GroupsCompanion extends UpdateCompanion<Group> {
..write('lastFlameCounterChange: $lastFlameCounterChange, ') ..write('lastFlameCounterChange: $lastFlameCounterChange, ')
..write('lastFlameSync: $lastFlameSync, ') ..write('lastFlameSync: $lastFlameSync, ')
..write('flameCounter: $flameCounter, ') ..write('flameCounter: $flameCounter, ')
..write('maxFlameCounter: $maxFlameCounter, ')
..write('maxFlameCounterFrom: $maxFlameCounterFrom, ')
..write('lastMessageExchange: $lastMessageExchange, ') ..write('lastMessageExchange: $lastMessageExchange, ')
..write('rowid: $rowid') ..write('rowid: $rowid')
..write(')')) ..write(')'))
@ -7414,6 +7506,8 @@ typedef $$GroupsTableCreateCompanionBuilder = GroupsCompanion Function({
Value<DateTime?> lastFlameCounterChange, Value<DateTime?> lastFlameCounterChange,
Value<DateTime?> lastFlameSync, Value<DateTime?> lastFlameSync,
Value<int> flameCounter, Value<int> flameCounter,
Value<int> maxFlameCounter,
Value<DateTime?> maxFlameCounterFrom,
Value<DateTime> lastMessageExchange, Value<DateTime> lastMessageExchange,
Value<int> rowid, Value<int> rowid,
}); });
@ -7433,6 +7527,8 @@ typedef $$GroupsTableUpdateCompanionBuilder = GroupsCompanion Function({
Value<DateTime?> lastFlameCounterChange, Value<DateTime?> lastFlameCounterChange,
Value<DateTime?> lastFlameSync, Value<DateTime?> lastFlameSync,
Value<int> flameCounter, Value<int> flameCounter,
Value<int> maxFlameCounter,
Value<DateTime?> maxFlameCounterFrom,
Value<DateTime> lastMessageExchange, Value<DateTime> lastMessageExchange,
Value<int> rowid, Value<int> rowid,
}); });
@ -7516,6 +7612,14 @@ class $$GroupsTableFilterComposer extends Composer<_$TwonlyDB, $GroupsTable> {
ColumnFilters<int> get flameCounter => $composableBuilder( ColumnFilters<int> get flameCounter => $composableBuilder(
column: $table.flameCounter, builder: (column) => ColumnFilters(column)); column: $table.flameCounter, builder: (column) => ColumnFilters(column));
ColumnFilters<int> get maxFlameCounter => $composableBuilder(
column: $table.maxFlameCounter,
builder: (column) => ColumnFilters(column));
ColumnFilters<DateTime> get maxFlameCounterFrom => $composableBuilder(
column: $table.maxFlameCounterFrom,
builder: (column) => ColumnFilters(column));
ColumnFilters<DateTime> get lastMessageExchange => $composableBuilder( ColumnFilters<DateTime> get lastMessageExchange => $composableBuilder(
column: $table.lastMessageExchange, column: $table.lastMessageExchange,
builder: (column) => ColumnFilters(column)); builder: (column) => ColumnFilters(column));
@ -7606,6 +7710,14 @@ class $$GroupsTableOrderingComposer extends Composer<_$TwonlyDB, $GroupsTable> {
column: $table.flameCounter, column: $table.flameCounter,
builder: (column) => ColumnOrderings(column)); builder: (column) => ColumnOrderings(column));
ColumnOrderings<int> get maxFlameCounter => $composableBuilder(
column: $table.maxFlameCounter,
builder: (column) => ColumnOrderings(column));
ColumnOrderings<DateTime> get maxFlameCounterFrom => $composableBuilder(
column: $table.maxFlameCounterFrom,
builder: (column) => ColumnOrderings(column));
ColumnOrderings<DateTime> get lastMessageExchange => $composableBuilder( ColumnOrderings<DateTime> get lastMessageExchange => $composableBuilder(
column: $table.lastMessageExchange, column: $table.lastMessageExchange,
builder: (column) => ColumnOrderings(column)); builder: (column) => ColumnOrderings(column));
@ -7667,6 +7779,12 @@ class $$GroupsTableAnnotationComposer
GeneratedColumn<int> get flameCounter => $composableBuilder( GeneratedColumn<int> get flameCounter => $composableBuilder(
column: $table.flameCounter, builder: (column) => column); column: $table.flameCounter, builder: (column) => column);
GeneratedColumn<int> get maxFlameCounter => $composableBuilder(
column: $table.maxFlameCounter, builder: (column) => column);
GeneratedColumn<DateTime> get maxFlameCounterFrom => $composableBuilder(
column: $table.maxFlameCounterFrom, builder: (column) => column);
GeneratedColumn<DateTime> get lastMessageExchange => $composableBuilder( GeneratedColumn<DateTime> get lastMessageExchange => $composableBuilder(
column: $table.lastMessageExchange, builder: (column) => column); column: $table.lastMessageExchange, builder: (column) => column);
@ -7730,6 +7848,8 @@ class $$GroupsTableTableManager extends RootTableManager<
Value<DateTime?> lastFlameCounterChange = const Value.absent(), Value<DateTime?> lastFlameCounterChange = const Value.absent(),
Value<DateTime?> lastFlameSync = const Value.absent(), Value<DateTime?> lastFlameSync = const Value.absent(),
Value<int> flameCounter = const Value.absent(), Value<int> flameCounter = const Value.absent(),
Value<int> maxFlameCounter = const Value.absent(),
Value<DateTime?> maxFlameCounterFrom = const Value.absent(),
Value<DateTime> lastMessageExchange = const Value.absent(), Value<DateTime> lastMessageExchange = const Value.absent(),
Value<int> rowid = const Value.absent(), Value<int> rowid = const Value.absent(),
}) => }) =>
@ -7749,6 +7869,8 @@ class $$GroupsTableTableManager extends RootTableManager<
lastFlameCounterChange: lastFlameCounterChange, lastFlameCounterChange: lastFlameCounterChange,
lastFlameSync: lastFlameSync, lastFlameSync: lastFlameSync,
flameCounter: flameCounter, flameCounter: flameCounter,
maxFlameCounter: maxFlameCounter,
maxFlameCounterFrom: maxFlameCounterFrom,
lastMessageExchange: lastMessageExchange, lastMessageExchange: lastMessageExchange,
rowid: rowid, rowid: rowid,
), ),
@ -7768,6 +7890,8 @@ class $$GroupsTableTableManager extends RootTableManager<
Value<DateTime?> lastFlameCounterChange = const Value.absent(), Value<DateTime?> lastFlameCounterChange = const Value.absent(),
Value<DateTime?> lastFlameSync = const Value.absent(), Value<DateTime?> lastFlameSync = const Value.absent(),
Value<int> flameCounter = const Value.absent(), Value<int> flameCounter = const Value.absent(),
Value<int> maxFlameCounter = const Value.absent(),
Value<DateTime?> maxFlameCounterFrom = const Value.absent(),
Value<DateTime> lastMessageExchange = const Value.absent(), Value<DateTime> lastMessageExchange = const Value.absent(),
Value<int> rowid = const Value.absent(), Value<int> rowid = const Value.absent(),
}) => }) =>
@ -7787,6 +7911,8 @@ class $$GroupsTableTableManager extends RootTableManager<
lastFlameCounterChange: lastFlameCounterChange, lastFlameCounterChange: lastFlameCounterChange,
lastFlameSync: lastFlameSync, lastFlameSync: lastFlameSync,
flameCounter: flameCounter, flameCounter: flameCounter,
maxFlameCounter: maxFlameCounter,
maxFlameCounterFrom: maxFlameCounterFrom,
lastMessageExchange: lastMessageExchange, lastMessageExchange: lastMessageExchange,
rowid: rowid, rowid: rowid,
), ),

View file

@ -68,6 +68,7 @@ message EncryptedContent {
optional int64 removedUser = 2; optional int64 removedUser = 2;
optional int64 groupName = 3; optional int64 groupName = 3;
optional int64 deleteMessagesAfterMilliseconds = 4; optional int64 deleteMessagesAfterMilliseconds = 4;
bytes stateKey = 5;
} }
message TextMessage { message TextMessage {

View file

@ -81,10 +81,18 @@ Future<void> handleRemoteMessage(RemoteMessage message) async {
if (!Platform.isAndroid) { if (!Platform.isAndroid) {
Log.error('Got message in Dart while on iOS'); Log.error('Got message in Dart while on iOS');
} }
if (message.notification != null && globalIsAppInBackground) {
Log.error(
'Got notification but app is in background, so the SDK already have shown the message.',
);
return;
}
if (message.notification != null) { if (message.notification != null || message.data['title'] != null) {
final title = message.notification!.title ?? ''; final title =
final body = message.notification!.body ?? ''; message.notification?.title ?? message.data['title'] as String? ?? '';
final body =
message.notification?.body ?? message.data['body'] as String? ?? '';
await customLocalPushNotification(title, body); await customLocalPushNotification(title, body);
} else if (message.data['push_data'] != null) { } else if (message.data['push_data'] != null) {
await handlePushData(message.data['push_data'] as String); await handlePushData(message.data['push_data'] as String);

View file

@ -16,16 +16,17 @@ final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin(); FlutterLocalNotificationsPlugin();
Future<void> customLocalPushNotification(String title, String msg) async { Future<void> customLocalPushNotification(String title, String msg) async {
const androidNotificationDetails = AndroidNotificationDetails( final androidNotificationDetails = AndroidNotificationDetails(
'1', '1',
'System', 'System',
channelDescription: 'System messages.', channelDescription: 'System messages.',
importance: Importance.max, importance: Importance.max,
priority: Priority.max, priority: Priority.max,
styleInformation: BigTextStyleInformation(msg),
); );
const darwinNotificationDetails = DarwinNotificationDetails(); const darwinNotificationDetails = DarwinNotificationDetails();
const notificationDetails = NotificationDetails( final notificationDetails = NotificationDetails(
android: androidNotificationDetails, android: androidNotificationDetails,
iOS: darwinNotificationDetails, iOS: darwinNotificationDetails,
); );