[Libreoffice-commits] core.git: 21 commits - android/Bootstrap android/CustomTarget_lo_android.mk android/experimental android/Module_android.mk desktop/source include/osl include/sal README.cross sal/android sal/Library_lo-bootstrap.mk sal/osl sal/rtl solenv/bin

Jan Holesovsky kendy at collabora.com
Mon Jun 30 05:49:26 PDT 2014


 README.cross                                                                                           |   13 
 android/Bootstrap/Makefile.shared                                                                      |   99 
 android/Bootstrap/no-resource-compress-23.xml                                                          |   45 
 android/Bootstrap/src/org/libreoffice/android/Bootstrap.java                                           |    8 
 android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java                                      |  129 
 android/CustomTarget_lo_android.mk                                                                     |   36 
 android/Module_android.mk                                                                              |    1 
 android/experimental/DocumentLoader/AndroidManifest.xml                                                |   12 
 android/experimental/DocumentLoader/Makefile                                                           |   99 
 android/experimental/LOAndroid/.gitignore                                                              |    4 
 android/experimental/LOAndroid/.idea/.name                                                             |    1 
 android/experimental/LOAndroid/.idea/compiler.xml                                                      |   23 
 android/experimental/LOAndroid/.idea/copyright/profiles_settings.xml                                   |    3 
 android/experimental/LOAndroid/.idea/encodings.xml                                                     |    5 
 android/experimental/LOAndroid/.idea/gradle.xml                                                        |   18 
 android/experimental/LOAndroid/.idea/libraries/appcompat_v7_19_1_0.xml                                 |   10 
 android/experimental/LOAndroid/.idea/libraries/support_v4_19_1_0.xml                                   |   11 
 android/experimental/LOAndroid/.idea/misc.xml                                                          |  146 
 android/experimental/LOAndroid/.idea/modules.xml                                                       |   10 
 android/experimental/LOAndroid/.idea/scopes/scope_settings.xml                                         |    5 
 android/experimental/LOAndroid/.idea/vcs.xml                                                           |    7 
 android/experimental/LOAndroid/LOAndroid.iml                                                           |   12 
 android/experimental/LOAndroid/app/.gitignore                                                          |    1 
 android/experimental/LOAndroid/app/app.iml                                                             |   77 
 android/experimental/LOAndroid/app/build.gradle                                                        |   24 
 android/experimental/LOAndroid/app/proguard-rules.txt                                                  |   17 
 android/experimental/LOAndroid/app/src/main/AndroidManifest.xml                                        |   25 
 android/experimental/LOAndroid/app/src/main/java/org/libreoffice/LOKitShell.java                       |   22 
 android/experimental/LOAndroid/app/src/main/java/org/libreoffice/MainActivity.java                     |   36 
 android/experimental/LOAndroid/app/src/main/java/org/libreoffice/MainLayerView.java                    |   26 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/TouchEventInterceptor.java          |   14 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/ZoomConstraints.java                |   46 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/Axis.java                       |  420 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/BitmapUtils.java                |  368 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/BufferedCairoImage.java         |   69 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/CairoGLInfo.java                |   35 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/CairoImage.java                 |   28 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/CairoUtils.java                 |   51 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/DisplayPortCalculator.java      |  777 +++++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/DisplayPortMetrics.java         |   78 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/DrawTimingQueue.java            |   95 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/FloatSize.java                  |   54 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/GLController.java               |  354 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/GeckoLayerClient.java           | 1000 ++++++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/ImmutableViewportMetrics.java   |  374 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/InputConnectionHandler.java     |   22 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/IntSize.java                    |   91 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/JavaPanZoomController.java      | 1461 ++++++++++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/Layer.java                      |  207 +
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/LayerMarginsAnimator.java       |  324 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/LayerRenderer.java              |  722 ++++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/LayerView.java                  |  692 ++++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/Overscroll.java                 |   21 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/OverscrollEdgeEffect.java       |  130 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/PanZoomController.java          |   49 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/PanZoomTarget.java              |   33 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/PanningPerfAPI.java             |  123 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/PointUtils.java                 |   51 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/ProgressiveUpdateData.java      |   33 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/RectUtils.java                  |  126 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/RenderTask.java                 |   80 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/ScrollbarLayer.java             |  297 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/SimpleScaleGestureDetector.java |  322 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/SingleTileLayer.java            |  153 +
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/SubdocumentScrollHelper.java    |  148 +
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/TextLayer.java                  |   69 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/TextureGenerator.java           |   75 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/TextureReaper.java              |   51 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/TileLayer.java                  |  177 +
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/TouchEventHandler.java          |  306 ++
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/ViewTransform.java              |   34 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/gfx/VirtualLayer.java               |   36 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/mozglue/DirectBufferAllocator.java  |   51 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/EventDispatcher.java           |  115 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/FloatUtils.java                |   43 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/GeckoBackgroundThread.java     |   55 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/GeckoEventListener.java        |   14 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/GeckoEventResponder.java       |   16 
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/ThreadUtils.java               |  169 +
 android/experimental/LOAndroid/app/src/main/java/org/mozilla/gecko/util/UiAsyncTask.java               |   86 
 android/experimental/LOAndroid/app/src/main/res/drawable-hdpi/ic_launcher.png                          |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-hdpi/ic_status_logo.png                       |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-mdpi/ic_launcher.png                          |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-mdpi/ic_status_logo.png                       |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-xhdpi/ic_launcher.png                         |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-xhdpi/ic_status_logo.png                      |binary
 android/experimental/LOAndroid/app/src/main/res/drawable-xxhdpi/ic_launcher.png                        |binary
 android/experimental/LOAndroid/app/src/main/res/layout/activity_main.xml                               |   15 
 android/experimental/LOAndroid/app/src/main/res/menu/main.xml                                          |    9 
 android/experimental/LOAndroid/app/src/main/res/values-w820dp/dimens.xml                               |    6 
 android/experimental/LOAndroid/app/src/main/res/values/colors.xml                                      |   95 
 android/experimental/LOAndroid/app/src/main/res/values/dimens.xml                                      |    5 
 android/experimental/LOAndroid/app/src/main/res/values/strings.xml                                     |    8 
 android/experimental/LOAndroid/app/src/main/res/values/styles.xml                                      |    8 
 android/experimental/LOAndroid/build.gradle                                                            |   16 
 android/experimental/LOAndroid/gradle.properties                                                       |   18 
 android/experimental/LOAndroid/gradle/wrapper/gradle-wrapper.jar                                       |binary
 android/experimental/LOAndroid/gradle/wrapper/gradle-wrapper.properties                                |    6 
 android/experimental/LOAndroid/gradlew                                                                 |  164 +
 android/experimental/LOAndroid/gradlew.bat                                                             |   90 
 android/experimental/LOAndroid/settings.gradle                                                         |    1 
 android/experimental/LOAndroid2/.gitignore                                                             |    4 
 android/experimental/LOAndroid2/.idea/.name                                                            |    1 
 android/experimental/LOAndroid2/.idea/compiler.xml                                                     |   23 
 android/experimental/LOAndroid2/.idea/copyright/profiles_settings.xml                                  |    3 
 android/experimental/LOAndroid2/.idea/encodings.xml                                                    |    5 
 android/experimental/LOAndroid2/.idea/gradle.xml                                                       |   18 
 android/experimental/LOAndroid2/.idea/misc.xml                                                         |   41 
 android/experimental/LOAndroid2/.idea/modules.xml                                                      |   11 
 android/experimental/LOAndroid2/.idea/scopes/scope_settings.xml                                        |    5 
 android/experimental/LOAndroid2/.idea/vcs.xml                                                          |    7 
 android/experimental/LOAndroid2/LOAndroid.iml                                                          |   12 
 android/experimental/LOAndroid2/LOAndroid2.iml                                                         |   12 
 android/experimental/LOAndroid2/app/.gitignore                                                         |    1 
 android/experimental/LOAndroid2/app/app.iml                                                            |   66 
 android/experimental/LOAndroid2/app/build.gradle                                                       |   23 
 android/experimental/LOAndroid2/app/proguard-rules.txt                                                 |   17 
 android/experimental/LOAndroid2/app/src/main/AndroidManifest.xml                                       |   24 
 android/experimental/LOAndroid2/app/src/main/java/org/libreoffice/LOEvent.java                         |   67 
 android/experimental/LOAndroid2/app/src/main/java/org/libreoffice/LOKitShell.java                      |  131 
 android/experimental/LOAndroid2/app/src/main/java/org/libreoffice/LOKitThread.java                     |  135 
 android/experimental/LOAndroid2/app/src/main/java/org/libreoffice/LibreOfficeMainActivity.java         |  102 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/GeckoEventListener.java            |   44 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/BufferedCairoImage.java        |  105 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/CairoGLInfo.java               |   72 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/CairoImage.java                |   58 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/CairoUtils.java                |   85 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/CheckerboardImage.java         |  170 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/FlexibleGLSurfaceView.java     |  218 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/FloatSize.java                 |   99 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/GLController.java              |  279 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/GLThread.java                  |  181 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/GeckoGLLayerClient.java        |  265 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/GeckoLayerClient.java          |  414 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/GeckoSoftwareLayerClient.java  |  322 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/InputConnectionHandler.java    |   15 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/IntSize.java                   |  103 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/Layer.java                     |  242 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/LayerClient.java               |   81 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/LayerController.java           |  534 +++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/LayerRenderer.java             |  689 ++++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/LayerView.java                 |  230 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/MultiTileLayer.java            |  300 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/NinePatchTileLayer.java        |  124 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/PanningPerfAPI.java            |  125 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/PointUtils.java                |   96 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/RectUtils.java                 |  139 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/ScrollbarLayer.java            |  425 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/SingleTileLayer.java           |  127 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/TextLayer.java                 |  117 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/TextureGenerator.java          |   73 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/TextureReaper.java             |   76 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/TileLayer.java                 |  256 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/ViewTransform.java             |   51 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/ViewportMetrics.java           |  306 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/VirtualLayer.java              |   80 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/gfx/WidgetTileLayer.java           |  160 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/ui/Axis.java                       |  271 +
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/ui/PanZoomController.java          |  921 ++++++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/ui/SimpleScaleGestureDetector.java |  332 ++
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/ui/SubdocumentScrollHelper.java    |  140 
 android/experimental/LOAndroid2/app/src/main/java/org/mozilla/gecko/util/FloatUtils.java               |   43 
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/base.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/calc.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/draw.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/dummy_page.png                          |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/ic_launcher.png                         |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/ic_status_logo.png                      |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/impress.png                             |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/lo_icon.png                             |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/main.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/math.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-hdpi/startcenter.png                         |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/background.png                          |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/base.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/calc.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/docu.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/draw.png                                |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/ic_launcher.png                         |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/ic_status_logo.png                      |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/impress.png                             |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/lo_icon.png                             |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/shadow.png                              |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-mdpi/writer.png                              |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/base.png                               |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/calc.png                               |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/draw.png                               |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/ic_launcher.png                        |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/ic_status_logo.png                     |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/impress.png                            |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xhdpi/writer.png                             |binary
 android/experimental/LOAndroid2/app/src/main/res/drawable-xxhdpi/ic_launcher.png                       |binary
 android/experimental/LOAndroid2/app/src/main/res/layout/activity_main.xml                              |   15 
 android/experimental/LOAndroid2/app/src/main/res/menu/main.xml                                         |    8 
 android/experimental/LOAndroid2/app/src/main/res/values-w820dp/dimens.xml                              |    6 
 android/experimental/LOAndroid2/app/src/main/res/values/colors.xml                                     |   95 
 android/experimental/LOAndroid2/app/src/main/res/values/dimens.xml                                     |    5 
 android/experimental/LOAndroid2/app/src/main/res/values/strings.xml                                    |    8 
 android/experimental/LOAndroid2/app/src/main/res/values/styles.xml                                     |    8 
 android/experimental/LOAndroid2/build.gradle                                                           |   16 
 android/experimental/LOAndroid2/gradle.properties                                                      |   18 
 android/experimental/LOAndroid2/gradle/wrapper/gradle-wrapper.jar                                      |binary
 android/experimental/LOAndroid2/gradle/wrapper/gradle-wrapper.properties                               |    6 
 android/experimental/LOAndroid2/gradlew                                                                |  164 +
 android/experimental/LOAndroid2/gradlew.bat                                                            |   90 
 android/experimental/LOAndroid2/settings.gradle                                                        |    1 
 android/experimental/LOAndroid3/AndroidManifest.xml                                                    |   30 
 android/experimental/LOAndroid3/Makefile                                                               |   36 
 android/experimental/LOAndroid3/build.xml                                                              |   84 
 android/experimental/LOAndroid3/dummies.cxx                                                            |   75 
 android/experimental/LOAndroid3/fonts.conf                                                             |  154 +
 android/experimental/LOAndroid3/jni/Android.mk                                                         |    8 
 android/experimental/LOAndroid3/proguard-project.txt                                                   |   20 
 android/experimental/LOAndroid3/project.properties                                                     |   14 
 android/experimental/LOAndroid3/res/drawable-hdpi/base.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/calc.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/draw.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/dummy_page.png                                       |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/ic_launcher.png                                      |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/ic_status_logo.png                                   |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/impress.png                                          |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/lo_icon.png                                          |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/main.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/math.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-hdpi/startcenter.png                                      |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/background.png                                       |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/base.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/calc.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/docu.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/draw.png                                             |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/ic_launcher.png                                      |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/ic_status_logo.png                                   |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/impress.png                                          |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/lo_icon.png                                          |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/shadow.png                                           |binary
 android/experimental/LOAndroid3/res/drawable-mdpi/writer.png                                           |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/base.png                                            |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/calc.png                                            |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/draw.png                                            |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/ic_launcher.png                                     |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/ic_status_logo.png                                  |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/impress.png                                         |binary
 android/experimental/LOAndroid3/res/drawable-xhdpi/writer.png                                          |binary
 android/experimental/LOAndroid3/res/drawable-xxhdpi/ic_launcher.png                                    |binary
 android/experimental/LOAndroid3/res/layout/activity_main.xml                                           |   15 
 android/experimental/LOAndroid3/res/menu/main.xml                                                      |    8 
 android/experimental/LOAndroid3/res/values/colors.xml                                                  |   95 
 android/experimental/LOAndroid3/res/values/dimens.xml                                                  |    5 
 android/experimental/LOAndroid3/res/values/strings.xml                                                 |    7 
 android/experimental/LOAndroid3/res/values/styles.xml                                                  |    8 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOEvent.java                                  |   67 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitShell.java                               |  131 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java                              |  135 
 android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java                  |  150 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/GeckoEventListener.java                     |   44 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/BufferedCairoImage.java                 |  105 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CairoGLInfo.java                        |   72 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CairoImage.java                         |   58 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CairoUtils.java                         |   85 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CheckerboardImage.java                  |  170 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/FlexibleGLSurfaceView.java              |  218 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/FloatSize.java                          |   99 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GLController.java                       |  279 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GLThread.java                           |  181 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoGLLayerClient.java                 |  265 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java                   |  414 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/GeckoSoftwareLayerClient.java           |  322 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/InputConnectionHandler.java             |   15 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/IntSize.java                            |  103 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/Layer.java                              |  242 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerClient.java                        |   81 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerController.java                    |  534 +++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerRenderer.java                      |  689 ++++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/LayerView.java                          |  230 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/MultiTileLayer.java                     |  300 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/NinePatchTileLayer.java                 |  124 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/PanningPerfAPI.java                     |  125 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/PointUtils.java                         |   96 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/RectUtils.java                          |  139 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ScrollbarLayer.java                     |  425 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/SingleTileLayer.java                    |  127 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TextLayer.java                          |  117 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TextureGenerator.java                   |   73 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TextureReaper.java                      |   76 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java                          |  256 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewTransform.java                      |   51 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ViewportMetrics.java                    |  306 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/VirtualLayer.java                       |   80 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/WidgetTileLayer.java                    |  160 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/Axis.java                                |  271 +
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/PanZoomController.java                   |  921 ++++++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/SimpleScaleGestureDetector.java          |  332 ++
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/ui/SubdocumentScrollHelper.java             |  140 
 android/experimental/LOAndroid3/src/java/org/mozilla/gecko/util/FloatUtils.java                        |   43 
 android/experimental/LibreOffice4Android/AndroidManifest.xml                                           |   36 
 android/experimental/LibreOffice4Android/Makefile                                                      |   96 
 android/experimental/desktop/Makefile                                                                  |   99 
 desktop/source/lib/init.cxx                                                                            |    3 
 include/osl/detail/android-bootstrap.h                                                                 |    7 
 include/sal/log-areas.dox                                                                              |    1 
 sal/Library_lo-bootstrap.mk                                                                            |    1 
 sal/android/libreofficekit-jni.c                                                                       |  146 
 sal/android/lo-bootstrap.c                                                                             |   59 
 sal/osl/unx/file.cxx                                                                                   |    2 
 sal/rtl/bootstrap.cxx                                                                                  |    5 
 solenv/bin/native-code.py                                                                              |    5 
 306 files changed, 30532 insertions(+), 365 deletions(-)

