feat: 分享视频&图片

This commit is contained in:
guozhigq
2023-05-26 22:28:48 +08:00
parent 0a4f6b2508
commit c2aeb443a0
4 changed files with 23 additions and 13 deletions

View File

@ -64,7 +64,7 @@ class PreviewController extends GetxController {
options: Options(responseType: ResponseType.bytes));
final temp = await getTemporaryDirectory();
String imgName =
"pic_vvex${DateTime.now().toString().split('-').join()}.jpg";
"pic_plpl${DateTime.now().toString().split('-').join()}.jpg";
var path = '${temp.path}/$imgName';
File(path).writeAsBytesSync(response.data);
Share.shareXFiles([XFile(path)], subject: imgList[initialPage.value]);

View File

@ -168,7 +168,7 @@ class _ImagePreviewState extends State<ImagePreview>
bottom: 0,
child: Container(
// height: 45,
padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom + 10, top: 20),
padding: EdgeInsets.only(bottom: MediaQuery.of(context).padding.bottom, top: 20),
decoration: const BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
@ -199,10 +199,10 @@ class _ImagePreviewState extends State<ImagePreview>
]),
),
),
FloatingActionButton(
onPressed: () => _previewController.onSaveImg(),
child: const Icon(Icons.save_alt_rounded),
),
const Spacer(),
ElevatedButton(onPressed: () => _previewController.onShareImg(), child: Text('分享')),
const SizedBox(width: 10),
ElevatedButton(onPressed: () => _previewController.onSaveImg(), child: Text('保存'))
],
),
),

View File

@ -2,12 +2,14 @@ import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/http/constants.dart';
import 'package:pilipala/http/user.dart';
import 'package:pilipala/http/video.dart';
import 'package:pilipala/models/user/fav_folder.dart';
import 'package:pilipala/models/video_detail_res.dart';
import 'package:pilipala/pages/video/detail/controller.dart';
import 'package:pilipala/utils/storage.dart';
import 'package:share_plus/share_plus.dart';
class VideoIntroController extends GetxController {
// 视频aid
@ -161,12 +163,15 @@ class VideoIntroController extends GetxController {
Future actionLikeVideo() async {
var result = await VideoHttp.likeVideo(aid: aid, type: !hasLike.value);
if (result['status']) {
hasLike.value = result["data"] == 1 ? true : false;
if (hasLike.value) {
SmartDialog.showToast('点赞 👍');
} else {
// hasLike.value = result["data"] == 1 ? true : false;
if (!hasLike.value) {
SmartDialog.showToast('点赞成功 👍');
hasLike.value = true;
} else if(hasLike.value){
SmartDialog.showToast('取消赞');
hasLike.value = false;
}
hasLike.refresh();
} else {
SmartDialog.showToast(result['msg']);
}
@ -206,7 +211,12 @@ class VideoIntroController extends GetxController {
// 分享视频
Future actionShareVideo() async {
print('分享视频');
var result = await Share.share(
'${HttpString.baseUrl}/video/$aid'
).whenComplete(() {
print("share completion block ");
});
return result;
}
Future queryVideoInFolder() async {

View File

@ -467,8 +467,8 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
),
Obx(
() => ActionItem(
icon: const Icon(FontAwesomeIcons.star),
selectIcon: const Icon(FontAwesomeIcons.star),
icon: const Icon(FontAwesomeIcons.heart),
selectIcon: const Icon(FontAwesomeIcons.heartCircleCheck),
onTap: () => showFavBottomSheet(),
selectStatus: videoIntroController.hasFav.value,
loadingStatus: widget.loadingStatus,