mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 10:03:31 +00:00
Add network icon to timeline entry seeded from Application data
This commit is contained in:
parent
cba27ae21b
commit
cb3c2d97b7
10 changed files with 261 additions and 51 deletions
3
devtools_options.yaml
Normal file
3
devtools_options.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
description: This file stores settings for Dart & Flutter DevTools.
|
||||||
|
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||||
|
extensions:
|
BIN
fonts/forkawesome-webfont.ttf
Normal file
BIN
fonts/forkawesome-webfont.ttf
Normal file
Binary file not shown.
|
@ -15,6 +15,7 @@ import '../../utils/dateutils.dart';
|
||||||
import '../image_control.dart';
|
import '../image_control.dart';
|
||||||
import '../padding.dart';
|
import '../padding.dart';
|
||||||
import '../visibility_dialog.dart';
|
import '../visibility_dialog.dart';
|
||||||
|
import 'timeline_network_info_control.dart';
|
||||||
|
|
||||||
class StatusHeaderControl extends StatelessWidget {
|
class StatusHeaderControl extends StatelessWidget {
|
||||||
static final _logger = Logger('$StatusHeaderControl');
|
static final _logger = Logger('$StatusHeaderControl');
|
||||||
|
@ -135,6 +136,7 @@ class StatusHeaderControl extends StatelessWidget {
|
||||||
size: Theme.of(context).textTheme.bodySmall?.fontSize,
|
size: Theme.of(context).textTheme.bodySmall?.fontSize,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
TimelineNetworkInfoControl(info: entry.networkInfo),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
78
lib/controls/timeline/timeline_network_info_control.dart
Normal file
78
lib/controls/timeline/timeline_network_info_control.dart
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../../globals.dart';
|
||||||
|
import '../../models/timeline_network_info.dart';
|
||||||
|
|
||||||
|
class TimelineNetworkInfoControl extends StatelessWidget {
|
||||||
|
final TimelineNetworkInfo info;
|
||||||
|
|
||||||
|
const TimelineNetworkInfoControl({super.key, required this.info});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return GestureDetector(
|
||||||
|
onTap: () async => showConfirmDialog(context,
|
||||||
|
info.network == KnownNetworks.unknown ? info.name : info.labelName),
|
||||||
|
child: Text(
|
||||||
|
info.forkAwesomeUnicode,
|
||||||
|
style: const TextStyle(fontFamily: 'ForkAwesome'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension KnownNetworkExtensions on TimelineNetworkInfo {
|
||||||
|
String get labelName => switch (network) {
|
||||||
|
KnownNetworks.activityPub => 'ActivityPub',
|
||||||
|
KnownNetworks.bluesky => 'Bluesky',
|
||||||
|
KnownNetworks.calckey => 'Calckey',
|
||||||
|
KnownNetworks.diaspora => 'Diaspora',
|
||||||
|
KnownNetworks.drupal => 'Drupal',
|
||||||
|
KnownNetworks.firefish => 'Firefish',
|
||||||
|
KnownNetworks.friendica => 'Friendica',
|
||||||
|
KnownNetworks.funkwhale => 'Funkwhale',
|
||||||
|
KnownNetworks.gnu_social => 'GNU Social',
|
||||||
|
KnownNetworks.hubzilla => 'Hubzilla',
|
||||||
|
KnownNetworks.kbin => 'Kbin',
|
||||||
|
KnownNetworks.lemmy => 'Lemmy',
|
||||||
|
KnownNetworks.mastodon => 'Mastodon',
|
||||||
|
KnownNetworks.nextcloud => 'Nextcloud',
|
||||||
|
KnownNetworks.peertube => 'PeerTube',
|
||||||
|
KnownNetworks.pixelfed => 'Pixelfed',
|
||||||
|
KnownNetworks.pleroma => 'Pleroma',
|
||||||
|
KnownNetworks.plume => 'Plume',
|
||||||
|
KnownNetworks.red => 'Red',
|
||||||
|
KnownNetworks.redmatrix => 'RedMatrix',
|
||||||
|
KnownNetworks.socialhome => 'Socialhome',
|
||||||
|
KnownNetworks.threads => 'Threads',
|
||||||
|
KnownNetworks.wordpress => 'WordPress',
|
||||||
|
KnownNetworks.unknown => 'Unknown',
|
||||||
|
};
|
||||||
|
|
||||||
|
String get forkAwesomeUnicode => switch (network) {
|
||||||
|
KnownNetworks.activityPub => '\uf2f2',
|
||||||
|
KnownNetworks.bluesky => '\uf111',
|
||||||
|
KnownNetworks.calckey => '\uf1ec',
|
||||||
|
KnownNetworks.diaspora => '\uf2e5',
|
||||||
|
KnownNetworks.drupal => '\uf1a9',
|
||||||
|
KnownNetworks.firefish => '\uf06d',
|
||||||
|
KnownNetworks.friendica => '\uf2e6',
|
||||||
|
KnownNetworks.funkwhale => '\uf339',
|
||||||
|
KnownNetworks.gnu_social => '\uf2e7',
|
||||||
|
KnownNetworks.hubzilla => '\uf2eb',
|
||||||
|
KnownNetworks.kbin => '\uf058',
|
||||||
|
KnownNetworks.lemmy => '\uf0c0',
|
||||||
|
KnownNetworks.mastodon => '\uf2e1',
|
||||||
|
KnownNetworks.nextcloud => '\uf307',
|
||||||
|
KnownNetworks.peertube => '\uf2e4',
|
||||||
|
KnownNetworks.pixelfed => '\uf314',
|
||||||
|
KnownNetworks.pleroma => '\uf324',
|
||||||
|
KnownNetworks.plume => '\uf356',
|
||||||
|
KnownNetworks.red => '\uf2eb',
|
||||||
|
KnownNetworks.redmatrix => '\uf2eb',
|
||||||
|
KnownNetworks.socialhome => '\uf2ec',
|
||||||
|
KnownNetworks.threads => '\uf16d',
|
||||||
|
KnownNetworks.wordpress => '\uf19a',
|
||||||
|
KnownNetworks.unknown => '\uf059',
|
||||||
|
};
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import 'link_data.dart';
|
||||||
import 'link_preview_data.dart';
|
import 'link_preview_data.dart';
|
||||||
import 'location_data.dart';
|
import 'location_data.dart';
|
||||||
import 'media_attachment.dart';
|
import 'media_attachment.dart';
|
||||||
|
import 'timeline_network_info.dart';
|
||||||
import 'visibility.dart';
|
import 'visibility.dart';
|
||||||
|
|
||||||
class TimelineEntry {
|
class TimelineEntry {
|
||||||
|
@ -52,10 +53,12 @@ class TimelineEntry {
|
||||||
|
|
||||||
final List<MediaAttachment> mediaAttachments;
|
final List<MediaAttachment> mediaAttachments;
|
||||||
|
|
||||||
final EngagementSummary engagementSummary;
|
final TimelineNetworkInfo networkInfo;
|
||||||
|
|
||||||
final LinkPreviewData? linkPreviewData;
|
final LinkPreviewData? linkPreviewData;
|
||||||
|
|
||||||
|
final EngagementSummary engagementSummary;
|
||||||
|
|
||||||
TimelineEntry(
|
TimelineEntry(
|
||||||
{this.id = '',
|
{this.id = '',
|
||||||
this.parentId = '',
|
this.parentId = '',
|
||||||
|
@ -80,6 +83,7 @@ class TimelineEntry {
|
||||||
this.dislikes = const [],
|
this.dislikes = const [],
|
||||||
this.mediaAttachments = const [],
|
this.mediaAttachments = const [],
|
||||||
this.engagementSummary = const EngagementSummary(),
|
this.engagementSummary = const EngagementSummary(),
|
||||||
|
this.networkInfo = TimelineNetworkInfo.empty,
|
||||||
this.linkPreviewData})
|
this.linkPreviewData})
|
||||||
: visibility = visibility ?? Visibility.public();
|
: visibility = visibility ?? Visibility.public();
|
||||||
|
|
||||||
|
@ -108,6 +112,7 @@ class TimelineEntry {
|
||||||
likes = [],
|
likes = [],
|
||||||
dislikes = [],
|
dislikes = [],
|
||||||
mediaAttachments = [],
|
mediaAttachments = [],
|
||||||
|
networkInfo = TimelineNetworkInfo.empty,
|
||||||
engagementSummary = const EngagementSummary(),
|
engagementSummary = const EngagementSummary(),
|
||||||
linkPreviewData = LinkPreviewData(link: 'fake link');
|
linkPreviewData = LinkPreviewData(link: 'fake link');
|
||||||
|
|
||||||
|
@ -138,6 +143,7 @@ class TimelineEntry {
|
||||||
List<Connection>? dislikes,
|
List<Connection>? dislikes,
|
||||||
List<MediaAttachment>? mediaAttachments,
|
List<MediaAttachment>? mediaAttachments,
|
||||||
EngagementSummary? engagementSummary,
|
EngagementSummary? engagementSummary,
|
||||||
|
TimelineNetworkInfo? networkInfo,
|
||||||
LinkPreviewData? linkPreviewData,
|
LinkPreviewData? linkPreviewData,
|
||||||
}) {
|
}) {
|
||||||
return TimelineEntry(
|
return TimelineEntry(
|
||||||
|
@ -165,6 +171,7 @@ class TimelineEntry {
|
||||||
dislikes: dislikes ?? this.dislikes,
|
dislikes: dislikes ?? this.dislikes,
|
||||||
mediaAttachments: mediaAttachments ?? this.mediaAttachments,
|
mediaAttachments: mediaAttachments ?? this.mediaAttachments,
|
||||||
engagementSummary: engagementSummary ?? this.engagementSummary,
|
engagementSummary: engagementSummary ?? this.engagementSummary,
|
||||||
|
networkInfo: networkInfo ?? this.networkInfo,
|
||||||
linkPreviewData: linkPreviewData ?? this.linkPreviewData,
|
linkPreviewData: linkPreviewData ?? this.linkPreviewData,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -205,6 +212,7 @@ class TimelineEntry {
|
||||||
likes == other.likes &&
|
likes == other.likes &&
|
||||||
dislikes == other.dislikes &&
|
dislikes == other.dislikes &&
|
||||||
mediaAttachments == other.mediaAttachments &&
|
mediaAttachments == other.mediaAttachments &&
|
||||||
|
networkInfo == other.networkInfo &&
|
||||||
engagementSummary == other.engagementSummary;
|
engagementSummary == other.engagementSummary;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -231,5 +239,6 @@ class TimelineEntry {
|
||||||
likes.hashCode ^
|
likes.hashCode ^
|
||||||
dislikes.hashCode ^
|
dislikes.hashCode ^
|
||||||
mediaAttachments.hashCode ^
|
mediaAttachments.hashCode ^
|
||||||
|
networkInfo.hashCode ^
|
||||||
engagementSummary.hashCode;
|
engagementSummary.hashCode;
|
||||||
}
|
}
|
||||||
|
|
56
lib/models/timeline_network_info.dart
Normal file
56
lib/models/timeline_network_info.dart
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
enum KnownNetworks {
|
||||||
|
activityPub,
|
||||||
|
bluesky,
|
||||||
|
calckey,
|
||||||
|
diaspora,
|
||||||
|
drupal,
|
||||||
|
firefish,
|
||||||
|
friendica,
|
||||||
|
funkwhale,
|
||||||
|
gnu_social,
|
||||||
|
hubzilla,
|
||||||
|
kbin,
|
||||||
|
lemmy,
|
||||||
|
mastodon,
|
||||||
|
nextcloud,
|
||||||
|
peertube,
|
||||||
|
pixelfed,
|
||||||
|
pleroma,
|
||||||
|
plume,
|
||||||
|
red,
|
||||||
|
redmatrix,
|
||||||
|
socialhome,
|
||||||
|
threads,
|
||||||
|
wordpress,
|
||||||
|
unknown,
|
||||||
|
}
|
||||||
|
|
||||||
|
class TimelineNetworkInfo {
|
||||||
|
static const empty = TimelineNetworkInfo(
|
||||||
|
name: 'Unknown',
|
||||||
|
vapidKey: '',
|
||||||
|
network: KnownNetworks.unknown,
|
||||||
|
);
|
||||||
|
|
||||||
|
final String name;
|
||||||
|
final String vapidKey;
|
||||||
|
final KnownNetworks network;
|
||||||
|
|
||||||
|
const TimelineNetworkInfo({
|
||||||
|
required this.name,
|
||||||
|
required this.vapidKey,
|
||||||
|
required this.network,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) =>
|
||||||
|
identical(this, other) ||
|
||||||
|
other is TimelineNetworkInfo &&
|
||||||
|
runtimeType == other.runtimeType &&
|
||||||
|
name == other.name &&
|
||||||
|
vapidKey == other.vapidKey &&
|
||||||
|
network == other.network;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode => name.hashCode ^ vapidKey.hashCode ^ network.hashCode;
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ import '../../models/engagement_summary.dart';
|
||||||
import '../../models/link_data.dart';
|
import '../../models/link_data.dart';
|
||||||
import '../../models/location_data.dart';
|
import '../../models/location_data.dart';
|
||||||
import '../../models/timeline_entry.dart';
|
import '../../models/timeline_entry.dart';
|
||||||
|
import '../../models/timeline_network_info.dart';
|
||||||
import '../../models/visibility.dart';
|
import '../../models/visibility.dart';
|
||||||
import '../../services/auth_service.dart';
|
import '../../services/auth_service.dart';
|
||||||
import '../../services/connections_manager.dart';
|
import '../../services/connections_manager.dart';
|
||||||
|
@ -17,6 +18,7 @@ import 'connection_mastodon_extensions.dart';
|
||||||
import 'hashtag_mastodon_extensions.dart';
|
import 'hashtag_mastodon_extensions.dart';
|
||||||
import 'link_preview_mastodon_extensions.dart';
|
import 'link_preview_mastodon_extensions.dart';
|
||||||
import 'media_attachment_mastodon_extension.dart';
|
import 'media_attachment_mastodon_extension.dart';
|
||||||
|
import 'timeline_network_info_mastodon_extensions.dart';
|
||||||
|
|
||||||
final _logger = Logger('TimelineEntryMastodonExtensions');
|
final _logger = Logger('TimelineEntryMastodonExtensions');
|
||||||
|
|
||||||
|
@ -143,6 +145,10 @@ extension TimelineEntryMastodonExtensions on TimelineEntry {
|
||||||
final connection = ConnectionMastodonExtensions.fromJson(json['account']);
|
final connection = ConnectionMastodonExtensions.fromJson(json['account']);
|
||||||
connectionManager?.upsertConnection(connection);
|
connectionManager?.upsertConnection(connection);
|
||||||
|
|
||||||
|
final networkInfo = json['application'] != null
|
||||||
|
? TimelineNetworkInfoMastodonExtensions.fromJson(json['application'])
|
||||||
|
: TimelineNetworkInfo.empty;
|
||||||
|
|
||||||
return TimelineEntry(
|
return TimelineEntry(
|
||||||
creationTimestamp: timestamp,
|
creationTimestamp: timestamp,
|
||||||
modificationTimestamp: modificationTimestamp,
|
modificationTimestamp: modificationTimestamp,
|
||||||
|
@ -165,6 +171,7 @@ extension TimelineEntryMastodonExtensions on TimelineEntry {
|
||||||
tags: tags,
|
tags: tags,
|
||||||
mediaAttachments: mediaAttachments,
|
mediaAttachments: mediaAttachments,
|
||||||
engagementSummary: engagementSummary,
|
engagementSummary: engagementSummary,
|
||||||
|
networkInfo: networkInfo,
|
||||||
linkPreviewData: linkPreviewData,
|
linkPreviewData: linkPreviewData,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
import '../../models/timeline_network_info.dart';
|
||||||
|
|
||||||
|
extension TimelineNetworkInfoMastodonExtensions on TimelineNetworkInfo {
|
||||||
|
static TimelineNetworkInfo fromJson(Map<String, dynamic> json) {
|
||||||
|
final String name = json['name'] ?? 'Unknown';
|
||||||
|
final vapidKey = json['vapid_key'] ?? '';
|
||||||
|
final nameMainPart = name.split('(').first.trim();
|
||||||
|
final KnownNetworks network = switch (nameMainPart.toLowerCase()) {
|
||||||
|
'api' => KnownNetworks.friendica,
|
||||||
|
'activitypub' => KnownNetworks.activityPub,
|
||||||
|
'akkoma' => KnownNetworks.pleroma,
|
||||||
|
'bluesky' => KnownNetworks.bluesky,
|
||||||
|
'diaspora' => KnownNetworks.diaspora,
|
||||||
|
'friendica' => KnownNetworks.friendica,
|
||||||
|
'friendika' => KnownNetworks.friendica,
|
||||||
|
'gnu social' => KnownNetworks.gnu_social,
|
||||||
|
'gnusocial' => KnownNetworks.gnu_social,
|
||||||
|
'hubzilla' => KnownNetworks.hubzilla,
|
||||||
|
'mastodon' => KnownNetworks.mastodon,
|
||||||
|
'peertube' => KnownNetworks.peertube,
|
||||||
|
'pixelfed' => KnownNetworks.pixelfed,
|
||||||
|
'pleroma' => KnownNetworks.pleroma,
|
||||||
|
'red' => KnownNetworks.hubzilla,
|
||||||
|
'redmatrix' => KnownNetworks.hubzilla,
|
||||||
|
'socialhome' => KnownNetworks.socialhome,
|
||||||
|
'wordpress' => KnownNetworks.wordpress,
|
||||||
|
'lemmy' => KnownNetworks.lemmy,
|
||||||
|
'plume' => KnownNetworks.plume,
|
||||||
|
'funkwhale' => KnownNetworks.funkwhale,
|
||||||
|
'nextcloud' => KnownNetworks.nextcloud,
|
||||||
|
'drupal' => KnownNetworks.drupal,
|
||||||
|
'firefish' => KnownNetworks.firefish,
|
||||||
|
'calckey' => KnownNetworks.calckey,
|
||||||
|
'kbin' => KnownNetworks.kbin,
|
||||||
|
'threads' => KnownNetworks.threads,
|
||||||
|
|
||||||
|
// Clients which are assumed to be interfacing with Friendica if got set as application
|
||||||
|
// list from blockbot's blockbot_is_fediverse_client
|
||||||
|
'mastodonandroid' => KnownNetworks.friendica,
|
||||||
|
'tootdeck-worker' => KnownNetworks.friendica,
|
||||||
|
'piefed' => KnownNetworks.friendica,
|
||||||
|
'brighteon' => KnownNetworks.friendica,
|
||||||
|
'pachli' => KnownNetworks.friendica,
|
||||||
|
'tusky' => KnownNetworks.friendica,
|
||||||
|
'mona' => KnownNetworks.friendica,
|
||||||
|
'mitra' => KnownNetworks.friendica,
|
||||||
|
'megalodonandroid' => KnownNetworks.friendica,
|
||||||
|
'fedilab' => KnownNetworks.friendica,
|
||||||
|
'mastodonapp' => KnownNetworks.friendica,
|
||||||
|
'toot!' => KnownNetworks.friendica,
|
||||||
|
'intravnews' => KnownNetworks.friendica,
|
||||||
|
'pixeldroid' => KnownNetworks.friendica,
|
||||||
|
'greatnews' => KnownNetworks.friendica,
|
||||||
|
'protopage' => KnownNetworks.friendica,
|
||||||
|
'newsfox' => KnownNetworks.friendica,
|
||||||
|
'vienna' => KnownNetworks.friendica,
|
||||||
|
'wp-urldetails' => KnownNetworks.friendica,
|
||||||
|
'husky' => KnownNetworks.friendica,
|
||||||
|
'activitypub-go-http-client' => KnownNetworks.friendica,
|
||||||
|
'mobilesafari' => KnownNetworks.friendica,
|
||||||
|
'mastodon-ios' => KnownNetworks.friendica,
|
||||||
|
'mastodonpy' => KnownNetworks.friendica,
|
||||||
|
'techniverse' => KnownNetworks.friendica,
|
||||||
|
'relatica' => KnownNetworks.friendica,
|
||||||
|
_ => KnownNetworks.unknown,
|
||||||
|
};
|
||||||
|
|
||||||
|
return TimelineNetworkInfo(
|
||||||
|
name: name,
|
||||||
|
vapidKey: vapidKey,
|
||||||
|
network: network,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
74
pubspec.lock
74
pubspec.lock
|
@ -181,10 +181,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: collection
|
name: collection
|
||||||
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.18.0"
|
version: "1.17.2"
|
||||||
color_blindness:
|
color_blindness:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -733,30 +733,6 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.8.1"
|
version: "4.8.1"
|
||||||
leak_tracker:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: leak_tracker
|
|
||||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "10.0.0"
|
|
||||||
leak_tracker_flutter_testing:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: leak_tracker_flutter_testing
|
|
||||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.1"
|
|
||||||
leak_tracker_testing:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: leak_tracker_testing
|
|
||||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "2.0.1"
|
|
||||||
lints:
|
lints:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -785,18 +761,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: matcher
|
name: matcher
|
||||||
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.12.16+1"
|
version: "0.12.16"
|
||||||
material_color_utilities:
|
material_color_utilities:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.0"
|
version: "0.5.0"
|
||||||
media_kit:
|
media_kit:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -873,10 +849,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.0"
|
version: "1.9.1"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -969,10 +945,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: path
|
name: path
|
||||||
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.9.0"
|
version: "1.8.3"
|
||||||
path_parsing:
|
path_parsing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1303,18 +1279,18 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: stack_trace
|
name: stack_trace
|
||||||
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.11.1"
|
version: "1.11.0"
|
||||||
stream_channel:
|
stream_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: stream_channel
|
name: stream_channel
|
||||||
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.1.2"
|
version: "2.1.1"
|
||||||
stream_transform:
|
stream_transform:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1359,10 +1335,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.6.1"
|
version: "0.6.0"
|
||||||
time_machine:
|
time_machine:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1547,14 +1523,6 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.17"
|
version: "2.0.17"
|
||||||
vm_service:
|
|
||||||
dependency: transitive
|
|
||||||
description:
|
|
||||||
name: vm_service
|
|
||||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "13.0.0"
|
|
||||||
volume_controller:
|
volume_controller:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1587,6 +1555,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.1.0"
|
version: "1.1.0"
|
||||||
|
web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: web
|
||||||
|
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.1.4-beta"
|
||||||
web_socket_channel:
|
web_socket_channel:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1644,5 +1620,5 @@ packages:
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.1.2"
|
version: "3.1.2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.2.0-0 <4.0.0"
|
dart: ">=3.1.0-185.0.dev <4.0.0"
|
||||||
flutter: ">=3.10.0"
|
flutter: ">=3.10.0"
|
||||||
|
|
|
@ -68,7 +68,11 @@ flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
assets:
|
assets:
|
||||||
- icon/relatica_logo.svg
|
- icon/relatica_logo.svg
|
||||||
|
fonts:
|
||||||
|
- family: ForkAwesome
|
||||||
|
fonts:
|
||||||
|
- asset: fonts/forkawesome-webfont.ttf
|
||||||
|
|
||||||
parts:
|
parts:
|
||||||
uet-lms:
|
uet-lms:
|
||||||
source: .
|
source: .
|
||||||
|
@ -80,6 +84,7 @@ parts:
|
||||||
stage-packages:
|
stage-packages:
|
||||||
- libsecret-1-0
|
- libsecret-1-0
|
||||||
- libjsoncpp1
|
- libjsoncpp1
|
||||||
|
|
||||||
# To add assets to your application, add an assets section, like this:
|
# To add assets to your application, add an assets section, like this:
|
||||||
# assets:
|
# assets:
|
||||||
# - images/a_dot_burr.jpeg
|
# - images/a_dot_burr.jpeg
|
||||||
|
|
Loading…
Reference in a new issue