Skip to content

Commit bd42aa4

Browse files
committed
Associations fix. Close #2.
1 parent 7226090 commit bd42aa4

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
xmlns:tools="http://schemas.android.com/tools"
44
package="com.noticeditorteam.noticeditorandroid">
55

6+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
67
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
78

89
<application
@@ -31,6 +32,7 @@
3132

3233
<category android:name="android.intent.category.DEFAULT" />
3334
<data android:scheme="file" />
35+
<data android:scheme="content" />
3436
<data android:host="*" />
3537
<data android:mimeType="*/*" />
3638
<data android:pathPattern=".*\\.json" />
@@ -48,6 +50,7 @@
4850

4951
<category android:name="android.intent.category.DEFAULT" />
5052
<data android:scheme="file" />
53+
<data android:scheme="content" />
5154
<data android:host="*" />
5255
<data android:mimeType="*/*" />
5356
<data android:pathPattern=".*\\.zip" />

app/src/main/java/com/noticeditorteam/noticeditorandroid/activities/NoticeTreeActivity.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import android.app.DialogFragment;
44
import android.content.Intent;
55
import android.content.SharedPreferences;
6+
import android.database.Cursor;
67
import android.net.Uri;
78
import android.os.Bundle;
89
import android.os.Environment;
10+
import android.provider.MediaStore;
911
import android.support.v7.app.AppCompatActivity;
1012
import android.support.v7.widget.Toolbar;
1113
import android.view.ContextMenu;
@@ -146,11 +148,28 @@ private void exportDocument(NoticeItem root, String path, ExportStrategy current
146148
service.addFile(path);
147149
}
148150

151+
private String getRealPathFromURI(Uri uri) {
152+
Cursor cursor;
153+
String[] proj = { MediaStore.Images.Media.DATA };
154+
cursor = getContentResolver().query(uri, proj, null, null, null);
155+
if(cursor == null) {
156+
return uri.getPath();
157+
}
158+
else {
159+
cursor.moveToFirst();
160+
int idx = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
161+
String result = cursor.getString(idx);
162+
cursor.close();
163+
return result;
164+
}
165+
}
166+
149167
private NoticeItem openDocument(Uri uri) {
150-
File notice = new File(uri.getPath());
168+
String path = getRealPathFromURI(uri);
169+
File notice = new File(path);
151170
try {
152171
NoticeItem item = DocumentFormat.open(notice);
153-
service.addFile(uri.getPath());
172+
service.addFile(path);
154173
return item;
155174
} catch (IOException e) {
156175
e.printStackTrace();

0 commit comments

Comments
 (0)