Commit graph

91 commits

Author SHA1 Message Date
Miklos Vajna
6890d2fdaa ios: fix opening hyperlinks
This was added in commit 2174206de1 (android:
Don't hang after returning from a hyperlink., 2020-02-14), but the new command
was only handled on Android. Handle HYPERLINK on iOS, too.

Change-Id: I8c942c1a64c8a52462a749989e312d0d9899a841
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90917
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-03-23 17:33:45 +01:00
Tor Lillqvist
16fbe5441d Bump the internal iOS app version number to 4.2.3
Change-Id: I083ed1dd96aba75da1fc6d6d47c8cbd7b1d62a24
2020-03-23 12:55:14 +02:00
Tor Lillqvist
d474f06040 Force portrait for the moment also for iPhone in the iOS app
Change-Id: I1def28e7969cea753e7fc36094fe6514c17d61af
2020-03-20 16:03:19 +02:00
Andras Timar
a66083de9b Try to delete language information from templates...
... in order to have languages agnostic templates.
fo:language="en" fo:language="US" was removed from styles.xml

Change-Id: I680809d33cb902fc447ea5393d7f8dad3d83cbfc
2020-03-14 22:29:17 +01:00
Tor Lillqvist
2004a0198d Bump the internal iOS app version number to 4.2.2
Otherwise, when one validates (or uploads) a new build, even just for
TestFlight purposes, one gets an error in Xcode: "The value for key
CFBundleShortVersionString [4.2.1] in the Info.plist file must contain
a higher version than that of the previously approved version
[4.2.1]."

(cherry picked from commit 585cf6be86c6535a9cf6b2ab45e9e606788433d2)

Change-Id: I2ea1342980384a8eb81312734747be5e686da347
2020-03-11 14:08:36 +02:00
Andras Timar
fdc05239af Remove hardcoded tab name Sheet1 from iOS spreadsheet template
Change-Id: I0916e968b33395cf682bf4ddc313c959526e7adf
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89171
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
2020-02-21 11:34:21 +01:00
Tor Lillqvist
624b42d58a Hackaround for on-screen keyboard problem
We want to be able to force the on-screen keyboard to be displayed
(when there is no external hardware keyboard) from our JavaScript.

Change-Id: I0678d84ca941a03316ffb68cfd9c3e93a6ea7e57
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/89023
Tested-by: Tor Lillqvist <tml@collabora.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-02-19 15:17:56 +01:00
Michael Meeks
6bdf561049 Share the Kit environment setup code.
Particularly configuration layers so we can tweak mobile config
easily.

Add core source files from configmgr for breakpointing convenience in
the iOS project. Add loolkitconfig.xcu to the iOS app bundle. Use
${BRAND_BASE_DIR} instead of a compile-time LOOLWSD_CONFIGDIR literal
on iOS (because there is no compile-time constant path to the app
bundle). No "registry" directory directly in the app bundle any longer
on iOS, a corresponding change in core.git moved that stuff to be
under "share", like on other platforms.

Change-Id: I6672efc0505abf27297c4758118a20992b10ceb3
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88765
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2020-02-17 14:49:06 +01:00
Tor Lillqvist
58205c9818 Bump version to 4.2.1
As a build of 4.2 has been approved for release in the App Store, we must bump
this before any new build can be uploaded, even just for TestFlight.

Change-Id: I60de542eaf6d10776ad287c8c9c5d36e0feed70c
2020-02-13 16:14:59 +02:00
Jan Holesovsky
ad32888d7c mobile: Unify the mutex usage that protects the main lokit thread.
Effectively both approaches were doing the same thing, let's unify to
the iOS way to minimize the platform-specific code.

Change-Id: I11290410a536c26db054ffcb87e3b64cc2a11c07
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/84589
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
2020-02-06 09:44:26 +01:00
Tor Lillqvist
56d310636d tdf#129380: Don't show the "shortcut bar" if a hardware keyboard is used
Change-Id: If1138185e52b7240ff6190ddf3f7af01d2a47115
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/87769
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2020-01-31 15:52:27 +01:00
Tor Lillqvist
26860d8f35 Add public.content to the UTTypeConformsTo arrays of the exported UTIs
The Nextcloud app looks for that.

Change-Id: I91d26f7dced0b0ca35275db7ebabf322e50e734d
(cherry picked from commit 481f498dfb31ad364c4dfae179c1a2baef8118ab)
2019-11-21 10:24:17 +02:00
Tor Lillqvist
9d6c174462 tdf#128577: Close an already open document when asked to open a new one
Add a "singleton" class method to DocumentViewController to return the
(as for now) singleton DocumentViewController.

Change-Id: I0b8a8def558cfe7f9469b6062a86311dfa63f549
Reviewed-on: https://gerrit.libreoffice.org/82007
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 2807f907d947549a17c5bae586b85d412d552a09)
Reviewed-on: https://gerrit.libreoffice.org/82021
2019-11-04 15:25:54 +01:00
Tor Lillqvist
ed4558001f Set CFBundleShortVersionString to 4.2
Change-Id: I9115a9dc571c1b27e6b80181ec38732cb91ec799
Reviewed-on: https://gerrit.libreoffice.org/82019
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-11-04 15:24:41 +01:00
Tor Lillqvist
0c9bc2159b Add LSSupportsOpeningDocumentsInPlace
Probably a good idea, although doesn't seem to have much effect? At
least not on tdf#128577.

