Skip to content

Commit

Permalink
added CWAC-Document/DocumentFileCompat
Browse files Browse the repository at this point in the history
  • Loading branch information
commonsguy committed Mar 20, 2017
1 parent d2e96d7 commit 5dd83ff
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 42 deletions.
Expand Up @@ -17,15 +17,9 @@
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Fragment;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.DocumentsContract;
import android.provider.OpenableColumns;
import android.support.v4.provider.DocumentFile;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
Expand All @@ -37,7 +31,6 @@
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;

public class ConsumerFragment extends Fragment {
private static final int REQUEST_OPEN=1337;
Expand Down
Expand Up @@ -16,20 +16,15 @@

import android.app.IntentService;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.UriPermission;
import android.net.Uri;
import android.os.Build;
import android.support.v4.provider.DocumentFile;
import android.util.Log;
import android.webkit.MimeTypeMap;
import com.commonsware.cwac.document.DocumentFileCompat;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.NoSubscriberEvent;
import org.greenrobot.eventbus.Subscribe;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

public class DurablizerService extends IntentService {
public DurablizerService() {
Expand All @@ -48,7 +43,7 @@ protected void onHandleIntent(Intent intent) {
if (weHaveDurablePermission || document!=null) {
Log.d(getClass().getSimpleName(), document.toString());

DocumentFile docFile=buildDocFileForUri(document);
DocumentFileCompat docFile=buildDocFileForUri(document);

Log.d(getClass().getSimpleName(),
"Display name: "+docFile.getName());
Expand Down Expand Up @@ -86,34 +81,22 @@ private boolean obtainDurablePermission(Uri document) {
}

private Uri makeLocalCopy(Uri document) {
DocumentFile docFile=buildDocFileForUri(document);
DocumentFileCompat docFile=buildDocFileForUri(document);
Uri result=null;

if (docFile.getName()!=null) {
File f=new File(getFilesDir(), docFile.getName());

try {
FileOutputStream fos=new FileOutputStream(f);
BufferedOutputStream out=new BufferedOutputStream(fos);
InputStream in=
getContentResolver().openInputStream(document);
String ext=
MimeTypeMap.getSingleton().getExtensionFromMimeType(docFile.getType());

try {
byte[] buffer=new byte[8192];
int len=0;
if (ext!=null) {
ext="."+ext;
}

while ((len=in.read(buffer))>=0) {
out.write(buffer, 0, len);
}
File f=File.createTempFile("cw_", ext, getFilesDir());

out.flush();
result=Uri.fromFile(f);
}
finally {
fos.getFD().sync();
out.close();
in.close();
}
docFile.copyTo(f);
result=Uri.fromFile(f);
}
catch (Exception e) {
Log.e(getClass().getSimpleName(),
Expand All @@ -124,23 +107,23 @@ private Uri makeLocalCopy(Uri document) {
return(result);
}

private DocumentFile buildDocFileForUri(Uri document) {
DocumentFile docFile;
private DocumentFileCompat buildDocFileForUri(Uri document) {
DocumentFileCompat docFile;

if (document.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
docFile=DocumentFile.fromSingleUri(this, document);
docFile=DocumentFileCompat.fromSingleUri(this, document);
}
else {
docFile=DocumentFile.fromFile(new File(document.getPath()));
docFile=DocumentFileCompat.fromFile(new File(document.getPath()));
}

return(docFile);
}

static class ContentReadyEvent {
final DocumentFile docFile;
final DocumentFileCompat docFile;

ContentReadyEvent(DocumentFile docFile) {
ContentReadyEvent(DocumentFileCompat docFile) {
this.docFile=docFile;
}
}
Expand Down

0 comments on commit 5dd83ff

Please sign in to comment.