libreoffice-online/android
Weblate ac2e0f3fe5 update translations
LibreOffice Online/android-lib (Czech)
Currently translated at 83.3% (10 of 12 strings)

Change-Id: Ic60bbaa41dfed7745258c56fcccf59a204451364

update translations

LibreOffice Online/android-lib (Asturian)
Currently translated at 41.7% (5 of 12 strings)

Change-Id: I34f5a37804d9b93e6733603a4fa41d4b45c70482

update translations

LibreOffice Online/android-lib (Catalan)
Currently translated at 100.0% (12 of 12 strings)

Change-Id: I3e4a5ac856b2c22272a2283751512ea461203375

update translations

LibreOffice Online/android-lib (Spanish)
Currently translated at 100.0% (12 of 12 strings)

Change-Id: I8bfcea884723f6f88d920e87f0409a98d8450874

update translations

LibreOffice Online/loleaflet-help (Catalan)
Currently translated at 73.8% (307 of 416 strings)

Change-Id: I560a64c3caf626a3fc65d007fa79229ac49c8806

update translations

LibreOffice Online/android-lib (Basque)
Currently translated at 100.0% (12 of 12 strings)

Change-Id: Ia8ea90608982a42040c661cdea546ddf760c7dc4

update translations

LibreOffice Online/android-lib (Portuguese (Brazil))
Currently translated at 100.0% (12 of 12 strings)

Change-Id: I2408a873216d84d6cb1cf5c28fa40e0f31e99fec

update translations

LibreOffice Online/android-app (Czech)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: Id44155498d92fe1234a25489104b8662a8f198a7

update translations

LibreOffice Online/loleaflet-help (Czech)
Currently translated at 100.0% (416 of 416 strings)

Change-Id: Ia76ffa6e07afc4e8449c3511e8f1a6e1ce546b55

update translations

LibreOffice Online/loleaflet-help (Spanish)
Currently translated at 98.6% (410 of 416 strings)

Change-Id: I7d37d58fe29d379aef5f29d5f527474e52a41bcd

update translations

LibreOffice Online/loleaflet-help (Catalan)
Currently translated at 73.6% (306 of 416 strings)

Change-Id: Ie499b21d573b15460d2e95d23819263fa7d9e2df

update translations

LibreOffice Online/android-app (Welsh)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: Idca78e8ccf93abade03044faddede8c0efeab9fa

update translations

LibreOffice Online/android-app (English (United Kingdom))
Currently translated at 100.0% (100 of 100 strings)

Change-Id: Ie6c789269c017630c69e917b5104add9c2109537

update translations

LibreOffice Online/loleaflet-help (Hungarian)
Currently translated at 54.1% (225 of 416 strings)

Change-Id: I099c961ec400e7db4cf12bd1283b7ed2ffc4b831

update translations

LibreOffice Online/loleaflet-help (English (United Kingdom))
Currently translated at 100.0% (416 of 416 strings)

Change-Id: I7e7fea7868da92d7e95710df242cbd487834c130

update translations

LibreOffice Online/loleaflet-ui (English (United Kingdom))
Currently translated at 100.0% (290 of 290 strings)

Change-Id: I2ebe6b29b0fa3cca1bcdae9cbfdedf18be594d7c

update translations

LibreOffice Online/loleaflet-ui (Welsh)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: I461eb5212d8d9a48f5e08aea6c60dbe7898cc144

update translations

LibreOffice Online/android-app (Aragonese)
Currently translated at 11.0% (11 of 100 strings)

Change-Id: Icf4e473d87f3c60b28237372c0b96e3e3903584c

update translations

LibreOffice Online/android-app (Asturian)
Currently translated at 73.0% (73 of 100 strings)

Change-Id: I8d8b0c71443ba51185fcde3f40dfc53d3a111129

update translations

LibreOffice Online/android-app (Catalan)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: Ia949ff290a3312483d58f2d0576d8c589bf77ca8

update translations

LibreOffice Online/android-app (Spanish)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: I5cf0c693702f58fda8a0e9b0e07ef57f4da450ab

update translations

LibreOffice Online/loleaflet-ui (Spanish)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: Id5a7e23ccf588447908c0dfef3959ca8487361ea

update translations

LibreOffice Online/loleaflet-ui (Catalan)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: Ie9f9fae06d30d7ad6a36211c9ac281d778e29e7e

update translations

LibreOffice Online/loleaflet-ui (Asturian)
Currently translated at 36.6% (106 of 290 strings)

Change-Id: Ieaaf4959fb5bb3ac880e2b60e3beeb3dd6a00d65

update translations

LibreOffice Online/loleaflet-ui (Aragonese)
Currently translated at 1.7% (5 of 290 strings)

Change-Id: I81610b70f75a319aa9c5c0b8e9b942666b005334

update translations

LibreOffice Online/android-app (Lower Sorbian)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: I736c5d84b73c81dfb712d46ed2fb925f1dc2a9ce

update translations

LibreOffice Online/android-app (Basque)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: I16ed395cf18dc8d1e76369008c7a4434689050ed

update translations

