summaryrefslogtreecommitdiffstats
path: root/android
Commit message (Collapse)AuthorAgeFilesLines
* Introduce --enable-android-editingStephan Bergmann2018-12-132-3/+3
| | | | | | | | | | ...to select the experimental ...Editing... Android build variant. (Ignored for non-Android builds, but using libo_FUZZ_ARG_ENABLE anyway, just in case.) Change-Id: I670925ff358039e38edc29db69f48a78d484f133 Reviewed-on: https://gerrit.libreoffice.org/65077 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Switch Android armeabi-v7a to libc++/libc++abi/libunwind tooStephan Bergmann2018-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It had been left out in 4082a18406c18af7b4fcef7bd501c3679c3be56b "android: use unified headers and llvm-c++ STL (x86) with NDK 16" because "arm unfortunately crashes with llvm-c++, so keep with gnustl for now/fix that later". Making armeabi-v7a work with libc++ etc. required a number of changes, listed below, in this commit and in preceding ones. At least 32-bit x86 already worked with libc++ etc. prior to these changes in view mode, though it crashed in the experimental editing mode (enabled with strippedUIEditing in android/soruce/Makefile) as soon as one types in something, But it is not entirely clear to me why 32-bit x86 view mode didn't also fail similar to how I saw armeabi-v7a fail. (On 32-bit x86, these changes appear to neither improve nor worsen the current state, view mode still appears to work fine while editing still crashes upon typing anything. With these changes, editing mode on armeabi-v7a appears to work fine. But I tested armeabi-v7a only with a real device and 32-bit x86 only with an emulator, in case that might make a difference.) * Preceding <https://gerrit.libreoffice.org/#/c/64964/> "Move NSSLIBS to a more sensible place on the linker command line" plus this change's addition of -lunwind to the liblo-native-code.so linker command line make sure that liblo-native-code.so uses _Unwind_* functions from libunwind.a, instead of erroneously picking up the ones from libgcc.a that happen to be included in NSSLIB's nspr4 (-lgcc is automatically added to the end of the linker command line by the invoking compiler, that's how libgcc.a's _Unwind_* end up in NSSLIB's nspr4; it is neither clear to me why NSSLIB's nspr4, being a pure C library, uses _Unwind_* functions, nor why exception handling in liblo-native-code.so fails when using _Unwind_* functions from libgcc.a instead of from libunwind on armeabi-v7a, nor why that would work on 32-bit x86, but that's what I observed: ModuleManager::identify (framework/source/services/modulemanager.cxx) throws a css::lang::IllegalArgumentException, which calls __cxa_throw -> _Unwind_RaiseException, which ultimately lead to odd misbehavior and std::abort during stack unwinding when using _Unwind_RaiseException from libgcc.a instead of from libunwind). (There is no libunwind.* in android-ndk-r16b for 32-bit x86 at least, so is presumably using _Unwind_* functions from libgcc.a. It doesn't appear to make a difference if it indirectly uses those _Unwind_* functions from NSSLIB's nspr4, or directly from libgcc.a included in liblo-native-code.so if the $(if $(filter armeabi-v7a,$(ANDROID_APP_ABI)),-lunwind) had a ",-lgcc" else branch.) * Preceding <https://gerrit.libreoffice.org/#/c/64965/> "Export RTTI symbols from liblo-native-code.so, for binary UNO bridge" makes sure that excpetions thrown from the binary UNO bridge can be caught by compiled catch clauses. Not sure why the corresponding state of bridges/source/cpp_uno/gcc3_linux_intel shouldn't have run into the same issue. * Preceding <https://gerrit.libreoffice.org/#/c/64966/> "Adapt gcc3_linux_arm __cxa_exception to NDK 18 libc++abi" makes sure that our version of __cxa_exception matches the version from libc++abi. This is clearly not relevant for 32-bit x86. (The comment there android-ndk-r18b, but the additional member is already present in android-ndk-r16b/sources/cxx-stl/llvm-libc++abi/src/cxa_exception.hpp, too.) The remainder of this change just drops old armeabi-v7a--specific workarounds that are no longer needed/no longer work. Change-Id: Ief4c2d562c5032abe6c3b94ca3b3394be6fcd4d3 Reviewed-on: https://gerrit.libreoffice.org/64973 Tested-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Export RTTI symbols from liblo-native-code.so, for binary UNO bridgeStephan Bergmann2018-12-131-0/+1
| | | | | | | | | | | | | This will become important when switching armeabi-v7a to libc++/libc++abi/libunwind (coming soon) which uses address instead of string comparison when checking for type equality, so that exceptions thrown from the binary UNO bridge will need to use the exact same RTTI objects as referenced from the compiled catch clauses. Change-Id: If8bcb39212b5f5e154aee215cb5f471fe2dc4a7b Reviewed-on: https://gerrit.libreoffice.org/64965 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Move NSSLIBS to a more sensible place on the linker command lineStephan Bergmann2018-12-131-2/+1
| | | | | | | | | | | | | | | | 511ae02c6457e69cb6daab871acd9c3e7d64e2e3 "Android: Enable HAVE_FEATURE_NSS and package the NSS libraries with apk" had added them to WHOLELIBS probably just because that already had the $(addprefix -l,...), even though --whole-archive doesn't make any sense for shared libraries. Better place them later on the linker command line (after all our own archives and compiler support libraries), so that switching armeabi-v7a to libc++/libc++abi/libunwind (coming soon) will be able to override erroneously picking _Unwind_* symbols from NSSLIBS's nspr4 instead of libunwind. Change-Id: Ie0c0b7a55da3eabe1bb427232d698b2a4af63e78 Reviewed-on: https://gerrit.libreoffice.org/64964 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Make android/mobile-config.py compatible with Python 3Stephan Bergmann2018-12-121-2/+2
| | | | | | | Change-Id: I079c4efd28e7e0d10ca6edf242ddd85b9294db08 Reviewed-on: https://gerrit.libreoffice.org/64962 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* android: lock away editing mode in separate build flavorChristian Lohmaier2018-11-133-5/+17
| | | | | | | Change-Id: I767cc1d512345aa20570001033ddb4d882e3ca35 Reviewed-on: https://gerrit.libreoffice.org/62362 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
* [Pardus] ability to change slide nameMert Tumer2018-11-046-11/+20
| | | | | | | | | | This patch is sponsored by ULAKBIM/Pardus project. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: I6361e3d23b03e5463d165f7f02dacad8be9206da Reviewed-on: https://gerrit.libreoffice.org/62861 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* Fix nullptr exception in presentation on AndroidMert Tumer2018-11-041-0/+1
| | | | | | | | Change-Id: If54c26f66466ee591d198aaf3f8f68ba04e5f4b3 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/62774 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* [Pardus] fix highlight color in Presentation On AndroidMert Tumer2018-11-022-2/+9
| | | | | | | | | | This patch is sponsored by ULAKBIM/Pardus project. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: Ic56991b2957be91822d040d776a3dfcef2d5b451 Reviewed-on: https://gerrit.libreoffice.org/62753 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* [Pardus] fix missing break in switch case on AndroidMert Tumer2018-11-021-1/+2
| | | | | | | | | | | missing break causes bug on buttons on Formatting tab This patch is sponsored by ULAKBIM/Pardus project. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: I8a20b542aa319591e9dea5591ed554954222d690 Reviewed-on: https://gerrit.libreoffice.org/62756 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* [Pardus] removed ignore hidden files on AndroidMert Tumer2018-11-021-3/+0
| | | | | | | | | | | | ignore hidden files statment is obsolete because we put option on settings whether they are shown or not This patch is sponsored by ULAKBIM/Pardus project. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: Ibba7ed76c20a189cff04e330a4493b3e84e5dba2 Reviewed-on: https://gerrit.libreoffice.org/62754 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* [Pardus] language improvements on AndroidGulsah Kose2018-11-021-12/+12
| | | | | | | | | This patch is sponsored by ULAKBIM/Pardus project. Change-Id: Ia890f8c3f8d638beb4c06bf1c73d49f7b0fac72a Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/62769 Tested-by: Jenkins
* [Pardus] language improvements on AndroidMert Tumer2018-11-0210-22/+52
| | | | | | | | | | | | More hardcoded strings extrated to the resource file Few Turkish language improvements This patch is sponsored by ULAKBIM/Pardus project. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: I9c49d1b8ec3dfc88a19832a2cdea2c7cbaf2be42 Reviewed-on: https://gerrit.libreoffice.org/62757 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.1004@gmail.com>
* Fix permission settings on Android ViewerMert Tumer2018-11-022-8/+5
| | | | | | | | | | | | We ask READ_EXTERNAL_STORAGE permission on first start then check WRITE_EXTERNAL_STORAGE permission on switching between document providers. This causes problems on Android 8+ Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: Ia7290e33b2a55f5a2197374ca39c60998edfff72 Reviewed-on: https://gerrit.libreoffice.org/62269 Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Tested-by: Jenkins
* Added Turkish Language Support on Android ViewerMert Tumer2018-10-184-2/+236
| | | | | | | | Change-Id: I0b2f1ca5386510e3a8217cf3bb3e08a940f438f7 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/61788 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Added language support on Android ViewerMert Tumer2018-10-186-1/+92
| | | | | | | | Change-Id: I05a189dcee9cf4415ce59771da03c08cf0fef6c4 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/60727 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Extract hardcoded strings to string resource file on Android ViewerMert Tumer2018-10-067-33/+49
| | | | | | | | Change-Id: Ie2276ac162062e7365c9605f98fe03e5011ba6cb Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/60688 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
* Added Clear Formatting button on Android ViewerMert Tumer2018-08-213-1/+24
| | | | | | | | Change-Id: If576aaf3e5095e660219fed9f5e11971c9a73469 Signed-off-by: Mert Tumer <merttumer7@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/59293 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Fix listing all options (presentation and spreadsheet) on all documentsMert Tumer2018-08-213-15/+24
| | | | | | | | Change-Id: I2f43818dbf490de10a54da7f36c6bae3d4d62e39 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/59289 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#89860 ability to print from Android ViewerMert Tumer2018-08-155-1/+117
| | | | | | | | Change-Id: I13c7f3e085095f1c0d88ab3668557fcc1c4cb23a Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58900 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
* Added PDF Export option on Android ViewerMert Tumer2018-08-115-3/+51
| | | | | | | | Change-Id: I89d0ca239e3a713979f84a77a66d6da95aad234d Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58826 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#106648 save current work when switching to other appsMert Tumer2018-08-073-4/+67
| | | | | | | | Change-Id: Ieecfad2d0127fec850f7a4f3576a77eec94926b3 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58562 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Fix floating action button disappears after closing a documentMert Tumer2018-08-071-9/+10
| | | | | | | | Change-Id: I6afc278908d2afadbf531010ab7e466b9224b9af Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58564 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#119082 Exception wrong thread on Android ViewerMert Tumer2018-08-071-1/+6
| | | | | | | | Change-Id: I58a8d104b24c7cf2d021e2dce700e25592c8a605 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58563 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Show Save document dialog when using colorpickerMert Tumer2018-08-072-0/+2
| | | | | | | | | | on Android Viewer Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: I4e46e9a4aeba991e19e85f177a8031bcecf4b9c3 Reviewed-on: https://gerrit.libreoffice.org/58370 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Rename/Delete worksheets and slides option on Android ViewerMert Tumer2018-07-319-3/+182
| | | | | | | | Change-Id: I57f379f0283ecc1a456e44f9fefcfd3b3e56a46c Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58327 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Setting visibility of menu items instead of disabling or enabling themMert Tumer2018-07-313-7/+27
| | | | | | | | | | On Android Viewer Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: I1fc21f84f5063afe3b91bf26401f9fcacc66b6c8 Reviewed-on: https://gerrit.libreoffice.org/58285 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Renamed "Font Back Color" to "Highlight Color" on Android ViewerMert Tumer2018-07-311-1/+1
| | | | | | | | Change-Id: Ia87a8091cf7ca7f15b9be7d5368f314d20421258 Signed-off-by: Mert Tumer <merttumer@outlook.com> Reviewed-on: https://gerrit.libreoffice.org/58283 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Developer ModeXimeng Zu2018-07-157-13/+268
| | | | | | | | | | | | Added an settings option to enable Developer Mode, in which you can send UNO commands from the Viewer. You can also add properties to the command. Change-Id: I76cbb55771cdd5cea89da65ddf67e48e12745b41 Reviewed-on: https://gerrit.libreoffice.org/37045 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Style tab added to Android ViewerMert Tumer2018-07-122-56/+80
| | | | | | | | | This is a base change, further implementations may be added Change-Id: I8aa5b5314f2b1e93821baf3da3e44803904f57fa Reviewed-on: https://gerrit.libreoffice.org/57249 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#118622 fix unhandled exception when selecting remove serverMert Tumer2018-07-121-8/+14
| | | | | | | Change-Id: I5f0f9a1ed4a4e0a62555a33209296128572c4ffb Reviewed-on: https://gerrit.libreoffice.org/57159 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#118618 fix document browser doesnt list all documentsMert Tumer2018-07-121-2/+2
| | | | | | | Change-Id: I70aa1eb2bf08d3fa82a5ab86543198a263729ac9 Reviewed-on: https://gerrit.libreoffice.org/57150 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* tdf#118585 Fix exception when closing Android ViewerMert Tumer2018-07-121-0/+1
| | | | | | | Change-Id: I9d87168dce4b5c6e503d41366aa35d5dadf89dae Reviewed-on: https://gerrit.libreoffice.org/57081 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Fix remote server can not be selected on Android ViewerMert Tumer2018-07-121-1/+1
| | | | | | | Change-Id: Ic08253c3732f963eec6f97e6bd0530f95eb2916a Reviewed-on: https://gerrit.libreoffice.org/57072 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* Fix endless loop when selecting remote server on Android ViewerMert Tumer2018-07-121-6/+6
| | | | | | | | | | | Switching document provider when exception thrown casues endless loop. Signed-off-by: Mert Tumer <merttumer@outlook.com> Change-Id: Ie34080abdf7b8d6a48cd96785700b7bd91910512 Reviewed-on: https://gerrit.libreoffice.org/57070 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
* android: simplify boolean statementChristian Lohmaier2018-06-301-3/+2
| | | | Change-Id: I92cdccfe7b97d9baf29b1155990a38b26579e365
* android: get rid of unsafe/unchecked castsChristian Lohmaier2018-06-302-28/+20
| | | | Change-Id: I95bb78c563589501d756fdd4dd6529b9eee0f4ac
* android: suppress deprecation warning for Html.toHtml(String)Christian Lohmaier2018-06-301-1/+4
| | | | | | | deprecated since 24/Nougat, but we still want to support devices running Marshmallow and older.. Change-Id: Iedcf8a56028eff44134b548dc07a89573cb2210d
* android: bump gradle, gradle-plugin, support libary & target versionsChristian Lohmaier2018-06-302-13/+10
| | | | Change-Id: I971f02c624a19ec58539738f5e736a986b5ba0d6
* tdf#117777 fix show hidden files/folders option on AndroidMert Tümer2018-06-011-1/+11
| | | | | | | | Change-Id: Ic80ca7f8ebb93f78a58cc0ad778db90deb0c51ba Signed-off-by: Mert Tümer <merttumer7@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/54771 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* [Pardus] tdf#106371 ability to insert/delete tables Android ViewerMert Tümer2018-06-016-0/+348
| | | | | | | | | | This patch is sponsored by ULAKBIM/PARDUS project. Signed-off-by: Mert Tümer <merttumer7@gmail.com> Change-Id: I2d160b53ad432be96deb6f13c0d91a6053744dc8 Reviewed-on: https://gerrit.libreoffice.org/54803 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* Added Storage permission handling on the Android ViewerMert Tümer2018-06-017-17/+55
| | | | | | | | | | | | This patch prevents document browsing and creating a new document from happening when write external storage permission is denied by the user. Signed-off-by: Mert Tümer <merttumer7@gmail.com> Change-Id: Idf39a291a15a9dac023f4318329baed1baa90e14 Reviewed-on: https://gerrit.libreoffice.org/52868 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* android janitor... convert chained ifs to switch statementChristian Lohmaier2018-05-163-24/+36
| | | | Change-Id: I9929bd077a33349a6e57c3a427df7e77b3007c88
* android janitor... remove unnecessary imports, variables and castsChristian Lohmaier2018-05-166-9/+4
| | | | | | also no need to wrap primitives Change-Id: I6e22b2bfdb2b8b366dd6f50d995b573c770f0b5a
* tdf#96795: Use locale-sensitive sorting in Android viewerMert Tümer2018-04-191-2/+5
| | | | | | | | Change-Id: I98edec9f57f1bf0576e16a1ba3c0e023d6d0b6ed Signed-off-by: Mert Tümer <merttumer7@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/52494 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* tdf#116820 The viewer does't show recent filesMert Tümer2018-04-131-0/+2
| | | | | | | | Change-Id: I8a4d4f2cb78a1fa772936e263e1aa3975e8f89ff Signed-off-by: Mert Tümer <merttumer7@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/52458 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* tdf#116842 fix crashing when adding slides or spreadsheetsMert Tümer2018-04-131-4/+6
| | | | | | | | Change-Id: I957133e468fe43edd0ed1d76cdd180f20d6a86ac Signed-off-by: Mert Tümer <merttumer7@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/52493 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
* add hint on how to use lldb pretty-printers form within android studioChristian Lohmaier2018-04-071-0/+3
| | | | Change-Id: Ia028dd64c04d1de95e42ea2b89ee2bca689a2390
* prevent crash on invalid bitmap sizeChristian Lohmaier2018-04-071-2/+7
| | | | | | | | sometimes the width and height cannot be determined properly (and 0 in that case), and this causes IllegalArgumentException when trying to create the Bitmap Change-Id: Id001c40d0febf9e85b4db5c0318a77e1f880353a
* tdf#116152 android.net.Uri.encode(string) is even better...Christian Lohmaier2018-04-071-8/+2
| | | | Change-Id: Ib779cec33de660e2c01843b76c9987aa774fba29