Коммит e64ac032 создал по автору Зарубин Виталий Викторович's avatar Зарубин Виталий Викторович
Просмотр файлов

add aurora-kinterop and local maven

владелец fa930018
......@@ -8,6 +8,9 @@ src = "src"
build-dir = "public"
create-missing = false
[output.html.fold]
enable = true
[output.html]
default-theme = "light"
preferred-dark-theme = "coal"
......
......@@ -12,8 +12,30 @@
# Библиотеки
- [Aurora KInterop](./book/aurora-kinterop/main.md)
- [Battery Info](./book/aurora-kinterop/ak-battery-info.md).
- [Camera Info](./book/aurora-kinterop/ak-camera-info.md).
- [Connectivity Info](./book/aurora-kinterop/ak-connectivity-info.md).
- [Device Info](./book/aurora-kinterop/ak-device-info.md).
- [Local Notification](./book/aurora-kinterop/ak-local-notification.md).
- [Location Info](./book/aurora-kinterop/ak-location-info.md).
- [Package Info](./book/aurora-kinterop/ak-package-info.md).
- [Path Info](./book/aurora-kinterop/ak-path-info.md).
- [Sensors Info](./book/aurora-kinterop/ak-sensors-info.md).
- [Share Data](./book/aurora-kinterop/ak-share-data.md).
- [Shared Preferences](./book/aurora-kinterop/ak-shared-preferences.md).
- [Shared Preferences Secure](./book/aurora-kinterop/ak-shared-preferences-secure.md).
- [Theme Info](./book/aurora-kinterop/ak-theme-info.md).
- [Uri Launcher](./book/aurora-kinterop/ak-uri-launcher.md).
- [Vibration](./book/aurora-kinterop/ak-vibration.md).
- [WakeLock](./book/aurora-kinterop/ak-wakelock.md).
- [Ktor](./book/libs/ktor.md)
# Примеры
- [StudentBox](./book/examples/student-box.md)
- [Demo Aurora Interop](./book/examples/demo-aurora-interop.md)
# Репозитории
- [Local Maven](./book/localMaven.md)
\ Нет новой строки в конце файла
......@@ -75,7 +75,7 @@ a span.icon {
text-align: left;
}
.chapter li.part-title{
.chapter li.part-title {
font-size: 16px;
}
......@@ -113,7 +113,7 @@ a span.icon {
border-radius: 10px;
}
.chapter .chapter-item a {
.chapter .chapter-item a:not(.toggle) {
background-color: var(--sidebar-nonactive);
display: block;
padding: 5px 8px;
......@@ -122,16 +122,22 @@ a span.icon {
width: 100%;
}
.chapter .chapter-item a:hover:not(.active) {
.chapter .chapter-item a:hover:not(.active):not(.toggle) {
background-color: var(--sidebar-nonactive-focus);
color: var(--sidebar-fg);
}
.chapter .chapter-item a.active {
.chapter .chapter-item a.active:not(.toggle) {
background-color: var(--sidebar-active);
color: white;
}
.chapter .chapter-item a.toggle div {
position: relative;
top: 2px;
left: 4px;
}
blockquote {
border-radius: 6px;
border: var(--quote-border);
......@@ -144,10 +150,10 @@ blockquote code.hljs {
/* Hide Index */
.chapter strong,
.chapter > .chapter-item:first-child {
.chapter>.chapter-item:first-child {
display: none;
}
.chapter > .chapter-item:nth-child(2) {
.chapter>.chapter-item:nth-child(2) {
margin-top: -13px;
}
# Battery Info
Библиотека для доступа к информации об аккумуляторе устройства.
### Features
- Уровень заряда аккумулятора.
- Состояние зарядного устройства.
- Прослушивание состояния зарядного устройства.
### Permissions
```
Permissions=DeviceInfo
```
### Dependency
- `LIBS += -ldbus-1`
### Example
```kotlin
var states: MutableMap<ULong, Boolean> = mutableMapOf()
class AuroraBatteryInfo {
fun getLevel(): Int {
return BatteryInfo.getLevel()
}
fun listen(): ULong {
return BatteryInfo.listenCharger { id, value ->
states.put(id, value)
}
}
fun getStateCharger(id: ULong): Boolean {
return states[id] ?: false
}
}
```
# Camera Info
Библиотека позволяет получить информацию о камерах устройства.
### Features:
- Получение информации о камерах.
- Получение информации о количестве камер.
### Dependency
- `BuildRequires: pkgconfig(streamcamera)`
- `PKGCONFIG += streamcamera`
### Example
```kotlin
data class SharedCameraInfo(
val id: String,
val name: String,
val provider: String,
val mountAngle: Int,
)
class AuroraCameraInfo {
fun getSharedCameraInfo(): List<SharedCameraInfo> {
return CameraInfo.getInfoList().map {
SharedCameraInfo(
id = it.id,
name = it.name,
provider = it.provider,
mountAngle = it.mountAngle,
)
}
}
fun getInfoCount(): ULong {
return CameraInfo.getInfoCount()
}
}
```
# Connectivity Info
Библиотека позволяет прослушивать тип состояния сетевого подключения.
### Features:
- Состояние в сети.
- Прослушивание изменения состояния.
### Permissions
```
Permissions=Internet
```
### Dependency
- `QT += network`
### Example
```kotlin
var states: MutableMap<ULong, ConnectivityInfoState> = mutableMapOf()
class AuroraConnectivityInfo {
fun isOnline(): Boolean {
return ConnectivityInfo.isOnline()
}
fun listen(): ULong {
return ConnectivityInfo.listen { id, value ->
states.put(id, value)
}
}
fun getState(id: ULong): String {
return states[id]?.name ?: "-"
}
}
```
# Device Info
Библиотека, позволяющая получить информацию об устройстве.
### Device General
– Уникальный идентификатор устройства.
– Глобальная навигационная спутниковая система.
– Беспроводная связь ближнего радиуса действия.
– Стандарт беспроводной связи малого радиуса действия.
– Беспроводная локальная сеть.
– Максимальная зарегистрированная тактовая частота процессора.
– Количество ядер системы.
– Текущий заряд аккумулятора в процентах.
– Разрешение основной камеры.
– Разрешение фронтальной камеры.
– Общий объём оперативной памяти.
– Свободный объём оперативной памяти.
– Чёткость и детализация изображения на устройстве.
– Версия операционной системы.
– Название модели устройства.
### Device SIM Cards
- Информация о SIM-картах устройства.
### Device Storages
- Информация о внешнем хранилище устройства.
- Информация о внутреннем хранилище устройства.
### Permissions
```
Permissions=DeviceInfo
```
### Dependency
- `LIBS += -ldbus-1`
### Example
```kotlin
class AuroraDeviceInfo {
fun id(): String {
return DeviceInfo.id()
}
fun hasGNSS(): Boolean {
return DeviceInfo.hasGNSS()
}
fun hasNFC(): Boolean {
return DeviceInfo.hasNFC()
}
fun hasBluetooth(): Boolean {
return DeviceInfo.hasBluetooth()
}
fun hasWlan(): Boolean {
return DeviceInfo.hasWlan()
}
fun getMaxCpuClockSpeed(): UInt {
return DeviceInfo.getMaxCpuClockSpeed()
}
fun getNumberCpuCores(): UInt {
return DeviceInfo.getNumberCpuCores()
}
fun getBatteryChargePercentage(): UInt {
return DeviceInfo.getBatteryChargePercentage()
}
fun getMainCameraResolution(): Double {
return DeviceInfo.getMainCameraResolution()
}
fun getFrontalCameraResolution(): Double {
return DeviceInfo.getFrontalCameraResolution()
}
fun getRamTotalSize(): ULong {
return DeviceInfo.getRamTotalSize()
}
fun getRamFreeSize(): ULong {
return DeviceInfo.getRamFreeSize()
}
fun getScreenResolution(): String {
return DeviceInfo.getScreenResolution()
}
fun getOsVersion(): String {
return DeviceInfo.getOsVersion()
}
fun getDeviceModel(): String {
return DeviceInfo.getDeviceModel()
}
}
data class SharedSimCard(
val enabled: Boolean,
val operatorName: String,
val preferredDataTransfer: Boolean,
val preferredVoiceCall: Boolean,
val simName: String,
)
class AuroraSimCards {
fun getSimCardsInfo(): List<SharedSimCard> {
return DeviceSim.getSimCardsInfo().map {
SharedSimCard(
enabled = it.enabled,
operatorName = it.operatorName,
preferredDataTransfer = it.preferredDataTransfer,
preferredVoiceCall = it.preferredVoiceCall,
simName = it.simName,
)
}
}
}
data class SharedExternalStorage(
val bytesAvailable: ULong,
val bytesTotal: ULong,
val bytesUsed: ULong,
val countMountedPartitions: UInt,
val deviceLabel: String,
val mounted: Boolean,
)
data class SharedInternalStorage(
val bytesAvailable: ULong,
val bytesTotal: ULong,
val bytesUsed: ULong,
val deviceLabel: String,
val filesystemType: String,
)
class AuroraStorageInfo {
fun getExternalInfo(): SharedExternalStorage {
return DeviceStorage.getExternalInfo().let {
SharedExternalStorage(
bytesAvailable = it.bytesAvailable,
bytesTotal = it.bytesTotal,
bytesUsed = it.bytesUsed,
countMountedPartitions = it.countMountedPartitions,
deviceLabel = it.deviceLabel,
mounted = it.mounted,
)
}
}
fun getInternalInfo(): SharedInternalStorage {
return DeviceStorage.getInternalInfo().let {
SharedInternalStorage(
bytesAvailable = it.bytesAvailable,
bytesTotal = it.bytesTotal,
bytesUsed = it.bytesUsed,
deviceLabel = it.deviceLabel,
filesystemType = it.filesystemType,
)
}
}
}
```
# Local Notification
Библиотека для отображения локальных уведомлений.
### Features:
- Показать уведомление.
- Закрыть уведомление по идентификатору.
### Dependency
- `LIBS += -ldbus-1`
### Example
```kotlin
class AuroraLocalNotification {
fun show(
title: String,
summary: String,
body: String,
): UInt {
return LocalNotification.show(title, summary, body)
}
fun close(id: UInt): Boolean {
return LocalNotification.close(id)
}
}
```
# Location Info
Библиотека для определения реального географического местоположения устройства.
### Features:
- Проверка поддержки.
- Метод получения местоположения.
- Прослушивание изменения состояния.
### Permissions
```
Permissions=Location;Internet
```
### Dependency
- `BuildRequires: pkgconfig(Qt5Location)`
- `BuildRequires: pkgconfig(Qt5Positioning)`
- `QT += location positioning`
### Example
```kotlin
var states: MutableMap<ULong, LocationState> = mutableMapOf()
class AuroraLocationInfo {
fun isSupported(): Boolean {
return LocationInfo.isSupported()
}
fun listen(): ULong {
return LocationInfo.listen { id, value ->
states.put(id, value)
}
}
fun getState(id: ULong): String {
return states[id]?.let { """
lat: ${it.latitude.toString().take(12)},
lon: ${it.longitude.toString().take(12)},
alt: ${it.altitude.toString().take(12)}
""".trimIndent() } ?: "loading..."
}
}
```
# Package Info
Библиотека, позволяющая получить информацию о текущем пакете, установленном в системе.
### Features:
- Полный идентификатор пакета.
- Идентификатор имени приложения.
- Идентификатор организации приложения.
- Версия приложения с релизом.
- Группа пакета.
- Размер всего каталога установленного пакета.
- Размер каталога bin с исполняемым файлом.
- Размер каталога с данными пакета.
- Размер каталога с библиотеками пакета.
### Example
```kotlin
class AuroraPackageInfo {
fun getApplicationId(): String {
return PackageInfo.getApplicationId()
}
fun getAppName(): String {
return PackageInfo.getAppName()
}
fun getOrgName(): String {
return PackageInfo.getOrgName()
}
fun getVersion(): String {
return PackageInfo.getVersion()
}
fun getSubgroup(): String {
return PackageInfo.getSubgroup()
}
fun getSize(): ULong {
return PackageInfo.getSize()
}
fun getSizeBin(): ULong {
return PackageInfo.getSizeBin()
}
fun getSizeData(): ULong {
return PackageInfo.getSizeData()
}
fun getSizeDataLib(): ULong {
return PackageInfo.getSizeDataLib()
}
}
```
# Path Info
Библиотека позволяющая получить информацию о путях файловой системе.
### Features:
- Путь к приложению кэширования.
- Путь к приложению данных.
- Путь к локальному приложению кэширования.
- Путь к локальному приложению данных.
- Путь к приложению файлов.
- Путь к приложению переводов.
- Путь к общему кэшу организации.
- Путь к общим данным организации.
- Путь к общим файлам организации.
- Путь к локальному кэшу организации.
- Путь к локальным данным организации.
- Путь к папке шрифтов.
- Путь к папке сменных носителей.
- Путь к папке среды выполнения.
- Путь к временной папке.
- Путь к домашней папке.
- Путь к папке рабочего стола.
- Путь к папке документов.
- Путь к папке загрузок.
- Путь к папке видео.
- Путь к папке музыки.
- Путь к папке изображений.
### Permissions
```
Permissions=UserDirs
```
### Dependency
- `LIBS += -lappdir`
### Example
```kotlin
class AuroraPathInfo {
fun getAppCache(): String {
return PathInfo.getAppCache()
}
fun getAppData(): String {
return PathInfo.getAppData()
}
fun appLocalCache(): String {
return PathInfo.appLocalCache()
}
fun getAppLocalData(): String {
return PathInfo.getAppLocalData()
}
fun getPackageFiles(): String {
return PathInfo.getPackageFiles()
}
fun getTranslations(): String {
return PathInfo.getTranslations()
}
fun getOrgCache(): String {
return PathInfo.getOrgCache()
}
fun getOrgData(): String {
return PathInfo.getOrgData()
}
fun getOrgFiles(): String {
return PathInfo.getOrgFiles()
}
fun getOrgLocalCache(): String {
return PathInfo.getOrgLocalCache()
}
fun getOrgLocalData(): String {
return PathInfo.getOrgLocalData()
}
fun getFonts(): String {
return PathInfo.getFonts()
}
fun getRemovableMedia(): String {
return PathInfo.getRemovableMedia()
}
fun getRuntime(): String {
return PathInfo.getRuntime()
}
fun getTemp(): String {
return PathInfo.getTemp()
}
fun getHome(): String {
return PathInfo.getHome()
}
fun getDesktop(): String {
return PathInfo.getDesktop()
}
fun getDocuments(): String {
return PathInfo.getDocuments()
}
fun getDownloads(): String {
return PathInfo.getDownloads()
}
fun getVideos(): String {
return PathInfo.getVideos()
}
fun getMusic(): String {
return PathInfo.getMusic()
}
fun getPictures(): String {
return PathInfo.getPictures()
}
}
```
# Sensors Info
Библиотека обеспечивает доступ к данным датчиков.
### Features:
- Датчик Accelerometer.
- Датчик AmbientLight.
- Датчик Compass.
- Датчик Gyroscope.
- Датчик Magnetometer.
- Датчик Orientation.
- Датчик Pressure.
- Датчик Proximity.
- Датчик Rotation.
- Датчик Tap.
### Permissions
```
Permissions=Sensors
```
### Dependency
- `BuildRequires: pkgconfig(Qt5Sensors)`
- `QT += sensors`
### Example
```kotlin
var statesAccelerometer: MutableMap<ULong, AccelerometerState> = mutableMapOf()
var statesAmbientLight: MutableMap<ULong, AmbientLightSensorState> = mutableMapOf()
var statesCompass: MutableMap<ULong, CompassState> = mutableMapOf()
var statesGyroscope: MutableMap<ULong, GyroscopeState> = mutableMapOf()
var statesMagnetometer: MutableMap<ULong, MagnetometerState> = mutableMapOf()
var statesOrientation: MutableMap<ULong, OrientationState> = mutableMapOf()
var statesPressure: MutableMap<ULong, PressureState> = mutableMapOf()
var statesProximity: MutableMap<ULong, ProximityState> = mutableMapOf()
var statesRotation: MutableMap<ULong, RotationState> = mutableMapOf()
var statesTap: MutableMap<ULong, TapState> = mutableMapOf()
class AuroraSensorsInfo {
// Accelerometer
fun listenAccelerometer(): ULong {
return SensorsInfo.accelerometer.listen { id, value ->
statesAccelerometer.put(id, value)
}
}
fun getStateAccelerometer(id: ULong): String {
return statesAccelerometer[id]?.let { """
x: ${it.x.toString().take(12)}
y: ${it.y.toString().take(12)}
z: ${it.z.toString().take(12)}
""".trimIndent() } ?: "-"
}
// AmbientLight
fun listenAmbientLight(): ULong {
return SensorsInfo.ambientLight.listen { id, value ->
statesAmbientLight.put(id, value)
}
}
fun getStateAmbientLight(id: ULong): String {
return statesAmbientLight[id]?.name ?: "-"
}
// Compass
fun listenCompass(): ULong {
return SensorsInfo.compass.listen { id, value ->
statesCompass.put(id, value)
}
}
fun getStateCompass(id: ULong): String {
return statesCompass[id]?.let { """
azimuth: ${it.azimuth.toString().take(12)}
level: ${it.calibrationLevel.toString().take(12)}
""".trimIndent() } ?: "-"
}
// Gyroscope
fun listenGyroscope(): ULong {
return SensorsInfo.gyroscope.listen { id, value ->
statesGyroscope.put(id, value)
}
}
fun getStateGyroscope(id: ULong): String {
return statesGyroscope[id]?.let { """
x: ${it.x.toString().take(12)}
y: ${it.y.toString().take(12)}
z: ${it.z.toString().take(12)}
""".trimIndent() } ?: "-"
}
// Magnetometer
fun listenMagnetometer(): ULong {
return SensorsInfo.magnetometer.listen { id, value ->
statesMagnetometer.put(id, value)
}
}
fun getStateMagnetometer(id: ULong): String {
return statesMagnetometer[id]?.let { """
x: ${it.x.toString().take(12)}
y: ${it.y.toString().take(12)}
z: ${it.z.toString().take(12)}
""".trimIndent() } ?: "-"
}
// Orientation
fun listenOrientation(): ULong {
return SensorsInfo.orientation.listen { id, value ->
statesOrientation.put(id, value)
}
}
fun getStateOrientation(id: ULong): String {
return statesOrientation[id]?.name ?: "-"
}
// Pressure
fun listenPressure(): ULong {
return SensorsInfo.pressure.listen { id, value ->
statesPressure.put(id, value)
}
}
fun getStatePressure(id: ULong): String {
return statesPressure[id]?.let { """
pressure: ${it.pressure.toString().take(12)}
""".trimIndent() } ?: "-"
}
// Proximity
fun listenProximity(): ULong {
return SensorsInfo.proximity.listen { id, value ->
statesProximity.put(id, value)
}
}
fun getStateProximity(id: ULong): String {
return statesProximity[id]?.let { """
isClose: ${it.isClose}
""".trimIndent() } ?: "-"
}
// Rotation
fun listenRotation(): ULong {
return SensorsInfo.rotation.listen { id, value ->
statesRotation.put(id, value)
}
}
fun getStateRotation(id: ULong): String {
return statesRotation[id]?.let { """
x: ${it.x.toString().take(12)}
y: ${it.y.toString().take(12)}
z: ${it.z.toString().take(12)}
""".trimIndent() } ?: "-"
}
// Tap
fun listenTap(): ULong {
return SensorsInfo.tap.listen { id, value ->
statesTap.put(id, value)
}
}
fun getStateTap(id: ULong): String {
return statesTap[id]?.let { """
direction: ${it.tapDirection.toString().take(12)}
isDouble: ${it.isDoubleTap.toString().take(12)}
""".trimIndent() } ?: "-"
}
}
```
# Share Data
Библиотека для обмена данными из приложения через диалоговое окно общего доступа к платформе.
> For Aurora OS < 5.2
### Features:
- Поделиться данными.
- Поделиться текстом, как файлом.
- Поделиться файлом по пути.
### Dependency
- `LIBS += -ldbus-1`
### Example
```kotlin
class AuroraShareData {
fun share(
title: String,
subject: String,
body: String,
): Boolean {
return ShareData.share(title, subject, body)
}
fun shareTextLikeFile(
title: String,
fileName: String,
text: String,
): Boolean {
return ShareData.shareTextLikeFile(title, fileName, text)
}
fun shareDataByPath(
title: String,
path: String,
): Boolean {
return ShareData.shareDataByPath(title, path)
}
}
```
# Shared Preferences Secure
Библиотека позволяет хранить настройки в виде пар ключ-значение с шифрованием данных.
### Features:
- Set/Get Boolean.
- Set/Get Int.
- Set/Get Long.
- Set/Get Float.
- Set/Get Double.
- Set/Get String.
- Set/Get List<String>.
- Проверьте, существует ли значение.
- Сохраните данные.
- Очистите данные.
### Dependency
- `BuildRequires: pkgconfig(qca2-qt5)`
- `PKGCONFIG += qca2-qt5`
### Example
```kotlin
const val keyBool = "keyBool"
const val keyInt = "keyInt"
const val keyLong = "keyLong"
const val keyFloat = "keyFloat"
const val keyDouble = "keyDouble"
const val keyString = "keyString"
const val keyListString = "keyListString"
class AuroraSharedPreferencesSecure {
fun getBool(): Boolean {
return SharedPreferencesSecure.getBool(keyBool, false)
}
fun getInt(): Int {
return SharedPreferencesSecure.getInt(keyInt, 0)
}
fun getLong(): Long {
return SharedPreferencesSecure.getLong(keyLong, 0)
}
fun getFloat(): Float {
return SharedPreferencesSecure.getFloat(keyFloat, 0.0f)
}
fun getDouble(): Double {
return SharedPreferencesSecure.getDouble(keyDouble, 0.0)
}
fun getString(): String {
return SharedPreferencesSecure.getString(keyString, "-")
}
fun getListString(): List<String> {
return SharedPreferencesSecure.getListString(keyListString, listOf())
}
fun drop() {
SharedPreferencesSecure.drop()
}
fun refreshRandomData() {
// Set data
SharedPreferencesSecure.putBool(keyBool, Random.nextBoolean())
SharedPreferencesSecure.putInt(keyInt, Random.nextInt())
SharedPreferencesSecure.putLong(keyLong, Random.nextLong())
SharedPreferencesSecure.putFloat(keyFloat, Random.nextFloat())
SharedPreferencesSecure.putDouble(keyDouble, Random.nextDouble())
SharedPreferencesSecure.putString(keyString, listOf("first", "second", "third").random())
SharedPreferencesSecure.putListString(keyListString, listOf(
listOf("first1", "second1", "third1"),
listOf("first2", "second2", "third2"),
listOf("first3", "second3", "third3"),
).random())
// Save change
SharedPreferencesSecure.save()
}
}
```
# Shared Preferences
Библиотека позволяет хранить настройки в виде пар ключ-значение.
### Features:
- Set/Get Boolean.
- Set/Get Int.
- Set/Get Long.
- Set/Get Float.
- Set/Get Double.
- Set/Get String.
- Set/Get List<String>.
- Проверьте, существует ли значение.
- Сохраните данные.
- Очистите данные.
### Example
```kotlin
const val keyBool = "keyBool"
const val keyInt = "keyInt"
const val keyLong = "keyLong"
const val keyFloat = "keyFloat"
const val keyDouble = "keyDouble"
const val keyString = "keyString"
const val keyListString = "keyListString"
class AuroraSharedPreferences {
fun getBool(): Boolean {
return SharedPreferences.getBool(keyBool, false)
}
fun getInt(): Int {
return SharedPreferences.getInt(keyInt, 0)
}
fun getLong(): Long {
return SharedPreferences.getLong(keyLong, 0)
}
fun getFloat(): Float {
return SharedPreferences.getFloat(keyFloat, 0.0f)
}
fun getDouble(): Double {
return SharedPreferences.getDouble(keyDouble, 0.0)
}
fun getString(): String {
return SharedPreferences.getString(keyString, "-")
}
fun getListString(): List<String> {
return SharedPreferences.getListString(keyListString, listOf())
}
fun drop() {
SharedPreferences.drop()
}
fun refreshRandomData() {
// Set data
SharedPreferences.putBool(keyBool, Random.nextBoolean())
SharedPreferences.putInt(keyInt, Random.nextInt())
SharedPreferences.putLong(keyLong, Random.nextLong())
SharedPreferences.putFloat(keyFloat, Random.nextFloat())
SharedPreferences.putDouble(keyDouble, Random.nextDouble())
SharedPreferences.putString(keyString, listOf("first", "second", "third").random())
SharedPreferences.putListString(keyListString, listOf(
listOf("first1", "second1", "third1"),
listOf("first2", "second2", "third2"),
listOf("first3", "second3", "third3"),
).random())
// Save change
SharedPreferences.save()
}
}
```
# Theme Info
Библиотека, позволяющая получить информацию о конфигурации темы.
### Features:
- Рассчитывает высоту экрана, включая высоту выреза.
- Математическое соотношение, сравнивающее физическую плотность пикселей устройства отображения с его логической плотностью пикселей.
- Область в графическом пользовательском интерфейсе, используемая для отображения информации о текущем состоянии приложения или системы.
### Example
```kotlin
class AuroraThemeInfo {
fun getPixelRatio(): Double {
return ThemeInfo.getPixelRatio()
}
fun getCutoutAreaHeight(): Int {
return ThemeInfo.cutoutAreaHeight()
}
fun getStatusBarHeight(): Int {
return ThemeInfo.getStatusBarHeight()
}
}
```
# Uri Launcher
Библиотека для запуска URI.
### Features:
- Открыть URI.
- Открыть URI с обратным вызовом состояния.
- Проверка корректности URI.
### Dependency
- `BuildRequires: pkgconfig(runtime-manager-qt5)`
- `PKGCONFIG += runtime-manager-qt5`
### Example
```kotlin
class AuroraUriLauncher {
fun open(uri: String): Boolean {
return UriLauncher.open(uri)
}
}
```
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать