TF-3260 Load & Display App Grid Linagora Ecosystem

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2024-12-09 12:40:57 +07:00
committed by Dat H. Pham
parent 95f05c4715
commit dce74b43e9
48 changed files with 894 additions and 435 deletions
@@ -1,40 +1,42 @@
import 'package:equatable/equatable.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/linagora_ecosystem/app_linagora_ecosystem.dart';
part 'linagora_app.g.dart';
@JsonSerializable(explicitToJson: true, includeIfNull: false)
class LinagoraApp with EquatableMixin{
@JsonKey(name: 'appName')
final String appName;
class LinagoraApp extends AppLinagoraEcosystem {
@JsonKey(name: 'icon')
final String? iconName;
@JsonKey(name: 'appLink')
final Uri appUri;
final String? androidPackageId;
final String? iosUrlScheme;
final String? iosAppStoreLink;
final Uri? publicIconUri;
LinagoraApp(
this.appName,
this.appUri,
{
this.iconName,
this.androidPackageId,
this.iosUrlScheme,
this.iosAppStoreLink,
this.publicIconUri
}
);
LinagoraApp({
required this.appUri,
this.iconName,
this.publicIconUri,
super.appName,
super.androidPackageId,
super.iosUrlScheme,
super.iosAppStoreLink,
});
factory LinagoraApp.fromJson(Map<String, dynamic> json) => _$LinagoraAppFromJson(json);
@override
Map<String, dynamic> toJson() => _$LinagoraAppToJson(this);
@override
String? getIconPath(ImagePaths imagePaths) => iconName != null
? imagePaths.getConfigurationImagePath(iconName!)
: publicIconUri?.toString();
@override
Uri? get appRedirectLink => appUri;
@override
List<Object?> get props => [
appName,