Commit 65d6fd04 authored by 林生雨's avatar 林生雨

commit

parent 17fcda9a
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Android API 29 Platform" project-jdk-type="Android SDK" />
<component name="ProjectType"> <component name="ProjectType">
<option name="id" value="io.flutter" /> <option name="id" value="io.flutter" />
</component> </component>
......
This diff is collapsed.
...@@ -43,6 +43,7 @@ class GengmeiFlutterPlugin : MethodCallHandler { ...@@ -43,6 +43,7 @@ class GengmeiFlutterPlugin : MethodCallHandler {
private var record: HashMap<String, ArrayList<HashMap<String, Any>>>? = null; private var record: HashMap<String, ArrayList<HashMap<String, Any>>>? = null;
var nativeImage: File? = null var nativeImage: File? = null
var isTaskingExectured: Boolean = false; var isTaskingExectured: Boolean = false;
var quit_page = false;
companion object { companion object {
const val IMAGE_PICKER = "scan_image_picker" const val IMAGE_PICKER = "scan_image_picker"
...@@ -61,6 +62,8 @@ class GengmeiFlutterPlugin : MethodCallHandler { ...@@ -61,6 +62,8 @@ class GengmeiFlutterPlugin : MethodCallHandler {
const val GET_FLOAT_SHARED = "GET_FLOAT_SHARED" const val GET_FLOAT_SHARED = "GET_FLOAT_SHARED"
const val GET_BOOLEAN_SHARED = "GET_BOOLEAN_SHARED" const val GET_BOOLEAN_SHARED = "GET_BOOLEAN_SHARED"
const val GET_STRINGLIST_SHARED = "GET_STRINGLIST_SHARED" const val GET_STRINGLIST_SHARED = "GET_STRINGLIST_SHARED"
const val CLEAR_SHARE = "CLEAR_SHARE"
const val PREMISSION = 10090 const val PREMISSION = 10090
//相机请求码 //相机请求码
private val CAMERA_REQUEST_CODE = 2 private val CAMERA_REQUEST_CODE = 2
...@@ -213,9 +216,19 @@ class GengmeiFlutterPlugin : MethodCallHandler { ...@@ -213,9 +216,19 @@ class GengmeiFlutterPlugin : MethodCallHandler {
ResultManager.getInstance().resultError(result, it.message!!, it.message!!); ResultManager.getInstance().resultError(result, it.message!!, it.message!!);
}).addTo(disposable) }).addTo(disposable)
} }
CLEAR_SHARE -> {
val result = resultKey;
SharedManager.getInstance(resign.activity().applicationContext).clear().subscribe({
ResultManager.getInstance().resultSuccess(result, it);
}, {
DebugUtil.printStackTrace(it);
ResultManager.getInstance().resultError(result, it.message!!, it.message!!)
}).addTo(disposable)
}
QUIT_PAGE -> { QUIT_PAGE -> {
disposable.dispose() disposable.dispose()
disposable = CompositeDisposable() disposable = CompositeDisposable()
quit_page = true;
ResultManager.getInstance().resultSuccess(resultKey, true) ResultManager.getInstance().resultSuccess(resultKey, true)
} }
else -> result.notImplemented() else -> result.notImplemented()
...@@ -223,11 +236,13 @@ class GengmeiFlutterPlugin : MethodCallHandler { ...@@ -223,11 +236,13 @@ class GengmeiFlutterPlugin : MethodCallHandler {
} }
fun ScanImage(resultKey: Long) { fun ScanImage(resultKey: Long) {
quit_page = false;
ImageRespository.getInstance().scanPhoneImage(resign.context().applicationContext).subscribe( ImageRespository.getInstance().scanPhoneImage(resign.context().applicationContext).subscribe(
{ {
record = it record = it
if (!quit_page) {
ResultManager.getInstance().resultSuccess(resultKey, it); ResultManager.getInstance().resultSuccess(resultKey, it);
}
if (isTaskingExectured) { if (isTaskingExectured) {
return@subscribe; return@subscribe;
} }
......
...@@ -77,7 +77,7 @@ class ImageScanner(var context: Context) : AbsMediaScanner<MediaFile>(context) { ...@@ -77,7 +77,7 @@ class ImageScanner(var context: Context) : AbsMediaScanner<MediaFile>(context) {
if (tempFileJpegExists) { if (tempFileJpegExists) {
mediaFile.path = tempFileJpegString; mediaFile.path = tempFileJpegString;
} }
if (size < 1024 * 512) { if (size < 1024 * 100) {
mediaFile.path = path mediaFile.path = path
} }
// //
......
...@@ -70,7 +70,7 @@ constructor(private val srcImg: InputStreamProvider, private val tagImgPath: Str ...@@ -70,7 +70,7 @@ constructor(private val srcImg: InputStreamProvider, private val tagImgPath: Str
if (quality == 100) { if (quality == 100) {
options.inSampleSize = computeSize() options.inSampleSize = computeSize()
} else { } else {
options.inSampleSize = (srcWidth / 240).toInt(); options.inSampleSize = (srcWidth / 160).toInt();
} }
// Log.e("lsy"," SAMPLE SIZE ${options.inSampleSize} ${srcWidth}") // Log.e("lsy"," SAMPLE SIZE ${options.inSampleSize} ${srcWidth}")
......
...@@ -20,12 +20,10 @@ class ResultManager private constructor() { ...@@ -20,12 +20,10 @@ class ResultManager private constructor() {
} }
fun resultSuccess(key: Long, value: Any) { fun resultSuccess(key: Long, value: Any) {
Log.e("lsy","KEYYY $key ")
map.get(key)?.run { map.get(key)?.run {
this.success(value); this.success(value);
} }
map.remove(key) map.remove(key)
Log.e("lsy"," ${map.size}")
} }
fun resultError(key: Long, message: String, ob: Any) { fun resultError(key: Long, message: String, ob: Any) {
...@@ -33,7 +31,6 @@ class ResultManager private constructor() { ...@@ -33,7 +31,6 @@ class ResultManager private constructor() {
this.error(message, message, ob) this.error(message, message, ob)
} }
map.remove(key) map.remove(key)
Log.e("lsy"," ${map.size}")
} }
......
...@@ -24,7 +24,7 @@ class SharedManager private constructor(app: Context) { ...@@ -24,7 +24,7 @@ class SharedManager private constructor(app: Context) {
companion object { companion object {
const val SHARED_PREFERENCES_NAME = "FlutterSharedPreferences" const val SHARED_PREFERENCES_NAME = "FlutterSharedPreferences"
@Volatile @Volatile
private var instance: SharedManager?=null; private var instance: SharedManager? = null;
@JvmStatic @JvmStatic
fun getInstance(app: Context): SharedManager { fun getInstance(app: Context): SharedManager {
...@@ -78,9 +78,9 @@ class SharedManager private constructor(app: Context) { ...@@ -78,9 +78,9 @@ class SharedManager private constructor(app: Context) {
fun getString(key: String, value: String?): Observable<String?> { fun getString(key: String, value: String?): Observable<String?> {
return Observable.create(ObservableOnSubscribe<String> { return Observable.create(ObservableOnSubscribe<String> {
val string = preferences.getString(key, value) val string = preferences.getString(key, value)
if(string==null){ if (string == null) {
it.onNext("") it.onNext("")
}else{ } else {
it.onNext(string) it.onNext(string)
} }
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
...@@ -102,13 +102,19 @@ class SharedManager private constructor(app: Context) { ...@@ -102,13 +102,19 @@ class SharedManager private constructor(app: Context) {
fun getStringList(key: String, value: Set<String>?): Observable<ArrayList<String>> { fun getStringList(key: String, value: Set<String>?): Observable<ArrayList<String>> {
return Observable.create(ObservableOnSubscribe<ArrayList<String>> { return Observable.create(ObservableOnSubscribe<ArrayList<String>> {
val stringSet = preferences.getStringSet(key, value) val stringSet = preferences.getStringSet(key, value)
if(stringSet==null){ if (stringSet == null) {
throw RxExpecition("NULL!!") throw RxExpecition("NULL!!")
} }
val temp=ArrayList<String>() val temp = ArrayList<String>()
temp.addAll(stringSet) temp.addAll(stringSet)
it.onNext(temp) it.onNext(temp)
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
} }
fun clear(): Observable<Boolean> {
return Observable.create(ObservableOnSubscribe<Boolean> {
it.onNext(preferences.edit().clear().commit());
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread());
}
} }
\ No newline at end of file
...@@ -58,19 +58,18 @@ class AlbumModel { ...@@ -58,19 +58,18 @@ class AlbumModel {
var map = (event as Map); var map = (event as Map);
// var list = map[_nowDirName]; // var list = map[_nowDirName];
_mainValue.forEach((k, itemList) { _mainValue.forEach((k, itemList) {
var key = map[k];
if (key != null) {
for (int i = 0; i < itemList.length; i++) { for (int i = 0; i < itemList.length; i++) {
if (map[k] == null || map[k][i] == null) { if (key[i] == null) {
continue; continue;
} }
var newPath = map[k][i]["path"] as String; if (itemList[i].path == null) {
if ((itemList[i].path == null || itemList[i].path.isEmpty) && itemList[i].path = key[i]["path"];
newPath != null) { }
itemList[i].path = newPath; if (itemList[i].realPath == null) {
itemList[i].realPath = key[i]["realPath"];
} }
var realPath = map[k][i]["realPath"] as String;
if ((itemList[i].realPath == null || itemList[i].realPath.isEmpty) &&
realPath != null) {
itemList[i].realPath = realPath;
} }
} }
}); });
...@@ -132,6 +131,7 @@ class AlbumModel { ...@@ -132,6 +131,7 @@ class AlbumModel {
@override @override
void dispose() { void dispose() {
GengmeiFlutterPlugin.quitPage();
if (_listen != null) { if (_listen != null) {
_listen.cancel(); _listen.cancel();
} }
......
...@@ -179,10 +179,7 @@ class AlbumState extends State<AlbumPage> { ...@@ -179,10 +179,7 @@ class AlbumState extends State<AlbumPage> {
if (imgList.data[newIndex] == null || if (imgList.data[newIndex] == null ||
imgList.data[newIndex].path == null|| imgList.data[newIndex].path == null||
imgList.data[newIndex].realPath == null) { imgList.data[newIndex].realPath == null) {
return Icon( return Container();
Icons.photo,
size: 20,
);
} }
return GestureDetector( return GestureDetector(
onTap: () => _model.clickItem(context, newIndex), onTap: () => _model.clickItem(context, newIndex),
......
...@@ -5,35 +5,35 @@ packages: ...@@ -5,35 +5,35 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.2.0" version: "2.2.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
name: charcode name: charcode
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.2" version: "1.1.2"
collection: collection:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.14.11" version: "1.14.11"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
name: cupertino_icons name: cupertino_icons
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.2" version: "0.1.2"
flutter: flutter:
...@@ -52,49 +52,49 @@ packages: ...@@ -52,49 +52,49 @@ packages:
path: ".." path: ".."
relative: true relative: true
source: path source: path
version: "0.0.728" version: "0.0.735"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.5" version: "0.12.5"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.6" version: "1.1.6"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.6.2" version: "1.6.2"
pedantic: pedantic:
dependency: transitive dependency: transitive
description: description:
name: pedantic name: pedantic
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.7.0" version: "1.7.0"
quiver: quiver:
dependency: transitive dependency: transitive
description: description:
name: quiver name: quiver
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.3" version: "2.0.3"
rxdart: rxdart:
dependency: "direct main" dependency: "direct main"
description: description:
name: rxdart name: rxdart
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.22.2" version: "0.22.3"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -104,56 +104,56 @@ packages: ...@@ -104,56 +104,56 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.5.5" version: "1.5.5"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.9.3" version: "1.9.3"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
string_scanner: string_scanner:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.4" version: "1.0.4"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.5" version: "0.2.5"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
name: typed_data name: typed_data
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.6" version: "1.1.6"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.flutter-io.cn" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.8" version: "2.0.8"
sdks: sdks:
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.dart_tool" /> <excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.pub" /> <excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/build" /> <excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/build" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/example/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/example/.pub" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/example/build" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/example/ios/Flutter/App.framework/flutter_assets/packages" /> <excludeFolder url="file://$MODULE_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/example/ios/Flutter/App.framework/flutter_assets/packages" />
<excludeFolder url="file://$MODULE_DIR$/example/ios/Flutter/App.framework/flutter_assets/packages" /> <excludeFolder url="file://$MODULE_DIR$/example/ios/Flutter/App.framework/flutter_assets/packages" />
</content> </content>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
@property(nonatomic,strong) UIImagePickerController *imagePicker; @property(nonatomic,strong) UIImagePickerController *imagePicker;
@property(atomic)Boolean quitPage; @property(atomic)Boolean quitPage;
@property(atomic)Boolean execdTask; @property(atomic)Boolean execdTask;
@property(atomic)Boolean copyScareImgOk;
@property(atomic)Boolean finishScanImg; @property(atomic)Boolean finishScanImg;
@end @end
...@@ -269,15 +270,20 @@ FlutterEventSink _eventSink; ...@@ -269,15 +270,20 @@ FlutterEventSink _eventSink;
[[ResultManager sharedSingleton] resultSuccess:[NSNumber numberWithLong:self.nativeCameraKey] :@""]; [[ResultManager sharedSingleton] resultSuccess:[NSNumber numberWithLong:self.nativeCameraKey] :@""];
} }
bool isRunning=false;
-(void)scanPhone:(long)resultId{ -(void)scanPhone:(long)resultId{
self.quitPage=false; self.quitPage=false;
if (self.finishScanImg) {
[[ResultManager sharedSingleton] resultSuccess:[NSNumber numberWithLong:resultId] :self.finalMap];
return;
}
// if(isRunning){
// isRunning=true;
// return;
// }
if (self.finalMap==nil) { if (self.finalMap==nil) {
self.finalMap=[NSMutableDictionary dictionary]; self.finalMap=[NSMutableDictionary dictionary];
} }
if ([self.finalMap count]>0&&self.finishScanImg) {
[self resultImgs:resultId];
return;
}
self.nowSize=0; self.nowSize=0;
self.needSize=0; self.needSize=0;
[self.finalMap removeAllObjects]; [self.finalMap removeAllObjects];
...@@ -322,6 +328,11 @@ FlutterEventSink _eventSink; ...@@ -322,6 +328,11 @@ FlutterEventSink _eventSink;
for (AlbumItem* item in assetCollectionList) { for (AlbumItem* item in assetCollectionList) {
self.needSize+=[item collectionNumber]; self.needSize+=[item collectionNumber];
} }
NSMutableArray * arr=self.finalMap[@"IsGengmeiAlbumAllImages"];
if (arr==nil) {
self.finalMap[@"IsGengmeiAlbumAllImages"]=[NSMutableArray array];
}
} }
-(void)resultImgs:(long)resultId{ -(void)resultImgs:(long)resultId{
...@@ -329,16 +340,18 @@ FlutterEventSink _eventSink; ...@@ -329,16 +340,18 @@ FlutterEventSink _eventSink;
return; return;
} }
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
self.finishScanImg=true;
[[ResultManager sharedSingleton] resultSuccess:[NSNumber numberWithLong:resultId] :self.finalMap]; [[ResultManager sharedSingleton] resultSuccess:[NSNumber numberWithLong:resultId] :self.finalMap];
if(self.execdTask){ // if(self.execdTask){
return ; // return ;
} // }
self.execdTask=true; // self.execdTask=true;
[NSThread detachNewThreadWithBlock:^{ // [NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
NSLog(@"block run..."); [NSThread detachNewThreadSelector:@selector(thread:) toTarget:self withObject:@"baby"];
[self execRealImg];
}]; // [NSThread detachNewThreadSelector: toTarget:<#(nonnull id)#> withObject:<#(nullable id)#>:^{
// NSLog(@"block run...");
//
// }];
// [self performSelectorInBackground:@selector(run) withObject:nil]; // [self performSelectorInBackground:@selector(run) withObject:nil];
// dispatch_queue_t queue1 = dispatch_queue_create("com.onealon.gcdTest1", DISPATCH_QUEUE_CONCURRENT); // dispatch_queue_t queue1 = dispatch_queue_create("com.onealon.gcdTest1", DISPATCH_QUEUE_CONCURRENT);
// dispatch_sync(queue1, ^{ // dispatch_sync(queue1, ^{
...@@ -348,6 +361,10 @@ FlutterEventSink _eventSink; ...@@ -348,6 +361,10 @@ FlutterEventSink _eventSink;
} }
- (void)thread:(id)parameter{
     [self execRealImg];
}
-(void)upImgs{ -(void)upImgs{
dispatch_async(dispatch_get_main_queue(), ^{ dispatch_async(dispatch_get_main_queue(), ^{
...@@ -364,6 +381,9 @@ FlutterEventSink _eventSink; ...@@ -364,6 +381,9 @@ FlutterEventSink _eventSink;
AlbumItem * item=assetCollectionList[j]; AlbumItem * item=assetCollectionList[j];
PHFetchResult<PHAsset *> * assetResult =[item assets]; PHFetchResult<PHAsset *> * assetResult =[item assets];
for (int i=0; i<[assetResult count]; i++) { for (int i=0; i<[assetResult count]; i++) {
if(self.quitPage){
return;
}
__block NSString* docName=[item collectionTitle]; __block NSString* docName=[item collectionTitle];
PHAsset * assets=[assetResult objectAtIndex:i]; PHAsset * assets=[assetResult objectAtIndex:i];
__block NSString * imgName=[assets valueForKey:@"filename"]; __block NSString * imgName=[assets valueForKey:@"filename"];
...@@ -384,13 +404,14 @@ FlutterEventSink _eventSink; ...@@ -384,13 +404,14 @@ FlutterEventSink _eventSink;
}else{ }else{
[self.finalMap[docName] addObject:queryItemDict]; [self.finalMap[docName] addObject:queryItemDict];
} }
[self.finalMap[@"IsGengmeiAlbumAllImages"] addObject:queryItemDict];
NSLog(@"SCARE SIZEEE %d %d ",self.nowSize,self.needSize); NSLog(@"SCARE SIZEEE %d %d ",self.nowSize,self.needSize);
if (self.nowSize==self.needSize) { if (self.nowSize==self.needSize) {
[self resultImgs:resultId]; [self resultImgs:resultId];
} }
}else{ }else{
PHImageRequestOptions *imageRequestOption = [[PHImageRequestOptions alloc] init]; PHImageRequestOptions *imageRequestOption = [[PHImageRequestOptions alloc] init];
imageRequestOption.synchronous =NO; imageRequestOption.synchronous =YES;
int picWidth=[assets pixelWidth]; int picWidth=[assets pixelWidth];
int picHeight=[assets pixelHeight]; int picHeight=[assets pixelHeight];
float tempScareSize=1; float tempScareSize=1;
...@@ -431,6 +452,7 @@ FlutterEventSink _eventSink; ...@@ -431,6 +452,7 @@ FlutterEventSink _eventSink;
}else{ }else{
[self.finalMap[docName] addObject:queryItemDict]; [self.finalMap[docName] addObject:queryItemDict];
} }
[self.finalMap[@"IsGengmeiAlbumAllImages"] addObject:queryItemDict];
NSLog(@"SCARE SIZEEE %d %d ",self.nowSize,self.needSize); NSLog(@"SCARE SIZEEE %d %d ",self.nowSize,self.needSize);
result=nil; result=nil;
if (self.nowSize==self.needSize) { if (self.nowSize==self.needSize) {
...@@ -452,6 +474,9 @@ FlutterEventSink _eventSink; ...@@ -452,6 +474,9 @@ FlutterEventSink _eventSink;
PHFetchResult<PHAsset *> * assetResult =[item assets]; PHFetchResult<PHAsset *> * assetResult =[item assets];
NSLog(@"09090909090 %d %d",[assetResult count],self.needSize); NSLog(@"09090909090 %d %d",[assetResult count],self.needSize);
for (int i=0; i<[assetResult count]; i++) { for (int i=0; i<[assetResult count]; i++) {
if(self.quitPage){
return;
}
__block NSString* docName=[item collectionTitle]; __block NSString* docName=[item collectionTitle];
PHAsset * assets=[assetResult objectAtIndex:i]; PHAsset * assets=[assetResult objectAtIndex:i];
__block NSString * imgName=[assets valueForKey:@"filename"]; __block NSString * imgName=[assets valueForKey:@"filename"];
...@@ -479,10 +504,11 @@ FlutterEventSink _eventSink; ...@@ -479,10 +504,11 @@ FlutterEventSink _eventSink;
NSLog(@"SIZEEE %d %d ",self.nowSize,self.needSize); NSLog(@"SIZEEE %d %d ",self.nowSize,self.needSize);
if (self.nowSize==self.needSize) { if (self.nowSize==self.needSize) {
[self upImgs]; [self upImgs];
self.execdTask=true; self.finishScanImg=true;
// self.execdTask=true;
} }
}else{ }else{
NSLog(@"file NOT EXIT !! "); NSLog(@"file NOT EXIT !! %@",realPath);
PHImageRequestOptions *imageRequestOption = [[PHImageRequestOptions alloc] init]; PHImageRequestOptions *imageRequestOption = [[PHImageRequestOptions alloc] init];
imageRequestOption.synchronous =YES; imageRequestOption.synchronous =YES;
int picWidth=[assets pixelWidth]; int picWidth=[assets pixelWidth];
...@@ -524,9 +550,9 @@ FlutterEventSink _eventSink; ...@@ -524,9 +550,9 @@ FlutterEventSink _eventSink;
// result=nil; // result=nil;
if (self.nowSize==self.needSize) { if (self.nowSize==self.needSize) {
[self upImgs]; [self upImgs];
self.finishScanImg=true;
self.execdTask=true; self.execdTask=true;
}else if(self.copySize%35==0||self.copySize==10){ }else if(self.copySize%20==0||self.copySize==10){
NSLog(@"UPPP!!");
[self upImgs]; [self upImgs];
} }
}]; }];
......
...@@ -12,11 +12,13 @@ ...@@ -12,11 +12,13 @@
-(void)setCollection:(PHAssetCollection *)collection { -(void)setCollection:(PHAssetCollection *)collection {
_collection = collection; _collection = collection;
if ([collection.localizedTitle isEqualToString:@"All Photos"]||[collection.localizedTitle isEqualToString:@"所有照片"]) { // if ([collection.localizedTitle isEqualToString:@"All Photos"]||[collection.localizedTitle isEqualToString:@"所有照片"]) {
self.collectionTitle = @"IsGengmeiAlbumAllImages"; // self.collectionTitle = @"IsGengmeiAlbumAllImages";
} else { // } else {
//
// }
self.collectionTitle = collection.localizedTitle; self.collectionTitle = collection.localizedTitle;
}
// self.collectionTitle = collection.localizedTitle; // self.collectionTitle = collection.localizedTitle;
......
...@@ -11,6 +11,7 @@ class ScanImagePlugn { ...@@ -11,6 +11,7 @@ class ScanImagePlugn {
Map<String, List<ScanImageItem>> newMap = new Map(); Map<String, List<ScanImageItem>> newMap = new Map();
images.forEach((k, v) { images.forEach((k, v) {
List<ScanImageItem> tempList = new List(); List<ScanImageItem> tempList = new List();
print("-------UP ${k} ${tempList.length}");
for (var item in v) { for (var item in v) {
ScanImageItem scanImageItem = new ScanImageItem(); ScanImageItem scanImageItem = new ScanImageItem();
scanImageItem.path = item["path"]; scanImageItem.path = item["path"];
......
...@@ -16,6 +16,8 @@ const String GET_FLOAT_SHARED = "GET_FLOAT_SHARED"; ...@@ -16,6 +16,8 @@ const String GET_FLOAT_SHARED = "GET_FLOAT_SHARED";
const String GET_BOOLEAN_SHARED = "GET_BOOLEAN_SHARED"; const String GET_BOOLEAN_SHARED = "GET_BOOLEAN_SHARED";
const String GET_STRINGLIST_SHARED = "GET_STRINGLIST_SHARED"; const String GET_STRINGLIST_SHARED = "GET_STRINGLIST_SHARED";
const String CLEAR_SHARE = "CLEAR_SHARE";
class SharedPlugin { class SharedPlugin {
static Future<bool> saveString( static Future<bool> saveString(
String key, String value, MethodChannel channel) async { String key, String value, MethodChannel channel) async {
...@@ -75,7 +77,7 @@ class SharedPlugin { ...@@ -75,7 +77,7 @@ class SharedPlugin {
String key, List<String> value, MethodChannel channel) async { String key, List<String> value, MethodChannel channel) async {
List list = await channel List list = await channel
.invokeMethod(GET_STRINGLIST_SHARED, {"key": key, "value": value}); .invokeMethod(GET_STRINGLIST_SHARED, {"key": key, "value": value});
if(list==null){ if (list == null) {
print("LIST IS NULLL!!!! "); print("LIST IS NULLL!!!! ");
return Future.value(null); return Future.value(null);
} }
...@@ -86,4 +88,8 @@ class SharedPlugin { ...@@ -86,4 +88,8 @@ class SharedPlugin {
}); });
return Future.value(finalList); return Future.value(finalList);
} }
static Future<bool> clear(MethodChannel channel) async {
return await channel.invokeMethod(CLEAR_SHARE);
}
} }
...@@ -27,43 +27,48 @@ class GengmeiFlutterPlugin { ...@@ -27,43 +27,48 @@ class GengmeiFlutterPlugin {
return await ScanImagePlugn.quitPage(_channel); return await ScanImagePlugn.quitPage(_channel);
} }
static Future<int> getInt(String key,int value) async { static Future<int> getInt(String key, int value) async {
return await SharedPlugin.getInt(key,value,_channel); return await SharedPlugin.getInt(key, value, _channel);
} }
static Future<double> getDouble(String key,double value) async { static Future<double> getDouble(String key, double value) async {
return await SharedPlugin.getDouble(key,value,_channel); return await SharedPlugin.getDouble(key, value, _channel);
} }
static Future<String> getString(String key,String value) async { static Future<String> getString(String key, String value) async {
return await SharedPlugin.getString(key,value,_channel); return await SharedPlugin.getString(key, value, _channel);
} }
static Future<bool> getbool(String key,bool value) async { static Future<bool> getbool(String key, bool value) async {
return await SharedPlugin.getBoolean(key,value,_channel); return await SharedPlugin.getBoolean(key, value, _channel);
} }
static Future<List<String>> getStringList(String key,List<String> value) async { static Future<List<String>> getStringList(
return await SharedPlugin.getStringList(key,value,_channel); String key, List<String> value) async {
return await SharedPlugin.getStringList(key, value, _channel);
} }
static Future<bool> saveString(String key,String value) async{ static Future<bool> saveString(String key, String value) async {
return await SharedPlugin.saveString(key, value, _channel); return await SharedPlugin.saveString(key, value, _channel);
} }
static Future<bool> saveInt(String key,int value) async{ static Future<bool> saveInt(String key, int value) async {
return await SharedPlugin.saveInt(key, value, _channel); return await SharedPlugin.saveInt(key, value, _channel);
} }
static Future<bool> saveDouble(String key,double value) async{ static Future<bool> saveDouble(String key, double value) async {
return await SharedPlugin.saveDouble(key, value, _channel); return await SharedPlugin.saveDouble(key, value, _channel);
} }
static Future<bool> saveBool(String key,bool value) async{ static Future<bool> saveBool(String key, bool value) async {
return await SharedPlugin.saveBoolean(key, value, _channel); return await SharedPlugin.saveBoolean(key, value, _channel);
} }
static Future<bool> saveStringList(String key,List<String> value) async{ static Future<bool> saveStringList(String key, List<String> value) async {
return await SharedPlugin.saveStringList(key, value, _channel); return await SharedPlugin.saveStringList(key, value, _channel);
} }
static Future<bool> clearShare() async {
return await SharedPlugin.clear(_channel);
}
} }
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