1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-18 15:58:04 +00:00

Cache the list of friends

This commit is contained in:
2019-05-04 19:35:03 +02:00
parent 62125d7c3d
commit 67a6befc02
6 changed files with 100 additions and 12 deletions

View File

@ -45,4 +45,14 @@ abstract class ConversationsMessagesTableContract {
static const C_TIME_INSERT = "time_insert";
static const C_MESSAGE = "message";
static const C_IMAGE_URL = "image_url";
}
/// Friends table contract
abstract class FriendsListTableContract {
static const TABLE_NAME = "friends";
static const C_ID = BaseTableContract.C_ID;
static const C_ACCEPTED = "accepted";
static const C_LAST_ACTIVE = "last_active";
static const C_FOLLOWING = "following";
static const C_CAN_POST_TEXTS = "can_post_texts";
}

View File

@ -45,6 +45,10 @@ abstract class DatabaseHelper {
await db.execute(
"DROP TABLE IF EXISTS ${ConversationsMessagesTableContract.TABLE_NAME}");
// Drop friends list table
await db.execute(
"DROP TABLE IF EXISTS ${FriendsListTableContract.TABLE_NAME}");
// Initialize database again
await _initializeDatabase(db, newVersion);
}
@ -82,5 +86,14 @@ abstract class DatabaseHelper {
"${ConversationsMessagesTableContract.C_MESSAGE} TEXT, "
"${ConversationsMessagesTableContract.C_IMAGE_URL} TEXT"
")");
// Friends list table
await db.execute("CREATE TABLE ${FriendsListTableContract.TABLE_NAME} ("
"${FriendsListTableContract.C_ID} INTEGER PRIMARY KEY, "
"${FriendsListTableContract.C_ACCEPTED} INTEGER, "
"${FriendsListTableContract.C_LAST_ACTIVE} INTEGER, "
"${FriendsListTableContract.C_FOLLOWING} INTEGER, "
"${FriendsListTableContract.C_CAN_POST_TEXTS} INTEGER"
")");
}
}

View File

@ -0,0 +1,15 @@
import 'package:comunic/helpers/database/database_contract.dart';
import 'package:comunic/helpers/database/model_database_helper.dart';
import 'package:comunic/models/friend.dart';
/// Friends database helper
///
/// @author Pierre HUBERT
class FriendsDatabaseHelper extends ModelDatabaseHelper<Friend> {
@override
Friend initializeFromMap(Map<String, dynamic> map) => Friend.fromMap(map);
@override
String tableName() => FriendsListTableContract.TABLE_NAME;
}