X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FMisc.java;h=67dc0958686a9722f15b3f797d3634740c531dbc;hp=5b85f97097a0c35ebeb16c085586f5d749c09008;hb=HEAD;hpb=82cf0169d61ccf2feef4dc9d37f2afb054ee03f4 diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/Misc.java b/app/src/main/java/net/ktnx/mobileledger/utils/Misc.java index 5b85f970..67dc0958 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/Misc.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/Misc.java @@ -19,6 +19,8 @@ package net.ktnx.mobileledger.utils; import android.app.Activity; import android.content.res.Configuration; +import android.os.Handler; +import android.os.Looper; import android.text.Editable; import android.view.WindowManager; @@ -29,6 +31,7 @@ import androidx.fragment.app.FragmentActivity; import org.jetbrains.annotations.Contract; public class Misc { + public static final char ZERO_WIDTH_SPACE = '\u200B'; public static boolean isZero(float f) { return (f < 0.005) && (f > -0.005); } @@ -62,7 +65,7 @@ public class Misc { } public static String emptyIsNull(String str) { - return "".equals(str) ? null : str; + return str != null && str.isEmpty() ? null : str; } public static String nullIsEmpty(String str) { return (str == null) ? "" : str; @@ -102,4 +105,25 @@ public class Misc { return a.equals(b); } + public static void onMainThread(Runnable r) { + new Handler(Looper.getMainLooper()).post(r); + } + public static String addWrapHints(String input) { + if (input == null) + return null; + StringBuilder result = new StringBuilder(); + int lastPos = 0; + int pos = input.indexOf(':'); + + while (pos >= 0) { + result.append(input.substring(lastPos, pos + 1)) + .append(ZERO_WIDTH_SPACE); + lastPos = pos + 1; + pos = input.indexOf(':', lastPos + 1); + } + if (lastPos > 0) + result.append(input.substring(lastPos)); + + return result.toString(); + } }