blob: 3e8a7de32281c3e9a6de6d245212b0c86a325ae5 [file] [log] [blame]
/*
* Copyright 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package androidx.compose.ui.text.input
import androidx.compose.runtime.Stable
/** Values representing the different available Keyboard Types. */
@kotlin.jvm.JvmInline
value class KeyboardType private constructor(@Suppress("unused") private val value: Int) {
override fun toString(): String {
return when (this) {
Unspecified -> "Unspecified"
Text -> "Text"
Ascii -> "Ascii"
Number -> "Number"
Phone -> "Phone"
Uri -> "Uri"
Email -> "Email"
Password -> "Password"
NumberPassword -> "NumberPassword"
Decimal -> "Decimal"
else -> "Invalid"
}
}
companion object {
/** The keyboard type is not specified. */
@Stable val Unspecified: KeyboardType = KeyboardType(0)
/** A keyboard type used to request an IME that shows regular keyboard. */
@Stable val Text: KeyboardType = KeyboardType(1)
/** A keyboard type used to request an IME that is capable of inputting ASCII characters. */
@Stable val Ascii: KeyboardType = KeyboardType(2)
/**
* A keyboard type used to request an IME that is capable of inputting digits. IME may
* provide inputs other than digits but it is not guaranteed.
*
* @see KeyboardType.Decimal
*/
@Stable val Number: KeyboardType = KeyboardType(3)
/** A keyboard type used to request an IME that is capable of inputting phone numbers. */
@Stable val Phone: KeyboardType = KeyboardType(4)
/** A keyboard type used to request an IME that is capable of inputting URIs. */
@Stable val Uri: KeyboardType = KeyboardType(5)
/** A keyboard type used to request an IME that is capable of inputting email addresses. */
@Stable val Email: KeyboardType = KeyboardType(6)
/** A keyboard type used to request an IME that is capable of inputting password. */
@Stable val Password: KeyboardType = KeyboardType(7)
/** A keyboard type used to request an IME that is capable of inputting number password. */
@Stable val NumberPassword: KeyboardType = KeyboardType(8)
/**
* A keyboard type used to request an IME that is capable of inputting decimals. IME should
* explicitly provide a decimal separator as input, which is not assured by
* [KeyboardType.Number].
*/
@Stable val Decimal: KeyboardType = KeyboardType(9)
}
}