LibreOffice Online/android-app (Upper Sorbian)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: I5a760f615447fdb8bf62221c82ee8d583b2b9cb6

update translations

LibreOffice Online/loleaflet-help (Basque)
Currently translated at 100.0% (416 of 416 strings)

Change-Id: I29819ccaa0eed3acab0738f6b869b50d732389fe

update translations

LibreOffice Online/loleaflet-ui (Upper Sorbian)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: I799dc449bdf811ce1c473776ff3d9aea74c0ee5b

update translations

LibreOffice Online/loleaflet-ui (Basque)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: I2ab18139798609fa1207395e566e593c451da085

update translations

LibreOffice Online/loleaflet-ui (Lower Sorbian)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: Ife086ed82f86492b147356cfe231d481ec722d2a

update translations

LibreOffice Online/loleaflet-ui (Ukrainian)
Currently translated at 100.0% (290 of 290 strings)

Change-Id: I9c9e68173079faa1dc2765c0672483b88f09f8b4

update translations

LibreOffice Online/android-app (Portuguese (Brazil))
Currently translated at 100.0% (100 of 100 strings)

Change-Id: Ie84d9a8d0fb5c3e089ad7e63b6b86c9808577fea

update translations

LibreOffice Online/loleaflet-help (Portuguese (Brazil))
Currently translated at 100.0% (416 of 416 strings)

Change-Id: Iba5053cd74c6ac749aac94b17c36977abe2969ed

update translations

LibreOffice Online/loleaflet-ui (Portuguese (Brazil))
Currently translated at 100.0% (290 of 290 strings)

Change-Id: Ie2eceed0448b0f8fef5a25b5299f5dfc0d72e604

update translations

LibreOffice Online/android-app (Polish)
Currently translated at 100.0% (100 of 100 strings)

Change-Id: I2765c54a9d99cf6ec08f9e233ae7f4f2c5b74944
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90563
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-03-18 19:35:25 +01:00
..
app update translations 2020-03-18 19:35:25 +01:00
lib update translations 2020-03-18 19:35:25 +01:00
templates Try to delete language information from templates... 2020-03-14 22:29:17 +01:00
.gitignore android: Split the actual editing Activity into an own library. 2019-07-12 11:52:56 +02:00
build.gradle
gradle.properties
gradlew
gradlew.bat
Makefile.am Install a Kit config that disables complex text options. 2020-02-18 12:08:19 +01:00
README android: Implement (optional) support for both 32bit and 64bit build. 2019-12-30 14:24:30 +01:00
settings.gradle android: Split the actual editing Activity into an own library. 2019-07-12 11:52:56 +02:00

The development of this Android app has to be done on Linux, it's currently not possible to
build the native parts on Windows.

* Compile LibreOffice master for Android.

  Do this in the folder where you cloned the LibreOffice core (e.g master-android).

  Create an autogen.input file:

      --build=x86_64-unknown-linux-gnu
      --with-android-ndk=/home/$USER/Android/Sdk/ndk-bundle
      --with-android-sdk=/home/$USER/Android/Sdk
      --with-distro=LibreOfficeAndroid
      --enable-sal-log

  Run ./autogen.sh && make

* Build the POCO for Android

  # clone the poco repository in the same folder where LibreOffice core and online folders are placed.
  git clone https://github.com/pocoproject/poco poco-android
  cd poco-android

  # use the 1.9.1 branch
  git checkout -b poco-1.9.1 origin/poco-1.9.1

  # configure
  ./configure --config=Android --no-samples --no-tests --minimal

  # make it
  PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin make -j8 ANDROID_ABI=armeabi-v7a CC=armv7a-linux-androideabi21-clang CXX=armv7a-linux-androideabi21-clang++ SYSLIBS=-static-libstdc++

  # install it to /opt/poco-android
  PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin make -j8 ANDROID_ABI=armeabi-v7a CC=armv7a-linux-androideabi21-clang CXX=armv7a-linux-androideabi21-clang++ SYSLIBS=-static-libstdc++ install INSTALLDIR=/opt/poco-android

* 64bit POCO for Android

  # checkout the 1.9.1 in a different location and apply the following patch:
  --- a/build/config/Android
  +++ b/build/config/Android
  @@ -21,6 +21,11 @@ TOOL      = arm-linux-androideabi
   ARCHFLAGS = -march=armv7-a -mfloat-abi=softfp
   LINKFLAGS = -Wl,--fix-cortex-a8
   else
  +ifeq ($(ANDROID_ABI),arm64-v8a)
  +TOOL      = aarch64-linux-android
  +#ARCHFLAGS = -march=armv7-a -mfloat-abi=softfp
  +#LINKFLAGS = -Wl,--fix-cortex-a8
  +else
   ifeq ($(ANDROID_ABI),x86)
   TOOL      = i686-linux-android
   ARCHFLAGS = -march=i686 -msse3 -mstackrealign -mfpmath=sse
  @@ -29,6 +34,7 @@ $(error Invalid ABI specified in ANDROID_ABI)
   endif
   endif
   endif
  +endif
   
   #
   # Define Tools

  # configure as above and make it:
  PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin make -j8 ANDROID_ABI=arm64-v8a CC=aarch64-linux-android21-clang CXX=aarch64-linux-android21-clang++ SYSLIBS=-static-libstdc++

  # install
  PATH="$PATH":~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin make -j8 ANDROID_ABI=arm64-v8a CC=aarch64-linux-android21-clang CXX=aarch64-linux-android21-clang++ SYSLIBS=-static-libstdc++ install INSTALLDIR=/opt/poco-android-64bit

