diff --git a/wallpaper/ios/Podfile.lock b/wallpaper/ios/Podfile.lock index 0fc5b94..ac83ecb 100644 --- a/wallpaper/ios/Podfile.lock +++ b/wallpaper/ios/Podfile.lock @@ -2,7 +2,7 @@ PODS: - Flutter (1.0.0) - flutter_keyboard_visibility (0.0.1): - Flutter - - image_gallery_saver (1.5.0): + - image_gallery_saver (2.0.2): - Flutter - path_provider_foundation (0.0.1): - Flutter @@ -32,7 +32,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - image_gallery_saver: 259eab68fb271cfd57d599904f7acdc7832e7ef2 + image_gallery_saver: cb43cc43141711190510e92c460eb1655cd343cb path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 diff --git a/wallpaper/lib/pages/imgcategorypage/imgcategorypage_controller.dart b/wallpaper/lib/pages/imgcategorypage/imgcategorypage_controller.dart index 686ebc5..5540756 100644 --- a/wallpaper/lib/pages/imgcategorypage/imgcategorypage_controller.dart +++ b/wallpaper/lib/pages/imgcategorypage/imgcategorypage_controller.dart @@ -27,5 +27,10 @@ class ImgCategoryPageController extends GetxController { Future < void> saveImgToAlbum(String imgUrl) async { await DownloadManager.saveNetworkImage(imgUrl); + + //如果是android,还应该调用设置壁纸的功能 + //.... + //给结果提示框 + } } \ No newline at end of file diff --git a/wallpaper/lib/pages/imgscanpage/imgscanpage_controller.dart b/wallpaper/lib/pages/imgscanpage/imgscanpage_controller.dart index 318c052..5f5a53d 100644 --- a/wallpaper/lib/pages/imgscanpage/imgscanpage_controller.dart +++ b/wallpaper/lib/pages/imgscanpage/imgscanpage_controller.dart @@ -9,7 +9,7 @@ class ImgScanPageController extends GetxController { RxInt currentIndex = RxInt(0); RxInt showAppbar = RxInt(0);//控制appbar显示.... Timer? _timer; - + var albumPermisonisDenied = false.obs; @override void onInit(){ super.onInit(); @@ -33,11 +33,21 @@ class ImgScanPageController extends GetxController { Future < void> downloadImg() async { String urlStr = dataModel.data![currentIndex.value].original!; - await DownloadManager.downloadImgWithUrl(urlStr); + if ((await DownloadManager.downloadImgWithUrl(urlStr)) == false){ + albumPermisonisDenied.value = true; + } //提示框 //....已下载 } + Future < void> saveImgToAlbum() async { + String imgUrl = dataModel.data![currentIndex.value].original!; + await DownloadManager.saveNetworkImage(imgUrl); + //如果是android,还应该调用设置壁纸的功能 + //.... + //给结果提示框 + } + void showAppbarAction(){ showAppbar.value = 1; cancelTimer(); diff --git a/wallpaper/lib/pages/imgscanpage/imgscanpage_view.dart b/wallpaper/lib/pages/imgscanpage/imgscanpage_view.dart index 28cc2f9..eba2d1d 100644 --- a/wallpaper/lib/pages/imgscanpage/imgscanpage_view.dart +++ b/wallpaper/lib/pages/imgscanpage/imgscanpage_view.dart @@ -85,6 +85,7 @@ class ImgScanPageView extends GetView { ), IconButton(onPressed:() { print("设置壁纸"); + controller.saveImgToAlbum(); }, icon: const Icon(Icons.wallpaper),color: Colors.white,), const Spacer( diff --git a/wallpaper/lib/utils/downloadmanager.dart b/wallpaper/lib/utils/downloadmanager.dart index 3916719..c10939f 100644 --- a/wallpaper/lib/utils/downloadmanager.dart +++ b/wallpaper/lib/utils/downloadmanager.dart @@ -3,9 +3,19 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart'; import 'package:wallpaper/utils/local_img_manager.dart'; +import 'package:permission_handler/permission_handler.dart'; class DownloadManager { - static Future downloadImgWithUrl(String urlStr) async { + static Future downloadImgWithUrl(String urlStr) async { + //对于android先去判断存储权限的获取 + // if (!await Permission.storage.request().isGranted) { + // return false; + // } + + // await Permission.photos.request(); + + // Permission.photos. + var httpClient = HttpClient(); try { // option: Options(responseType: ResponseType.bytes) @@ -16,9 +26,14 @@ class DownloadManager { // print(fileName); //写入数据库信息 //..... + + + + return true; } catch(error) { print("the error:${error}"); + return true; } } diff --git a/wallpaper/lib/utils/local_img_manager.dart b/wallpaper/lib/utils/local_img_manager.dart index 6459500..c38e436 100644 --- a/wallpaper/lib/utils/local_img_manager.dart +++ b/wallpaper/lib/utils/local_img_manager.dart @@ -11,7 +11,7 @@ import 'package:crypto/crypto.dart'; class LocalImgManager { static Future getImgLocalDir() async { - Directory dir = await getTemporaryDirectory(); + Directory dir = await getApplicationCacheDirectory(); return dir.path; } @@ -19,7 +19,7 @@ class LocalImgManager { String fileName = "img_${LocalImgManager.sha1RandomString()}.jpg"; var localDir = await getImgLocalDir(); var filePath = '$localDir/$fileName'; - // print("the filepath:$filePath "); + print("the filepath:$filePath "); File imageFile=File(filePath); if(imageFile.existsSync()){ print("图片已存在");