aboutsummaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorYuichi Araki <yaraki@google.com>2016-12-20 01:57:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-12-20 01:57:40 +0000
commit3506df96a6115e351d2cbe60b6695e6d1fb87a3b (patch)
tree382a8359a594ca42fdc79b31788197701bac7ff3 /ui
parentdc77d5bb8da2ba256e2a81f65f362f4cdf07dd1f (diff)
parent7b6e65db152f19c782fc02d05e5f12e098675a78 (diff)
downloadandroid-3506df96a6115e351d2cbe60b6695e6d1fb87a3b.tar.gz
Merge "Work around an issue with aapt" into nyc-mr1-dev
Diffstat (limited to 'ui')
-rw-r--r--ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java24
-rw-r--r--ui/graphics/PdfRendererBasic/template-params.xml15
2 files changed, 25 insertions, 14 deletions
diff --git a/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java b/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
index e413c659..20b0a7f4 100644
--- a/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
+++ b/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java
@@ -30,7 +30,10 @@ import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
/**
* This fragment has a big {@ImageView} that shows PDF pages, and 2 {@link android.widget.Button}s to move between
@@ -44,6 +47,11 @@ public class PdfRendererBasicFragment extends Fragment implements View.OnClickLi
private static final String STATE_CURRENT_PAGE_INDEX = "current_page_index";
/**
+ * The filename of the PDF.
+ */
+ private static final String FILENAME = "sample.pdf";
+
+ /**
* File descriptor of the PDF.
*/
private ParcelFileDescriptor mFileDescriptor;
@@ -136,7 +144,21 @@ public class PdfRendererBasicFragment extends Fragment implements View.OnClickLi
*/
private void openRenderer(Context context) throws IOException {
// In this sample, we read a PDF from the assets directory.
- mFileDescriptor = context.getAssets().openFd("sample.pdf").getParcelFileDescriptor();
+ File file = new File(context.getCacheDir(), FILENAME);
+ if (!file.exists()) {
+ // Since PdfRenderer cannot handle the compressed asset file directly, we copy it into
+ // the cache directory.
+ InputStream asset = context.getAssets().open(FILENAME);
+ FileOutputStream output = new FileOutputStream(file);
+ final byte[] buffer = new byte[1024];
+ int size;
+ while ((size = asset.read(buffer)) != -1) {
+ output.write(buffer, 0, size);
+ }
+ asset.close();
+ output.close();
+ }
+ mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
// This is the PdfRenderer we use to render the PDF.
mPdfRenderer = new PdfRenderer(mFileDescriptor);
}
diff --git a/ui/graphics/PdfRendererBasic/template-params.xml b/ui/graphics/PdfRendererBasic/template-params.xml
index c7182ebb..81ea8268 100644
--- a/ui/graphics/PdfRendererBasic/template-params.xml
+++ b/ui/graphics/PdfRendererBasic/template-params.xml
@@ -33,10 +33,6 @@
</intro>
</strings>
- <aapt>
- <noCompress>pdf</noCompress>
- </aapt>
-
<template src="base"/>
<metadata>
@@ -71,15 +67,8 @@ rendering with [openPage()][3], then call [render()][4] to turn the opened
[PdfRenderer.Page][5] into a bitmap.
This sample loads the PDF from assets. Contents of assets are compressed by
-default, but we disable it since PdfRenderer class cannot handle it.
-
-```groovy
-android {
- aaptOptions {
- noCompress "pdf"
- }
-}
-```
+default, and the PdfRenderer class cannot open it. In this sample, we work
+around this by copying the file into the cache directory.
[1]: https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html
[2]: https://developer.android.com/reference/android/os/ParcelFileDescriptor.html