New commits:
commit 547135c0dcd5cd5335e625c24e78986529f9a94b
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Jun 30 08:10:39 2014 +0200

    It is useful to know what macros are we expanding, and to what.
    
    Change-Id: If7704edc5baa9759abc680b8d2040b9cdfe92317

diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox
index 1627ad2..c5d1196 100644
--- a/include/sal/log-areas.dox
+++ b/include/sal/log-areas.dox
@@ -20,6 +20,7 @@ certain functionality.
 
 @section SAL
 
+ at li @c sal.bootstrap - SAL bootstrap
 @li @c sal.debug - SAL debugging functionality
 @li @c sal.file
 @li @c sal.osl - SAL OSL library
diff --git a/sal/rtl/bootstrap.cxx b/sal/rtl/bootstrap.cxx
index c93aa0c..cf5b9ca 100644
--- a/sal/rtl/bootstrap.cxx
+++ b/sal/rtl/bootstrap.cxx
@@ -895,6 +895,7 @@ rtl::OUString expandMacros(
     Bootstrap_Impl const * file, rtl::OUString const & text, LookupMode mode,
     ExpandRequestLink const * requestStack)
 {
+    SAL_INFO("sal.bootstrap", "expandMacros called with: " << text);
     rtl::OUStringBuffer buf;
     for (sal_Int32 i = 0; i < text.getLength();) {
         bool escaped;
@@ -1020,7 +1021,9 @@ rtl::OUString expandMacros(
             }
         }
     }
-    return buf.makeStringAndClear();
+    OUString result(buf.makeStringAndClear());
+    SAL_INFO("sal.bootstrap", "expandMacros result: " << result);
+    return result;
 }
 
 }
commit cd77f78755a9aeee0237eaefe06483182e447908
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Jun 30 07:56:12 2014 +0200

    android: Enable debugging messages as the first thing we do.
    
    Additionally log what we are trying to open - very useful for debugging
    bootstrap problems ;-)
    
    Change-Id: I942b144d97a57cbcb709b2d67029bfa09b339be2

diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index 3d30dcc..a4ae79c 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -74,9 +74,11 @@ public class LibreOfficeMainActivity extends Activity {
         super.onCreate(savedInstanceState);
 
         try {
-            LibreOfficeKit.init(this);
+            // enable debugging messages as the first thing
             LibreOfficeKit.putenv("SAL_LOG=+WARN+INFO-INFO.legacy.osl");
 
+            LibreOfficeKit.init(this);
+
             setContentView(R.layout.activity_main);
 
             Log.w(LOGTAG, "zerdatime " + SystemClock.uptimeMillis() + " - onCreate");
diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx
index a7eaac1..092f0ffe 100644
--- a/sal/osl/unx/file.cxx
+++ b/sal/osl/unx/file.cxx
@@ -827,6 +827,8 @@ openFilePath( const char *cpFilePath, oslFileHandle* pHandle, sal_uInt32 uFlags,
     oslFileError eRet;
 
 #ifdef ANDROID
+    SAL_INFO("sal.file", "osl_openFile: " << cpFilePath);
+
     /* Opening a file from /assets read-only means
      * we should mmap it from the .apk file
      */
commit d2eeb05da67bd8e205821b92fd028f7c7114e99a
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Jun 30 07:49:44 2014 +0200

    android: Correct location and name of sofficerc.
    
    Without that, URE_BOOTSTRAP does not get set up, and we are unable to
    bootstrap.
    
    Change-Id: I7727e2a9dcbb958e006fadf6243e1ca343633f7e

diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared
index e16de61..a337a80 100644
--- a/android/Bootstrap/Makefile.shared
+++ b/android/Bootstrap/Makefile.shared
@@ -137,19 +137,15 @@ copy-stuff:
 	mkdir -p assets/share/config
 	cp -R $(INSTDIR)/share/registry assets/share
 	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
-#
-# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
-# doesn't use soffice_main() (at least I think it shouldn't), the
-# rtl::Bootstrap::setIniFilename() call there that hardcodes
-# /assets/program/lofficerc isn't executed. Instead the hardcoding of
-# /assets/rc in BootstrapMap::getBaseIni() gets used.
-	echo '[Bootstrap]' > assets/rc
-	echo 'Logo=1' >> assets/rc
-	echo 'NativeProgress=1' >> assets/rc
-	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
-#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
-	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/rc
-	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/rc
+
+	mkdir -p assets/unpack/program
+	echo '[Bootstrap]' > assets/unpack/program/sofficerc
+	echo 'Logo=1' >> assets/unpack/program/sofficerc
+	echo 'NativeProgress=1' >> assets/unpack/program/sofficerc
+	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/unpack/program/sofficerc
+#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/unpack/program/sofficerc
+	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/unpack/program/sofficerc
+	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/unpack/program/sofficerc
 #
 # Set up fundamentalrc
 	echo '[Bootstrap]' > assets/program/fundamentalrc
commit c1d64ca9e4c3f52178548aa435c567672dd9b103
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Mon Jun 30 07:48:17 2014 +0200

    lok: Correct sofficerc path for bootstrap.
    
    Change-Id: I229958c0f2c6f8905926c95cabd45fa58aed3da1

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 3b163c5..5c1c014 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -535,7 +535,7 @@ static void aBasicErrorFunc(const OUString& rError, const OUString& rAction)
 
 static void initialize_uno(const OUString &aAppURL)
 {
-    rtl::Bootstrap::setIniFilename( aAppURL + "/sofficerc" );
+    rtl::Bootstrap::setIniFilename(aAppURL + "/" + LIBO_ETC_FOLDER + "/" + SAL_CONFIGFILE("soffice"));
 
     xContext = cppu::defaultBootstrap_InitialComponentContext();
     fprintf(stderr, "Uno initialized %d\n", xContext.is());
commit f918192eceb5f0ea5582988a76d9ad9f6e1e6e43
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sun Jun 29 10:47:34 2014 +0200

    android: Relink liblo-native-code.so when a library changes.
    
    This is so that calls like 'make configmgr android' produce an .apk with
    updated code changes from configmgr as expected.
    
    Change-Id: I5f576b01269cf3f559a8a6389af298a3758e7309

diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared
index a8b278f..e16de61 100644
--- a/android/Bootstrap/Makefile.shared
+++ b/android/Bootstrap/Makefile.shared
@@ -75,9 +75,11 @@ clean: android_version_setup properties
 # Build / link the single .so for this app
 #
 
+ALL_STATIC_LIBS := $(shell $(SRCDIR)/bin/lo-all-static-libs)
+
 LIBS = \
   -Wl,--start-group \
-  $(shell $(SRCDIR)/bin/lo-all-static-libs) \
+  $(ALL_STATIC_LIBS) \
   -Wl,--end-group
 
 WHOLELIBS = \
@@ -88,13 +90,14 @@ WHOLELIBS = \
   -Wl,--no-whole-archive
 
 
-$(OBJLOCAL)/liblo-native-code.so : native-code.cxx dummies.cxx
+$(OBJLOCAL)/liblo-native-code.so : native-code.cxx dummies.cxx $(ALL_STATIC_LIBS)
 	mkdir -p $(OBJLOCAL)
 	$(CXX) -Wl,--gc-sections -Wl,--version-script=../../Bootstrap/version.map -Wl,--no-keep-files-mapped -Wl,--no-undefined -DANDROID -DDISABLE_DYNLOADING -shared -o $(OBJLOCAL)/liblo-native-code.so -I$(BUILDDIR)/config_host -I$(SRCDIR)/include native-code.cxx dummies.cxx -L$(INSTDIR)/$(LIBO_LIB_FOLDER) $(WHOLELIBS) $(LIBS) -lgnustl_static -lGLESv2 -landroid -ljnigraphics -llog -lz
 
 $(SODEST)/liblo-native-code.so : $(OBJLOCAL)/liblo-native-code.so
 	mkdir -p $(SODEST)
 	$(STRIP) -o $(SODEST)/liblo-native-code.so $(OBJLOCAL)/liblo-native-code.so
+	#to keep some symbols, eg.: $(STRIP) -o $(SODEST)/liblo-native-code.so $(OBJLOCAL)/liblo-native-code.so -w -K 'Java*'
 
 # shrinkme $(STRIP) -o $(SODEST)/liblo-native-code.so $(OBJLOCAL)/liblo-native-code.so
 
commit faeccde59c2589bd2da972e8ca93581a26555caf
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sun Jun 29 07:57:01 2014 +0200

    android: Make LOAndroid3 debuggable.
    
    Change-Id: I0fcfd784d6705cfab4790e1023851d5c537a482f

diff --git a/android/experimental/LOAndroid3/AndroidManifest.xml b/android/experimental/LOAndroid3/AndroidManifest.xml
index 81e8822..d456ca6 100644
--- a/android/experimental/LOAndroid3/AndroidManifest.xml
+++ b/android/experimental/LOAndroid3/AndroidManifest.xml
@@ -12,6 +12,7 @@
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
     <application
+        android:debuggable="true"
         android:allowBackup="true"
         android:icon="@drawable/main"
         android:label="@string/app_name"
commit d5d480dccefdca169e0acd12fdc39e25e0b44fa2
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sun Jun 29 01:19:54 2014 +0200

    android: copy-stuff rule is copy'n'pasted around, consolidate it.
    
    Change-Id: I0a746904fa363f987e96165d8def326eb87dcf8f

diff --git a/android/Bootstrap/Makefile.shared b/android/Bootstrap/Makefile.shared
index 7aae130..a8b278f 100644
--- a/android/Bootstrap/Makefile.shared
+++ b/android/Bootstrap/Makefile.shared
@@ -107,3 +107,95 @@ link-so: $(SODEST)/liblo-native-code.so
 
 stop-start-cycle:
 	$(ANDROID_SDK_HOME)/platform-tools/adb shell stop && $(ANDROID_SDK_HOME)/platform-tools/adb shell start && sleep 10
+
+copy-stuff:
+# Then "assets". Let the directory structure under assets mimic
+# that under solver for now.
+#
+# Please note that I have no idea what all of this is really necessary and for
+# much of this stuff being copied, no idea whether it makes any sense at all.
+# Much of this is copy-pasted from android/qa/sc/Makefile (where a couple of
+# unit tests for sc are built, and those do seem to mostly work) and
+# android/qa/desktop/Makefile (mmeeks's desktop demo, also works to some
+# extent).
+#
+	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
+	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
+	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
+	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
+# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
+	for F in program/services/services ure/share/misc/services; do \
+		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$$APP_DATA_DIR/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
+	done
+	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
+		assets
+	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
+#
+	mkdir -p assets/share/config
+	cp -R $(INSTDIR)/share/registry assets/share
+	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
+#
+# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
+# doesn't use soffice_main() (at least I think it shouldn't), the
+# rtl::Bootstrap::setIniFilename() call there that hardcodes
+# /assets/program/lofficerc isn't executed. Instead the hardcoding of
+# /assets/rc in BootstrapMap::getBaseIni() gets used.
+	echo '[Bootstrap]' > assets/rc
+	echo 'Logo=1' >> assets/rc
+	echo 'NativeProgress=1' >> assets/rc
+	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
+#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
+	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/rc
+	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/rc
+#
+# Set up fundamentalrc
+	echo '[Bootstrap]' > assets/program/fundamentalrc
+	echo 'LO_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc
+	echo 'URE_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc # checkme - is this used to find configs ?
+	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
+	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
+	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/nothing-here/we-can/exec-anyway' >> assets/program/fundamentalrc
+#
+# Set up unorc
+	echo '[Bootstrap]' > assets/program/unorc
+	echo 'URE_INTERNAL_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/unorc
+	echo 'UNO_TYPES=file://$$APP_DATA_DIR/program/udkapi.rdb file://$$APP_DATA_DIR/program/offapi.rdb file://$$APP_DATA_DIR/program/oovbaapi.rdb' >> assets/program/unorc
+	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb file:///assets/program/services/services.rdb' >> assets/program/unorc
+#
+# Set up bootstraprc
+	echo '[Bootstrap]' > assets/program/bootstraprc
+	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
+	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
+	echo 'UserInstallation=file://$$APP_DATA_DIR' >> assets/program/bootstraprc
+#
+# Set up versionrc
+	echo '[Version]' > assets/program/versionrc
+	echo 'AllLanguages=en-US' >> assets/program/versionrc
+	echo 'BuildVersion=' >> assets/program/versionrc
+	echo 'buildid=dead-beef' >> assets/program/versionrc
+	echo 'ProductMajor=$(LIBO_VERSION_MAJOR)$(LIBO_VERSION_MINOR)0' >> assets/program/versionrc
+	echo 'ProductMinor=1' >> assets/program/versionrc
+	echo 'ReferenceOOoMajorMinor=4.1' >> assets/program/versionrc
+#
+# .res files
+	mkdir -p assets/program/resource
+	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
+#
+# Assets that are unpacked at run-time into the app's data directory. These
+# are files read by non-LO code, fontconfig and freetype for now, that doesn't
+# understand "/assets" paths.
+	mkdir -p assets/unpack/etc/fonts
+	cp fonts.conf assets/unpack/etc/fonts
+# $UserInstallation/user/fonts is added to the fontconfig path in
+# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
+# set to the app's data dir above.
+	mkdir -p assets/gz.unpack/user/fonts
+	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
+		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
+	done
+#
+# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
+#
+	mkdir -p $(SODEST)
+	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
+	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
diff --git a/android/experimental/DocumentLoader/Makefile b/android/experimental/DocumentLoader/Makefile
index 7a25fb9..dbe2b5c 100644
--- a/android/experimental/DocumentLoader/Makefile
+++ b/android/experimental/DocumentLoader/Makefile
@@ -16,103 +16,6 @@ native-code.cxx: $(SRCDIR)/solenv/bin/native-code.py
 		-g core -g writer \
 		> $@
 
-copy-stuff:
-# Then "assets". Let the directory structure under assets mimic
-# that under solver for now.
-#
-# Please note that I have no idea what all of this is really necessary and for
-# much of this stuff being copied, no idea whether it makes any sense at all.
-# Much of this is copy-pasted from android/qa/sc/Makefile (where a couple of
-# unit tests for sc are built, and those do seem to mostly work) and
-# android/qa/desktop/Makefile (mmeeks's desktop demo, also works to some
-# extent).
-#
-	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
-# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
-# So just hardcode the known APP_DATA_PATH for now...
-	for F in program/services/services ure/share/misc/services; do \
-		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$(APP_DATA_PATH)/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
-	done
-	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/odt/test.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/doc/testVba.doc \
-		assets
-	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
-#
-	mkdir -p assets/share/config
-	cp -R $(INSTDIR)/share/registry assets/share
-	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
-#
-# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
-# doesn't use soffice_main() (at least I think it shouldn't), the
-# rtl::Bootstrap::setIniFilename() call there that hardcodes
-# /assets/program/lofficerc isn't executed. Instead the hardcoding of
-# /assets/rc in BootstrapMap::getBaseIni() gets used.
-	echo '[Bootstrap]' > assets/rc
-	echo 'Logo=1' >> assets/rc
-	echo 'NativeProgress=1' >> assets/rc
-	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
-#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
-	echo "HOME=$(APP_DATA_PATH)/cache" >> assets/rc
-	echo "OSL_SOCKET_PATH=$(APP_DATA_PATH)/cache" >> assets/rc
-#
-# Set up fundamentalrc
-	echo '[Bootstrap]' > assets/program/fundamentalrc
-	echo "LO_LIB_DIR=file:$(APP_DATA_PATH)/lib/" >> assets/program/fundamentalrc
-	echo "URE_LIB_DIR=file://$(APP_DATA_PATH)/lib/" >> assets/program/fundamentalrc # checkme - is this used to find configs ?
-	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
-	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
-	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/not-here/can-we/exec-anyway' >> assets/program/fundamentalrc
-	echo 'URE_MORE_TYPES=file://$(APP_DATA_PATH)/program/offapi.rdb file://$(APP_DATA_PATH)/program/oovbaapi.rdb' >> assets/program/fundamentalrc
-	echo 'URE_MORE_SERVICES=file:///assets/program/services/services.rdb' >> assets/program/fundamentalrc
-#
-# Set up unorc
-	echo '[Bootstrap]' > assets/program/unorc
-	echo "URE_INTERNAL_LIB_DIR=file://$(APP_DATA_PATH)/lib/" >> assets/program/unorc
-	echo 'UNO_TYPES=file://$(APP_DATA_PATH)/program/udkapi.rdb $${URE_MORE_TYPES}' >> assets/program/unorc
-	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb $${URE_MORE_SERVICES}' >> assets/program/unorc
-#
-# Set up bootstraprc
-	echo '[Bootstrap]' > assets/program/bootstraprc
-	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
-	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
-	echo "UserInstallation=file://$(APP_DATA_PATH)" >> assets/program/bootstraprc
-#
-# Set up versionrc
-	echo '[Version]' > assets/program/versionrc
-	echo 'AllLanguages=en-US' >> assets/program/versionrc
-	echo 'BuildVersion=' >> assets/program/versionrc
-	echo 'buildid=dead-beef' >> assets/program/versionrc
-	echo 'ProductMajor=360' >> assets/program/versionrc
-	echo 'ProductMinor=1' >> assets/program/versionrc
-	echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
-#
-# .res files
-	mkdir -p assets/program/resource
-	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
-#
-# Assets that are unpacked at run-time into the app's data directory. These
-# are files read by non-LO code, fontconfig and freetype for now, that doesn't
-# understand "/assets" paths.
-	mkdir -p assets/unpack/etc/fonts
-	cp fonts.conf assets/unpack/etc/fonts
-# $UserInstallation/user/fonts is added to the fontconfig path in
-# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
-# set to the app's data dir above.
-	mkdir -p assets/gz.unpack/user/fonts
-	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
-		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
-	done
-#
-# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
-#
-	mkdir -p $(SODEST)
-	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
-	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
-
 build-ant: android_version_setup copy-stuff link-so properties
 #
 # Copy jar files we need
diff --git a/android/experimental/LOAndroid3/Makefile b/android/experimental/LOAndroid3/Makefile
index 5169b2d..445b7fd 100644
--- a/android/experimental/LOAndroid3/Makefile
+++ b/android/experimental/LOAndroid3/Makefile
@@ -15,98 +15,6 @@ include $(BOOTSTRAPDIR)/Makefile.shared
 native-code.cxx: $(SRCDIR)/solenv/bin/native-code.py
 	$< -j -g core -g writer > $@
 
-copy-stuff:
-# Then "assets". Let the directory structure under assets mimic
-# that under solver for now.
-#
-# Please note that I have no idea what all of this is really necessary and for
-# much of this stuff being copied, no idea whether it makes any sense at all.
-# Much of this is copy-pasted from android/qa/sc/Makefile (where a couple of
-# unit tests for sc are built, and those do seem to mostly work) and
-# android/qa/desktop/Makefile (mmeeks's desktop demo, also works to some
-# extent).
-#
-	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
-# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
-	for F in program/services/services ure/share/misc/services; do \
-		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$$APP_DATA_DIR/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
-	done
-	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
-		assets
-	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
-#
-	mkdir -p assets/share/config
-	cp -R $(INSTDIR)/share/registry assets/share
-	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
-#
-# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
-# doesn't use soffice_main() (at least I think it shouldn't), the
-# rtl::Bootstrap::setIniFilename() call there that hardcodes
-# /assets/program/lofficerc isn't executed. Instead the hardcoding of
-# /assets/rc in BootstrapMap::getBaseIni() gets used.
-	echo '[Bootstrap]' > assets/rc
-	echo 'Logo=1' >> assets/rc
-	echo 'NativeProgress=1' >> assets/rc
-	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
-#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
-	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/rc
-	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/rc
-#
-# Set up fundamentalrc
-	echo '[Bootstrap]' > assets/program/fundamentalrc
-	echo 'LO_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc
-	echo 'URE_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc # checkme - is this used to find configs ?
-	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
-	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
-	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/nothing-here/we-can/exec-anyway' >> assets/program/fundamentalrc
-#
-# Set up unorc
-	echo '[Bootstrap]' > assets/program/unorc
-	echo 'URE_INTERNAL_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/unorc
-	echo 'UNO_TYPES=file://$$APP_DATA_DIR/program/udkapi.rdb file://$$APP_DATA_DIR/program/offapi.rdb file://$$APP_DATA_DIR/program/oovbaapi.rdb' >> assets/program/unorc
-	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb file:///assets/program/services/services.rdb' >> assets/program/unorc
-#
-# Set up bootstraprc
-	echo '[Bootstrap]' > assets/program/bootstraprc
-	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
-	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
-	echo 'UserInstallation=file://$$APP_DATA_DIR' >> assets/program/bootstraprc
-#
-# Set up versionrc
-	echo '[Version]' > assets/program/versionrc
-	echo 'AllLanguages=en-US' >> assets/program/versionrc
-	echo 'BuildVersion=' >> assets/program/versionrc
-	echo 'buildid=dead-beef' >> assets/program/versionrc
-	echo 'ProductMajor=360' >> assets/program/versionrc
-	echo 'ProductMinor=1' >> assets/program/versionrc
-	echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
-#
-# .res files
-	mkdir -p assets/program/resource
-	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
-#
-# Assets that are unpacked at run-time into the app's data directory. These
-# are files read by non-LO code, fontconfig and freetype for now, that doesn't
-# understand "/assets" paths.
-	mkdir -p assets/unpack/etc/fonts
-	cp fonts.conf assets/unpack/etc/fonts
-# $UserInstallation/user/fonts is added to the fontconfig path in
-# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
-# set to the app's data dir above.
-	mkdir -p assets/gz.unpack/user/fonts
-	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
-		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
-	done
-#
-# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
-#
-	mkdir -p $(SODEST)
-	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
-	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
-
 build-ant: android_version_setup copy-stuff link-so properties
 #
 # Copy jar files we need
@@ -122,7 +30,7 @@ build-ant: android_version_setup copy-stuff link-so properties
 	    $(call COPYJAR,$(INSTDIR)/$(LIBO_SHARE_JAVA_FOLDER)/$${F}.jar); \
 	done
 #
-	unset JAVA_HOME && $(ANT) -quiet debug
+	unset JAVA_HOME && $(ANT) $(if $(VERBOSE)$(verbose),,-quiet) debug
 
 run:
 	adb shell am start -n $(APP_PACKAGE)/.ui.LibreOfficeUIActivity -e input /assets/test1.odt
diff --git a/android/experimental/LibreOffice4Android/Makefile b/android/experimental/LibreOffice4Android/Makefile
index b707379..f4b4c41 100644
--- a/android/experimental/LibreOffice4Android/Makefile
+++ b/android/experimental/LibreOffice4Android/Makefile
@@ -17,100 +17,6 @@ native-code.cxx: $(SRCDIR)/solenv/bin/native-code.py
 		-g core -g writer \
 		> $@
 
-copy-stuff:
-# Then "assets". Let the directory structure under assets mimic
-# that under solver for now.
-#
-# Please note that I have no idea what all of this is really necessary and for
-# much of this stuff being copied, no idea whether it makes any sense at all.
-# Much of this is copy-pasted from android/qa/sc/Makefile (where a couple of
-# unit tests for sc are built, and those do seem to mostly work) and
-# android/qa/desktop/Makefile (mmeeks's desktop demo, also works to some
-# extent).
-#
-	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
-# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
-	for F in program/services/services ure/share/misc/services; do \
-		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$$APP_DATA_DIR/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
-	done
-	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/odt/test.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/doc/testVba.doc \
-		assets
-	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
-#
-	mkdir -p assets/share/config
-	cp -R $(INSTDIR)/share/registry assets/share
-	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
-#
-# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
-# doesn't use soffice_main() (at least I think it shouldn't), the
-# rtl::Bootstrap::setIniFilename() call there that hardcodes
-# /assets/program/lofficerc isn't executed. Instead the hardcoding of
-# /assets/rc in BootstrapMap::getBaseIni() gets used.
-	echo '[Bootstrap]' > assets/rc
-	echo 'Logo=1' >> assets/rc
-	echo 'NativeProgress=1' >> assets/rc
-	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
-#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
-	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/rc
-	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/rc
-#
-# Set up fundamentalrc
-	echo '[Bootstrap]' > assets/program/fundamentalrc
-	echo 'LO_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc
-	echo 'URE_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc # checkme - is this used to find configs ?
-	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
-	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
-	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/nothing-here/we-can/exec-anyway' >> assets/program/fundamentalrc
-#
-# Set up unorc
-	echo '[Bootstrap]' > assets/program/unorc
-	echo 'URE_INTERNAL_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/unorc
-	echo 'UNO_TYPES=file://$$APP_DATA_DIR/program/udkapi.rdb file://$$APP_DATA_DIR/program/offapi.rdb file://$$APP_DATA_DIR/program/oovbaapi.rdb' >> assets/program/unorc
-	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb file:///assets/program/services/services.rdb' >> assets/program/unorc
-#
-# Set up bootstraprc
-	echo '[Bootstrap]' > assets/program/bootstraprc
-	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
-	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
-	echo 'UserInstallation=file://$$APP_DATA_DIR' >> assets/program/bootstraprc
-#
-# Set up versionrc
-	echo '[Version]' > assets/program/versionrc
-	echo 'AllLanguages=en-US' >> assets/program/versionrc
-	echo 'BuildVersion=' >> assets/program/versionrc
-	echo 'buildid=dead-beef' >> assets/program/versionrc
-	echo 'ProductMajor=360' >> assets/program/versionrc
-	echo 'ProductMinor=1' >> assets/program/versionrc
-	echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
-#
-# .res files
-	mkdir -p assets/program/resource
-	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
-#
-# Assets that are unpacked at run-time into the app's data directory. These
-# are files read by non-LO code, fontconfig and freetype for now, that doesn't
-# understand "/assets" paths.
-	mkdir -p assets/unpack/etc/fonts
-	cp fonts.conf assets/unpack/etc/fonts
-# $UserInstallation/user/fonts is added to the fontconfig path in
-# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
-# set to the app's data dir above.
-	mkdir -p assets/gz.unpack/user/fonts
-	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
-		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
-	done
-#
-# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
-#
-	mkdir -p $(SODEST)
-	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
-	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
-
 build-ant: android_version_setup copy-stuff link-so properties
 	echo sdk.dir=$(ANDROID_SDK_HOME) >../../abs-lib/local.properties
 # ActionBarSherlock uses the v4 support library, apparently one needs to copy
diff --git a/android/experimental/desktop/Makefile b/android/experimental/desktop/Makefile
index df9a24f..2c30fc4 100644
--- a/android/experimental/desktop/Makefile
+++ b/android/experimental/desktop/Makefile
@@ -21,99 +21,7 @@ BOOTSTRAP=org.libreoffice.android.Bootstrap
 
 # The default target just builds.
 
-copy-stuff:
-# Then "assets". Let the directory structure under assets mimic
-# that under solver for now.
-#
-# Please note that some of thses files being set up to be present in
-# the .apk and/or unpacked at install time might be unnecessary.
-#
-	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
-	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
-# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
-# So just hardcode the known APP_DATA_PATH for now...
-	for F in program/services/services ure/share/misc/services; do \
-		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$(APP_DATA_PATH)/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
-	done
-	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/odt/test.odt \
-	   $(SRC_ROOT)/sw/qa/core/data/doc/testVba.doc \
-		assets
-	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
-#
-	mkdir -p assets/share/config
-	cp -R $(INSTDIR)/share/registry assets/share
-	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
-#
-# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
-# doesn't use soffice_main() (at least I think it shouldn't), the
-# rtl::Bootstrap::setIniFilename() call there that hardcodes
-# /assets/program/lofficerc isn't executed. Instead the hardcoding of
-# /assets/rc in BootstrapMap::getBaseIni() gets used.
-	echo '[Bootstrap]' > assets/rc
-	echo 'Logo=1' >> assets/rc
-	echo 'NativeProgress=1' >> assets/rc
-	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
-#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
-	echo "HOME=$(APP_DATA_PATH)/cache" >> assets/rc
-	echo "OSL_SOCKET_PATH=$(APP_DATA_PATH)/cache" >> assets/rc
-#
-# Set up fundamentalrc
-	echo '[Bootstrap]' > assets/program/fundamentalrc
-	echo "LO_LIB_DIR=file://$(APP_DATA_PATH)/lib/" >> assets/program/fundamentalrc
-	echo "URE_LIB_DIR=file://$(APP_DATA_PATH)/lib/" >> assets/program/fundamentalrc # checkme - is this used to find configs ?
-	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
-	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
-	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/not-here/can-we/exec-anyway' >> assets/program/fundamentalrc
-	echo 'URE_MORE_TYPES=file://$(APP_DATA_PATH)/program/offapi.rdb file://$(APP_DATA_PATH)/program/oovbaapi.rdb' >> assets/program/fundamentalrc
-	echo 'URE_MORE_SERVICES=file:///assets/program/services/services.rdb' >> assets/program/fundamentalrc
-#
-# Set up unorc
-	echo '[Bootstrap]' > assets/program/unorc
-	echo "URE_INTERNAL_LIB_DIR=file://$(APP_DATA_PATH)/lib/" >> assets/program/unorc
-	echo 'UNO_TYPES=file://$(APP_DATA_PATH)/program/udkapi.rdb $${URE_MORE_TYPES}' >> assets/program/unorc
-	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb $${URE_MORE_SERVICES}' >> assets/program/unorc
-#
-# Set up bootstraprc
-	echo '[Bootstrap]' > assets/program/bootstraprc
-	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
-	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
-	echo "UserInstallation=file://$(APP_DATA_PATH)" >> assets/program/bootstraprc
-#
-# Set up versionrc
-	echo '[Version]' > assets/program/versionrc
-	echo 'AllLanguages=en-US' >> assets/program/versionrc
-	echo 'BuildVersion=' >> assets/program/versionrc
-	echo 'buildid=dead-beef' >> assets/program/versionrc
-	echo 'ProductMajor=360' >> assets/program/versionrc
-	echo 'ProductMinor=1' >> assets/program/versionrc
-	echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
-#
-# .res files
-	mkdir -p assets/program/resource
-	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
-#
-# Assets that are unpacked at run-time into the app's data directory. These
-# are files read by non-LO code, fontconfig and freetype for now, that doesn't
-# understand "/assets" paths.
-	mkdir -p assets/unpack/etc/fonts
-	cp fonts.conf assets/unpack/etc/fonts
-# $UserInstallation/user/fonts is added to the fontconfig path in
-# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
-# set to the app's data dir above.
-	mkdir -p assets/gz.unpack/user/fonts
-	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
-		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
-	done
-#
-# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
-#
-	mkdir -p $(SODEST)
-	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
-	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
-# ------------ Pieces not from DocumentLoader ------------
+copy-stuff-desktop:
 # tango artwork / icons
 	cp -R $(INSTDIR)/$(LIBO_SHARE_FOLDER)/config/images_tango.zip assets/share/config
 # shell / splash images
@@ -138,7 +46,6 @@ copy-stuff:
 # - this looks useful but breaks more than it fixes ...
 #	echo "DISABLE_EXTENSION_SYNCHRONIZATION=1" >> assets/program/lofficerc
 
-
 setup-jars:
 #
 # Copy jar files we need
@@ -154,8 +61,8 @@ setup-jars:
 	    $(call COPYJAR,$(INSTDIR)/$(LIBO_SHARE_JAVA_FOLDER)/$${F}.jar); \
 	done
 
-build-ant: android_version_setup copy-stuff link-so properties setup-jars
-	unset JAVA_HOME && $(ANT) -quiet debug
+build-ant: android_version_setup copy-stuff copy-stuff-desktop link-so properties setup-jars
+	unset JAVA_HOME && $(ANT) $(if $(VERBOSE)$(verbose),,-quiet) debug
 
 run:
 	$(ANDROID_SDK_HOME)/platform-tools/adb shell am start -n $(APP_PACKAGE)/.Desktop
commit c72d300ba0fa6eb3a496bdd8f3bbd3baa1b0f70e
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sat Jun 28 19:21:49 2014 +0200

    android: Make the extract_files() part of setup / init.
    
    We need to have the files extracted before we attempt to initialize
    LibreOfficeKit (call libreofficekit_hook), otherwise the .rdb's are not there.
    
    Change-Id: Ib49db7e945a709d18a063eb488a27df18fef542b

diff --git a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
index 13d1a23..89766e6 100644
--- a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
+++ b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
@@ -37,9 +37,6 @@ public final class Bootstrap
                                         String cacheDir,
                                         String apkFile);
 
-    // Extracts files in the .apk that need to be extraced into the app's tree
-    static native void extract_files();
-
     // Wrapper for getpid()
     public static native int getpid();
 
@@ -101,9 +98,6 @@ public final class Bootstrap
                    activity.getApplication().getPackageResourcePath()))
             return;
 
-        // Extract files from the .apk that can't be used mmapped directly from it
-        extract_files();
-
         // If we notice that a fonts.conf file was extracted, automatically
         // set the FONTCONFIG_FILE env var.
         InputStream i;
diff --git a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
index e7507d5..58d6c50 100644
--- a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
+++ b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
@@ -26,7 +26,7 @@ public final class LibreOfficeKit
     {
     }
 
-    private static String TAG = "lo-bootstrap";
+    private static String TAG = "LibreOfficeKit";
 
     // Native methods in this class are all implemented in
     // sal/android/lo-bootstrap.c as the lo-bootstrap library is loaded with
@@ -37,9 +37,6 @@ public final class LibreOfficeKit
                                        String cacheDir,
                                        String apkFile);
 
-    // Extracts files in the .apk that need to be extraced into the app's tree
-    static native void extract_files();
-
 /*
     // Wrapper for getpid()
     public static native int getpid();
@@ -92,7 +89,7 @@ public final class LibreOfficeKit
 
         ApplicationInfo ai = activity.getApplicationInfo();
         dataDir = ai.dataDir;
-        Log.i(TAG, String.format("dataDir=%s\n", dataDir));
+        Log.i(TAG, String.format("Initializing LibreOfficeKit, dataDir=%s\n", dataDir));
 
         redirect_stdio(true);
 
@@ -101,9 +98,6 @@ public final class LibreOfficeKit
                   activity.getApplication().getPackageResourcePath()))
             return;
 
-        // Extract files from the .apk that can't be used mmapped directly from it
-        extract_files();
-
         // If we notice that a fonts.conf file was extracted, automatically
         // set the FONTCONFIG_FILE env var.
         InputStream i;
diff --git a/sal/android/libreofficekit-jni.c b/sal/android/libreofficekit-jni.c
index cf8308a..3dcf773 100644
--- a/sal/android/libreofficekit-jni.c
+++ b/sal/android/libreofficekit-jni.c
@@ -37,7 +37,6 @@ extern int apk_file_size;
 
 extern void Java_org_libreoffice_android_Bootstrap_putenv(JNIEnv* env, jobject clazz, jstring string);
 extern void Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env, jobject clazz, jboolean state);
-extern void Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env, jobject clazz);
 
 extern LibreOfficeKit *libreofficekit_hook(const char* install_path);
 
@@ -63,15 +62,6 @@ Java_org_libreoffice_android_LibreOfficeKit_redirect_1stdio(JNIEnv* env,
     Java_org_libreoffice_android_Bootstrap_redirect_1stdio(env, clazz, state);
 }
 
-/// Call the same method from Bootstrap.
-__attribute__ ((visibility("default")))
-void
-Java_org_libreoffice_android_LibreOfficeKit_extract_1files(JNIEnv* env,
-                                                           jobject clazz)
-{
-    Java_org_libreoffice_android_Bootstrap_extract_1files(env, clazz);
-}
-
 /// Initialize the LibreOfficeKit.
 __attribute__ ((visibility("default")))
 jboolean
@@ -136,6 +126,11 @@ Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_
         return JNI_FALSE;
     }
 
+    // Extract files from the .apk that can't be used mmapped directly from it
+    extract_files(UNPACK_TREE, UNPACK_TREE, 0);
+    extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
+
+    // Initialize LibreOfficeKit
     pOffice = libreofficekit_hook(data_dir);
     if (!pOffice)
     {
diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c
index a7765be..d1a7521 100644
--- a/sal/android/lo-bootstrap.c
+++ b/sal/android/lo-bootstrap.c
@@ -311,6 +311,10 @@ Java_org_libreoffice_android_Bootstrap_setup__Ljava_lang_String_2Ljava_lang_Stri
     if (!setup_assets_tree())
         return JNI_FALSE;
 
+    // Extract files from the .apk that can't be used mmapped directly from it
+    extract_files(UNPACK_TREE, UNPACK_TREE, 0);
+    extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
+
     return JNI_TRUE;
 }
 
@@ -807,20 +811,6 @@ extract_files(const char *root,
     lo_apk_closedir(tree);
 }
 
-// static native void extract_files();
-
-__attribute__ ((visibility("default")))
-void
-Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env,
-                                                      jobject clazz)
-{
-    (void) env;
-    (void) clazz;
-
-    extract_files(UNPACK_TREE, UNPACK_TREE, 0);
-    extract_files(UNPACK_TREE_GZ, UNPACK_TREE_GZ, 1);
-}
-
 /* Android's JNI works only to libraries loaded through Java's
  * System.loadLibrary(), it seems. But now with just one big app-specific .so
  * on Android, that would not be a problem, but for historical reasons, we
commit db89e5ff812e2b807476cdf0a10cd81a3040d79b
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sat Jun 28 18:23:24 2014 +0200

    android: Make use of LibreOfficeKit.
    
    Now the LibreOfficeKit is used to actually attempt to bootstrap LibreOffice;
    at the moment fails to do that.
    
    Change-Id: I91220dbff783213bf7702e7213a5646859db4581

diff --git a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
index 9d3bc89..13d1a23 100644
--- a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
+++ b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java
@@ -60,7 +60,7 @@ public final class Bootstrap
 
     // A method that starts a thread to redirect stdout and stderr writes to
     // the Android logging mechanism, or stops the redirection.
-    public static native boolean redirect_stdio(boolean state);
+    public static native void redirect_stdio(boolean state);
 
     // The DIB returned by css.awt.XBitmap.getDIB is in BGR_888 form, at least
     // for Writer documents. We need it in Android's Bitmap.Config.ARGB_888
diff --git a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
index 82b889e..e7507d5 100644
--- a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
+++ b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
@@ -61,7 +61,7 @@ public final class LibreOfficeKit
 */
     // A method that starts a thread to redirect stdout and stderr writes to
     // the Android logging mechanism, or stops the redirection.
-    public static native boolean redirect_stdio(boolean state);
+    public static native void redirect_stdio(boolean state);
 /*
     // The DIB returned by css.awt.XBitmap.getDIB is in BGR_888 form, at least
     // for Writer documents. We need it in Android's Bitmap.Config.ARGB_888
diff --git a/android/experimental/LOAndroid3/Makefile b/android/experimental/LOAndroid3/Makefile
index 4db011f..5169b2d 100644
--- a/android/experimental/LOAndroid3/Makefile
+++ b/android/experimental/LOAndroid3/Makefile
@@ -13,7 +13,7 @@ BOOTSTRAPDIR=../../Bootstrap
 include $(BOOTSTRAPDIR)/Makefile.shared
 
 native-code.cxx: $(SRCDIR)/solenv/bin/native-code.py
-	$< -g core -g writer > $@
+	$< -j -g core -g writer > $@
 
 copy-stuff:
 # Then "assets". Let the directory structure under assets mimic
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
index d475844..3d30dcc 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LibreOfficeMainActivity.java
@@ -16,7 +16,7 @@ import org.mozilla.gecko.gfx.GeckoSoftwareLayerClient;
 import org.mozilla.gecko.gfx.LayerController;
 import org.mozilla.gecko.gfx.LayerView;
 
-import org.libreoffice.android.Bootstrap;
+import org.libreoffice.android.LibreOfficeKit;
 
 import com.sun.star.frame.XComponentLoader;
 import com.sun.star.lang.XMultiComponentFactory;
@@ -74,18 +74,19 @@ public class LibreOfficeMainActivity extends Activity {
         super.onCreate(savedInstanceState);
 
         try {
-            Bootstrap.setup(this);
-            Bootstrap.putenv("SAL_LOG=+WARN+INFO-INFO.legacy.osl");
+            LibreOfficeKit.init(this);
+            LibreOfficeKit.putenv("SAL_LOG=+WARN+INFO-INFO.legacy.osl");
 
             setContentView(R.layout.activity_main);
 
             Log.w(LOGTAG, "zerdatime " + SystemClock.uptimeMillis() + " - onCreate");
 
+            /*
             String input = "/assets/test1.odt";
 
             String[] argv = { "lo-document-loader", input };
 
-            Bootstrap.setCommandArgs(argv);
+            LibreOfficeKit.setCommandArgs(argv);
 
             Bootstrap.initVCL();
 
@@ -102,7 +103,7 @@ public class LibreOfficeMainActivity extends Activity {
 
             componentLoader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, desktop);
             Log.i(LOGTAG, "componentLoader is" + (componentLoader!=null ? " not" : "") + " null");
-
+            */
         } catch (Exception e) {
             e.printStackTrace(System.err);
             //finish();
@@ -143,3 +144,5 @@ public class LibreOfficeMainActivity extends Activity {
         return mLayerController;
     }
 }
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/android/libreofficekit-jni.c b/sal/android/libreofficekit-jni.c
index 3563d5b..cf8308a 100644
--- a/sal/android/libreofficekit-jni.c
+++ b/sal/android/libreofficekit-jni.c
@@ -24,7 +24,9 @@
 
 #include <osl/detail/android-bootstrap.h>
 
-//#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "LibreOfficeKit", __VA_ARGS__))
+#include <LibreOfficeKit/LibreOfficeKit.h>
+
+#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "LibreOfficeKit", __VA_ARGS__))
 #define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "LibreOfficeKit", __VA_ARGS__))
 
 /* These are valid / used in all apps. */
@@ -34,9 +36,13 @@ extern void *apk_file;
 extern int apk_file_size;
 
 extern void Java_org_libreoffice_android_Bootstrap_putenv(JNIEnv* env, jobject clazz, jstring string);
-extern jboolean Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env, jobject clazz, jboolean state);
+extern void Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env, jobject clazz, jboolean state);
 extern void Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env, jobject clazz);
 
+extern LibreOfficeKit *libreofficekit_hook(const char* install_path);
+
+static LibreOfficeKit* pOffice;
+
 /// Call the same method from Bootstrap.
 __attribute__ ((visibility("default")))
 void
@@ -49,12 +55,12 @@ Java_org_libreoffice_android_LibreOfficeKit_putenv(JNIEnv* env,
 
 /// Call the same method from Bootstrap.
 __attribute__ ((visibility("default")))
-jboolean
+void
 Java_org_libreoffice_android_LibreOfficeKit_redirect_1stdio(JNIEnv* env,
                                                             jobject clazz,
                                                             jboolean state)
 {
-    return Java_org_libreoffice_android_Bootstrap_redirect_1stdio(env, clazz, state);
+    Java_org_libreoffice_android_Bootstrap_redirect_1stdio(env, clazz, state);
 }
 
 /// Call the same method from Bootstrap.
@@ -119,10 +125,25 @@ Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_
     (*env)->ReleaseStringUTFChars(env, apkFile, apkFilePath);
 
     if (!setup_cdir())
+    {
+        LOGE("setup_cdir failed");
         return JNI_FALSE;
+    }
 
     if (!setup_assets_tree())
+    {
+        LOGE("setup_assets_tree failed");
         return JNI_FALSE;
+    }
+
+    pOffice = libreofficekit_hook(data_dir);
+    if (!pOffice)
+    {
+        LOGE("libreofficekit_hook returned null");
+        return JNI_FALSE;
+    }
+
+    LOGI("LibreOfficeKit successfully initialized");
 
     return JNI_TRUE;
 }
diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c
index 973c1b2..a7765be 100644
--- a/sal/android/lo-bootstrap.c
+++ b/sal/android/lo-bootstrap.c
@@ -42,11 +42,11 @@ struct engine {
 };
 
 /* These are valid / used in all apps. */
-static const char *data_dir;
-static const char *cache_dir;
-static void *apk_file;
-static int apk_file_size;
-static JavaVM *the_java_vm;
+const char *data_dir;
+const char *cache_dir;
+void *apk_file;
+int apk_file_size;
+JavaVM *the_java_vm;
 
 /* Zip data structures */
 
@@ -1019,7 +1019,7 @@ redirect_to_null(void)
 }
 
 __attribute__ ((visibility("default")))
-jboolean
+void
 Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env,
                                                        jobject clazz,
                                                        jboolean state)
@@ -1031,22 +1031,22 @@ Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env,
     (void) env;
     (void) clazz;
 
-   if (state == current)
-        return current;
+    if (state == current)
+        return;
 
     if (state == JNI_FALSE) {
         if (!redirect_to_null())
-            return current;
+            return;
     } else {
         if (pipe(stdout_pipe) == -1) {
             LOGE("redirect_stdio: Could not create pipes: %s", strerror(errno));
-            return current;
+            return;
         }
         if (pipe(stderr_pipe) == -1) {
             LOGE("redirect_stdio: Could not create pipes: %s", strerror(errno));
             close(stdout_pipe[0]);
             close(stdout_pipe[1]);
-            return current;
+            return;
         }
         LOGI("redirect_stdio: stdout pipe: [%d,%d], stderr pipe: [%d,%d]",
              stdout_pipe[0], stdout_pipe[1], stderr_pipe[0], stderr_pipe[1]);
@@ -1057,7 +1057,7 @@ Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env,
             close(stdout_pipe[1]);
             close(stderr_pipe[0]);
             close(stderr_pipe[1]);
-            return current;
+            return;
         }
 
         if (dup2(stderr_pipe[1], 2) == -1) {
@@ -1070,7 +1070,7 @@ Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env,
             close(stdout_pipe[1]);
             close(stderr_pipe[0]);
             close(stderr_pipe[1]);
-            return current;
+            return;
         }
         close(stdout_pipe[1]);
         close(stderr_pipe[1]);
@@ -1082,11 +1082,11 @@ Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env,
             redirect_to_null();
             close(stdout_pipe[0]);
             close(stderr_pipe[0]);
-            return current;
+            return;
         }
     }
     current = state;
-    return current;
+    return;
 }
 
 __attribute__ ((visibility("default")))
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 59cde03..0de8ed3 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -228,7 +228,10 @@ if options.java:
     volatile void *p = (void *) Java_org_libreoffice_android_AppSupport_runMain;
 
     extern void Java_org_libreoffice_android_AppSupport_renderVCL();
