|
@@ -12,7 +12,8 @@ import '../resource/colors.gen.dart';
|
|
|
typedef TalkShareCallback = void Function(ShareTalkType shareType,
|
|
typedef TalkShareCallback = void Function(ShareTalkType shareType,
|
|
|
ShareTo shareTo, String fileName, String dialogTag);
|
|
ShareTo shareTo, String fileName, String dialogTag);
|
|
|
|
|
|
|
|
-void showTalkShareDialog(String? title, TalkShareCallback callback) {
|
|
|
|
|
|
|
+void showTalkShareDialog(String? title,
|
|
|
|
|
+ {required TalkShareCallback callback, List<ShareTalkType>? shareToType}) {
|
|
|
const String tag = 'showTalkShareDialog';
|
|
const String tag = 'showTalkShareDialog';
|
|
|
|
|
|
|
|
Rx<ShareTalkType> shareType = ShareTalkType.summary.obs;
|
|
Rx<ShareTalkType> shareType = ShareTalkType.summary.obs;
|
|
@@ -73,31 +74,27 @@ void showTalkShareDialog(String? title, TalkShareCallback callback) {
|
|
|
Divider(color: '#F6F6F6'.toColor(), height: 1.h),
|
|
Divider(color: '#F6F6F6'.toColor(), height: 1.h),
|
|
|
SizedBox(height: 20.h),
|
|
SizedBox(height: 20.h),
|
|
|
Obx(() {
|
|
Obx(() {
|
|
|
|
|
+ final type = shareToType ?? getDefaultShareType();
|
|
|
return Row(
|
|
return Row(
|
|
|
children: [
|
|
children: [
|
|
|
- Expanded(
|
|
|
|
|
|
|
+ for (int i = 0; i < type.length; i++) ...[
|
|
|
|
|
+ Expanded(
|
|
|
child: _buildShareTypeItem(
|
|
child: _buildShareTypeItem(
|
|
|
- StringName.talkTabSummary.tr,
|
|
|
|
|
- Assets.images.iconTalkShareSummary.provider(),
|
|
|
|
|
- shareType.value == ShareTalkType.summary, () {
|
|
|
|
|
- shareType.value = ShareTalkType.summary;
|
|
|
|
|
- })),
|
|
|
|
|
- SizedBox(width: 8.w),
|
|
|
|
|
- Expanded(
|
|
|
|
|
- child: _buildShareTypeItem(
|
|
|
|
|
- StringName.talkMindMap.tr,
|
|
|
|
|
- Assets.images.iconTalkMindMap.provider(),
|
|
|
|
|
- shareType.value == ShareTalkType.mindMap, () {
|
|
|
|
|
- shareType.value = ShareTalkType.mindMap;
|
|
|
|
|
- })),
|
|
|
|
|
- SizedBox(width: 8.w),
|
|
|
|
|
- Expanded(
|
|
|
|
|
- child: _buildShareTypeItem(
|
|
|
|
|
- StringName.talkTabOriginal.tr,
|
|
|
|
|
- Assets.images.iconTalkShareOriginal.provider(),
|
|
|
|
|
- shareType.value == ShareTalkType.original, () {
|
|
|
|
|
- shareType.value = ShareTalkType.original;
|
|
|
|
|
- })),
|
|
|
|
|
|
|
+ _getTitle(
|
|
|
|
|
+ (shareToType ?? getDefaultShareType())[i]),
|
|
|
|
|
+ _getIconProvider(
|
|
|
|
|
+ (shareToType ?? getDefaultShareType())[i]),
|
|
|
|
|
+ shareType.value ==
|
|
|
|
|
+ (shareToType ?? getDefaultShareType())[i],
|
|
|
|
|
+ () {
|
|
|
|
|
+ shareType.value =
|
|
|
|
|
+ (shareToType ?? getDefaultShareType())[i];
|
|
|
|
|
+ },
|
|
|
|
|
+ ),
|
|
|
|
|
+ ),
|
|
|
|
|
+ if (i < type.length - 1)
|
|
|
|
|
+ SizedBox(width: 8.w), // Add gap between items
|
|
|
|
|
+ ],
|
|
|
],
|
|
],
|
|
|
);
|
|
);
|
|
|
}),
|
|
}),
|
|
@@ -213,6 +210,36 @@ Widget _buildShareItem(
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+String _getTitle(ShareTalkType type) {
|
|
|
|
|
+ switch (type) {
|
|
|
|
|
+ case ShareTalkType.summary:
|
|
|
|
|
+ return StringName.talkTabSummary.tr;
|
|
|
|
|
+ case ShareTalkType.mindMap:
|
|
|
|
|
+ return StringName.talkMindMap.tr;
|
|
|
|
|
+ case ShareTalkType.original:
|
|
|
|
|
+ return StringName.talkTabOriginal.tr;
|
|
|
|
|
+ default:
|
|
|
|
|
+ return '';
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+ImageProvider _getIconProvider(ShareTalkType type) {
|
|
|
|
|
+ switch (type) {
|
|
|
|
|
+ case ShareTalkType.summary:
|
|
|
|
|
+ return Assets.images.iconTalkShareSummary.provider();
|
|
|
|
|
+ case ShareTalkType.mindMap:
|
|
|
|
|
+ return Assets.images.iconTalkMindMap.provider();
|
|
|
|
|
+ case ShareTalkType.original:
|
|
|
|
|
+ return Assets.images.iconTalkShareOriginal.provider();
|
|
|
|
|
+ default:
|
|
|
|
|
+ return const AssetImage(''); // Provide a default image if necessary
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+List<ShareTalkType> getDefaultShareType() {
|
|
|
|
|
+ return [ShareTalkType.summary, ShareTalkType.mindMap, ShareTalkType.original];
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
enum ShareTalkType { summary, mindMap, original }
|
|
enum ShareTalkType { summary, mindMap, original }
|
|
|
|
|
|
|
|
enum ShareTo { wechat, qq, ios }
|
|
enum ShareTo { wechat, qq, ios }
|