summaryrefslogtreecommitdiff
path: root/platform/android
AgeCommit message (Collapse)Author
2016-08-16Android example - simple implementation of reflow.fred ross-perry
page text (one page at a time) is converted to HTML and shown in a class that extends WebView.
2016-08-16Android viewer: get experimental proofing to build again.fred ross-perry
- use FZ_ENABLE_GPRF everywhere - chasing changed fz APIs in gprf-doc.c
2016-08-16Android example: fix initial layout timing issue.fred ross-perry
2016-08-16Android example - fix a crash bug by recycling bitmaps between documents.fred ross-perry
2016-08-16Android example : improved text selection.fred ross-perry
2016-08-08Android example - collected changesfred ross-perry
- move UI into the "mupdf" module. The app simply sets up a DocView and starts it with a file path. The app can call DocView.showUI to determine whether the built-in UI is used. The plan is for apps to be able to use the built-in UI, or supply their own. Also includes some rudimentary UI for show/hiding annotations, and listing links and outlines. Just for testing JNI features. - add toolbar and tabs at the top of the view. - refactoring DocView becomes DocActivityView, DocViewInner becomes DocView. - add Pages toolbar and page list view. make the page list a little narrower. give the document view and the pages view separate bitmaps, and have DocPageView implement clipping when it draws. - fix tabbing and brace style. - add simple text selection and highlighting. This is still a work in progress. - various code review items. fix tabs and brace styles remove function calls from loop statements use "highlight", not "hilight" put a few strings into resources avoid Right Hand Drift (tm) Rects are inclusive...exclusive for the purpose of testing limits put "else" on a separate line put "catch" and "finally" on separate lines
2016-07-31Java: Add import of ByteArrayOuputStream.Sebastian Rasmussen
This allows compilation using older Android NDKs. This was mistakenly omitted from commit 537a467dfd6392d70624805943ac65182ec881b4.
2016-07-18Bug 696662: Android viewer: data from URI stream fix.Robin Watts
Apparently, if MuPDF is invoked on a content stream that comes from a URI, then is.available() can report 0 bytes (as there is no data buffered). Use a modified formulation that reads as much data as possible from the stream into a BufferedOutputStream and then makes a byte array from that. Would be nicer if the core could actually read from the stream directly, perhaps, but that can wait for the new JNI based version. Thanks to Marc K for identifying the problem and supplying the patch.
2016-07-15android example - fix whitespace issue.fred ross-perry
2016-07-15android example: An attempt to improve the fluttering at the edges while ↵fred ross-perry
zooming and scrolling.
2016-07-15android example - add cacheing of page contents and annotations.fred ross-perry
2016-07-15android example - add a button to toggle annotationsfred ross-perry
2016-07-15android example - VERY brief build instructions.fred ross-perry
2016-07-15java - move fitz sources into a 'src' subfolder.fred ross-perry
2016-07-15Android viewer - fix bugs in mupdf.c associated with changing APIs.fred ross-perry
fz_bound_page needs the correct 2nd argument pdf_widget_get_type should be pdf_widget_type
2016-07-15Fix indentation for Java sources.Tor Andersson
2016-07-15Fix build breakage in Android viewer jni code.Robin Watts
2016-07-14Update android viewer with fz_close_device.Robin Watts
Reflect API change in example viewer.
2016-07-14Fix whitespace and indentation.Tor Andersson
2016-07-13Bug 696699: Fix Text extraction mediabox information.Robin Watts
Since the removal of the begin_page device function, structured text extraction has been unable to correctly establish the mediabox for extracted pages. Update the fz_new_stext_page call to take this mediabox information. This is an API change, but hopefully most people are calling fz_new_stext_page_from_page or fz_new_stext_page_from_display_list which are updated here to cope. Update all the apps/tools to behave properly.
2016-07-08android: Fix mixed tabs/spaces in DocViewActivity.java.Tor Andersson
2016-07-06Android example: modify to use new JNI, N-up page displayfredrossperry
- uses AndroidDrawDevice for rendering - very simple sample app - mupdf-specific functionality in a module called "mupdf" - N-up page display - page rendering in a background task Signed-off-by: fredrossperry <fredrossperry@gmail.com>
2016-07-06Android viewer - replace missing build.gradle filefredrossperry
also, change SUPPORT_GPROOF to FZ_ENABLE_GPRF
2016-07-06Android viewer: add mupdf_native.c to buildfredrossperry
This is because platform/android/example also uses the resulting shared library.
2016-06-23modified mupdf.c and mupdf_native.c to adapt to APIs that have recently changed.fredrossperry
2016-06-13Fix Android viewer build with js.Robin Watts
The recent js change requires a makefile tweak.
2016-06-13Bug 696822: Refuse to save a pdf file incrementally if it would break.Robin Watts
If a file cannot be saved incrementally, then don't accept that as an option. In practise this means if someone asks to save a file incrementally, and it was repaired, or it uses encryption then throw an error. Add a new function to ask if it's safe to save a file incrementally, and use that in the appropriate places.
2016-06-08Bug 696826: Android Viewer: Cope with null itemRobin Watts
It seems that we can end up with a null item in MuPDFReaderView onSingleTap. Add some simple checks to avoid this.
2016-06-06Android Viewer: Fix jni code w.r.t pixmap alpha API changes.Robin Watts
Need to specify that we are using alphas now.
2016-04-26svg: Add SVG parser.Tor Andersson
svg: Implement graphics state stack. svg: Use idmap for symbol and use elements. svg: Put viewport and viewBox in state stack. svg: Rebase to version 1.9 master.
2016-04-22thirdparty: Update to openjpeg 2.1.0.Sebastian Rasmussen
2016-04-21Bump patch-level.Tor Andersson
2016-04-06Update platform/android/viewer/ReadMe.txtRobin Watts
Update description to cover the fact that we no longer need cygwin, and to strongly suggest using the Android Studio supplied SDK/NDKs.
2016-04-06Bump version number.Tor Andersson
2016-03-31Initialize disabled document writing flags to zeroSebastian Rasmussen
Also remove redundant assignments. Fixes http://bugs.ghostscript.com/show_bug.cgi?id=695968
2016-03-31android: Add new example viewer.Tor Andersson
Thanks to Fred Ross-Perry.
2016-03-31Reorganize java and android source.Tor Andersson
platform/java and platform/android are reorganized: platform/java The new JNI Java classes, mupdf_native.{c,h}, Makefile and Makejar. platform/java/example The example desktop viewer classes. platform/android/viewer The original demo viewer. ndk-build is used to build libmupdf_java.so, making reference to mupdf_native.{c,h} in platform/java.
2016-03-23Exclude AndroidDrawDevice from the Android app build.fredrossperry
2016-03-11Bug 696634: Android: Allow filenames including hash.Robin Watts
We were converting from a File to a filename then to a Uri using Uri.parse, but Uri.parse has problems with hash marks. Instead convert direct from File to Uri.
2016-02-29jni: Various cleanups.Tor Andersson
jni: Various cleanups. Fix gcc and clang warnings. Android specific functions are guarded by HAVE_ANDROID define. The java guts of the android stuff is removed for now, to be added back in later. Set up a makefile and simple tests to build for desktop java. Rerig device classes to: Device, NativeDevice, JavaDevice and DrawDevice. Add Pixmap class. Regularize naming. General cleanups and abbreviate naming. Use to_JavaClass and from_JavaClass rather than fz_mupdf_struct_from_JavaClass and JavaClass_from_fz_mupdf_struct. Check for exceptions thrown by java devices and path processor. Tweak constructors and finalizers to remove the JavaDevice subclass. Use toString when rethrowing java exceptions as fitz exceptions.
2016-02-29jni: Update build files for moved java sources.Tor Andersson
2016-02-29jni: Move java bindings to platform/java.Tor Andersson
Move the platform independent java code from platform/android to platform/java. The plan is that we can call 'make mupdf.jar' (or 'nmake mupdf.jar') there, and then use the resultant mupdf.jar/mupdf_native.h files in whatever platform specific project (such as the android bindings) we like. Keep the android specific class (AndroidDrawDevice) in the usual place in platform/android. Update the android ant script to include mupdf.jar.
2016-02-29jni: First attempt at generic JNI bindings.Robin Watts
The purpose of JNI bindings is to allow MuPDF to be driven from Java. There are several possible use cases here. Firstly, and most simply a java application can ask the core of MuPDF to open a document and render it using the existing devices to produce output on a standard Java bitmap. Secondly, a java application might want to drive the device interface itself, making use of the standard MuPDF devices (such as using the rendering engine to render high quality graphics). Thirdly, a java application might want to implement its own device and then call MuPDF to run the document to that device (perhaps to do custom text or image extraction). The first of these cases requires a simple reflection of the main document and standard device classes in JNI. The second of these cases requires the actual device interface itself to be made available as a java interface, together with the ability to construct and manipulate data types like paths, text and fonts so the Java code can build the required objects to pass to implementers of the device interface. The final case requires a reflection layer whereby calls through the device interface in C can be turned into method calls to a Java interface. All of this is attempted in this commit. Some highlights: For each type in the C (such as fz_colorspace) we have a corresponding java class (such as ColorSpace). Where the 'fz_' types are reference counted (such as an fz_colorspace), the java objects (such as ColorSpace) simply take a reference to a pointer to the underlying fz type. Java accessor methods are then provided to manipulate these types. Where the 'fz_' types are not reference counted (such as an fz_rect), the data is actually contained within the Java object itself (such as Rect, RectI and Transform). We add a VS jni project. This doesn't do anything except make the files accessible for editing in the IDE. As much as possible, the Java layers do nothing (other than some programmer friendly type overloading), construction (unavoidable, as can't be done in JNI) and boiler-plate destruction. All the smartness is done in the C. Due to Java and C's differing approach to constness, we need to be careful that a java device does not destructively alter objects passed to it. For example, consider running a display list through a device implemented in java. If the java device were to change a Font object passed to it, this might affect other objects in the display list that shared the same underlying fz_font. Possibly we can achieve this by having an 'isConst' flag on java objects that are created from device calls and passed to the Java device (see the Text class, for an attempt at this currently). This could alternatively be achieved by cloning every such piece of data (see the path code for an example of this approach), but this is probably slow. Better to clone 'just in time' as the first write operation is done to the object.
2016-01-29Update Android build with HarfbuzzRobin Watts
2016-01-18Enable warnings in Android ndk-build.Robin Watts
2016-01-05Remove fz_page argument from fz_annot function calls.Tor Andersson
2015-12-28Drop 'jsimp' abstraction and use mujs directly.Tor Andersson
2015-12-18Remove fz_save_document and use pdf_save_document directly instead.Tor Andersson
In preparation of adding pdf_write_document that writes a document to a fz_output stream.
2015-12-15Rename fz_write_x to fz_save_pixmap_as_x or fz_save_bitmap_as_x.Tor Andersson
Separate naming of functions that save complete files to disk from functions that write data to streams.
2015-12-14Android: Try and minimise warnings in JNI code.Robin Watts
Push the pointer->long and long->pointer casting through 2 static inline functions.