[Libreoffice-commits] core.git: android/source

Michael Weghorn (via logerrit) logerrit at kemper.freedesktop.org
Thu Dec 12 13:32:22 UTC 2019


 android/source/src/java/org/libreoffice/ColorPaletteAdapter.java |    5 +++--
 android/source/src/java/org/libreoffice/ColorPickerAdapter.java  |    2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 64bf055db690a4475cf49dc03800619674b891c2
Author:     Michael Weghorn <m.weghorn at posteo.de>
AuthorDate: Thu Dec 12 11:45:05 2019 +0100
Commit:     Michael Weghorn <m.weghorn at posteo.de>
CommitDate: Thu Dec 12 14:30:57 2019 +0100

    tdf#115698 android: Don't modify doc on color palette initialization
    
    Previously, the call to 'ColorPaletteAdapter::setColorPalette' from
    the 'ColorPickerAdapter' constructur (via 'initializeColorPalette')
    would not just set the color palette, but also apply the color at
    index (0, 0) to the current selection, since
    'ColorPaleteAdapter::setPosition' calls
    'colorPaletteListener.applyColor' after setting the position.
    
    This is an undesirable side effect, and led to the situation described
    in tdf#115698 that cell A1 would always get black background when
    opening a spreadsheet in the Android viewer, since black is the color
    at 'color_palette[0][0]' by default and cell A1 is explicitly selected
    when Calc first opens, s. the 'CalcHeadersController' constructor.
    
    For Writer, something similar could be reproduced by selecting a
    word in a document using long-tap. If experimental editing mode was
    enabled, that word got black background (other words selected
    later didn't).
    
    To avoid this, make 'ColorPaletteAdapter::setColorPalette' just set
    the color palette and set back the values that indicate what is
    selected but don't apply any color. (And make 'setColorPalette'
    just take the palette as parameter, and set 0 for both start values,
    as the only caller was doing as well).
    
    Change-Id: I0fa720ac6550102701a2c82905c9720aab6daab2
    Reviewed-on: https://gerrit.libreoffice.org/85044
    Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
    Tested-by: Michael Weghorn <m.weghorn at posteo.de>

diff --git a/android/source/src/java/org/libreoffice/ColorPaletteAdapter.java b/android/source/src/java/org/libreoffice/ColorPaletteAdapter.java
index a6d250f6380d..6ec6aa138f66 100644
--- a/android/source/src/java/org/libreoffice/ColorPaletteAdapter.java
+++ b/android/source/src/java/org/libreoffice/ColorPaletteAdapter.java
@@ -100,9 +100,10 @@ public class ColorPaletteAdapter extends RecyclerView.Adapter<ColorPaletteAdapte
 
     }
 
-    public void setColorPalette(int[][] color_palette, int position1, int position2) {
+    public void setColorPalette(int[][] color_palette) {
         this.color_palette = color_palette;
-        setPosition(position1, position2);
+        this.upperSelectedBox = 0;
+        this.selectedBox = 0;
     }
 
     private void updateAdapter(){
diff --git a/android/source/src/java/org/libreoffice/ColorPickerAdapter.java b/android/source/src/java/org/libreoffice/ColorPickerAdapter.java
index 092de46caec4..c93d5a01bbb4 100644
--- a/android/source/src/java/org/libreoffice/ColorPickerAdapter.java
+++ b/android/source/src/java/org/libreoffice/ColorPickerAdapter.java
@@ -115,7 +115,7 @@ public class ColorPickerAdapter extends RecyclerView.Adapter<ColorPickerAdapter.
         for (int i = 0; i < 11; i++){
             this.colorPalette[i][7] = (Color.rgb(255, 255, 255)); // last one is always white
         }
-        colorPaletteAdapter.setColorPalette(colorPalette, 0, 0);
+        colorPaletteAdapter.setColorPalette(colorPalette);
     }
 
     public void findSelectedTextColor(int color) {


More information about the Libreoffice-commits mailing list