From 1b2a70bf41bc6a5f81687c394094e31e45c57dba Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 22 Jul 2016 14:12:38 +0200 Subject: [PATCH] Allow importing of virtual files --- app/app.iml | 16 ++++++++-------- .../eu/faircode/netguard/ActivitySettings.java | 12 ++++++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/app.iml b/app/app.iml index 16cf64f9..bc39b36e 100644 --- a/app/app.iml +++ b/app/app.iml @@ -64,14 +64,6 @@ - - - - - - - - @@ -80,6 +72,14 @@ + + + + + + + + diff --git a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java index 6dfddc5d..e5c3b591 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivitySettings.java +++ b/app/src/main/java/eu/faircode/netguard/ActivitySettings.java @@ -22,12 +22,14 @@ package eu.faircode.netguard; import android.Manifest; import android.annotation.TargetApi; import android.content.BroadcastReceiver; +import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.net.ConnectivityManager; import android.net.Uri; @@ -903,7 +905,10 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere InputStream in = null; try { Log.i(TAG, "Reading URI=" + data.getData()); - in = getContentResolver().openInputStream(data.getData()); + ContentResolver resolver = getContentResolver(); + String[] streamTypes = resolver.getStreamTypes(data.getData(), "*/*"); + AssetFileDescriptor descriptor = resolver.openTypedAssetFileDescriptor(data.getData(), streamTypes[0], null); + in = descriptor.createInputStream(); out = new FileOutputStream(hosts); int len; @@ -963,7 +968,10 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere InputStream in = null; try { Log.i(TAG, "Reading URI=" + data.getData()); - in = getContentResolver().openInputStream(data.getData()); + ContentResolver resolver = getContentResolver(); + String[] streamTypes = resolver.getStreamTypes(data.getData(), "*/*"); + AssetFileDescriptor descriptor = resolver.openTypedAssetFileDescriptor(data.getData(), streamTypes[0], null); + in = descriptor.createInputStream(); xmlImport(in); return null; } catch (Throwable ex) {