[Libreoffice-commits] .: 5 commits - android/Bootstrap android/experiments codemaker/source sal/android ucbhelper/source

Tor Lillqvist tml at kemper.freedesktop.org
Wed Mar 28 07:04:20 PDT 2012


 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 <tlillqvist at 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 <tlillqvist at 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 <tlillqvist at 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 <tlillqvist at 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 <tlillqvist at 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:


More information about the Libreoffice-commits mailing list