From 6b578096468d096567f7feea078164f1f7dd5a2e Mon Sep 17 00:00:00 2001 From: Roi Greenberg Date: Sun, 26 Aug 2018 02:06:45 +0300 Subject: [PATCH] Fix missing space --- .../gadgetbridge/util/RtlUtils.java | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/RtlUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/RtlUtils.java index 5d5f0d446..1a8f59c61 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/RtlUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/RtlUtils.java @@ -135,6 +135,27 @@ class RtlUtils { return false; } + //list of sign that ends a word + private static ArrayList endLineSigns = new ArrayList() { + { + add('\0'); + add('\n'); + } + }; + + /** + * @return true if the char is in the end of word list, otherwise false + */ + static Boolean isEndLineSign(char c){ + for (char sign: endLineSigns){ + if (c == sign){ + return true; + } + } + + return false; + } + //map from Arabian characters to their contextual form in the beginning of the word private static Map contextualArabicIsolated = new HashMap(){ { @@ -338,7 +359,7 @@ class RtlUtils { Character curChar, nextChar = s.charAt(0); contextualState prevState = contextualState.isolate; contextualState curState = contextualState.isolate; - + for (int i = 0; i < length - 1; i++){ curChar = nextChar; nextChar = s.charAt(i + 1); @@ -400,7 +421,7 @@ class RtlUtils { */ static String reverse(String s) { int j = s.length(); - int startWithSpace = 0; + int isEndLine = 0; char[] newWord = new char[j]; if (j == 0) { @@ -408,18 +429,19 @@ class RtlUtils { } // remain end-of-word sign at the end - if (isWordEndSign(s.charAt(s.length() - 1))){ - startWithSpace = 1; + if (isEndLineSign(s.charAt(s.length() - 1))){ + isEndLine = 1; newWord[--j] = s.charAt(s.length() - 1); } - for (int i = 0; i < s.length() - startWithSpace; i++) { + for (int i = 0; i < s.length() - isEndLine; i++) { if (directionSignsMap.containsKey(s.charAt(i))) { newWord[--j] = directionSignsMap.get(s.charAt(i)); } else { newWord[--j] = s.charAt(i); } } + return new String(newWord); } }