Merge branch 'notifications-fix-cache-being-unstable' into 'master'
[Store][NotificationsCache] Fixing issues that caused some cache errors See merge request famedly/famedlysdk!68
This commit is contained in:
commit
69ad50a88f
|
@ -55,7 +55,7 @@ class Store {
|
||||||
_init() async {
|
_init() async {
|
||||||
var databasePath = await getDatabasesPath();
|
var databasePath = await getDatabasesPath();
|
||||||
String path = p.join(databasePath, "FluffyMatrix.db");
|
String path = p.join(databasePath, "FluffyMatrix.db");
|
||||||
_db = await openDatabase(path, version: 11,
|
_db = await openDatabase(path, version: 12,
|
||||||
onCreate: (Database db, int version) async {
|
onCreate: (Database db, int version) async {
|
||||||
await createTables(db);
|
await createTables(db);
|
||||||
}, onUpgrade: (Database db, int oldVersion, int newVersion) async {
|
}, onUpgrade: (Database db, int oldVersion, int newVersion) async {
|
||||||
|
@ -665,19 +665,27 @@ class Store {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future forgetNotification(String roomID) async {
|
Future forgetNotification(String roomID) async {
|
||||||
|
assert(roomID != "");
|
||||||
await db
|
await db
|
||||||
.rawDelete("DELETE FROM NotificationsCache WHERE chat_id=?", [roomID]);
|
.rawDelete("DELETE FROM NotificationsCache WHERE chat_id=?", [roomID]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future addNotification(String roomID, String event_id, int uniqueID) async {
|
Future addNotification(String roomID, String event_id, int uniqueID) async {
|
||||||
await db.rawInsert("INSERT INTO NotificationsCache VALUES (?, ?,?)",
|
assert(roomID != "");
|
||||||
|
assert(event_id != "");
|
||||||
|
assert(uniqueID != "");
|
||||||
|
await db.rawInsert(
|
||||||
|
"INSERT INTO NotificationsCache(id, chat_id, event_id) VALUES (?, ?, ?)",
|
||||||
[uniqueID, roomID, event_id]);
|
[uniqueID, roomID, event_id]);
|
||||||
|
// Make sure we got the same unique ID everywhere
|
||||||
|
await db.rawUpdate("UPDATE NotificationsCache SET id=? WHERE chat_id=?", [uniqueID, roomID]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<Map<String, dynamic>>> getNotificationByRoom(
|
Future<List<Map<String, dynamic>>> getNotificationByRoom(
|
||||||
String room_id) async {
|
String room_id) async {
|
||||||
|
assert(room_id != "");
|
||||||
List<Map<String, dynamic>> res = await db.rawQuery(
|
List<Map<String, dynamic>> res = await db.rawQuery(
|
||||||
"SELECT * FROM NotificationsCache WHERE chat_id=?", [room_id]);
|
"SELECT * FROM NotificationsCache WHERE chat_id=?", [room_id]);
|
||||||
if (res.length == 0) return null;
|
if (res.length == 0) return null;
|
||||||
|
@ -766,7 +774,7 @@ class Store {
|
||||||
|
|
||||||
/// The database scheme for the NotificationsCache class.
|
/// The database scheme for the NotificationsCache class.
|
||||||
"NotificationsCache": 'CREATE TABLE IF NOT EXISTS NotificationsCache(' +
|
"NotificationsCache": 'CREATE TABLE IF NOT EXISTS NotificationsCache(' +
|
||||||
'id int PRIMARY KEY, ' +
|
'id int, ' +
|
||||||
'chat_id TEXT, ' + // The chat id
|
'chat_id TEXT, ' + // The chat id
|
||||||
'event_id TEXT, ' + // The matrix id of the Event
|
'event_id TEXT, ' + // The matrix id of the Event
|
||||||
'UNIQUE(event_id))',
|
'UNIQUE(event_id))',
|
||||||
|
|
Loading…
Reference in a new issue