1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 00:05:16 +00:00

Get custom emojies from server

This commit is contained in:
2020-04-28 18:47:47 +02:00
parent c42fe7f806
commit 032b247080
7 changed files with 101 additions and 16 deletions

View File

@ -1,4 +1,5 @@
import 'package:comunic/enums/user_page_visibility.dart';
import 'package:comunic/lists/custom_emojies_list.dart';
import 'package:comunic/models/user.dart';
import 'package:meta/meta.dart';
@ -17,6 +18,7 @@ class AdvancedUserInfo extends User {
@required UserPageVisibility pageVisibility,
@required String virtualDirectory,
@required String accountImageURL,
@required CustomEmojiesList customEmojies,
@required this.publicNote,
@required this.canPostTexts,
}) : assert(publicNote != null),
@ -27,5 +29,6 @@ class AdvancedUserInfo extends User {
lastName: lastName,
pageVisibility: pageVisibility,
virtualDirectory: virtualDirectory,
accountImageURL: accountImageURL);
accountImageURL: accountImageURL,
customEmojies: customEmojies);
}

View File

@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
/// Single custom emoji information
///
/// @author Pierre Hubert
class CustomEmoji {
final int id;
final int userID;
final String shortcut;
final String url;
const CustomEmoji({
@required this.id,
@required this.userID,
@required this.shortcut,
@required this.url,
}) : assert(id != null),
assert(userID != null),
assert(shortcut != null),
assert(url != null);
Map<String, dynamic> toMap() => {
"id": id,
"userID": userID,
"shortcut": shortcut,
"url": url,
};
CustomEmoji.fromMap(Map<String, dynamic> map)
: id = map["id"],
userID = map["userID"],
shortcut = map["shortcut"],
url = map["url"];
}

View File

@ -1,5 +1,8 @@
import 'dart:convert';
import 'package:comunic/enums/user_page_visibility.dart';
import 'package:comunic/helpers/database/database_contract.dart';
import 'package:comunic/lists/custom_emojies_list.dart';
import 'package:comunic/models/cache_model.dart';
import 'package:comunic/utils/ui_utils.dart';
import 'package:meta/meta.dart';
@ -14,6 +17,7 @@ class User extends CacheModel {
final UserPageVisibility pageVisibility;
final String virtualDirectory;
final String accountImageURL;
final CustomEmojiesList customEmojies;
const User({
@required int id,
@ -22,11 +26,13 @@ class User extends CacheModel {
@required this.pageVisibility,
@required this.virtualDirectory,
@required this.accountImageURL,
@required this.customEmojies,
}) : assert(id != null),
assert(firstName != null),
assert(lastName != null),
assert(pageVisibility != null),
assert(accountImageURL != null),
assert(customEmojies != null),
super(id: id);
/// Get user full name
@ -43,6 +49,8 @@ class User extends CacheModel {
UserTableContract.C_VISIBILITY: pageVisibility.toString(),
UserTableContract.C_VIRTUAL_DIRECTORY: virtualDirectory,
UserTableContract.C_ACCOUNT_IMAGE_URL: accountImageURL,
UserTableContract.C_CUSTOM_EMOJIES:
jsonEncode(customEmojies.toSerializableList()),
};
}
@ -53,5 +61,7 @@ class User extends CacheModel {
userPageVisibilityFromString(map[UserTableContract.C_VISIBILITY]),
this.virtualDirectory = map[UserTableContract.C_VIRTUAL_DIRECTORY],
this.accountImageURL = map[UserTableContract.C_ACCOUNT_IMAGE_URL],
this.customEmojies = CustomEmojiesList.fromSerializedList(
jsonDecode(map[UserTableContract.C_CUSTOM_EMOJIES])),
super.fromMap(map);
}