* Configure the online.git (eg. in online-android folder)

  Don't forget to change --with-lo-builddir in the following:

  ./autogen.sh && ./configure CC=~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang CXX=~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++ --host=arm-linux-androideabi --enable-androidapp --with-lo-builddir=/local/libreoffice/master-android --with-poco-includes=/opt/poco-android/include --with-poco-libs=/opt/poco-android/lib --disable-setcap --enable-silent-rules --enable-debug

* Build the JavaScript, HTML and CSS files also in the online-android folder

  # just run 'make'
  make

* Build the actual app

  + Start Android Studio
  + Open this 'android' subdir as a project
  + Build from Android Studio (Build -> Make Project)

== Building 32bit + 64bit combined .apk ==

  + you need to build both a 32bit (armeabi-v7a) and 64bit (arm64-v8a) core
  + you need to build both a 32bit and 64bit POCO
  + and then provide paths to both to the ./configure, separated by a colon ':',
    like:

    --with-lo-builddir=/local/libreoffice/master-android-release:/local/libreoffice/master-android-release-64bit \
    --with-poco-includes=/opt/poco-android/include:/opt/poco-android-64bit/include \
    --with-poco-libs=/opt/poco-android/lib:/opt/poco-android-64bit/lib \

== Debugging ==

To debug the native code in Android Studio, you need the debugging symbols and
to setup lldb to actually read & use them.

* Add debugging symbols for the modules you are interested in

  To autogen.input, add something like:

    --enable-symbols="vcl/ desktop/ sal/ svx/ framework/ sfx2/ tools/ cppu/ cppuhelper/ filter/ comphelper/ Library_sw Library_swd Library_swui"

  clean the appropriate modules, like

    make vcl.clean desktop.clean sal.clean svx.clean framework.clean sfx2.clean tools.clean cppu.clean cppuhelper.clean filter.clean comphelper.clean sw.clean

  and rebuild using 'make'.

* Add android/source/obj/local/armeabi-v7a from core.git as a Symbol Directory

  In Android Studio, choose Run -> Debug... -> Edit Configurations...

  There go to the Android App -> app, choose the Debugger tab, and:

  Debug type: Auto (or Dual)

  Symbol Directories: here add the full path, like

    /local/libreoffice/master-android/android/source/obj/local/armeabi-v7a

  This path contains the non-stripped version of the liblo-native-code.so, and
  the debugger will read the symbols from that one (even if the APK contains
  the stripped version). *NB* ensure that this is before any internal source
  directories - since the internal source contains stripped native code.

  [Alternatively you can add the following to your ~/.lldbinit instead:

    settings set target.inline-breakpoint-strategy always
    settings append target.exec-search-paths /local/libreoffice/master-android/android/source/obj/local/armeabi-v7a
  ]

* To use pretty printers for types like OUString, add the following to your
  ~/.lldbinit:

  command script import '/local/libreoffice/master-android/solenv/lldb/libreoffice/LO.py'

From now on, you will be able to debug directly in the Android Studio
debugger.  Happy debugging!

Note: to re-buld your app with a newly compiled libnative-lo code - it is 

== Tip: How to speed up your core.git build ==

If you use icecream for parallel building, you can use it for
cross-compilation too.

  # first generate a tarball with the toolchain (once)
  icecc-create-env ~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang ~/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++

And add it and the paths to the compiler as the first things to the
autogen.input:

  CC=icecc [here copy what the output of ./autogen.sh without icecream said for C compiler]
  CXX=icecc [here copy what the output of ./autogen.sh without icecream said for C++ compiler]
  ICECC_VERSION=/path/to/the/tarball/generated/above/955ceb546ceb7a5715bf0223ddd788fe.tar.gz
  --with-parallelism=[amount of cpu threads in your icecream farm]
  --enable-icecream
  [...the original autogen.input...]

So the result will look something like this:

  CC=icecc /home/$USER/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon -Wl,--fix-cortex-a8 -gcc-toolchain /home/$USER/Android/Sdk/ndk-bundle/to>
  CXX=icecc /home/$USER/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -mthumb -march=armv7-a -mfloat-abi=softfp -mfpu=neon -Wl,--fix-cortex-a8 -gcc-toolchain /home/$USER/Android/Sdk/ndk-bundle>
  ICECC_VERSION=/local/libreoffice/android/955ceb546ceb7a5715bf0223ddd788fe.tar.gz
  --with-parallelism=25
  --enable-icecream
  --build=x86_64-unknown-linux-gnu
  --with-android-ndk=/home/$USER/Android/Sdk/ndk-bundle
  --with-android-sdk=/home/$USER/Android/Sdk
  --with-distro=LibreOfficeAndroid
  --enable-sal-log