[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