diff options
author | Martin Brabham <optedoblivion@cyngn.com> | 2015-10-12 16:41:11 -0700 |
---|---|---|
committer | Martin Brabham <optedoblivion@cyngn.com> | 2015-10-12 16:44:03 -0700 |
commit | b284ba6fc48b1e8d152a14b8ecd98a3f263c96e2 (patch) | |
tree | 9183381af8c2ec2adce7fbf8a829de2b14db4d3e | |
parent | d8e4b49954da90f034c744205d56958c9c122e06 (diff) | |
download | android_packages_apps_CMFileManager-b284ba6fc48b1e8d152a14b8ecd98a3f263c96e2.tar.gz android_packages_apps_CMFileManager-b284ba6fc48b1e8d152a14b8ecd98a3f263c96e2.tar.bz2 android_packages_apps_CMFileManager-b284ba6fc48b1e8d152a14b8ecd98a3f263c96e2.zip |
Prevent NPE collecting title, which was preventing
the print action. Use Uri for title and timestamp
for print title.
Change-Id: Ib21006b6e47fd18622c726e9f4beea721328ad6e
Ticket-Id: HAM-874
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/EditorActivity.java | 1 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/ui/policy/PrintActionPolicy.java | 55 |
2 files changed, 46 insertions, 10 deletions
diff --git a/src/com/cyanogenmod/filemanager/activities/EditorActivity.java b/src/com/cyanogenmod/filemanager/activities/EditorActivity.java index dfd90b97..6f74fcab 100644 --- a/src/com/cyanogenmod/filemanager/activities/EditorActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/EditorActivity.java @@ -1004,6 +1004,7 @@ public class EditorActivity extends Activity implements TextWatcher { Intent fileIntent = getIntent(); if (fileIntent.getData().getScheme().equals("content")) { asyncReadContentURI(fileIntent.getData()); + this.mTitle.setText(fileIntent.getDataString()); } else { // File Scheme URI's String path = uriToPath(this, getIntent().getData()); diff --git a/src/com/cyanogenmod/filemanager/ui/policy/PrintActionPolicy.java b/src/com/cyanogenmod/filemanager/ui/policy/PrintActionPolicy.java index 38e44940..791d6dbe 100644 --- a/src/com/cyanogenmod/filemanager/ui/policy/PrintActionPolicy.java +++ b/src/com/cyanogenmod/filemanager/ui/policy/PrintActionPolicy.java @@ -271,11 +271,17 @@ public final class PrintActionPolicy extends ActionsPolicy { int rowsPerPage = rowsPerPage(pageContentRect); adjustLines(pageContentRect, charsPerRow); - PrintDocumentInfo info = new PrintDocumentInfo.Builder(mDocument.getName()) + String name = String.valueOf(System.currentTimeMillis()); + long size = 0; + if (mDocument != null) { + name = mDocument.getName(); + size = mDocument.getSize(); + } + PrintDocumentInfo info = new PrintDocumentInfo.Builder(name) .setContentType(PrintDocumentInfo.CONTENT_TYPE_DOCUMENT) .setPageCount(calculatePageCount(rowsPerPage)) .build(); - info.setDataSize(mDocument.getSize()); + info.setDataSize(size); boolean changed = !newAttributes.equals(oldAttributes); callback.onLayoutFinished(info, changed); } @@ -308,7 +314,11 @@ public final class PrintActionPolicy extends ActionsPolicy { private void printHeader(Context ctx, Page page, Rect pageContentRect, int charsPerRow) { - String header = ctx.getString(R.string.print_document_header, mDocument.getName()); + String name = String.valueOf(System.currentTimeMillis()); + if (mDocument != null) { + name = mDocument.getName(); + } + String header = ctx.getString(R.string.print_document_header, name); if (header.length() >= charsPerRow) { header = header.substring(header.length() - 3) + "..."; } @@ -408,7 +418,11 @@ public final class PrintActionPolicy extends ActionsPolicy { return 1; } }; - printManager.print(document.getName(), new DocumentAdapter(ctx, document, reader), attr); + String name = String.valueOf(System.currentTimeMillis()); + if (document != null) { + name = document.getName(); + } + printManager.print(name, new DocumentAdapter(ctx, document, reader), attr); } /** @@ -451,7 +465,11 @@ public final class PrintActionPolicy extends ActionsPolicy { return mDocumentMode; } }; - printManager.print(document.getName(), new DocumentAdapter(ctx, document, reader), attr); + String name = String.valueOf(System.currentTimeMillis()); + if (document != null) { + name = document.getName(); + } + printManager.print(name, new DocumentAdapter(ctx, document, reader), attr); } /** @@ -467,7 +485,12 @@ public final class PrintActionPolicy extends ActionsPolicy { .setMediaSize(mediaSize) .setColorMode(PrintAttributes.COLOR_MODE_COLOR) .build(); - printManager.print(document.getName(), new PrintDocumentAdapter() { + + String name = String.valueOf(System.currentTimeMillis()); + if (document != null) { + name = document.getName(); + } + printManager.print(name, new PrintDocumentAdapter() { @Override public void onWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, WriteResultCallback callback) { @@ -539,7 +562,11 @@ public final class PrintActionPolicy extends ActionsPolicy { return; } - PrintDocumentInfo info = new PrintDocumentInfo.Builder(document.getName()) + String name = String.valueOf(System.currentTimeMillis()); + if (document != null) { + name = document.getName(); + } + PrintDocumentInfo info = new PrintDocumentInfo.Builder(name) .setContentType(PrintDocumentInfo.CONTENT_TYPE_DOCUMENT) .build(); boolean changed = !newAttributes.equals(oldAttributes); @@ -613,7 +640,12 @@ public final class PrintActionPolicy extends ActionsPolicy { .setMediaSize(mediaSize) .setColorMode(PrintAttributes.COLOR_MODE_COLOR) .build(); - printManager.print(image.getName(), new PrintDocumentAdapter() { + + String name = String.valueOf(System.currentTimeMillis()); + if (image != null) { + name = image.getName(); + } + printManager.print(name, new PrintDocumentAdapter() { private PrintAttributes mAttributes; @Override @@ -667,8 +699,11 @@ public final class PrintActionPolicy extends ActionsPolicy { return; } mAttributes = newAttributes; - - PrintDocumentInfo info = new PrintDocumentInfo.Builder(image.getName()) + String name = String.valueOf(System.currentTimeMillis()); + if (image != null) { + name = image.getName(); + } + PrintDocumentInfo info = new PrintDocumentInfo.Builder(name) .setContentType(PrintDocumentInfo.CONTENT_TYPE_PHOTO) .setPageCount(1) .build(); |