diff options
author | Yuichi Araki <yaraki@google.com> | 2016-12-19 17:54:14 +0900 |
---|---|---|
committer | Yuichi Araki <yaraki@google.com> | 2016-12-19 18:20:51 +0900 |
commit | 7b6e65db152f19c782fc02d05e5f12e098675a78 (patch) | |
tree | 3f4ef8f0ffa566dd43d0f218b3405fb352c6e3c4 /ui | |
parent | a5a3733fb122d50d02cae0dee23c19a089cf8ffe (diff) | |
download | android-7b6e65db152f19c782fc02d05e5f12e098675a78.tar.gz |
Work around an issue with aapt
AAPT option noCompress no longer works as of gradle plugin 2.2. This
change works around the issue by copying the asset file into the cache
directory.
Change-Id: I08388ccfb2fb3460d0b4db2d7a06a2a478913032
Diffstat (limited to 'ui')
-rw-r--r-- | ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java | 24 | ||||
-rw-r--r-- | ui/graphics/PdfRendererBasic/template-params.xml | 15 |
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 79ebf173..fe198b4d 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 |