androidx.ink.storage


Interfaces

BrushFamilyDecodeCallback

A callback to use with decode to manage texture image assets.

android
OnDecodeTexturePngBytes
Cmn
TexturePngBytesLookup
Cmn

Exceptions

IOException
Cmn
android

Objects

Type aliases

IOException
android

Extension functions summary

ImmutableStrokeInputBatch

Read a serialized gzip-compressed ink.proto.CodedStrokeInputBatch from the given ByteArray and parse it into a ImmutableStrokeInputBatch, throwing an exception if parsing or validation was not successful.

Cmn
ImmutableStrokeInputBatch

Read a serialized gzip-compressed ink.proto.CodedStrokeInputBatch from the given InputStream and parse it into a ImmutableStrokeInputBatch, throwing an exception if parsing or validation was not successful.

android
BrushFamily
BrushFamily.Companion.decode(
    input: InputStream,
    getClientTextureId: BrushFamilyDecodeCallback
)

See decode above.

android
BrushFamily
@Throws(exceptionClasses = [IOException])
BrushFamily.Companion.decode(
    input: ByteArray,
    maxVersion: Version,
    onDecodeTexture: OnDecodeTexturePngBytes?
)

Read a serialized BrushFamily from the given ByteArray and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

Cmn
BrushFamily
BrushFamily.Companion.decode(
    input: InputStream,
    maxVersion: Version,
    getClientTextureId: BrushFamilyDecodeCallback
)

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

android
BrushFamily
BrushFamily.Companion.decode(
    input: InputStream,
    maxVersion: Version,
    onDecodeTexture: OnDecodeTexturePngBytes?
)

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

android
ByteArray

Write a gzip-compressed ink.proto.CodedStrokeInputBatch binary proto message representing the StrokeInputBatch to the given ByteArray.

Cmn
Unit

Write a gzip-compressed ink.proto.CodedStrokeInputBatch binary proto message representing the StrokeInputBatch to the given OutputStream.

android
ByteArray
BrushFamily.encode(textureIdToPngBytes: TexturePngBytesLookup?)

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given ByteArray using the provided texture map represented in corresponding arrays of keys (client texture IDs) and values (PNG bytes).

Cmn
Unit
BrushFamily.encode(
    output: OutputStream,
    textureBitmapStore: TextureBitmapStore
)

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given OutputStream.

android
Unit
BrushFamily.encode(
    output: OutputStream,
    textureIdToPngBytes: TexturePngBytesLookup?
)

Write a gzip-compressed serialized ink.proto.BrushFamily proto message representing the BrushFamily to the given OutputStream.

android

Extension functions

StrokeInputBatch.Companion.decode

@Throws(exceptionClasses = [IOException])
fun StrokeInputBatch.Companion.decode(input: ByteArray): ImmutableStrokeInputBatch

Read a serialized gzip-compressed ink.proto.CodedStrokeInputBatch from the given ByteArray and parse it into a ImmutableStrokeInputBatch, throwing an exception if parsing or validation was not successful.

Parameters
input: ByteArray

ByteArray providing gzip-compressed ink.proto.CodedStrokeInputBatch binary proto messages, the same as written by encode.

Throws
IOException

if gzip-format bytes cannot be read from input.

IllegalArgumentException

input does not provide a valid ink.proto.CodedStrokeInputBatch proto message, or the corresponding StrokeInputBatch is invalid.

StrokeInputBatch.Companion.decode

fun StrokeInputBatch.Companion.decode(input: InputStream): ImmutableStrokeInputBatch

Read a serialized gzip-compressed ink.proto.CodedStrokeInputBatch from the given InputStream and parse it into a ImmutableStrokeInputBatch, throwing an exception if parsing or validation was not successful. Java callers should use StrokeInputBatchSerialization.decode instead.

Parameters
input: InputStream

InputStream providing gzip-compressed ink.proto.CodedStrokeInputBatch binary proto messages, the same as written by encode.

Throws
java.io.IOException

if gzip-format bytes cannot be read from input.

IllegalArgumentException

input does not provide a valid ink.proto.CodedStrokeInputBatch proto message, or the corresponding StrokeInputBatch is invalid.

BrushFamily.Companion.decode

fun BrushFamily.Companion.decode(
    input: InputStream,
    getClientTextureId: BrushFamilyDecodeCallback
): BrushFamily

See decode above. This overload uses Version.MAX_SUPPORTED.

BrushFamily.Companion.decode

@Throws(exceptionClasses = [IOException])
fun BrushFamily.Companion.decode(
    input: ByteArray,
    maxVersion: Version = Version.MAX_SUPPORTED,
    onDecodeTexture: OnDecodeTexturePngBytes? = null
): BrushFamily

Read a serialized BrushFamily from the given ByteArray and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful.

Parameters
input: ByteArray

ByteArray providing gzip-compressed ink.proto.BrushFamily binary proto messages, the same as written by encode.

maxVersion: Version = Version.MAX_SUPPORTED

The maximum Version supported by the deserializer. Proto objects with a min_version of greater than maxVersion will be rejected.

onDecodeTexture: OnDecodeTexturePngBytes? = null

A callback to store any decoded texture image, if any were encoded inside the serialized BrushFamily. This is called synchronously as part of this function call, on the same thread, once for each texture image.

Returns
BrushFamily

The BrushFamily parsed from the ByteArray.

Throws
IllegalArgumentException

input does not provide a valid ink.proto.BrushFamily proto message, or the corresponding BrushFamily is invalid.

IOException

if gzip-format bytes cannot be read from input.

BrushFamily.Companion.decode

fun BrushFamily.Companion.decode(
    input: InputStream,
    maxVersion: Version,
    getClientTextureId: BrushFamilyDecodeCallback
): BrushFamily

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful. Java callers should use AndroidBrushFamilySerialization.decode instead.

Parameters
input: InputStream

InputStream providing gzip-compressed ink.proto.BrushFamily binary proto messages, the same as written to OutputStream by encode.

maxVersion: Version

The maximum Version to be supported by the deserializer. Proto objects with a min_version of greater than maxVersion will be rejected.

getClientTextureId: BrushFamilyDecodeCallback

A callback to store the decoded texture image, if one were encoded inside the serialized BrushFamily, into a TextureBitmapStore. This is called synchronously as part of this function call on the same thread.

Returns
BrushFamily

The BrushFamily parsed from the InputStream.

Throws
java.io.IOException

if gzip-format bytes cannot be read from input.

IllegalArgumentException

input does not provide a valid ink.proto.BrushFamily proto message, or the corresponding BrushFamily is invalid.

BrushFamily.Companion.decode

fun BrushFamily.Companion.decode(
    input: InputStream,
    maxVersion: Version = Version.MAX_SUPPORTED,
    onDecodeTexture: OnDecodeTexturePngBytes? = null
): BrushFamily

Read a serialized BrushFamily from the given InputStream and parse it into a BrushFamily, throwing an exception if parsing or validation was not successful. Java callers should use BrushFamilySerialization.decode instead.

Parameters
input: InputStream

InputStream providing gzip-compressed ink.proto.BrushFamily binary proto messages, the same as written by encode.

maxVersion: Version = Version.MAX_SUPPORTED

The maximum Version supported by the deserializer. Proto objects with a min_version of greater than maxVersion will be rejected.

onDecodeTexture: OnDecodeTexturePngBytes? = null

A callback to store any decoded texture image, if any were encoded inside the serialized BrushFamily. This is called synchronously as part of this function call, on the same thread, once for each texture image.

Returns
BrushFamily

The BrushFamily parsed from the InputStream.

Throws
java.io.IOException

if gzip-format bytes cannot be read from input.

IllegalArgumentException

input does not provide a valid ink.proto.BrushFamily proto message, or the corresponding BrushFamily is invalid.

StrokeInputBatch.encode

fun StrokeInputBatch.encode(): ByteArray

Write a gzip-compressed ink.proto.CodedStrokeInputBatch binary proto message representing the StrokeInputBatch to the given ByteArray.

StrokeInputBatch.encode

fun StrokeInputBatch.encode(output: OutputStream): Unit

Write a gzip-compressed ink.proto.CodedStrokeInputBatch binary proto message representing the StrokeInputBatch to the given OutputStream.

BrushFamily.encode

fun BrushFamily.encode(textureIdToPngBytes: TexturePngBytesLookup? = null): ByteArray

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given ByteArray using the provided texture map represented in corresponding arrays of keys (client texture IDs) and values (PNG bytes). If BrushFamily.hasFallbacks is true, then the stored proto message including fallbacks for this BrushFamily will be used instead of recomputing the proto from the BrushFamily object.

Parameters
textureIdToPngBytes: TexturePngBytesLookup? = null

A callback to retrieve the PNG bytes of the texture bitmap for a given client texture ID.

BrushFamily.encode

fun BrushFamily.encode(
    output: OutputStream,
    textureBitmapStore: TextureBitmapStore
): Unit

Write a gzip-compressed ink.proto.BrushFamily binary proto message representing the BrushFamily to the given OutputStream. If hasFallbacks is true, then the stored, proto message including fallbacks for this BrushFamily will be used instead of recomputing the proto from the BrushFamily object.

Parameters
BrushFamily

The BrushFamily object to encode.

output: OutputStream

The OutputStream to write the gzip-compressed encoded bytes to.

textureBitmapStore: TextureBitmapStore

The TextureBitmapStore to use to encode the texture images within the encoded BrushFamily. If this is not desired behavior, e.g. if the application has a static set of texture images that it includes as resources, then this can be a TextureBitmapStore that always returns null.

BrushFamily.encode

fun BrushFamily.encode(
    output: OutputStream,
    textureIdToPngBytes: TexturePngBytesLookup? = null
): Unit

Write a gzip-compressed serialized ink.proto.BrushFamily proto message representing the BrushFamily to the given OutputStream. If BrushFamily.hasFallbacks is true, then the stored proto message including fallbacks for this BrushFamily will be used instead of recomputing the proto from the BrushFamily object.