Commit Graph

366 Commits (master)

Author SHA1 Message Date
Tor Lillqvist 3ad5ca0167 Bump CFBundleVersion
Change-Id: I0f7aada06d3161abb012292d54d326128411e233
2018-11-28 19:07:04 +02:00
Tor Lillqvist 3c046b0548 Add --with-iosapp-fonts option to bundle some 3rd-party fonts in the app
Propagate the font files found in that folder to Info.plist and to the
app bundle.

Change-Id: I2c38b0d7d21dbdf3b7ffd3b4ae98e47b9ad74758
2018-11-27 17:06:22 +02:00
Tor Lillqvist 4f37dcaa81 Include the Liberation fonts
Change-Id: I016e158c650a8ae57b7e0b17a763f997d5532abc
2018-11-27 15:33:29 +02:00
Tor Lillqvist a2e1f383b9 Implement document saving properly to make saving to NextCloud work
Even if the LO core code, as called by the Online code, already has
saved the document back to the file from which it was loaded, in order
for a file provider extension like NextCloud to notice that, it is
essential to call saveToURL:forSaveOperation:completionHandler:. The
contentsForType:error: method can just return a NSFileWrapper for the
same, already saved, file, though.

Change-Id: Ic063c8603ca38930083866d973e500336cad517e
2018-11-27 13:55:39 +02:00
Tor Lillqvist 8dee781542 Use the right version name and git hash for the iOS app
Propagate the information to the otherwise pre-canned iOS version of
config.h, too.

Change-Id: Ia459a20b529e2ea02b4e00894521a085a8806d57
2018-11-27 01:05:04 +02:00
Tor Lillqvist fe3832f3c6 Use --with-iosapp-name to set the name displayed in the Help>About dialog
Change-Id: I04b0e7c152ee69b038ec30549c203a54eecf4780
2018-11-27 00:35:57 +02:00
Tor Lillqvist b0673178b8 Bump CFBundleVersion
Change-Id: Ie2e9349c99bd9f6f3e87191469c6ee39f3fb92ca
2018-11-26 19:47:32 +02:00
Tor Lillqvist 24e09f4edd Bump CFBundleVersion
Change-Id: I0ca058c14a78074eafaf585373694f36164146e0
2018-11-26 19:07:33 +02:00
Tor Lillqvist a9f6d57222 Correct a few leftover mentions of "Mobile/Mobile" to "ios/Mobile"
Change-Id: Ie2e44bda495f3a08fc91c8d9fe40f9d1d9607283
2018-11-23 11:26:57 +02:00
Tor Lillqvist a6eadf4e81 Move the iOS app to the ios folder
Change-Id: I46e0722b027e93f90b5cd6a74cd7dc46f6c8cea2
2018-11-22 16:50:57 +02:00
Tor Lillqvist ab54f21a54 Adapt to change in core: paintTile() now takes a buffer pointer also on iOS
Makes the code here a little bit simpler.
2018-10-10 16:31:38 +03:00
Tor Lillqvist 51035056d6 LibreOfficeKit wants the tile pixmap bytes to be in BGRA order in memory
To get that with CoreGraphics on iOS we need to use also
kCGImageByteOrder32Little in the CGBitmapContextCreate() call,
otherwise the bytes will be in ARGB order in memory.

Also, yes, we do need to turn the coordinate system upside-down from
the top left corner.
2018-10-05 19:01:19 +03:00
Tor Lillqvist f3786f5cb7 Pass correct argument on iOS as pBuffer to lok::Document::paintTile()
On iOS it shouldn't actually be pointer to a pixel char buffer, but a
craphics context reference. (This is how it has been since the
experimental TiledLibreOffice app, maybe five years ago? Sadly it
wasn't documented in the LibreOfficeKit include file. But it is how
LibreOfficeLight used the API, too.)

In TiledLibreOffice we rendered tiles directly into the CALayer of the
view. In this Online-based app we of course do render tiles into pixel
char buffers, just like in real Online, but we need to create bitmap
graphics contexts for them and pass that to paintTile().

Now I get white tiles, not totally zero-filled ones. But still no
document contents rendered.

I don't yet want to change the pBuffer parameter to actually be a
buffer pointer on iOS, too, like on other platforms. Also, changing it
will mean the LibreOfficeLight app would need changing, too, and I
don't feel like doing that. But ideally, sure, that should be done.
2018-09-21 10:29:56 +03:00
Tor Lillqvist 95eb849217 Still more iOS app and related Online C++ code hacking
Re-think the plumbing between the different parts of the C++ Online
code. Do try to have it work more like in real Online on all but the
lowest socket level. Except that we don't have multiple processes, but
threads inside the same process. And instead of using actual system
sockets for WebSocket traffic between the threads, we use our own
FakeSocket things, with no WebSocket framing of messages.

Reduce the amount of #ifdef MOBILEAPP a bit also by compiling in the
UnitFoo things. Hardcode that so that no unit testing is ever
attempted, though. We don't try to dlopen any library.

Corresponding changes in the app Objective-C code. Plus fixes and
functionality improvements.

Now it gets so far that the JavaScript code thinks it has the document
tiles presented, and doesn't crash. But it hangs occasionally. And all
tiles show up blank.

Anyway, progress.

Change-Id: I769497c9a46ddb74984bc7af36d132b7b43895d4
2018-09-19 11:31:18 +03:00
Tor Lillqvist b59d160a08 Intermediate commit of work in progress on an iOS app
The app is unimaginatively called "Mobile" for now.

Runs but crashes pretty quickly after loading the document by the LO
core. Will need some heavy changes to get a ClientSession object
created in there, too, to handle the (emulated) WebSocket messages
from the JavaScript. It would then handle some of these messages
itself, and forwards some to the ChildSession, which in this case is
in the same process. Now the messsages from the JavaScript go to a
ChildSession, which is wrong. As the assertion says, "Tile traffic
should go through the DocumentBroker-LoKit WS"
2018-09-12 18:32:05 +03:00
Tor Lillqvist 3131dc9d10 Add manually created config.h for iOS 2018-08-29 20:34:34 +03:00