Change-Id: I7b66a2e9ba44bd4cef583c0861883edfae11eb1d
Reviewed-on: https://gerrit.libreoffice.org/82006
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 2990203dff05f977dfdc77b493deca051b54ca79)
Reviewed-on: https://gerrit.libreoffice.org/82020
2019-11-04 15:24:22 +01:00
Andras Timar
2efdb2016a Remove Lotus WordPro support
... because lotuswordpro filter is not present in MPLv2-only core builds

Change-Id: I100e886273f8b7fd38887576c2d29fad4c69b2e7
Reviewed-on: https://gerrit.libreoffice.org/79683
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit d7813989913e95cefc8484d6d2af965ed5752588)
2019-10-25 14:39:29 +03:00
Tor Lillqvist
fdb91bf15e tdf#123733: Keep the WebKit view until the lokit_main thread has finished
Otherwise, if you close a document before it has been rendered
completely, the plumbing of threads and FakeSocket connections gets
confused and opening the next document hangs or runs into an assertion
failure. This typically happened for large presentations where
rendering the slide previews takes significant time.

Change-Id: I0f586bec021c4c045a129b3f179ddb3942915c58
Reviewed-on: https://gerrit.libreoffice.org/80882
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-10-16 13:20:38 +02:00
Tor Lillqvist
07986199ad Just call lok_init_2() and LibreOfficeKit::setLanguageTag() once on iOS
... when the app starts.

Change-Id: Icac4a9e1074fb6c5f3c9b5282e20a4513717a323
Reviewed-on: https://gerrit.libreoffice.org/80881
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-10-16 13:16:42 +02:00
Tor Lillqvist
1cf3bec303 tdf#123741: Call LibreOfficeKit::setLanguageTag() also when loading a template
Sadly I have no understanding why not doing that caused such a
mysterious end result. But I am glad I thought of trying this simple
thing before spending any more time trying to understand what is going
on.

Change-Id: I129f8fffa32fa087e21c444f9657394de0e255a1
2019-10-10 19:35:30 +03:00
Tor Lillqvist
39ddc5242d tdf#126974: When we are about to be killed, just exit bluntly
Letting the system call exit() will cause destructors of global C++
objects to be called, and doing that at an arbitrary point in time
will cause a crash. So just call std::_Exit() in the AppDelegate's
applicationWillTerminate: method.

Change-Id: I15d7a761db931a6b7aed588bb407fa0d3b4a9465
(cherry picked from commit 4c2cb838ff5fa2485ec74db11e239883a53f7ff9)
2019-10-09 14:30:20 +03:00
Tor Lillqvist
0e49800418 tdf#127942: Avoid the WKWebView popup with "Share...", "Add to Photos" etc
Seems that setting allowsLinkPreview to NO for the WKWebView affects
this functionality, too. Was just an educated guess, and it worked!
Single-line fixes to what initially seems like a hard problem are the
best.

Change-Id: Ic88bf53b883d857338c0316188e079e6797a4d76
Reviewed-on: https://gerrit.libreoffice.org/80208
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit c7e38e6348a98c0a6fcaf20876c57cb01d56f4cc)
2019-10-05 11:41:18 +03:00
Tor Lillqvist
a04ddab0bf Set the Presentation of the Document View Controller to fullScreen
Otherwise, on iPadOS 13.1, the document will show up in a view that
doesn't cover all the screen, which looks weird, and also makes our
JavaScript code not realize it is on a tablet, so it uses the
phone-style UI, with toolbar at the bottom, no permanently visible
menu bar etc.

This also contains some other changes made by Xcode to the storyboard
file. The only intentional change was changing the Presentation to
"Full Screen", which added a modalPresentationStyle attribute to the
viewController element of the Document View Controller scene.

Change-Id: If33b53981ce40948c54b9adfe791b88a24c4e97d
Reviewed-on: https://gerrit.libreoffice.org/79558
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
(cherry picked from commit 0ee9b408cd37c58a769cdd0775e1b1f072e0b6e0)
Reviewed-on: https://gerrit.libreoffice.org/79565
2019-09-25 18:00:30 +02:00
Tor Lillqvist
02746c398a Add Lotus WordPro Document, the .lwp extension
Note that this is just one step, work is needed elsewhere, too, for
the app to actually manage to open a .lwp document correctly. (Desktop
Collabora Office opens such documents without problems.) As we can't
save this format, set the CFBundleTypeRole to "Viewer".

Change-Id: I5f818bf915a1a9ee607a97424b2437655f8a9d79
(cherry picked from commit 38e6ace9a6d2dfe848a185c97d955a06493cd21d)
Reviewed-on: https://gerrit.libreoffice.org/79384
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-09-23 10:44:30 +02:00
Tor Lillqvist
cc87beb06b The UTExportedTypeDeclarations for fodt was missing its UTTypeDescription
Change-Id: I1b35b1c1663e59409662eda905c351c7c54ee18a
(cherry picked from commit 0a134d888be57dc32af86aeb1f7a84629484f2b3)
Reviewed-on: https://gerrit.libreoffice.org/79383
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-09-23 10:44:10 +02:00
Tor Lillqvist
f9ed656c19 Fix some indentation glitches and add some comments
Change-Id: I352be04f9ca464f6306269da7263ba7f0a9c490e
(cherry picked from commit 8343d6ac02f13ca4c1532bf4817df03ed2e19e5c)
Reviewed-on: https://gerrit.libreoffice.org/79382
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-09-23 10:43:53 +02:00
Tor Lillqvist
94799fbce3 Try to unify the list of localisations with what I use to build LO core
(In the tree where I building the core branch used for the app as
distributed, that is.)

Change-Id: Ice622c79ff9c7f56f4e58f68fe65e5d89696681b
(cherry picked from commit 21dc19f7a28174fbd5eabd0f60b6f1cedcafd89c)
Reviewed-on: https://gerrit.libreoffice.org/79381
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-09-23 10:43:01 +02:00
Tor Lillqvist
d1087aec26 Prevent the user from zooming the WebView
Does not fix tdf#125383, though. The WebView still can become zoomed
by manipulating a tunnelled dialog as described in the bug report's
comments.

