tdf#89705: provides callback for url handling on android.
Change-Id: Ie28cd768519fbdc305f98e1d764d05bd209951ca
This commit is contained in:
@@ -40,6 +40,8 @@ public class Document {
|
|||||||
public static final int CALLBACK_TEXT_SELECTION_START = 3;
|
public static final int CALLBACK_TEXT_SELECTION_START = 3;
|
||||||
public static final int CALLBACK_TEXT_SELECTION_END = 4;
|
public static final int CALLBACK_TEXT_SELECTION_END = 4;
|
||||||
public static final int CALLBACK_CURSOR_VISIBLE = 5;
|
public static final int CALLBACK_CURSOR_VISIBLE = 5;
|
||||||
|
// LOK_CALLBACK_GRAPHIC_SELECTION = 6
|
||||||
|
public static final int CALLBACK_HYPERLINK_CLICKED = 7;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Text selection types
|
* Text selection types
|
||||||
|
@@ -5,6 +5,8 @@ import android.graphics.PointF;
|
|||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
import org.libreoffice.kit.DirectBufferAllocator;
|
import org.libreoffice.kit.DirectBufferAllocator;
|
||||||
import org.libreoffice.kit.Document;
|
import org.libreoffice.kit.Document;
|
||||||
@@ -411,10 +413,24 @@ public class LOKitTileProvider implements TileProvider, Document.MessageCallback
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void messageRetrieved(int messageID, String payload) {
|
public void messageRetrieved(int messageID, String payload) {
|
||||||
|
/**
|
||||||
|
* Handles messages that do not require entering editing mode.
|
||||||
|
*/
|
||||||
|
switch (messageID) {
|
||||||
|
case Document.CALLBACK_HYPERLINK_CLICKED:
|
||||||
|
if (!payload.startsWith("http://") &&
|
||||||
|
!payload.startsWith("https://"))
|
||||||
|
payload = "http://" + payload;
|
||||||
|
|
||||||
|
Intent url_intent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
url_intent.setData(Uri.parse(payload));
|
||||||
|
LibreOfficeMainActivity.mAppContext.startActivity(url_intent);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!LOKitShell.isEditingEnabled()) {
|
if (!LOKitShell.isEditingEnabled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mInvalidationHandler.processMessage(messageID, payload);
|
mInvalidationHandler.processMessage(messageID, payload);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -94,7 +94,13 @@ typedef enum
|
|||||||
*
|
*
|
||||||
* Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
|
* Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
|
||||||
*/
|
*/
|
||||||
LOK_CALLBACK_GRAPHIC_SELECTION
|
LOK_CALLBACK_GRAPHIC_SELECTION,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* User clicked on an hyperlink that should be handled by other
|
||||||
|
* applications accordingly.
|
||||||
|
*/
|
||||||
|
LOK_CALLBACK_HYPERLINK_CLICKED
|
||||||
}
|
}
|
||||||
LibreOfficeKitCallbackType;
|
LibreOfficeKitCallbackType;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user