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

Commit 399ea832 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Add DataUnit to clarify SI-vs-IEC units.

Improve docs and propose it as public API.

Test: builds, boots
Bug: 70915728
Change-Id: I9b55601e9eb8c069eeccd5f8f5e64fb34e336fd2
parent 633792e2
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -44081,6 +44081,18 @@ package android.util {
    field public static final deprecated boolean RELEASE = true;
  }
  public class DataUnit extends java.lang.Enum {
    method public long toBytes(long);
    method public static android.util.DataUnit valueOf(java.lang.String);
    method public static final android.util.DataUnit[] values();
    enum_constant public static final android.util.DataUnit GIBIBYTES;
    enum_constant public static final android.util.DataUnit GIGABYTES;
    enum_constant public static final android.util.DataUnit KIBIBYTES;
    enum_constant public static final android.util.DataUnit KILOBYTES;
    enum_constant public static final android.util.DataUnit MEBIBYTES;
    enum_constant public static final android.util.DataUnit MEGABYTES;
  }
  public class DebugUtils {
    method public static boolean isObjectSelected(java.lang.Object);
  }
+7 −4
Original line number Diff line number Diff line
@@ -20,12 +20,15 @@ import java.time.temporal.ChronoUnit;
import java.util.concurrent.TimeUnit;

/**
 * Constants for common byte-related units. Note that both SI and IEC units are
 * supported, and you'll need to pick the correct one for your use-case.
 * A {@code DataUnit} represents data sizes at a given unit of granularity and
 * provides utility methods to convert across units.
 * <p>
 * Note that both SI units (powers of 10) and IEC units (powers of 2) are
 * supported, and you'll need to pick the correct one for your use-case. For
 * example, Wikipedia defines a "kilobyte" as an SI unit of 1000 bytes, and a
 * "kibibyte" as an IEC unit of 1024 bytes.
 * <p>
 * This design is mirrored after {@link TimeUnit} and {@link ChronoUnit}.
 *
 * @hide
 */
public enum DataUnit {
    KILOBYTES { @Override public long toBytes(long v) { return v * 1_000; } },