Compare commits
No commits in common. "8067c35c70b0a0800fc3b3f0d8bb365d0b690b6b" and "03f2470dae2e191a0ca107ca13330d9b4e961f5d" have entirely different histories.
8067c35c70
...
03f2470dae
@ -8,7 +8,6 @@ import 'package:solian/providers/auth.dart';
|
|||||||
import 'package:solian/providers/content/channel.dart';
|
import 'package:solian/providers/content/channel.dart';
|
||||||
import 'package:solian/providers/content/realm.dart';
|
import 'package:solian/providers/content/realm.dart';
|
||||||
import 'package:solian/providers/relation.dart';
|
import 'package:solian/providers/relation.dart';
|
||||||
import 'package:solian/providers/stickers.dart';
|
|
||||||
import 'package:solian/providers/theme_switcher.dart';
|
import 'package:solian/providers/theme_switcher.dart';
|
||||||
import 'package:solian/providers/websocket.dart';
|
import 'package:solian/providers/websocket.dart';
|
||||||
import 'package:solian/services.dart';
|
import 'package:solian/services.dart';
|
||||||
@ -117,7 +116,6 @@ class _BootstrapperShellState extends State<BootstrapperShell> {
|
|||||||
Get.find<RealmProvider>().refreshAvailableRealms(),
|
Get.find<RealmProvider>().refreshAvailableRealms(),
|
||||||
Get.find<ChannelProvider>().refreshAvailableChannel(),
|
Get.find<ChannelProvider>().refreshAvailableChannel(),
|
||||||
Get.find<RelationshipProvider>().refreshRelativeList(),
|
Get.find<RelationshipProvider>().refreshRelativeList(),
|
||||||
Get.find<StickerProvider>().refreshAvailableStickers(),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -11,7 +11,6 @@ import 'package:solian/bootstrapper.dart';
|
|||||||
import 'package:solian/firebase_options.dart';
|
import 'package:solian/firebase_options.dart';
|
||||||
import 'package:solian/platform.dart';
|
import 'package:solian/platform.dart';
|
||||||
import 'package:solian/providers/attachment_uploader.dart';
|
import 'package:solian/providers/attachment_uploader.dart';
|
||||||
import 'package:solian/providers/stickers.dart';
|
|
||||||
import 'package:solian/providers/theme_switcher.dart';
|
import 'package:solian/providers/theme_switcher.dart';
|
||||||
import 'package:solian/providers/websocket.dart';
|
import 'package:solian/providers/websocket.dart';
|
||||||
import 'package:solian/providers/auth.dart';
|
import 'package:solian/providers/auth.dart';
|
||||||
@ -121,7 +120,6 @@ class SolianApp extends StatelessWidget {
|
|||||||
Get.lazyPut(() => AuthProvider());
|
Get.lazyPut(() => AuthProvider());
|
||||||
Get.lazyPut(() => RelationshipProvider());
|
Get.lazyPut(() => RelationshipProvider());
|
||||||
Get.lazyPut(() => PostProvider());
|
Get.lazyPut(() => PostProvider());
|
||||||
Get.lazyPut(() => StickerProvider());
|
|
||||||
Get.lazyPut(() => AttachmentProvider());
|
Get.lazyPut(() => AttachmentProvider());
|
||||||
Get.lazyPut(() => WebSocketProvider());
|
Get.lazyPut(() => WebSocketProvider());
|
||||||
Get.lazyPut(() => StatusProvider());
|
Get.lazyPut(() => StatusProvider());
|
||||||
|
@ -1,38 +1,5 @@
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:solian/models/pagination.dart';
|
|
||||||
import 'package:solian/models/stickers.dart';
|
|
||||||
import 'package:solian/services.dart';
|
|
||||||
|
|
||||||
class StickerProvider extends GetxController {
|
class StickerProvider extends GetxController {
|
||||||
final RxMap<String, String> aliasImageMapping = RxMap();
|
|
||||||
final RxMap<String, List<Sticker>> availableStickers = RxMap();
|
|
||||||
|
|
||||||
Future<void> refreshAvailableStickers() async {
|
|
||||||
final client = ServiceFinder.configureClient('files');
|
|
||||||
final resp = await client.get(
|
|
||||||
'/stickers/manifest?take=100',
|
|
||||||
);
|
|
||||||
if (resp.statusCode == 200) {
|
|
||||||
final result = PaginationResult.fromJson(resp.body);
|
|
||||||
final out = result.data?.map((e) => StickerPack.fromJson(e)).toList();
|
|
||||||
if (out == null) return;
|
|
||||||
|
|
||||||
for (final pack in out) {
|
|
||||||
for (final sticker in (pack.stickers ?? List<Sticker>.empty())) {
|
|
||||||
sticker.pack = pack;
|
|
||||||
final imageUrl = ServiceFinder.buildUrl(
|
|
||||||
'files',
|
|
||||||
'/attachments/${sticker.attachmentId}',
|
|
||||||
);
|
|
||||||
aliasImageMapping['${pack.prefix}${sticker.alias}'.camelCase!] =
|
|
||||||
imageUrl;
|
|
||||||
if (availableStickers[pack.prefix] == null) {
|
|
||||||
availableStickers[pack.prefix] = List.empty(growable: true);
|
|
||||||
}
|
|
||||||
availableStickers[pack.prefix]!.add(sticker);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
availableStickers.refresh();
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -6,7 +6,6 @@ import 'package:solian/models/pagination.dart';
|
|||||||
import 'package:solian/models/stickers.dart';
|
import 'package:solian/models/stickers.dart';
|
||||||
import 'package:solian/platform.dart';
|
import 'package:solian/platform.dart';
|
||||||
import 'package:solian/providers/auth.dart';
|
import 'package:solian/providers/auth.dart';
|
||||||
import 'package:solian/providers/stickers.dart';
|
|
||||||
import 'package:solian/services.dart';
|
import 'package:solian/services.dart';
|
||||||
import 'package:solian/widgets/stickers/sticker_uploader.dart';
|
import 'package:solian/widgets/stickers/sticker_uploader.dart';
|
||||||
|
|
||||||
@ -133,8 +132,6 @@ class _StickerScreenState extends State<StickerScreen> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
final StickerProvider sticker = Get.find();
|
|
||||||
sticker.refreshAvailableStickers();
|
|
||||||
_pagingController.dispose();
|
_pagingController.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_markdown_selectionarea/flutter_markdown.dart';
|
import 'package:flutter_markdown_selectionarea/flutter_markdown.dart';
|
||||||
import 'package:get/get.dart';
|
|
||||||
import 'package:markdown/markdown.dart' as markdown;
|
import 'package:markdown/markdown.dart' as markdown;
|
||||||
import 'package:markdown/markdown.dart';
|
import 'package:markdown/markdown.dart';
|
||||||
import 'package:solian/providers/stickers.dart';
|
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
import 'account/account_profile_popup.dart';
|
import 'account/account_profile_popup.dart';
|
||||||
@ -103,15 +101,10 @@ class _CustomEmoteInlineSyntax extends InlineSyntax {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
bool onMatch(markdown.InlineParser parser, Match match) {
|
bool onMatch(markdown.InlineParser parser, Match match) {
|
||||||
final StickerProvider sticker = Get.find();
|
// final alias = match[1]!;
|
||||||
final alias = match[1]!;
|
// TODO mapping things...
|
||||||
if (sticker.aliasImageMapping[alias] == null) {
|
|
||||||
parser.advanceBy(1);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final element = markdown.Element.empty('img');
|
final element = markdown.Element.empty('img');
|
||||||
element.attributes['src'] = sticker.aliasImageMapping[alias]!;
|
element.attributes['src'] = 'https://www.twitch.tv/creatorcamp/assets/uploads/lul.png';
|
||||||
parser.addNode(element);
|
parser.addNode(element);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user