Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91bb9d0a authored by Roozbeh Pournader's avatar Roozbeh Pournader Committed by Android Git Automerger
Browse files

am 9bdb7bfd: Merge "Bidi-wrap the results of format[Short]FileSize()." into mnc-dev

* commit '9bdb7bfd':
  Bidi-wrap the results of format[Short]FileSize().
parents ddb33d7d 9bdb7bfd
Loading
Loading
Loading
Loading
+26 −5
Original line number Diff line number Diff line
@@ -16,12 +16,18 @@

package android.text.format;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.Resources;
import android.text.BidiFormatter;
import android.text.TextUtils;
import android.view.View;
import android.net.NetworkUtils;
import android.net.TrafficStats;

import java.util.Locale;

/**
 * Utility class to aid in formatting common values that are not covered
 * by the {@link java.util.Formatter} class in {@link java.util}
@@ -46,8 +52,23 @@ public final class Formatter {
        }
    }

    /* Wraps the source string in bidi formatting characters in RTL locales */
    private static String bidiWrap(@NonNull Context context, String source) {
        final Locale locale = context.getResources().getConfiguration().locale;
        if (TextUtils.getLayoutDirectionFromLocale(locale) == View.LAYOUT_DIRECTION_RTL) {
            return BidiFormatter.getInstance(true /* RTL*/).unicodeWrap(source);
        } else {
            return source;
        }
    }

    /**
     * Formats a content size to be in the form of bytes, kilobytes, megabytes, etc
     * Formats a content size to be in the form of bytes, kilobytes, megabytes, etc.
     *
     * If the context has a right-to-left locale, the returned string is wrapped in bidi formatting
     * characters to make sure it's displayed correctly if inserted inside a right-to-left string.
     * (This is useful in cases where the unit strings, like "MB", are left-to-right, but the
     * locale is right-to-left.)
     *
     * @param context Context to use to load the localized units
     * @param sizeBytes size value to be formatted, in bytes
@@ -58,8 +79,8 @@ public final class Formatter {
            return "";
        }
        final BytesResult res = formatBytes(context.getResources(), sizeBytes, 0);
        return context.getString(com.android.internal.R.string.fileSizeSuffix,
                res.value, res.units);
        return bidiWrap(context, context.getString(com.android.internal.R.string.fileSizeSuffix,
                res.value, res.units));
    }

    /**
@@ -71,8 +92,8 @@ public final class Formatter {
            return "";
        }
        final BytesResult res = formatBytes(context.getResources(), sizeBytes, FLAG_SHORTER);
        return context.getString(com.android.internal.R.string.fileSizeSuffix,
                res.value, res.units);
        return bidiWrap(context, context.getString(com.android.internal.R.string.fileSizeSuffix,
                res.value, res.units));
    }

    /** {@hide} */