[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/UnitConverter.java |4 android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java |5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) New commits: commit b70afa9ffd6408e1611ddd94e1d77163660d445b Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Dec 20 17:26:34 2017 -0600 Fix adjust width/height behavior In Android Viewer, fixed adjust width/height behavior due to change in UNO command syntax. Change-Id: Id78cb1a0fc546f251734dd538bf48a8f4e121bed Reviewed-on: https://gerrit.libreoffice.org/46871 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/UnitConverter.java b/android/source/src/java/org/libreoffice/UnitConverter.java index e0dcfb86b93f..f668021b0cd7 100644 --- a/android/source/src/java/org/libreoffice/UnitConverter.java +++ b/android/source/src/java/org/libreoffice/UnitConverter.java @@ -9,4 +9,8 @@ public class UnitConverter { public static float pixelToTwip(float input, float dpi) { return (input / dpi) * 1440.0f; } + +public static float twipsToHMM(float twips) { +return (twips * 127 + 36) / 72; +} } diff --git a/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java b/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java index fbdb429f2d10..a6f8cb17c1cb 100644 --- a/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java +++ b/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java @@ -16,6 +16,7 @@ import org.mozilla.gecko.gfx.ImmutableViewportMetrics; import static org.libreoffice.SearchController.addProperty; import static org.libreoffice.UnitConverter.pixelToTwip; +import static org.libreoffice.UnitConverter.twipsToHMM; public class AdjustLengthLine extends CommonCanvasElement { @@ -82,11 +83,11 @@ public class AdjustLengthLine extends CommonCanvasElement { JSONObject rootJson = new JSONObject(); if (mIsRow) { addProperty(rootJson, "Row", "long", String.valueOf(mIndex)); -addProperty(rootJson, "Height", "unsigned short", String.valueOf(documentDistance.y > 0 ? documentDistance.y : 0)); +addProperty(rootJson, "RowHeight", "unsigned short", String.valueOf(Math.round(documentDistance.y > 0 ? twipsToHMM(documentDistance.y) : 0))); LOKitShell.sendEvent(new LOEvent(LOEvent.UNO_COMMAND, ".uno:RowHeight", rootJson.toString())); } else { addProperty(rootJson, "Column", "long", String.valueOf(mIndex)); -addProperty(rootJson, "Width", "unsigned short", String.valueOf(documentDistance.x > 0 ? documentDistance.x : 0)); +addProperty(rootJson, "ColumnWidth", "unsigned short", String.valueOf(documentDistance.x > 0 ? twipsToHMM(documentDistance.x) : 0)); LOKitShell.sendEvent(new LOEvent(LOEvent.UNO_COMMAND, ".uno:ColumnWidth", rootJson.toString())); } } catch (JSONException e) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/AndroidManifest.xml | 11 android/source/res/layout/toolbar_bottom.xml | 10 android/source/res/values/strings.xml| 11 android/source/res/xml/file_paths.xml|4 android/source/src/java/org/libreoffice/FormattingController.java| 208 +- android/source/src/java/org/libreoffice/LOEvent.java |1 android/source/src/java/org/libreoffice/LOKitThread.java |4 android/source/src/java/org/libreoffice/LOKitTileProvider.java |8 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java |7 9 files changed, 262 insertions(+), 2 deletions(-) New commits: commit 8d977511e3ab755da65d34a0bd618ef3c9db90c7 Author: Ximeng Zu <uzno...@yahoo.com> Date: Mon Aug 14 11:41:30 2017 -0500 tdf#106370 Android: add ability to insert pictures Added ability to insert pictures to Android Viewer. You can take photo or select photo from device or the cloud (Google photos, Dropbox). You can also compress the picture before inserting it with multiple compress grades. So far, inserting doesn't work for Writer due LO native library issues (I think). Change-Id: If6841ba04fe18585703c8b85909cf39747dbbc2f Reviewed-on: https://gerrit.libreoffice.org/41150 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/AndroidManifest.xml b/android/source/AndroidManifest.xml index c2a3656f8e92..fb51eb4b0e43 100644 --- a/android/source/AndroidManifest.xml +++ b/android/source/AndroidManifest.xml @@ -7,6 +7,7 @@ + @@ -133,6 +134,16 @@ android:value=".LibreOfficeMainActivity" /> + + + + diff --git a/android/source/res/layout/toolbar_bottom.xml b/android/source/res/layout/toolbar_bottom.xml index 1b4730d89adf..a537a52d32b9 100644 --- a/android/source/res/layout/toolbar_bottom.xml +++ b/android/source/res/layout/toolbar_bottom.xml @@ -328,6 +328,16 @@ android:paddingBottom="12dp" android:paddingTop="12dp" app:srcCompat="@drawable/ic_rect" /> + + diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index e84c496db3c5..3f6955cd7a7b 100644 --- a/android/source/res/values/strings.xml +++ b/android/source/res/values/strings.xml @@ -157,4 +157,15 @@ Cancel Please enter password + +Take Photo +Select Photo +Select Picture +No Camera Found +Smallest Size +Medium Size +Max Quality +Don\'t Compress +Do you want to compress the photo? + diff --git a/android/source/res/xml/file_paths.xml b/android/source/res/xml/file_paths.xml new file mode 100644 index ..2bbe2aef17ea --- /dev/null +++ b/android/source/res/xml/file_paths.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/android/source/src/java/org/libreoffice/FormattingController.java b/android/source/src/java/org/libreoffice/FormattingController.java index 4d36249dc6b9..0ba72cf50875 100644 --- a/android/source/src/java/org/libreoffice/FormattingController.java +++ b/android/source/src/java/org/libreoffice/FormattingController.java @@ -1,15 +1,45 @@ package org.libreoffice; +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.os.Environment; +import android.provider.MediaStore; +import android.support.design.widget.Snackbar; +import android.support.v4.content.FileProvider; import android.util.Log; import android.view.View; import android.widget.ImageButton; +import org.json.JSONException; +import org.json.JSONObject; import org.libreoffice.kit.Document; - class FormattingController implements View.OnClickListener { +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import static org.libreoffice.SearchController.addProperty; + +class FormattingController implements View.OnClickListener { private static final String LOGTAG = ToolbarController.class.getSimpleName(); +private static final int TAKE_PHOTO = 1; +private static final int SELECT_PHOTO = 2; +private static final int IMAGE_BUFFER_
[Libreoffice-commits] core.git: android/source
android/source/res/layout/activity_main.xml| 24 android/source/res/values/dimens.xml | 2 android/source/src/java/org/libreoffice/InvalidationHandler.java | 26 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 2 android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java | 54 +- 5 files changed, 106 insertions(+), 2 deletions(-) New commits: commit 4e2555b7f37172ab28d43d5aecfa52a38c0cdd65 Author: Ximeng Zu <uzno...@yahoo.com> Date: Thu Jul 20 09:17:15 2017 -0500 [Android] Add address/formula bars Added address bar and formula bar to Calc. Change-Id: I7cc7047d6d07629ab564261d294e481ae585fd29 Reviewed-on: https://gerrit.libreoffice.org/40842 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/res/layout/activity_main.xml b/android/source/res/layout/activity_main.xml index e157e23454de..9f53b4f5d3dd 100644 --- a/android/source/res/layout/activity_main.xml +++ b/android/source/res/layout/activity_main.xml @@ -35,6 +35,30 @@ + + + + + + + + diff --git a/android/source/res/values/dimens.xml b/android/source/res/values/dimens.xml index 8a153790ac69..3a3343ff56b0 100644 --- a/android/source/res/values/dimens.xml +++ b/android/source/res/values/dimens.xml @@ -11,4 +11,6 @@ 256dp 48dp 24dp +40dp +96dp diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index fbe7d96b63d6..6cd93ba51615 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -5,6 +5,7 @@ import android.graphics.PointF; import android.graphics.RectF; import android.net.Uri; import android.util.Log; +import android.widget.EditText; import org.json.JSONArray; import org.json.JSONException; @@ -98,6 +99,12 @@ public class InvalidationHandler implements Document.MessageCallback, Office.Mes case Document.CALLBACK_INVALIDATE_HEADER: invalidateHeader(); break; +case Document.CALLBACK_CELL_ADDRESS: +cellAddress(payload); +break; +case Document.CALLBACK_CELL_FORMULA: +cellFormula(payload); +break; case Document.CALLBACK_DOCUMENT_PASSWORD: documentPassword(); break; @@ -106,6 +113,24 @@ public class InvalidationHandler implements Document.MessageCallback, Office.Mes } } +private void cellFormula(final String payload) { +LOKitShell.getMainHandler().post(new Runnable() { +@Override +public void run() { + ((EditText)mContext.findViewById(R.id.calc_formula)).setText(payload); +} +}); +} + +private void cellAddress(final String payload) { +LOKitShell.getMainHandler().post(new Runnable() { +@Override +public void run() { + ((EditText)mContext.findViewById(R.id.calc_address)).setText(payload); +} +}); +} + private void invalidateHeader() { LOKitShell.sendEvent(new LOEvent(LOEvent.UPDATE_CALC_HEADERS)); } @@ -128,6 +153,7 @@ public class InvalidationHandler implements Document.MessageCallback, Office.Mes if (cellCursorRect != null) { mDocumentOverlay.showCellSelection(cellCursorRect); +moveViewportToMakeSelectionVisible(cellCursorRect); } } diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index 83f0267095a7..defd0d18476e 100644 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -742,6 +742,8 @@ public class LibreOfficeMainActivity extends AppCompatActivity implements Settin findViewById(R.id.calc_header_top_left).setVisibility(View.VISIBLE); findViewById(R.id.calc_header_row).setVisibility(View.VISIBLE); findViewById(R.id.calc_header_column).setVisibility(View.VISIBLE); +findViewById(R.id.calc_address).setVisibility(View.VISIBLE); +findViewById(R.id.calc_formula).setVisibility(View.VISIBLE); } }); } diff --git a/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java b/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java index a7ff26a5ea88..8bce80afd851 100644 --- a/android/source/src/java/org/l
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/SearchController.java | 4 ++-- android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java | 7 ++- android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java | 6 ++ android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java | 9 ++--- 4 files changed, 8 insertions(+), 18 deletions(-) New commits: commit 218ea8750827982dc325fb0f0daa6d9f4b2dc044 Author: Ximeng Zu <uzno...@yahoo.com> Date: Sun Aug 20 18:15:46 2017 -0500 [Android] Clean up util func with Calc dev Removed redundant util functions addProperty and twipToPixel in several Calc related classes. Change-Id: I169be2edf74e662d5c3e3fcbd80265e9a694598d Reviewed-on: https://gerrit.libreoffice.org/41372 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/SearchController.java b/android/source/src/java/org/libreoffice/SearchController.java index 14782a0a95ed..09652e9958be 100644 --- a/android/source/src/java/org/libreoffice/SearchController.java +++ b/android/source/src/java/org/libreoffice/SearchController.java @@ -7,7 +7,7 @@ import android.widget.ImageButton; import org.json.JSONException; import org.json.JSONObject; -class SearchController implements View.OnClickListener { +public class SearchController implements View.OnClickListener { private LibreOfficeMainActivity mActivity; private enum SearchDirection { @@ -38,7 +38,7 @@ class SearchController implements View.OnClickListener { } } -private void addProperty(JSONObject json, String parentValue, String type, String value) throws JSONException { +public static void addProperty(JSONObject json, String parentValue, String type, String value) throws JSONException { JSONObject child = new JSONObject(); child.put("type", type); child.put("value", value); diff --git a/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java b/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java index f0120bcbb5dc..fbdb429f2d10 100644 --- a/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java +++ b/android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java @@ -14,7 +14,8 @@ import org.libreoffice.LibreOfficeMainActivity; import org.libreoffice.overlay.CalcHeadersView; import org.mozilla.gecko.gfx.ImmutableViewportMetrics; -import static org.libreoffice.overlay.CalcHeadersView.addProperty; +import static org.libreoffice.SearchController.addProperty; +import static org.libreoffice.UnitConverter.pixelToTwip; public class AdjustLengthLine extends CommonCanvasElement { @@ -98,8 +99,4 @@ public class AdjustLengthLine extends CommonCanvasElement { mStartScreenPosition = new PointF(position.left, position.top); mIndex = 1 + mCalcHeadersView.getIndexFromPointOfTouch(new PointF(position.centerX(), position.centerY())); } - -private static float pixelToTwip(float input, float dpi) { -return (input / dpi) * 1440.0f; -} } diff --git a/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java b/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java index 954277c20ed2..78a329adfe94 100644 --- a/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java +++ b/android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java @@ -25,6 +25,8 @@ import org.mozilla.gecko.gfx.LayerView; import java.util.ArrayList; +import static org.libreoffice.UnitConverter.twipToPixel; + public class CalcHeadersController { private static final String LOGTAG = CalcHeadersController.class.getSimpleName(); @@ -198,10 +200,6 @@ public class CalcHeadersController { return null; } -private float twipToPixel(float input, float dpi) { -return input / 1440.0f * dpi; -} - public void showHeaderSelection(RectF cellCursorRect) { mCalcRowHeadersView.setHeaderSelection(cellCursorRect); mCalcColumnHeadersView.setHeaderSelection(cellCursorRect); diff --git a/android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java b/android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java index bc74bab04f77..a8b2d2048409 100644 --- a/android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java +++ b/android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java @@ -24,6 +24,8 @@ import org.mozilla.gecko.gfx.LayerView; import java.util.ArrayList; import java.util.Collections; +import static org.libreoffice.SearchController.addProperty; + public class CalcHeadersView extends View { private static final String LOGTAG = CalcHeadersView.class.getSimpleName(); @@ -187,13 +189,6 @@ public class CalcHeadersView extends View { retur
[Libreoffice-commits] core.git: android/Bootstrap android/source desktop/source
android/Bootstrap/src/org/libreoffice/kit/Document.java |9 + android/Bootstrap/src/org/libreoffice/kit/Office.java| 36 ++ android/source/res/layout/password_dialog.xml| 17 +++ android/source/res/values/strings.xml|5 android/source/src/java/org/libreoffice/InvalidationHandler.java | 19 +++ android/source/src/java/org/libreoffice/LOKitThread.java |1 android/source/src/java/org/libreoffice/LOKitTileProvider.java | 22 +++ android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 34 ++ android/source/src/java/org/libreoffice/PasswordDialogFragment.java | 56 ++ desktop/source/lib/lokandroid.cxx| 40 +++ 10 files changed, 235 insertions(+), 4 deletions(-) New commits: commit 43f5161991cffedabb280a6e4e388c5bcbac4f96 Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Jul 26 11:15:26 2017 -0500 [Android Viewer] Password support Added password support for documents. Change-Id: Ifd9cf86894ddaf2fd5ad97510d2ac1b5850611ad Reviewed-on: https://gerrit.libreoffice.org/40458 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java index 8278532c6381..6a1f402970ea 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Document.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java @@ -119,6 +119,15 @@ public class Document { public static final int KEYBOARD_MODIFIER_MOD2 = 0x4000; public static final int KEYBOARD_MODIFIER_MOD3 = 0x8000; +/** Optional features of LibreOfficeKit, in particular callbacks that block + * LibreOfficeKit until the corresponding reply is received, which would + * deadlock if the client does not support the feature. + */ +public static final long LOK_FEATURE_DOCUMENT_PASSWORD = 1; +public static final long LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY = (1 << 1); +public static final long LOK_FEATURE_PART_IN_INVALIDATION_CALLBACK = (1 << 2); +public static final long LOK_FEATURE_NO_TILED_ANNOTATIONS = (1 << 3); + private final ByteBuffer handle; private MessageCallback messageCallback = null; diff --git a/android/Bootstrap/src/org/libreoffice/kit/Office.java b/android/Bootstrap/src/org/libreoffice/kit/Office.java index 8c616d0e9ce2..25c838ffb2e4 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Office.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Office.java @@ -13,11 +13,18 @@ import java.nio.ByteBuffer; public class Office { private ByteBuffer handle; +private MessageCallback messageCallback = null; public Office(ByteBuffer handle) { this.handle = handle; +bindMessageCallback(); } +/** + * Bind the signal callback in LOK. + */ +private native void bindMessageCallback(); + public native String getError(); private native ByteBuffer documentLoadNative(String url); @@ -33,4 +40,33 @@ public class Office { public native void destroy(); public native void destroyAndExit(); +public native void setDocumentPassword(String url, String pwd); +public native void setOptionalFeatures(long options); + +public void setMessageCallback(MessageCallback messageCallback) { +this.messageCallback = messageCallback; +} + +/** + * Callback triggered through JNI to indicate that a new signal + * from LibreOfficeKit was retrieved. + */ +private void messageRetrievedLOKit(int signalNumber, String payload) { +if (messageCallback != null) { +messageCallback.messageRetrieved(signalNumber, payload); +} + +} + +/** + * Callback to retrieve messages from LOK + */ +public interface MessageCallback { +/** + * Invoked when a message is retrieved from LOK + * @param signalNumber - signal type / number + * @param payload - retrieved for the signal + */ +void messageRetrieved(int signalNumber, String payload); +} } diff --git a/android/source/res/layout/password_dialog.xml b/android/source/res/layout/password_dialog.xml new file mode 100644 index ..adc4f4249daf --- /dev/null +++ b/android/source/res/layout/password_dialog.xml @@ -0,0 +1,17 @@ + +http://schemas.android.com/apk/res/android; +android:orientation="vertical" android:layout_width="wrap_content" +android:layout_height="wrap_content"> + + + + \ No newline at end of file diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index 04f1be3cc029..c8c84f9702ba 100644 --- a/android/source/r
GSoC weekly report - Solving MABs for Android Viewer - Ximeng Zu
Hello, I spent my last week working on zooming for Calc on Android Viewer. In short, I didn't succeed. Since I implemented headers and the headers need to be synced with the main GL content, and there is a syncing problem, we have decided to fix the zoom and fix DPI = 96 to ensure headers and main GL content sync. We thought if we do DPI = integer * 96 it also can work and I succeeded in some cases, but turned out it's not stable and only 96 can work all times. So, I pushed my patch to Gerrit for record, but noted "don't merge". I also fixed minor bugs and did some code cleaning. Ximeng ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: android/source
android/source/AndroidManifest.xml |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) New commits: commit 985474a03f902e088d25e005a7d6499037ed8e12 Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Aug 2 11:23:55 2017 -0500 [Android Viewer] Fix windowSoftInputMode Fix the wrong parameter in AndroidManifest. When changing android:windowSoftInputMode, one should not specify multiple "adjust..." or "state...". Change-Id: I0dcacd846d4fe5c2976fe1708b29086b98f2607b Reviewed-on: https://gerrit.libreoffice.org/40686 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/AndroidManifest.xml b/android/source/AndroidManifest.xml index a9c3a3a1609d..44fef292f151 100644 --- a/android/source/AndroidManifest.xml +++ b/android/source/AndroidManifest.xml @@ -21,11 +21,12 @@ android:largeHeap="false"> + +android:windowSoftInputMode="adjustResize" > ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/res/layout/calc_header_popup.xml| 90 android/source/res/values/strings.xml | 17 android/source/src/java/org/libreoffice/InvalidationHandler.java | 10 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 5 android/source/src/java/org/libreoffice/canvas/AdjustLengthLine.java | 105 + android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java | 113 ++ android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java | 181 +++--- android/source/src/java/org/libreoffice/overlay/DocumentOverlay.java | 8 android/source/src/java/org/libreoffice/overlay/DocumentOverlayView.java | 32 + 9 files changed, 521 insertions(+), 40 deletions(-) New commits: commit f45cdbc9f3dd877a2ebda1e2718c59e83faf3c6a Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Jul 12 09:20:56 2017 -0500 [Android Viewer] Add header funcs to Calc Added insert/delete/hide/show/optimal width or height /adjust width or heigth to Calc. These options show in a floating menu near the headers when the user taps on the headers. Also added selection on headers, i.e., user can drag on headers to select multiple columns/rows. Change-Id: I7e1994d1fa81d80c110def035c2c065e838b49ac Reviewed-on: https://gerrit.libreoffice.org/40684 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/res/layout/calc_header_popup.xml b/android/source/res/layout/calc_header_popup.xml new file mode 100644 index ..8e563af27d0a --- /dev/null +++ b/android/source/res/layout/calc_header_popup.xml @@ -0,0 +1,90 @@ + +http://schemas.android.com/apk/res/android; +android:orientation="vertical" android:layout_width="match_parent" +android:layout_height="match_parent" +android:background="@color/doorhanger_background_dark"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index ad4d2699684a..04f1be3cc029 100644 --- a/android/source/res/values/strings.xml +++ b/android/source/res/values/strings.xml @@ -130,9 +130,26 @@ Enter file name CREATE + + Slide show Your Android device doesn\'t support in-app svg slideshow. We copied the slideshow link to clipboard. Please press home button, open a modern web browser, paste in the address bar, and go. OK Back + +Insert +Delete +Hide +Show +Optimal Length +Adjust Length +Adjust Height +Adjust Width +Optimal Height +Optimal Width +OK +Enter Extra Length in 100th/mm +Hint: Double tap on a header sets optimal width/height. + diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index e5fdf05b120f..92769bcd619c 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -94,11 +94,18 @@ public class InvalidationHandler implements Document.MessageCallback { case Document.CALLBACK_CELL_CURSOR: invalidateCellCursor(payload); break; +case Document.CALLBACK_INVALIDATE_HEADER: +invalidateHeader(); +break; default: Log.d(LOGTAG, "LOK_CALLBACK uncaught: " + messageID + " : " + payload); } } +private void invalidateHeader() { +LOKitShell.sendEvent(new LOEvent(LOEvent.UPDATE_CALC_HEADERS)); +} + private void invalidateCellCursor(String payload) { RectF cellCursorRect = convertPayloadToRectangle(payload); @@ -378,6 +385,9 @@ public class InvalidationHandler implements Document.MessageCallback { changeStateTo(OverlayState.TRANSITION); } mDocumentOverlay.changeSelections(Collections.EMPTY_LIST); +if (mContext.isSpreadsheet()) { +mDocumentOverlay.showHeaderSelection(null); +} } else { List rectangles = convertPayloadToRectangles(payload); if (mState != OverlayState.SELECTION) { diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index b16812f0bc97..6ae49935a5c2 100755 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/j
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/InvalidationHandler.java | 14 + android/source/src/java/org/libreoffice/LOKitShell.java| 1 android/source/src/java/org/libreoffice/LOKitThread.java | 2 android/source/src/java/org/libreoffice/LOKitTileProvider.java | 6 android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 9 android/source/src/java/org/libreoffice/canvas/CalcHeaderCell.java | 10 android/source/src/java/org/libreoffice/canvas/CalcSelectionBox.java | 111 ++ android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java | 30 ++ android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java | 101 - android/source/src/java/org/libreoffice/overlay/DocumentOverlay.java | 16 + android/source/src/java/org/libreoffice/overlay/DocumentOverlayView.java | 51 11 files changed, 337 insertions(+), 14 deletions(-) New commits: commit b9471511523d5c80b80a5e99d149af65e9915840 Author: Ximeng Zu <uzno...@yahoo.com> Date: Sun Jun 18 16:37:13 2017 -0500 [Android Viewer] Add cell selection by row/column/all Added cell selection to Calc docs in Android Viewer with a similar behavior to LOOL wrt. row/column selection. The user can tap on any header to select whole row/column or select all by tapping the top left corner of the header. Change-Id: I34bdbb1aacc5fc0ed9175908936a8a5e6eec4ff4 Reviewed-on: https://gerrit.libreoffice.org/39694 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index 5edc6c7dcb19..e5fdf05b120f 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -91,11 +91,22 @@ public class InvalidationHandler implements Document.MessageCallback { Log.d(LOGTAG, "LOK_CALLBACK: Search not found."); // this callback is never caught. Hope someone fix this. break; +case Document.CALLBACK_CELL_CURSOR: +invalidateCellCursor(payload); +break; default: Log.d(LOGTAG, "LOK_CALLBACK uncaught: " + messageID + " : " + payload); } } +private void invalidateCellCursor(String payload) { +RectF cellCursorRect = convertPayloadToRectangle(payload); + +if (cellCursorRect != null) { +mDocumentOverlay.showCellSelection(cellCursorRect); +} +} + /** * Handles the search result selection message, which is a JSONObject * @@ -374,6 +385,9 @@ public class InvalidationHandler implements Document.MessageCallback { } changeStateTo(OverlayState.SELECTION); mDocumentOverlay.changeSelections(rectangles); +if (mContext.isSpreadsheet()) { +mDocumentOverlay.showHeaderSelection(rectangles.get(0)); +} } } diff --git a/android/source/src/java/org/libreoffice/LOKitShell.java b/android/source/src/java/org/libreoffice/LOKitShell.java index 7b7525722250..c69e02669619 100644 --- a/android/source/src/java/org/libreoffice/LOKitShell.java +++ b/android/source/src/java/org/libreoffice/LOKitShell.java @@ -27,6 +27,7 @@ public class LOKitShell { private static final String LOGTAG = LOKitShell.class.getSimpleName(); public static float getDpi(Context context) { +if (((LibreOfficeMainActivity)context).isSpreadsheet()) return 96f; DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return metrics.density * 160; } diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java index 9ab54c20a1f8..50836ce5b65a 100644 --- a/android/source/src/java/org/libreoffice/LOKitThread.java +++ b/android/source/src/java/org/libreoffice/LOKitThread.java @@ -211,7 +211,7 @@ class LOKitThread extends Thread { LOKitShell.showProgressSpinner(mContext); mTileProvider.changePart(partIndex); mViewportMetrics = mLayerClient.getViewportMetrics(); -mLayerClient.setViewportMetrics(mViewportMetrics.scaleTo(0.9f, new PointF())); +// mLayerClient.setViewportMetrics(mViewportMetrics.scaleTo(0.9f, new PointF())); refresh(); LOKitShell.hideProgressSpinner(mContext); } diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java index 3278265dfa3f..ba49cfaf26ee 100644 --- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java +++ b/android/source/src/java
[Libreoffice-commits] core.git: android/Bootstrap
android/Bootstrap/src/org/libreoffice/kit/Document.java | 38 1 file changed, 19 insertions(+), 19 deletions(-) New commits: commit 063db6b5a011c48fd4f04048a292747f33418a82 Author: Ximeng Zu <uzno...@yahoo.com> Date: Tue Jul 11 11:45:13 2017 -0500 [Android Viewer] Correct LOK Enums Corrected LOKit Enum names in Document.java. Change-Id: I890bca0712a650b2454807fa11f43f7db14aad6b Reviewed-on: https://gerrit.libreoffice.org/39831 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java index de92cd731eae..8278532c6381 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Document.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java @@ -73,25 +73,25 @@ public class Document { public static final int CALLBACK_DOCUMENT_SIZE_CHANGED = 13; public static final int CALLBACK_SET_PART = 14; public static final int CALLBACK_SEARCH_RESULT_SELECTION = 15; -public static final int LOK_CALLBACK_UNO_COMMAND_RESULT = 16; -public static final int LOK_CALLBACK_CELL_CURSOR = 17; -public static final int LOK_CALLBACK_MOUSE_POINTER = 18; -public static final int LOK_CALLBACK_CELL_FORMULA = 19; -public static final int LOK_CALLBACK_DOCUMENT_PASSWORD = 20; -public static final int LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY = 21; -public static final int LOK_CALLBACK_ERROR = 22; -public static final int LOK_CALLBACK_CONTEXT_MENU = 23; -public static final int LOK_CALLBACK_INVALIDATE_VIEW_CURSOR = 24; -public static final int LOK_CALLBACK_TEXT_VIEW_SELECTION = 25; -public static final int LOK_CALLBACK_CELL_VIEW_CURSOR = 26; -public static final int LOK_CALLBACK_GRAPHIC_VIEW_SELECTION = 27; -public static final int LOK_CALLBACK_VIEW_CURSOR_VISIBLE = 28; -public static final int LOK_CALLBACK_VIEW_LOCK = 29; -public static final int LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED = 30; -public static final int LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED = 31; -public static final int LOK_CALLBACK_COMMENT = 32; -public static final int LOK_CALLBACK_INVALIDATE_HEADER = 33; -public static final int LOK_CALLBACK_CELL_ADDRESS = 34; +public static final int CALLBACK_UNO_COMMAND_RESULT = 16; +public static final int CALLBACK_CELL_CURSOR = 17; +public static final int CALLBACK_MOUSE_POINTER = 18; +public static final int CALLBACK_CELL_FORMULA = 19; +public static final int CALLBACK_DOCUMENT_PASSWORD = 20; +public static final int CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY = 21; +public static final int CALLBACK_ERROR = 22; +public static final int CALLBACK_CONTEXT_MENU = 23; +public static final int CALLBACK_INVALIDATE_VIEW_CURSOR = 24; +public static final int CALLBACK_TEXT_VIEW_SELECTION = 25; +public static final int CALLBACK_CELL_VIEW_CURSOR = 26; +public static final int CALLBACK_GRAPHIC_VIEW_SELECTION = 27; +public static final int CALLBACK_VIEW_CURSOR_VISIBLE = 28; +public static final int CALLBACK_VIEW_LOCK = 29; +public static final int CALLBACK_REDLINE_TABLE_SIZE_CHANGED = 30; +public static final int CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED = 31; +public static final int CALLBACK_COMMENT = 32; +public static final int CALLBACK_INVALIDATE_HEADER = 33; +public static final int CALLBACK_CELL_ADDRESS = 34; /** * Set text selection types ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/res/layout/activity_main.xml| 51 - android/source/res/values/dimens.xml | 2 android/source/src/java/org/libreoffice/LOEvent.java | 1 android/source/src/java/org/libreoffice/LOKitThread.java | 27 ++ android/source/src/java/org/libreoffice/LOKitTileProvider.java | 30 ++- android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 18 + android/source/src/java/org/libreoffice/canvas/CalcHeaderCell.java | 48 android/source/src/java/org/libreoffice/overlay/CalcHeadersController.java | 98 ++ android/source/src/java/org/libreoffice/overlay/CalcHeadersView.java | 95 + android/source/src/java/org/libreoffice/overlay/DocumentOverlay.java | 7 android/source/src/java/org/libreoffice/overlay/DocumentOverlayView.java | 8 android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java | 3 12 files changed, 369 insertions(+), 19 deletions(-) New commits: commit 02f3c4848ab52358bfee56c570a19a3a071574f2 Author: Ximeng Zu <uzno...@yahoo.com> Date: Sun Jun 18 16:37:13 2017 -0500 Calc UI on Android Viewer Adding Calc UI. Two blank views are added as row and column headers. CommonCanvasElement is used to draw header cells on the views. [WIP] Change-Id: I37eaa82805045ab650fd127e54c8421c61a4ea27 Reviewed-on: https://gerrit.libreoffice.org/38936 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/res/layout/activity_main.xml b/android/source/res/layout/activity_main.xml index bfa575b57f36..fb5ba1ef7d32 100644 --- a/android/source/res/layout/activity_main.xml +++ b/android/source/res/layout/activity_main.xml @@ -36,22 +36,53 @@ +android:layout_height="match_parent"> - + + + + + + +android:layout_height="match_parent" +android:orientation="vertical" +android:layout_toRightOf="@+id/calc_header_row" +android:layout_toEndOf="@+id/calc_header_row" +android:layout_below="@+id/calc_header_column"> + + - + + + + diff --git a/android/source/res/values/dimens.xml b/android/source/res/values/dimens.xml index 3de476c0cc42..8a153790ac69 100644 --- a/android/source/res/values/dimens.xml +++ b/android/source/res/values/dimens.xml @@ -9,4 +9,6 @@ 8dp 32dp 256dp +48dp +24dp diff --git a/android/source/src/java/org/libreoffice/LOEvent.java b/android/source/src/java/org/libreoffice/LOEvent.java index 14980dca0ec4..7846f7331bbd 100644 --- a/android/source/src/java/org/libreoffice/LOEvent.java +++ b/android/source/src/java/org/libreoffice/LOEvent.java @@ -38,6 +38,7 @@ public class LOEvent implements Comparable { public static final int SAVE_AS = 17; public static final int UPDATE_PART_PAGE_RECT = 18; public static final int UPDATE_ZOOM_CONSTRAINTS = 19; +public static final int UPDATE_CALC_HEADERS = 20; public final int mType; public int mPriority = 0; diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java index dac8cc43109c..9ab54c20a1f8 100644 --- a/android/source/src/java/org/libreoffice/LOKitThread.java +++ b/android/source/src/java/org/libreoffice/LOKitThread.java @@ -156,6 +156,9 @@ class LOKitThread extends Thread { mLayerClient.clearAndResetlayers(); redraw(); updatePartPageRectangles(); +if (mTileProvider.isSpreadsheet()) { +updateCalcHeaders(); +} } /** @@ -170,11 +173,15 @@ class LOKitThread extends Thread { private void updateZoomConstraints() { mLayerClient = mContext.getLayerClient(); - -// Set min zoom to the page width so that you cannot zoom below page width -// applies to all types of document; in the future spreadsheets may be singled out -float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth(); -mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f)); +if (mTileProvider.isSpreadsheet()) { +// Calc has a fixed zoom at 1x and doesn't allow zooming for now +mLayerClient.setZoomConstraints(new ZoomConstraints(false, 1f, 0f, 0f)); +} else { +// Set min zoom to the page width so that you cannot zoom below page width +// applies t
[Libreoffice-commits] core.git: android/source
android/source/AndroidManifest.xml |7 android/source/res/layout/presentation_mode.xml | 45 ++ android/source/res/menu/main.xml |5 android/source/res/values/strings.xml|4 android/source/src/java/org/libreoffice/LOKitTileProvider.java | 52 +- android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 41 ++ android/source/src/java/org/libreoffice/PresentationActivity.java| 188 ++ android/source/src/java/org/libreoffice/ToolbarController.java |3 8 files changed, 329 insertions(+), 16 deletions(-) New commits: commit 6b873439042960bfc72a5e341c5ed61eeb40f53e Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed May 24 17:02:17 2017 -0500 Presentation Mode Adding fullscreen presentation mode. Change-Id: Id07416ce204d1d7dd917fbd33a4d9f5072ac1703 Reviewed-on: https://gerrit.libreoffice.org/38006 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/AndroidManifest.xml b/android/source/AndroidManifest.xml index 0b384a3becc2..a9c3a3a1609d 100644 --- a/android/source/AndroidManifest.xml +++ b/android/source/AndroidManifest.xml @@ -125,6 +125,13 @@ android:windowSoftInputMode="stateHidden"> + + + + diff --git a/android/source/res/layout/presentation_mode.xml b/android/source/res/layout/presentation_mode.xml new file mode 100644 index ..ec1845ab68ab --- /dev/null +++ b/android/source/res/layout/presentation_mode.xml @@ -0,0 +1,45 @@ + +http://schemas.android.com/apk/res/android; +android:layout_width="match_parent" android:layout_height="match_parent"> + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/source/res/menu/main.xml b/android/source/res/menu/main.xml index 3ec0dadc5b63..0b34d8b5ffac 100644 --- a/android/source/res/menu/main.xml +++ b/android/source/res/menu/main.xml @@ -42,6 +42,11 @@ android:orderInCategory="100" /> + + diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index 4495ca584927..ad4d2699684a 100644 --- a/android/source/res/values/strings.xml +++ b/android/source/res/values/strings.xml @@ -130,5 +130,9 @@ Enter file name CREATE +Slide show +Your Android device doesn\'t support in-app svg slideshow. We copied the slideshow link to clipboard. Please press home button, open a modern web browser, paste in the address bar, and go. +OK +Back diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java index e17893985a75..6fb8a9b80671 100644 --- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java +++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java @@ -101,6 +101,10 @@ class LOKitTileProvider implements TileProvider { Log.i(LOGTAG, "Document parts: " + parts); mContext.getDocumentPartView().clear(); +if (mDocument.getDocumentType() == Document.DOCTYPE_PRESENTATION) { + mContext.getToolbarController().disableMenuItem(R.id.action_presentation, false); +} + // Writer documents always have one part, so hide the navigation drawer. if (mDocument.getDocumentType() != Document.DOCTYPE_TEXT) { for (int i = 0; i < parts; i++) { @@ -134,26 +138,44 @@ class LOKitTileProvider implements TileProvider { @Override public void saveDocumentAs(String filePath, String format) { -String newFilePath = "file://" + filePath; +final String newFilePath = "file://" + filePath; Log.d("saveFilePathURL", newFilePath); +LOKitShell.showProgressSpinner(mContext); mDocument.saveAs(newFilePath, format, ""); if (!mOffice.getError().isEmpty()){ Log.e("Save Error", mOffice.getError()); -LOKitShell.getMainHandler().post(new Runnable() { -@Override -public void run() { -// There was some error -mContext.showSaveStatusMessage(true); -} -}); -} -LOKitShell.getMainHandler().post(new Runnable() { -@Override -public void run() { -// There was no error -mContext.showSaveStatusMessage(false); +if (format.equals("svg")) { +// error in creating temp slideshow svg file +Log.d(LOGTAG, "Error in creating temp slideshow svg file");
[Libreoffice-commits] core.git: android/Bootstrap
android/Bootstrap/src/org/libreoffice/kit/Document.java | 21 1 file changed, 21 insertions(+) New commits: commit c746468607d020be10366f2ad2df6dddf947c656 Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Jun 28 15:52:10 2017 -0500 Add LOKit Enums to Document.java Added LOKit callback enums to Document.java. Change-Id: I46b7b5fe0ceb40a89fd121082706acdf539ff916 Reviewed-on: https://gerrit.libreoffice.org/39375 Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java index cd8297c21978..de92cd731eae 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Document.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java @@ -54,6 +54,8 @@ public class Document { /** * Callback message types + * Refer to http://opengrok.libreoffice.org/xref/core/include/LibreOfficeKit/LibreOfficeKitEnums.h + * for more details about each callback. */ public static final int CALLBACK_INVALIDATE_TILES = 0; public static final int CALLBACK_INVALIDATE_VISIBLE_CURSOR = 1; @@ -71,6 +73,25 @@ public class Document { public static final int CALLBACK_DOCUMENT_SIZE_CHANGED = 13; public static final int CALLBACK_SET_PART = 14; public static final int CALLBACK_SEARCH_RESULT_SELECTION = 15; +public static final int LOK_CALLBACK_UNO_COMMAND_RESULT = 16; +public static final int LOK_CALLBACK_CELL_CURSOR = 17; +public static final int LOK_CALLBACK_MOUSE_POINTER = 18; +public static final int LOK_CALLBACK_CELL_FORMULA = 19; +public static final int LOK_CALLBACK_DOCUMENT_PASSWORD = 20; +public static final int LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY = 21; +public static final int LOK_CALLBACK_ERROR = 22; +public static final int LOK_CALLBACK_CONTEXT_MENU = 23; +public static final int LOK_CALLBACK_INVALIDATE_VIEW_CURSOR = 24; +public static final int LOK_CALLBACK_TEXT_VIEW_SELECTION = 25; +public static final int LOK_CALLBACK_CELL_VIEW_CURSOR = 26; +public static final int LOK_CALLBACK_GRAPHIC_VIEW_SELECTION = 27; +public static final int LOK_CALLBACK_VIEW_CURSOR_VISIBLE = 28; +public static final int LOK_CALLBACK_VIEW_LOCK = 29; +public static final int LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED = 30; +public static final int LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED = 31; +public static final int LOK_CALLBACK_COMMENT = 32; +public static final int LOK_CALLBACK_INVALIDATE_HEADER = 33; +public static final int LOK_CALLBACK_CELL_ADDRESS = 34; /** * Set text selection types ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
GSoC Weekly update - Solving MABs for Android Viewer - Ximeng Zu
Hello everyone, I spent my last week experimenting with Calc headers. Since a fetch-headers call would double the page size, I looked into working around this "bug". It turned out to be too much overhead in coding as well as app performance. There was also this offset between main view and header views. We managed to solve it by fixing the zoom to 1x in Calc document. The patch is pushed onto gerrit now. Next step is to add more controls to Calc UI as in LOOL. Ximeng Zu ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
GSoC weekly update - Solving MABs for Android Viewer - Ximeng Zu
Hello, Last week I completed developing presentation mode for Android Viewer. It's now under review. I also completed initial setup for adding Calc UI to Android Viewer. Now the headers align with the main content of the document. Next step is to make the headers update with user interaction. Best, Ximeng Zu ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
GSoC weekly report: Solving MABs for LO Android viewer - Ximeng Zu
Hello everyone, Last week I was trying to solve a SIGSEGV in Android Viewer on my new Android phone. In order to do that, I needed to do a debug build with Android distro. On my *freshly installed* Ubuntu 16 LTS dual boot system with win10 on a Surface Pro 3, the build constantly failed on me. Here I would like to summarize what I encountered just in case it's reproducible. 1) My autogen.input has the following content: --with-distro=LibreOfficeAndroid --with-android-sdk=/home/uznomis/Android/Sdk --enable-debug --enable-werror 2) In early stage of the build I encountered an error saying I was missing nss related tarball. I solved it with gb_Side=build make fetch. Thanks a lot to peeps on dev channel. To quote, "the problem is probably that NSS is not required on android but is required on the build platform, and "make fetch" only takes the host (android) platform into account". 3) In middle stage of the build everything works well, but towards the end the linking stage broke with the following error: /home/uznomis/libreoffice/workdir/UnpackedTarball/epoxy/src/dispatch_common.c:664: error: undefined reference to 'glXGetProcAddressARB' collect2: error: ld returned 1 exit status I did a lot of googling and found 'glXGetProcAddressARB' is related to libGL.so shared library and it's mostly implemented and used with MESA. I looked into the Android ndk platform 15 lib (which the build needs), and found that there was no libGL.so to use. In this case, Android ndk grabs the system library /usr/lib/ and creates a symlink in the ndk platform 15 lib. However, the system lib's libGL.so is x86-64 which is not needed by Android (which is ARM). This breaks the build. This explanatiorin is not verified but it makes the most sense to me. I also downloaded i-386 version of MESA but the build still fails. 4) I tried ndk 10, 13, 14, 15 and all failed. 5) I tried inside VMWare and bare-metal and all failed. 6) I tried Surafce pro 3 and ASUS laptop and all failed. 7) I tried with/without --enable-debug and all failed. 8) I followed wiki pages of building with Linux and added all dependencies listed there. 9) Yesterday I tried building on openSUSE 42.2 in Virtual Box and the build succeeded. I suspect that the problem I encountered is reproducible. However it's too costly for anyone to reproduce. So, I just want to make this record on the mail list archive just in case any contributor in the future wants to see. All in all, I think the problem is Ubuntu or me failing to install some libraries/dependencies. Now I'm installing openSUSE on my surface pro 3 and build with debug for android. Cross fingers. Best, Ximeng Zu ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
GSoC Weekly Report Solving MABs for Android Viewer - Ximeng Zu
Hello everyone, I spent my first week working on adding full screen presentation mode for Android Viewer. Till now, conversion to svg file is successful and the presentation mode activity works fine, but needs to add more control options. I also solved a small bug: https://gerrit.libreoffice.org/#/c/37847/. I also got a new Android phone to test the app with, but I got SIGSEGV error when opening a file (not happening on my old Android phone). So, I needed to build with Android distro and with debug and go on to figure out when goes wrong in the native code. Since I was running Ubuntu on VMWare on win10 and my memory and swap was not enough for a build with debug, I was playing around with different options to work around this. Finally I decided that virtual machine was a bad idea, and I installed Ubuntu for a dual boot with my win10. Now I am trying to build on the newly installed Ubuntu and hopefully it will work out. Link to gerrit patch [WIP]: https://gerrit.libreoffice.org/#/c/38006/ Best wishes, Ximeng Zu IRC: uznomis[m] ___ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/LOEvent.java |3 + android/source/src/java/org/libreoffice/LOKitThread.java | 20 --- android/source/src/java/org/mozilla/gecko/gfx/LayerView.java |4 ++ 3 files changed, 21 insertions(+), 6 deletions(-) New commits: commit f45cfc6569d2a5a81784284f294eb35e98211b19 Author: Ximeng Zu <uzno...@yahoo.com> Date: Fri May 19 23:15:28 2017 -0500 Update zoom constraints with device rotate Added function of updating zoom constraints whenever device rotates. This is achieved by calculating min zoom factor every time the size change function is called. Change-Id: I6d795c1eb79faa36b4f5dabedd2d4b8c87dcf7d7 Reviewed-on: https://gerrit.libreoffice.org/37847 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/LOEvent.java b/android/source/src/java/org/libreoffice/LOEvent.java index f5579aea087a..14980dca0ec4 100644 --- a/android/source/src/java/org/libreoffice/LOEvent.java +++ b/android/source/src/java/org/libreoffice/LOEvent.java @@ -36,7 +36,8 @@ public class LOEvent implements Comparable { public static final int RESUME = 15; public static final int LOAD_NEW = 16; public static final int SAVE_AS = 17; -public static final int UPDATE_PART_PAGE_RECT= 18; +public static final int UPDATE_PART_PAGE_RECT = 18; +public static final int UPDATE_ZOOM_CONSTRAINTS = 19; public final int mType; public int mPriority = 0; diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java index 52a7c6c2f43a..dac8cc43109c 100644 --- a/android/source/src/java/org/libreoffice/LOKitThread.java +++ b/android/source/src/java/org/libreoffice/LOKitThread.java @@ -168,6 +168,15 @@ class LOKitThread extends Thread { mContext.getDocumentOverlay().setPartPageRectangles(partPageRectangles); } +private void updateZoomConstraints() { +mLayerClient = mContext.getLayerClient(); + +// Set min zoom to the page width so that you cannot zoom below page width +// applies to all types of document; in the future spreadsheets may be singled out +float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth(); +mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f)); +} + /** * Resume the document with the current part @@ -181,6 +190,7 @@ class LOKitThread extends Thread { mTileProvider = TileProviderFactory.create(mContext, mInvalidationHandler, filename); if (mTileProvider.isReady()) { +updateZoomConstraints(); changePart(partIndex); } else { closeDocument(); @@ -209,13 +219,9 @@ class LOKitThread extends Thread { mInvalidationHandler = new InvalidationHandler(mContext); mTileProvider = TileProviderFactory.create(mContext, mInvalidationHandler, filePath); -// Set min zoom to the page width so that you cannot zoom below page width -// applies to all types of document; in the future spreadsheets may be singled out -float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth(); -mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f)); - if (mTileProvider.isReady()) { LOKitShell.showProgressSpinner(mContext); +updateZoomConstraints(); refresh(); LOKitShell.hideProgressSpinner(mContext); } else { @@ -236,6 +242,7 @@ class LOKitThread extends Thread { if (mTileProvider.isReady()) { LOKitShell.showProgressSpinner(mContext); +updateZoomConstraints(); refresh(); LOKitShell.hideProgressSpinner(mContext); @@ -333,6 +340,9 @@ class LOKitThread extends Thread { case LOEvent.UPDATE_PART_PAGE_RECT: updatePartPageRectangles(); break; +case LOEvent.UPDATE_ZOOM_CONSTRAINTS: +updateZoomConstraints(); +break; } } diff --git a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java index 0aa19ddf93e2..41fafd46a3db 100644 --- a/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java +++ b/android/source/src/java/org/mozilla/gecko/gfx/LayerView.java @@ -25,6 +25,8 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; import android.widget.FrameLayout; +import org.libreoffice.LOEvent; +import org.libreoffice.LOKitShell; import org.libreoffice.LibreOfficeMainActivity; import org.libreoffice.R; import org.mozilla.gecko.OnInterceptTouchListener; @@ -319,6 +321,8 @@ public class LayerView e
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java | 22 +- 1 file changed, 12 insertions(+), 10 deletions(-) New commits: commit e0ccc8913598c91a9a76fd6bcca6d397bf79e304 Author: Ximeng Zu <uzno...@yahoo.com> Date: Thu Apr 27 22:07:32 2017 -0500 Fix behavior of double tap zoom in and out Fix the behavior of double tap zoom. Previously double tap zooms to the viewport whose top left point is the point of double touch. Now double tap behaves such that the point of doule touch does not move on the screen, and the rest part of the view zooms in or out. This behavior is more UX friendly and correct. Change-Id: Ifccc337631d523be1cd870f892235899d0fc5dfe Reviewed-on: https://gerrit.libreoffice.org/37046 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java index 1d109cf426a1..b834fa0798d5 100644 --- a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java +++ b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java @@ -985,16 +985,18 @@ class JavaPanZoomController @Override public boolean onDoubleTap(MotionEvent motionEvent) { // Double tap zooms in or out depending on the current zoom factor -PointF viewPoint = getMotionInDocumentCoordinates(motionEvent); -ZoomConstraints constraints = mTarget.getZoomConstraints(); -float zoomFactor = getMetrics().getZoomFactor(); -if (zoomFactor >= DOUBLE_TAP_THRESHOLD) { -animatedMove(viewPoint, constraints.getMinZoom()); -} else { -animatedMove(viewPoint, DOUBLE_TAP_THRESHOLD); -} - -LOKitShell.sendTouchEvent("DoubleTap", getMotionInDocumentCoordinates(motionEvent)); +PointF pointOfTap = getMotionInDocumentCoordinates(motionEvent); +ImmutableViewportMetrics metrics = getMetrics(); +float newZoom = metrics.getZoomFactor() >= +DOUBLE_TAP_THRESHOLD ? mTarget.getZoomConstraints().getMinZoom() : DOUBLE_TAP_THRESHOLD; +// calculate new top_left point from the point of tap +float ratio = newZoom/metrics.getZoomFactor(); +float newLeft = pointOfTap.x - 1/ratio * (pointOfTap.x - metrics.getOrigin().x / metrics.getZoomFactor()); +float newTop = pointOfTap.y - 1/ratio * (pointOfTap.y - metrics.getOrigin().y / metrics.getZoomFactor()); +// animate move to the new view +animatedMove(new PointF(newLeft, newTop), newZoom); + +LOKitShell.sendTouchEvent("DoubleTap", pointOfTap); return true; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/res/layout/activity_main.xml | 33 ++ android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java |2 2 files changed, 21 insertions(+), 14 deletions(-) New commits: commit 5c2833c4edf88ab7f9ad9b6165829c149432aae5 Author: Ximeng Zu <uzno...@yahoo.com> Date: Tue Apr 25 09:22:50 2017 -0500 tdf#107415 android: appbar invisible on lower version Rearranged activity_main.xml in order to fix the bug of app bar invisible on lower versions of Android devices. Change-Id: Ic4ec9435ce9ef55a2596600c143114c899c30ac2 Reviewed-on: https://gerrit.libreoffice.org/36950 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/res/layout/activity_main.xml b/android/source/res/layout/activity_main.xml index 1ad3e3836f24..bfa575b57f36 100644 --- a/android/source/res/layout/activity_main.xml +++ b/android/source/res/layout/activity_main.xml @@ -13,24 +13,28 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - + + + + + + + + + diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index 6a0d033b530f..b653c437c644 100755 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -560,6 +560,7 @@ public class LibreOfficeMainActivity extends AppCompatActivity { hideBottomToolbar(); } else { showBottomToolbar(); +findViewById(R.id.search_toolbar).setVisibility(View.GONE); findViewById(R.id.formatting_toolbar).setVisibility(View.VISIBLE); hideSoftKeyboardDirect(); isSearchToolbarOpen=false; @@ -649,7 +650,6 @@ public class LibreOfficeMainActivity extends AppCompatActivity { public void openDrawer() { mDrawerLayout.openDrawer(mDrawerList); hideBottomToolbar(); -hideFormattingToolbar(); } public void showAbout() { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/LOKitTileProvider.java |1 + android/source/src/java/org/libreoffice/ToolbarController.java |2 +- 2 files changed, 2 insertions(+), 1 deletion(-) New commits: commit 936ffc11cee7176e63785f3b4a97eb1f0acfdf0e Author: Ximeng Zu <uzno...@yahoo.com> Date: Thu Apr 13 17:32:53 2017 -0500 tdf#96770 android: disable 'parts' in text documents Text documents only have one part, so 'parts' button in the menu should be disabled. Change-Id: Id36a57bcf35bc6347136dda82d8da2d7ca308285 Reviewed-on: https://gerrit.libreoffice.org/36538 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/LOKitTileProvider.java b/android/source/src/java/org/libreoffice/LOKitTileProvider.java index 29def6e97794..e17893985a75 100644 --- a/android/source/src/java/org/libreoffice/LOKitTileProvider.java +++ b/android/source/src/java/org/libreoffice/LOKitTileProvider.java @@ -117,6 +117,7 @@ class LOKitTileProvider implements TileProvider { } } else { mContext.disableNavigationDrawer(); +mContext.getToolbarController().disableMenuItem(R.id.action_parts, true); } mDocument.setPart(0); diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java b/android/source/src/java/org/libreoffice/ToolbarController.java index 0191c924446c..d7f1ac18c95e 100644 --- a/android/source/src/java/org/libreoffice/ToolbarController.java +++ b/android/source/src/java/org/libreoffice/ToolbarController.java @@ -37,7 +37,7 @@ public class ToolbarController implements Toolbar.OnMenuItemClickListener { mMainMenu = mToolbarTop.getMenu(); } -private void disableMenuItem(final int menuItemId, final boolean disabled) { +public void disableMenuItem(final int menuItemId, final boolean disabled) { LOKitShell.getMainHandler().post(new Runnable() { public void run() { MenuItem menuItem = mMainMenu.findItem(menuItemId); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/InvalidationHandler.java |6 ++-- android/source/src/java/org/libreoffice/ToolbarController.java | 15 +- 2 files changed, 18 insertions(+), 3 deletions(-) New commits: commit 1a748066b49ceaa8cdd3477556756336d6dfb8b3 Author: Ximeng Zu <uzno...@yahoo.com> Date: Thu Apr 13 18:22:36 2017 -0500 tdf#96799 android: does not switch edit mode to view Added a checking of whether edit mode is on or off before making a switch between edit and view modes. Change-Id: I69043bc8694b605a517e16385abfa91d86d34d30 Reviewed-on: https://gerrit.libreoffice.org/36541 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index af42cb131ff7..5edc6c7dcb19 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -455,9 +455,11 @@ public class InvalidationHandler implements Document.MessageCallback { * Handle a general transition - executed for all transitions. */ private void handleGeneralChangeState(OverlayState previous, OverlayState next) { -if (previous == OverlayState.NONE) { +if (previous == OverlayState.NONE && +!mContext.getToolbarController().getEditModeStatus()) { mContext.getToolbarController().switchToEditMode(); -} else if (next == OverlayState.NONE) { +} else if (next == OverlayState.NONE && +mContext.getToolbarController().getEditModeStatus()) { mContext.getToolbarController().switchToViewMode(); } } diff --git a/android/source/src/java/org/libreoffice/ToolbarController.java b/android/source/src/java/org/libreoffice/ToolbarController.java index 0012fdbeae06..0191c924446c 100644 --- a/android/source/src/java/org/libreoffice/ToolbarController.java +++ b/android/source/src/java/org/libreoffice/ToolbarController.java @@ -24,6 +24,8 @@ public class ToolbarController implements Toolbar.OnMenuItemClickListener { private final LibreOfficeMainActivity mContext; private final Menu mMainMenu; +private boolean isEditModeOn = false; + public ToolbarController(LibreOfficeMainActivity context, Toolbar toolbarTop) { mToolbarTop = toolbarTop; mContext = context; @@ -48,6 +50,14 @@ public class ToolbarController implements Toolbar.OnMenuItemClickListener { }); } +public void setEditModeOn(boolean enabled) { +isEditModeOn = enabled; +} + +public boolean getEditModeStatus() { +return isEditModeOn; +} + /** * Change the toolbar to edit mode. */ @@ -62,7 +72,7 @@ public class ToolbarController implements Toolbar.OnMenuItemClickListener { mMainMenu.setGroupVisible(R.id.group_edit_actions, true); mToolbarTop.setNavigationIcon(R.drawable.ic_check); mToolbarTop.setLogo(null); - +setEditModeOn(true); } }); } @@ -81,6 +91,9 @@ public class ToolbarController implements Toolbar.OnMenuItemClickListener { mMainMenu.setGroupVisible(R.id.group_edit_actions, false); mToolbarTop.setNavigationIcon(R.drawable.lo_icon); mToolbarTop.setLogo(null); +setEditModeOn(false); +mContext.hideBottomToolbar(); +mContext.hideSoftKeyboard(); } }); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java | 13 ++ 1 file changed, 13 insertions(+) New commits: commit 50938d84de555ac8dd3151f44e8ba20276ddd7be Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Apr 5 16:38:13 2017 -0500 Double tap zooms in and out Added double tap action in JavaPanZoomController. This commit depends on "restrict zoom to page width". Change-Id: Ifbe13f698ea01af2223beede9211a13b4970a3d5 Reviewed-on: https://gerrit.libreoffice.org/36164 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java index ce6f4e9b99f7..1d109cf426a1 100644 --- a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java +++ b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java @@ -50,6 +50,9 @@ class JavaPanZoomController // The maximum amount we allow you to zoom into a page private static final float MAX_ZOOM = 4.0f; +// The threshold zoom factor of whether a double tap triggers zoom-in or zoom-out +private static final float DOUBLE_TAP_THRESHOLD = 1.0f; + // The maximum amount we would like to scroll with the mouse private final float MAX_SCROLL; @@ -981,6 +984,16 @@ class JavaPanZoomController @Override public boolean onDoubleTap(MotionEvent motionEvent) { +// Double tap zooms in or out depending on the current zoom factor +PointF viewPoint = getMotionInDocumentCoordinates(motionEvent); +ZoomConstraints constraints = mTarget.getZoomConstraints(); +float zoomFactor = getMetrics().getZoomFactor(); +if (zoomFactor >= DOUBLE_TAP_THRESHOLD) { +animatedMove(viewPoint, constraints.getMinZoom()); +} else { +animatedMove(viewPoint, DOUBLE_TAP_THRESHOLD); +} + LOKitShell.sendTouchEvent("DoubleTap", getMotionInDocumentCoordinates(motionEvent)); return true; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/InvalidationHandler.java | 15 ++ android/source/src/java/org/libreoffice/LOEvent.java | 1 android/source/src/java/org/libreoffice/LOKitThread.java | 14 ++ android/source/src/java/org/libreoffice/LOKitTileProvider.java | 7 + android/source/src/java/org/libreoffice/canvas/PageNumberRect.java | 64 ++ android/source/src/java/org/libreoffice/overlay/DocumentOverlay.java | 28 android/source/src/java/org/libreoffice/overlay/DocumentOverlayView.java | 61 + android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java | 10 + 8 files changed, 198 insertions(+), 2 deletions(-) New commits: commit 78bc5053a15ef218cce394b0d0e012f1700f760a Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Apr 5 23:37:12 2017 -0500 tdf#96764 - Android Viewer does not show page count Added page number display in text documents. The page nunmber calculation in handled on Java side and the work only involves calls to LOKit when necessary. Majority of the work is done in DocumentOverlayView. java, including calculation and displaying. The page number information is updated whenever a page number change callback is caught (from LOkit). Change-Id: I52014806cd647fa805b329825ac29b0e337c11a1 Reviewed-on: https://gerrit.libreoffice.org/36178 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index c8d3a5123c11..af42cb131ff7 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -29,6 +29,8 @@ public class InvalidationHandler implements Document.MessageCallback { private boolean mKeyEvent = false; private LibreOfficeMainActivity mContext; +private int currentTotalPageNumber = 0; // total page number of the current document + public InvalidationHandler(LibreOfficeMainActivity context) { mContext = context; mDocumentOverlay = mContext.getDocumentOverlay(); @@ -196,6 +198,15 @@ public class InvalidationHandler implements Document.MessageCallback { mContext.getFormattingController().onToggleStateChanged(Document.BULLET_LIST, pressed); } else if (parts[0].equals(".uno:DefaultNumbering")) { mContext.getFormattingController().onToggleStateChanged(Document.NUMBERED_LIST, pressed); +} else if (parts[0].equals(".uno:StatePageNumber")) { +// get the total page number and compare to the current value and update accordingly +String[] splitStrings = parts[1].split(" "); +int totalPageNumber = Integer.valueOf(splitStrings[splitStrings.length - 1]); +if (totalPageNumber != currentTotalPageNumber) { +currentTotalPageNumber = totalPageNumber; +// update part page rectangles stored in DocumentOverlayView object +LOKitShell.sendEvent(new LOEvent(LOEvent.UPDATE_PART_PAGE_RECT)); +} } else { Log.d(LOGTAG, "LOK_CALLBACK_STATE_CHANGED type uncatched: " + payload); } @@ -207,7 +218,7 @@ public class InvalidationHandler implements Document.MessageCallback { * @param payload - invalidation message payload text * @return rectangle in pixel coordinates */ -private RectF convertPayloadToRectangle(String payload) { +public RectF convertPayloadToRectangle(String payload) { String payloadWithoutWhitespace = payload.replaceAll("\\s", ""); // remove all whitespace from the string if (payloadWithoutWhitespace.isEmpty() || payloadWithoutWhitespace.equals("EMPTY")) { @@ -241,7 +252,7 @@ public class InvalidationHandler implements Document.MessageCallback { * @param payload - invalidation message payload text * @return list of rectangles */ -private List convertPayloadToRectangles(String payload) { +public List convertPayloadToRectangles(String payload) { List rectangles = new ArrayList(); String[] rectangleArray = payload.split(";"); diff --git a/android/source/src/java/org/libreoffice/LOEvent.java b/android/source/src/java/org/libreoffice/LOEvent.java index 3e058c8c035e..f5579aea087a 100644 --- a/android/source/src/java/org/libreoffice/LOEvent.java +++ b/android/source/src/java/org/libreoffice/LOEvent.java @@ -36,6 +36,7 @@ public class LOEvent implements Comparable { public static final int RESUME = 15; public static final int LOAD_NEW = 16; public static final int SAVE_AS = 17; +public static final int UPDATE_PART_PAGE_RECT= 18;
[Libreoffice-commits] core.git: android/source
android/source/res/values/strings.xml|1 android/source/src/java/org/libreoffice/InvalidationHandler.java | 81 +- 2 files changed, 81 insertions(+), 1 deletion(-) New commits: commit 5333f93a6fd191e424327afe3935f2770a71f620 Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Mar 29 15:43:15 2017 -0500 tdf#96811 Android Viewer doesn't focus on the word you search. Added the function of focusing on the word you search. Two methods were added. The first one is searchResultSelection, which parses a JSONObject passed from LOK and focuses on the text selection. The second one is moveViewportToMakeSelectionVisible. It handles well both documents and spreadsheets. I also tried to add a search not found toast message. Also corrected a typo. Change-Id: I4453c01afc520bf4deae4c2bd71adea2fe856d7e Reviewed-on: https://gerrit.libreoffice.org/35715 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/res/values/strings.xml b/android/source/res/values/strings.xml index ce3754ee3d15..a554c84b4aef 100644 --- a/android/source/res/values/strings.xml +++ b/android/source/res/values/strings.xml @@ -25,6 +25,7 @@ List Grid Filter by +Keyword not found Sort by Smallest first Largest first diff --git a/android/source/src/java/org/libreoffice/InvalidationHandler.java b/android/source/src/java/org/libreoffice/InvalidationHandler.java index c4316c50a119..c8d3a5123c11 100644 --- a/android/source/src/java/org/libreoffice/InvalidationHandler.java +++ b/android/source/src/java/org/libreoffice/InvalidationHandler.java @@ -6,6 +6,9 @@ import android.graphics.RectF; import android.net.Uri; import android.util.Log; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; import org.libreoffice.canvas.SelectionHandle; import org.libreoffice.kit.Document; import org.libreoffice.overlay.DocumentOverlay; @@ -79,9 +82,85 @@ public class InvalidationHandler implements Document.MessageCallback { case Document.CALLBACK_STATE_CHANGED: stateChanged(payload); break; +case Document.CALLBACK_SEARCH_RESULT_SELECTION: +searchResultSelection(payload); +break; +case Document.CALLBACK_SEARCH_NOT_FOUND: +Log.d(LOGTAG, "LOK_CALLBACK: Search not found."); +// this callback is never caught. Hope someone fix this. +break; default: -Log.d(LOGTAG, "LOK_CALLBACK uncatched: " + messageID + " : " + payload); +Log.d(LOGTAG, "LOK_CALLBACK uncaught: " + messageID + " : " + payload); +} +} + +/** + * Handles the search result selection message, which is a JSONObject + * + * @param payload + */ +private void searchResultSelection(String payload) { +RectF selectionRectangle = null; +try { +JSONObject collectiveResult = new JSONObject(payload); +JSONArray searchResult = collectiveResult.getJSONArray("searchResultSelection"); +if (searchResult.length() == 1) { +String rectangle = searchResult.getJSONObject(0).getString("rectangles"); +selectionRectangle = convertPayloadToRectangle(rectangle); +} +} catch (JSONException e) { +e.printStackTrace(); +} +if (selectionRectangle != null) { +moveViewportToMakeSelectionVisible(selectionRectangle); +} +} + +/** + * Move the viewport to show the selection. The selection will appear at the + * viewport position depending on where the selection is relative to the + * viewport (either selection is above, below, on left or right). The difference + * between this method and moveViewportToMakeCursorVisible() is that this method + * takes into account the width and height of the selection and zooms out + * accordingly. + * + * @param selectionRectangle - selection position on the document + */ +public void moveViewportToMakeSelectionVisible(RectF selectionRectangle) { +RectF moveToRect = mLayerClient.getViewportMetrics().getCssViewport(); +if (moveToRect.contains(selectionRectangle)) { +return; } + +float newLeft = moveToRect.left; +float newTop = moveToRect.top; + +// if selection rectangle is wider or taller than current viewport, we need to zoom out +float oldZoom = mLayerClient.getViewportMetrics().getZoomFactor(); +float widthRatio = 1f; +float heightRatio = 1f; +if (moveToRect.width() < selectionRectangle.width()) { +widthRatio = selec
[Libreoffice-commits] core.git: android/source
android/source/src/java/org/libreoffice/LOKitThread.java | 6 ++ android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java | 2 -- android/source/src/java/org/mozilla/gecko/ZoomConstraints.java | 8 android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java | 1 - android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java | 4 +--- 5 files changed, 11 insertions(+), 10 deletions(-) New commits: commit ed900113d091431f89ccc312b55a6955ca341b9e Author: Ximeng Zu <uzno...@yahoo.com> Date: Thu Mar 16 23:24:27 2017 -0500 tdf#106368 android: restrict zoom to page width Created an overloaded constructor for ZoomConstraints class that takes in minZoom and maxZoom. Added calculation of minZoom according to page width and screen width and assigned the minZoom to ZoomConstraints in LOKitThread class. Deleted minZoom checking in the onScale method in JavaPanZoomController class because the checking prevented zoom-in from functioning. (Update: I also removed the old constructor because it is not used any more.) Change-Id: I89e80761efc093b3738970d4482dd735532c0397 Reviewed-on: https://gerrit.libreoffice.org/35308 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/src/java/org/libreoffice/LOKitThread.java b/android/source/src/java/org/libreoffice/LOKitThread.java index 31d3b96440ed..4dd403dd2d0c 100644 --- a/android/source/src/java/org/libreoffice/LOKitThread.java +++ b/android/source/src/java/org/libreoffice/LOKitThread.java @@ -8,6 +8,7 @@ import android.view.KeyEvent; import org.libreoffice.canvas.SelectionHandle; import org.libreoffice.ui.LibreOfficeUIActivity; +import org.mozilla.gecko.ZoomConstraints; import org.mozilla.gecko.gfx.CairoImage; import org.mozilla.gecko.gfx.ComposedTileLayer; import org.mozilla.gecko.gfx.GeckoLayerClient; @@ -197,6 +198,11 @@ class LOKitThread extends Thread { mInvalidationHandler = new InvalidationHandler(mContext); mTileProvider = TileProviderFactory.create(mContext, mInvalidationHandler, filePath); +// Set min zoom to the page width so that you cannot zoom below page width +// applies to all types of document; in the future spreadsheets may be singled out +float minZoom = mLayerClient.getViewportMetrics().getWidth()/mTileProvider.getPageWidth(); +mLayerClient.setZoomConstraints(new ZoomConstraints(true, 0.0f, minZoom, 0.0f)); + if (mTileProvider.isReady()) { LOKitShell.showProgressSpinner(mContext); refresh(); diff --git a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java index 53e956a7de69..3e41a7dda98f 100755 --- a/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java +++ b/android/source/src/java/org/libreoffice/LibreOfficeMainActivity.java @@ -33,7 +33,6 @@ import org.libreoffice.storage.DocumentProviderFactory; import org.libreoffice.storage.IFile; import org.libreoffice.ui.FileUtilities; import org.libreoffice.ui.LibreOfficeUIActivity; -import org.mozilla.gecko.ZoomConstraints; import org.mozilla.gecko.gfx.GeckoLayerClient; import org.mozilla.gecko.gfx.LayerView; @@ -191,7 +190,6 @@ public class LibreOfficeMainActivity extends AppCompatActivity { loKitThread.start(); mLayerClient = new GeckoLayerClient(this); -mLayerClient.setZoomConstraints(new ZoomConstraints(true)); LayerView layerView = (LayerView) findViewById(R.id.layer_view); mLayerClient.setView(layerView); layerView.setInputConnectionHandler(new LOKitInputConnectionHandler()); diff --git a/android/source/src/java/org/mozilla/gecko/ZoomConstraints.java b/android/source/src/java/org/mozilla/gecko/ZoomConstraints.java index eba0dfe54aff..f1672ba3dd76 100644 --- a/android/source/src/java/org/mozilla/gecko/ZoomConstraints.java +++ b/android/source/src/java/org/mozilla/gecko/ZoomConstraints.java @@ -12,12 +12,12 @@ public final class ZoomConstraints { private final float mMinZoom; private final float mMaxZoom; -public ZoomConstraints(boolean allowZoom) { +public ZoomConstraints(boolean allowZoom, float defaultZoom, float minZoom, float maxZoom) { mAllowZoom = allowZoom; mAllowDoubleTapZoom = allowZoom; -mDefaultZoom = 0.0f; -mMinZoom = 0.0f; -mMaxZoom = 0.0f; +mDefaultZoom = defaultZoom; +mMinZoom = minZoom; +mMaxZoom = maxZoom; } public final boolean getAllowZoom() { diff --git a/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java b/android/source/src/java/org/mozilla/gecko/gfx/GeckoLayerClient.java index 93ab1dd26d7f..386b1638ebaf 100644 --- a/android/source/src/java/org
[Libreoffice-commits] core.git: android/source
android/source/res/drawable-hdpi/ic_format_bold.xml |2 +- android/source/res/drawable-hdpi/ic_format_italic.xml|2 +- android/source/res/drawable-hdpi/ic_format_strikethrough.xml |2 +- android/source/res/drawable-hdpi/ic_keyboard.xml |2 +- android/source/res/drawable-hdpi/ic_menu.xml |2 +- android/source/res/drawable-hdpi/ic_text_format.xml |2 +- android/source/res/drawable/ic_check.xml |2 +- android/source/res/drawable/ic_format_align_center.xml |2 +- android/source/res/drawable/ic_format_align_justify.xml |2 +- android/source/res/drawable/ic_format_align_left.xml |2 +- android/source/res/drawable/ic_format_align_right.xml|2 +- android/source/res/drawable/ic_format_bullets.xml|2 +- android/source/res/drawable/ic_format_numbering.xml |2 +- android/source/res/drawable/ic_redo.xml |2 +- android/source/res/drawable/ic_search.xml|2 +- android/source/res/drawable/ic_search_direction_down.xml |2 +- android/source/res/drawable/ic_search_direction_up.xml |2 +- android/source/res/drawable/ic_undo.xml |2 +- android/source/res/values/colors.xml |2 +- 19 files changed, 19 insertions(+), 19 deletions(-) New commits: commit b35552f39503b9baca9c2d7b6944d9f18ca0004a Author: Ximeng Zu <uzno...@yahoo.com> Date: Wed Apr 5 09:23:14 2017 -0500 Fix typo: 'forgeround' in multiple files Fixed typo: forgeround --> foreground in 19 files. Change-Id: Idb4c9ccd98a949a2574cdbd5b44f91509b9856a9 Reviewed-on: https://gerrit.libreoffice.org/36154 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Gautam Prajapati <gautamprajapat...@gmail.com> Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com> diff --git a/android/source/res/drawable-hdpi/ic_format_bold.xml b/android/source/res/drawable-hdpi/ic_format_bold.xml index 83de6472d6ae..a3519d44941c 100644 --- a/android/source/res/drawable-hdpi/ic_format_bold.xml +++ b/android/source/res/drawable-hdpi/ic_format_bold.xml @@ -2,4 +2,4 @@ http://schemas.android.com/apk/res/android; android:src="@drawable/ic_format_bold_black_24dp" -android:tint="@color/toolbar_forgeround"/> \ No newline at end of file +android:tint="@color/toolbar_foreground"/> \ No newline at end of file diff --git a/android/source/res/drawable-hdpi/ic_format_italic.xml b/android/source/res/drawable-hdpi/ic_format_italic.xml index 515568aaa8b6..7a3e9872dd32 100644 --- a/android/source/res/drawable-hdpi/ic_format_italic.xml +++ b/android/source/res/drawable-hdpi/ic_format_italic.xml @@ -2,4 +2,4 @@ http://schemas.android.com/apk/res/android; android:src="@drawable/ic_format_italic_black_24dp" -android:tint="@color/toolbar_forgeround"/> \ No newline at end of file +android:tint="@color/toolbar_foreground"/> \ No newline at end of file diff --git a/android/source/res/drawable-hdpi/ic_format_strikethrough.xml b/android/source/res/drawable-hdpi/ic_format_strikethrough.xml index 4ca24bc9333c..1aaa1d25fa95 100644 --- a/android/source/res/drawable-hdpi/ic_format_strikethrough.xml +++ b/android/source/res/drawable-hdpi/ic_format_strikethrough.xml @@ -2,4 +2,4 @@ http://schemas.android.com/apk/res/android; android:src="@drawable/ic_format_strikethrough_black_24dp" -android:tint="@color/toolbar_forgeround"/> \ No newline at end of file +android:tint="@color/toolbar_foreground"/> \ No newline at end of file diff --git a/android/source/res/drawable-hdpi/ic_keyboard.xml b/android/source/res/drawable-hdpi/ic_keyboard.xml index d95890b3f0bc..00902169d505 100644 --- a/android/source/res/drawable-hdpi/ic_keyboard.xml +++ b/android/source/res/drawable-hdpi/ic_keyboard.xml @@ -2,4 +2,4 @@ http://schemas.android.com/apk/res/android; android:src="@drawable/ic_keyboard_black_24dp" -android:tint="@color/toolbar_forgeround"/> \ No newline at end of file +android:tint="@color/toolbar_foreground"/> \ No newline at end of file diff --git a/android/source/res/drawable-hdpi/ic_menu.xml b/android/source/res/drawable-hdpi/ic_menu.xml index 62440f0eea3d..3d9b9c9ed5c4 100644 --- a/android/source/res/drawable-hdpi/ic_menu.xml +++ b/android/source/res/drawable-hdpi/ic_menu.xml @@ -2,4 +2,4 @@ http://schemas.android.com/apk/res/android; android:src="@drawable/ic_menu_black_24dp" -android:tint="@color/toolbar_forgeround"/> \ No newline at end of file +android:tint="@color/toolbar_foreground"/> \ No newline at end of file diff --git a/android/source/res/drawable-hdpi/ic_text_format.xml b/android/source/res/drawa
[Libreoffice-commits] core.git: android/Bootstrap
android/Bootstrap/src/org/libreoffice/kit/Document.java |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) New commits: commit 662a1b0a52bdb891ae5802a4799af884e854f205 Author: Ximeng Zu <uzno...@yahoo.com> Date: Tue Apr 4 16:09:28 2017 -0500 Fix typo: inticator -> indicator The related code is not being used now... So, it's safe to just correct it before it is put to use. Change-Id: I1ba5f1d6d511c965c0ce08dd08bfcabc567da2c3 Reviewed-on: https://gerrit.libreoffice.org/36103 Reviewed-by: Julien Nabet <serval2...@yahoo.fr> Tested-by: Julien Nabet <serval2...@yahoo.fr> diff --git a/android/Bootstrap/src/org/libreoffice/kit/Document.java b/android/Bootstrap/src/org/libreoffice/kit/Document.java index 7cf99413644c..cd8297c21978 100644 --- a/android/Bootstrap/src/org/libreoffice/kit/Document.java +++ b/android/Bootstrap/src/org/libreoffice/kit/Document.java @@ -64,9 +64,9 @@ public class Document { public static final int CALLBACK_GRAPHIC_SELECTION = 6; public static final int CALLBACK_HYPERLINK_CLICKED = 7; public static final int CALLBACK_STATE_CHANGED = 8; -public static final int CALLBACK_STATUS_INTICATOR_START = 9; -public static final int CALLBACK_STATUS_INTICATOR_SET_VALUE = 10; -public static final int CALLBACK_STATUS_INTICATOR_FINISH = 11; +public static final int CALLBACK_STATUS_INDICATOR_START = 9; +public static final int CALLBACK_STATUS_INDICATOR_SET_VALUE = 10; +public static final int CALLBACK_STATUS_INDICATOR_FINISH = 11; public static final int CALLBACK_SEARCH_NOT_FOUND = 12; public static final int CALLBACK_DOCUMENT_SIZE_CHANGED = 13; public static final int CALLBACK_SET_PART = 14; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: android/source
android/source/AndroidManifest.xml |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) New commits: commit c1769e9b27bcf62e644927139d07ee195803363a Author: Ximeng Zu <uzno...@yahoo.com> Date: Sun Mar 26 12:25:19 2017 -0500 tdf#96816 android: top part unreachable with soft keyboard Uncomment in Manifest file the line related to input method: android:windowSoftInputMode="adjustResize" This allows for panning and zooming to the top part of the document. Change-Id: Ic75489071add6b52948d381f4f8b7205148b78ef Reviewed-on: https://gerrit.libreoffice.org/35721 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> Tested-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/android/source/AndroidManifest.xml b/android/source/AndroidManifest.xml index 601f478ae352..d0fde624572d 100644 --- a/android/source/AndroidManifest.xml +++ b/android/source/AndroidManifest.xml @@ -24,8 +24,8 @@ - + android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|uiMode|screenSize|smallestScreenSize" +android:windowSoftInputMode="adjustResize" > ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits