diff --git a/.gitignore b/.gitignore index 1da95eb..2457787 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ build/ ios/.generated/ packages pubspec.lock +.vscode \ No newline at end of file diff --git a/README.md b/README.md index 4b6e868..8a41e96 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ AdvancedShare.generic( ``` ``` dart AdvancedShare.generic( - url: "file:///storage/emulated/0/Download/test.txt" + url: "content://{applicationId}.adv_provider/shared/myfile.jpg" ); ``` ``` dart diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs index 6aa97a9..e889521 100644 --- a/android/.settings/org.eclipse.buildship.core.prefs +++ b/android/.settings/org.eclipse.buildship.core.prefs @@ -1,2 +1,2 @@ -connection.project.dir=../example/android +connection.project.dir= eclipse.preferences.version=1 diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index ab9ff6b..edceddf 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,7 +1,8 @@ - + resInfoList = this.registrar.context().getPackageManager().queryIntentActivities(intentBuilder.getIntent(), PackageManager.MATCH_DEFAULT_ONLY); + for (ResolveInfo resolveInfo : resInfoList) { + String packageName = resolveInfo.activityInfo.packageName; + this.registrar.context().grantUriPermission(packageName, uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION); + } } } return 0; } - protected void openChooser() { + final Intent chooser = intentBuilder.createChooserIntent(); + if (registrar.activity() == null) { + chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + registrar.context().startActivity(chooser); + } else { + registrar.activity().startActivity(chooser); + } + } + protected void openSingleApplication(String packageName) { + final Intent intent = intentBuilder.getIntent(); + intent.setPackage(packageName); Intent chooser = Intent.createChooser(intent, title); if (registrar.activity() == null) { chooser.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); @@ -57,7 +70,6 @@ protected void openChooser() { registrar.activity().startActivity(chooser); } } - protected FileHelper getFileHelper(Map params) { String url = ""; if (checkKey("url")) { @@ -69,13 +81,10 @@ protected FileHelper getFileHelper(Map params) { return new FileHelper(registrar, (String) url); } } - public boolean checkKey(String key) { if (params != null && !params.isEmpty()) { return params.get(key) != null; } - return false; } - } \ No newline at end of file diff --git a/android/src/main/java/in/mertcan/advancedshare/shareintents/SingleBase.java b/android/src/main/java/in/mertcan/advancedshare/shareintents/SingleBase.java index 8f47f4b..9487291 100644 --- a/android/src/main/java/in/mertcan/advancedshare/shareintents/SingleBase.java +++ b/android/src/main/java/in/mertcan/advancedshare/shareintents/SingleBase.java @@ -19,8 +19,7 @@ public int share(Map params) { super.share(params); if (getPackage() != null) { if (isPackageInstalled(getPackage(), registrar.context())) { - this.intent.setPackage(getPackage()); - openChooser(); + openSingleApplication(getPackage()); return 1; } else { return 2; diff --git a/android/src/main/res/xml/adv_share_provider_paths.xml b/android/src/main/res/xml/adv_share_provider_paths.xml index df52b69..28b09c8 100644 --- a/android/src/main/res/xml/adv_share_provider_paths.xml +++ b/android/src/main/res/xml/adv_share_provider_paths.xml @@ -1,5 +1,4 @@ - - + \ No newline at end of file diff --git a/example/android/.settings/org.eclipse.buildship.core.prefs b/example/android/.settings/org.eclipse.buildship.core.prefs index 569501f..e889521 100644 --- a/example/android/.settings/org.eclipse.buildship.core.prefs +++ b/example/android/.settings/org.eclipse.buildship.core.prefs @@ -1,2 +1,2 @@ -#Wed May 02 23:10:33 EET 2018 connection.project.dir= +eclipse.preferences.version=1 diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index d2b6d1d..58f5be8 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -6,8 +6,8 @@ to allow setting breakpoints, to provide hot reload, etc. --> - - + +