Change-Id: I9af8d826c58e2065e54b42bc35f74436b0d34a90
2019-06-11 17:33:48 +03:00
Tor Lillqvist
f94a00ddc9 No need for the emptyTileCache-related setting string here either now
The disk tile cache is now gone also in the collabora-online-4 branch,
so no need to keep the string here in master just to be translated.

Change-Id: Ibd496bee738f64152a5ca7a9634e439289b0cd80
2019-06-10 13:14:12 +03:00
Tor Lillqvist
13e99e83c3 Improve wording for NSCameraUsageDescription
Change-Id: If8fb70b2c87e6abc00cc706cb81c561e28edc254
2019-06-03 17:19:57 +03:00
Tor Lillqvist
c2c7d098e5 Typo
Change-Id: Ic5b149f7d3f51c0095ffa975d477df0ed0f183d7
2019-06-03 17:19:52 +03:00
Tor Lillqvist
75347f27e7 Add NSPhotoLibraryUsageDescription, too
Change-Id: Ib46c36a18e84c2b88bed7aef3ec8235b32eb5332
2019-06-03 17:19:46 +03:00
Tor Lillqvist
dc1f9a9955 Use a more specific NSCameraUsageDescription
Change-Id: Idc780a3b5dacf0bed5b8c49f758f3fc5696d7338
2019-06-03 17:19:40 +03:00
Tor Lillqvist
a9dabea550 Add Visio Document, extensions vdx, vsd, vsdm, and vsdx
Together with two one-line changes to core, Visio files now open
(read-only) in the app.

Change-Id: I7dde2f7a8d1960c8fb9154c23e489ccc00a17b2d
2019-05-31 12:52:44 +03:00
Tor Lillqvist
ae88fc1052 tdf#124930: Look for settings also in the managed configuration thing
Could not test whether it works, but it is not complicated, so
hopefully yes. Followed the examples from
https://developer.apple.com/videos/play/wwdc2013/301/ and
https://developer.apple.com/library/archive/samplecode/sc2279/Introduction/Intro.html .

The Mobile.plist file is a sample only.

Note that here in the master branch there is no on-disk tile cache, so
no setting for emptying that or not.

Change-Id: I0b8cf8d35930cdf60808d14361378f050cf41037
2019-05-30 11:45:02 +03:00
Tor Lillqvist
058b68fc3e tdf#122281: Prevent the WebView from scrolling
It is presumably possible to do it in the JavaScript, too, and then
the same problem would go away for normal Online viewed in Mobile
Safari, too. But I couldn't figure out how. Googling turned up various
advice that suggested using '-webkit-overflow-scrolling: auto;' for
the body of the page but it didn't seem to help. (I tried adding that
to the style attribute of the body element in loleaflet.html.m4.)

Change-Id: Iac3487a73eca218130583dde9decdb89c316c1fc
2019-05-20 16:25:52 +03:00
Tor Lillqvist
d9e5a47058 Introduce new flag to speed up shutdown of the Online plumbing in the iOS app
Spent hours on trying to cleverly use the existing TerminationFlag
(with minor modifications to the code that checks it, and some
additional code to set and reset it), but could not get it to work.
This is simpler, but sure, using a global variable is ugly of course.
At least the new MobileTerminationFlag is very specific in semantics
and only used in the mobile apps.

Change-Id: I0775fdfa7880750ca12c6fd7ec41d3d3ceb2f0ad
2019-05-16 11:44:41 +03:00
Tor Lillqvist
f21665f2ac tdf#124981: Fix a few object leaks
The pointer to the DocumentViewController object in the Document class
can be a weak property. This avoids a circular reference.

