Commit 0c3a83b7 authored by 林生雨's avatar 林生雨

commit

parent 00b2ed0f
This diff is collapsed.
...@@ -7,6 +7,7 @@ import 'dart:async'; ...@@ -7,6 +7,7 @@ import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:gengmei_flutter_plugin/ScanImagePlugn.dart'; import 'package:gengmei_flutter_plugin/ScanImagePlugn.dart';
import 'package:gengmei_flutter_plugin/gengmei_flutter_plugin.dart'; import 'package:gengmei_flutter_plugin/gengmei_flutter_plugin.dart';
import 'package:gengmei_flutter_plugin_example/AlbumModel/LiveData.dart'; import 'package:gengmei_flutter_plugin_example/AlbumModel/LiveData.dart';
...@@ -16,6 +17,26 @@ import 'package:gengmei_flutter_plugin_example/AlbumModel/repository/AlbumReposi ...@@ -16,6 +17,26 @@ import 'package:gengmei_flutter_plugin_example/AlbumModel/repository/AlbumReposi
const String MainDir = "IsGengmeiAlbumAllImages"; const String MainDir = "IsGengmeiAlbumAllImages";
const String MainDirExplain = "全部相片"; const String MainDirExplain = "全部相片";
Map<String, List<ScanImageItem>> paseAlbum(Object event) {
var map = Map<String, List<dynamic>>.from(event);
var newMap = Map<String, List<ScanImageItem>>();
map.forEach((k, v) {
var list = List<Map>.from(v);
var scanList = List<ScanImageItem>();
list.forEach((listMap) {
var map2 = Map<String, dynamic>.from(listMap);
ScanImageItem item = new ScanImageItem();
item.path = map2["path"];
item.isVideo = map2["isVideo"] == "T" ? true : false;
item.during = map2["during"] ?? "0";
scanList.add(item);
});
newMap[k] = scanList;
});
return newMap;
}
class AlbumModel { class AlbumModel {
LiveData<List<ScanImageItem>> albumLive = LiveData(); LiveData<List<ScanImageItem>> albumLive = LiveData();
LiveData<List<DirBean>> dirLive = LiveData(); LiveData<List<DirBean>> dirLive = LiveData();
...@@ -55,39 +76,29 @@ class AlbumModel { ...@@ -55,39 +76,29 @@ class AlbumModel {
} }
void _onEvent(Object event) { void _onEvent(Object event) {
var map = (event as Map); // var map = (event as Map);
if (_mainValue == null || _mainValue.length == 0) { // if (_mainValue == null || _mainValue.length == 0) {
_mainValue = map; // _mainValue = map;
} else { // } else {
_mainValue.forEach((k, itemList) { // _mainValue.forEach((k, itemList) {
var key = map[k]; // var key = map[k];
if (key != null) { // if (key != null) {
for (int i = 0; i < itemList.length; i++) { // for (int i = 0; i < itemList.length; i++) {
if (key[i] == null) { // if (key[i] == null) {
continue; // continue;
} // }
itemList[i].path = key[i]["path"]; // itemList[i].path = key[i]["path"];
itemList[i].realPath = key[i]["realPath"]; // itemList[i].realPath = key[i]["realPath"];
} // }
} // }
});
}
// var map = Map<String, List<dynamic>>.from(event);
//
// var newMap = Map<String, List<ScanImageItem>>();
// map.forEach((k, v) {
// var key = newMap["k"];
// if(key==null){
// newMap["k"]=new List<ScanImageItem>();
// }
// v.forEach((value){
// ScanImageItem item=new ScanImageItem();
// item.path=value["path"];
// item.isVideo=value["isVideo"]=="T"?true:false;
// item.during = value["during"] ?? "0";
// newMap["k"].add(item);
// }); // });
// }); // }
compute(paseAlbum, event).then((value){
_mainValue = value;
albumLive.notifyView(_mainValue[_nowDirName]);
});
// _mainValue=newMap; // _mainValue=newMap;
// var list = map[_nowDirName]; // var list = map[_nowDirName];
// _mainValue.forEach((k, itemList) { // _mainValue.forEach((k, itemList) {
...@@ -119,7 +130,7 @@ class AlbumModel { ...@@ -119,7 +130,7 @@ class AlbumModel {
// } // }
// } // }
// print("EVENTTTT !! ${tempList.length} ${tempList}"); // print("EVENTTTT !! ${tempList.length} ${tempList}");
albumLive.notifyView(_mainValue[_nowDirName]);
} }
void _onError(Object error) { void _onError(Object error) {
...@@ -132,7 +143,8 @@ class AlbumModel { ...@@ -132,7 +143,8 @@ class AlbumModel {
.receiveBroadcastStream() .receiveBroadcastStream()
.listen(_onEvent, onError: _onError); .listen(_onEvent, onError: _onError);
// } // }
AlbumRepository.getInstance().scanPhoneImg().listen((value) { AlbumRepository.getInstance().scanPhoneImg()
.listen((value) {
if (value != null) { if (value != null) {
_mainValue = value; _mainValue = value;
value.forEach((key, eachValue) { value.forEach((key, eachValue) {
...@@ -234,7 +246,6 @@ class AlbumModel { ...@@ -234,7 +246,6 @@ class AlbumModel {
} }
} }
void iosAlbum(List<String> list, BuildContext context, Function fun) { void iosAlbum(List<String> list, BuildContext context, Function fun) {
GengmeiFlutterPlugin.ios_album_path(list).then((value) { GengmeiFlutterPlugin.ios_album_path(list).then((value) {
fun(value); fun(value);
...@@ -254,7 +265,8 @@ class AlbumModel { ...@@ -254,7 +265,8 @@ class AlbumModel {
} else { } else {
print(data); print(data);
ScanImageItem item = new ScanImageItem(); ScanImageItem item = new ScanImageItem();
item.realPath = data["realPath"]==null?null:data["realPath"] as String; item.realPath =
data["realPath"] == null ? null : data["realPath"] as String;
item.path = data["path"] as String; item.path = data["path"] as String;
item.isVideo = false; item.isVideo = false;
String foldName = data["folderName"] as String; String foldName = data["folderName"] as String;
......
This diff is collapsed.
...@@ -2,27 +2,32 @@ ...@@ -2,27 +2,32 @@
* @author lsy * @author lsy
* @date 2019-09-09 * @date 2019-09-09
**/ **/
import 'package:flutter/foundation.dart';
import 'package:flutter/src/services/platform_channel.dart'; import 'package:flutter/src/services/platform_channel.dart';
Map<String, List<ScanImageItem>> changData(Map images) {
Map<String, List<ScanImageItem>> newMap = new Map();
images.forEach((k, v) {
List<ScanImageItem> tempList = new List();
for (var item in v) {
ScanImageItem scanImageItem = new ScanImageItem();
scanImageItem.path = item["path"] ?? "";
scanImageItem.size = item["size"] ?? 0;
scanImageItem.realPath = item["realPath"] ?? "";
scanImageItem.isVideo = item["isVideo"] == "T" ? true : false;
scanImageItem.during = item["during"] ?? "0";
tempList.add(scanImageItem);
}
newMap.putIfAbsent(k, () => tempList);
});
return newMap;
}
class ScanImagePlugn { class ScanImagePlugn {
static Future<Map<String, List<ScanImageItem>>> scanImages( static Future<Map<String, List<ScanImageItem>>> scanImages(
MethodChannel channel) async { MethodChannel channel) async {
var images = await channel.invokeMapMethod("scan_image_picker"); var images = await channel.invokeMapMethod("scan_image_picker");
Map<String, List<ScanImageItem>> newMap = new Map(); return Future.value(compute(changData, images));
images.forEach((k, v) {
List<ScanImageItem> tempList = new List();
for (var item in v) {
ScanImageItem scanImageItem = new ScanImageItem();
scanImageItem.path = item["path"] ?? "";
scanImageItem.size = item["size"] ?? 0;
scanImageItem.realPath = item["realPath"] ?? "";
scanImageItem.isVideo = item["isVideo"] == "T" ? true : false;
scanImageItem.during = item["during"] ?? "0";
tempList.add(scanImageItem);
}
newMap.putIfAbsent(k, () => tempList);
});
return newMap;
} }
static Future<Map> nativeCamera( static Future<Map> nativeCamera(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment