diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 30aa626..db291c6 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,29 +1,131 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/image_gallery.iml b/.idea/image_gallery.iml
index 582c03f..baaa7b1 100644
--- a/.idea/image_gallery.iml
+++ b/.idea/image_gallery.iml
@@ -13,7 +13,7 @@
-
+
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
index 62be7ea..b8c6c46 100644
--- a/.idea/libraries/Dart_SDK.xml
+++ b/.idea/libraries/Dart_SDK.xml
@@ -1,26 +1,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7aaf83b..32a70fa 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,227 +7,43 @@
+
+
-
-
-
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
@@ -255,7 +71,8 @@
-
+
+
@@ -277,102 +94,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/build.gradle b/android/build.gradle
index 110f609..c1745ed 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -26,15 +26,15 @@ android {
defaultConfig {
minSdkVersion 16
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
lintOptions {
disable 'InvalidPackage'
}
}
dependencies {
- implementation 'com.android.support:appcompat-v7:27.1.1'
+ implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.karumi:dexter:5.0.0'
- implementation 'com.android.support:support-annotations:27.1.1'
+ implementation 'androidx.annotation:annotation:1.0.0'
}
diff --git a/android/src/main/java/adhoc/successive/com/fluttergallaryplugin/FlutterGallaryPlugin.java b/android/src/main/java/adhoc/successive/com/fluttergallaryplugin/FlutterGallaryPlugin.java
index 2b44b81..572b7d1 100644
--- a/android/src/main/java/adhoc/successive/com/fluttergallaryplugin/FlutterGallaryPlugin.java
+++ b/android/src/main/java/adhoc/successive/com/fluttergallaryplugin/FlutterGallaryPlugin.java
@@ -38,6 +38,8 @@ public class FlutterGallaryPlugin implements MethodCallHandler {
private Application.ActivityLifecycleCallbacks activityLifecycleCallbacks;
Result result;
+ MethodCall mMethodCall;
+
HashMap allImageInfoList = new HashMap<>();
public static void registerWith(Registrar registrar) {
@@ -45,7 +47,7 @@ public static void registerWith(Registrar registrar) {
channel.setMethodCallHandler(new FlutterGallaryPlugin(registrar.activity(), channel, registrar));
}
- public FlutterGallaryPlugin(Activity activity, MethodChannel methodChannel, Registrar registrar) {
+ public FlutterGallaryPlugin(Activity activity, final MethodChannel methodChannel, Registrar registrar) {
this.activity = activity;
this.methodChannel = methodChannel;
this.methodChannel.setMethodCallHandler(this);
@@ -65,7 +67,14 @@ public void onActivityStarted(Activity activity) {
@Override
public void onActivityResumed(Activity activity) {
- getPermissionResult(result, activity);
+ if (mMethodCall.method.equals("getAllImages")) {
+ getPermissionResult(result, activity,true);
+ } else if(mMethodCall.method.equals("getAllVideos")){
+ getPermissionResult(result,activity,false);
+ }else
+ {
+ result.notImplemented();
+ }
}
@@ -95,23 +104,30 @@ public void onActivityDestroyed(Activity activity) {
@Override
public void onMethodCall(MethodCall call, Result result) {
+ mMethodCall = call;
+
this.result = result;
if (call.method.equals("getAllImages")) {
-
- getPermissionResult(result, activity);
- } else {
+ getPermissionResult(result, activity,true);
+ } else if(call.method.equals("getAllVideos")){
+ getPermissionResult(result,activity,false);
+ }else
+ {
result.notImplemented();
}
}
- public void getPermissionResult(final Result result, final Activity activity) {
+ public void getPermissionResult(final Result result, final Activity activity, final boolean isImage) {
Dexter.withActivity(activity)
.withPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
+ if(isImage)
result.success(getAllImageList(activity));
+ else
+ result.success(getAllVideoList(activity));
}
@Override
@@ -183,6 +199,7 @@ public HashMap getAllImageList(Activity activity) {
MediaStore.Images.ImageColumns.DISPLAY_NAME,
MediaStore.Images.ImageColumns.DATE_ADDED,
MediaStore.Images.ImageColumns.TITLE};
+
Cursor c = activity.getContentResolver().query(uri, projection, null, null, null);
if (c != null) {
while (c.moveToNext()) {
@@ -202,6 +219,54 @@ public HashMap getAllImageList(Activity activity) {
allImageInfoList.put("DISPLAY_NAME", displayNameList);
allImageInfoList.put("DATE_ADDED", dateAddedList);
allImageInfoList.put("TITLE", titleList);
+ allImageInfoList.put("THUMBNAIL", titleList);
+
+ }
+ return allImageInfoList;
+ }
+
+
+
+
+
+
+
+
+ public HashMap getAllVideoList(Activity activity) {
+
+ ArrayList allVideoList = new ArrayList<>();
+ ArrayList displayNameList = new ArrayList<>();
+ ArrayList dateAddedList = new ArrayList<>();
+ ArrayList titleList = new ArrayList<>();
+
+ Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
+ String[] projection = {
+ MediaStore.Video.VideoColumns.DATA,
+ MediaStore.Video.Media.DISPLAY_NAME,
+ MediaStore.Video.Media.DATE_ADDED,
+ MediaStore.Video.Media.DURATION,
+ };
+ Cursor c = activity.getContentResolver().query(uri, projection, null, null, null);
+ if (c != null) {
+ while (c.moveToNext()) {
+// Log.e("", "getAllImageList: " + c.getString(0));
+// Log.e("", "getAllImageList: " + c.getString(1));
+// Log.e("", "getAllImageList: " + c.getString(2));
+// Log.e("", "getAllImageList: " + c.getString(3));
+ Log.e("", "getAllImageList: " + c.getString(0));
+ Log.e("", "getAllImageList: " + c.getString(3));
+
+ titleList.add(c.getString(3));
+ displayNameList.add(c.getString(1));
+ dateAddedList.add(c.getString(2));
+ allVideoList.add(c.getString(0));
+ }
+ c.close();
+
+ allImageInfoList.put("URIList", allVideoList);
+ allImageInfoList.put("DISPLAY_NAME", displayNameList);
+ allImageInfoList.put("DATE_ADDED", dateAddedList);
+ allImageInfoList.put("DURATION", titleList);
}
return allImageInfoList;
diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle
index bd348ad..fc9cfba 100644
--- a/example/android/app/build.gradle
+++ b/example/android/app/build.gradle
@@ -38,7 +38,7 @@ android {
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildTypes {
@@ -56,6 +56,6 @@ flutter {
dependencies {
testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
}
diff --git a/example/android/gradle.properties b/example/android/gradle.properties
index 8bd86f6..38c8d45 100644
--- a/example/android/gradle.properties
+++ b/example/android/gradle.properties
@@ -1 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
+android.enableR8=true
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/example/lib/main.dart b/example/lib/main.dart
index eb9e537..4c60f92 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -28,12 +28,12 @@ class _MyAppState extends State {
Future loadImageList() async {
Map allImageTemp;
- allImageTemp = await FlutterGallaryPlugin.getAllImages;
+ allImageTemp = await FlutterGallaryPlugin.getAllVideos;
print(" call $allImageTemp.length");
setState(() {
- this.allImage = allImageTemp['URIList'] as List;
+ this.allImage = allImageTemp['THUMBNAIL'] as List;
this.allNameList = allImageTemp['DISPLAY_NAME'] as List;
});
}
diff --git a/lib/image_gallery.dart b/lib/image_gallery.dart
index 1b8657e..1a82510 100644
--- a/lib/image_gallery.dart
+++ b/lib/image_gallery.dart
@@ -11,4 +11,8 @@ class FlutterGallaryPlugin {
Map object = await _channel.invokeMethod('getAllImages');
return object;
}
+ static Future