android/Bootstrap/src/org/libreoffice/android/Bootstrap.java | 4 + android/experiments/DocumentLoader/Makefile | 13 --- android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java | 2 codemaker/source/javamaker/javatype.cxx | 5 + sal/android/lo-bootstrap.c | 21 +++++ ucbhelper/source/client/contentbroker.cxx | 38 ++++++++++ 6 files changed, 71 insertions(+), 12 deletions(-)
New commits: commit 61d1533961d002ff0630a0505686dc37b5c393ca Author: Tor Lillqvist <tlillqv...@suse.com> Date: Wed Mar 28 16:45:24 2012 +0300 Include unoil.jar diff --git a/android/experiments/DocumentLoader/Makefile b/android/experiments/DocumentLoader/Makefile index 872618f..ddf5146 100644 --- a/android/experiments/DocumentLoader/Makefile +++ b/android/experiments/DocumentLoader/Makefile @@ -196,21 +196,12 @@ build-ant: copy-stuff juh \ jurt \ ridl \ + unoil \ unoloader \ ); do \ $(call COPYJAR,$(OUTDIR)/bin/$${F}.jar); \ done # -# com.sun.star.frame.XComponentLoader is not in any jar -# - cd libs && \ - LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib \ - DYLD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib \ - $(OUTDIR_FOR_BUILD)/bin/javamaker -BUCR -nD \ - $(OUTDIR)/bin/udkapi.rdb $(OUTDIR)/bin/offapi.rdb \ - -Tcom.sun.star.frame.XComponentLoader && \ - jar cvf more.jar com -# unset JAVA_HOME && $(ANT) debug install: build-ant commit de290c0ffc7a4969fb1cdc33696d241f47804592 Author: Tor Lillqvist <tlillqv...@suse.com> Date: Wed Mar 28 16:44:53 2012 +0300 Leave out reference to the the user registrymodifications.xcu for now diff --git a/android/experiments/DocumentLoader/Makefile b/android/experiments/DocumentLoader/Makefile index 7aa3264..872618f 100644 --- a/android/experiments/DocumentLoader/Makefile +++ b/android/experiments/DocumentLoader/Makefile @@ -156,7 +156,7 @@ copy-stuff: 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 module:$${BRAND_BASE_DIR}/share/registry/modules res:$${BRAND_BASE_DIR}/share/registry user:$${$$BRAND_BASE_DIR/program/bootstraprc:UserInstallation}/user/registrymodifications.xcu' >> assets/program/fundamentalrc + echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry module:$${BRAND_BASE_DIR}/share/registry/modules 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:///assets/bin/ure/types.rdb file:///assets/bin/types.rdb' >> assets/program/fundamentalrc echo 'URE_MORE_SERVICES=file:///assets/xml/ure/services.rdb file:///assets/xml/services.rdb <$$BRAND_BASE_DIR/program/services>*' >> assets/program/fundamentalrc commit 6db50818c1f6685adc4551c6927c9420f0872775 Author: Tor Lillqvist <tlillqv...@suse.com> Date: Wed Mar 28 16:42:34 2012 +0300 Add JNI wrapper for InitUCBHelper() and call it diff --git a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java index e5f2f1e..c60c9e9 100644 --- a/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java +++ b/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java @@ -93,6 +93,10 @@ public class Bootstrap extends NativeActivity // where the lo-bootstrap library is. public static native void setCommandArgs(String[] argv); + // A wrapper for InitUCBHelper() in he ucbhelper library + // (contentbroker.cxx), also this called indirectly through the lo-bootstrap library + public static native void initUCBHelper(); + public static void setup(Activity activity) { String dataDir = null; diff --git a/android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java b/android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java index 882c73c..93ed87e 100644 --- a/android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java +++ b/android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java @@ -91,6 +91,8 @@ public class DocumentLoader Log.i(TAG, "oDesktop is" + (oDesktop!=null ? " not" : "") + " null"); + Bootstrap.initUCBHelper(); + com.sun.star.frame.XComponentLoader xCompLoader = (com.sun.star.frame.XComponentLoader) UnoRuntime.queryInterface( diff --git a/sal/android/lo-bootstrap.c b/sal/android/lo-bootstrap.c index 27f4e07..068ba7c 100644 --- a/sal/android/lo-bootstrap.c +++ b/sal/android/lo-bootstrap.c @@ -1577,6 +1577,27 @@ Java_org_libreoffice_android_Bootstrap_setCommandArgs(JNIEnv* env, (*osl_setCommandArgs)(c_argc, c_argv); } +// public static native void initUCBhelper(); + +__attribute__ ((visibility("default"))) +void +Java_org_libreoffice_android_Bootstrap_initUCBHelper(JNIEnv* env, + jobject clazz) +{ + void (*InitUCBHelper)(void); + (void) env; + (void) clazz; + + /* This obviously should be called only after the ucbhelper so has been loaded */ + + InitUCBHelper = dlsym(RTLD_DEFAULT, "InitUCBHelper"); + if (InitUCBHelper == NULL) { + LOGE("InitUCBHelper: InitUCBHelper not found"); + return; + } + (*InitUCBHelper)(); +} + __attribute__ ((visibility("default"))) JavaVM * lo_get_javavm(void) commit bb84db9f44fd1fcadd86841411ac40d22281c157 Author: Tor Lillqvist <tlillqv...@suse.com> Date: Wed Mar 28 16:42:01 2012 +0300 Add an InitUCBHelper function to be called from an Android app's Java level diff --git a/ucbhelper/source/client/contentbroker.cxx b/ucbhelper/source/client/contentbroker.cxx index 0d86547..b38b421 100644 --- a/ucbhelper/source/client/contentbroker.cxx +++ b/ucbhelper/source/client/contentbroker.cxx @@ -43,6 +43,12 @@ #include <com/sun/star/ucb/XCommandProcessor.hpp> #include <ucbhelper/contentbroker.hxx> +#ifdef ANDROID +#include <cppuhelper/bootstrap.hxx> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <ucbhelper/configurationkeys.hxx> +#endif + #ifdef DISABLE_DYNLOADING #define MSF_CREATEINSTANCE(Msf, Service) \ @@ -220,6 +226,38 @@ sal_Bool ContentBroker::initialize( return m_pTheBroker != 0; } +#ifdef ANDROID + +extern "C" __attribute__ ((visibility("default"))) void +InitUCBHelper() +{ + Reference< XMultiServiceFactory > xFactory; + try + { + Reference< XComponentContext > xCtx = ::cppu::defaultBootstrap_InitialComponentContext(); + xFactory = Reference< XMultiServiceFactory >( xCtx->getServiceManager(), + UNO_QUERY ); + } + catch( Exception& ) + { + } + + if( !xFactory.is() ) + { + fprintf( stderr, + "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" ); + exit( 1 ); + } + + // Create UCB. + Sequence< Any > aArgs( 2 ); + aArgs[ 0 ] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( UCB_CONFIGURATION_KEY1_LOCAL )); + aArgs[ 1 ] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( UCB_CONFIGURATION_KEY2_OFFICE )); + ::ucbhelper::ContentBroker::initialize( xFactory, aArgs ); +} + +#endif + //========================================================================= // static void ContentBroker::deinitialize() commit c589fa17b8f3e6ded0d1e04120781eb5d6735bc7 Author: Tor Lillqvist <tlillqv...@suse.com> Date: Wed Mar 28 16:39:48 2012 +0300 Dalvik enforces byte constants being in range (-128..127) diff --git a/codemaker/source/javamaker/javatype.cxx b/codemaker/source/javamaker/javatype.cxx index 1453122..f297980 100644 --- a/codemaker/source/javamaker/javatype.cxx +++ b/codemaker/source/javamaker/javatype.cxx @@ -2447,7 +2447,10 @@ void addConstant( rtl::OString( RTL_CONSTASCII_STRINGPARAM("Bad type information"))); //TODO } - valueIndex = classFile->addIntegerInfo(fieldValue.m_value.aByte); + if (fieldValue.m_value.aByte < 0x80) + valueIndex = classFile->addIntegerInfo(fieldValue.m_value.aByte); + else + valueIndex = classFile->addIntegerInfo(-256 + (int) fieldValue.m_value.aByte); break; case codemaker::UnoType::SORT_SHORT: _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits