diff options
author | Arne Coucheron <arco68@gmail.com> | 2016-12-21 14:48:49 +0100 |
---|---|---|
committer | Zhao Wei Liew <zhaoweiliew@gmail.com> | 2016-12-22 19:35:06 -0800 |
commit | 04d40552fd4eabfa449349288b004ce73314d979 (patch) | |
tree | bdec1df129427504486f3f6f6ef0509ab448fa03 | |
parent | 11826416cafe5392cf1c17de85c010da4bce91d9 (diff) | |
download | android_packages_apps_CMFileManager-04d40552fd4eabfa449349288b004ce73314d979.tar.gz android_packages_apps_CMFileManager-04d40552fd4eabfa449349288b004ce73314d979.tar.bz2 android_packages_apps_CMFileManager-04d40552fd4eabfa449349288b004ce73314d979.zip |
Revert "cmfm: Use FileProvider for serving files"
Incomplete so things are still very much broken.
We'll force SDK to version 23 instead for now, so
at least we have a fully working file manager.
This reverts commit 578f0a0ed7870b5a8ed28c7c0198a798b389a682.
Change-Id: I612507d75d3e45ba091d43ac2c5bf1f9dbe53fb5
6 files changed, 15 insertions, 43 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 46602187..7d00f0bc 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -76,16 +76,6 @@ android:authorities="com.cyanogenmod.filemanager.providers.index" android:name=".providers.MimeTypeIndexProvider"/> - <provider - android:name="android.support.v4.content.FileProvider" - android:authorities="com.cyanogenmod.filemanager.providers.file" - android:exported="false" - android:grantUriPermissions="true"> - <meta-data - android:name="android.support.FILE_PROVIDER_PATHS" - android:resource="@xml/provider_paths" /> - </provider> - <service android:name=".service.MimeTypeIndexService" android:label="@string/app_name"> diff --git a/res/xml/provider_paths.xml b/res/xml/provider_paths.xml deleted file mode 100644 index 4ff89311..00000000 --- a/res/xml/provider_paths.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<paths xmlns:android="http://schemas.android.com/apk/res/android"> - <external-path name="external_files" path="."/> -</paths> diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java index 2e5deafb..8e32f5cb 100755 --- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java @@ -47,7 +47,6 @@ import android.os.Parcelable; import android.os.storage.StorageVolume; import android.provider.Settings; import android.support.v4.app.ActionBarDrawerToggle; -import android.support.v4.content.FileProvider; import android.support.v4.widget.DrawerLayout; import android.text.TextUtils; import android.util.Log; @@ -637,10 +636,7 @@ public class NavigationActivity extends Activity for (FileSystemObject f : selectedFiles) { //Beam ignores folders and system files if (!FileHelper.isDirectory(f) && !FileHelper.isSystemFile(f)) { - fileUri.add(FileProvider.getUriForFile( - NavigationActivity.this, - "com.cyanogenmod.filemanager.providers.file", - new File(f.getFullPath()))); + fileUri.add(Uri.fromFile(new File(f.getFullPath()))); } } if (fileUri.size() > 0) { diff --git a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java index 17707a66..ba5fa53a 100644 --- a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java @@ -34,7 +34,6 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.storage.StorageVolume; -import android.support.v4.content.FileProvider; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Log; @@ -467,8 +466,7 @@ public class PickerActivity extends Activity if (getIntent().getType() != null) { intent.setType(getIntent().getType()); } - intent.setData(FileProvider.getUriForFile(this, - "com.cyanogenmod.filemanager.providers.file", src)); + intent.setData(Uri.fromFile(src)); intent.putExtras(extras); intent.setComponent(CROP_COMPONENT); try { @@ -574,8 +572,7 @@ public class PickerActivity extends Activity // Try to find the preferred uri scheme Uri result = MediaHelper.fileToContentUri(context, src); if (result == null) { - result = FileProvider.getUriForFile(context, - "com.cyanogenmod.filemanager.providers.file", src); + result = Uri.fromFile(src); } if (Intent.ACTION_PICK.equals(intent.getAction()) && intent.getData() != null) { diff --git a/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java b/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java index 774b3383..a90281dd 100644 --- a/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java +++ b/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java @@ -166,7 +166,7 @@ public class AssociationsDialog implements OnItemClickListener { public void onClick(DialogInterface dialog, int which) { ResolveInfo ri = getSelected(); Intent intent = - IntentsActionPolicy.getIntentFromResolveInfo(mContext, + IntentsActionPolicy.getIntentFromResolveInfo( ri, AssociationsDialog.this.mRequestIntent); // Open the intent (and remember the action is the check is marked) diff --git a/src/com/cyanogenmod/filemanager/ui/policy/IntentsActionPolicy.java b/src/com/cyanogenmod/filemanager/ui/policy/IntentsActionPolicy.java index 3451ebe5..67041bb8 100755 --- a/src/com/cyanogenmod/filemanager/ui/policy/IntentsActionPolicy.java +++ b/src/com/cyanogenmod/filemanager/ui/policy/IntentsActionPolicy.java @@ -26,7 +26,6 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.net.Uri; import android.provider.MediaStore; -import android.support.v4.content.FileProvider; import android.util.Log; import android.widget.Toast; import com.cyanogenmod.filemanager.R; @@ -166,8 +165,6 @@ public final class IntentsActionPolicy extends ActionsPolicy { intent.setData(getUriFromFile(ctx, fso)); } - intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - // Resolve the intent resolveIntent(ctx, intent, choose, onDismissListener); } catch (Exception e) { @@ -446,8 +443,7 @@ public final class IntentsActionPolicy extends ActionsPolicy { * @param request The requested intent * @return Intent The intent */ - public static final Intent getIntentFromResolveInfo(Context context, - ResolveInfo ri, Intent request) { + public static final Intent getIntentFromResolveInfo(ResolveInfo ri, Intent request) { Intent intent = getIntentFromComponentName( new ComponentName( @@ -477,7 +473,7 @@ public final class IntentsActionPolicy extends ActionsPolicy { } // Grant access to resources if needed - grantSecureAccessIfNeeded(context, intent, ri); + grantSecureAccessIfNeeded(intent, ri); return intent; } @@ -488,8 +484,7 @@ public final class IntentsActionPolicy extends ActionsPolicy { * @param intent The intent to grant access * @param ri The resolved info associated with the intent */ - public static final void grantSecureAccessIfNeeded(Context context, - Intent intent, ResolveInfo ri) { + public static final void grantSecureAccessIfNeeded(Intent intent, ResolveInfo ri) { // If this intent will be serve by the SecureResourceProvider then this uri must // be granted before we start it, only for external apps. The internal editor // must receive an file scheme uri @@ -497,33 +492,32 @@ public final class IntentsActionPolicy extends ActionsPolicy { String authority = null; if (uri != null) { authority = uri.getAuthority(); - grantSecureAccess(context, intent, authority, ri, uri); + grantSecureAccess(intent, authority, ri, uri); } else if (intent.getExtras() != null) { Object obj = intent.getExtras().get(Intent.EXTRA_STREAM); if (obj instanceof Uri) { uri = (Uri) intent.getExtras().get(Intent.EXTRA_STREAM); authority = uri.getAuthority(); - grantSecureAccess(context, intent, authority, ri, uri); + grantSecureAccess(intent, authority, ri, uri); } else if (obj instanceof ArrayList) { ArrayList<Uri> uris = (ArrayList<Uri>) intent.getExtras().get(Intent.EXTRA_STREAM); for (Uri u : uris) { authority = u.getAuthority(); - grantSecureAccess(context, intent, authority, ri, u); + grantSecureAccess(intent, authority, ri, u); } } } } - private static final void grantSecureAccess(Context context, Intent intent, - String authority, ResolveInfo ri, Uri uri) { + private static final void grantSecureAccess(Intent intent, String authority, ResolveInfo ri, + Uri uri) { if (authority != null && authority.equals(SecureResourceProvider.AUTHORITY)) { boolean isInternalEditor = isInternalEditor(ri); if (isInternalEditor) { // remove the authorization and change request to file scheme AuthorizationResource auth = SecureResourceProvider.revertAuthorization(uri); - intent.setData(FileProvider.getUriForFile(context, - "com.cyanogenmod.filemanager.providers.file", - new File(auth.mFile.getFullPath()))); + intent.setData(Uri.fromFile(new File(auth.mFile.getFullPath()))); + } else { // Grant access to the package SecureResourceProvider.grantAuthorizationUri(uri, @@ -667,8 +661,7 @@ public final class IntentsActionPolicy extends ActionsPolicy { final File file = new File(fso.getFullPath()); Uri uri = MediaHelper.fileToContentUri(ctx, file); if (uri == null) { - uri = FileProvider.getUriForFile(ctx, - "com.cyanogenmod.filemanager.providers.file", file); + uri = Uri.fromFile(file); } return uri; } |