diff --git a/.github/workflows/android.yaml b/.github/workflows/android.yaml
index 99507f2b2..b8ac8bfeb 100644
--- a/.github/workflows/android.yaml
+++ b/.github/workflows/android.yaml
@@ -9,18 +9,40 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: recursive
- name: set up JDK 17
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- name: run Android unit tests
- run: ./gradlew testDebugUnitTest
-
+ run: ./gradlew testDebugUnitTest koverHtmlReport koverXmlReport
+ - name: add coverage report to PR
+ id: kover
+ uses: mi-kas/kover-report@v1
+ # this action fails if there is no report, unlike the above actions, so check if there are files
+ if: ${{ always() && hashFiles(format('{0}/build/reports/kover/report.xml', github.workspace)) != '' }}
+ with:
+ path: ${{ github.workspace }}/build/reports/kover/report.xml
+ token: ${{ secrets.CI_SPLENDO_PAT }}
+ title: Code coverage
+ update-comment: true
+ coverage-counter-type: LINE
+ - name: Upload Android test artifact
+ uses: actions/upload-artifact@v4
+ if: failure()
+ with:
+ name: "Android Test Report HTML"
+ path: "**/build/reports/tests/testDebugUnitTest"
+ - name: Upload Coverage report
+ uses: actions/upload-artifact@v4
+ if: ${{ always() && hashFiles(format('{0}/build/reports/kover/html/index.html', github.workspace)) != '' }}
+ with:
+ name: "Android Test Report HTML"
+ path: "**/build/reports/kover/html"
- name: run apiCheck
run: ./gradlew apiCheck
diff --git a/.github/workflows/emulator.yaml b/.github/workflows/emulator.yaml
index 42d834678..d48d7331e 100644
--- a/.github/workflows/emulator.yaml
+++ b/.github/workflows/emulator.yaml
@@ -35,7 +35,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- api-level: [23, 34]
+ api-level: [24, 34]
project: ${{ fromJSON(needs.build.outputs.projects) }}
steps:
- name: checkout
@@ -50,7 +50,7 @@ jobs:
arch: ${{ runner.arch == 'X86' && 'x86' || runner.arch == 'X64' && 'x86_64' || runner.arch == 'ARM' && 'arm32' || 'arm64' }}
- name: AVD cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
id: avd-cache
with:
path: |
diff --git a/.github/workflows/ios.yaml b/.github/workflows/ios.yaml
index 3ea02a8d8..450a93ab7 100644
--- a/.github/workflows/ios.yaml
+++ b/.github/workflows/ios.yaml
@@ -44,7 +44,7 @@ jobs:
module: ${{ fromJSON(needs.build.outputs.projects) }}
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup tools and cache for workspace
uses: ./.github/workflows/setup_tools_macos/
@@ -55,3 +55,9 @@ jobs:
- name: run iOS tests
run: ./gradlew :${{ matrix.module }}:ios${{ runner.arch == 'X86' && 'X86' || runner.arch == 'X64' && 'x86_64' || runner.arch == 'ARM' && 'SimulatorArm32' || 'SimulatorArm64' }}Test
+ - name: Upload iOS test artifact
+ uses: actions/upload-artifact@v4
+ if: failure()
+ with:
+ name: ${{ matrix.module}} iOS Test Report HTML
+ path: ${{ format('**{0}/build/reports/tests/ios{1}Test', matrix.module, runner.arch == 'X86' && 'X86' || runner.arch == 'X64' && 'x86_64' || runner.arch == 'ARM' && 'SimulatorArm32' || 'SimulatorArm64') }}
diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
index ac961c46c..5a6253359 100644
--- a/.github/workflows/publish.yaml
+++ b/.github/workflows/publish.yaml
@@ -4,7 +4,7 @@ on: push
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=\"-Xmx8G -XX:MaxMetaspaceSize=512m -Dorg.gradle.daemon=false -Dkotlin.incremental=false\" -Dorg.gradle.daemon=false -Dkotlin.incremental=false -Dkotlin.daemon.jvm.options=-Xmx8G,-XX:MaxMetaspaceSize=512m,-Dorg.gradle.daemon=false,-Dkotlin.incremental=false"
JAVA_OPTS: "-Xmx8G -XX:MaxMetaspaceSize=512m -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
- SIGNING_SECRET_KEY_RING_FILE: ${{ github.workspace }}/convention-plugins/keys/secret-keys.gpg
+ SIGNING_SECRET_KEY_RING_FILE: ${{ github.workspace }}/kaluga-library-components/keys/secret-keys.gpg
concurrency: publish-${{ github.ref_name }}
@@ -18,7 +18,7 @@ jobs:
runs-on: ${{ github.ref_name == 'master' && 'tartelet' || 'macos-14' }}
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: recursive
@@ -29,13 +29,13 @@ jobs:
# TODO: use setup_tools_macos
- name : set up JDK 17
- uses : actions/setup-java@v3
+ uses : actions/setup-java@v4
with :
distribution : 'temurin'
java-version : 17
- name: Konan cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
id: konan-cache
with:
path: ~/.konan/*
diff --git a/.github/workflows/rerun_emulator.yaml b/.github/workflows/rerun_emulator.yaml
index 89c640d44..094afb5f7 100644
--- a/.github/workflows/rerun_emulator.yaml
+++ b/.github/workflows/rerun_emulator.yaml
@@ -16,7 +16,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: recursive
- run: gh run rerun ${{ github.event.workflow_run.id }} --failed
diff --git a/.github/workflows/setup_macos.yaml b/.github/workflows/setup_macos.yaml
index 0f9a40914..b83cfbbda 100644
--- a/.github/workflows/setup_macos.yaml
+++ b/.github/workflows/setup_macos.yaml
@@ -35,7 +35,7 @@ jobs:
steps:
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
submodules: recursive
@@ -82,7 +82,7 @@ jobs:
run: ./gradlew :${{ inputs.project }}:${{ inputs.gradleTask }}
- name: Make cache of workspace
- uses: actions/cache/save@v3
+ uses: actions/cache/save@v4
id: store-build
with:
path: |
diff --git a/.github/workflows/setup_tools_macos/action.yaml b/.github/workflows/setup_tools_macos/action.yaml
index be006077f..1a41da63d 100644
--- a/.github/workflows/setup_tools_macos/action.yaml
+++ b/.github/workflows/setup_tools_macos/action.yaml
@@ -21,7 +21,7 @@ runs:
using: "composite"
steps:
- name: set up JDK 17
- uses: actions/setup-java@v3
+ uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
@@ -32,7 +32,7 @@ runs:
xcode-version: '15'
- name: Gradle cache
- uses: gradle/gradle-build-action@v2
+ uses: gradle/actions/setup-gradle@v3
with:
cache-read-only: ${{ inputs.gradle-cache-read-only }}
gradle-home-cache-includes: |
@@ -40,7 +40,7 @@ runs:
notifications
- name: Konan cache
- uses: actions/cache@v3
+ uses: actions/cache@v4
id: konan-cache
with:
path: |
@@ -50,7 +50,7 @@ runs:
key: konan-${{ inputs.kotlinVersion }}
- name: Make cache of workspace
- uses: actions/cache/restore@v3
+ uses: actions/cache/restore@v4
if: ${{ inputs.restore-workspace-cache != 'false' }}
id: restore-build
with:
diff --git a/.gitignore b/.gitignore
index 467582b46..fd455ed9d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,3 +76,5 @@ google-services.json
# generated for CI
/non_dependent_projects.properties
+
+.kotlin/
diff --git a/.idea/inspectionProfiles/ktlint.xml b/.idea/inspectionProfiles/ktlint.xml
index 7d04a74be..519da9b59 100644
--- a/.idea/inspectionProfiles/ktlint.xml
+++ b/.idea/inspectionProfiles/ktlint.xml
@@ -1,7 +1,8 @@
+
-
+
\ No newline at end of file
diff --git a/adding-a-new-module/README.md b/adding-a-new-module/README.md
index 2125f12f9..68cb6df39 100644
--- a/adding-a-new-module/README.md
+++ b/adding-a-new-module/README.md
@@ -2,7 +2,7 @@
This **project** includes all common dependencies and settings for kaluga module.
# Steps for adding a new module
-1. Run gradle task: `./gradlew createNewModule -P module_name= -P package_name= -P create-test-utils -P create-compose -P create-databinding` from the root directory.
+1. Run gradle task: `./gradlew createNewModule -P module_name= -P package_name= -P create-test-utils -P create-compose -P create-databinding -P include-jvm -P include-js` from the root directory.
* `package_name` can be omitted if the module and package names are the same. Package name will be prefixed with `com.splendo.kaluga`.
* Only pass `create-test-utils` if you want to also create a `test-utils-` with package `com.splendo.kaluga.test.`.
* Use `./gradlew createNewTestModule -P module_name= -P package_name=` to create a `test-utils-` for an existing module.
@@ -10,6 +10,8 @@ This **project** includes all common dependencies and settings for kaluga module
* Use `./gradlew createNewComposeModule -P module_name= -P package_name=` to create a `-compose` for an existing module.
* Only pass `create-databinding` if you want to also create a `-databinding` with package `com.splendo.kaluga..databinding`.
* Use `./gradlew createNewDataBindingModule -P module_name= -P package_name=` to create a `-databinding` for an existing module.
+ * Only pass `include-jvm` if your module should target (non-Android) JVM
+ * Only pass `include-js` if your module should target Javascript
1. Include your module to kaluga project edit `kaluga/settings.gradle.kts` by adding: `include(":")`.
1. Add Unit tests
* [Common Unit Tests](#commonTests)
diff --git a/adding-a-new-module/template/common/build.gradle.kts b/adding-a-new-module/template/common/build.gradle.kts
index b980edd48..c1635b1db 100644
--- a/adding-a-new-module/template/common/build.gradle.kts
+++ b/adding-a-new-module/template/common/build.gradle.kts
@@ -1,25 +1,16 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin")
}
-publishableComponent("%PACKAGE%")
-
-dependencies { }
-
-kotlin {
- sourceSets {
- commonMain {
- dependencies {
+kaluga {
+ moduleName = "%PACKAGE%"
+%TARGET_CONFIG%
+ dependencies {
+ common {
+ main {
implementation(project(":base"))
}
- }
- commonTest {
- dependencies {
+ test {
implementation(project(":test-utils-base"))
}
}
diff --git a/adding-a-new-module/template/compose/build.gradle.kts b/adding-a-new-module/template/compose/build.gradle.kts
index 9406f4162..3b7834b62 100644
--- a/adding-a-new-module/template/compose/build.gradle.kts
+++ b/adding-a-new-module/template/compose/build.gradle.kts
@@ -1,15 +1,18 @@
plugins {
- id("com.android.library")
- kotlin("android")
- id("jacoco")
- id("convention.publication")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin.android.compose")
}
-composeAndroidComponent("%PACKAGE%")
-
-dependencies {
- implementation(project(":base"))
- implementation(project("%BASEMODULE%"))
+kaluga {
+ moduleName = "%BASEMODULE%"
+ dependencies {
+ common {
+ main {
+ implementation(project(":base"))
+ implementation(project("%BASEMODULE%"))
+ }
+ test {
+ implementation(project(":test-utils-base"))
+ }
+ }
+ }
}
diff --git a/adding-a-new-module/template/databinding/build.gradle.kts b/adding-a-new-module/template/databinding/build.gradle.kts
index 45a2a215c..7e15a3cea 100644
--- a/adding-a-new-module/template/databinding/build.gradle.kts
+++ b/adding-a-new-module/template/databinding/build.gradle.kts
@@ -1,16 +1,18 @@
plugins {
- id("com.android.library")
- kotlin("android")
- kotlin("kapt")
- id("jacoco")
- id("convention.publication")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin.android.databinding")
}
-databindingAndroidComponent("%PACKAGE%")
-
-dependencies {
- implementation(project(":base"))
- implementation(project("%BASEMODULE%"))
+kaluga {
+ moduleName = "%BASEMODULE%"
+ dependencies {
+ common {
+ main {
+ implementation(project(":base"))
+ implementation(project("%BASEMODULE%"))
+ }
+ test {
+ implementation(project(":test-utils-base"))
+ }
+ }
+ }
}
diff --git a/adding-a-new-module/template/test/build.gradle.kts b/adding-a-new-module/template/test/build.gradle.kts
index 7f8d73c81..4f869cef6 100644
--- a/adding-a-new-module/template/test/build.gradle.kts
+++ b/adding-a-new-module/template/test/build.gradle.kts
@@ -1,26 +1,18 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin")
}
-publishableComponent("%PACKAGE%")
-
-dependencies { }
-
-kotlin {
- sourceSets {
- commonMain {
- dependencies {
+kaluga {
+ moduleName = "test-utils-%PACKAGE%"
+%TARGET_CONFIG%
+ dependencies {
+ common {
+ main {
+ implementation(project(":base"))
+ }
+ test {
implementation(project(":test-utils-base"))
- implementation(project("%BASEMODULE%"))
}
}
- commonTest {
- dependencies {}
- }
}
}
diff --git a/alerts/api/androidLib/alerts.api b/alerts/api/alerts.api
similarity index 99%
rename from alerts/api/androidLib/alerts.api
rename to alerts/api/alerts.api
index e123ab11c..526aa0897 100644
--- a/alerts/api/androidLib/alerts.api
+++ b/alerts/api/alerts.api
@@ -92,13 +92,10 @@ public final class com/splendo/kaluga/alerts/Alert$TextInputAction {
public abstract interface class com/splendo/kaluga/alerts/AlertActions {
public abstract fun dismiss (Z)V
- public abstract fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun showAsync (ZLkotlin/jvm/functions/Function0;)V
-}
-
-public final class com/splendo/kaluga/alerts/AlertActions$DefaultImpls {
public static synthetic fun dismiss$default (Lcom/splendo/kaluga/alerts/AlertActions;ZILjava/lang/Object;)V
+ public abstract fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
public static synthetic fun show$default (Lcom/splendo/kaluga/alerts/AlertActions;ZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
+ public abstract fun showAsync (ZLkotlin/jvm/functions/Function0;)V
public static synthetic fun showAsync$default (Lcom/splendo/kaluga/alerts/AlertActions;ZLkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
}
@@ -137,6 +134,7 @@ public abstract class com/splendo/kaluga/alerts/BaseAlertPresenter : com/splendo
public static synthetic fun dismissAlert$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZILjava/lang/Object;)V
protected final fun dismissAlertWithLog (Z)V
public static synthetic fun dismissAlertWithLog$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZILjava/lang/Object;)V
+ public final fun getAlert ()Lcom/splendo/kaluga/alerts/Alert;
public fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
protected abstract fun showAlert (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V
public static synthetic fun showAlert$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
diff --git a/alerts/api/jvm/alerts.api b/alerts/api/jvm/alerts.api
deleted file mode 100644
index 67c42bd5e..000000000
--- a/alerts/api/jvm/alerts.api
+++ /dev/null
@@ -1,150 +0,0 @@
-public final class com/splendo/kaluga/alerts/Alert {
- public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/splendo/kaluga/alerts/Alert$TextInputAction;Lcom/splendo/kaluga/alerts/Alert$Style;)V
- public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/splendo/kaluga/alerts/Alert$TextInputAction;Lcom/splendo/kaluga/alerts/Alert$Style;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun component1 ()Ljava/lang/String;
- public final fun component2 ()Ljava/lang/String;
- public final fun component3 ()Ljava/util/List;
- public final fun component4 ()Lcom/splendo/kaluga/alerts/Alert$TextInputAction;
- public final fun component5 ()Lcom/splendo/kaluga/alerts/Alert$Style;
- public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/splendo/kaluga/alerts/Alert$TextInputAction;Lcom/splendo/kaluga/alerts/Alert$Style;)Lcom/splendo/kaluga/alerts/Alert;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/alerts/Alert;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lcom/splendo/kaluga/alerts/Alert$TextInputAction;Lcom/splendo/kaluga/alerts/Alert$Style;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getActions ()Ljava/util/List;
- public final fun getMessage ()Ljava/lang/String;
- public final fun getStyle ()Lcom/splendo/kaluga/alerts/Alert$Style;
- public final fun getTextInputAction ()Lcom/splendo/kaluga/alerts/Alert$TextInputAction;
- public final fun getTitle ()Ljava/lang/String;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/alerts/Alert$Action {
- public fun (Ljava/lang/String;Lcom/splendo/kaluga/alerts/Alert$Action$Style;Lkotlin/jvm/functions/Function0;)V
- public synthetic fun (Ljava/lang/String;Lcom/splendo/kaluga/alerts/Alert$Action$Style;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun component1 ()Ljava/lang/String;
- public final fun component2 ()Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public final fun component3 ()Lkotlin/jvm/functions/Function0;
- public final fun copy (Ljava/lang/String;Lcom/splendo/kaluga/alerts/Alert$Action$Style;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/alerts/Alert$Action;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/alerts/Alert$Action;Ljava/lang/String;Lcom/splendo/kaluga/alerts/Alert$Action$Style;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$Action;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getHandler ()Lkotlin/jvm/functions/Function0;
- public final fun getStyle ()Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public final fun getTitle ()Ljava/lang/String;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/alerts/Alert$Action$Style : java/lang/Enum {
- public static final field CANCEL Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static final field DEFAULT Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static final field DESTRUCTIVE Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static final field NEGATIVE Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static final field NEUTRAL Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static final field POSITIVE Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static fun getEntries ()Lkotlin/enums/EnumEntries;
- public final fun getValue ()I
- public static fun valueOf (Ljava/lang/String;)Lcom/splendo/kaluga/alerts/Alert$Action$Style;
- public static fun values ()[Lcom/splendo/kaluga/alerts/Alert$Action$Style;
-}
-
-public final class com/splendo/kaluga/alerts/Alert$Builder {
- public fun ()V
- public fun (Lcom/splendo/kaluga/alerts/Alert$Style;)V
- public synthetic fun (Lcom/splendo/kaluga/alerts/Alert$Style;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun addActions (Ljava/util/List;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun addActions ([Lcom/splendo/kaluga/alerts/Alert$Action;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun build ()Lcom/splendo/kaluga/alerts/Alert;
- public final fun setMessage (Ljava/lang/String;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun setNegativeButton (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public static synthetic fun setNegativeButton$default (Lcom/splendo/kaluga/alerts/Alert$Builder;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun setNeutralButton (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public static synthetic fun setNeutralButton$default (Lcom/splendo/kaluga/alerts/Alert$Builder;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun setPositiveButton (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public static synthetic fun setPositiveButton$default (Lcom/splendo/kaluga/alerts/Alert$Builder;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun setTextInput (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public static synthetic fun setTextInput$default (Lcom/splendo/kaluga/alerts/Alert$Builder;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$Builder;
- public final fun setTitle (Ljava/lang/String;)Lcom/splendo/kaluga/alerts/Alert$Builder;
-}
-
-public final class com/splendo/kaluga/alerts/Alert$Style : java/lang/Enum {
- public static final field ACTION_LIST Lcom/splendo/kaluga/alerts/Alert$Style;
- public static final field ALERT Lcom/splendo/kaluga/alerts/Alert$Style;
- public static final field TEXT_INPUT Lcom/splendo/kaluga/alerts/Alert$Style;
- public static fun getEntries ()Lkotlin/enums/EnumEntries;
- public static fun valueOf (Ljava/lang/String;)Lcom/splendo/kaluga/alerts/Alert$Style;
- public static fun values ()[Lcom/splendo/kaluga/alerts/Alert$Style;
-}
-
-public final class com/splendo/kaluga/alerts/Alert$TextInputAction {
- public fun (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)V
- public final fun component1 ()Ljava/lang/String;
- public final fun component2 ()Ljava/lang/String;
- public final fun component3 ()Lkotlin/jvm/functions/Function1;
- public final fun copy (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/alerts/Alert$TextInputAction;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/alerts/Alert$TextInputAction;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/Alert$TextInputAction;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getPlaceholder ()Ljava/lang/String;
- public final fun getText ()Ljava/lang/String;
- public final fun getTextObserver ()Lkotlin/jvm/functions/Function1;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/alerts/AlertActions {
- public abstract fun dismiss (Z)V
- public abstract fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun showAsync (ZLkotlin/jvm/functions/Function0;)V
-}
-
-public final class com/splendo/kaluga/alerts/AlertActions$DefaultImpls {
- public static synthetic fun dismiss$default (Lcom/splendo/kaluga/alerts/AlertActions;ZILjava/lang/Object;)V
- public static synthetic fun show$default (Lcom/splendo/kaluga/alerts/AlertActions;ZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
- public static synthetic fun showAsync$default (Lcom/splendo/kaluga/alerts/AlertActions;ZLkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
-}
-
-public final class com/splendo/kaluga/alerts/AlertPresenter : com/splendo/kaluga/alerts/BaseAlertPresenter {
- public fun (Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;)V
- public fun dismiss (Z)V
- public fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun showAsync (ZLkotlin/jvm/functions/Function0;)V
-}
-
-public final class com/splendo/kaluga/alerts/AlertPresenter$Builder : com/splendo/kaluga/alerts/BaseAlertPresenter$Builder {
- public fun ()V
- public fun create (Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/alerts/AlertPresenter;
- public synthetic fun create (Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
-}
-
-public final class com/splendo/kaluga/alerts/AlertsKt {
- public static final fun buildActionSheet (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static synthetic fun buildActionSheet$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static final fun buildAlert (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static synthetic fun buildAlert$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static final fun buildAlertWithInput (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static synthetic fun buildAlertWithInput$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lkotlinx/coroutines/CoroutineScope;Lcom/splendo/kaluga/logging/Logger;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
-}
-
-public abstract class com/splendo/kaluga/alerts/BaseAlertPresenter : com/splendo/kaluga/alerts/AlertActions {
- public static final field Companion Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Companion;
- public static final field TAG Ljava/lang/String;
- public fun (Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;)V
- public fun dismiss (Z)V
- protected abstract fun dismissAlert (Z)V
- public static synthetic fun dismissAlert$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZILjava/lang/Object;)V
- protected final fun dismissAlertWithLog (Z)V
- public static synthetic fun dismissAlertWithLog$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZILjava/lang/Object;)V
- public fun show (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun showAlert (ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;)V
- public static synthetic fun showAlert$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter;ZLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V
- public fun showAsync (ZLkotlin/jvm/functions/Function0;)V
-}
-
-public abstract class com/splendo/kaluga/alerts/BaseAlertPresenter$Builder : com/splendo/kaluga/architecture/lifecycle/LifecycleSubscribable {
- public fun ()V
- public abstract fun create (Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
- public static synthetic fun create$default (Lcom/splendo/kaluga/alerts/BaseAlertPresenter$Builder;Lcom/splendo/kaluga/alerts/Alert;Lcom/splendo/kaluga/logging/Logger;Lkotlinx/coroutines/CoroutineScope;ILjava/lang/Object;)Lcom/splendo/kaluga/alerts/BaseAlertPresenter;
-}
-
-public final class com/splendo/kaluga/alerts/BaseAlertPresenter$Companion {
-}
-
diff --git a/alerts/build.gradle.kts b/alerts/build.gradle.kts
index 52a613145..99e37325e 100644
--- a/alerts/build.gradle.kts
+++ b/alerts/build.gradle.kts
@@ -1,32 +1,29 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin")
}
-dependencies {
- implementationDependency(Dependencies.AndroidX.Fragment)
- testImplementationDependency(Dependencies.AndroidX.FragmentKtx)
- androidTestImplementationDependency(Dependencies.AndroidX.Activity.Ktx)
-}
-
-publishableComponent("alerts")
-
-kotlin {
- sourceSets {
- getByName("commonMain") {
- dependencies {
+kaluga {
+ moduleName = "alerts"
+ dependencies {
+ android {
+ main {
+ implementation(libs.androidx.fragment)
+ }
+ test {
+ implementation(libs.androidx.fragment.ktx)
+ }
+ instrumented {
+ implementation(libs.androidx.activity.ktx)
+ }
+ }
+ common {
+ main {
implementation(project(":architecture", ""))
implementation(project(":base", ""))
implementation(project(":logging", ""))
implementation(project(":resources", ""))
}
- }
- getByName("commonTest") {
- dependencies {
+ test {
implementation(project(":test-utils-alerts", ""))
}
}
diff --git a/alerts/src/androidLibMain/kotlin/AlertPresenter.kt b/alerts/src/androidLibMain/kotlin/AlertPresenter.kt
index b88408e93..52e94141a 100644
--- a/alerts/src/androidLibMain/kotlin/AlertPresenter.kt
+++ b/alerts/src/androidLibMain/kotlin/AlertPresenter.kt
@@ -42,7 +42,7 @@ import kotlinx.coroutines.launch
* @param coroutineScope The [CoroutineScope] managing changes to the alert presentation.
*/
actual class AlertPresenter(
- private val alert: Alert,
+ alert: Alert,
private val lifecycleManagerObserver: LifecycleManagerObserver = LifecycleManagerObserver(),
coroutineScope: CoroutineScope,
logger: Logger,
@@ -109,11 +109,11 @@ actual class AlertPresenter(
}
}
- override fun dismissAlert(animated: Boolean) {
+ actual override fun dismissAlert(animated: Boolean) {
presentation.value = DialogPresentation.Hidden
}
- override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
+ actual override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
presentation.value = DialogPresentation.Showing(animated, afterHandler, completion)
}
diff --git a/alerts/src/commonMain/kotlin/Alerts.kt b/alerts/src/commonMain/kotlin/Alerts.kt
index eb371e439..5e3391a59 100644
--- a/alerts/src/commonMain/kotlin/Alerts.kt
+++ b/alerts/src/commonMain/kotlin/Alerts.kt
@@ -294,7 +294,7 @@ interface AlertActions {
* @param alert The [Alert] to present (and dismiss if needed)
* @param logger The [Logger] to log alert actions to
*/
-abstract class BaseAlertPresenter(private val alert: Alert, private val logger: Logger) : AlertActions {
+abstract class BaseAlertPresenter(val alert: Alert, private val logger: Logger) : AlertActions {
companion object {
const val TAG = "AlertDialog"
@@ -378,6 +378,9 @@ expect class AlertPresenter : BaseAlertPresenter {
*/
override fun create(alert: Alert, logger: Logger, coroutineScope: CoroutineScope): AlertPresenter
}
+
+ override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit)
+ override fun dismissAlert(animated: Boolean)
}
/**
diff --git a/alerts/src/iosMain/kotlin/AlertPresenter.kt b/alerts/src/iosMain/kotlin/AlertPresenter.kt
index 48c3a9ea7..146f84974 100644
--- a/alerts/src/iosMain/kotlin/AlertPresenter.kt
+++ b/alerts/src/iosMain/kotlin/AlertPresenter.kt
@@ -50,7 +50,7 @@ import platform.objc.sel_registerName
* This allows for presentation of [Alert.Style.ACTION_LIST] on iPad.
*/
actual class AlertPresenter(
- private val alert: Alert,
+ alert: Alert,
private val parent: UIViewController,
logger: Logger,
private val delegateBuilder: (Alert) -> UIPopoverPresentationControllerDelegateProtocol,
@@ -133,11 +133,11 @@ actual class AlertPresenter(
}
}
- override fun dismissAlert(animated: Boolean) {
+ actual override fun dismissAlert(animated: Boolean) {
parent.dismissModalViewControllerAnimated(animated)
}
- override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
+ actual override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
UIAlertController.alertControllerWithTitle(
alert.title,
alert.message,
diff --git a/alerts/src/jsMain/kotlin/AlertPresenter.kt b/alerts/src/jsMain/kotlin/AlertPresenter.kt
deleted file mode 100644
index 42aa905ed..000000000
--- a/alerts/src/jsMain/kotlin/AlertPresenter.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-
-Copyright 2022 Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.alerts
-
-import com.splendo.kaluga.logging.Logger
-import kotlinx.coroutines.CoroutineScope
-
-/**
- * A [BaseAlertPresenter] for presenting an [Alert].
- *
- * This is not yet fully implemented on JavaScript
- *
- * @param alert The [Alert] being presented.
- */
-actual class AlertPresenter(
- alert: Alert,
- logger: Logger,
-) : BaseAlertPresenter(alert, logger) {
-
- /**
- * A [BaseAlertPresenter.Builder] for creating an [AlertPresenter]
- */
- actual class Builder : BaseAlertPresenter.Builder() {
-
- /**
- * Creates an [AlertPresenter]
- *
- * @param alert The [Alert] to be presented with the built presenter.
- * @param logger The [Logger] that logs the logs of the presenter.
- * @param coroutineScope The [CoroutineScope] managing the alert lifecycle.
- * @return The created [AlertPresenter]
- */
- actual override fun create(alert: Alert, logger: Logger, coroutineScope: CoroutineScope): AlertPresenter {
- return AlertPresenter(alert, logger)
- }
- }
-
- override fun showAsync(animated: Boolean, completion: (() -> Unit)) {
- TODO("not implemented")
- }
-
- override suspend fun show(animated: Boolean): Alert.Action? {
- TODO("not implemented")
- }
-
- override fun dismiss(animated: Boolean) {
- TODO("not implemented")
- }
-
- override fun dismissAlert(animated: Boolean) {
- TODO("not implemented")
- }
-
- override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
- TODO("not implemented")
- }
-}
diff --git a/alerts/src/jvmMain/kotlin/AlertPresenter.kt b/alerts/src/jvmMain/kotlin/AlertPresenter.kt
deleted file mode 100644
index 8b8e5aa34..000000000
--- a/alerts/src/jvmMain/kotlin/AlertPresenter.kt
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-
-Copyright 2022 Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.alerts
-
-import com.splendo.kaluga.logging.Logger
-import kotlinx.coroutines.CoroutineScope
-
-/**
- * A [BaseAlertPresenter] for presenting an [Alert].
- *
- * This is not yet fully implemented on JVM
- *
- * @param alert The [Alert] being presented.
- */
-actual class AlertPresenter(
- alert: Alert,
- logger: Logger,
-) : BaseAlertPresenter(alert, logger) {
-
- /**
- * A [BaseAlertPresenter.Builder] for creating an [AlertPresenter]
- */
- actual class Builder : BaseAlertPresenter.Builder() {
-
- /**
- * Creates an [AlertPresenter]
- *
- * @param alert The [Alert] to be presented with the built presenter.
- * @param logger The [Logger] that logs the logs of the presenter.
- * @param coroutineScope The [CoroutineScope] managing the alert lifecycle.
- * @return The created [AlertPresenter]
- */
- actual override fun create(alert: Alert, logger: Logger, coroutineScope: CoroutineScope): AlertPresenter {
- return AlertPresenter(alert, logger)
- }
- }
-
- override fun showAsync(animated: Boolean, completion: (() -> Unit)) {
- TODO("not implemented")
- }
-
- override suspend fun show(animated: Boolean): Alert.Action? {
- TODO("not implemented")
- }
-
- override fun dismiss(animated: Boolean) {
- TODO("not implemented")
- }
-
- override fun dismissAlert(animated: Boolean) {
- TODO("not implemented")
- }
-
- override fun showAlert(animated: Boolean, afterHandler: (Alert.Action?) -> Unit, completion: () -> Unit) {
- TODO("not implemented")
- }
-}
diff --git a/architecture-compose/api/architecture-compose.api b/architecture-compose/api/architecture-compose.api
index 80fcbb9d7..90fa8f094 100644
--- a/architecture-compose/api/architecture-compose.api
+++ b/architecture-compose/api/architecture-compose.api
@@ -53,16 +53,16 @@ public abstract class com/splendo/kaluga/architecture/compose/navigation/BottomS
public final class com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState {
public static final field $stable I
- public fun (Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material/ModalBottomSheetState;)V
+ public fun (Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material3/BottomSheetScaffoldState;)V
public final fun component1 ()Landroidx/navigation/NavHostController;
public final fun component2 ()Landroidx/navigation/NavHostController;
- public final fun component3 ()Landroidx/compose/material/ModalBottomSheetState;
- public final fun copy (Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material/ModalBottomSheetState;)Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material/ModalBottomSheetState;ILjava/lang/Object;)Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;
+ public final fun component3 ()Landroidx/compose/material3/BottomSheetScaffoldState;
+ public final fun copy (Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material3/BottomSheetScaffoldState;)Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;
+ public static synthetic fun copy$default (Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;Landroidx/navigation/NavHostController;Landroidx/navigation/NavHostController;Landroidx/compose/material3/BottomSheetScaffoldState;ILjava/lang/Object;)Lcom/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState;
public fun equals (Ljava/lang/Object;)Z
public final fun getContentNavHostController ()Landroidx/navigation/NavHostController;
+ public final fun getScaffoldState ()Landroidx/compose/material3/BottomSheetScaffoldState;
public final fun getSheetContentNavHostController ()Landroidx/navigation/NavHostController;
- public final fun getSheetState ()Landroidx/compose/material/ModalBottomSheetState;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}
@@ -295,8 +295,8 @@ public abstract class com/splendo/kaluga/architecture/compose/navigation/Providi
public final class com/splendo/kaluga/architecture/compose/navigation/RootModalBottomSheetNavigator : com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigator {
public static final field $stable I
- public fun (Lkotlin/jvm/functions/Function3;Landroidx/compose/material/ModalBottomSheetValue;Lcom/splendo/kaluga/architecture/compose/navigation/RouteController;Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V
- public synthetic fun (Lkotlin/jvm/functions/Function3;Landroidx/compose/material/ModalBottomSheetValue;Lcom/splendo/kaluga/architecture/compose/navigation/RouteController;Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
+ public fun (Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/SheetValue;Lcom/splendo/kaluga/architecture/compose/navigation/RouteController;Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V
+ public synthetic fun (Lkotlin/jvm/functions/Function3;Landroidx/compose/material3/SheetValue;Lcom/splendo/kaluga/architecture/compose/navigation/RouteController;Ljava/util/List;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
}
public final class com/splendo/kaluga/architecture/compose/navigation/RootNavHostComposableNavigator : com/splendo/kaluga/architecture/compose/navigation/ComposableNavigator {
@@ -542,8 +542,5 @@ public final class com/splendo/kaluga/architecture/compose/viewModel/KalugaViewM
public final class com/splendo/kaluga/architecture/compose/viewModel/ViewModelComposableKt {
public static final fun FragmentViewModelComposable (Lcom/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel;Landroidx/fragment/app/FragmentManager;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
public static final fun ViewModelComposable (Lcom/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V
- public static final fun store (Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)Lcom/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel;
- public static final fun storeAndRemember (Ljava/lang/Object;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)Lcom/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel;
- public static final fun storeAndRemember (Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)Lcom/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel;
}
diff --git a/architecture-compose/build.gradle.kts b/architecture-compose/build.gradle.kts
index fd253606a..c475aa518 100644
--- a/architecture-compose/build.gradle.kts
+++ b/architecture-compose/build.gradle.kts
@@ -16,22 +16,20 @@
*/
plugins {
- id("com.android.library")
- kotlin("android")
- kotlin("plugin.serialization")
- id("jacoco")
- id("convention.publication")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin.android.compose")
+ id(libs.plugins.kotlinx.atomicfu.get().pluginId)
+ alias(libs.plugins.kotlin.serialization)
}
-composeAndroidComponent("architecture.compose")
+kaluga {
+ moduleName = "architecture"
+}
dependencies {
api(project(":base"))
api(project(":architecture"))
- implementationDependency(Dependencies.AndroidX.Compose.Material)
- implementationDependency(Dependencies.AndroidX.Navigation.Compose)
- implementationDependency(Dependencies.KotlinX.Coroutines.Core)
- implementationDependency(Dependencies.AndroidX.Browser)
+ implementation(libs.androidx.compose.material3)
+ implementation(libs.androidx.navigation.compose)
+ implementation(libs.kotlinx.coroutines.core)
+ implementation(libs.androidx.browser)
}
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigator.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigator.kt
index 0c7fbd9fc..bd11a6e61 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigator.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigator.kt
@@ -2,9 +2,11 @@ package com.splendo.kaluga.architecture.compose.navigation
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.defaultMinSize
-import androidx.compose.material.ModalBottomSheetLayout
-import androidx.compose.material.ModalBottomSheetValue
-import androidx.compose.material.rememberModalBottomSheetState
+import androidx.compose.material3.BottomSheetScaffold
+import androidx.compose.material3.SheetValue
+import androidx.compose.material3.SheetValue.Hidden
+import androidx.compose.material3.rememberBottomSheetScaffoldState
+import androidx.compose.material3.rememberStandardBottomSheetState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
@@ -77,18 +79,18 @@ sealed class BottomSheetNavigator>(
}
/**
- * A [BottomSheetNavigator] that creates and manages a [ModalBottomSheetLayout]. This should be on top of any [ModalBottomSheetNavigator] in the View-hierarchy
+ * A [BottomSheetNavigator] that creates and manages a [BottomSheetScaffold]. This should be on top of any [ModalBottomSheetNavigator] in the View-hierarchy
* @param Action the type of [NavigationAction] this navigator should respond to.
* @param navigationMapper Maps [Action] to a [BottomSheetComposableNavSpec] to be navigated to.
- * @param initialSheetValue The [ModalBottomSheetValue] the [ModalBottomSheetLayout] should default to.
- * @param parentRouteController A [RouteController] managing the parent view of the [ModalBottomSheetLayout]
+ * @param initialSheetValue The [SheetValue] the [BottomSheetScaffold] should default to.
+ * @param parentRouteController A [RouteController] managing the parent view of the [BottomSheetScaffold]
* @param contentRootResultHandlers A list of [NavHostResultHandler] to be added to the root view of the content.
* @param contentBuilder The [BottomSheetContentBuilder] describing the navigation graph of the content.
* @param sheetContentBuilder The [BottomSheetContentBuilder] describing the navigation graph of the sheet content.
*/
class RootModalBottomSheetNavigator>(
navigationMapper: @Composable (Action) -> BottomSheetComposableNavSpec,
- private val initialSheetValue: ModalBottomSheetValue = ModalBottomSheetValue.Hidden,
+ private val initialSheetValue: SheetValue = Hidden,
parentRouteController: RouteController? = null,
contentRootResultHandlers: List> = emptyList(),
contentBuilder: BottomSheetContentBuilder,
@@ -114,7 +116,12 @@ class RootModalBottomSheetNavigator>(
BottomSheetNavigatorState(
contentNavController,
rememberNavController(),
- rememberModalBottomSheetState(initialValue = initialSheetValue),
+ rememberBottomSheetScaffoldState(
+ rememberStandardBottomSheetState(
+ initialSheetValue,
+ skipHiddenState = false,
+ ),
+ ),
),
)
sheetStateCoroutineScope.tryEmit(rememberCoroutineScope())
@@ -137,7 +144,7 @@ class RootModalBottomSheetNavigator>(
}
/**
- * A [BottomSheetNavigator] that is managed by a [ModalBottomSheetLayout].
+ * A [BottomSheetNavigator] that is managed by a [BottomSheetScaffold].
* Must have a ModalBottomSheetLayout set up higher in the View-hierarchy.
* @param Action the type of [NavigationAction] this navigator should respond to.
* @param bottomSheetNavigatorState The [BottomSheetNavigatorState] controlling the routes.
@@ -183,10 +190,10 @@ private fun SetupNavigatingModalBottomSheetLayout(
) {
val currentBottomSheetNavigationState by bottomSheetNavigationState.collectAsState()
currentBottomSheetNavigationState?.let { navigationState ->
- ModalBottomSheetLayout(
+ BottomSheetScaffold(
sheetContent = {
// Add a default BackButton behaviour that closes the sheet content
- if (navigationState.sheetState.isVisible) {
+ if (navigationState.scaffoldState.bottomSheetState.isVisible) {
HardwareBackButtonNavigation(onBackButtonClickHandler = sheetContentRouteController::close)
}
@@ -203,7 +210,7 @@ private fun SetupNavigatingModalBottomSheetLayout(
}
}
},
- sheetState = navigationState.sheetState,
+ scaffoldState = navigationState.scaffoldState,
) {
// Add NavHost to manage the Content navigation
SetupNavHost(
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState.kt
index c94c243a9..bd46206ca 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetNavigatorState.kt
@@ -17,7 +17,7 @@
package com.splendo.kaluga.architecture.compose.navigation
-import androidx.compose.material.ModalBottomSheetState
+import androidx.compose.material3.BottomSheetScaffoldState
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import kotlinx.coroutines.flow.StateFlow
@@ -26,12 +26,12 @@ import kotlinx.coroutines.flow.StateFlow
* The State of a [BottomSheetNavigator]
* @property contentNavHostController The [NavHostController] managing the content of the bottom sheet.
* @property sheetContentNavHostController The [NavHostController] managing the sheet content of the bottom sheet.
- * @property sheetState The [ModalBottomSheetState] of the bottom sheet.
+ * @property scaffoldState The [BottomSheetScaffoldState] of the bottom sheet.
*/
data class BottomSheetNavigatorState(
val contentNavHostController: NavHostController,
val sheetContentNavHostController: NavHostController,
- val sheetState: ModalBottomSheetState,
+ val scaffoldState: BottomSheetScaffoldState,
)
typealias BottomSheetContentBuilder = NavGraphBuilder.(bottomSheetNavigationState: StateFlow) -> Unit
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRoute.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRoute.kt
index 996061b2f..94800d692 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRoute.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRoute.kt
@@ -17,10 +17,10 @@
package com.splendo.kaluga.architecture.compose.navigation
-import androidx.compose.material.ModalBottomSheetLayout
+import androidx.compose.material3.BottomSheetScaffold
/**
- * The specification for navigating from a [ModalBottomSheetLayout]
+ * The specification for navigating from a [BottomSheetScaffold]
*/
sealed class BottomSheetComposableNavSpec
@@ -30,13 +30,13 @@ sealed class BottomSheetComposableNavSpec
sealed class BottomSheetRoute : BottomSheetComposableNavSpec() {
/**
- * Navigates within the sheet content of the [ModalBottomSheetLayout]
+ * Navigates within the sheet content of the [BottomSheetScaffold]
* @param route The [Route] to navigate
*/
data class SheetContent(val route: Route) : BottomSheetRoute()
/**
- * Navigates within the content of the [ModalBottomSheetLayout]
+ * Navigates within the content of the [BottomSheetScaffold]
* @param route The [Route] to navigate
*/
data class Content(val route: Route) : BottomSheetRoute()
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRouteController.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRouteController.kt
index aa27dd750..4cd11ce2c 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRouteController.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/BottomSheetRouteController.kt
@@ -17,10 +17,10 @@
package com.splendo.kaluga.architecture.compose.navigation
-import androidx.compose.material.ModalBottomSheetLayout
+import androidx.compose.material3.BottomSheetScaffold
/**
- * A controller that handles the [BottomSheetRoute] for a [ModalBottomSheetLayout]
+ * A controller that handles the [BottomSheetRoute] for a [BottomSheetScaffold]
* @param contentRouteController The [RouteController] managing the content.
* @param sheetContentRouteController The [RouteController] managing the sheet content.
*/
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/RouteController.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/RouteController.kt
index bd79fe552..dbe54f573 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/RouteController.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/navigation/RouteController.kt
@@ -17,7 +17,7 @@
package com.splendo.kaluga.architecture.compose.navigation
-import androidx.compose.material.ModalBottomSheetState
+import androidx.compose.material3.BottomSheetScaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
@@ -158,7 +158,7 @@ class BottomSheetContentRouteController(
/**
* [RouteController] for the sheet content of a [BottomSheetNavigatorState]
* @param bottomSheetNavigatorState The flow of [BottomSheetNavigatorState] where the [BottomSheetNavigatorState.sheetContentNavHostController] is to be managed by this Route Controller
- * @param coroutineScope A flow of [CoroutineScope] for managing the [ModalBottomSheetState].
+ * @param coroutineScope A flow of [CoroutineScope] for managing the [BottomSheetScaffold].
*/
class BottomSheetSheetContentRouteController(
private val bottomSheetNavigatorState: StateFlow,
@@ -172,10 +172,10 @@ class BottomSheetSheetContentRouteController(
internal val sheetContentRouteController = NavHostRouteController()
override fun navigate(newRoute: Route) {
- bottomSheetNavigatorState.value?.let { (_, _, sheetState) ->
- if (!sheetState.isVisible) {
+ bottomSheetNavigatorState.value?.let { (_, _, scaffoldState) ->
+ if (!scaffoldState.bottomSheetState.hasExpandedState) {
coroutineScope.value?.launch {
- sheetState.show()
+ scaffoldState.bottomSheetState.expand()
}
}
}
@@ -204,11 +204,11 @@ class BottomSheetSheetContentRouteController(
}
override fun close() {
- bottomSheetNavigatorState.value?.let { (_, sheetContentNavHostController, sheetState) ->
+ bottomSheetNavigatorState.value?.let { (_, sheetContentNavHostController, scaffoldState) ->
// Make sure we're back at the ROOT_VIEW before hiding the sheet
sheetContentNavHostController.popBackStack(ROOT_VIEW, false)
coroutineScope.value?.launch {
- sheetState.hide()
+ scaffoldState.bottomSheetState.hide()
}
}
}
diff --git a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/viewModel/ViewModelComposable.kt b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/viewModel/ViewModelComposable.kt
index 23b7149b0..768c4c45c 100644
--- a/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/viewModel/ViewModelComposable.kt
+++ b/architecture-compose/src/main/kotlin/com/splendo/kaluga/architecture/compose/viewModel/ViewModelComposable.kt
@@ -2,7 +2,6 @@ package com.splendo.kaluga.architecture.compose.viewModel
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.DisallowComposableCalls
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
@@ -76,47 +75,6 @@ private fun ViewModelComposable(
}
}
-/**
- * Stores a view model in the local [ViewModelStore]. Use if the view model
- * was created manually and is not located in Activity/Fragment [ViewModelStore].
- */
-@Composable
-@Deprecated(
- "Does not work for configuration changes (e.g. rotation).",
- replaceWith = ReplaceWith("viewModel()", "androidx.lifecycle.viewmodel.compose.viewModel"),
-)
-fun store(provider: @Composable () -> ViewModel): ViewModel = provider().also { handleLocalViewModelStore(it) }
-
-/**
- * Stores and remembers a view model in the local [ViewModelStore].
- * Use if the view model was created manually and is not located in Activity/Fragment [ViewModelStore].
- * provider will only be evaluated during the composition. Recomposition will always return the value produced by provider.
- */
-@Composable
-@Deprecated(
- "Does not work for configuration changes (e.g. rotation).",
- replaceWith = ReplaceWith("viewModel()", "androidx.lifecycle.viewmodel.compose.viewModel"),
-)
-@Suppress("Deprecation")
-fun storeAndRemember(provider: @DisallowComposableCalls () -> ViewModel): ViewModel = store {
- remember(provider)
-}
-
-/**
- * Stores and remembers a view model in the local [ViewModelStore].
- * Use if the view model was created manually and is not located in Activity/Fragment [ViewModelStore].
- * provider will only be evaluated during the composition. Recomposition will always return the value produced by provider.
- */
-@Composable
-@Deprecated(
- "Does not work for configuration changes (e.g. rotation).",
- replaceWith = ReplaceWith("viewModel()", "androidx.lifecycle.viewmodel.compose.viewModel"),
-)
-@Suppress("Deprecation")
-fun storeAndRemember(key: Any?, provider: @DisallowComposableCalls () -> ViewModel): ViewModel = store {
- remember(key, provider)
-}
-
@Composable
private fun handleLocalViewModelStore(viewModel: ViewModel): ViewModel {
// we delegate VM cleanup to the ViewModelStore, which lives in scope of the current @Composable
diff --git a/architecture/api/androidLib/architecture.api b/architecture/api/androidLib/architecture.api
index 7422592f8..13b5afb5f 100644
--- a/architecture/api/androidLib/architecture.api
+++ b/architecture/api/androidLib/architecture.api
@@ -1136,8 +1136,6 @@ public abstract class com/splendo/kaluga/architecture/navigation/NavigationSpec
public final class com/splendo/kaluga/architecture/navigation/NavigationSpec$Activity : com/splendo/kaluga/architecture/navigation/NavigationSpec {
public fun (Ljava/lang/Class;Ljava/util/Set;Lcom/splendo/kaluga/architecture/navigation/NavigationSpec$Activity$LaunchType;)V
public synthetic fun (Ljava/lang/Class;Ljava/util/Set;Lcom/splendo/kaluga/architecture/navigation/NavigationSpec$Activity$LaunchType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun (Ljava/lang/Class;Ljava/util/Set;Ljava/lang/Integer;)V
- public synthetic fun (Ljava/lang/Class;Ljava/util/Set;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/Class;
public final fun component2 ()Ljava/util/Set;
public final fun component3 ()Lcom/splendo/kaluga/architecture/navigation/NavigationSpec$Activity$LaunchType;
@@ -1821,7 +1819,6 @@ public abstract class com/splendo/kaluga/architecture/observable/AbstractBaseDef
public fun getDefaultValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public synthetic fun getObservation ()Lcom/splendo/kaluga/architecture/observable/Observation;
protected fun getObservation ()Lcom/splendo/kaluga/architecture/observable/ObservationDefault;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
@@ -1841,7 +1838,6 @@ public abstract class com/splendo/kaluga/architecture/observable/AbstractBaseIni
public fun getCurrentOrNull ()Ljava/lang/Object;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public synthetic fun getObservation ()Lcom/splendo/kaluga/architecture/observable/Observation;
protected fun getObservation ()Lcom/splendo/kaluga/architecture/observable/ObservationInitialized;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
@@ -1864,7 +1860,6 @@ public abstract class com/splendo/kaluga/architecture/observable/AbstractBaseUni
public fun getCurrentOrNull ()Ljava/lang/Object;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Nothing;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public synthetic fun getObservation ()Lcom/splendo/kaluga/architecture/observable/Observation;
protected fun getObservation ()Lcom/splendo/kaluga/architecture/observable/ObservationUninitialized;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
@@ -1889,7 +1884,6 @@ public abstract class com/splendo/kaluga/architecture/observable/BaseDefaultObse
public fun getDefaultValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public synthetic fun getObservation ()Lcom/splendo/kaluga/architecture/observable/Observation;
protected fun getObservation ()Lcom/splendo/kaluga/architecture/observable/ObservationDefault;
public fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
@@ -1913,7 +1907,6 @@ public abstract class com/splendo/kaluga/architecture/observable/BaseInitialized
public fun getCurrentOrNull ()Ljava/lang/Object;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
public fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
@@ -1957,7 +1950,6 @@ public abstract class com/splendo/kaluga/architecture/observable/BaseUninitializ
public fun getCurrentOrNull ()Ljava/lang/Object;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Nothing;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public synthetic fun getObservation ()Lcom/splendo/kaluga/architecture/observable/Observation;
protected fun getObservation ()Lcom/splendo/kaluga/architecture/observable/ObservationUninitialized;
public fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
@@ -1988,24 +1980,12 @@ public abstract interface class com/splendo/kaluga/architecture/observable/Defau
public abstract fun getDefaultValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
}
-public final class com/splendo/kaluga/architecture/observable/DefaultInitialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/DefaultInitialized;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/DefaultObservable : com/splendo/kaluga/architecture/observable/BasicObservable, com/splendo/kaluga/architecture/observable/DefaultInitialized {
}
-public final class com/splendo/kaluga/architecture/observable/DefaultObservable$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/DefaultObservable;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/DefaultSubject : com/splendo/kaluga/architecture/observable/BasicSubject, com/splendo/kaluga/architecture/observable/DefaultObservable, com/splendo/kaluga/architecture/observable/MutableDefaultInitialized {
}
-public final class com/splendo/kaluga/architecture/observable/DefaultSubject$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/DefaultSubject;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/Disposable {
public abstract fun addTo (Lcom/splendo/kaluga/architecture/observable/DisposeBag;)V
public abstract fun dispose ()V
@@ -2069,45 +2049,21 @@ public abstract interface class com/splendo/kaluga/architecture/observable/Initi
public abstract fun observeInitialized (Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/architecture/observable/Disposable;
}
-public final class com/splendo/kaluga/architecture/observable/Initialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/Initialized;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/InitializedObservable : com/splendo/kaluga/architecture/observable/BasicObservable, com/splendo/kaluga/architecture/observable/Initialized {
}
-public final class com/splendo/kaluga/architecture/observable/InitializedObservable$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/InitializedObservable;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/InitializedSubject : com/splendo/kaluga/architecture/observable/BasicSubject, com/splendo/kaluga/architecture/observable/InitializedObservable, com/splendo/kaluga/architecture/observable/MutableInitialized {
}
-public final class com/splendo/kaluga/architecture/observable/InitializedSubject$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/InitializedSubject;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/MutableDefaultInitialized : com/splendo/kaluga/architecture/observable/DefaultInitialized, com/splendo/kaluga/architecture/observable/WithMutableState {
}
-public final class com/splendo/kaluga/architecture/observable/MutableDefaultInitialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/MutableDefaultInitialized;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/MutableInitialized : com/splendo/kaluga/architecture/observable/Initialized, com/splendo/kaluga/architecture/observable/WithMutableState {
}
-public final class com/splendo/kaluga/architecture/observable/MutableInitialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/MutableInitialized;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/MutableUninitialized : com/splendo/kaluga/architecture/observable/Uninitialized, com/splendo/kaluga/architecture/observable/WithMutableState {
}
-public final class com/splendo/kaluga/architecture/observable/MutableUninitialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/MutableUninitialized;)Landroidx/lifecycle/LiveData;
-}
-
public final class com/splendo/kaluga/architecture/observable/ObservableKt {
public static final fun observableOf (Ljava/lang/Object;)Lcom/splendo/kaluga/architecture/observable/SimpleInitializedObservable;
}
@@ -2165,7 +2121,6 @@ public class com/splendo/kaluga/architecture/observable/ObservationDefault : com
public fun getDefaultValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
public synthetic fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
public fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
@@ -2181,7 +2136,6 @@ public class com/splendo/kaluga/architecture/observable/ObservationInitialized :
public fun getCurrent ()Ljava/lang/Object;
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Value;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
public synthetic fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
public fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
@@ -2200,7 +2154,6 @@ public final class com/splendo/kaluga/architecture/observable/ObservationUniniti
public fun ()V
public fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Nothing;
public synthetic fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional;
- public fun getLiveData ()Landroidx/lifecycle/LiveData;
public fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
public synthetic fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
public fun getValue (Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;
@@ -2330,43 +2283,23 @@ public abstract interface class com/splendo/kaluga/architecture/observable/Unini
public abstract fun getInitialValue ()Lcom/splendo/kaluga/architecture/observable/ObservableOptional$Nothing;
}
-public final class com/splendo/kaluga/architecture/observable/Uninitialized$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/Uninitialized;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/UninitializedObservable : com/splendo/kaluga/architecture/observable/BasicObservable, com/splendo/kaluga/architecture/observable/Uninitialized {
}
-public final class com/splendo/kaluga/architecture/observable/UninitializedObservable$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/UninitializedObservable;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/UninitializedSubject : com/splendo/kaluga/architecture/observable/BasicSubject, com/splendo/kaluga/architecture/observable/MutableUninitialized, com/splendo/kaluga/architecture/observable/UninitializedObservable {
}
-public final class com/splendo/kaluga/architecture/observable/UninitializedSubject$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/UninitializedSubject;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/WithMutableState : com/splendo/kaluga/architecture/observable/WithState {
public abstract fun getStateFlow ()Lkotlinx/coroutines/flow/MutableStateFlow;
public abstract fun getValueDelegate ()Lkotlin/properties/ReadWriteProperty;
}
-public final class com/splendo/kaluga/architecture/observable/WithMutableState$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/WithMutableState;)Landroidx/lifecycle/LiveData;
-}
-
public abstract interface class com/splendo/kaluga/architecture/observable/WithState {
- public abstract fun getLiveData ()Landroidx/lifecycle/LiveData;
+ public fun getLiveData ()Landroidx/lifecycle/LiveData;
public abstract fun getStateFlow ()Lkotlinx/coroutines/flow/StateFlow;
public abstract fun getValueDelegate ()Lkotlin/properties/ReadOnlyProperty;
}
-public final class com/splendo/kaluga/architecture/observable/WithState$DefaultImpls {
- public static fun getLiveData (Lcom/splendo/kaluga/architecture/observable/WithState;)Landroidx/lifecycle/LiveData;
-}
-
public final class com/splendo/kaluga/architecture/observable/WithStateKt {
public static final fun observeNotNullOnLifecycle (Lcom/splendo/kaluga/architecture/observable/WithState;Landroidx/lifecycle/LifecycleOwner;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;)Lkotlinx/coroutines/Job;
public static synthetic fun observeNotNullOnLifecycle$default (Lcom/splendo/kaluga/architecture/observable/WithState;Landroidx/lifecycle/LifecycleOwner;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
@@ -2387,10 +2320,6 @@ public class com/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel :
protected final fun removeLifecycleSubscribables ([Lcom/splendo/kaluga/architecture/lifecycle/LifecycleSubscribable;)V
}
-public class com/splendo/kaluga/architecture/viewmodel/BaseViewModel : com/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel {
- public fun ()V
-}
-
public abstract class com/splendo/kaluga/architecture/viewmodel/KalugaViewModelActivity : androidx/appcompat/app/AppCompatActivity {
public fun ()V
public fun (I)V
@@ -2448,7 +2377,3 @@ public class com/splendo/kaluga/architecture/viewmodel/NavigatingViewModel : com
protected final fun getNavigator ()Lcom/splendo/kaluga/architecture/navigation/Navigator;
}
-public class com/splendo/kaluga/architecture/viewmodel/ViewModel : com/splendo/kaluga/architecture/viewmodel/LifecycleViewModel {
- public fun ()V
-}
-
diff --git a/architecture/api/jvm/architecture.api b/architecture/api/jvm/architecture.api
index 63ed0ae63..6d8e6102c 100644
--- a/architecture/api/jvm/architecture.api
+++ b/architecture/api/jvm/architecture.api
@@ -1108,10 +1108,6 @@ public class com/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel :
protected final fun removeLifecycleSubscribables ([Lcom/splendo/kaluga/architecture/lifecycle/LifecycleSubscribable;)V
}
-public class com/splendo/kaluga/architecture/viewmodel/BaseViewModel : com/splendo/kaluga/architecture/viewmodel/BaseLifecycleViewModel {
- public fun ()V
-}
-
public class com/splendo/kaluga/architecture/viewmodel/LifecycleViewModel {
public final fun clear ()V
public final fun getCoroutineScope ()Lkotlinx/coroutines/CoroutineScope;
@@ -1123,7 +1119,3 @@ public class com/splendo/kaluga/architecture/viewmodel/NavigatingViewModel : com
protected final fun getNavigator ()Lcom/splendo/kaluga/architecture/navigation/Navigator;
}
-public class com/splendo/kaluga/architecture/viewmodel/ViewModel : com/splendo/kaluga/architecture/viewmodel/LifecycleViewModel {
- public fun ()V
-}
-
diff --git a/architecture/build.gradle.kts b/architecture/build.gradle.kts
index ecc6ce7b5..02c48835d 100644
--- a/architecture/build.gradle.kts
+++ b/architecture/build.gradle.kts
@@ -1,37 +1,33 @@
plugins {
- kotlin("multiplatform")
- kotlin("plugin.serialization")
- id("jacoco")
- id("com.android.library")
- id("convention.publication")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
- id("kotlinx-atomicfu")
+ id("com.splendo.kaluga.plugin")
+ id(libs.plugins.kotlinx.atomicfu.get().pluginId)
+ alias(libs.plugins.kotlin.serialization)
}
-publishableComponent("architecture")
+kaluga {
+ moduleName = "architecture"
-dependencies {
- apiDependency(Dependencies.AndroidX.Lifecycle.Runtime)
- apiDependency(Dependencies.AndroidX.Lifecycle.ViewModel)
- apiDependency(Dependencies.AndroidX.Lifecycle.LiveData)
- apiDependency(Dependencies.Android.Material)
- implementationDependency(Dependencies.AndroidX.Browser)
- implementationDependency(Dependencies.KotlinX.AtomicFu)
-}
+ supportJVM = true
+ supportJS = true
-kotlin {
- sourceSets {
- getByName("commonMain") {
- dependencies {
- implementation(project(":base", ""))
- apiDependency(Dependencies.KotlinX.Serialization.Core)
- apiDependency(Dependencies.KotlinX.Serialization.Json)
+ dependencies {
+ android {
+ main {
+ api(libs.androidx.lifecycle.runtime)
+ api(libs.androidx.lifecycle.viewmodel)
+ api(libs.androidx.lifecycle.livedata)
+ api(libs.android.material)
+ implementation(libs.androidx.browser)
+ implementation(libs.kotlinx.atomicfu)
}
}
-
- getByName("commonTest") {
- dependencies {
+ common {
+ main {
+ implementation(project(":base", ""))
+ api(libs.kotlinx.serialization.core)
+ api(libs.kotlinx.serialization.json)
+ }
+ test {
api(project(":test-utils-architecture", ""))
}
}
diff --git a/architecture/src/androidLibMain/kotlin/navigation/NavigationSpec.kt b/architecture/src/androidLibMain/kotlin/navigation/NavigationSpec.kt
index 083ed103f..56b16a123 100644
--- a/architecture/src/androidLibMain/kotlin/navigation/NavigationSpec.kt
+++ b/architecture/src/androidLibMain/kotlin/navigation/NavigationSpec.kt
@@ -124,13 +124,6 @@ sealed class NavigationSpec {
fun tryAndGetContract(activity: android.app.Activity): ActivityResultLauncher? = activityClass.safeCast(activity)?.provideResultLauncher()
}
}
-
- @Deprecated("Legacy constructor", ReplaceWith("NavigationSpec.Activity(activityClass, flags, launchType)"))
- constructor(
- activityClass: Class,
- flags: Set = emptySet(),
- requestCode: Int?,
- ) : this(activityClass, flags, requestCode?.let { LaunchType.ActivityResult(it) } ?: LaunchType.NoResult)
}
/**
diff --git a/architecture/src/commonMain/kotlin/viewmodel/LifecycleViewModel.kt b/architecture/src/commonMain/kotlin/viewmodel/LifecycleViewModel.kt
index b2f117c56..8fd52818f 100644
--- a/architecture/src/commonMain/kotlin/viewmodel/LifecycleViewModel.kt
+++ b/architecture/src/commonMain/kotlin/viewmodel/LifecycleViewModel.kt
@@ -28,18 +28,6 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
-@Deprecated(
- message = "ViewModel was renamed as the name didn't match it's function.",
- replaceWith = ReplaceWith("LifecycleViewModel"),
-)
-open class ViewModel : LifecycleViewModel()
-
-@Deprecated(
- message = "BaseViewModel was renamed as the name didn't match it's function.",
- replaceWith = ReplaceWith("BaseLifecycleViewModel"),
-)
-open class BaseViewModel : BaseLifecycleViewModel()
-
/**
* Simple ViewModel class that is to be bound to a View lifecycle
*/
diff --git a/architecture/src/commonTest/kotlin/observable/MutableSharedFlowTest.kt b/architecture/src/commonTest/kotlin/observable/MutableSharedFlowTest.kt
index d0761e88c..bec9c1fd2 100644
--- a/architecture/src/commonTest/kotlin/observable/MutableSharedFlowTest.kt
+++ b/architecture/src/commonTest/kotlin/observable/MutableSharedFlowTest.kt
@@ -45,35 +45,35 @@ class MutableSharedFlowTest : BaseTest() {
assertEquals(0, value)
subject.post(1)
- delay(10)
+ delay(100)
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
assertEquals(1, value)
subject.set(2)
- delay(10)
+ delay(100)
assertEquals(2, subject.current)
assertEquals(2, subject.stateFlow.value)
assertEquals(2, stateFlow.value)
assertEquals(2, value)
subject.stateFlow.value = 3
- delay(10)
+ delay(100)
assertEquals(3, subject.current)
assertEquals(3, subject.stateFlow.value)
assertEquals(3, stateFlow.value)
assertEquals(3, value)
value = 4
- delay(10)
+ delay(100)
assertEquals(4, subject.current)
assertEquals(4, subject.stateFlow.value)
assertEquals(4, stateFlow.value)
assertEquals(4, value)
sharedFlow.emit(5)
- delay(10)
+ delay(100)
assertEquals(5, subject.current)
assertEquals(5, subject.stateFlow.value)
assertEquals(5, stateFlow.value)
@@ -90,7 +90,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toInitializedSubject(0, scope)
subject.post(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -108,7 +108,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toInitializedSubject(0, scope)
subject.set(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -127,7 +127,7 @@ class MutableSharedFlowTest : BaseTest() {
val subjectStateFlow = subject.stateFlow
subjectStateFlow.value = 1
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -146,7 +146,7 @@ class MutableSharedFlowTest : BaseTest() {
var value: Int by subject.valueDelegate
value = 1
- delay(10)
+ delay(100)
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
@@ -162,9 +162,9 @@ class MutableSharedFlowTest : BaseTest() {
val stateFlow = sharedFlow.stateIn(scope, SharingStarted.Eagerly, initialValue = -1)
val subject = sharedFlow.toInitializedSubject(0, scope)
- delay(10)
+ delay(100)
sharedFlow.emit(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -188,35 +188,35 @@ class MutableSharedFlowTest : BaseTest() {
assertEquals(0, value)
subject.post(1)
- delay(10)
+ delay(100)
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
assertEquals(1, value)
subject.set(2)
- delay(10)
+ delay(100)
assertEquals(2, subject.current)
assertEquals(2, subject.stateFlow.value)
assertEquals(2, stateFlow.value)
assertEquals(2, value)
subject.stateFlow.value = 3
- delay(10)
+ delay(100)
assertEquals(3, subject.current)
assertEquals(3, subject.stateFlow.value)
assertEquals(3, stateFlow.value)
assertEquals(3, value)
value = 4
- delay(10)
+ delay(100)
assertEquals(4, subject.current)
assertEquals(4, subject.stateFlow.value)
assertEquals(4, stateFlow.value)
assertEquals(4, value)
sharedFlow.emit(5)
- delay(10)
+ delay(100)
assertEquals(5, subject.current)
assertEquals(5, subject.stateFlow.value)
assertEquals(5, stateFlow.value)
@@ -233,7 +233,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toDefaultSubject(0, null, scope)
subject.post(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -251,7 +251,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toDefaultSubject(0, null, scope)
subject.set(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -269,7 +269,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toDefaultSubject(0, null, scope)
subject.stateFlow.value = 1
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -288,7 +288,7 @@ class MutableSharedFlowTest : BaseTest() {
var value: Int by subject.valueDelegate
value = 1
- delay(10)
+ delay(100)
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
@@ -304,9 +304,9 @@ class MutableSharedFlowTest : BaseTest() {
val stateFlow = sharedFlow.stateIn(scope, SharingStarted.Eagerly, initialValue = null)
val subject = sharedFlow.toDefaultSubject(0, null, scope)
- delay(10)
+ delay(100)
sharedFlow.emit(1)
- delay(10)
+ delay(100)
val value: Int by subject.valueDelegate
assertEquals(1, subject.current)
assertEquals(1, subject.stateFlow.value)
@@ -330,35 +330,35 @@ class MutableSharedFlowTest : BaseTest() {
assertEquals(null, value)
subject.post(1)
- delay(10)
+ delay(100)
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
assertEquals(1, value)
subject.set(2)
- delay(10)
+ delay(100)
assertEquals(2, subject.currentOrNull)
assertEquals(2, subject.stateFlow.value)
assertEquals(2, stateFlow.value)
assertEquals(2, value)
subject.stateFlow.value = 3
- delay(10)
+ delay(100)
assertEquals(3, subject.currentOrNull)
assertEquals(3, subject.stateFlow.value)
assertEquals(3, stateFlow.value)
assertEquals(3, value)
value = 4
- delay(10)
+ delay(100)
assertEquals(4, subject.currentOrNull)
assertEquals(4, subject.stateFlow.value)
assertEquals(4, stateFlow.value)
assertEquals(4, value)
sharedFlow.emit(5)
- delay(10)
+ delay(100)
assertEquals(5, subject.currentOrNull)
assertEquals(5, subject.stateFlow.value)
assertEquals(5, stateFlow.value)
@@ -375,7 +375,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toUninitializedSubject(scope)
subject.post(1)
- delay(10)
+ delay(100)
val value: Int? by subject.valueDelegate
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
@@ -393,7 +393,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toUninitializedSubject(scope)
subject.set(1)
- delay(10)
+ delay(100)
val value: Int? by subject.valueDelegate
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
@@ -411,7 +411,7 @@ class MutableSharedFlowTest : BaseTest() {
val subject = sharedFlow.toUninitializedSubject(scope)
subject.stateFlow.value = 1
- delay(10)
+ delay(100)
val value: Int? by subject.valueDelegate
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
@@ -430,7 +430,7 @@ class MutableSharedFlowTest : BaseTest() {
var value: Int? by subject.valueDelegate
value = 1
- delay(10)
+ delay(100)
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
assertEquals(1, stateFlow.value)
@@ -446,9 +446,9 @@ class MutableSharedFlowTest : BaseTest() {
val stateFlow = sharedFlow.stateIn(scope, SharingStarted.Eagerly, initialValue = 0)
val subject = sharedFlow.toUninitializedSubject(scope)
- delay(10)
+ delay(100)
sharedFlow.emit(1)
- delay(10)
+ delay(100)
val value: Int? by subject.valueDelegate
assertEquals(1, subject.currentOrNull)
assertEquals(1, subject.stateFlow.value)
diff --git a/architecture/src/iosMain/kotlin/navigation/NavigationSpec.kt b/architecture/src/iosMain/kotlin/navigation/NavigationSpec.kt
index 3410fb9fe..0868dc9c7 100644
--- a/architecture/src/iosMain/kotlin/navigation/NavigationSpec.kt
+++ b/architecture/src/iosMain/kotlin/navigation/NavigationSpec.kt
@@ -23,6 +23,7 @@ import com.splendo.kaluga.architecture.navigation.NavigationSpec.Email.EmailSett
import com.splendo.kaluga.architecture.navigation.NavigationSpec.ImagePicker.MediaType
import com.splendo.kaluga.architecture.navigation.NavigationSpec.Message.MessageSettings
import com.splendo.kaluga.architecture.navigation.NavigationSpec.ThirdParty.OpenMode
+import kotlinx.cinterop.ObjCSignatureOverride
import platform.CoreFoundation.CFStringRef
import platform.CoreServices.kUTTypeImage
import platform.CoreServices.kUTTypeMovie
@@ -182,13 +183,14 @@ sealed class NavigationSpec {
val completion: (() -> Unit)? = null,
) : NavigationSpec() {
- @Suppress("CONFLICTING_OVERLOADS")
internal val delegate: UINavigationControllerDelegateProtocol = object : NSObject(), UIImagePickerControllerDelegateProtocol, UINavigationControllerDelegateProtocol {
+ @ObjCSignatureOverride
override fun navigationController(navigationController: UINavigationController, willShowViewController: UIViewController, animated: Boolean) {
navigationDelegate.navigationController(navigationController, willShowViewController = willShowViewController, animated = animated)
}
+ @ObjCSignatureOverride
override fun navigationController(navigationController: UINavigationController, didShowViewController: UIViewController, animated: Boolean) {
navigationDelegate.navigationController(navigationController, didShowViewController = didShowViewController, animated = animated)
}
diff --git a/base-permissions/api/androidLib/base-permissions.api b/base-permissions/api/base-permissions.api
similarity index 85%
rename from base-permissions/api/androidLib/base-permissions.api
rename to base-permissions/api/base-permissions.api
index 50a8b49c5..8e0004edd 100644
--- a/base-permissions/api/androidLib/base-permissions.api
+++ b/base-permissions/api/base-permissions.api
@@ -126,84 +126,40 @@ public abstract interface class com/splendo/kaluga/permissions/base/PermissionSt
public abstract fun getDeinitialize ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Active$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Active;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Allowed : com/splendo/kaluga/permissions/base/PermissionState$Initialized {
public abstract fun deny (Z)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Allowed$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Allowed;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Deinitialized : com/splendo/kaluga/permissions/base/PermissionState$Inactive {
public abstract fun getReinitialize ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Deinitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Deinitialized;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied : com/splendo/kaluga/permissions/base/PermissionState$Initialized {
public abstract fun getAllow ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied$Locked : com/splendo/kaluga/permissions/base/PermissionState$Denied {
public abstract fun getUnlock ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$Locked$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied$Locked;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable : com/splendo/kaluga/permissions/base/PermissionState$Denied {
public abstract fun getLock ()Lkotlin/jvm/functions/Function1;
public abstract fun request ()V
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Inactive : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/permissions/base/PermissionState {
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Inactive$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Inactive;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Initialized : com/splendo/kaluga/permissions/base/PermissionState$Active {
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Initialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Initialized;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Initializing : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/permissions/base/PermissionState$Active {
public abstract fun initialize (ZZ)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Initializing$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Initializing;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Uninitialized : com/splendo/kaluga/permissions/base/PermissionState$Inactive {
}
-public final class com/splendo/kaluga/permissions/base/PermissionState$Uninitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Uninitialized;)Lkotlin/jvm/functions/Function1;
-}
-
public final class com/splendo/kaluga/permissions/base/PermissionStateKt {
public static final fun request (Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
diff --git a/base-permissions/api/jvm/base-permissions.api b/base-permissions/api/jvm/base-permissions.api
deleted file mode 100644
index 0836906c4..000000000
--- a/base-permissions/api/jvm/base-permissions.api
+++ /dev/null
@@ -1,211 +0,0 @@
-public abstract class com/splendo/kaluga/permissions/base/BasePermissionManager : com/splendo/kaluga/permissions/base/PermissionManager, kotlinx/coroutines/CoroutineScope {
- public fun (Lcom/splendo/kaluga/permissions/base/Permission;Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;)V
- protected final fun emitEvent (Lcom/splendo/kaluga/permissions/base/PermissionManager$Event;)V
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- protected final fun getEventChannel ()Lkotlinx/coroutines/channels/Channel;
- public fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- protected final fun getLogTag ()Ljava/lang/String;
- protected final fun getLogger ()Lcom/splendo/kaluga/logging/Logger;
- public final fun getPermission ()Lcom/splendo/kaluga/permissions/base/Permission;
- protected abstract fun monitoringDidStart-LRDsOJo (J)V
- protected abstract fun monitoringDidStop ()V
- public final fun requestPermission ()V
- protected abstract fun requestPermissionDidStart ()V
- public final fun startMonitoring-LRDsOJo (J)V
- public final fun stopMonitoring ()V
-}
-
-public final class com/splendo/kaluga/permissions/base/BasePermissionManager$Settings {
- public fun ()V
- public fun (Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun (Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun component1 ()Lcom/splendo/kaluga/logging/Logger;
- public final fun copy (Lcom/splendo/kaluga/logging/Logger;)Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lcom/splendo/kaluga/logging/Logger;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getLogger ()Lcom/splendo/kaluga/logging/Logger;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract class com/splendo/kaluga/permissions/base/BasePermissionStateRepo : com/splendo/kaluga/base/state/ColdStateFlowRepo {
- public fun (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/CoroutineContext;)V
- public synthetic fun (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/BasePermissionsBuilder {
-}
-
-public abstract class com/splendo/kaluga/permissions/base/Permission {
- public fun ()V
- public abstract fun getName ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionContext {
- public fun ()V
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionContextKt {
- public static final fun getDefaultPermissionContext ()Lcom/splendo/kaluga/permissions/base/PermissionContext;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionManager {
- public abstract fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun getPermission ()Lcom/splendo/kaluga/permissions/base/Permission;
- public abstract fun requestPermission ()V
- public abstract fun startMonitoring-LRDsOJo (J)V
- public abstract fun stopMonitoring ()V
-}
-
-public abstract class com/splendo/kaluga/permissions/base/PermissionManager$Event {
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionDenied : com/splendo/kaluga/permissions/base/PermissionManager$Event {
- public fun (Z)V
- public final fun component1 ()Z
- public final fun copy (Z)Lcom/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionDenied;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionDenied;ZILjava/lang/Object;)Lcom/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionDenied;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getLocked ()Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionGranted : com/splendo/kaluga/permissions/base/PermissionManager$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/permissions/base/PermissionManager$Event$PermissionGranted;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState : com/splendo/kaluga/base/state/KalugaState {
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Active : com/splendo/kaluga/permissions/base/PermissionState {
- public abstract fun getDeinitialize ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Active$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Active;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Allowed : com/splendo/kaluga/permissions/base/PermissionState$Initialized {
- public abstract fun deny (Z)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Allowed$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Allowed;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Deinitialized : com/splendo/kaluga/permissions/base/PermissionState$Inactive {
- public abstract fun getReinitialize ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Deinitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Deinitialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied : com/splendo/kaluga/permissions/base/PermissionState$Initialized {
- public abstract fun getAllow ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied$Locked : com/splendo/kaluga/permissions/base/PermissionState$Denied {
- public abstract fun getUnlock ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$Locked$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied$Locked;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable : com/splendo/kaluga/permissions/base/PermissionState$Denied {
- public abstract fun getLock ()Lkotlin/jvm/functions/Function1;
- public abstract fun request ()V
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Denied$Requestable;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Inactive : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/permissions/base/PermissionState {
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Inactive$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Inactive;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Initialized : com/splendo/kaluga/permissions/base/PermissionState$Active {
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Initialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Initialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Initializing : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/permissions/base/PermissionState$Active {
- public abstract fun initialize (ZZ)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Initializing$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Initializing;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionState$Uninitialized : com/splendo/kaluga/permissions/base/PermissionState$Inactive {
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionState$Uninitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/permissions/base/PermissionState$Uninitialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionStateKt {
- public static final fun request (Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public class com/splendo/kaluga/permissions/base/PermissionStateRepo : com/splendo/kaluga/permissions/base/BasePermissionStateRepo {
- public static final field Companion Lcom/splendo/kaluga/permissions/base/PermissionStateRepo$Companion;
- public synthetic fun (JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public synthetic fun (JLkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
- protected final fun getMonitoringInterval-UwyO8pc ()J
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionStateRepo$Companion {
- public final fun getDefaultMonitoringInterval-UwyO8pc ()J
-}
-
-public abstract interface class com/splendo/kaluga/permissions/base/PermissionStateRepoBuilder {
- public abstract fun create (Lcom/splendo/kaluga/permissions/base/Permission;Lkotlin/coroutines/CoroutineContext;)Lcom/splendo/kaluga/permissions/base/BasePermissionStateRepo;
-}
-
-public final class com/splendo/kaluga/permissions/base/Permissions {
- public fun (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/coroutines/CoroutineContext;)V
- public synthetic fun (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun clean ()V
- public final fun get (Lcom/splendo/kaluga/permissions/base/Permission;)Lcom/splendo/kaluga/base/state/StateRepo;
- public final fun request (Lcom/splendo/kaluga/permissions/base/Permission;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public class com/splendo/kaluga/permissions/base/PermissionsBuilder {
- public fun ()V
- public fun (Lcom/splendo/kaluga/permissions/base/PermissionContext;)V
- public synthetic fun (Lcom/splendo/kaluga/permissions/base/PermissionContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun createPermissionStateRepo (Lcom/splendo/kaluga/permissions/base/Permission;Lkotlin/coroutines/CoroutineContext;)Lcom/splendo/kaluga/permissions/base/BasePermissionStateRepo;
- public final fun get (Lcom/splendo/kaluga/permissions/base/Permission;)Lcom/splendo/kaluga/permissions/base/BasePermissionsBuilder;
- public final fun getContext ()Lcom/splendo/kaluga/permissions/base/PermissionContext;
- public final fun register (Lkotlin/reflect/KClass;Lcom/splendo/kaluga/permissions/base/BasePermissionsBuilder;)Lcom/splendo/kaluga/permissions/base/BasePermissionsBuilder;
- public final fun registerOrGet (Lkotlin/reflect/KClass;Lcom/splendo/kaluga/permissions/base/BasePermissionsBuilder;)Lcom/splendo/kaluga/permissions/base/BasePermissionsBuilder;
- public final fun registerOrGetPermissionStateRepoBuilder (Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function2;)Lcom/splendo/kaluga/permissions/base/PermissionStateRepoBuilder;
- public final fun registerPermissionStateRepoBuilder (Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function2;)V
- public final fun unregister (Lcom/splendo/kaluga/permissions/base/Permission;)V
- public final fun unregisterPermissionStateRepoBuilder (Lcom/splendo/kaluga/permissions/base/Permission;)V
-}
-
-public final class com/splendo/kaluga/permissions/base/PermissionsBuilderError : java/lang/Error {
- public fun (Ljava/lang/String;)V
-}
-
diff --git a/base-permissions/build.gradle.kts b/base-permissions/build.gradle.kts
index 262e7fbb2..9ed4a92a3 100644
--- a/base-permissions/build.gradle.kts
+++ b/base-permissions/build.gradle.kts
@@ -1,29 +1,22 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
- id("kotlinx-atomicfu")
+ id("com.splendo.kaluga.plugin")
+ id(libs.plugins.kotlinx.atomicfu.get().pluginId)
}
-publishableComponent("permissions.base")
-
-dependencies {
- implementationDependency(Dependencies.KotlinX.AtomicFu)
-}
-
-kotlin {
- sourceSets {
- getByName("commonMain") {
- dependencies {
+kaluga {
+ moduleName = "permissions.base"
+ dependencies {
+ android {
+ main {
+ implementation(libs.kotlinx.atomicfu)
+ }
+ }
+ common {
+ main {
api(project(":logging", ""))
api(project(":base", ""))
}
- }
- getByName("commonTest") {
- dependencies {
+ test {
api(project(":test-utils-permissions", ""))
}
}
diff --git a/base-permissions/src/jsMain/kotlin/PermissionContext.kt b/base-permissions/src/jsMain/kotlin/PermissionContext.kt
deleted file mode 100644
index 80d17e2d6..000000000
--- a/base-permissions/src/jsMain/kotlin/PermissionContext.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright 2022 Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.permissions.base
-
-/**
- * JavaScript context for creating a [BasePermissionsBuilder]
- */
-actual class PermissionContext
-
-/**
- * Default [PermissionContext] of the system
- */
-actual val defaultPermissionContext = PermissionContext()
diff --git a/base-permissions/src/jvmMain/kotlin/PermissionContext.kt b/base-permissions/src/jvmMain/kotlin/PermissionContext.kt
deleted file mode 100644
index 06beacfbb..000000000
--- a/base-permissions/src/jvmMain/kotlin/PermissionContext.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright 2022 Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.permissions.base
-
-/**
- * Java context for creating a [BasePermissionsBuilder]
- */
-actual class PermissionContext
-
-/**
- * Default [PermissionContext] of the system
- */
-actual val defaultPermissionContext = PermissionContext()
diff --git a/base/api/androidLib/base.api b/base/api/androidLib/base.api
index 2666d6af6..65fcb7fd4 100644
--- a/base/api/androidLib/base.api
+++ b/base/api/androidLib/base.api
@@ -32,10 +32,6 @@ public final class com/splendo/kaluga/base/KalugaThreadKt {
public static final fun isOnMainThread ()Z
}
-public final class com/splendo/kaluga/base/MultiplatformMainScopeKt {
- public static final fun MultiplatformMainScope ()Lkotlinx/coroutines/CoroutineScope;
-}
-
public final class com/splendo/kaluga/base/RunBlockingKt {
public static final fun runBlocking (Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static synthetic fun runBlocking$default (Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
@@ -286,11 +282,7 @@ public abstract class com/splendo/kaluga/base/state/HotStateRepo : com/splendo/k
}
public abstract interface class com/splendo/kaluga/base/state/KalugaState {
- public abstract fun remain ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/base/state/KalugaState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/base/state/KalugaState;)Lkotlin/jvm/functions/Function1;
+ public fun remain ()Lkotlin/jvm/functions/Function1;
}
public abstract interface class com/splendo/kaluga/base/state/StateFlowRepo {
@@ -1214,6 +1206,7 @@ public final class com/splendo/kaluga/base/utils/KalugaTimeZone : com/splendo/ka
public fun getDaylightSavingsOffset-UwyO8pc ()J
public fun getIdentifier ()Ljava/lang/String;
public fun getOffsetFromGMT-UwyO8pc ()J
+ public fun hashCode ()I
public fun offsetFromGMTAtDate-5sfh64U (Lcom/splendo/kaluga/base/utils/KalugaDate;)J
public fun usesDaylightSavingsTime (Lcom/splendo/kaluga/base/utils/KalugaDate;)Z
}
diff --git a/base/api/jvm/base.api b/base/api/jvm/base.api
index 520235ef6..ca9d2b3cd 100644
--- a/base/api/jvm/base.api
+++ b/base/api/jvm/base.api
@@ -21,10 +21,6 @@ public final class com/splendo/kaluga/base/KalugaThreadKt {
public static final fun isOnMainThread ()Z
}
-public final class com/splendo/kaluga/base/MultiplatformMainScopeKt {
- public static final fun MultiplatformMainScope ()Lkotlinx/coroutines/CoroutineScope;
-}
-
public final class com/splendo/kaluga/base/RunBlockingKt {
public static final fun runBlocking (Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static synthetic fun runBlocking$default (Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Ljava/lang/Object;
@@ -273,11 +269,7 @@ public abstract class com/splendo/kaluga/base/state/HotStateRepo : com/splendo/k
}
public abstract interface class com/splendo/kaluga/base/state/KalugaState {
- public abstract fun remain ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/base/state/KalugaState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/base/state/KalugaState;)Lkotlin/jvm/functions/Function1;
+ public fun remain ()Lkotlin/jvm/functions/Function1;
}
public abstract interface class com/splendo/kaluga/base/state/StateFlowRepo {
@@ -1201,6 +1193,7 @@ public final class com/splendo/kaluga/base/utils/KalugaTimeZone : com/splendo/ka
public fun getDaylightSavingsOffset-UwyO8pc ()J
public fun getIdentifier ()Ljava/lang/String;
public fun getOffsetFromGMT-UwyO8pc ()J
+ public fun hashCode ()I
public fun offsetFromGMTAtDate-5sfh64U (Lcom/splendo/kaluga/base/utils/KalugaDate;)J
public fun usesDaylightSavingsTime (Lcom/splendo/kaluga/base/utils/KalugaDate;)Z
}
diff --git a/base/build.gradle.kts b/base/build.gradle.kts
index 179a066d1..7de90ce3a 100644
--- a/base/build.gradle.kts
+++ b/base/build.gradle.kts
@@ -1,54 +1,44 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
- id("kotlinx-atomicfu")
+ id("com.splendo.kaluga.plugin")
+ id(libs.plugins.kotlinx.atomicfu.get().pluginId)
}
-publishableComponent(
- "base",
- iosMainInterop = {
- create("objectObserver").apply {
- defFile = project.file("src/nativeInterop/cinterop/objectObserver.def")
- packageName("com.splendo.kaluga.base.kvo")
- compilerOpts("-I/src/nativeInterop/cinterop")
- includeDirs {
- allHeaders("src/nativeInterop/cinterop")
- }
- }
- }
-)
+kaluga {
+ moduleName = "base"
-dependencies {
- implementationDependency(Dependencies.KotlinX.AtomicFu)
-}
+ supportJVM = true
+ supportJS = true
-kotlin {
- sourceSets {
- getByName("commonMain") {
- dependencies {
- implementation(project(":logging", ""))
+ appleInterop {
+ main {
+ create("objectObserver").apply {
+ definitionFile.set(project.file("src/nativeInterop/cinterop/objectObserver.def"))
+ packageName("com.splendo.kaluga.base.kvo")
+ compilerOpts("-I/src/nativeInterop/cinterop")
+ includeDirs {
+ allHeaders("src/nativeInterop/cinterop")
+ }
}
}
- getByName("jsMain") {
- dependencies {
- implementation(kotlin("stdlib-common", Library.kotlinVersion))
- // JavaScript BigDecimal lib based on native BigInt
- implementation(npm("@splendo/bigdecimal", "1.0.26"))
+ }
+ dependencies {
+ android {
+ main {
+ implementation(libs.kotlinx.atomicfu)
}
}
- getByName("jsTest") {
- dependencies {
- api(kotlin("test-js"))
+ common {
+ main {
+ implementation(project(":logging", ""))
}
- }
- getByName("commonTest") {
- dependencies {
+ test {
implementation(project(":test-utils-base", ""))
}
}
+ js {
+ main {
+ implementation(npm("@splendo/bigdecimal", "1.0.26"))
+ }
+ }
}
}
diff --git a/base/src/androidLibMain/kotlin/text/KalugaDateFormatter.kt b/base/src/androidLibMain/kotlin/text/KalugaDateFormatter.kt
index f5c1d490e..ba9e06289 100644
--- a/base/src/androidLibMain/kotlin/text/KalugaDateFormatter.kt
+++ b/base/src/androidLibMain/kotlin/text/KalugaDateFormatter.kt
@@ -85,34 +85,34 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
private val symbols: DateFormatSymbols get() = format.dateFormatSymbols
- override var pattern: String
+ actual override var pattern: String
get() = format.toPattern()
set(value) = format.applyPattern(value)
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(format.timeZone)
set(value) {
format.timeZone = value.timeZone
}
- override var eras: List
+ actual override var eras: List
get() = symbols.eras.toList()
set(value) {
updateSymbols { it.eras = value.toTypedArray() }
}
- override var months: List
+ actual override var months: List
get() = symbols.months.toList()
set(value) {
updateSymbols { it.months = value.toTypedArray() }
}
- override var shortMonths: List
+ actual override var shortMonths: List
get() = symbols.shortMonths.toList()
set(value) {
updateSymbols { it.shortMonths = value.toTypedArray() }
}
- override var weekdays: List
+ actual override var weekdays: List
get() {
val weekdaysWithEmptyFirst = symbols.weekdays.toList()
return if (weekdaysWithEmptyFirst.size > 1) {
@@ -129,7 +129,7 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
it.weekdays = weekdaysWithEmptyFirst.toTypedArray()
}
}
- override var shortWeekdays: List
+ actual override var shortWeekdays: List
get() {
val weekdaysWithEmptyFirst = symbols.shortWeekdays.toList()
return if (weekdaysWithEmptyFirst.size > 1) {
@@ -147,19 +147,19 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
}
}
- override var amString: String
+ actual override var amString: String
get() = symbols.amPmStrings.toList()[0]
set(value) {
updateSymbols { it.amPmStrings = it.amPmStrings.toMutableList().apply { this[0] = value }.toTypedArray() }
}
- override var pmString: String
+ actual override var pmString: String
get() = symbols.amPmStrings.toList()[1]
set(value) {
updateSymbols { it.amPmStrings = it.amPmStrings.toMutableList().apply { this[1] = value }.toTypedArray() }
}
- override fun format(date: KalugaDate): String = format.format(date.date)
- override fun parse(string: String): KalugaDate? {
+ actual override fun format(date: KalugaDate): String = format.format(date.date)
+ actual override fun parse(string: String): KalugaDate? {
val currentTimeZone = timeZone
return try {
format.parse(string)?.let { date ->
diff --git a/base/src/androidLibMain/kotlin/text/NumberFormatter.kt b/base/src/androidLibMain/kotlin/text/NumberFormatter.kt
index 899c6344a..68aa1bdcd 100644
--- a/base/src/androidLibMain/kotlin/text/NumberFormatter.kt
+++ b/base/src/androidLibMain/kotlin/text/NumberFormatter.kt
@@ -28,7 +28,7 @@ import java.util.Currency
* @param locale The [KalugaLocale] used for parsing. Defaults to [KalugaLocale.defaultLocale].
* @param style The [NumberFormatStyle] to configure the format to use. Defaults to [NumberFormatStyle.Decimal].
*/
-actual class NumberFormatter actual constructor(override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
+actual class NumberFormatter actual constructor(actual override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
private val format: DecimalFormat = when (style) {
is NumberFormatStyle.Integer -> DecimalFormat.getInstance(locale.locale).apply {
@@ -83,112 +83,112 @@ actual class NumberFormatter actual constructor(override val locale: KalugaLocal
}
}
- override var percentSymbol: Char
+ actual override var percentSymbol: Char
get() = symbols.percent
set(value) {
applySymbols { it.percent = value }
}
- override var perMillSymbol: Char
+ actual override var perMillSymbol: Char
get() = symbols.perMill
set(value) {
applySymbols { it.perMill = value }
}
- override var minusSign: Char
+ actual override var minusSign: Char
get() = symbols.minusSign
set(value) {
applySymbols { it.minusSign = value }
}
- override var exponentSymbol: String
+ actual override var exponentSymbol: String
get() = symbols.exponentSeparator
set(value) {
applySymbols { it.exponentSeparator = value }
}
- override var zeroSymbol: Char
+ actual override var zeroSymbol: Char
get() = symbols.zeroDigit
set(value) {
applySymbols { it.zeroDigit = value }
}
- override var notANumberSymbol: String
+ actual override var notANumberSymbol: String
get() = symbols.naN
set(value) {
applySymbols { it.naN = value }
}
- override var infinitySymbol: String
+ actual override var infinitySymbol: String
get() = symbols.infinity
set(value) {
applySymbols { it.infinity = value }
}
- override var currencySymbol: String
+ actual override var currencySymbol: String
get() = symbols.currencySymbol
set(value) {
applySymbols { it.currencySymbol = value }
}
- override var currencyCode: String
+ actual override var currencyCode: String
get() = symbols.currency.currencyCode
set(value) {
applySymbols { it.currency = Currency.getInstance(value) }
}
- override var positivePrefix: String
+ actual override var positivePrefix: String
get() = format.positivePrefix
set(value) {
format.positivePrefix = value
}
- override var positiveSuffix: String
+ actual override var positiveSuffix: String
get() = format.positiveSuffix
set(value) {
format.positiveSuffix = value
}
- override var negativePrefix: String
+ actual override var negativePrefix: String
get() = format.negativePrefix
set(value) {
format.negativePrefix = value
}
- override var negativeSuffix: String
+ actual override var negativeSuffix: String
get() = format.negativeSuffix
set(value) {
format.negativeSuffix = value
}
- override var groupingSeparator: Char
+ actual override var groupingSeparator: Char
get() = symbols.groupingSeparator
set(value) {
applySymbols { it.groupingSeparator = value }
}
- override var usesGroupingSeparator: Boolean
+ actual override var usesGroupingSeparator: Boolean
get() = format.isGroupingUsed
set(value) {
format.isGroupingUsed = value
}
- override var decimalSeparator: Char
+ actual override var decimalSeparator: Char
get() = symbols.decimalSeparator
set(value) {
applySymbols { it.decimalSeparator = value }
}
- override var alwaysShowsDecimalSeparator: Boolean
+ actual override var alwaysShowsDecimalSeparator: Boolean
get() = format.isDecimalSeparatorAlwaysShown
set(value) {
format.isDecimalSeparatorAlwaysShown = value
}
- override var currencyDecimalSeparator: Char
+ actual override var currencyDecimalSeparator: Char
get() = symbols.monetaryDecimalSeparator
set(value) {
applySymbols { it.monetaryDecimalSeparator = value }
}
- override var groupingSize: Int
+ actual override var groupingSize: Int
get() = format.groupingSize
set(value) {
format.groupingSize = value
}
- override var multiplier: Int
+ actual override var multiplier: Int
get() = format.multiplier
set(value) {
format.multiplier = value
}
- override fun format(number: Number): String = format.format(number.toDouble())
- override fun parse(string: String): Number? = try {
+ actual override fun format(number: Number): String = format.format(number.toDouble())
+ actual override fun parse(string: String): Number? = try {
format.parse(string)
} catch (e: ParseException) {
null
diff --git a/base/src/androidLibMain/kotlin/utils/KalugaDate.kt b/base/src/androidLibMain/kotlin/utils/KalugaDate.kt
index 974c12351..2fd7555bb 100644
--- a/base/src/androidLibMain/kotlin/utils/KalugaDate.kt
+++ b/base/src/androidLibMain/kotlin/utils/KalugaDate.kt
@@ -60,100 +60,100 @@ actual class DefaultKalugaDate internal constructor(internal val calendar: Calen
)
}
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(calendar.timeZone)
set(value) {
calendar.timeZone = value.timeZone
}
- override var era: Int
+ actual override var era: Int
get() = calendar.get(Calendar.ERA)
set(value) {
calendar.set(Calendar.ERA, value)
}
- override var year: Int
+ actual override var year: Int
get() = calendar.get(Calendar.YEAR)
set(value) {
calendar.set(Calendar.YEAR, value)
}
- override var month: Int
+ actual override var month: Int
get() = calendar.get(Calendar.MONTH) + 1
set(value) {
calendar.set(Calendar.MONTH, value - 1)
}
- override val daysInMonth: Int get() = calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
- override var weekOfYear: Int
+ actual override val daysInMonth: Int get() = calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
+ actual override var weekOfYear: Int
get() = calendar.get(Calendar.WEEK_OF_YEAR)
set(value) {
calendar.set(Calendar.WEEK_OF_YEAR, value)
}
- override var weekOfMonth: Int
+ actual override var weekOfMonth: Int
get() = calendar.get(Calendar.WEEK_OF_MONTH)
set(value) {
calendar.set(Calendar.WEEK_OF_MONTH, value)
}
- override var day: Int
+ actual override var day: Int
get() = calendar.get(Calendar.DAY_OF_MONTH)
set(value) {
calendar.set(Calendar.DAY_OF_MONTH, value)
}
- override var dayOfYear: Int
+ actual override var dayOfYear: Int
get() = calendar.get(Calendar.DAY_OF_YEAR)
set(value) {
calendar.set(Calendar.DAY_OF_YEAR, value)
}
- override var weekDay: Int
+ actual override var weekDay: Int
get() = calendar.get(Calendar.DAY_OF_WEEK)
set(value) {
calendar.set(Calendar.DAY_OF_WEEK, value)
}
- override var firstWeekDay: Int
+ actual override var firstWeekDay: Int
get() = calendar.firstDayOfWeek
set(value) {
calendar.firstDayOfWeek = value
}
- override var hour: Int
+ actual override var hour: Int
get() = calendar.get(Calendar.HOUR_OF_DAY)
set(value) {
calendar.set(Calendar.HOUR_OF_DAY, value)
}
- override var minute: Int
+ actual override var minute: Int
get() = calendar.get(Calendar.MINUTE)
set(value) {
calendar.set(Calendar.MINUTE, value)
}
- override var second: Int
+ actual override var second: Int
get() = calendar.get(Calendar.SECOND)
set(value) {
calendar.set(Calendar.SECOND, value)
}
- override var millisecond: Int
+ actual override var millisecond: Int
get() = calendar.get(Calendar.MILLISECOND)
set(value) {
calendar.set(Calendar.MILLISECOND, value)
}
- override var durationSinceEpoch: Duration
+ actual override var durationSinceEpoch: Duration
get() = calendar.timeInMillis.milliseconds
set(value) {
calendar.timeInMillis = value.inWholeMilliseconds
}
- override fun copy(): KalugaDate = DefaultKalugaDate(calendar.clone() as Calendar)
+ actual override fun copy(): KalugaDate = DefaultKalugaDate(calendar.clone() as Calendar)
- override fun equals(other: Any?): Boolean {
+ actual override fun equals(other: Any?): Boolean {
return (other as? KalugaDate)?.let {
timeZone == other.timeZone && durationSinceEpoch == other.durationSinceEpoch
} ?: false
}
- override fun compareTo(other: KalugaDate): Int {
+ actual override fun compareTo(other: KalugaDate): Int {
return this.date.compareTo(other.date)
}
- override fun hashCode(): Int {
+ actual override fun hashCode(): Int {
return calendar.hashCode()
}
- override val date: KalugaDateHolder get() = calendar.time
+ actual override val date: KalugaDateHolder get() = calendar.time
}
diff --git a/base/src/androidLibMain/kotlin/utils/KalugaLocale.kt b/base/src/androidLibMain/kotlin/utils/KalugaLocale.kt
index 40e45b344..4b79b3d82 100644
--- a/base/src/androidLibMain/kotlin/utils/KalugaLocale.kt
+++ b/base/src/androidLibMain/kotlin/utils/KalugaLocale.kt
@@ -78,15 +78,15 @@ actual data class KalugaLocale internal constructor(internal val locale: java.ut
actual val availableLocales: List = java.util.Locale.getAvailableLocales().asList().map { KalugaLocale(it) }
}
- override val countryCode: String
+ actual override val countryCode: String
get() = locale.country
- override val languageCode: String
+ actual override val languageCode: String
get() = locale.language
- override val scriptCode: String
+ actual override val scriptCode: String
get() = locale.script
- override val variantCode: String
+ actual override val variantCode: String
get() = locale.variant
- override val unitSystem: UnitSystem
+ actual override val unitSystem: UnitSystem
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
when (LocaleData.getMeasurementSystem(ULocale.forLocale(locale))) {
LocaleData.MeasurementSystem.US -> UnitSystem.IMPERIAL
@@ -97,31 +97,31 @@ actual data class KalugaLocale internal constructor(internal val locale: java.ut
UnitSystem.withCountryCode(countryCode.upperCased(this))
}
- override fun name(forLocale: KalugaLocale): String = locale.getDisplayName(forLocale.locale)
- override fun countryName(forLocale: KalugaLocale): String = locale.getDisplayCountry(forLocale.locale)
- override fun languageName(forLocale: KalugaLocale): String = locale.getDisplayLanguage(forLocale.locale)
- override fun variantName(forLocale: KalugaLocale): String = locale.getDisplayVariant(forLocale.locale)
- override fun scriptName(forLocale: KalugaLocale): String = locale.getDisplayScript(forLocale.locale)
+ actual override fun name(forLocale: KalugaLocale): String = locale.getDisplayName(forLocale.locale)
+ actual override fun countryName(forLocale: KalugaLocale): String = locale.getDisplayCountry(forLocale.locale)
+ actual override fun languageName(forLocale: KalugaLocale): String = locale.getDisplayLanguage(forLocale.locale)
+ actual override fun variantName(forLocale: KalugaLocale): String = locale.getDisplayVariant(forLocale.locale)
+ actual override fun scriptName(forLocale: KalugaLocale): String = locale.getDisplayScript(forLocale.locale)
- override val quotationStart: String
+ actual override val quotationStart: String
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
LocaleData.getInstance(ULocale.forLocale(locale)).getDelimiter(LocaleData.QUOTATION_START)
} else {
"\""
}
- override val quotationEnd: String
+ actual override val quotationEnd: String
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
LocaleData.getInstance(ULocale.forLocale(locale)).getDelimiter(LocaleData.QUOTATION_END)
} else {
"\""
}
- override val alternateQuotationStart: String
+ actual override val alternateQuotationStart: String
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
LocaleData.getInstance(ULocale.forLocale(locale)).getDelimiter(LocaleData.ALT_QUOTATION_START)
} else {
"\""
}
- override val alternateQuotationEnd: String
+ actual override val alternateQuotationEnd: String
get() = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
LocaleData.getInstance(ULocale.forLocale(locale)).getDelimiter(LocaleData.ALT_QUOTATION_END)
} else {
diff --git a/base/src/androidLibMain/kotlin/utils/KalugaTimeZone.kt b/base/src/androidLibMain/kotlin/utils/KalugaTimeZone.kt
index e268559d8..b5c45fc35 100644
--- a/base/src/androidLibMain/kotlin/utils/KalugaTimeZone.kt
+++ b/base/src/androidLibMain/kotlin/utils/KalugaTimeZone.kt
@@ -52,20 +52,22 @@ actual class KalugaTimeZone internal constructor(internal val timeZone: java.uti
actual val availableIdentifiers get() = java.util.TimeZone.getAvailableIDs().asList()
}
- override val identifier: String = timeZone.id
- override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
+ actual override val identifier: String = timeZone.id
+ actual override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
val styleJava = when (style) {
TimeZoneNameStyle.Short -> java.util.TimeZone.SHORT
TimeZoneNameStyle.Long -> java.util.TimeZone.LONG
}
return timeZone.getDisplayName(withDaylightSavings, styleJava, locale.locale)
}
- override val offsetFromGMT = timeZone.rawOffset.milliseconds
- override val daylightSavingsOffset = timeZone.dstSavings.milliseconds
- override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.getOffset(date.durationSinceEpoch.inWholeMilliseconds).milliseconds
- override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.inDaylightTime(date.date)
- override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.clone() as java.util.TimeZone)
+ actual override val offsetFromGMT = timeZone.rawOffset.milliseconds
+ actual override val daylightSavingsOffset = timeZone.dstSavings.milliseconds
+ actual override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.getOffset(date.durationSinceEpoch.inWholeMilliseconds).milliseconds
+ actual override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.inDaylightTime(date.date)
+ actual override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.clone() as java.util.TimeZone)
override fun equals(other: Any?): Boolean {
return (other as? KalugaTimeZone)?.let { timeZone == other.timeZone } ?: false
}
+
+ override fun hashCode(): Int = timeZone.hashCode()
}
diff --git a/base/src/commonMain/kotlin/MultiplatformMainScope.kt b/base/src/commonMain/kotlin/MultiplatformMainScope.kt
deleted file mode 100644
index c752caa5f..000000000
--- a/base/src/commonMain/kotlin/MultiplatformMainScope.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright (c) 2020. Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.base
-
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.MainScope
-
-@Deprecated("Use MainScope", ReplaceWith("MainScope()", "kotlinx.coroutines.MainScope"))
-fun MultiplatformMainScope(): CoroutineScope {
- return MainScope()
-}
diff --git a/base/src/commonMain/kotlin/text/KalugaDateFormatter.kt b/base/src/commonMain/kotlin/text/KalugaDateFormatter.kt
index c63722750..8d5251094 100644
--- a/base/src/commonMain/kotlin/text/KalugaDateFormatter.kt
+++ b/base/src/commonMain/kotlin/text/KalugaDateFormatter.kt
@@ -165,13 +165,20 @@ expect class KalugaDateFormatter : BaseDateFormatter {
*/
fun patternFormat(pattern: String, timeZone: KalugaTimeZone = KalugaTimeZone.current(), locale: KalugaLocale = defaultLocale): KalugaDateFormatter
}
-}
-@Deprecated(
- "Due to name clashes with platform classes and API changes this class has been renamed and changed to an interface. It will be removed in a future release.",
- ReplaceWith("KalugaState"),
-)
-typealias DateFormatter = KalugaDateFormatter
+ override var pattern: String
+ override var timeZone: KalugaTimeZone
+ override var eras: List
+ override var months: List
+ override var shortMonths: List
+ override var weekdays: List
+ override var shortWeekdays: List
+ override var amString: String
+ override var pmString: String
+
+ override fun format(date: KalugaDate): String
+ override fun parse(string: String): KalugaDate?
+}
/**
* Creates a fixed [KalugaDateFormatter] using a custom Date format pattern, localized by the [KalugaLocale.enUsPosix] [KalugaLocale].
diff --git a/base/src/commonMain/kotlin/text/NumberFormatter.kt b/base/src/commonMain/kotlin/text/NumberFormatter.kt
index 8dcb1540a..0aec25da8 100644
--- a/base/src/commonMain/kotlin/text/NumberFormatter.kt
+++ b/base/src/commonMain/kotlin/text/NumberFormatter.kt
@@ -321,4 +321,29 @@ interface BaseNumberFormatter {
* @param locale The [KalugaLocale] used for parsing. Defaults to [KalugaLocale.defaultLocale].
* @param style The [NumberFormatStyle] to configure the format to use. Defaults to [NumberFormatStyle.Decimal].
*/
-expect class NumberFormatter constructor(locale: KalugaLocale = defaultLocale, style: NumberFormatStyle = NumberFormatStyle.Decimal()) : BaseNumberFormatter
+expect class NumberFormatter constructor(locale: KalugaLocale = defaultLocale, style: NumberFormatStyle = NumberFormatStyle.Decimal()) : BaseNumberFormatter {
+ override val locale: KalugaLocale
+ override var percentSymbol: Char
+ override var perMillSymbol: Char
+ override var minusSign: Char
+ override var exponentSymbol: String
+ override var zeroSymbol: Char
+ override var notANumberSymbol: String
+ override var infinitySymbol: String
+ override var currencySymbol: String
+ override var currencyCode: String
+ override var positivePrefix: String
+ override var positiveSuffix: String
+ override var negativePrefix: String
+ override var negativeSuffix: String
+ override var groupingSeparator: Char
+ override var usesGroupingSeparator: Boolean
+ override var decimalSeparator: Char
+ override var alwaysShowsDecimalSeparator: Boolean
+ override var currencyDecimalSeparator: Char
+ override var groupingSize: Int
+ override var multiplier: Int
+
+ override fun format(number: Number): String
+ override fun parse(string: String): Number?
+}
diff --git a/base/src/commonMain/kotlin/utils/BufferedAsListChannel.kt b/base/src/commonMain/kotlin/utils/BufferedAsListChannel.kt
index 8f94aaee2..cc07223d2 100644
--- a/base/src/commonMain/kotlin/utils/BufferedAsListChannel.kt
+++ b/base/src/commonMain/kotlin/utils/BufferedAsListChannel.kt
@@ -122,16 +122,6 @@ internal class BufferedAsListChannelInt private constructor(
false
}
- @Deprecated(
- "Since 1.2.0, binary compatibility with versions <= 1.1.x",
- level = DeprecationLevel.HIDDEN,
- )
- override fun cancel(cause: Throwable?): Boolean {
- sendChannel.cancel(cause as? CancellationException)
- receiveChannel.cancel(cause as? CancellationException)
- return true
- }
-
override fun cancel(cause: CancellationException?) {
sendChannel.cancel(cause)
receiveChannel.cancel(cause)
diff --git a/base/src/commonMain/kotlin/utils/Decimal.kt b/base/src/commonMain/kotlin/utils/Decimal.kt
index b5741fad4..ebbab2230 100644
--- a/base/src/commonMain/kotlin/utils/Decimal.kt
+++ b/base/src/commonMain/kotlin/utils/Decimal.kt
@@ -65,7 +65,9 @@ sealed class Decimal : Comparable {
/**
* Platform specific representation of a finite immutable, arbitrary-precision signed decimal number
*/
-expect class FiniteDecimal : Comparable
+expect class FiniteDecimal : Comparable {
+ override fun compareTo(other: FiniteDecimal): Int
+}
/**
* Adds two [Decimal] together.
diff --git a/base/src/commonMain/kotlin/utils/KalugaDate.kt b/base/src/commonMain/kotlin/utils/KalugaDate.kt
index 0975d8239..a07eac11c 100644
--- a/base/src/commonMain/kotlin/utils/KalugaDate.kt
+++ b/base/src/commonMain/kotlin/utils/KalugaDate.kt
@@ -171,6 +171,30 @@ expect class DefaultKalugaDate : KalugaDate {
*/
fun epoch(offset: Duration = 0.milliseconds, timeZone: KalugaTimeZone = KalugaTimeZone.current(), locale: KalugaLocale = defaultLocale): KalugaDate
}
+
+ override var timeZone: KalugaTimeZone
+ override var era: Int
+ override var year: Int
+ override var month: Int
+ override val daysInMonth: Int
+ override var weekOfYear: Int
+ override var weekOfMonth: Int
+ override var day: Int
+ override var dayOfYear: Int
+ override var weekDay: Int
+ override var firstWeekDay: Int
+ override var hour: Int
+ override var minute: Int
+ override var second: Int
+ override var millisecond: Int
+ override var durationSinceEpoch: Duration
+ override val date: KalugaDateHolder
+ override fun copy(): KalugaDate
+ override fun equals(other: Any?): Boolean
+
+ override fun hashCode(): Int
+
+ override fun compareTo(other: KalugaDate): Int
}
/**
@@ -193,12 +217,6 @@ fun DefaultKalugaDate.Companion.now(offsetInMilliseconds: Long, timeZone: Kaluga
fun DefaultKalugaDate.Companion.epoch(offsetInMilliseconds: Long, timeZone: KalugaTimeZone = KalugaTimeZone.current(), locale: KalugaLocale = defaultLocale): KalugaDate =
epoch(offsetInMilliseconds.milliseconds, timeZone, locale)
-@Deprecated(
- "Due to name clashes with platform classes and API changes this class has been renamed and changed to an interface. It will be removed in a future release.",
- ReplaceWith("KalugaDate"),
-)
-typealias Date = KalugaDate
-
/**
* Gets the [Duration] between two [KalugaDate]
* @param other the [KalugaDate] to subtract
diff --git a/base/src/commonMain/kotlin/utils/KalugaLocale.kt b/base/src/commonMain/kotlin/utils/KalugaLocale.kt
index d984b4a54..19582360e 100644
--- a/base/src/commonMain/kotlin/utils/KalugaLocale.kt
+++ b/base/src/commonMain/kotlin/utils/KalugaLocale.kt
@@ -158,6 +158,22 @@ expect class KalugaLocale : BaseLocale {
*/
val availableLocales: List
}
+
+ override val countryCode: String
+ override val languageCode: String
+ override val scriptCode: String
+ override val variantCode: String
+ override val unitSystem: UnitSystem
+ override val quotationStart: String
+ override val quotationEnd: String
+ override val alternateQuotationStart: String
+ override val alternateQuotationEnd: String
+
+ override fun name(forLocale: KalugaLocale): String
+ override fun countryName(forLocale: KalugaLocale): String
+ override fun languageName(forLocale: KalugaLocale): String
+ override fun variantName(forLocale: KalugaLocale): String
+ override fun scriptName(forLocale: KalugaLocale): String
}
/**
@@ -173,9 +189,3 @@ val KalugaLocale.uses24HourClock: Boolean get() {
val formattedDate = formatter.format(DefaultKalugaDate.now())
return !formattedDate.contains(formatter.amString) && !formattedDate.contains(formatter.pmString)
}
-
-@Deprecated(
- "Due to name clashes with platform classes and API changes this class has been renamed and changed to an interface. It will be removed in a future release.",
- ReplaceWith("KalugaLocale"),
-)
-typealias Locale = KalugaLocale
diff --git a/base/src/commonMain/kotlin/utils/KalugaTimeZone.kt b/base/src/commonMain/kotlin/utils/KalugaTimeZone.kt
index c10af1cba..066f8eb78 100644
--- a/base/src/commonMain/kotlin/utils/KalugaTimeZone.kt
+++ b/base/src/commonMain/kotlin/utils/KalugaTimeZone.kt
@@ -97,7 +97,7 @@ abstract class BaseTimeZone {
/**
* Returns `true` if this [KalugaTimeZone] is observing daylight savings at a given [KalugaDate]
- * @param date The [KalugaDate] for which to check whether daylight savings is observed. Defaults to [KalugaDate.now]
+ * @param date The [KalugaDate] for which to check whether daylight savings is observed. Defaults to [DefaultKalugaDate.now]
* @return `true` if this [KalugaTimeZone] if observing daylight savings at [date]
*/
abstract fun usesDaylightSavingsTime(date: KalugaDate = now()): Boolean
@@ -134,10 +134,13 @@ expect class KalugaTimeZone : BaseTimeZone {
*/
val availableIdentifiers: List
}
-}
-@Deprecated(
- "Due to name clashes with platform classes and API changes this class has been renamed and changed to an interface. It will be removed in a future release.",
- ReplaceWith("KalugaTimeZone"),
-)
-typealias TimeZone = KalugaTimeZone
+ override val identifier: String
+ override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String
+ override val offsetFromGMT: Duration
+ override val daylightSavingsOffset: Duration
+
+ override fun offsetFromGMTAtDate(date: KalugaDate): Duration
+ override fun usesDaylightSavingsTime(date: KalugaDate): Boolean
+ override fun copy(): KalugaTimeZone
+}
diff --git a/base/src/commonTest/kotlin/utils/BufferedAsListChannelTest.kt b/base/src/commonTest/kotlin/utils/BufferedAsListChannelTest.kt
index 0d52c509d..ba572203d 100644
--- a/base/src/commonTest/kotlin/utils/BufferedAsListChannelTest.kt
+++ b/base/src/commonTest/kotlin/utils/BufferedAsListChannelTest.kt
@@ -53,7 +53,7 @@ class BufferedAsListChannelTest {
try {
for (i in 1..100) {
groupingChannel.trySend(i)
- delay(1.milliseconds)
+ delay(10.milliseconds)
}
groupingChannel.close()
didCompletedProductionExceptionally.complete(false)
@@ -70,7 +70,7 @@ class BufferedAsListChannelTest {
try {
groupingChannel.receiveAsFlow().collect {
consumedResult.add(it)
- delay(10.milliseconds)
+ delay(100.milliseconds)
}
didCompletedConsumptionExceptionally.complete(false)
} catch (e: CancellationException) {
diff --git a/base/src/iosMain/kotlin/text/KalugaDateFormatter.kt b/base/src/iosMain/kotlin/text/KalugaDateFormatter.kt
index a07c2aa16..2c058a46d 100644
--- a/base/src/iosMain/kotlin/text/KalugaDateFormatter.kt
+++ b/base/src/iosMain/kotlin/text/KalugaDateFormatter.kt
@@ -119,59 +119,59 @@ actual class KalugaDateFormatter private constructor(private val format: NSDateF
}.date
}
- override var pattern: String
+ actual override var pattern: String
get() = format.dateFormat
set(value) {
format.dateFormat = value
}
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(format.timeZone)
set(value) {
format.timeZone = value.timeZone
}
- override var eras: List
+ actual override var eras: List
get() = format.eraSymbols.typedList()
set(value) {
format.eraSymbols = value
}
- override var months: List
+ actual override var months: List
get() = format.monthSymbols.typedList()
set(value) {
format.monthSymbols = value
}
- override var shortMonths: List
+ actual override var shortMonths: List
get() = format.shortMonthSymbols.typedList()
set(value) {
format.shortMonthSymbols = value
}
- override var weekdays: List
+ actual override var weekdays: List
get() = format.weekdaySymbols.typedList()
set(value) {
format.weekdaySymbols = value
}
- override var shortWeekdays: List
+ actual override var shortWeekdays: List
get() = format.shortWeekdaySymbols.typedList()
set(value) {
format.shortWeekdaySymbols = value
}
- override var amString: String
+ actual override var amString: String
get() = format.AMSymbol
set(value) {
format.AMSymbol = value
}
- override var pmString: String
+ actual override var pmString: String
get() = format.PMSymbol
set(value) {
format.PMSymbol = value
}
- override fun format(date: KalugaDate): String = format.stringFromDate(date.date)
- override fun parse(string: String): KalugaDate? {
+ actual override fun format(date: KalugaDate): String = format.stringFromDate(date.date)
+ actual override fun parse(string: String): KalugaDate? {
return format.dateFromString(string)?.let { date ->
val calendar = format.calendar.copy() as NSCalendar
calendar.timeZone = timeZone.timeZone
diff --git a/base/src/iosMain/kotlin/text/NumberFormatter.kt b/base/src/iosMain/kotlin/text/NumberFormatter.kt
index 6cf3f2667..6570c11de 100644
--- a/base/src/iosMain/kotlin/text/NumberFormatter.kt
+++ b/base/src/iosMain/kotlin/text/NumberFormatter.kt
@@ -37,7 +37,7 @@ import platform.Foundation.numberWithInt
* @param locale The [KalugaLocale] used for parsing. Defaults to [KalugaLocale.defaultLocale].
* @param style The [NumberFormatStyle] to configure the format to use. Defaults to [NumberFormatStyle.Decimal].
*/
-actual class NumberFormatter actual constructor(override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
+actual class NumberFormatter actual constructor(actual override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
@ExperimentalUnsignedTypes
private val formatter = NSNumberFormatter().apply {
@@ -110,118 +110,118 @@ actual class NumberFormatter actual constructor(override val locale: KalugaLocal
}
}
- override var percentSymbol: Char
+ actual override var percentSymbol: Char
get() = formatter.percentSymbol.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
formatter.percentSymbol = charArrayOf(value).concatToString()
}
- override var perMillSymbol: Char
+ actual override var perMillSymbol: Char
get() = formatter.perMillSymbol.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
formatter.perMillSymbol = charArrayOf(value).concatToString()
}
- override var minusSign: Char
+ actual override var minusSign: Char
get() = formatter.minusSign.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
formatter.minusSign = charArrayOf(value).concatToString()
}
- override var exponentSymbol: String
+ actual override var exponentSymbol: String
get() = formatter.exponentSymbol
set(value) {
formatter.exponentSymbol = value
}
- override var zeroSymbol: Char
+ actual override var zeroSymbol: Char
get() = formatter.zeroSymbol?.getOrNull(0) ?: '0'
set(value) {
formatter.zeroSymbol = charArrayOf(value).concatToString()
}
- override var notANumberSymbol: String
+ actual override var notANumberSymbol: String
get() = formatter.notANumberSymbol
set(value) {
formatter.notANumberSymbol = value
}
- override var infinitySymbol: String
+ actual override var infinitySymbol: String
get() = formatter.positiveInfinitySymbol
set(value) {
formatter.positiveInfinitySymbol = value
formatter.negativeInfinitySymbol = value
}
- override var currencySymbol: String
+ actual override var currencySymbol: String
get() = formatter.currencySymbol
set(value) {
formatter.currencySymbol = value
}
- override var currencyCode: String
+ actual override var currencyCode: String
get() = formatter.currencyCode
set(value) {
formatter.currencyCode = value
}
- override var positivePrefix: String
+ actual override var positivePrefix: String
get() = formatter.positivePrefix
set(value) {
formatter.positivePrefix = value
}
- override var positiveSuffix: String
+ actual override var positiveSuffix: String
get() = formatter.positiveSuffix
set(value) {
formatter.positiveSuffix = value
}
- override var negativePrefix: String
+ actual override var negativePrefix: String
get() = formatter.negativePrefix
set(value) {
formatter.negativePrefix = value
}
- override var negativeSuffix: String
+ actual override var negativeSuffix: String
get() = formatter.negativeSuffix
set(value) {
formatter.negativeSuffix = value
}
- override var groupingSeparator: Char
+ actual override var groupingSeparator: Char
get() = formatter.groupingSeparator.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
val charValue = charArrayOf(value).concatToString()
formatter.groupingSeparator = charValue
formatter.currencyGroupingSeparator = charValue
}
- override var usesGroupingSeparator: Boolean
+ actual override var usesGroupingSeparator: Boolean
get() = formatter.usesGroupingSeparator
set(value) {
formatter.usesGroupingSeparator = value
}
- override var decimalSeparator: Char
+ actual override var decimalSeparator: Char
get() = formatter.decimalSeparator.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
formatter.decimalSeparator = charArrayOf(value).concatToString()
}
- override var alwaysShowsDecimalSeparator: Boolean
+ actual override var alwaysShowsDecimalSeparator: Boolean
get() = formatter.alwaysShowsDecimalSeparator
set(value) {
formatter.alwaysShowsDecimalSeparator = value
}
- override var currencyDecimalSeparator: Char
+ actual override var currencyDecimalSeparator: Char
get() = formatter.currencyDecimalSeparator.getOrNull(0) ?: Char.MIN_VALUE
set(value) {
formatter.currencyDecimalSeparator = charArrayOf(value).concatToString()
}
- override var groupingSize: Int
+ actual override var groupingSize: Int
get() = formatter.groupingSize.toInt()
set(value) {
formatter.groupingSize = value.toULong()
formatter.secondaryGroupingSize = value.toULong()
}
- override var multiplier: Int
+ actual override var multiplier: Int
get() = formatter.multiplier?.intValue ?: 1
set(value) {
formatter.multiplier = NSNumber.numberWithInt(value)
}
@Suppress("CAST_NEVER_SUCCEEDS") // Should succeed just fine
- override fun format(number: Number): String {
+ actual override fun format(number: Number): String {
return (formatter.stringFromNumber(number as NSNumber) ?: "")
}
@Suppress("CAST_NEVER_SUCCEEDS") // Should succeed just fine
- override fun parse(string: String): Number? {
+ actual override fun parse(string: String): Number? {
return formatter.numberFromString(string) as? Number
}
}
diff --git a/base/src/iosMain/kotlin/utils/Decimal.kt b/base/src/iosMain/kotlin/utils/Decimal.kt
index 69a9a4a80..1956930c5 100644
--- a/base/src/iosMain/kotlin/utils/Decimal.kt
+++ b/base/src/iosMain/kotlin/utils/Decimal.kt
@@ -27,7 +27,7 @@ import kotlin.math.absoluteValue
* @property nsDecimal the [NSDecimalNumber] representing the finite decimal number
*/
actual data class FiniteDecimal(val nsDecimal: NSDecimalNumber) : Comparable {
- override fun compareTo(other: FiniteDecimal): Int = nsDecimal.compare(other.nsDecimal).toInt()
+ actual override fun compareTo(other: FiniteDecimal): Int = nsDecimal.compare(other.nsDecimal).toInt()
override fun equals(other: Any?): Boolean = (other as? FiniteDecimal)?.let { nsDecimal.isEqualToNumber(it.nsDecimal) } ?: false
override fun hashCode(): Int {
return nsDecimal.hashCode()
diff --git a/base/src/iosMain/kotlin/utils/KalugaDate.kt b/base/src/iosMain/kotlin/utils/KalugaDate.kt
index 3ae85b67f..98b42cb85 100644
--- a/base/src/iosMain/kotlin/utils/KalugaDate.kt
+++ b/base/src/iosMain/kotlin/utils/KalugaDate.kt
@@ -87,89 +87,90 @@ actual class DefaultKalugaDate internal constructor(private val calendar: NSCale
}
}
- override var date: NSDate = initialDate
+ private var _date: NSDate = initialDate
+ actual override val date: NSDate get() = _date
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(calendar.timeZone)
set(value) {
calendar.timeZone = value.timeZone
}
- override var era: Int
+ actual override var era: Int
get() = calendar.component(NSCalendarUnitEra, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitEra, value)
}
- override var year: Int
+ actual override var year: Int
get() = calendar.component(NSCalendarUnitYear, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitYear, value)
}
- override var month: Int
+ actual override var month: Int
get() = calendar.component(NSCalendarUnitMonth, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitMonth, value)
}
- override val daysInMonth: Int get() = calendar.rangeOfUnit(NSCalendarUnitDay, NSCalendarUnitMonth, forDate = date).useContents { this.length.toInt() }
- override var weekOfYear: Int
+ actual override val daysInMonth: Int get() = calendar.rangeOfUnit(NSCalendarUnitDay, NSCalendarUnitMonth, forDate = date).useContents { this.length.toInt() }
+ actual override var weekOfYear: Int
get() = calendar.component(NSCalendarUnitWeekOfYear, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitWeekOfYear, value)
}
- override var weekOfMonth: Int
+ actual override var weekOfMonth: Int
get() = calendar.component(NSCalendarUnitWeekOfMonth, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitWeekOfMonth, value)
}
- override var day: Int
+ actual override var day: Int
get() = calendar.component(NSCalendarUnitDay, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitDay, value)
}
- override var dayOfYear: Int
+ actual override var dayOfYear: Int
get() = calendar.ordinalityOfUnit(NSCalendarUnitDay, NSCalendarUnitYear, date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitDay, value - dayOfYear + day)
}
- override var weekDay: Int
+ actual override var weekDay: Int
get() = calendar.component(NSCalendarUnitWeekday, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitWeekday, value)
}
- override var firstWeekDay: Int
+ actual override var firstWeekDay: Int
get() = (calendar.firstWeekday.toInt())
set(value) {
calendar.firstWeekday = value.toULong()
}
- override var hour: Int
+ actual override var hour: Int
get() = calendar.component(NSCalendarUnitHour, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitHour, value)
}
- override var minute: Int
+ actual override var minute: Int
get() = calendar.component(NSCalendarUnitMinute, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitMinute, value)
}
- override var second: Int
+ actual override var second: Int
get() = calendar.component(NSCalendarUnitSecond, fromDate = date).toInt()
set(value) {
updateDateForComponent(NSCalendarUnitSecond, value)
}
- override var millisecond: Int
+ actual override var millisecond: Int
get() = calendar.component(NSCalendarUnitNanosecond, fromDate = date).toInt() / nanoSecondPerMilliSecond
set(value) {
updateDateForComponent(NSCalendarUnitNanosecond, value * nanoSecondPerMilliSecond)
}
- override var durationSinceEpoch: Duration
+ actual override var durationSinceEpoch: Duration
get() = date.timeIntervalSince1970.seconds
set(value) {
- date = NSDate.dateWithTimeIntervalSince1970(value.toDouble(DurationUnit.SECONDS))
+ _date = NSDate.dateWithTimeIntervalSince1970(value.toDouble(DurationUnit.SECONDS))
}
- override fun copy(): KalugaDate = DefaultKalugaDate(calendar.copy() as NSCalendar, date.copy() as NSDate)
+ actual override fun copy(): KalugaDate = DefaultKalugaDate(calendar.copy() as NSCalendar, date.copy() as NSDate)
- override fun equals(other: Any?): Boolean {
+ actual override fun equals(other: Any?): Boolean {
return if (other is DefaultKalugaDate) {
calendar.calendarIdentifier == other.calendar.calendarIdentifier && durationSinceEpoch == other.durationSinceEpoch && this.calendar.timeZone == other.calendar.timeZone
} else {
@@ -177,13 +178,13 @@ actual class DefaultKalugaDate internal constructor(private val calendar: NSCale
}
}
- override fun hashCode(): Int {
+ actual override fun hashCode(): Int {
var result = calendar.calendarIdentifier.hashCode()
result = 31 * result + date.hashCode()
return result
}
- override fun compareTo(other: KalugaDate): Int = this.date.compare(other.date).toInt()
+ actual override fun compareTo(other: KalugaDate): Int = this.date.compare(other.date).toInt()
private fun updateDateForComponent(component: NSCalendarUnit, value: Int) {
// Check whether this component update can use dateBySettingUnit.
@@ -223,7 +224,7 @@ actual class DefaultKalugaDate internal constructor(private val calendar: NSCale
0UL,
)
}?.let {
- date = it
+ _date = it
}
}
diff --git a/base/src/iosMain/kotlin/utils/KalugaLocale.kt b/base/src/iosMain/kotlin/utils/KalugaLocale.kt
index 5e66646a0..07ac13657 100644
--- a/base/src/iosMain/kotlin/utils/KalugaLocale.kt
+++ b/base/src/iosMain/kotlin/utils/KalugaLocale.kt
@@ -79,27 +79,27 @@ actual data class KalugaLocale internal constructor(val nsLocale: NSLocale) : Ba
actual val availableLocales: List = NSLocale.availableLocaleIdentifiers.typedList().map { KalugaLocale(NSLocale(it)) }
}
- override val countryCode: String
+ actual override val countryCode: String
get() = nsLocale.countryCode ?: ""
- override val languageCode: String
+ actual override val languageCode: String
get() = nsLocale.languageCode
- override val scriptCode: String
+ actual override val scriptCode: String
get() = nsLocale.scriptCode ?: ""
- override val variantCode: String
+ actual override val variantCode: String
get() = nsLocale.variantCode ?: ""
- override val unitSystem: UnitSystem
+ actual override val unitSystem: UnitSystem
get() = (nsLocale.objectForKey("kCFLocaleMeasurementSystemKey") as? String)?.let {
UnitSystem.withRawValue(it)
} ?: UnitSystem.METRIC
- override fun name(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForLocaleIdentifier(nsLocale.localeIdentifier)
- override fun countryName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForCountryCode(countryCode) ?: ""
- override fun languageName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForLanguageCode(languageCode) ?: ""
- override fun variantName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForVariantCode(variantCode) ?: ""
- override fun scriptName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForScriptCode(scriptCode) ?: ""
+ actual override fun name(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForLocaleIdentifier(nsLocale.localeIdentifier)
+ actual override fun countryName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForCountryCode(countryCode) ?: ""
+ actual override fun languageName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForLanguageCode(languageCode) ?: ""
+ actual override fun variantName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForVariantCode(variantCode) ?: ""
+ actual override fun scriptName(forLocale: KalugaLocale): String = forLocale.nsLocale.localizedStringForScriptCode(scriptCode) ?: ""
- override val quotationStart: String = nsLocale.quotationBeginDelimiter
- override val quotationEnd: String = nsLocale.quotationEndDelimiter
- override val alternateQuotationStart: String = nsLocale.alternateQuotationBeginDelimiter
- override val alternateQuotationEnd: String = nsLocale.alternateQuotationEndDelimiter
+ actual override val quotationStart: String = nsLocale.quotationBeginDelimiter
+ actual override val quotationEnd: String = nsLocale.quotationEndDelimiter
+ actual override val alternateQuotationStart: String = nsLocale.alternateQuotationBeginDelimiter
+ actual override val alternateQuotationEnd: String = nsLocale.alternateQuotationEndDelimiter
}
diff --git a/base/src/iosMain/kotlin/utils/KalugaTimeZone.kt b/base/src/iosMain/kotlin/utils/KalugaTimeZone.kt
index aef540465..aabfd0546 100644
--- a/base/src/iosMain/kotlin/utils/KalugaTimeZone.kt
+++ b/base/src/iosMain/kotlin/utils/KalugaTimeZone.kt
@@ -67,15 +67,15 @@ actual class KalugaTimeZone internal constructor(val timeZone: NSTimeZone) : Bas
actual val availableIdentifiers: List = NSTimeZone.knownTimeZoneNames.typedList()
}
- override val identifier: String = timeZone.name
- override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
+ actual override val identifier: String = timeZone.name
+ actual override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
val nameStyle = when (style) {
TimeZoneNameStyle.Short -> if (withDaylightSavings) NSTimeZoneNameStyle.NSTimeZoneNameStyleShortDaylightSaving else NSTimeZoneNameStyle.NSTimeZoneNameStyleShortStandard
TimeZoneNameStyle.Long -> if (withDaylightSavings) NSTimeZoneNameStyle.NSTimeZoneNameStyleDaylightSaving else NSTimeZoneNameStyle.NSTimeZoneNameStyleStandard
}
return timeZone.localizedName(nameStyle, locale.nsLocale) ?: ""
}
- override val offsetFromGMT: Duration get() {
+ actual override val offsetFromGMT: Duration get() {
val rawOffset = if (timeZone.isDaylightSavingTime()) {
timeZone.secondsFromGMT.toDouble() - timeZone.daylightSavingTimeOffset
} else {
@@ -85,7 +85,7 @@ actual class KalugaTimeZone internal constructor(val timeZone: NSTimeZone) : Bas
return rawOffset.seconds
}
- override val daylightSavingsOffset: Duration get() {
+ actual override val daylightSavingsOffset: Duration get() {
val rawOffset = if (timeZone.isDaylightSavingTime()) {
timeZone.daylightSavingTimeOffset.toLong()
} else {
@@ -95,10 +95,12 @@ actual class KalugaTimeZone internal constructor(val timeZone: NSTimeZone) : Bas
}
return rawOffset.seconds
}
- override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.secondsFromGMTForDate(date.date).seconds
- override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.isDaylightSavingTimeForDate(date.date)
- override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.copy() as NSTimeZone)
+ actual override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.secondsFromGMTForDate(date.date).seconds
+ actual override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.isDaylightSavingTimeForDate(date.date)
+ actual override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.copy() as NSTimeZone)
override fun equals(other: Any?): Boolean {
return (other as? KalugaTimeZone)?.let { timeZone == other.timeZone } ?: false
}
+
+ override fun hashCode(): Int = timeZone.hashCode()
}
diff --git a/base/src/jsMain/kotlin/runBlocking.kt b/base/src/jsMain/kotlin/runBlocking.kt
index 446320739..57088a6d7 100644
--- a/base/src/jsMain/kotlin/runBlocking.kt
+++ b/base/src/jsMain/kotlin/runBlocking.kt
@@ -20,7 +20,7 @@ package com.splendo.kaluga.base
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope
-import kotlinx.coroutines.launch
+import kotlinx.coroutines.async
import kotlin.coroutines.CoroutineContext
/**
@@ -29,7 +29,4 @@ import kotlin.coroutines.CoroutineContext
* @param context the context of the coroutine. The default value is an event loop on the current thread.
* @param block the coroutine code.
*/
-actual fun runBlocking(context: CoroutineContext, block: suspend CoroutineScope.() -> T): dynamic {
- // this does not wait for the result unfortunately
- return GlobalScope.launch { block(this) }
-}
+actual fun runBlocking(context: CoroutineContext, block: suspend CoroutineScope.() -> T): T = GlobalScope.async { block(this) }.asDynamic()
diff --git a/base/src/jsMain/kotlin/text/KalugaDateFormatter.kt b/base/src/jsMain/kotlin/text/KalugaDateFormatter.kt
index 0b8df433b..cc3dcc198 100644
--- a/base/src/jsMain/kotlin/text/KalugaDateFormatter.kt
+++ b/base/src/jsMain/kotlin/text/KalugaDateFormatter.kt
@@ -70,22 +70,22 @@ actual class KalugaDateFormatter private constructor(initialTimeZone: KalugaTime
KalugaDateFormatter(timeZone) { date -> date.toLocaleString(arrayOf("${locale.languageCode}-${locale.countryCode}")) }
}
- override var pattern: String = ""
+ actual override var pattern: String = ""
- override var timeZone: KalugaTimeZone = initialTimeZone
- override var eras: List = emptyList()
+ actual override var timeZone: KalugaTimeZone = initialTimeZone
+ actual override var eras: List = emptyList()
- override var months: List = emptyList()
- override var shortMonths: List = emptyList()
+ actual override var months: List = emptyList()
+ actual override var shortMonths: List = emptyList()
- override var weekdays: List = emptyList()
- override var shortWeekdays: List = emptyList()
+ actual override var weekdays: List = emptyList()
+ actual override var shortWeekdays: List = emptyList()
- override var amString: String = ""
- override var pmString: String = ""
+ actual override var amString: String = ""
+ actual override var pmString: String = ""
- override fun format(date: KalugaDate): String = formatter(date.date)
- override fun parse(string: String): KalugaDate? = null
+ actual override fun format(date: KalugaDate): String = formatter(date.date)
+ actual override fun parse(string: String): KalugaDate? = null
}
private fun DateFormatStyle.stringValue(): String = when (this) {
diff --git a/base/src/jsMain/kotlin/text/NumberFormatter.kt b/base/src/jsMain/kotlin/text/NumberFormatter.kt
index 48423ad08..dc020cf23 100644
--- a/base/src/jsMain/kotlin/text/NumberFormatter.kt
+++ b/base/src/jsMain/kotlin/text/NumberFormatter.kt
@@ -25,28 +25,28 @@ import com.splendo.kaluga.base.utils.KalugaLocale
* @param locale The [KalugaLocale] used for parsing. Defaults to [KalugaLocale.defaultLocale].
* @param style The [NumberFormatStyle] to configure the format to use. Defaults to [NumberFormatStyle.Decimal].
*/
-actual class NumberFormatter actual constructor(override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
- override var percentSymbol: Char = '%'
- override var perMillSymbol: Char = '\u2030'
- override var minusSign: Char = '-'
- override var exponentSymbol: String = "E"
- override var zeroSymbol: Char = '0'
- override var notANumberSymbol: String = "NaN"
- override var infinitySymbol: String = "\u221E"
- override var currencySymbol: String = ""
- override var currencyCode: String = ""
- override var positivePrefix: String = ""
- override var positiveSuffix: String = ""
- override var negativePrefix: String = "-"
- override var negativeSuffix: String = ""
- override var groupingSeparator: Char = ','
- override var usesGroupingSeparator: Boolean = false
- override var decimalSeparator: Char = '.'
- override var alwaysShowsDecimalSeparator: Boolean = false
- override var currencyDecimalSeparator: Char = '.'
- override var groupingSize: Int = 0
- override var multiplier: Int = 1
-
- override fun format(number: Number): String = "$number"
- override fun parse(string: String): Number? = string.toFloatOrNull()
+actual class NumberFormatter actual constructor(actual override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
+ actual override var percentSymbol: Char = '%'
+ actual override var perMillSymbol: Char = '\u2030'
+ actual override var minusSign: Char = '-'
+ actual override var exponentSymbol: String = "E"
+ actual override var zeroSymbol: Char = '0'
+ actual override var notANumberSymbol: String = "NaN"
+ actual override var infinitySymbol: String = "\u221E"
+ actual override var currencySymbol: String = ""
+ actual override var currencyCode: String = ""
+ actual override var positivePrefix: String = ""
+ actual override var positiveSuffix: String = ""
+ actual override var negativePrefix: String = "-"
+ actual override var negativeSuffix: String = ""
+ actual override var groupingSeparator: Char = ','
+ actual override var usesGroupingSeparator: Boolean = false
+ actual override var decimalSeparator: Char = '.'
+ actual override var alwaysShowsDecimalSeparator: Boolean = false
+ actual override var currencyDecimalSeparator: Char = '.'
+ actual override var groupingSize: Int = 0
+ actual override var multiplier: Int = 1
+
+ actual override fun format(number: Number): String = "$number"
+ actual override fun parse(string: String): Number? = string.toFloatOrNull()
}
diff --git a/base/src/jsMain/kotlin/utils/Decimal.kt b/base/src/jsMain/kotlin/utils/Decimal.kt
index 62df10607..473bbbf13 100644
--- a/base/src/jsMain/kotlin/utils/Decimal.kt
+++ b/base/src/jsMain/kotlin/utils/Decimal.kt
@@ -52,7 +52,7 @@ data class Rounding(
* @property bd the [BigDecimal] representing the finite decimal number
*/
actual data class FiniteDecimal(val bd: BigDecimal) : Comparable {
- override fun compareTo(other: FiniteDecimal): Int = BigDecimal.compare(bd, other.bd)
+ actual override fun compareTo(other: FiniteDecimal): Int = BigDecimal.compare(bd, other.bd)
override fun equals(other: Any?): Boolean = (other as? FiniteDecimal)?.let { BigDecimal.equal(bd, it.bd) } ?: false
override fun hashCode(): Int {
return bd.hashCode()
diff --git a/base/src/jsMain/kotlin/utils/KalugaDate.kt b/base/src/jsMain/kotlin/utils/KalugaDate.kt
index 85a8ed53d..f7122c377 100644
--- a/base/src/jsMain/kotlin/utils/KalugaDate.kt
+++ b/base/src/jsMain/kotlin/utils/KalugaDate.kt
@@ -26,7 +26,7 @@ actual typealias KalugaDateHolder = kotlin.js.Date
/**
* Default implementation of [KalugaDate]
*/
-actual class DefaultKalugaDate internal constructor(override val date: KalugaDateHolder) : KalugaDate() {
+actual class DefaultKalugaDate internal constructor(actual override val date: KalugaDateHolder) : KalugaDate() {
actual companion object {
@@ -51,64 +51,64 @@ actual class DefaultKalugaDate internal constructor(override val date: KalugaDat
actual fun epoch(offset: Duration, timeZone: KalugaTimeZone, locale: KalugaLocale): KalugaDate = DefaultKalugaDate(kotlin.js.Date(offset.inWholeMilliseconds))
}
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone()
set(_) { }
- override var era: Int
+ actual override var era: Int
get() = 0
set(_) { }
- override var year: Int
+ actual override var year: Int
get() = date.getFullYear()
set(_) { }
- override var month: Int
+ actual override var month: Int
get() = date.getMonth()
set(_) { }
- override val daysInMonth: Int = 0
- override var weekOfYear: Int
+ actual override val daysInMonth: Int = 0
+ actual override var weekOfYear: Int
get() = 0
set(_) { }
- override var weekOfMonth: Int
+ actual override var weekOfMonth: Int
get() = 0
set(_) { }
- override var day: Int
+ actual override var day: Int
get() = 0
set(_) { }
- override var dayOfYear: Int
+ actual override var dayOfYear: Int
get() = date.getDay()
set(_) { }
- override var weekDay: Int
+ actual override var weekDay: Int
get() = date.getDate() + 1
set(_) { }
- override var firstWeekDay: Int
+ actual override var firstWeekDay: Int
get() = 1
set(_) { }
- override var hour: Int
+ actual override var hour: Int
get() = date.getHours()
set(_) { }
- override var minute: Int
+ actual override var minute: Int
get() = date.getMinutes()
set(_) { }
- override var second: Int
+ actual override var second: Int
get() = date.getSeconds()
set(_) { }
- override var millisecond: Int
+ actual override var millisecond: Int
get() = date.getMilliseconds()
set(_) { }
- override var durationSinceEpoch: Duration
+ actual override var durationSinceEpoch: Duration
get() = date.getTime().milliseconds
set(_) { }
- override fun copy(): KalugaDate = DefaultKalugaDate(kotlin.js.Date(date.getMilliseconds()))
+ actual override fun copy(): KalugaDate = DefaultKalugaDate(kotlin.js.Date(date.getMilliseconds()))
- override fun equals(other: Any?): Boolean {
+ actual override fun equals(other: Any?): Boolean {
return (other as? KalugaDate)?.let {
timeZone == other.timeZone && durationSinceEpoch == other.durationSinceEpoch
} ?: false
}
- override fun compareTo(other: KalugaDate): Int {
+ actual override fun compareTo(other: KalugaDate): Int {
return when {
date.getMilliseconds() < other.millisecond -> -1
date.getMilliseconds() == other.millisecond -> 0
@@ -116,7 +116,7 @@ actual class DefaultKalugaDate internal constructor(override val date: KalugaDat
}
}
- override fun hashCode(): Int {
+ actual override fun hashCode(): Int {
return date.hashCode()
}
}
diff --git a/base/src/jsMain/kotlin/utils/KalugaLocale.kt b/base/src/jsMain/kotlin/utils/KalugaLocale.kt
index beff8c40e..45d7624a2 100644
--- a/base/src/jsMain/kotlin/utils/KalugaLocale.kt
+++ b/base/src/jsMain/kotlin/utils/KalugaLocale.kt
@@ -22,11 +22,11 @@ package com.splendo.kaluga.base.utils
* Default implementation of [BaseLocale]
*/
actual data class KalugaLocale internal constructor(
- override val languageCode: String,
- override val countryCode: String = "",
- override val variantCode: String = "",
- override val scriptCode: String = "",
- override val unitSystem: UnitSystem = UnitSystem.METRIC,
+ actual override val languageCode: String,
+ actual override val countryCode: String = "",
+ actual override val variantCode: String = "",
+ actual override val scriptCode: String = "",
+ actual override val unitSystem: UnitSystem = UnitSystem.METRIC,
) : BaseLocale() {
actual companion object {
@@ -66,14 +66,14 @@ actual data class KalugaLocale internal constructor(
actual val availableLocales: List = emptyList()
}
- override fun name(forLocale: KalugaLocale): String = "${languageCode}_${countryCode}_$variantCode"
- override fun countryName(forLocale: KalugaLocale): String = countryCode
- override fun languageName(forLocale: KalugaLocale): String = languageCode
- override fun variantName(forLocale: KalugaLocale): String = variantCode
- override fun scriptName(forLocale: KalugaLocale): String = scriptCode
+ actual override fun name(forLocale: KalugaLocale): String = "${languageCode}_${countryCode}_$variantCode"
+ actual override fun countryName(forLocale: KalugaLocale): String = countryCode
+ actual override fun languageName(forLocale: KalugaLocale): String = languageCode
+ actual override fun variantName(forLocale: KalugaLocale): String = variantCode
+ actual override fun scriptName(forLocale: KalugaLocale): String = scriptCode
- override val quotationStart: String = "\""
- override val quotationEnd: String = "\""
- override val alternateQuotationStart: String = "\""
- override val alternateQuotationEnd: String = "\""
+ actual override val quotationStart: String = "\""
+ actual override val quotationEnd: String = "\""
+ actual override val alternateQuotationStart: String = "\""
+ actual override val alternateQuotationEnd: String = "\""
}
diff --git a/base/src/jsMain/kotlin/utils/KalugaTimeZone.kt b/base/src/jsMain/kotlin/utils/KalugaTimeZone.kt
index 7a5c1a657..38f7b34da 100644
--- a/base/src/jsMain/kotlin/utils/KalugaTimeZone.kt
+++ b/base/src/jsMain/kotlin/utils/KalugaTimeZone.kt
@@ -47,11 +47,11 @@ actual class KalugaTimeZone internal constructor() : BaseTimeZone() {
actual val availableIdentifiers: List = emptyList()
}
- override val identifier: String = ""
- override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String = ""
- override val offsetFromGMT = 0.milliseconds
- override val daylightSavingsOffset = 0.milliseconds
- override fun offsetFromGMTAtDate(date: KalugaDate): Duration = 0.milliseconds
- override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = false
- override fun copy(): KalugaTimeZone = KalugaTimeZone()
+ actual override val identifier: String = ""
+ actual override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String = ""
+ actual override val offsetFromGMT = 0.milliseconds
+ actual override val daylightSavingsOffset = 0.milliseconds
+ actual override fun offsetFromGMTAtDate(date: KalugaDate): Duration = 0.milliseconds
+ actual override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = false
+ actual override fun copy(): KalugaTimeZone = KalugaTimeZone()
}
diff --git a/base/src/jvmMain/kotlin/text/KalugaDateFormatter.kt b/base/src/jvmMain/kotlin/text/KalugaDateFormatter.kt
index bd0632098..10ea4fa35 100644
--- a/base/src/jvmMain/kotlin/text/KalugaDateFormatter.kt
+++ b/base/src/jvmMain/kotlin/text/KalugaDateFormatter.kt
@@ -85,34 +85,34 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
private val symbols: DateFormatSymbols get() = format.dateFormatSymbols
- override var pattern: String
+ actual override var pattern: String
get() = format.toPattern()
set(value) = format.applyPattern(value)
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(format.timeZone)
set(value) {
format.timeZone = value.timeZone
}
- override var eras: List
+ actual override var eras: List
get() = symbols.eras.toList()
set(value) {
updateSymbols { it.eras = value.toTypedArray() }
}
- override var months: List
+ actual override var months: List
get() = symbols.months.toList()
set(value) {
updateSymbols { it.months = value.toTypedArray() }
}
- override var shortMonths: List
+ actual override var shortMonths: List
get() = symbols.shortMonths.toList()
set(value) {
updateSymbols { it.shortMonths = value.toTypedArray() }
}
- override var weekdays: List
+ actual override var weekdays: List
get() {
val weekdaysWithEmptyFirst = symbols.weekdays.toList()
return if (weekdaysWithEmptyFirst.size > 1) {
@@ -129,7 +129,7 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
it.weekdays = weekdaysWithEmptyFirst.toTypedArray()
}
}
- override var shortWeekdays: List
+ actual override var shortWeekdays: List
get() {
val weekdaysWithEmptyFirst = symbols.shortWeekdays.toList()
return if (weekdaysWithEmptyFirst.size > 1) {
@@ -147,19 +147,19 @@ actual class KalugaDateFormatter private constructor(private val format: SimpleD
}
}
- override var amString: String
+ actual override var amString: String
get() = symbols.amPmStrings.toList()[0]
set(value) {
updateSymbols { it.amPmStrings = it.amPmStrings.toMutableList().apply { this[0] = value }.toTypedArray() }
}
- override var pmString: String
+ actual override var pmString: String
get() = symbols.amPmStrings.toList()[1]
set(value) {
updateSymbols { it.amPmStrings = it.amPmStrings.toMutableList().apply { this[1] = value }.toTypedArray() }
}
- override fun format(date: KalugaDate): String = format.format(date.date)
- override fun parse(string: String): KalugaDate? {
+ actual override fun format(date: KalugaDate): String = format.format(date.date)
+ actual override fun parse(string: String): KalugaDate? {
val currentTimeZone = timeZone
return try {
format.parse(string)?.let { date ->
diff --git a/base/src/jvmMain/kotlin/text/NumberFormatter.kt b/base/src/jvmMain/kotlin/text/NumberFormatter.kt
index 735e3accd..4c5ad0c0c 100644
--- a/base/src/jvmMain/kotlin/text/NumberFormatter.kt
+++ b/base/src/jvmMain/kotlin/text/NumberFormatter.kt
@@ -29,7 +29,7 @@ import java.util.Currency
* @param locale The [KalugaLocale] used for parsing. Defaults to [KalugaLocale.defaultLocale].
* @param style The [NumberFormatStyle] to configure the format to use. Defaults to [NumberFormatStyle.Decimal].
*/
-actual class NumberFormatter actual constructor(override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
+actual class NumberFormatter actual constructor(actual override val locale: KalugaLocale, style: NumberFormatStyle) : BaseNumberFormatter {
private val format: DecimalFormat = when (style) {
is NumberFormatStyle.Integer -> DecimalFormat.getInstance(locale.locale).apply {
@@ -90,112 +90,112 @@ actual class NumberFormatter actual constructor(override val locale: KalugaLocal
}
}
- override var percentSymbol: Char
+ actual override var percentSymbol: Char
get() = symbols.percent
set(value) {
applySymbols { it.percent = value }
}
- override var perMillSymbol: Char
+ actual override var perMillSymbol: Char
get() = symbols.perMill
set(value) {
applySymbols { it.perMill = value }
}
- override var minusSign: Char
+ actual override var minusSign: Char
get() = symbols.minusSign
set(value) {
applySymbols { it.minusSign = value }
}
- override var exponentSymbol: String
+ actual override var exponentSymbol: String
get() = symbols.exponentSeparator
set(value) {
applySymbols { it.exponentSeparator = value }
}
- override var zeroSymbol: Char
+ actual override var zeroSymbol: Char
get() = symbols.zeroDigit
set(value) {
applySymbols { it.zeroDigit = value }
}
- override var notANumberSymbol: String
+ actual override var notANumberSymbol: String
get() = symbols.naN
set(value) {
applySymbols { it.naN = value }
}
- override var infinitySymbol: String
+ actual override var infinitySymbol: String
get() = symbols.infinity
set(value) {
applySymbols { it.infinity = value }
}
- override var currencySymbol: String
+ actual override var currencySymbol: String
get() = symbols.currencySymbol
set(value) {
applySymbols { it.currencySymbol = value }
}
- override var currencyCode: String
+ actual override var currencyCode: String
get() = symbols.currency.currencyCode
set(value) {
applySymbols { it.currency = Currency.getInstance(value) }
}
- override var positivePrefix: String
+ actual override var positivePrefix: String
get() = format.positivePrefix
set(value) {
format.positivePrefix = value
}
- override var positiveSuffix: String
+ actual override var positiveSuffix: String
get() = format.positiveSuffix
set(value) {
format.positiveSuffix = value
}
- override var negativePrefix: String
+ actual override var negativePrefix: String
get() = format.negativePrefix
set(value) {
format.negativePrefix = value
}
- override var negativeSuffix: String
+ actual override var negativeSuffix: String
get() = format.negativeSuffix
set(value) {
format.negativeSuffix = value
}
- override var groupingSeparator: Char
+ actual override var groupingSeparator: Char
get() = symbols.groupingSeparator
set(value) {
applySymbols { it.groupingSeparator = value }
}
- override var usesGroupingSeparator: Boolean
+ actual override var usesGroupingSeparator: Boolean
get() = format.isGroupingUsed
set(value) {
format.isGroupingUsed = value
}
- override var decimalSeparator: Char
+ actual override var decimalSeparator: Char
get() = symbols.decimalSeparator
set(value) {
applySymbols { it.decimalSeparator = value }
}
- override var alwaysShowsDecimalSeparator: Boolean
+ actual override var alwaysShowsDecimalSeparator: Boolean
get() = format.isDecimalSeparatorAlwaysShown
set(value) {
format.isDecimalSeparatorAlwaysShown = value
}
- override var currencyDecimalSeparator: Char
+ actual override var currencyDecimalSeparator: Char
get() = symbols.monetaryDecimalSeparator
set(value) {
applySymbols { it.monetaryDecimalSeparator = value }
}
- override var groupingSize: Int
+ actual override var groupingSize: Int
get() = format.groupingSize
set(value) {
format.groupingSize = value
}
- override var multiplier: Int
+ actual override var multiplier: Int
get() = format.multiplier
set(value) {
format.multiplier = value
}
- override fun format(number: Number): String = format.format(number.toDouble())
- override fun parse(string: String): Number? = try {
+ actual override fun format(number: Number): String = format.format(number.toDouble())
+ actual override fun parse(string: String): Number? = try {
format.parse(string)
} catch (e: ParseException) {
null
diff --git a/base/src/jvmMain/kotlin/utils/KalugaDate.kt b/base/src/jvmMain/kotlin/utils/KalugaDate.kt
index e7fcb0aff..bce097cb5 100644
--- a/base/src/jvmMain/kotlin/utils/KalugaDate.kt
+++ b/base/src/jvmMain/kotlin/utils/KalugaDate.kt
@@ -60,97 +60,97 @@ actual class DefaultKalugaDate internal constructor(internal val calendar: Calen
)
}
- override var timeZone: KalugaTimeZone
+ actual override var timeZone: KalugaTimeZone
get() = KalugaTimeZone(calendar.timeZone)
set(value) {
calendar.timeZone = value.timeZone
}
- override var era: Int
+ actual override var era: Int
get() = calendar.get(Calendar.ERA)
set(value) {
calendar.set(Calendar.ERA, value)
}
- override var year: Int
+ actual override var year: Int
get() = calendar.get(Calendar.YEAR)
set(value) {
calendar.set(Calendar.YEAR, value)
}
- override var month: Int
+ actual override var month: Int
get() = calendar.get(Calendar.MONTH) + 1
set(value) {
calendar.set(Calendar.MONTH, value - 1)
}
- override val daysInMonth: Int get() = calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
- override var weekOfYear: Int
+ actual override val daysInMonth: Int get() = calendar.getActualMaximum(Calendar.DAY_OF_MONTH)
+ actual override var weekOfYear: Int
get() = calendar.get(Calendar.WEEK_OF_YEAR)
set(value) {
calendar.set(Calendar.WEEK_OF_YEAR, value)
}
- override var weekOfMonth: Int
+ actual override var weekOfMonth: Int
get() = calendar.get(Calendar.WEEK_OF_MONTH)
set(value) {
calendar.set(Calendar.WEEK_OF_MONTH, value)
}
- override var day: Int
+ actual override var day: Int
get() = calendar.get(Calendar.DAY_OF_MONTH)
set(value) {
calendar.set(Calendar.DAY_OF_MONTH, value)
}
- override var dayOfYear: Int
+ actual override var dayOfYear: Int
get() = calendar.get(Calendar.DAY_OF_YEAR)
set(value) {
calendar.set(Calendar.DAY_OF_YEAR, value)
}
- override var weekDay: Int
+ actual override var weekDay: Int
get() = calendar.get(Calendar.DAY_OF_WEEK)
set(value) {
calendar.set(Calendar.DAY_OF_WEEK, value)
}
- override var firstWeekDay: Int
+ actual override var firstWeekDay: Int
get() = calendar.firstDayOfWeek
set(value) {
calendar.firstDayOfWeek = value
}
- override var hour: Int
+ actual override var hour: Int
get() = calendar.get(Calendar.HOUR_OF_DAY)
set(value) {
calendar.set(Calendar.HOUR_OF_DAY, value)
}
- override var minute: Int
+ actual override var minute: Int
get() = calendar.get(Calendar.MINUTE)
set(value) {
calendar.set(Calendar.MINUTE, value)
}
- override var second: Int
+ actual override var second: Int
get() = calendar.get(Calendar.SECOND)
set(value) {
calendar.set(Calendar.SECOND, value)
}
- override var millisecond: Int
+ actual override var millisecond: Int
get() = calendar.get(Calendar.MILLISECOND)
set(value) {
calendar.set(Calendar.MILLISECOND, value)
}
- override var durationSinceEpoch: Duration
+ actual override var durationSinceEpoch: Duration
get() = calendar.timeInMillis.milliseconds
set(value) {
calendar.timeInMillis = value.inWholeMilliseconds
}
- override fun copy(): KalugaDate = DefaultKalugaDate(calendar.clone() as Calendar)
+ actual override fun copy(): KalugaDate = DefaultKalugaDate(calendar.clone() as Calendar)
- override fun equals(other: Any?): Boolean {
+ actual override fun equals(other: Any?): Boolean {
return (other as? KalugaDate)?.let {
timeZone == other.timeZone && durationSinceEpoch == other.durationSinceEpoch
} ?: false
}
- override fun hashCode(): Int = calendar.hashCode()
- override val date: KalugaDateHolder get() = calendar.time
+ actual override fun hashCode(): Int = calendar.hashCode()
+ actual override val date: KalugaDateHolder get() = calendar.time
- override fun compareTo(other: KalugaDate): Int {
+ actual override fun compareTo(other: KalugaDate): Int {
return this.calendar.time.compareTo(other.date)
}
}
diff --git a/base/src/jvmMain/kotlin/utils/KalugaLocale.kt b/base/src/jvmMain/kotlin/utils/KalugaLocale.kt
index c23a70a79..aaef97b26 100644
--- a/base/src/jvmMain/kotlin/utils/KalugaLocale.kt
+++ b/base/src/jvmMain/kotlin/utils/KalugaLocale.kt
@@ -75,25 +75,25 @@ actual data class KalugaLocale internal constructor(internal val locale: java.ut
actual val availableLocales: List = java.util.Locale.getAvailableLocales().asList().map { KalugaLocale(it) }
}
- override val countryCode: String
+ actual override val countryCode: String
get() = locale.country
- override val languageCode: String
+ actual override val languageCode: String
get() = locale.language
- override val scriptCode: String
+ actual override val scriptCode: String
get() = locale.script
- override val variantCode: String
+ actual override val variantCode: String
get() = locale.variant
- override val unitSystem: UnitSystem
+ actual override val unitSystem: UnitSystem
get() = UnitSystem.withCountryCode(countryCode.upperCased(this))
- override fun name(forLocale: KalugaLocale): String = locale.getDisplayName(forLocale.locale)
- override fun countryName(forLocale: KalugaLocale): String = locale.getDisplayCountry(forLocale.locale)
- override fun languageName(forLocale: KalugaLocale): String = locale.getDisplayLanguage(forLocale.locale)
- override fun variantName(forLocale: KalugaLocale): String = locale.getDisplayVariant(forLocale.locale)
- override fun scriptName(forLocale: KalugaLocale): String = locale.getDisplayScript(forLocale.locale)
+ actual override fun name(forLocale: KalugaLocale): String = locale.getDisplayName(forLocale.locale)
+ actual override fun countryName(forLocale: KalugaLocale): String = locale.getDisplayCountry(forLocale.locale)
+ actual override fun languageName(forLocale: KalugaLocale): String = locale.getDisplayLanguage(forLocale.locale)
+ actual override fun variantName(forLocale: KalugaLocale): String = locale.getDisplayVariant(forLocale.locale)
+ actual override fun scriptName(forLocale: KalugaLocale): String = locale.getDisplayScript(forLocale.locale)
- override val quotationStart: String = "\""
- override val quotationEnd: String = "\""
- override val alternateQuotationStart: String = "\""
- override val alternateQuotationEnd: String = "\""
+ actual override val quotationStart: String = "\""
+ actual override val quotationEnd: String = "\""
+ actual override val alternateQuotationStart: String = "\""
+ actual override val alternateQuotationEnd: String = "\""
}
diff --git a/base/src/jvmMain/kotlin/utils/KalugaTimeZone.kt b/base/src/jvmMain/kotlin/utils/KalugaTimeZone.kt
index e268559d8..b5c45fc35 100644
--- a/base/src/jvmMain/kotlin/utils/KalugaTimeZone.kt
+++ b/base/src/jvmMain/kotlin/utils/KalugaTimeZone.kt
@@ -52,20 +52,22 @@ actual class KalugaTimeZone internal constructor(internal val timeZone: java.uti
actual val availableIdentifiers get() = java.util.TimeZone.getAvailableIDs().asList()
}
- override val identifier: String = timeZone.id
- override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
+ actual override val identifier: String = timeZone.id
+ actual override fun displayName(style: TimeZoneNameStyle, withDaylightSavings: Boolean, locale: KalugaLocale): String {
val styleJava = when (style) {
TimeZoneNameStyle.Short -> java.util.TimeZone.SHORT
TimeZoneNameStyle.Long -> java.util.TimeZone.LONG
}
return timeZone.getDisplayName(withDaylightSavings, styleJava, locale.locale)
}
- override val offsetFromGMT = timeZone.rawOffset.milliseconds
- override val daylightSavingsOffset = timeZone.dstSavings.milliseconds
- override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.getOffset(date.durationSinceEpoch.inWholeMilliseconds).milliseconds
- override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.inDaylightTime(date.date)
- override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.clone() as java.util.TimeZone)
+ actual override val offsetFromGMT = timeZone.rawOffset.milliseconds
+ actual override val daylightSavingsOffset = timeZone.dstSavings.milliseconds
+ actual override fun offsetFromGMTAtDate(date: KalugaDate): Duration = timeZone.getOffset(date.durationSinceEpoch.inWholeMilliseconds).milliseconds
+ actual override fun usesDaylightSavingsTime(date: KalugaDate): Boolean = timeZone.inDaylightTime(date.date)
+ actual override fun copy(): KalugaTimeZone = KalugaTimeZone(timeZone.clone() as java.util.TimeZone)
override fun equals(other: Any?): Boolean {
return (other as? KalugaTimeZone)?.let { timeZone == other.timeZone } ?: false
}
+
+ override fun hashCode(): Int = timeZone.hashCode()
}
diff --git a/beacons/api/androidLib/beacons.api b/beacons/api/beacons.api
similarity index 96%
rename from beacons/api/androidLib/beacons.api
rename to beacons/api/beacons.api
index 392a4a2f6..8624d9a68 100644
--- a/beacons/api/androidLib/beacons.api
+++ b/beacons/api/beacons.api
@@ -18,9 +18,7 @@ public final class com/splendo/kaluga/bluetooth/beacons/BeaconInfo {
}
public final class com/splendo/kaluga/bluetooth/beacons/BeaconInfoKt {
- public static final fun fullID (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)Ljava/lang/String;
public static final fun getTimeSinceLastSeen (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)J
- public static final fun seenMs (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)J
}
public abstract interface class com/splendo/kaluga/bluetooth/beacons/Beacons {
diff --git a/beacons/api/jvm/beacons.api b/beacons/api/jvm/beacons.api
deleted file mode 100644
index 3c6a7b13e..000000000
--- a/beacons/api/jvm/beacons.api
+++ /dev/null
@@ -1,83 +0,0 @@
-public final class com/splendo/kaluga/bluetooth/beacons/BeaconInfo {
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;IILcom/splendo/kaluga/base/utils/KalugaDate;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun component2 ()Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public final fun component3 ()I
- public final fun component4 ()I
- public final fun component5 ()Lcom/splendo/kaluga/base/utils/KalugaDate;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;IILcom/splendo/kaluga/base/utils/KalugaDate;)Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;Lcom/splendo/kaluga/bluetooth/UUID;Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;IILcom/splendo/kaluga/base/utils/KalugaDate;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getBeaconID ()Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun getLastSeen ()Lcom/splendo/kaluga/base/utils/KalugaDate;
- public final fun getRssi ()I
- public final fun getTxPower ()I
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/BeaconInfoKt {
- public static final fun fullID (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)Ljava/lang/String;
- public static final fun getTimeSinceLastSeen (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)J
- public static final fun seenMs (Lcom/splendo/kaluga/bluetooth/beacons/BeaconInfo;)J
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/beacons/Beacons {
- public abstract fun getBeacons ()Lkotlinx/coroutines/flow/StateFlow;
- public abstract fun isMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun startMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun stopMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/BeaconsKt {
- public static final fun get (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/UUID;)Lkotlinx/coroutines/flow/Flow;
- public static final fun isAnyInRange (Lcom/splendo/kaluga/bluetooth/beacons/Beacons;Ljava/util/List;)Lkotlinx/coroutines/flow/Flow;
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/DefaultBeacons : com/splendo/kaluga/bluetooth/beacons/Beacons, kotlinx/coroutines/CoroutineScope {
- public static final field TAG Ljava/lang/String;
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/BluetoothService;JLcom/splendo/kaluga/logging/Logger;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/BluetoothService;JLcom/splendo/kaluga/logging/Logger;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun getBeacons ()Lkotlinx/coroutines/flow/StateFlow;
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- public fun isMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun startMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun stopMonitoring (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/Eddystone {
- public static final field Companion Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$Companion;
- public fun ()V
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/Eddystone$Companion {
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/Eddystone$Frame {
- public fun (ILcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;)V
- public final fun component1 ()I
- public final fun component2 ()Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public final fun copy (ILcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;)Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$Frame;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$Frame;ILcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$Frame;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getTxPower ()I
- public final fun getUid ()Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/beacons/Eddystone$UID {
- public fun (Ljava/lang/String;Ljava/lang/String;)V
- public final fun asString ()Ljava/lang/String;
- public final fun component1 ()Ljava/lang/String;
- public final fun component2 ()Ljava/lang/String;
- public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/beacons/Eddystone$UID;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getInstance ()Ljava/lang/String;
- public final fun getNamespace ()Ljava/lang/String;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
diff --git a/beacons/build.gradle.kts b/beacons/build.gradle.kts
index 4af168226..459ba8fce 100644
--- a/beacons/build.gradle.kts
+++ b/beacons/build.gradle.kts
@@ -1,25 +1,17 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin")
}
-publishableComponent("beacons")
-
-kotlin {
- sourceSets {
- commonMain {
- dependencies {
+kaluga {
+ moduleName = "beacons"
+ dependencies {
+ common {
+ main {
implementation(project(":base"))
api(project(":bluetooth"))
api(project(":logging", ""))
}
- }
- commonTest {
- dependencies {
+ test {
implementation(project(":test-utils-bluetooth"))
}
}
diff --git a/beacons/src/commonMain/kotlin/BeaconInfo.kt b/beacons/src/commonMain/kotlin/BeaconInfo.kt
index 32e0d765b..788465198 100644
--- a/beacons/src/commonMain/kotlin/BeaconInfo.kt
+++ b/beacons/src/commonMain/kotlin/BeaconInfo.kt
@@ -45,19 +45,7 @@ data class BeaconInfo(
val lastSeen: KalugaDate,
)
-@Deprecated(
- message = "Replaced with beaconId.asString()",
- replaceWith = ReplaceWith(expression = "beaconID.asString()"),
-)
-fun BeaconInfo.fullID() = this.beaconID.asString()
-
/**
* Returns the [kotlin.time.Duration] since the beacon was last seen
*/
val BeaconInfo.timeSinceLastSeen get() = DefaultKalugaDate.now() - lastSeen
-
-/**
- * Returns the time in milliseconds since the beacon was last seen
- */
-@Deprecated("Use timeSinceLastSeen", ReplaceWith("BeaconInfo.timeSinceLastSeen"))
-fun BeaconInfo.seenMs() = timeSinceLastSeen.inWholeMilliseconds
diff --git a/bluetooth-permissions/api/androidLib/bluetooth-permissions.api b/bluetooth-permissions/api/bluetooth-permissions.api
similarity index 97%
rename from bluetooth-permissions/api/androidLib/bluetooth-permissions.api
rename to bluetooth-permissions/api/bluetooth-permissions.api
index 3ed6107b6..b989a3e4f 100644
--- a/bluetooth-permissions/api/androidLib/bluetooth-permissions.api
+++ b/bluetooth-permissions/api/bluetooth-permissions.api
@@ -1,8 +1,5 @@
public abstract interface class com/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder : com/splendo/kaluga/permissions/base/BasePermissionsBuilder {
public abstract fun create (Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/permissions/base/PermissionManager;
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder$DefaultImpls {
public static synthetic fun create$default (Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/base/PermissionManager;
}
diff --git a/bluetooth-permissions/api/jvm/bluetooth-permissions.api b/bluetooth-permissions/api/jvm/bluetooth-permissions.api
deleted file mode 100644
index ad920d259..000000000
--- a/bluetooth-permissions/api/jvm/bluetooth-permissions.api
+++ /dev/null
@@ -1,43 +0,0 @@
-public abstract interface class com/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder : com/splendo/kaluga/permissions/base/BasePermissionsBuilder {
- public abstract fun create (Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/permissions/base/PermissionManager;
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder$DefaultImpls {
- public static synthetic fun create$default (Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/base/PermissionManager;
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/BluetoothPermission : com/splendo/kaluga/permissions/base/Permission {
- public static final field INSTANCE Lcom/splendo/kaluga/permissions/bluetooth/BluetoothPermission;
- public fun equals (Ljava/lang/Object;)Z
- public fun getName ()Ljava/lang/String;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/BluetoothPermissionManagerBuilder : com/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder {
- public fun ()V
- public fun (Lcom/splendo/kaluga/permissions/base/PermissionContext;)V
- public synthetic fun (Lcom/splendo/kaluga/permissions/base/PermissionContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun create (Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/permissions/base/PermissionManager;
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/BluetoothPermissionStateRepo : com/splendo/kaluga/permissions/base/PermissionStateRepo {
- public synthetic fun (Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlin/coroutines/CoroutineContext;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public synthetic fun (Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/DefaultBluetoothPermissionManager : com/splendo/kaluga/permissions/base/BasePermissionManager {
- public fun (Lcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;Lkotlinx/coroutines/CoroutineScope;)V
-}
-
-public final class com/splendo/kaluga/permissions/bluetooth/PermissionKt {
- public static final fun registerBluetoothPermission (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static synthetic fun registerBluetoothPermission$default (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static final fun registerBluetoothPermission-exY8QGI (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static synthetic fun registerBluetoothPermission-exY8QGI$default (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static final fun registerBluetoothPermissionIfNotRegistered (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static synthetic fun registerBluetoothPermissionIfNotRegistered$default (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static final fun registerBluetoothPermissionIfNotRegistered-exY8QGI (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
- public static synthetic fun registerBluetoothPermissionIfNotRegistered-exY8QGI$default (Lcom/splendo/kaluga/permissions/base/PermissionsBuilder;Lkotlin/jvm/functions/Function1;JLcom/splendo/kaluga/permissions/base/BasePermissionManager$Settings;ILjava/lang/Object;)Lcom/splendo/kaluga/permissions/bluetooth/BaseBluetoothPermissionManagerBuilder;
-}
-
diff --git a/bluetooth-permissions/build.gradle.kts b/bluetooth-permissions/build.gradle.kts
index fd14dc6a5..ec47cb2d5 100644
--- a/bluetooth-permissions/build.gradle.kts
+++ b/bluetooth-permissions/build.gradle.kts
@@ -1,28 +1,20 @@
plugins {
- kotlin("multiplatform")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
+ id("com.splendo.kaluga.plugin")
}
-publishableComponent("permissions.bluetooth")
-
-kotlin {
- sourceSets {
- getByName("commonMain") {
- dependencies {
- api(project(":base-permissions", ""))
- }
- }
- getByName("androidLibMain") {
- dependencies {
+kaluga {
+ moduleName = "permissions.bluetooth"
+ dependencies {
+ android {
+ main {
api(project(":location-permissions", ""))
}
}
- getByName("commonTest") {
- dependencies {
+ common {
+ main {
+ api(project(":base-permissions", ""))
+ }
+ test {
api(project(":test-utils-base", ""))
}
}
diff --git a/bluetooth-permissions/src/androidLibMain/kotlin/BluetoothPermissionManager.kt b/bluetooth-permissions/src/androidLibMain/kotlin/BluetoothPermissionManager.kt
index 53b11d4a1..e6cc91730 100644
--- a/bluetooth-permissions/src/androidLibMain/kotlin/BluetoothPermissionManager.kt
+++ b/bluetooth-permissions/src/androidLibMain/kotlin/BluetoothPermissionManager.kt
@@ -69,7 +69,7 @@ actual class DefaultBluetoothPermissionManager(
private val supported: Boolean = bluetoothAdapter != null
- override fun requestPermissionDidStart() {
+ actual override fun requestPermissionDidStart() {
if (supported) {
permissionsManager.requestPermissions()
} else {
@@ -77,7 +77,7 @@ actual class DefaultBluetoothPermissionManager(
}
}
- override fun monitoringDidStart(interval: Duration) {
+ actual override fun monitoringDidStart(interval: Duration) {
if (supported) {
permissionsManager.startMonitoring(interval)
} else {
@@ -85,7 +85,7 @@ actual class DefaultBluetoothPermissionManager(
}
}
- override fun monitoringDidStop() {
+ actual override fun monitoringDidStop() {
if (supported) {
permissionsManager.stopMonitoring()
}
@@ -108,7 +108,7 @@ actual class BluetoothPermissionManagerBuilder(
*/
actual constructor(context: PermissionContext) : this(context, (context.context.getSystemService(Context.BLUETOOTH_SERVICE) as? BluetoothManager)?.adapter)
- override fun create(settings: Settings, coroutineScope: CoroutineScope): BluetoothPermissionManager {
+ actual override fun create(settings: Settings, coroutineScope: CoroutineScope): BluetoothPermissionManager {
return DefaultBluetoothPermissionManager(context.context, bluetoothAdapter, settings, coroutineScope)
}
}
diff --git a/bluetooth-permissions/src/commonMain/kotlin/BluetoothPermission.kt b/bluetooth-permissions/src/commonMain/kotlin/BluetoothPermission.kt
index 1dbd57068..1f6651445 100644
--- a/bluetooth-permissions/src/commonMain/kotlin/BluetoothPermission.kt
+++ b/bluetooth-permissions/src/commonMain/kotlin/BluetoothPermission.kt
@@ -36,7 +36,11 @@ typealias BluetoothPermissionManager = PermissionManager
/**
* The [BasePermissionManager] to use as a default for [BluetoothPermission]
*/
-expect class DefaultBluetoothPermissionManager : BasePermissionManager
+expect class DefaultBluetoothPermissionManager : BasePermissionManager {
+ override fun requestPermissionDidStart()
+ override fun monitoringDidStart(interval: Duration)
+ override fun monitoringDidStop()
+}
/**
* A [BasePermissionsBuilder] for [BluetoothPermission]
@@ -56,7 +60,9 @@ interface BaseBluetoothPermissionManagerBuilder : BasePermissionsBuilder(BluetoothPermission, settings, coroutineScope) {
-
- override fun requestPermissionDidStart() {
- TODO("Not yet implemented")
- }
-
- override fun monitoringDidStart(interval: Duration) {
- TODO("Not yet implemented")
- }
-
- override fun monitoringDidStop() {
- TODO("Not yet implemented")
- }
-}
-
-/**
- * A [BaseBluetoothPermissionManagerBuilder]
- * @param context the [PermissionContext] this permissions manager builder runs on
- */
-actual class BluetoothPermissionManagerBuilder actual constructor(context: PermissionContext) : BaseBluetoothPermissionManagerBuilder {
-
- override fun create(settings: Settings, coroutineScope: CoroutineScope): PermissionManager {
- return DefaultBluetoothPermissionManager(settings, coroutineScope)
- }
-}
diff --git a/bluetooth-permissions/src/jvmMain/kotlin/BluetoothPermissionManager.kt b/bluetooth-permissions/src/jvmMain/kotlin/BluetoothPermissionManager.kt
deleted file mode 100644
index 10e68018d..000000000
--- a/bluetooth-permissions/src/jvmMain/kotlin/BluetoothPermissionManager.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright 2022 Splendo Consulting B.V. The Netherlands
-
- 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 com.splendo.kaluga.permissions.bluetooth
-
-import com.splendo.kaluga.permissions.base.BasePermissionManager
-import com.splendo.kaluga.permissions.base.BasePermissionManager.Settings
-import com.splendo.kaluga.permissions.base.PermissionContext
-import com.splendo.kaluga.permissions.base.PermissionManager
-import kotlinx.coroutines.CoroutineScope
-import kotlin.time.Duration
-
-/**
- * The [BasePermissionManager] to use as a default for [BluetoothPermission]
- * @param settings the [Settings] to apply to this manager.
- * @param coroutineScope the [CoroutineScope] of this manager.
- */
-actual class DefaultBluetoothPermissionManager(
- settings: Settings,
- coroutineScope: CoroutineScope,
-) : BasePermissionManager(BluetoothPermission, settings, coroutineScope) {
-
- override fun requestPermissionDidStart() {
- TODO("Not yet implemented")
- }
-
- override fun monitoringDidStart(interval: Duration) {
- TODO("Not yet implemented")
- }
-
- override fun monitoringDidStop() {
- TODO("Not yet implemented")
- }
-}
-
-/**
- * A [BaseBluetoothPermissionManagerBuilder]
- * @param context the [PermissionContext] this permissions manager builder runs on
- */
-actual class BluetoothPermissionManagerBuilder actual constructor(context: PermissionContext) : BaseBluetoothPermissionManagerBuilder {
-
- override fun create(settings: Settings, coroutineScope: CoroutineScope): PermissionManager {
- return DefaultBluetoothPermissionManager(settings, coroutineScope)
- }
-}
diff --git a/bluetooth/api/androidLib/bluetooth.api b/bluetooth/api/bluetooth.api
similarity index 91%
rename from bluetooth/api/androidLib/bluetooth.api
rename to bluetooth/api/bluetooth.api
index 3e0ae72d2..326cba86e 100644
--- a/bluetooth/api/androidLib/bluetooth.api
+++ b/bluetooth/api/bluetooth.api
@@ -12,9 +12,6 @@ public abstract class com/splendo/kaluga/bluetooth/Attribute : kotlinx/coroutine
public abstract interface class com/splendo/kaluga/bluetooth/BaseBluetoothBuilder {
public abstract fun create (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)Lcom/splendo/kaluga/bluetooth/Bluetooth;
-}
-
-public final class com/splendo/kaluga/bluetooth/BaseBluetoothBuilder$DefaultImpls {
public static synthetic fun create$default (Lcom/splendo/kaluga/bluetooth/BaseBluetoothBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/Bluetooth;
}
@@ -75,9 +72,13 @@ public abstract interface class com/splendo/kaluga/bluetooth/BluetoothService {
public abstract fun isEnabled ()Lkotlinx/coroutines/flow/Flow;
public abstract fun isScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun pairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlinx/coroutines/flow/Flow;
+ public static synthetic fun pairedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public abstract fun scannedDevices (Ljava/util/Set;)Lkotlinx/coroutines/flow/Flow;
+ public static synthetic fun scannedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
public abstract fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)V
+ public static synthetic fun startScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)V
public abstract fun stopScanning (Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)V
+ public static synthetic fun stopScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)V
}
public final class com/splendo/kaluga/bluetooth/BluetoothService$CleanMode : java/lang/Enum {
@@ -89,13 +90,6 @@ public final class com/splendo/kaluga/bluetooth/BluetoothService$CleanMode : jav
public static fun values ()[Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
}
-public final class com/splendo/kaluga/bluetooth/BluetoothService$DefaultImpls {
- public static synthetic fun pairedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
- public static synthetic fun scannedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
- public static synthetic fun startScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)V
- public static synthetic fun stopScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)V
-}
-
public class com/splendo/kaluga/bluetooth/Characteristic : com/splendo/kaluga/bluetooth/Attribute {
public fun (Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;)V
public synthetic fun (Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -403,26 +397,14 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableD
public abstract fun updateReconnectionSettings (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
public abstract fun getServices ()Ljava/util/List;
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
public abstract fun didDiscoverServices (Ljava/util/List;)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices {
public abstract fun addAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)Lkotlin/jvm/functions/Function1;
public abstract fun getAction ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
@@ -430,57 +412,29 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableD
public abstract fun getNextActions ()Ljava/util/List;
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices {
public abstract fun handleAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
public abstract fun getDiscoverServices ()Lkotlin/jvm/functions/Function1;
public abstract fun startDiscovering ()V
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
public abstract fun getCancelConnection ()Lkotlin/jvm/functions/Function1;
public abstract fun getDidConnect ()Lkotlin/jvm/functions/Function1;
public abstract fun handleCancel ()V
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
public abstract fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)Lkotlin/jvm/functions/Function1;
public abstract fun startConnecting (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
}
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting;)Lkotlin/jvm/functions/Function1;
-}
-
public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceStateImplRepo : com/splendo/kaluga/bluetooth/device/BaseConnectableDeviceStateRepo {
public fun (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lkotlin/coroutines/CoroutineContext;)V
}
@@ -544,8 +498,11 @@ public final class com/splendo/kaluga/bluetooth/device/DefaultDeviceWrapper : co
public abstract interface class com/splendo/kaluga/bluetooth/device/Device {
public abstract fun advertisementDataDidUpdate (Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public abstract fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun disconnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public static synthetic fun connect$default (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
+ public static synthetic fun connect$suspendImpl (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public fun disconnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
+ public static synthetic fun disconnect$suspendImpl (Lcom/splendo/kaluga/bluetooth/device/Device;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun getIdentifier ()Ljava/lang/String;
public abstract fun getInfo ()Lkotlinx/coroutines/flow/Flow;
public abstract fun getState ()Lkotlinx/coroutines/flow/Flow;
@@ -554,12 +511,6 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/Device {
public abstract fun rssiDidUpdate (I)V
}
-public final class com/splendo/kaluga/bluetooth/device/Device$DefaultImpls {
- public static fun connect (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static synthetic fun connect$default (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
- public static fun disconnect (Lcom/splendo/kaluga/bluetooth/device/Device;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
public abstract class com/splendo/kaluga/bluetooth/device/DeviceAction {
public final fun getCompletedSuccessfully ()Lkotlinx/coroutines/CompletableDeferred;
}
@@ -615,12 +566,14 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceConnec
public abstract fun getRssi ()Lkotlinx/coroutines/flow/Flow;
public abstract fun handleConnect ()V
public abstract fun handleDisconnect (Lkotlin/jvm/functions/Function1;)V
+ public static synthetic fun handleDisconnect$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
public abstract fun pair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun performAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun readRssi (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun requestMtu (ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun reset (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun startConnecting (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
+ public static synthetic fun startConnecting$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;ILjava/lang/Object;)V
public abstract fun startDisconnecting ()V
public abstract fun startDiscovering ()V
public abstract fun unpair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
@@ -630,11 +583,6 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceConnec
public abstract fun create (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;
}
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$DefaultImpls {
- public static synthetic fun handleDisconnect$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
- public static synthetic fun startConnecting$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;ILjava/lang/Object;)V
-}
-
public abstract class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
}
@@ -750,8 +698,6 @@ public final class com/splendo/kaluga/bluetooth/device/DeviceImpl : com/splendo/
public fun (Ljava/lang/String;Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;)V
public synthetic fun (Ljava/lang/String;Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun advertisementDataDidUpdate (Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun disconnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
public fun getIdentifier ()Ljava/lang/String;
public fun getInfo ()Lkotlinx/coroutines/flow/Flow;
@@ -765,7 +711,8 @@ public final class com/splendo/kaluga/bluetooth/device/DeviceImpl$Companion {
}
public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceInfo {
- public abstract fun distance (D)D
+ public fun distance (D)D
+ public static synthetic fun distance$default (Lcom/splendo/kaluga/bluetooth/device/DeviceInfo;DILjava/lang/Object;)D
public abstract fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
public abstract fun getIdentifier ()Ljava/lang/String;
public abstract fun getName ()Ljava/lang/String;
@@ -773,11 +720,6 @@ public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceInfo {
public abstract fun getUpdatedAt ()Lcom/splendo/kaluga/base/utils/KalugaDate;
}
-public final class com/splendo/kaluga/bluetooth/device/DeviceInfo$DefaultImpls {
- public static fun distance (Lcom/splendo/kaluga/bluetooth/device/DeviceInfo;D)D
- public static synthetic fun distance$default (Lcom/splendo/kaluga/bluetooth/device/DeviceInfo;DILjava/lang/Object;)D
-}
-
public final class com/splendo/kaluga/bluetooth/device/DeviceInfoAndroid {
public static final fun getStringValue (Ljava/lang/String;)Ljava/lang/String;
public static final fun identifierFromString (Ljava/lang/String;)Ljava/lang/String;
@@ -793,7 +735,6 @@ public final class com/splendo/kaluga/bluetooth/device/DeviceInfoImpl : com/sple
public final fun component4 ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
public final fun copy (Ljava/lang/String;Ljava/lang/String;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;
public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Ljava/lang/String;Ljava/lang/String;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;
- public fun distance (D)D
public fun equals (Ljava/lang/Object;)Z
public fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
public fun getIdentifier ()Ljava/lang/String;
@@ -890,9 +831,6 @@ public abstract class com/splendo/kaluga/bluetooth/scanner/BaseScanner : com/spl
public abstract interface class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder {
public abstract fun create (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder$DefaultImpls {
public static synthetic fun create$default (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder;Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner;
}
@@ -935,12 +873,9 @@ public final class com/splendo/kaluga/bluetooth/scanner/DefaultDevices : com/spl
public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/DefaultDevices;Ljava/util/Map;Ljava/util/Map;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/DefaultDevices;
public fun copyAndAddScanned (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
public fun copyAndSetPaired (Ljava/util/Map;Ljava/util/Set;Z)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public fun devicesForCurrentScanFilter ()Ljava/util/List;
- public fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
public fun equals (Ljava/lang/Object;)Z
public fun getAllDevices ()Ljava/util/Map;
public fun getCurrentScanFilter ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public fun getIdentifiersForCurrentScanFilter ()Ljava/util/Set;
public fun getIdentifiersFoundForDeviceDiscoveryMode ()Ljava/util/Map;
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
@@ -1086,23 +1021,11 @@ public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningSta
public abstract fun getDevices ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Active$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Active;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive {
public abstract fun getPreviousDevices ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
public abstract fun getReinitialize ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract class com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode {
public abstract fun getFilter ()Ljava/util/Set;
}
@@ -1132,49 +1055,31 @@ public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDisc
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Devices {
public abstract fun copyAndAddScanned (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
public abstract fun copyAndSetPaired (Ljava/util/Map;Ljava/util/Set;Z)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public abstract fun devicesForCurrentScanFilter ()Ljava/util/List;
- public abstract fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
+ public fun devicesForCurrentScanFilter ()Ljava/util/List;
+ public fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
public abstract fun getAllDevices ()Ljava/util/Map;
public abstract fun getCurrentScanFilter ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public abstract fun getIdentifiersForCurrentScanFilter ()Ljava/util/Set;
+ public fun getIdentifiersForCurrentScanFilter ()Ljava/util/Set;
public abstract fun getIdentifiersFoundForDeviceDiscoveryMode ()Ljava/util/Map;
public abstract fun updateScanFilter (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Devices$DefaultImpls {
- public static fun devicesForCurrentScanFilter (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;)Ljava/util/List;
- public static fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
- public static fun getIdentifiersForCurrentScanFilter (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;)Ljava/util/Set;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled : com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted {
public abstract fun getDisable ()Lkotlin/jvm/functions/Function1;
public abstract fun pairedDevices (Ljava/util/Map;Ljava/util/Set;Z)Lkotlin/jvm/functions/Function1;
public abstract fun retrievePairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle : com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled {
public abstract fun refresh (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lkotlin/jvm/functions/Function1;
- public abstract fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle$DefaultImpls {
public static synthetic fun refresh$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;)Lkotlin/jvm/functions/Function1;
+ public abstract fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlin/jvm/functions/Function1;
public static synthetic fun startScanning$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
}
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning : com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled {
public abstract fun discoverDevices (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
public abstract fun stopScanning (Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning;)Lkotlin/jvm/functions/Function1;
public static synthetic fun stopScanning$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
}
@@ -1198,70 +1103,34 @@ public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Sc
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/bluetooth/scanner/ScanningState {
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Active {
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/bluetooth/scanner/ScanningState$Active {
public abstract fun initialized (ZZ)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth : com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized {
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled : com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth, com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted {
public abstract fun getEnable ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions : com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth {
public abstract fun permit (Z)Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware : com/splendo/kaluga/bluetooth/scanner/ScanningState {
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive {
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized;)Lkotlin/jvm/functions/Function1;
-}
-
public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted : com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized {
public abstract fun getRevokePermission ()Lkotlin/jvm/functions/Function1;
}
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted;)Lkotlin/jvm/functions/Function1;
-}
-
public class com/splendo/kaluga/bluetooth/scanner/ScanningStateImplRepo : com/splendo/kaluga/bluetooth/scanner/BaseScanningStateRepo {
public fun (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)V
}
diff --git a/bluetooth/api/jvm/bluetooth.api b/bluetooth/api/jvm/bluetooth.api
deleted file mode 100644
index da6c9c846..000000000
--- a/bluetooth/api/jvm/bluetooth.api
+++ /dev/null
@@ -1,1154 +0,0 @@
-public abstract class com/splendo/kaluga/bluetooth/Attribute : kotlinx/coroutines/flow/Flow {
- public fun ([BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun ([BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- protected final fun addAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)V
- public fun collect (Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected final fun getLogTag ()Ljava/lang/String;
- public abstract fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun readValue ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Read;
- public fun updateValue ()V
- public final fun writeValue ([B)Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Write;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/BaseBluetoothBuilder {
- public abstract fun create (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)Lcom/splendo/kaluga/bluetooth/Bluetooth;
-}
-
-public final class com/splendo/kaluga/bluetooth/BaseBluetoothBuilder$DefaultImpls {
- public static synthetic fun create$default (Lcom/splendo/kaluga/bluetooth/BaseBluetoothBuilder;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/Bluetooth;
-}
-
-public final class com/splendo/kaluga/bluetooth/Bluetooth : com/splendo/kaluga/bluetooth/BluetoothService, kotlinx/coroutines/CoroutineScope {
- public fun (Lkotlin/coroutines/CoroutineContext;Lkotlin/jvm/functions/Function1;)V
- public fun allDevices ()Lkotlinx/coroutines/flow/Flow;
- public fun devices ()Lkotlinx/coroutines/flow/Flow;
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- public fun isEnabled ()Lkotlinx/coroutines/flow/Flow;
- public fun isScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun pairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlinx/coroutines/flow/Flow;
- public fun scannedDevices (Ljava/util/Set;)Lkotlinx/coroutines/flow/Flow;
- public fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)V
- public fun stopScanning (Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/BluetoothBuilder : com/splendo/kaluga/bluetooth/BaseBluetoothBuilder {
- public fun ()V
- public fun (Lkotlin/jvm/functions/Function2;)V
- public synthetic fun (Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun create (Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)Lcom/splendo/kaluga/bluetooth/Bluetooth;
-}
-
-public final class com/splendo/kaluga/bluetooth/BluetoothKt {
- public static final fun advertisement (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun characteristics (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun connect (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static synthetic fun connect$default (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
- public static final fun descriptors (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun disconnect (Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static final fun distance (Lkotlinx/coroutines/flow/Flow;DI)Lkotlinx/coroutines/flow/Flow;
- public static synthetic fun distance$default (Lkotlinx/coroutines/flow/Flow;DIILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
- public static final fun get (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/UUID;)Lkotlinx/coroutines/flow/Flow;
- public static final fun getAttribute (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/UUID;)Lkotlinx/coroutines/flow/Flow;
- public static final fun getService (Lkotlinx/coroutines/flow/Flow;Lcom/splendo/kaluga/bluetooth/UUID;)Lkotlinx/coroutines/flow/Flow;
- public static final fun info (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun mtu (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun requestMtu (Lkotlinx/coroutines/flow/Flow;ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static final fun rssi (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun services (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun state (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
- public static final fun updateRssi (Lkotlinx/coroutines/flow/Flow;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static final fun value (Lkotlinx/coroutines/flow/Flow;)Lkotlinx/coroutines/flow/Flow;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/BluetoothMonitor : com/splendo/kaluga/service/ServiceMonitor {
-}
-
-public final class com/splendo/kaluga/bluetooth/BluetoothMonitor$Builder {
- public fun ()V
- public final fun create ()Lcom/splendo/kaluga/bluetooth/BluetoothMonitor;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/BluetoothService {
- public abstract fun allDevices ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun devices ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun isEnabled ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun isScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun pairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlinx/coroutines/flow/Flow;
- public abstract fun scannedDevices (Ljava/util/Set;)Lkotlinx/coroutines/flow/Flow;
- public abstract fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)V
- public abstract fun stopScanning (Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/BluetoothService$CleanMode : java/lang/Enum {
- public static final field ONLY_PROVIDED_FILTER Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
- public static final field REMOVE_ALL Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
- public static final field RETAIN_ALL Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
- public static fun getEntries ()Lkotlin/enums/EnumEntries;
- public static fun valueOf (Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
- public static fun values ()[Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;
-}
-
-public final class com/splendo/kaluga/bluetooth/BluetoothService$DefaultImpls {
- public static synthetic fun pairedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
- public static synthetic fun scannedDevices$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;ILjava/lang/Object;)Lkotlinx/coroutines/flow/Flow;
- public static synthetic fun startScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)V
- public static synthetic fun stopScanning$default (Lcom/splendo/kaluga/bluetooth/BluetoothService;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)V
-}
-
-public class com/splendo/kaluga/bluetooth/Characteristic : com/splendo/kaluga/bluetooth/Attribute {
- public fun (Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public synthetic fun createReadAction$bluetooth ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Read;
- public synthetic fun createWriteAction$bluetooth ([B)Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Write;
- public final fun disableNotification (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public final fun enableNotification (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public final fun getDescriptors ()Ljava/util/List;
- public fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun getWrapper ()Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;
- public final fun hasProperty (Lcom/splendo/kaluga/bluetooth/CharacteristicProperties;)Z
- public final fun isNotifying ()Z
- public final fun setNotifying (Z)V
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicKt {
- public static final fun containsAnyOf (Lcom/splendo/kaluga/bluetooth/CharacteristicWrapper;[I)Z
-}
-
-public abstract class com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public synthetic fun (ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun getRawValue ()I
- public final fun or (Lcom/splendo/kaluga/bluetooth/CharacteristicProperties;)I
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$Broadcast : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$Broadcast;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$ExtendedProperties : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$ExtendedProperties;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$Indicate : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$Indicate;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$Notify : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$Notify;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$Read : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$Read;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$SignedWrite : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$SignedWrite;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$Write : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$Write;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/CharacteristicProperties$WriteWithoutResponse : com/splendo/kaluga/bluetooth/CharacteristicProperties {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/CharacteristicProperties$WriteWithoutResponse;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/CharacteristicWrapper {
- public abstract fun getDescriptors ()Ljava/util/List;
- public abstract fun getProperties ()I
- public abstract fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
- public abstract fun getValue ()[B
-}
-
-public final class com/splendo/kaluga/bluetooth/CommonUUID {
- public static final fun uuidFrom (Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/UUID;
-}
-
-public final class com/splendo/kaluga/bluetooth/DefaultBluetoothMonitor : com/splendo/kaluga/service/DefaultServiceMonitor, com/splendo/kaluga/bluetooth/BluetoothMonitor {
- public fun ()V
- public fun isServiceEnabled ()Z
-}
-
-public class com/splendo/kaluga/bluetooth/Descriptor : com/splendo/kaluga/bluetooth/Attribute {
- public fun (Lcom/splendo/kaluga/bluetooth/DescriptorWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/DescriptorWrapper;[BLkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public synthetic fun createReadAction$bluetooth ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Read;
- public synthetic fun createWriteAction$bluetooth ([B)Lcom/splendo/kaluga/bluetooth/device/DeviceAction$Write;
- public fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun getWrapper ()Lcom/splendo/kaluga/bluetooth/DescriptorWrapper;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/DescriptorWrapper {
- public abstract fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
- public abstract fun getValue ()[B
-}
-
-public final class com/splendo/kaluga/bluetooth/Service {
- public fun (Lcom/splendo/kaluga/bluetooth/ServiceWrapper;Lkotlin/jvm/functions/Function1;Ljava/lang/String;Lcom/splendo/kaluga/logging/Logger;)V
- public final fun getCharacteristics ()Ljava/util/List;
- public final fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/ServiceWrapper {
- public abstract fun getCharacteristics ()Ljava/util/List;
- public abstract fun getUuid ()Lcom/splendo/kaluga/bluetooth/UUID;
-}
-
-public final class com/splendo/kaluga/bluetooth/UUID {
- public fun (Ljava/lang/String;)V
- public final fun component1 ()Ljava/lang/String;
- public final fun copy (Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/UUID;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/UUID;Ljava/lang/String;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/UUID;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getUuidString ()Ljava/lang/String;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/UUIDException : java/lang/Exception {
- public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/UUIDException$InvalidFormat : com/splendo/kaluga/bluetooth/UUIDException {
- public fun (Ljava/lang/String;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/UUIDKt {
- public static final fun getUuidString (Lcom/splendo/kaluga/bluetooth/UUID;)Ljava/lang/String;
- public static final fun randomUUID ()Lcom/splendo/kaluga/bluetooth/UUID;
-}
-
-public final class com/splendo/kaluga/bluetooth/ValueKt {
- public static final fun getAsBytes ([B)[B
-}
-
-public final class com/splendo/kaluga/bluetooth/device/AdvertisementData : com/splendo/kaluga/bluetooth/device/BaseAdvertisementData {
- public fun ()V
- public fun getManufacturerData ()[B
- public fun getManufacturerId ()Ljava/lang/Integer;
- public fun getName ()Ljava/lang/String;
- public fun getServiceData ()Ljava/util/Map;
- public fun getServiceUUIDs ()Ljava/util/List;
- public fun getTxPowerLevel ()I
- public fun isConnectable ()Z
-}
-
-public final class com/splendo/kaluga/bluetooth/device/AdvertisementDataKt {
- public static final fun getDescription (Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/BaseAdvertisementData {
- public abstract fun getManufacturerData ()[B
- public abstract fun getManufacturerId ()Ljava/lang/Integer;
- public abstract fun getName ()Ljava/lang/String;
- public abstract fun getServiceData ()Ljava/util/Map;
- public abstract fun getServiceUUIDs ()Ljava/util/List;
- public abstract fun getTxPowerLevel ()I
- public abstract fun isConnectable ()Z
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/BaseConnectableDeviceStateRepo : com/splendo/kaluga/base/state/HotStateFlowRepo {
- public fun (Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/CoroutineContext;)V
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/BaseDeviceConnectionManager : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager, kotlinx/coroutines/CoroutineScope {
- public fun (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlinx/coroutines/CoroutineScope;)V
- public final fun cancelConnecting ()V
- protected fun createService (Lcom/splendo/kaluga/bluetooth/ServiceWrapper;)Lcom/splendo/kaluga/bluetooth/Service;
- protected abstract fun didStartPerformingAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- protected final fun getCurrentAction ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- protected final fun getDeviceWrapper ()Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;
- public fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- protected final fun getNotifyingCharacteristics ()Lcom/splendo/kaluga/base/collections/ConcurrentMutableMap;
- public synthetic fun getRssi ()Lkotlinx/coroutines/flow/Flow;
- public fun getRssi ()Lkotlinx/coroutines/flow/SharedFlow;
- public final fun handleConnect ()V
- protected fun handleCurrentActionCompleted (Z)V
- public final fun handleDisconnect (Lkotlin/jvm/functions/Function1;)V
- protected fun handleDiscoverCompleted (Ljava/util/List;)V
- protected final fun handleNewMtu (I)V
- protected fun handleNewRssi (I)V
- protected fun handleUpdatedCharacteristic (Lcom/splendo/kaluga/bluetooth/UUID;ZLkotlin/jvm/functions/Function1;)V
- public static synthetic fun handleUpdatedCharacteristic$default (Lcom/splendo/kaluga/bluetooth/device/BaseDeviceConnectionManager;Lcom/splendo/kaluga/bluetooth/UUID;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
- protected fun handleUpdatedDescriptor (Lcom/splendo/kaluga/bluetooth/UUID;ZLkotlin/jvm/functions/Function1;)V
- public static synthetic fun handleUpdatedDescriptor$default (Lcom/splendo/kaluga/bluetooth/device/BaseDeviceConnectionManager;Lcom/splendo/kaluga/bluetooth/UUID;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
- public final fun pair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public final fun performAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun readRssi (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun requestStartPairing (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun requestStartUnpairing (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun reset (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected final fun setCurrentAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)V
- public final fun startConnecting (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
- public final fun startDisconnecting ()V
- public final fun startDiscovering ()V
- public final fun unpair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState : com/splendo/kaluga/base/state/KalugaState, com/splendo/kaluga/bluetooth/device/DeviceState {
- public abstract fun getDidDisconnect ()Lkotlin/jvm/functions/Function1;
- public abstract fun getDisconnecting ()Lkotlin/jvm/functions/Function1;
- public abstract fun unpair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
- public abstract fun didUpdateMtu (I)Lkotlin/jvm/functions/Function1;
- public abstract fun getMtu ()Ljava/lang/Integer;
- public abstract fun getReconnect ()Lkotlin/jvm/functions/Function1;
- public abstract fun getReconnectionSettings ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;
- public abstract fun pair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun readRssi (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun requestMtu (ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun startDisconnected ()V
- public abstract fun updateReconnectionSettings (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
- public abstract fun getServices ()Ljava/util/List;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
- public abstract fun didDiscoverServices (Ljava/util/List;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Discovering;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices {
- public abstract fun addAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)Lkotlin/jvm/functions/Function1;
- public abstract fun getAction ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- public abstract fun getActionCompleted ()Lkotlin/jvm/functions/Function1;
- public abstract fun getNextActions ()Ljava/util/List;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$HandlingAction;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$DiscoveredServices {
- public abstract fun handleAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$Idle;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected {
- public abstract fun getDiscoverServices ()Lkotlin/jvm/functions/Function1;
- public abstract fun startDiscovering ()V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connected$NoServices;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
- public abstract fun getCancelConnection ()Lkotlin/jvm/functions/Function1;
- public abstract fun getDidConnect ()Lkotlin/jvm/functions/Function1;
- public abstract fun handleCancel ()V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Connecting;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
- public abstract fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)Lkotlin/jvm/functions/Function1;
- public abstract fun startConnecting (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnected;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting : com/splendo/kaluga/bluetooth/device/ConnectableDeviceState {
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/device/ConnectableDeviceState$Disconnecting;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectableDeviceStateImplRepo : com/splendo/kaluga/bluetooth/device/BaseConnectableDeviceStateRepo {
- public fun (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lkotlin/coroutines/CoroutineContext;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectionSettings {
- public fun ()V
- public fun (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;
- public final fun component2 ()Lcom/splendo/kaluga/logging/Logger;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/logging/Logger;)Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lcom/splendo/kaluga/logging/Logger;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getLogger ()Lcom/splendo/kaluga/logging/Logger;
- public final fun getReconnectionSettings ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings {
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings$Always : com/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings$Always;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings$Never : com/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings$Never;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/Device {
- public abstract fun advertisementDataDidUpdate (Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public abstract fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun disconnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public abstract fun getInfo ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun getState ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun handleConnected ()V
- public abstract fun handleDisconnected ()V
- public abstract fun rssiDidUpdate (I)V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/Device$DefaultImpls {
- public static fun connect (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public static synthetic fun connect$default (Lcom/splendo/kaluga/bluetooth/device/Device;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
- public static fun disconnect (Lcom/splendo/kaluga/bluetooth/device/Device;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/DeviceAction {
- public final fun getCompletedSuccessfully ()Lkotlinx/coroutines/CompletableDeferred;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/DeviceAction$Notification : com/splendo/kaluga/bluetooth/device/DeviceAction {
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/Characteristic;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun getCharacteristic ()Lcom/splendo/kaluga/bluetooth/Characteristic;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Notification$Disable : com/splendo/kaluga/bluetooth/device/DeviceAction$Notification {
- public fun (Lcom/splendo/kaluga/bluetooth/Characteristic;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Notification$Enable : com/splendo/kaluga/bluetooth/device/DeviceAction$Notification {
- public fun (Lcom/splendo/kaluga/bluetooth/Characteristic;)V
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/DeviceAction$Read : com/splendo/kaluga/bluetooth/device/DeviceAction {
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Read$Characteristic : com/splendo/kaluga/bluetooth/device/DeviceAction$Read {
- public fun (Lcom/splendo/kaluga/bluetooth/Characteristic;)V
- public final fun getCharacteristic ()Lcom/splendo/kaluga/bluetooth/Characteristic;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Read$Descriptor : com/splendo/kaluga/bluetooth/device/DeviceAction$Read {
- public fun (Lcom/splendo/kaluga/bluetooth/Descriptor;)V
- public final fun getDescriptor ()Lcom/splendo/kaluga/bluetooth/Descriptor;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/DeviceAction$Write : com/splendo/kaluga/bluetooth/device/DeviceAction {
- public synthetic fun ([BLkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun getNewValue ()[B
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Write$Characteristic : com/splendo/kaluga/bluetooth/device/DeviceAction$Write {
- public fun ([BLcom/splendo/kaluga/bluetooth/Characteristic;)V
- public final fun getCharacteristic ()Lcom/splendo/kaluga/bluetooth/Characteristic;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceAction$Write$Descriptor : com/splendo/kaluga/bluetooth/device/DeviceAction$Write {
- public fun ([BLcom/splendo/kaluga/bluetooth/Descriptor;)V
- public final fun getDescriptor ()Lcom/splendo/kaluga/bluetooth/Descriptor;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager {
- public abstract fun cancelConnecting ()V
- public abstract fun connect ()V
- public abstract fun disconnect ()V
- public abstract fun discoverServices (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun getCurrentState ()Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public abstract fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun getRssi ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun handleConnect ()V
- public abstract fun handleDisconnect (Lkotlin/jvm/functions/Function1;)V
- public abstract fun pair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun performAction (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun readRssi (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun requestMtu (ILkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun reset (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun startConnecting (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
- public abstract fun startDisconnecting ()V
- public abstract fun startDiscovering ()V
- public abstract fun unpair (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Builder {
- public abstract fun create (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlinx/coroutines/CoroutineScope;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$DefaultImpls {
- public static synthetic fun handleDisconnect$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
- public static synthetic fun startConnecting$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;ILjava/lang/Object;)V
-}
-
-public abstract class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$AddAction : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$AddAction;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$AddAction;Lcom/splendo/kaluga/bluetooth/device/DeviceAction;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$AddAction;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getAction ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CancelledConnecting : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CancelledConnecting;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CompletedAction : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Z)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- public final fun component2 ()Z
- public final fun copy (Lcom/splendo/kaluga/bluetooth/device/DeviceAction;Z)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CompletedAction;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CompletedAction;Lcom/splendo/kaluga/bluetooth/device/DeviceAction;ZILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$CompletedAction;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getAction ()Lcom/splendo/kaluga/bluetooth/device/DeviceAction;
- public final fun getSucceeded ()Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connected : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connected;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connecting : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connecting;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connecting;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Connecting;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getReconnectionSettings ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnected : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (Lkotlin/jvm/functions/Function1;)V
- public final fun component1 ()Lkotlin/jvm/functions/Function1;
- public final fun copy (Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnected;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnected;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnected;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getOnDisconnect ()Lkotlin/jvm/functions/Function1;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnecting : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Disconnecting;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$DiscoveredServices : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (Ljava/util/List;)V
- public final fun component1 ()Ljava/util/List;
- public final fun copy (Ljava/util/List;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$DiscoveredServices;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$DiscoveredServices;Ljava/util/List;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$DiscoveredServices;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getServices ()Ljava/util/List;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Discovering : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$Discovering;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$MtuUpdated : com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event {
- public fun (I)V
- public final fun component1 ()I
- public final fun copy (I)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$MtuUpdated;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$MtuUpdated;IILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Event$MtuUpdated;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getNewMtu ()I
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State : java/lang/Enum {
- public static final field CONNECTED Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public static final field CONNECTING Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public static final field DISCONNECTED Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public static final field DISCONNECTING Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public static fun getEntries ()Lkotlin/enums/EnumEntries;
- public static fun valueOf (Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
- public static fun values ()[Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$State;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceImpl : com/splendo/kaluga/bluetooth/device/Device, kotlinx/coroutines/CoroutineScope {
- public static final field Companion Lcom/splendo/kaluga/bluetooth/device/DeviceImpl$Companion;
- public static final field TAG Ljava/lang/String;
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/UUID;Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/jvm/functions/Function1;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function2;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun advertisementDataDidUpdate (Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public fun connect (Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings$ReconnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun disconnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- public fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public fun getInfo ()Lkotlinx/coroutines/flow/Flow;
- public fun getState ()Lkotlinx/coroutines/flow/Flow;
- public fun handleConnected ()V
- public fun handleDisconnected ()V
- public fun rssiDidUpdate (I)V
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceImpl$Companion {
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceInfo {
- public abstract fun distance (D)D
- public abstract fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public abstract fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public abstract fun getName ()Ljava/lang/String;
- public abstract fun getRssi ()I
- public abstract fun getUpdatedAt ()Lcom/splendo/kaluga/base/utils/KalugaDate;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceInfo$DefaultImpls {
- public static fun distance (Lcom/splendo/kaluga/bluetooth/device/DeviceInfo;D)D
- public static synthetic fun distance$default (Lcom/splendo/kaluga/bluetooth/device/DeviceInfo;DILjava/lang/Object;)D
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceInfoImpl : com/splendo/kaluga/bluetooth/device/DeviceInfo {
- public fun (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public fun (Ljava/lang/String;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)V
- public final fun component1 ()Ljava/lang/String;
- public final fun component2 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun component3 ()I
- public final fun component4 ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public final fun copy (Ljava/lang/String;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;)Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;Ljava/lang/String;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/DeviceInfoImpl;
- public fun distance (D)D
- public fun equals (Ljava/lang/Object;)Z
- public fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public fun getName ()Ljava/lang/String;
- public fun getRssi ()I
- public fun getUpdatedAt ()Lcom/splendo/kaluga/base/utils/KalugaDate;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceInfoJVM {
- public static final fun getStringValue (Lcom/splendo/kaluga/bluetooth/UUID;)Ljava/lang/String;
- public static final fun identifierFromString (Ljava/lang/String;)Lcom/splendo/kaluga/bluetooth/UUID;
- public static final fun randomIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/DeviceInfoKt {
- public static final fun getSerializable (Lcom/splendo/kaluga/bluetooth/UUID;)Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceState {
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/DeviceWrapper {
- public abstract fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public abstract fun getName ()Ljava/lang/String;
-}
-
-public class com/splendo/kaluga/bluetooth/device/IdentifierSerializer : kotlinx/serialization/KSerializer {
- public fun ()V
- public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;
- public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
- public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
- public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;)V
- public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/device/NotConnectableDeviceState : com/splendo/kaluga/bluetooth/device/DeviceState {
-}
-
-public final class com/splendo/kaluga/bluetooth/device/SerializableIdentifier {
- public static final field Companion Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier$Companion;
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;)Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;Lcom/splendo/kaluga/bluetooth/UUID;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/device/SerializableIdentifier;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/device/SerializableIdentifier$Companion {
- public final fun serializer ()Lkotlinx/serialization/KSerializer;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/scanner/BaseScanner : com/splendo/kaluga/bluetooth/scanner/Scanner, kotlinx/coroutines/CoroutineScope {
- public static final field Companion Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Companion;
- public fun (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun cancelRetrievingPairedDevices ()V
- protected abstract fun didStartScanning (Ljava/util/Set;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun didStopScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun generateEnableSensorsActions ()Ljava/util/List;
- protected abstract fun getBluetoothEnabledMonitor ()Lcom/splendo/kaluga/bluetooth/BluetoothMonitor;
- protected final fun getBluetoothPermissionRepo ()Lcom/splendo/kaluga/base/state/StateRepo;
- public fun getConnectionEvents ()Lkotlinx/coroutines/flow/Flow;
- public fun getCoroutineContext ()Lkotlin/coroutines/CoroutineContext;
- protected final fun getDeviceBuilder (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lcom/splendo/kaluga/bluetooth/device/DeviceConnectionManager$Builder;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlin/jvm/functions/Function1;
- public fun getDiscoveryEvents ()Lkotlinx/coroutines/flow/Flow;
- protected fun getEnabledFlow ()Lkotlinx/coroutines/flow/Flow;
- protected final fun getEventChannel ()Lkotlinx/coroutines/channels/Channel;
- public fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- protected fun getPermissionsFlow ()Lkotlinx/coroutines/flow/Flow;
- protected fun handleDeviceDiscovered (Lcom/splendo/kaluga/bluetooth/device/DeviceWrapper;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function1;)V
- public fun isHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun requestEnableHardware (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- protected abstract fun retrievePairedDeviceDiscoveredEvents (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun retrievePairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public final fun scanForDevices (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun startMonitoringHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun startMonitoringPermissions (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun stopMonitoringHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public fun stopMonitoringPermissions (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public final fun stopScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder {
- public abstract fun create (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder$DefaultImpls {
- public static synthetic fun create$default (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder;Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Companion {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings {
- public fun (Lcom/splendo/kaluga/permissions/base/Permissions;ZZZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lcom/splendo/kaluga/logging/Logger;)V
- public synthetic fun (Lcom/splendo/kaluga/permissions/base/Permissions;ZZZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lcom/splendo/kaluga/logging/Logger;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public final fun component1 ()Lcom/splendo/kaluga/permissions/base/Permissions;
- public final fun component2 ()Z
- public final fun component3 ()Z
- public final fun component4 ()Z
- public final fun component5 ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;
- public final fun component6 ()Lcom/splendo/kaluga/logging/Logger;
- public final fun copy (Lcom/splendo/kaluga/permissions/base/Permissions;ZZZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lcom/splendo/kaluga/logging/Logger;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lcom/splendo/kaluga/permissions/base/Permissions;ZZZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lcom/splendo/kaluga/logging/Logger;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getAutoEnableSensors ()Z
- public final fun getAutoRequestPermission ()Z
- public final fun getDefaultConnectionSettings ()Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;
- public final fun getDiscoverBondedDevices ()Z
- public final fun getLogger ()Lcom/splendo/kaluga/logging/Logger;
- public final fun getPermissions ()Lcom/splendo/kaluga/permissions/base/Permissions;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/scanner/BaseScanningStateRepo : com/splendo/kaluga/base/state/ColdStateFlowRepo {
- public fun (Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function3;Lkotlin/coroutines/CoroutineContext;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/DefaultDevices : com/splendo/kaluga/bluetooth/scanner/ScanningState$Devices {
- public fun (Ljava/util/Map;Ljava/util/Map;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;)V
- public fun (Ljava/util/Set;)V
- public final fun component1 ()Ljava/util/Map;
- public final fun component2 ()Ljava/util/Map;
- public final fun component3 ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public final fun copy (Ljava/util/Map;Ljava/util/Map;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;)Lcom/splendo/kaluga/bluetooth/scanner/DefaultDevices;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/DefaultDevices;Ljava/util/Map;Ljava/util/Map;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/DefaultDevices;
- public fun copyAndAddScanned (Lcom/splendo/kaluga/bluetooth/UUID;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public fun copyAndSetPaired (Ljava/util/Map;Ljava/util/Set;Z)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public fun devicesForCurrentScanFilter ()Ljava/util/List;
- public fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
- public fun equals (Ljava/lang/Object;)Z
- public fun getAllDevices ()Ljava/util/Map;
- public fun getCurrentScanFilter ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public fun getIdentifiersForCurrentScanFilter ()Ljava/util/Set;
- public fun getIdentifiersFoundForDeviceDiscoveryMode ()Ljava/util/Map;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
- public fun updateScanFilter (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/DefaultScanner : com/splendo/kaluga/bluetooth/scanner/BaseScanner {
- public fun (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;)V
- public synthetic fun (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
- public fun isSupported ()Z
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/DefaultScanner$Builder : com/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder {
- public fun ()V
- public fun create (Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Settings;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/CoroutineDispatcher;)Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/Scanner {
- public abstract fun cancelRetrievingPairedDevices ()V
- public abstract fun getConnectionEvents ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun getDiscoveryEvents ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun getEvents ()Lkotlinx/coroutines/flow/Flow;
- public abstract fun isHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun isSupported ()Z
- public abstract fun requestEnableHardware (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun retrievePairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun scanForDevices (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun startMonitoringHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun startMonitoringPermissions (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun stopMonitoringHardwareEnabled (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun stopMonitoringPermissions (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun stopScanning (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceConnected : com/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent {
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceConnected;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceConnected;Lcom/splendo/kaluga/bluetooth/UUID;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceConnected;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceDisconnected : com/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent {
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceDisconnected;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceDisconnected;Lcom/splendo/kaluga/bluetooth/UUID;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$ConnectionEvent$DeviceDisconnected;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$DeviceDiscovered {
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function1;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun component2 ()I
- public final fun component3 ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public final fun component4 ()Lkotlin/jvm/functions/Function1;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function1;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$DeviceDiscovered;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/Scanner$DeviceDiscovered;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$DeviceDiscovered;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public final fun getDeviceCreator ()Lkotlin/jvm/functions/Function1;
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun getRssi ()I
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$Event$BluetoothDisabled : com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$BluetoothDisabled;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$Event$BluetoothEnabled : com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$BluetoothEnabled;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$Event$FailedScanning : com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
- public static final field INSTANCE Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$FailedScanning;
- public fun equals (Ljava/lang/Object;)Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$Event$PairedDevicesRetrieved : com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
- public fun (Ljava/util/List;Ljava/util/Set;Z)V
- public final fun component1 ()Ljava/util/List;
- public final fun component2 ()Ljava/util/Set;
- public final fun component3 ()Z
- public final fun copy (Ljava/util/List;Ljava/util/Set;Z)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PairedDevicesRetrieved;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PairedDevicesRetrieved;Ljava/util/List;Ljava/util/Set;ZILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PairedDevicesRetrieved;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getDeviceCreators ()Ljava/util/List;
- public final fun getDevices ()Ljava/util/List;
- public final fun getFilter ()Ljava/util/Set;
- public final fun getIdentifiers ()Ljava/util/List;
- public final fun getRemoveForAllPairedFilters ()Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/Scanner$Event$PermissionChanged : com/splendo/kaluga/bluetooth/scanner/Scanner$Event {
- public fun (Z)V
- public final fun component1 ()Z
- public final fun copy (Z)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PermissionChanged;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PermissionChanged;ZILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/Scanner$Event$PermissionChanged;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getHasPermission ()Z
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState : com/splendo/kaluga/base/state/KalugaState {
- public abstract fun getNothingFound ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Active : com/splendo/kaluga/bluetooth/scanner/ScanningState {
- public abstract fun getDeinitialize ()Lkotlin/jvm/functions/Function1;
- public abstract fun getDevices ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Active$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Active;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive {
- public abstract fun getPreviousDevices ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public abstract fun getReinitialize ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Deinitialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract class com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode {
- public abstract fun getFilter ()Ljava/util/Set;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Paired : com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode {
- public fun (Ljava/util/Set;)V
- public final fun component1 ()Ljava/util/Set;
- public final fun copy (Ljava/util/Set;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Paired;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Paired;Ljava/util/Set;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Paired;
- public fun equals (Ljava/lang/Object;)Z
- public fun getFilter ()Ljava/util/Set;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning : com/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode {
- public fun (Ljava/util/Set;)V
- public final fun component1 ()Ljava/util/Set;
- public final fun copy (Ljava/util/Set;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;Ljava/util/Set;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public fun equals (Ljava/lang/Object;)Z
- public fun getFilter ()Ljava/util/Set;
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Devices {
- public abstract fun copyAndAddScanned (Lcom/splendo/kaluga/bluetooth/UUID;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public abstract fun copyAndSetPaired (Ljava/util/Map;Ljava/util/Set;Z)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
- public abstract fun devicesForCurrentScanFilter ()Ljava/util/List;
- public abstract fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
- public abstract fun getAllDevices ()Ljava/util/Map;
- public abstract fun getCurrentScanFilter ()Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode$Scanning;
- public abstract fun getIdentifiersForCurrentScanFilter ()Ljava/util/Set;
- public abstract fun getIdentifiersFoundForDeviceDiscoveryMode ()Ljava/util/Map;
- public abstract fun updateScanFilter (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Devices$DefaultImpls {
- public static fun devicesForCurrentScanFilter (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;)Ljava/util/List;
- public static fun devicesForDiscoveryMode (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$DeviceDiscoveryMode;)Ljava/util/List;
- public static fun getIdentifiersForCurrentScanFilter (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Devices;)Ljava/util/Set;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled : com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted {
- public abstract fun getDisable ()Lkotlin/jvm/functions/Function1;
- public abstract fun pairedDevices (Ljava/util/Map;Ljava/util/Set;Z)Lkotlin/jvm/functions/Function1;
- public abstract fun retrievePairedDevices (Ljava/util/Set;ZLcom/splendo/kaluga/bluetooth/device/ConnectionSettings;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle : com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled {
- public abstract fun refresh (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lkotlin/jvm/functions/Function1;
- public abstract fun startScanning (Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle$DefaultImpls {
- public static synthetic fun refresh$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;)Lkotlin/jvm/functions/Function1;
- public static synthetic fun startScanning$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Idle;Ljava/util/Set;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;Lcom/splendo/kaluga/bluetooth/device/ConnectionSettings;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning : com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled {
- public abstract fun discoverDevices (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
- public abstract fun stopScanning (Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning;)Lkotlin/jvm/functions/Function1;
- public static synthetic fun stopScanning$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning;Lcom/splendo/kaluga/bluetooth/BluetoothService$CleanMode;ILjava/lang/Object;)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DiscoveredDevice {
- public fun (Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function0;)V
- public final fun component1 ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun component2 ()I
- public final fun component3 ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public final fun component4 ()Lkotlin/jvm/functions/Function0;
- public final fun copy (Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function0;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DiscoveredDevice;
- public static synthetic fun copy$default (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DiscoveredDevice;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning$DiscoveredDevice;
- public fun equals (Ljava/lang/Object;)Z
- public final fun getAdvertisementData ()Lcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;
- public final fun getDeviceCreator ()Lkotlin/jvm/functions/Function0;
- public final fun getIdentifier ()Lcom/splendo/kaluga/bluetooth/UUID;
- public final fun getRssi ()I
- public fun hashCode ()I
- public fun toString ()Ljava/lang/String;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/bluetooth/scanner/ScanningState {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Active {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing : com/splendo/kaluga/base/flow/SpecialFlowValue$NotImportant, com/splendo/kaluga/bluetooth/scanner/ScanningState$Active {
- public abstract fun initialized (ZZ)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Initializing;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth : com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled : com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth, com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted {
- public abstract fun getEnable ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$Disabled;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions : com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth {
- public abstract fun permit (Z)Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoBluetooth$MissingPermissions;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware : com/splendo/kaluga/bluetooth/scanner/ScanningState {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NoHardware;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized : com/splendo/kaluga/bluetooth/scanner/ScanningState$Inactive {
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$NotInitialized;)Lkotlin/jvm/functions/Function1;
-}
-
-public abstract interface class com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted : com/splendo/kaluga/bluetooth/scanner/ScanningState$Initialized {
- public abstract fun getRevokePermission ()Lkotlin/jvm/functions/Function1;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted$DefaultImpls {
- public static fun remain (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Permitted;)Lkotlin/jvm/functions/Function1;
-}
-
-public class com/splendo/kaluga/bluetooth/scanner/ScanningStateImplRepo : com/splendo/kaluga/bluetooth/scanner/BaseScanningStateRepo {
- public fun (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)V
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningStateKt {
- public static final fun discoverDevice (Lcom/splendo/kaluga/bluetooth/scanner/ScanningState$Enabled$Scanning;Lcom/splendo/kaluga/bluetooth/UUID;ILcom/splendo/kaluga/bluetooth/device/BaseAdvertisementData;Lkotlin/jvm/functions/Function0;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
-}
-
-public final class com/splendo/kaluga/bluetooth/scanner/ScanningStateRepo : com/splendo/kaluga/bluetooth/scanner/ScanningStateImplRepo {
- public fun (Lkotlin/jvm/functions/Function2;Lcom/splendo/kaluga/bluetooth/scanner/BaseScanner$Builder;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/CoroutineContext;)V
-}
-
diff --git a/bluetooth/build.gradle.kts b/bluetooth/build.gradle.kts
index d603f96d1..a1cbb0b31 100644
--- a/bluetooth/build.gradle.kts
+++ b/bluetooth/build.gradle.kts
@@ -1,33 +1,26 @@
plugins {
- kotlin("multiplatform")
- kotlin("plugin.serialization")
- id("jacoco")
- id("convention.publication")
- id("com.android.library")
- id("org.jetbrains.dokka")
- id("org.jmailen.kotlinter")
- id("kotlinx-atomicfu")
+ id("com.splendo.kaluga.plugin")
+ id(libs.plugins.kotlinx.atomicfu.get().pluginId)
+ alias(libs.plugins.kotlin.serialization)
}
-publishableComponent("bluetooth")
-
-dependencies {
- implementationDependency(Dependencies.BLEScanner)
- implementation(project(":location", ""))
- implementationDependency(Dependencies.KotlinX.AtomicFu)
-}
-
-kotlin {
- sourceSets {
- commonMain {
- dependencies {
+kaluga {
+ moduleName = "bluetooth"
+ dependencies {
+ android {
+ main {
+ implementation(libs.nordic.support.scanner)
+ implementation(project(":location", ""))
+ implementation(libs.kotlinx.atomicfu)
+ }
+ }
+ common {
+ main {
implementation(project(":service"))
api(project(":bluetooth-permissions", ""))
- apiDependency(Dependencies.KotlinX.Serialization.Core)
+ api(libs.kotlinx.serialization.core)
}
- }
- commonTest {
- dependencies {
+ test {
implementation(project(":test-utils-bluetooth", ""))
}
}
diff --git a/bluetooth/src/androidLibMain/kotlin/BluetoothBuilder.kt b/bluetooth/src/androidLibMain/kotlin/BluetoothBuilder.kt
index bcef98d51..5e46494d0 100644
--- a/bluetooth/src/androidLibMain/kotlin/BluetoothBuilder.kt
+++ b/bluetooth/src/androidLibMain/kotlin/BluetoothBuilder.kt
@@ -32,7 +32,7 @@ actual class BluetoothBuilder(
private val scannerBuilder: BaseScanner.Builder = DefaultScanner.Builder(applicationContext = applicationContext),
) : BaseBluetoothBuilder {
- override fun create(scannerSettingsBuilder: (Permissions) -> BaseScanner.Settings, coroutineContext: CoroutineContext): Bluetooth = Bluetooth(
+ actual override fun create(scannerSettingsBuilder: (Permissions) -> BaseScanner.Settings, coroutineContext: CoroutineContext): Bluetooth = Bluetooth(
{ scannerContext ->
scannerSettingsBuilder(permissionsBuilder(scannerContext))
},
diff --git a/bluetooth/src/androidLibMain/kotlin/device/AdvertisementData.kt b/bluetooth/src/androidLibMain/kotlin/device/AdvertisementData.kt
index 0f648ea6e..c5a1f02e8 100644
--- a/bluetooth/src/androidLibMain/kotlin/device/AdvertisementData.kt
+++ b/bluetooth/src/androidLibMain/kotlin/device/AdvertisementData.kt
@@ -31,23 +31,23 @@ actual class AdvertisementData(private val scanResult: ScanResult?) : BaseAdvert
private val scanRecord = scanResult?.scanRecord
- override val name: String?
+ actual override val name: String?
get() = scanRecord?.deviceName
- override val manufacturerId: Int?
+ actual override val manufacturerId: Int?
get() = scanRecord?.manufacturerSpecificData?.let { if (it.size() > 0) it.keyAt(0) else null }
- override val manufacturerData: ByteArray?
+ actual override val manufacturerData: ByteArray?
get() = scanRecord?.manufacturerSpecificData?.let { manufacturerSpecificData ->
manufacturerId?.let { key ->
val keyBytes = ByteBuffer.allocate(2).order(ByteOrder.LITTLE_ENDIAN).putShort(key.toShort()).array()
byteArrayOf(*keyBytes, *manufacturerSpecificData[key])
}
}
- override val serviceUUIDs: List
+ actual override val serviceUUIDs: List
get() = scanRecord?.serviceUuids?.map { it.uuid } ?: emptyList()
- override val serviceData: Map
+ actual override val serviceData: Map
get() = scanRecord?.serviceData?.mapKeys { it.key.uuid } ?: emptyMap()
- override val txPowerLevel: TxPower
+ actual override val txPowerLevel: TxPower
get() = scanRecord?.txPowerLevel ?: Int.MIN_VALUE
- override val isConnectable: Boolean
+ actual override val isConnectable: Boolean
get() = scanResult?.isConnectable == true
}
diff --git a/bluetooth/src/androidLibMain/kotlin/device/DefaultDeviceConnectionManager.kt b/bluetooth/src/androidLibMain/kotlin/device/DefaultDeviceConnectionManager.kt
index 358702641..60c4ddf34 100644
--- a/bluetooth/src/androidLibMain/kotlin/device/DefaultDeviceConnectionManager.kt
+++ b/bluetooth/src/androidLibMain/kotlin/device/DefaultDeviceConnectionManager.kt
@@ -74,7 +74,7 @@ internal actual class DefaultDeviceConnectionManager(
}
}
- @Deprecated("Deprecated in Java")
+ @Suppress("OVERRIDE_DEPRECATION")
override fun onCharacteristicRead(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?, status: Int) {
characteristic ?: return
@Suppress("DEPRECATION")
@@ -96,7 +96,7 @@ internal actual class DefaultDeviceConnectionManager(
}
}
- @Deprecated("Deprecated in Java")
+ @Suppress("OVERRIDE_DEPRECATION")
override fun onCharacteristicChanged(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?) {
characteristic ?: return
@Suppress("DEPRECATION")
@@ -106,7 +106,7 @@ internal actual class DefaultDeviceConnectionManager(
override fun onCharacteristicChanged(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, value: ByteArray) =
updateCharacteristic(characteristic, value, status = GATT_SUCCESS)
- @Deprecated("Deprecated in Java")
+ @Suppress("OVERRIDE_DEPRECATION")
override fun onDescriptorRead(gatt: BluetoothGatt?, descriptor: BluetoothGattDescriptor?, status: Int) {
descriptor ?: return
@Suppress("DEPRECATION")
@@ -143,7 +143,7 @@ internal actual class DefaultDeviceConnectionManager(
}
private var lastKnownState = BluetoothProfile.STATE_DISCONNECTED
- override fun getCurrentState(): DeviceConnectionManager.State = when (lastKnownState) {
+ actual override fun getCurrentState(): DeviceConnectionManager.State = when (lastKnownState) {
BluetoothProfile.STATE_CONNECTED -> DeviceConnectionManager.State.CONNECTED
BluetoothProfile.STATE_CONNECTING -> DeviceConnectionManager.State.CONNECTING
BluetoothProfile.STATE_DISCONNECTED -> DeviceConnectionManager.State.DISCONNECTED
@@ -152,7 +152,7 @@ internal actual class DefaultDeviceConnectionManager(
}
@SuppressLint("MissingPermission")
- override fun connect() {
+ actual override fun connect() {
when {
!gatt.isCompleted -> gatt.complete(deviceWrapper.connectGatt(context, false, callback))
lastKnownState == BluetoothProfile.STATE_CONNECTED -> handleConnect()
@@ -161,11 +161,11 @@ internal actual class DefaultDeviceConnectionManager(
}
}
- override suspend fun discoverServices() {
+ actual override suspend fun discoverServices() {
gatt.await().discoverServices()
}
- override fun disconnect() {
+ actual override fun disconnect() {
val gatt = gatt.getCompletedOrNull()
if (gatt != null && lastKnownState != BluetoothProfile.STATE_DISCONNECTED) {
gatt.disconnect()
@@ -185,11 +185,11 @@ internal actual class DefaultDeviceConnectionManager(
gatt.await().readRemoteRssi()
}
- override suspend fun requestMtu(mtu: MTU): Boolean {
+ actual override suspend fun requestMtu(mtu: MTU): Boolean {
return gatt.await().requestMtu(mtu)
}
- override suspend fun didStartPerformingAction(action: DeviceAction) {
+ actual override suspend fun didStartPerformingAction(action: DeviceAction) {
currentAction = action
val succeeded = when (action) {
is DeviceAction.Read.Characteristic -> gatt.await().readCharacteristic(action.characteristic.wrapper)
@@ -207,14 +207,14 @@ internal actual class DefaultDeviceConnectionManager(
}
@SuppressLint("MissingPermission")
- override suspend fun requestStartPairing() {
+ actual override suspend fun requestStartPairing() {
if (deviceWrapper.bondState == DeviceWrapper.BondState.NONE) {
deviceWrapper.createBond()
}
}
@SuppressLint("MissingPermission")
- override suspend fun requestStartUnpairing() {
+ actual override suspend fun requestStartUnpairing() {
if (deviceWrapper.bondState != DeviceWrapper.BondState.NONE) {
deviceWrapper.removeBond()
}
diff --git a/bluetooth/src/androidLibMain/kotlin/scanner/Scanner.kt b/bluetooth/src/androidLibMain/kotlin/scanner/Scanner.kt
index b7215822a..5fb03cca7 100644
--- a/bluetooth/src/androidLibMain/kotlin/scanner/Scanner.kt
+++ b/bluetooth/src/androidLibMain/kotlin/scanner/Scanner.kt
@@ -148,9 +148,9 @@ actual class DefaultScanner internal constructor(
private val locationPermissionRepo get() = permissions[locationPermission]
- override val isSupported: Boolean = bluetoothAdapter != null
+ actual override val isSupported: Boolean = bluetoothAdapter != null
private val deviceConnectionManagerBuilder = DefaultDeviceConnectionManager.Builder(applicationContext)
- override val bluetoothEnabledMonitor: BluetoothMonitor? = bluetoothAdapter?.let { BluetoothMonitor.Builder(applicationContext, it).create() }
+ actual override val bluetoothEnabledMonitor: BluetoothMonitor? = bluetoothAdapter?.let { BluetoothMonitor.Builder(applicationContext, it).create() }
private val locationEnabledMonitor = LocationMonitor.Builder(applicationContext).create()
override val permissionsFlow: Flow>> get() = combine(
@@ -166,7 +166,7 @@ actual class DefaultScanner internal constructor(
listOf(bluetoothEnabled, locationEnabled)
}
- override suspend fun didStartScanning(filter: Filter) {
+ actual override suspend fun didStartScanning(filter: Filter) {
bluetoothScanner.startScan(
filter.map {
ScanFilter.Builder().setServiceUuid(ParcelUuid(it)).build()
@@ -176,7 +176,7 @@ actual class DefaultScanner internal constructor(
)
}
- override suspend fun didStopScanning() {
+ actual override suspend fun didStopScanning() {
bluetoothScanner.stopScan(callback)
}
@@ -193,7 +193,7 @@ actual class DefaultScanner internal constructor(
override suspend fun isHardwareEnabled(): Boolean = super.isHardwareEnabled() && locationEnabledMonitor.isServiceEnabled
@SuppressLint("MissingPermission") // Lint complains even with permissions
- override fun generateEnableSensorsActions(): List {
+ actual override fun generateEnableSensorsActions(): List {
if (!isSupported) return emptyList()
return listOfNotNull(
if (bluetoothAdapter?.isEnabled != true) {
@@ -226,7 +226,7 @@ actual class DefaultScanner internal constructor(
}
@SuppressLint("MissingPermission") // Lint complains even with permissions
- override suspend fun retrievePairedDeviceDiscoveredEvents(
+ actual override suspend fun retrievePairedDeviceDiscoveredEvents(
withServices: Filter,
connectionSettings: ConnectionSettings?,
): List {
diff --git a/bluetooth/src/commonMain/kotlin/Bluetooth.kt b/bluetooth/src/commonMain/kotlin/Bluetooth.kt
index 5fbf85022..98f29a187 100644
--- a/bluetooth/src/commonMain/kotlin/Bluetooth.kt
+++ b/bluetooth/src/commonMain/kotlin/Bluetooth.kt
@@ -324,7 +324,9 @@ interface BaseBluetoothBuilder {
/**
* A default implementation of [BaseBluetoothBuilder]
*/
-expect class BluetoothBuilder : BaseBluetoothBuilder
+expect class BluetoothBuilder : BaseBluetoothBuilder {
+ override fun create(scannerSettingsBuilder: (Permissions) -> BaseScanner.Settings, coroutineContext: CoroutineContext): Bluetooth
+}
/**
* Gets a ([Flow] of) [Device] with a given [Identifier] from a [Flow] of a list of [Device].
diff --git a/bluetooth/src/commonMain/kotlin/device/AdvertisementData.kt b/bluetooth/src/commonMain/kotlin/device/AdvertisementData.kt
index b414b8ce4..3fb230f59 100644
--- a/bluetooth/src/commonMain/kotlin/device/AdvertisementData.kt
+++ b/bluetooth/src/commonMain/kotlin/device/AdvertisementData.kt
@@ -64,7 +64,15 @@ interface BaseAdvertisementData {
/**
* Platform specific implementation of [BaseAdvertisementData]
*/
-expect class AdvertisementData : BaseAdvertisementData
+expect class AdvertisementData : BaseAdvertisementData {
+ override val name: String?
+ override val manufacturerId: Int?
+ override val manufacturerData: ByteArray?
+ override val serviceUUIDs: List
+ override val serviceData: Map
+ override val txPowerLevel: TxPower
+ override val isConnectable: Boolean
+}
val BaseAdvertisementData.description: String get() = listOfNotNull(
name?.let { "Name: $it" },
diff --git a/bluetooth/src/commonMain/kotlin/device/DefaultDeviceConnectionManager.kt b/bluetooth/src/commonMain/kotlin/device/DefaultDeviceConnectionManager.kt
index 630cd6661..6905241b1 100644
--- a/bluetooth/src/commonMain/kotlin/device/DefaultDeviceConnectionManager.kt
+++ b/bluetooth/src/commonMain/kotlin/device/DefaultDeviceConnectionManager.kt
@@ -436,4 +436,13 @@ abstract class BaseDeviceConnectionManager(
}
}
-internal expect class DefaultDeviceConnectionManager : BaseDeviceConnectionManager
+internal expect class DefaultDeviceConnectionManager : BaseDeviceConnectionManager {
+ override fun connect()
+ override fun disconnect()
+ override fun getCurrentState(): DeviceConnectionManager.State
+ override suspend fun discoverServices()
+ override suspend fun didStartPerformingAction(action: DeviceAction)
+ override suspend fun requestStartPairing()
+ override suspend fun requestMtu(mtu: MTU): Boolean
+ override suspend fun requestStartUnpairing()
+}
diff --git a/bluetooth/src/commonMain/kotlin/scanner/Scanner.kt b/bluetooth/src/commonMain/kotlin/scanner/Scanner.kt
index d903cb08e..d9bea6ad7 100644
--- a/bluetooth/src/commonMain/kotlin/scanner/Scanner.kt
+++ b/bluetooth/src/commonMain/kotlin/scanner/Scanner.kt
@@ -551,4 +551,12 @@ abstract class BaseScanner constructor(
/**
* A default implementation of [BaseScanner]
*/
-expect class DefaultScanner : BaseScanner
+expect class DefaultScanner : BaseScanner {
+ override val isSupported: Boolean
+ override val bluetoothEnabledMonitor: BluetoothMonitor?
+
+ override suspend fun didStartScanning(filter: Filter)
+ override suspend fun didStopScanning()
+ override fun generateEnableSensorsActions(): List
+ override suspend fun retrievePairedDeviceDiscoveredEvents(withServices: Filter, connectionSettings: ConnectionSettings?): List
+}
diff --git a/bluetooth/src/iosMain/kotlin/BluetoothBuilder.kt b/bluetooth/src/iosMain/kotlin/BluetoothBuilder.kt
index c123b6900..3c82b3e4d 100644
--- a/bluetooth/src/iosMain/kotlin/BluetoothBuilder.kt
+++ b/bluetooth/src/iosMain/kotlin/BluetoothBuilder.kt
@@ -28,7 +28,7 @@ actual class BluetoothBuilder(
private val scannerBuilder: DefaultScanner.Builder = DefaultScanner.Builder(),
) : BaseBluetoothBuilder {
- override fun create(scannerSettingsBuilder: (Permissions) -> BaseScanner.Settings, coroutineContext: CoroutineContext): Bluetooth = Bluetooth(
+ actual override fun create(scannerSettingsBuilder: (Permissions) -> BaseScanner.Settings, coroutineContext: CoroutineContext): Bluetooth = Bluetooth(
{ scannerContext ->
scannerSettingsBuilder(permissionsBuilder(scannerContext))
},
diff --git a/bluetooth/src/iosMain/kotlin/device/AdvertisementData.kt b/bluetooth/src/iosMain/kotlin/device/AdvertisementData.kt
index cd228c076..fb409bc03 100644
--- a/bluetooth/src/iosMain/kotlin/device/AdvertisementData.kt
+++ b/bluetooth/src/iosMain/kotlin/device/AdvertisementData.kt
@@ -38,9 +38,9 @@ import platform.Foundation.NSNumber
*/
actual class AdvertisementData(private val advertisementData: Map) : BaseAdvertisementData {
- override val name: String?
+ actual override val name: String?
get() = advertisementData[CBAdvertisementDataLocalNameKey] as? String
- override val manufacturerId: Int?
+ actual override val manufacturerId: Int?
get() = manufacturerData?.let { manufacturerDataArray ->
if (manufacturerDataArray.size >= 2) {
(manufacturerDataArray[0].toUInt() + (manufacturerDataArray[1].toUInt() shl 8)).toInt()
@@ -48,13 +48,13 @@ actual class AdvertisementData(private val advertisementData: Map)
null
}
}
- override val manufacturerData: ByteArray? get() = (advertisementData[CBAdvertisementDataManufacturerDataKey] as? NSData)?.toByteArray()
- override val serviceUUIDs: List get() = (advertisementData[CBAdvertisementDataServiceUUIDsKey] as? List<*>)?.typedList() ?: emptyList()
- override val serviceData: Map get() = (advertisementData[CBAdvertisementDataServiceDataKey] as? Map<*, *>)
+ actual override val manufacturerData: ByteArray? get() = (advertisementData[CBAdvertisementDataManufacturerDataKey] as? NSData)?.toByteArray()
+ actual override val serviceUUIDs: List get() = (advertisementData[CBAdvertisementDataServiceUUIDsKey] as? List<*>)?.typedList() ?: emptyList()
+ actual override val serviceData: Map get() = (advertisementData[CBAdvertisementDataServiceDataKey] as? Map<*, *>)
?.typedMap()
?.mapNotNull { Pair(it.key, it.value.toByteArray()) }
?.toMap() ?: emptyMap()
- override val txPowerLevel: TxPower get() = (advertisementData[CBAdvertisementDataTxPowerLevelKey] as? NSNumber)?.intValue ?: Int.MIN_VALUE
+ actual override val txPowerLevel: TxPower get() = (advertisementData[CBAdvertisementDataTxPowerLevelKey] as? NSNumber)?.intValue ?: Int.MIN_VALUE
- override val isConnectable: Boolean get() = ((advertisementData[CBAdvertisementDataIsConnectable] as? NSNumber)?.boolValue ?: false)
+ actual override val isConnectable: Boolean get() = ((advertisementData[CBAdvertisementDataIsConnectable] as? NSNumber)?.boolValue ?: false)
}
diff --git a/bluetooth/src/iosMain/kotlin/device/DefaultDeviceConnectionManager.kt b/bluetooth/src/iosMain/kotlin/device/DefaultDeviceConnectionManager.kt
index 43e8e63ad..f67d510fb 100644
--- a/bluetooth/src/iosMain/kotlin/device/DefaultDeviceConnectionManager.kt
+++ b/bluetooth/src/iosMain/kotlin/device/DefaultDeviceConnectionManager.kt
@@ -23,6 +23,7 @@ import com.splendo.kaluga.bluetooth.DefaultServiceWrapper
import com.splendo.kaluga.bluetooth.MTU
import com.splendo.kaluga.bluetooth.uuidString
import com.splendo.kaluga.logging.debug
+import kotlinx.cinterop.ObjCSignatureOverride
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
@@ -71,13 +72,14 @@ internal actual class DefaultDeviceConnectionManager(
private val discoveringServices = mutableListOf()
private val discoveringCharacteristics = mutableListOf()
- @Suppress("CONFLICTING_OVERLOADS")
private val peripheralDelegate = object : NSObject(), CBPeripheralDelegateProtocol {
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didDiscoverDescriptorsForCharacteristic: CBCharacteristic, error: NSError?) {
didDiscoverDescriptors(didDiscoverDescriptorsForCharacteristic)
}
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didUpdateNotificationStateForCharacteristic: CBCharacteristic, error: NSError?) {
val action = currentAction
if (action is DeviceAction.Notification && action.characteristic.wrapper.uuid == didUpdateNotificationStateForCharacteristic.UUID) {
@@ -87,18 +89,22 @@ internal actual class DefaultDeviceConnectionManager(
}
}
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didUpdateValueForCharacteristic: CBCharacteristic, error: NSError?) {
updateCharacteristic(didUpdateValueForCharacteristic, error)
}
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didWriteValueForCharacteristic: CBCharacteristic, error: NSError?) {
updateCharacteristic(didWriteValueForCharacteristic, error)
}
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didUpdateValueForDescriptor: CBDescriptor, error: NSError?) {
updateDescriptor(didUpdateValueForDescriptor, error)
}
+ @ObjCSignatureOverride
override fun peripheral(peripheral: CBPeripheral, didWriteValueForDescriptor: CBDescriptor, error: NSError?) {
updateDescriptor(didWriteValueForDescriptor, error)
}
@@ -122,7 +128,7 @@ internal actual class DefaultDeviceConnectionManager(
peripheral.delegate = peripheralDelegate
}
- override fun getCurrentState(): DeviceConnectionManager.State = when (peripheral.state) {
+ actual override fun getCurrentState(): DeviceConnectionManager.State = when (peripheral.state) {
CBPeripheralStateConnected -> DeviceConnectionManager.State.CONNECTED
CBPeripheralStateConnecting -> DeviceConnectionManager.State.CONNECTING
CBPeripheralStateDisconnected -> DeviceConnectionManager.State.DISCONNECTED
@@ -130,11 +136,11 @@ internal actual class DefaultDeviceConnectionManager(
else -> DeviceConnectionManager.State.DISCONNECTED
}
- override fun connect() {
+ actual override fun connect() {
cbCentralManager.connectPeripheral(peripheral, null)
}
- override suspend fun discoverServices() {
+ actual override suspend fun discoverServices() {
discoveringMutex.withLock {
discoveringServices.clear()
discoveringCharacteristics.clear()
@@ -142,7 +148,7 @@ internal actual class DefaultDeviceConnectionManager(
}
}
- override fun disconnect() {
+ actual override fun disconnect() {
val state = getCurrentState()
cbCentralManager.cancelPeripheralConnection(peripheral)
if (state != DeviceConnectionManager.State.CONNECTED) {
@@ -154,7 +160,7 @@ internal actual class DefaultDeviceConnectionManager(
peripheral.readRSSI()
}
- override suspend fun requestMtu(mtu: MTU): Boolean {
+ actual override suspend fun requestMtu(mtu: MTU): Boolean {
val max = peripheral.maximumWriteValueLengthForType(CBCharacteristicWriteWithResponse)
debug(TAG) {
"maximumWriteValueLengthForType(CBCharacteristicWriteWithResponse) = $max"
@@ -165,7 +171,7 @@ internal actual class DefaultDeviceConnectionManager(
return false
}
- override suspend fun didStartPerformingAction(action: DeviceAction) {
+ actual override suspend fun didStartPerformingAction(action: DeviceAction) {
currentAction = action
when (action) {
is DeviceAction.Read.Characteristic -> action.characteristic.wrapper.readValue(peripheral)
@@ -189,11 +195,11 @@ internal actual class DefaultDeviceConnectionManager(
}
}
- override suspend fun requestStartPairing() {
+ actual override suspend fun requestStartPairing() {
// There is no iOS API to pair peripheral
}
- override suspend fun requestStartUnpairing() {
+ actual override suspend fun requestStartUnpairing() {
// There is no iOS API to unpair peripheral
}
diff --git a/bluetooth/src/iosMain/kotlin/scanner/Scanner.kt b/bluetooth/src/iosMain/kotlin/scanner/Scanner.kt
index 5de29b16f..ebba84a83 100644
--- a/bluetooth/src/iosMain/kotlin/scanner/Scanner.kt
+++ b/bluetooth/src/iosMain/kotlin/scanner/Scanner.kt
@@ -28,6 +28,7 @@ import com.splendo.kaluga.bluetooth.device.DefaultCBPeripheralWrapper
import com.splendo.kaluga.bluetooth.device.DefaultDeviceConnectionManager
import com.splendo.kaluga.bluetooth.device.PairedAdvertisementData
import com.splendo.kaluga.bluetooth.scanner.DefaultScanner.ScanSettings
+import kotlinx.cinterop.ObjCSignatureOverride
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.first
@@ -125,7 +126,6 @@ actual class DefaultScanner internal constructor(
}
}
- @Suppress("CONFLICTING_OVERLOADS")
private class PoweredOnCBCentralManagerDelegate(
private val scanner: DefaultScanner,
private val isEnabledCompleted: EmptyCompletableDeferred,
@@ -150,10 +150,12 @@ actual class DefaultScanner internal constructor(
scanner.handleDeviceConnected(didConnectPeripheral.identifier)
}
+ @ObjCSignatureOverride
override fun centralManager(central: CBCentralManager, didDisconnectPeripheral: CBPeripheral, error: NSError?) {
scanner.handleDeviceDisconnected(didDisconnectPeripheral.identifier)
}
+ @ObjCSignatureOverride
override fun centralManager(central: CBCentralManager, didFailToConnectPeripheral: CBPeripheral, error: NSError?) {
scanner.handleDeviceDisconnected(didFailToConnectPeripheral.identifier)
}
@@ -161,10 +163,11 @@ actual class DefaultScanner internal constructor(
private val enabledQueue = dispatch_queue_create("ScannerMonitorEnabled", null)
private val scanQueue = dispatch_queue_create("ScannerScanning", null)
- override val isSupported: Boolean = true
- override val bluetoothEnabledMonitor: BluetoothMonitor = BluetoothMonitor.Builder {
+ actual override val isSupported: Boolean = true
+ private val _bluetoothEnabledMonitor = BluetoothMonitor.Builder {
CBCentralManager(null, enabledQueue, emptyMap())
}.create()
+ actual override val bluetoothEnabledMonitor: BluetoothMonitor? = _bluetoothEnabledMonitor
private var centralManager: CBCentralManager? = null
private var centralManagerDelegate: CBCentralManagerDelegateProtocol? = null
@@ -195,23 +198,23 @@ actual class DefaultScanner internal constructor(
)
}
- override suspend fun didStartScanning(filter: Filter) {
+ actual override suspend fun didStartScanning(filter: Filter) {
scan(filter)
}
- override suspend fun didStopScanning() {
+ actual override suspend fun didStopScanning() {
getOrCreateCentralManager().stopScan()
}
- override fun generateEnableSensorsActions(): List {
+ actual override fun generateEnableSensorsActions(): List {
// Trigger Enable Bluetooth popup
return listOfNotNull(
- if (!bluetoothEnabledMonitor.isServiceEnabled) {
+ if (!_bluetoothEnabledMonitor.isServiceEnabled) {
suspend {
// We want it to ask for permissions when the state machine requests it but NOT if the scanning starts
val options = mapOf