When the DocumentViewController is being dismissed, remove the script
message handlers and remove the view from its superview. Also, set the
webView property to nil.
2019-04-26 18:04:10 +03:00
Tor Lillqvist
bf520d5fa5 Log the timestamp of the template file at its site and of its cached version 2019-04-26 12:04:28 +03:00
Tor Lillqvist
db9208d364 tdf#124918: Don't crash on invalid URLs in the template list file 2019-04-26 12:04:20 +03:00
Tor Lillqvist
d550944053 tdf#124918: More logging in template download error situations 2019-04-26 12:04:09 +03:00
Tor Lillqvist
4e2ad4d2bc tdf#124918: Allow empty lines in the template list file 2019-04-26 12:04:01 +03:00
Tor Lillqvist
824834dfa8 Turn on Unipoll for the iOS app, too
Change-Id: Ib0b7ac53b7c936e75446004c4581ace415b1dd5c
2019-04-24 13:24:53 +03:00
Tor Lillqvist
4cfd2e8744 Bin three unnecessary translatable strings that don't occur anywhere
They for some reason appear when one adds a Settings Bundle to the
project using Xcode, but are not needed, as far as I see

(I already removed a fourth when I added the Finnish localisation.)
2019-04-12 23:06:29 +03:00
Tor Lillqvist
bf676c8643 Add a string for translation from the collabora-online-4 branch
... even if it doesn't occur here in master, as the on-disk tile cache is gone.

Change-Id: I1ab5d5edde0386ca4c6c452b1cf4292c30a7e3df
2019-04-12 22:46:33 +03:00
Tor Lillqvist
095c4de38b Experiment with adding localisation of the Settings.bundle
Add a sample Finnish localisation. The localised Root.strings files
are supposed to come from some Pootle-based workflow eventually.

Apparently there is some new and improved way to do localisation in
Xcode 10, "Base localisation", but our project file was created in an
earlier Xcode version and I couldn't figure out how to do it the new
way for Settings.bundle, so I manually added the fi.lproj directory.

I changed the English Root.strings file to be in UTF-8 instead of
UTF-16 (and it still works). (The Finnish one is UTF-8, too.) I added
the strings to be translated from Root.plist into it. That is the file
that should be used as a base for Pootle work, no need to extract
strings from the Root.plist, I think.

Change-Id: I80f1c3199ee14678bb1438e218eb9c2475cd66f8
2019-04-12 21:26:37 +03:00
Jan Holesovsky
ea659b3d99 Use the app name more generally, not only on iOS.
Preparation for using it on Android too.

Change-Id: Iee7778b2625a02a98daff5df87c39f4ab1d18144
Reviewed-on: https://gerrit.libreoffice.org/70651
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2019-04-12 13:44:40 +02:00
Tor Lillqvist
e2f48faf14 tdf#123742: Fix lifecycle issues for the "Office" object
Because of the use of std::shared_ptr in lokit_main(), the (singleton)
lok::Office (or LibLibreOffice_Impl) object gets destroyed when
lokit_main() exits. We shouldn't keep our own copy of a raw pointer to
it around. Just call lok_init_2() to get the pointer where we need it.
We don't need to call lok_init_2() already in -[AppDelegate
application:didFinishLaunchingWithOptions:].
2019-03-28 17:28:26 +02:00
Tor Lillqvist
3264f39d48 Add all fonts from instdir/share/fonts
Change-Id: I02765079e34cd9cbc96aea9cf2b72f432473ad0a
2019-03-25 19:17:21 +02:00
Tor Lillqvist
cbbb2496ca Truncate the JS expression for logging
Change-Id: Ia287f5e26a80bdf0547128b8b2c9c9aff2ef89cd
2019-03-22 16:37:32 +02:00
Tor Lillqvist
25c8ed7897 For iOS, generate the data: URLs for the PNG tiles already in the Online code
(What we cache is also the textual data: URLs even if we store them
using .png file names.)

This avoids the current back-and-forth-encoding: First we
base64-encode the complete binary "tile:" message (one text line
followed by a newline and the binary PNG) to pass to WebKit, then in
the JavaScript snippet passed to WebKit we decode the base64 and turn
it into an ArrayBuffer, and then we unpack the ArrayBuffer and encode
the PNG part to use as a data: URL.
2019-03-22 16:21:51 +02:00