-    p = (void *) Java_org_libreoffice_android_AppSupport_renderVCL;""")
+    p = (void *) Java_org_libreoffice_android_AppSupport_renderVCL;
+
+    extern void Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2();
+    p = (void *) Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2;""")
 
 print ("""
     return map;
commit 74ab9835f978ae872bd0b737a8d16eb2f63731a7
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Sat Jun 28 14:31:33 2014 +0200

    android: Introduce LibreOfficeKit.java to bootstrap using LibreOfficeKit.
    
    Change-Id: I5e1758c15684b06ab6809f62f4da6d5f50c071a9

diff --git a/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
new file mode 100644
index 0000000..82b889e
--- /dev/null
+++ b/android/Bootstrap/src/org/libreoffice/android/LibreOfficeKit.java
@@ -0,0 +1,135 @@
+/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+package org.libreoffice.android;
+
+import android.app.Activity;
+import android.content.pm.ApplicationInfo;
+import android.util.Log;
+
+import java.io.File;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+
+// final because subclassing would be meaningless.
+public final class LibreOfficeKit
+{
+    // private constructor because instantiating would be meaningless
+    private LibreOfficeKit()
+    {
+    }
+
+    private static String TAG = "lo-bootstrap";
+
+    // Native methods in this class are all implemented in
+    // sal/android/lo-bootstrap.c as the lo-bootstrap library is loaded with
+    // System.loadLibrary() and Android's JNI works only to such libraries, it
+    // seems.
+
+    private static native boolean init(String dataDir,
+                                       String cacheDir,
+                                       String apkFile);
+
+    // Extracts files in the .apk that need to be extraced into the app's tree
+    static native void extract_files();
+
+/*
+    // Wrapper for getpid()
+    public static native int getpid();
+
+    // Wrapper for system()
+    public static native void system(String cmdline);
+*/
+    // Wrapper for putenv()
+    public static native void putenv(String string);
+/*
+    // A wrapper for InitVCL() in libvcl (svmain.cxx), called indirectly
+    // through the lo-bootstrap library
+    public static native void initVCL();
+
+    // A wrapper for osl_setCommandArgs(). Before calling
+    // osl_setCommandArgs(), argv[0] is prefixed with the parent directory of
+    // where the lo-bootstrap library is.
+    public static native void setCommandArgs(String[] argv);
+*/
+    // A method that starts a thread to redirect stdout and stderr writes to
+    // the Android logging mechanism, or stops the redirection.
+    public static native boolean redirect_stdio(boolean state);
+/*
+    // The DIB returned by css.awt.XBitmap.getDIB is in BGR_888 form, at least
+    // for Writer documents. We need it in Android's Bitmap.Config.ARGB_888
+    // format, which actually is RGBA_888, whee... At least in Android 4.0.3,
+    // at least on my device. No idea if it is always like that or not, the
+    // documentation sucks.
+    public static native void twiddle_BGR_to_RGBA(byte[] source, int offset, int width, int height, ByteBuffer destination);
+
+    public static native void force_full_alpha_array(byte[] array, int offset, int length);
+
+    public static native void force_full_alpha_bb(ByteBuffer buffer, int offset, int length);
+
+    public static native long new_byte_buffer_wrapper(ByteBuffer bbuffer);
+
+    public static native void delete_byte_buffer_wrapper(long bbw);
+*/
+
+    static boolean init_done = false;
+
+    // This init() method should be called from the upper Java level of
+    // LO-based apps.
+    public static synchronized void init(Activity activity)
+    {
+        if (init_done)
+            return;
+
+        String dataDir = null;
+
+        ApplicationInfo ai = activity.getApplicationInfo();
+        dataDir = ai.dataDir;
+        Log.i(TAG, String.format("dataDir=%s\n", dataDir));
+
+        redirect_stdio(true);
+
+        if (!init(dataDir,
+                  activity.getApplication().getCacheDir().getAbsolutePath(),
+                  activity.getApplication().getPackageResourcePath()))
+            return;
+
+        // Extract files from the .apk that can't be used mmapped directly from it
+        extract_files();
+
+        // If we notice that a fonts.conf file was extracted, automatically
+        // set the FONTCONFIG_FILE env var.
+        InputStream i;
+        try {
+            i = activity.getAssets().open("unpack/etc/fonts/fonts.conf");
+        }
+        catch (java.io.IOException e) {
+            i = null;
+        }
+        putenv("OOO_DISABLE_RECOVERY=1");
+        if (i != null)
+            putenv("FONTCONFIG_FILE=" + dataDir + "/etc/fonts/fonts.conf");
+
+        // TMPDIR is used by osl_getTempDirURL()
+        putenv("TMPDIR=" + activity.getCacheDir().getAbsolutePath());
+
+        init_done = true;
+    }
+
+    // Now with static loading we always have all native code in one native
+    // library which we always call liblo-native-code.so, regardless of the
+    // app. The library has already been unpacked into /data/data/<app
+    // name>/lib at installation time by the package manager.
+    static {
+        System.loadLibrary("lo-native-code");
+    }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/osl/detail/android-bootstrap.h b/include/osl/detail/android-bootstrap.h
index 002027a..b18531b 100644
--- a/include/osl/detail/android-bootstrap.h
+++ b/include/osl/detail/android-bootstrap.h
@@ -38,6 +38,13 @@ JavaVM *lo_get_javavm(void);
 
 const char *lo_get_app_data_dir(void);
 
+#define UNPACK_TREE "/assets/unpack"
+#define UNPACK_TREE_GZ "/assets/gz.unpack"
+
+int setup_cdir(void);
+int setup_assets_tree(void);
+void extract_files(const char *root, const char *prefix, int gzipped);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/sal/Library_lo-bootstrap.mk b/sal/Library_lo-bootstrap.mk
index 1438091..3dc4bf9 100644
--- a/sal/Library_lo-bootstrap.mk
+++ b/sal/Library_lo-bootstrap.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_Library_add_libs,lo-bootstrap,\
 ))
 
 $(eval $(call gb_Library_add_cobjects,lo-bootstrap,\
+	sal/android/libreofficekit-jni \
 	sal/android/lo-bootstrap \
 ))
 
diff --git a/sal/android/libreofficekit-jni.c b/sal/android/libreofficekit-jni.c
new file mode 100644
index 0000000..3563d5b
--- /dev/null
+++ b/sal/android/libreofficekit-jni.c
@@ -0,0 +1,130 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <time.h>
+
+#include <jni.h>
+
+#include <android/log.h>
+
+#include <osl/detail/android-bootstrap.h>
+
+//#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "LibreOfficeKit", __VA_ARGS__))
+#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "LibreOfficeKit", __VA_ARGS__))
+
+/* These are valid / used in all apps. */
+extern const char *data_dir;
+extern const char *cache_dir;
+extern void *apk_file;
+extern int apk_file_size;
+
+extern void Java_org_libreoffice_android_Bootstrap_putenv(JNIEnv* env, jobject clazz, jstring string);
+extern jboolean Java_org_libreoffice_android_Bootstrap_redirect_1stdio(JNIEnv* env, jobject clazz, jboolean state);
+extern void Java_org_libreoffice_android_Bootstrap_extract_1files(JNIEnv* env, jobject clazz);
+
+/// Call the same method from Bootstrap.
+__attribute__ ((visibility("default")))
+void
+Java_org_libreoffice_android_LibreOfficeKit_putenv(JNIEnv* env,
+                                              jobject clazz,
+                                              jstring string)
+{
+    Java_org_libreoffice_android_Bootstrap_putenv(env, clazz, string);
+}
+
+/// Call the same method from Bootstrap.
+__attribute__ ((visibility("default")))
+jboolean
+Java_org_libreoffice_android_LibreOfficeKit_redirect_1stdio(JNIEnv* env,
+                                                            jobject clazz,
+                                                            jboolean state)
+{
+    return Java_org_libreoffice_android_Bootstrap_redirect_1stdio(env, clazz, state);
+}
+
+/// Call the same method from Bootstrap.
+__attribute__ ((visibility("default")))
+void
+Java_org_libreoffice_android_LibreOfficeKit_extract_1files(JNIEnv* env,
+                                                           jobject clazz)
+{
+    Java_org_libreoffice_android_Bootstrap_extract_1files(env, clazz);
+}
+
+/// Initialize the LibreOfficeKit.
+__attribute__ ((visibility("default")))
+jboolean
+Java_org_libreoffice_android_LibreOfficeKit_init__Ljava_lang_String_2Ljava_lang_String_2Ljava_lang_String_2
+    (JNIEnv* env,
+     jobject clazz,
+     jstring dataDir,
+     jstring cacheDir,
+     jstring apkFile)
+{
+    struct stat st;
+    int fd;
+    const char *dataDirPath;
+    const char *cacheDirPath;
+    const char *apkFilePath;
+
+    (void) clazz;
+
+    dataDirPath = (*env)->GetStringUTFChars(env, dataDir, NULL);
+    data_dir = strdup(dataDirPath);
+    (*env)->ReleaseStringUTFChars(env, dataDir, dataDirPath);
+
+    cacheDirPath = (*env)->GetStringUTFChars(env, cacheDir, NULL);
+    cache_dir = strdup(cacheDirPath);
+    (*env)->ReleaseStringUTFChars(env, cacheDir, cacheDirPath);
+
+    apkFilePath =  (*env)->GetStringUTFChars(env, apkFile, NULL);
+
+    fd = open(apkFilePath, O_RDONLY);
+    if (fd == -1) {
+        LOGE("Could not open %s", apkFilePath);
+        (*env)->ReleaseStringUTFChars(env, apkFile, apkFilePath);
+        return JNI_FALSE;
+    }
+    if (fstat(fd, &st) == -1) {
+        LOGE("Could not fstat %s", apkFilePath);
+        close(fd);
+        (*env)->ReleaseStringUTFChars(env, apkFile, apkFilePath);
+        return JNI_FALSE;
+    }
+    apk_file = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
+    close(fd);
+
+    if (apk_file == MAP_FAILED) {
+        LOGE("Could not mmap %s", apkFilePath);
+        (*env)->ReleaseStringUTFChars(env, apkFile, apkFilePath);
+        return JNI_FALSE;
+    }
+    apk_file_size = st.st_size;
+
+    (*env)->ReleaseStringUTFChars(env, apkFile, apkFilePath);
+
+    if (!setup_cdir())
+        return JNI_FALSE;
+
+    if (!setup_assets_tree())
+        return JNI_FALSE;
+
+    return JNI_TRUE;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c
index 49f9b3a..973c1b2 100644
--- a/sal/android/lo-bootstrap.c
+++ b/sal/android/lo-bootstrap.c
@@ -28,7 +28,7 @@
 
 #include "uthash.h"
 
-#include "osl/detail/android-bootstrap.h"
+#include <osl/detail/android-bootstrap.h>
 
 #undef LOGI
 
@@ -142,7 +142,7 @@ cdir_entry_size(struct cdir_entry *entry)
         letoh16(entry->file_comment_size);
 }
 
-static int
+int
 setup_cdir(void)
 {
     struct cdir_end *dirend = (struct cdir_end *)((char *) apk_file + apk_file_size - sizeof(*dirend));
@@ -221,7 +221,7 @@ handle_one_asset(struct cdir_entry *entry)
     }
 }
 
-static int
+int
 setup_assets_tree(void)
 {
     int count = cdir_entries;
@@ -629,9 +629,6 @@ lo_apk_lstat(const char *path,
     return -1;
 }
 
-#define UNPACK_TREE "/assets/unpack"
-#define UNPACK_TREE_GZ "/assets/gz.unpack"
-
 static int
 mkdir_p(const char *dirname)
 {
@@ -718,7 +715,7 @@ extract_gzipped(const char *filename,
     return total;
 }
 
-static void
+void
 extract_files(const char *root,
               const char *prefix,
               int gzipped)
commit a6ecd8b2a9f0f3eaa66388861a6dcc6260ec72b9
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Thu Jun 26 11:22:21 2014 +0200

    LOAndroid3: ant/make for building, Bootstrap project
    
    LOAndroid3 is based of LibreOffice4Android project which uses
    ant/make for building. By using LibreOffice4Android as the base,
    the project creates a APK archive which has all needed files
    to start LibreOffice in Android environment.
    
    Change-Id: I697d5f727bdaf93e774144ad597d7081d2609908

diff --git a/android/CustomTarget_lo_android.mk b/android/CustomTarget_lo_android.mk
new file mode 100644
index 0000000..4d32cac
--- /dev/null
+++ b/android/CustomTarget_lo_android.mk
@@ -0,0 +1,36 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+$(eval $(call gb_CustomTarget_CustomTarget,android/loandroid3))
+
+loandroid3_DIR := $(call gb_CustomTarget_get_workdir,android/experimental/LOAndroid3)
+
+$(call gb_CustomTarget_get_target,android/loandroid3) : \
+	$(loandroid3_DIR)/done
+
+# We want that to be built completely first,
+# so that we can serialize Ant access to Bootstrap, which is used both
+# by DocumentLoader. We don't want one Ant to be cleaning
+# out Bootstrap while another is building stuff that depends on it.
+# Yeah, this sucks
+
+$(loandroid3_DIR)/done : $(call gb_Postprocess_get_target,AllModulesButInstsetNative)
+	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MAK,2)
+	cd $(SRCDIR)/android/experimental/LOAndroid3 && $(MAKE) all
+# Copy to $(BUILDDIR)/instsetoo_native as that is where the tinderbox build script
+# still looks for the .apk, and we want fresh daily builds to be uploaded. Even if
+# the apps as such are mostly useless.
+# Us "foo" instead of the old INPATH
+	mkdir -p $(BUILDDIR)/instsetoo_native/foo/bin; \
+	cp $(SRCDIR)/android/experimental/LOAndroid3/bin/*-debug.apk $(BUILDDIR)/instsetoo_native/foo/bin
+
+$(call gb_CustomTarget_get_clean_target,android/loandroid3) :
+	$(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),MAK,2)
+	cd $(SRCDIR)/android/experimental/LOAndroid3 && $(MAKE) clean
+
+# vim: set noet sw=4 ts=4:
diff --git a/android/Module_android.mk b/android/Module_android.mk
index e860449..eedc57a 100644
--- a/android/Module_android.mk
+++ b/android/Module_android.mk
@@ -13,6 +13,7 @@ ifeq ($(OS),ANDROID)
 
 $(eval $(call gb_Module_add_targets,android,\
 	CustomTarget_lo4android \
+	CustomTarget_lo_android \
 	CustomTarget_android_desktop \
 ))
 
diff --git a/android/experimental/LOAndroid3/AndroidManifest.xml b/android/experimental/LOAndroid3/AndroidManifest.xml
new file mode 100644
index 0000000..81e8822
--- /dev/null
+++ b/android/experimental/LOAndroid3/AndroidManifest.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="org.libreoffice"
+    android:installLocation="preferExternal"
+    android:versionCode="1"
+    android:versionName="1.0">
+
+    <!-- App requires OpenGL ES 2.0 -->
+    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11"/>
+
+    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+
+    <application
+        android:allowBackup="true"
+        android:icon="@drawable/main"
+        android:label="@string/app_name"
+        android:hardwareAccelerated="true"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name="LibreOfficeMainActivity"
+            android:label="@string/app_name" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/android/experimental/LOAndroid3/Makefile b/android/experimental/LOAndroid3/Makefile
new file mode 100644
index 0000000..4db011f
--- /dev/null
+++ b/android/experimental/LOAndroid3/Makefile
@@ -0,0 +1,128 @@
+ifeq ($(BUILDDIR),)
+include ../../../config_host.mk
+endif
+
+# The default target just builds.
+
+all: build-ant
+
+# The package of this app
+APP_PACKAGE=org.libreoffice
+
+BOOTSTRAPDIR=../../Bootstrap
+include $(BOOTSTRAPDIR)/Makefile.shared
+
+native-code.cxx: $(SRCDIR)/solenv/bin/native-code.py
+	$< -g core -g writer > $@
+
+copy-stuff:
+# Then "assets". Let the directory structure under assets mimic
+# that under solver for now.
+#
+# Please note that I have no idea what all of this is really necessary and for
+# much of this stuff being copied, no idea whether it makes any sense at all.
+# Much of this is copy-pasted from android/qa/sc/Makefile (where a couple of
+# unit tests for sc are built, and those do seem to mostly work) and
+# android/qa/desktop/Makefile (mmeeks's desktop demo, also works to some
+# extent).
+#
+	mkdir -p assets/gz.unpack/program/ure assets/lib assets/program/services assets/ure/share/misc assets/ComponentTarget/i18npool/util
+	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/offapi.rdb >assets/gz.unpack/program/offapi.rdb
+	gzip -9 <$(INSTDIR)/$(LIBO_ETC_FOLDER)/types/oovbaapi.rdb >assets/gz.unpack/program/oovbaapi.rdb
+	gzip -9 <$(INSTDIR)/$(LIBO_URE_SHARE_FOLDER)/misc/types.rdb >assets/gz.unpack/program/udkapi.rdb
+# For some reason the vnd.sun.star.expand:$LO_LIB_DIR doesn't seem to work, it expands to empty!?
+	for F in program/services/services ure/share/misc/services; do \
+		sed -e 's!uri="vnd.sun.star.expand:$$LO_LIB_DIR/!uri="file://$$APP_DATA_DIR/lib/!g' <$(INSTDIR)/$$F.rdb >assets/$$F.rdb; \
+	done
+	cp $(SRC_ROOT)/odk/examples/java/DocumentHandling/test/test1.odt \
+		assets
+	cp $(WORKDIR)/ComponentTarget/i18npool/util/i18npool.component assets/ComponentTarget/i18npool/util
+#
+	mkdir -p assets/share/config
+	cp -R $(INSTDIR)/share/registry assets/share
+	cp -R $(INSTDIR)/share/config/soffice.cfg assets/share/config
+#
+# Set up rc, the "inifile". See BootstrapMap::getBaseIni(). As this app
+# doesn't use soffice_main() (at least I think it shouldn't), the
+# rtl::Bootstrap::setIniFilename() call there that hardcodes
+# /assets/program/lofficerc isn't executed. Instead the hardcoding of
+# /assets/rc in BootstrapMap::getBaseIni() gets used.
+	echo '[Bootstrap]' > assets/rc
+	echo 'Logo=1' >> assets/rc
+	echo 'NativeProgress=1' >> assets/rc
+	echo 'URE_BOOTSTRAP=file:///assets/program/fundamentalrc' >> assets/rc
+#	echo 'RTL_LOGFILE=file:///dev/log/main' >> assets/rc
+	echo 'HOME=$$APP_DATA_DIR/cache' >> assets/rc
+	echo 'OSL_SOCKET_PATH=$$APP_DATA_DIR/cache' >> assets/rc
+#
+# Set up fundamentalrc
+	echo '[Bootstrap]' > assets/program/fundamentalrc
+	echo 'LO_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc
+	echo 'URE_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/fundamentalrc # checkme - is this used to find configs ?
+	echo 'BRAND_BASE_DIR=file:///assets' >> assets/program/fundamentalrc
+	echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/share/registry' >> assets/program/fundamentalrc
+	echo 'URE_BIN_DIR=file:///assets/ure/bin/dir/nothing-here/we-can/exec-anyway' >> assets/program/fundamentalrc
+#
+# Set up unorc
+	echo '[Bootstrap]' > assets/program/unorc
+	echo 'URE_INTERNAL_LIB_DIR=file://$$APP_DATA_DIR/lib/' >> assets/program/unorc
+	echo 'UNO_TYPES=file://$$APP_DATA_DIR/program/udkapi.rdb file://$$APP_DATA_DIR/program/offapi.rdb file://$$APP_DATA_DIR/program/oovbaapi.rdb' >> assets/program/unorc
+	echo 'UNO_SERVICES=file:///assets/ure/share/misc/services.rdb file:///assets/program/services/services.rdb' >> assets/program/unorc
+#
+# Set up bootstraprc
+	echo '[Bootstrap]' > assets/program/bootstraprc
+	echo 'InstallMode=<installmode>' >> assets/program/bootstraprc
+	echo 'ProductKey=LibreOffice $(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR)' >> assets/program/bootstraprc
+	echo 'UserInstallation=file://$$APP_DATA_DIR' >> assets/program/bootstraprc
+#
+# Set up versionrc
+	echo '[Version]' > assets/program/versionrc
+	echo 'AllLanguages=en-US' >> assets/program/versionrc
+	echo 'BuildVersion=' >> assets/program/versionrc
+	echo 'buildid=dead-beef' >> assets/program/versionrc
+	echo 'ProductMajor=360' >> assets/program/versionrc
+	echo 'ProductMinor=1' >> assets/program/versionrc
+	echo 'ReferenceOOoMajorMinor=3.6' >> assets/program/versionrc
+#
+# .res files
+	mkdir -p assets/program/resource
+	cp $(INSTDIR)/$(LIBO_SHARE_RESOURCE_FOLDER)/*en-US.res assets/program/resource
+#
+# Assets that are unpacked at run-time into the app's data directory. These
+# are files read by non-LO code, fontconfig and freetype for now, that doesn't
+# understand "/assets" paths.
+	mkdir -p assets/unpack/etc/fonts
+	cp fonts.conf assets/unpack/etc/fonts
+# $UserInstallation/user/fonts is added to the fontconfig path in
+# vcl/generic/fontmanager/helper.cxx: psp::getFontPath(). UserInstallation is
+# set to the app's data dir above.
+	mkdir -p assets/gz.unpack/user/fonts
+	for F in $(INSTDIR)/share/fonts/truetype/Liberation*.ttf $(INSTDIR)/share/fonts/truetype/Gen*.ttf $(INSTDIR)/share/fonts/truetype/opens___.ttf; do \
+		gzip -9 <$$F >assets/gz.unpack/user/fonts/`basename $$F`; \
+	done
+#
+# Then gdbserver and gdb.setup so that we can debug with ndk-gdb.
+#
+	mkdir -p $(SODEST)
+	cp $(ANDROID_NDK_GDBSERVER) $(SODEST)
+	echo set solib-search-path ./obj/local/$(ANDROID_APP_ABI) >$(SODEST)/gdb.setup
+
+build-ant: android_version_setup copy-stuff link-so properties
+#
+# Copy jar files we need
+#
+	for F in java_uno \
+		 juh \
+		 jurt \
+		 ridl \
+		 unoloader; do \
+	    $(call COPYJAR,$(INSTDIR)/$(LIBO_URE_SHARE_JAVA_FOLDER)/$${F}.jar); \
+	done
+	for F in unoil; do \
+	    $(call COPYJAR,$(INSTDIR)/$(LIBO_SHARE_JAVA_FOLDER)/$${F}.jar); \
+	done
+#
+	unset JAVA_HOME && $(ANT) -quiet debug
+
+run:
+	adb shell am start -n $(APP_PACKAGE)/.ui.LibreOfficeUIActivity -e input /assets/test1.odt
diff --git a/android/experimental/LOAndroid3/build.xml b/android/experimental/LOAndroid3/build.xml
new file mode 100644
index 0000000..52d06ee
--- /dev/null
+++ b/android/experimental/LOAndroid3/build.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="LibreOfficeViewer" default="help">
+
+    <!-- The local.properties file is created and updated by the 'android' tool.
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <loadproperties srcFile="local.properties" />
+
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
+         Here are some properties you may want to change/update:
+
+         source.dir
+             The name of the source directory. Default is 'src'.
+         out.dir
+             The name of the output directory. Default is 'bin'.
+
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
+
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
+
+         -->
+    <property file="ant.properties" />
+
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
+
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
+
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
+            unless="sdk.dir"
+    />
+
+
+<!-- extension targets. Uncomment the ones where you want to do custom work
+     in between standard targets -->
+<!--
+    <target name="-pre-build">
+    </target>
+    <target name="-pre-compile">
+    </target>
+
+    /* This is typically used for code obfuscation.
+       Compiled code location: ${out.classes.absolute.dir}
+       If this is not done in place, override ${out.dex.input.absolute.dir} */
+    <target name="-post-compile">
+    </target>
+-->
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
+    -->
+    <!-- version-tag: 1 -->
+    <import file="${android.library.reference.1}/no-resource-compress.xml" />
+</project>
diff --git a/android/experimental/LOAndroid3/dummies.cxx b/android/experimental/LOAndroid3/dummies.cxx
new file mode 100644
index 0000000..5607ecf
--- /dev/null
+++ b/android/experimental/LOAndroid3/dummies.cxx
@@ -0,0 +1,75 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+// Dummy implementations of the callback functions in the UI layer
+// that the LO layer calls. As this experimental Android app doesn't
+// handle any of that, these do nothing.
+
+#include <android/log.h>
+
+#include <touch/touch.h>
+
+extern "C"
+__attribute__ ((visibility("default")))
+void
+touch_ui_selection_start(MLOSelectionKind kind,
+                         const void *documentHandle,
+                         MLORect *rectangles,
+                         int rectangleCount,
+                         void *preview)
+{
+}
+
+extern "C"
+__attribute__ ((visibility("default")))
+void
+touch_ui_selection_resize_done(bool success,
+                               const void *documentHandle,
+                               MLORect *rectangles,
+                               int rectangleCount)
+{
+}
+
+extern "C"
+__attribute__ ((visibility("default")))
+void
+touch_ui_selection_none()
+{
+}
+
+
+static const char *
+dialog_kind_to_string(MLODialogKind kind)
+{
+    switch (kind) {
+    case MLODialogMessage:
+        return "MSG";
+    case MLODialogInformation:
+        return "INF";
+    case MLODialogWarning:
+        return "WRN";
+    case MLODialogError:
+        return "ERR";
+    case MLODialogQuery:
+        return "QRY";
+    default:
+        return "WTF";
+    }
+}
+
+extern "C"
+__attribute__ ((visibility("default")))
+MLODialogResult
+touch_ui_dialog_modal(MLODialogKind kind, const char *message)
+{
+    __android_log_print(ANDROID_LOG_INFO, "===>  %s: %s", dialog_kind_to_string(kind), message);
+    return MLODialogOK;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/android/experimental/LOAndroid3/fonts.conf b/android/experimental/LOAndroid3/fonts.conf
new file mode 100644
index 0000000..263648a
--- /dev/null
+++ b/android/experimental/LOAndroid3/fonts.conf
@@ -0,0 +1,154 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!-- /etc/fonts/fonts.conf file to configure system font access -->
+<fontconfig>
+
+<!-- Font directory list -->
+
+	<dir>/system/fonts</dir>
+
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Droid Serif</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Roboto</family>
+			<family>Droid Sans Fallback</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>Droid Sans Mono</family>
+		</prefer>
+	</alias>
+
+<!--
+  Accept deprecated 'mono' alias, replacing it with 'monospace'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>mono</string>
+		</test>
+		<edit name="family" mode="assign">
+			<string>monospace</string>
+		</edit>
+	</match>
+
+<!--
+  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>sans serif</string>
+		</test>
+		<edit name="family" mode="assign">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+
+<!--
+  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>sans</string>
+		</test>
+		<edit name="family" mode="assign">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+
+<!--
+  Load local system customization file
+-->
+	<include ignore_missing="yes">conf.d</include>
+
+<!-- Font cache directory list -->
+
+	<!-- Yeah this hardcoding is wrong of course, will have to fix
+	     later to patch in proper code in fontonfig on Android to
+	     find out a good place.
+	-->
+	<cachedir>/data/data/org.libreoffice/fontconfig</cachedir>
+
+	<config>
+<!--
+  These are the default Unicode chars that are expected to be blank
+  in fonts.  All other blank chars are assumed to be broken and
+  won't appear in the resulting charsets
+ -->
+		<blank>
+			<int>0x0020</int>	<!-- SPACE -->
+			<int>0x00A0</int>	<!-- NO-BREAK SPACE -->
+			<int>0x00AD</int>	<!-- SOFT HYPHEN -->
+			<int>0x034F</int>	<!-- COMBINING GRAPHEME JOINER -->
+			<int>0x0600</int>	<!-- ARABIC NUMBER SIGN -->
+			<int>0x0601</int>	<!-- ARABIC SIGN SANAH -->
+			<int>0x0602</int>	<!-- ARABIC FOOTNOTE MARKER -->
+			<int>0x0603</int>	<!-- ARABIC SIGN SAFHA -->
+			<int>0x06DD</int>	<!-- ARABIC END OF AYAH -->
+			<int>0x070F</int>	<!-- SYRIAC ABBREVIATION MARK -->
+			<int>0x115F</int>	<!-- HANGUL CHOSEONG FILLER -->
+			<int>0x1160</int>	<!-- HANGUL JUNGSEONG FILLER -->
+			<int>0x1680</int>	<!-- OGHAM SPACE MARK -->
+			<int>0x17B4</int>	<!-- KHMER VOWEL INHERENT AQ -->
+			<int>0x17B5</int>	<!-- KHMER VOWEL INHERENT AA -->
+			<int>0x180E</int>	<!-- MONGOLIAN VOWEL SEPARATOR -->
+			<int>0x2000</int>	<!-- EN QUAD -->
+			<int>0x2001</int>	<!-- EM QUAD -->
+			<int>0x2002</int>	<!-- EN SPACE -->
+			<int>0x2003</int>	<!-- EM SPACE -->
+			<int>0x2004</int>	<!-- THREE-PER-EM SPACE -->
+			<int>0x2005</int>	<!-- FOUR-PER-EM SPACE -->
+			<int>0x2006</int>	<!-- SIX-PER-EM SPACE -->
+			<int>0x2007</int>	<!-- FIGURE SPACE -->
+			<int>0x2008</int>	<!-- PUNCTUATION SPACE -->
+			<int>0x2009</int>	<!-- THIN SPACE -->
+			<int>0x200A</int>	<!-- HAIR SPACE -->
+			<int>0x200B</int>	<!-- ZERO WIDTH SPACE -->
+			<int>0x200C</int>	<!-- ZERO WIDTH NON-JOINER -->
+			<int>0x200D</int>	<!-- ZERO WIDTH JOINER -->
+			<int>0x200E</int>	<!-- LEFT-TO-RIGHT MARK -->
+			<int>0x200F</int>	<!-- RIGHT-TO-LEFT MARK -->
+			<int>0x2028</int>	<!-- LINE SEPARATOR -->
+			<int>0x2029</int>	<!-- PARAGRAPH SEPARATOR -->
+			<int>0x202A</int>	<!-- LEFT-TO-RIGHT EMBEDDING -->
+			<int>0x202B</int>	<!-- RIGHT-TO-LEFT EMBEDDING -->
+			<int>0x202C</int>	<!-- POP DIRECTIONAL FORMATTING -->
+			<int>0x202D</int>	<!-- LEFT-TO-RIGHT OVERRIDE -->
+			<int>0x202E</int>	<!-- RIGHT-TO-LEFT OVERRIDE -->
+			<int>0x202F</int>	<!-- NARROW NO-BREAK SPACE -->
+			<int>0x205F</int>	<!-- MEDIUM MATHEMATICAL SPACE -->
+			<int>0x2060</int>	<!-- WORD JOINER -->
+			<int>0x2061</int>	<!-- FUNCTION APPLICATION -->
+			<int>0x2062</int>	<!-- INVISIBLE TIMES -->
+			<int>0x2063</int>	<!-- INVISIBLE SEPARATOR -->
+			<int>0x206A</int>	<!-- INHIBIT SYMMETRIC SWAPPING -->
+			<int>0x206B</int>	<!-- ACTIVATE SYMMETRIC SWAPPING -->
+			<int>0x206C</int>	<!-- INHIBIT ARABIC FORM SHAPING -->
+			<int>0x206D</int>	<!-- ACTIVATE ARABIC FORM SHAPING -->
+			<int>0x206E</int>	<!-- NATIONAL DIGIT SHAPES -->
+			<int>0x206F</int>	<!-- NOMINAL DIGIT SHAPES -->
+			<int>0x2800</int>	<!-- BRAILLE PATTERN BLANK -->
+			<int>0x3000</int>	<!-- IDEOGRAPHIC SPACE -->
+			<int>0x3164</int>	<!-- HANGUL FILLER -->
+			<int>0xFEFF</int>	<!-- ZERO WIDTH NO-BREAK SPACE -->
+			<int>0xFFA0</int>	<!-- HALFWIDTH HANGUL FILLER -->
+			<int>0xFFF9</int>	<!-- INTERLINEAR ANNOTATION ANCHOR -->
+			<int>0xFFFA</int>	<!-- INTERLINEAR ANNOTATION SEPARATOR -->
+			<int>0xFFFB</int>	<!-- INTERLINEAR ANNOTATION TERMINATOR -->
+		</blank>
+<!--
+  Rescan configuration every 3600 seconds when FcFontSetList is called
+ -->
+		<rescan>
+			<int>3600</int>
+		</rescan>
+	</config>
+
+</fontconfig>
diff --git a/android/experimental/LOAndroid3/jni/Android.mk b/android/experimental/LOAndroid3/jni/Android.mk
new file mode 100644
index 0000000..939a1ea
--- /dev/null
+++ b/android/experimental/LOAndroid3/jni/Android.mk
@@ -0,0 +1,8 @@
+# Needed just to satisfy ndk-gdb for now, but maybe later we will actually add
+# some JNI code here
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/android/experimental/LOAndroid3/proguard-project.txt b/android/experimental/LOAndroid3/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/android/experimental/LOAndroid3/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
diff --git a/android/experimental/LOAndroid3/project.properties b/android/experimental/LOAndroid3/project.properties
new file mode 100644
index 0000000..772d3c5
--- /dev/null
+++ b/android/experimental/LOAndroid3/project.properties
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-15
+
+# Use the Bootstrap class
+android.library.reference.1=../../Bootstrap
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/base.png b/android/experimental/LOAndroid3/res/drawable-hdpi/base.png
new file mode 100644
index 0000000..729dbcd
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/base.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/calc.png b/android/experimental/LOAndroid3/res/drawable-hdpi/calc.png
new file mode 100644
index 0000000..a3f5fd4
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/calc.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/draw.png b/android/experimental/LOAndroid3/res/drawable-hdpi/draw.png
new file mode 100644
index 0000000..b3ee114
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/draw.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/dummy_page.png b/android/experimental/LOAndroid3/res/drawable-hdpi/dummy_page.png
new file mode 100644
index 0000000..c58d276
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/dummy_page.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/ic_launcher.png b/android/experimental/LOAndroid3/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..96a442e
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/ic_launcher.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/ic_status_logo.png b/android/experimental/LOAndroid3/res/drawable-hdpi/ic_status_logo.png
new file mode 100644
index 0000000..d5f1669
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/ic_status_logo.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/impress.png b/android/experimental/LOAndroid3/res/drawable-hdpi/impress.png
new file mode 100644
index 0000000..5909f05
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/impress.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/lo_icon.png b/android/experimental/LOAndroid3/res/drawable-hdpi/lo_icon.png
new file mode 100644
index 0000000..2ef8641
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/lo_icon.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/main.png b/android/experimental/LOAndroid3/res/drawable-hdpi/main.png
new file mode 100644
index 0000000..7e8e2a0
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/main.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/math.png b/android/experimental/LOAndroid3/res/drawable-hdpi/math.png
new file mode 100644
index 0000000..50b8dc8
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/math.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-hdpi/startcenter.png b/android/experimental/LOAndroid3/res/drawable-hdpi/startcenter.png
new file mode 100644
index 0000000..7e8e2a0
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-hdpi/startcenter.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/background.png b/android/experimental/LOAndroid3/res/drawable-mdpi/background.png
new file mode 100644
index 0000000..611592b
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/background.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/base.png b/android/experimental/LOAndroid3/res/drawable-mdpi/base.png
new file mode 100644
index 0000000..729dbcd
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/base.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/calc.png b/android/experimental/LOAndroid3/res/drawable-mdpi/calc.png
new file mode 100644
index 0000000..a3f5fd4
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/calc.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/docu.png b/android/experimental/LOAndroid3/res/drawable-mdpi/docu.png
new file mode 100644
index 0000000..ab34ae5
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/docu.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/draw.png b/android/experimental/LOAndroid3/res/drawable-mdpi/draw.png
new file mode 100644
index 0000000..b3ee114
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/draw.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/ic_launcher.png b/android/experimental/LOAndroid3/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..359047d
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/ic_launcher.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/ic_status_logo.png b/android/experimental/LOAndroid3/res/drawable-mdpi/ic_status_logo.png
new file mode 100644
index 0000000..835fc92
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/ic_status_logo.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/impress.png b/android/experimental/LOAndroid3/res/drawable-mdpi/impress.png
new file mode 100644
index 0000000..5909f05
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/impress.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/lo_icon.png b/android/experimental/LOAndroid3/res/drawable-mdpi/lo_icon.png
new file mode 100644
index 0000000..4f3f89b
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/lo_icon.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/shadow.png b/android/experimental/LOAndroid3/res/drawable-mdpi/shadow.png
new file mode 100644
index 0000000..3ce69155
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/shadow.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-mdpi/writer.png b/android/experimental/LOAndroid3/res/drawable-mdpi/writer.png
new file mode 100644
index 0000000..2f4abcb
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-mdpi/writer.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/base.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/base.png
new file mode 100644
index 0000000..729dbcd
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/base.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/calc.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/calc.png
new file mode 100644
index 0000000..a3f5fd4
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/calc.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/draw.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/draw.png
new file mode 100644
index 0000000..b3ee114
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/draw.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_launcher.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..71c6d76
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_status_logo.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_status_logo.png
new file mode 100644
index 0000000..c800542
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/ic_status_logo.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/impress.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/impress.png
new file mode 100644
index 0000000..5909f05
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/impress.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xhdpi/writer.png b/android/experimental/LOAndroid3/res/drawable-xhdpi/writer.png
new file mode 100644
index 0000000..2f4abcb
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xhdpi/writer.png differ
diff --git a/android/experimental/LOAndroid3/res/drawable-xxhdpi/ic_launcher.png b/android/experimental/LOAndroid3/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..4df1894
Binary files /dev/null and b/android/experimental/LOAndroid3/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/android/experimental/LOAndroid3/res/layout/activity_main.xml b/android/experimental/LOAndroid3/res/layout/activity_main.xml
new file mode 100644
index 0000000..7b53d58
--- /dev/null
+++ b/android/experimental/LOAndroid3/res/layout/activity_main.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/main_layout"
+    android:background="#fff"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <RelativeLayout
+        android:id="@+id/gecko_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:layout_weight="1"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/android/experimental/LOAndroid3/res/menu/main.xml b/android/experimental/LOAndroid3/res/menu/main.xml

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list