From c9d0a49362bdefa66d90e821c11b94599ee16053 Mon Sep 17 00:00:00 2001 From: Gian <47775302+gpunto@users.noreply.github.com> Date: Thu, 30 Oct 2025 18:14:02 +0100 Subject: [PATCH 1/2] Configure Spotless through common convention plugins --- build.gradle.kts | 126 ++-------------------- config/license/generated/license-2024.txt | 15 --- config/license/generated/license-2025.txt | 15 --- config/license/license.template | 15 --- gradle/libs.versions.toml | 9 +- 5 files changed, 10 insertions(+), 170 deletions(-) delete mode 100644 config/license/generated/license-2024.txt delete mode 100644 config/license/generated/license-2025.txt delete mode 100644 config/license/license.template diff --git a/build.gradle.kts b/build.gradle.kts index c6ba6ee..e1fae5d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,13 +1,11 @@ import com.android.build.api.dsl.ApplicationExtension import com.android.build.api.dsl.LibraryExtension -import com.vanniktech.maven.publish.MavenPublishBaseExtension import io.getstream.core.Configuration -import java.io.FileNotFoundException -import java.util.Calendar apply(from = "${rootDir}/gradle/scripts/sonar.gradle") // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { + alias(libs.plugins.stream.project) alias(libs.plugins.stream.android.library) apply false alias(libs.plugins.stream.android.application) apply false alias(libs.plugins.stream.java.library) apply false @@ -20,18 +18,15 @@ plugins { alias(libs.plugins.maven.publish) alias(libs.plugins.dokka) apply false alias(libs.plugins.arturbosch.detekt) apply true - alias(libs.plugins.spotless) apply true alias(libs.plugins.sonarqube) apply true alias(libs.plugins.kover) apply true } -spotless { - kotlin { - val currentYear = Calendar.getInstance().get(Calendar.YEAR).toString() - target("**/*.kt") - targetExclude("**/build/**/*.kt") - ktfmt().kotlinlangStyle() - licenseHeaderFile(file("./config/license/generated/license-$currentYear.txt")) +streamProject { + repositoryName = "stream-core-android" + + spotless { + useKtfmt = true } } @@ -67,112 +62,3 @@ subprojects { } } } - -// License tasks -subprojects { - apply(from = "${rootDir}/gradle/scripts/coverage.gradle") - tasks.register("generateLicense") { - val currentYear = Calendar.getInstance().get(Calendar.YEAR).toString() - val licenseTemplate = file("../config/license/license.template") - val generatedLicense = file("../config/license/generated/license-$currentYear.txt") - val detektFile = file("../config/detekt/detekt.yml") - val projectName = project.findProperty("projectName")?.toString() ?: "stream-core-android" - - doLast { - if (licenseTemplate.exists()) { - // Generate license - val licenseContent = licenseTemplate.readText() - .replace("{currentYear}", currentYear) - .replace("{project}", projectName) - generatedLicense.writeText(licenseContent) - println("License file generated: ${generatedLicense.absolutePath}") - - // Update detekt.yml - - if (detektFile.exists()) { - val pattern = Regex("""licenseTemplateFile:\s*['"]\.\./license/generated/license-\d{4}\.txt['"]""") - val replacement = """licenseTemplateFile: '../license/generated/license-$currentYear.txt'""" - val detektContent = detektFile.readText().replace(pattern, replacement) - detektFile.writeText(detektContent) - - println("Detekt configuration updated: ${detektFile.absolutePath}") - } else { - throw FileNotFoundException("Detekt configuration file not found: ${detektFile.absolutePath}") - } - } else { - throw FileNotFoundException("Template file not found: ${licenseTemplate.absolutePath}") - } - } - } -} - -subprojects { - plugins.withId("com.vanniktech.maven.publish") { - extensions.configure { - publishToMavenCentral(automaticRelease = true) - - pom { - name.set("Stream Android Core") - description.set("Stream Core official Android SDK") - url.set("https://github.com/getstream/stream-core-android") - - licenses { - license { - name.set("Stream License") - url.set("https://github.com/GetStream/stream-core-android/blob/main/LICENSE") - } - } - - developers { - developer { - id = "aleksandar-apostolov" - name = "Aleksandar Apostolov" - email = "aleksandar.apostolov@getstream.io" - } - developer { - id = "VelikovPetar" - name = "Petar Velikov" - email = "petar.velikov@getstream.io" - } - developer { - id = "andremion" - name = "André Mion" - email = "andre.rego@getstream.io" - } - developer { - id = "rahul-lohra" - name = "Rahul Kumar Lohra" - email = "rahul.lohra@getstream.io" - } - developer { - id = "gpunto" - name = "Gianmarco David" - email = "gianmarco.david@getstream.io" - } - } - - scm { - connection.set("scm:git:github.com/getstream/stream-core-android.git") - developerConnection.set("scm:git:ssh://github.com/getstream/stream-core-android.git") - url.set("https://github.com/getstream/stream-core-android/tree/main") - } - } - } - } -} - -tasks.register("printAllArtifacts") { - group = "publishing" - description = "Prints all artifacts that will be published" - - doLast { - subprojects.forEach { subproject -> - subproject.plugins.withId("com.vanniktech.maven.publish") { - subproject.extensions.findByType(PublishingExtension::class.java) - ?.publications - ?.filterIsInstance() - ?.forEach { println("${it.groupId}:${it.artifactId}:${it.version}") } - } - } - } -} diff --git a/config/license/generated/license-2024.txt b/config/license/generated/license-2024.txt deleted file mode 100644 index b4bff6b..0000000 --- a/config/license/generated/license-2024.txt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. - * - * Licensed under the Stream License; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://github.com/GetStream/stream-android-base/blob/main/LICENSE - * - * 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. - */ diff --git a/config/license/generated/license-2025.txt b/config/license/generated/license-2025.txt deleted file mode 100644 index 3b4d4fb..0000000 --- a/config/license/generated/license-2025.txt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2014-2025 Stream.io Inc. All rights reserved. - * - * Licensed under the Stream License; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://github.com/GetStream/stream-core-android/blob/main/LICENSE - * - * 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. - */ diff --git a/config/license/license.template b/config/license/license.template deleted file mode 100644 index a633bfc..0000000 --- a/config/license/license.template +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2014-{currentYear} Stream.io Inc. All rights reserved. - * - * Licensed under the Stream License; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://github.com/GetStream/{project}/blob/main/LICENSE - * - * 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. - */ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 94ecf5e..9241a7e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,8 +25,7 @@ retrofit = "3.0.0" ksp = "2.2.0-2.0.2" robolectric = "4.15.1" detekt = "1.23.8" -spotless = "7.2.1" -streamConventions = "0.2.0" +streamConventions = "0.3.0" kover = "0.9.1" sonarqube = "6.0.1.5171" mavenPublish = "0.34.0" @@ -79,11 +78,11 @@ android-library = { id = "com.android.library", version.ref = "agp" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } arturbosch-detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } -spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } +stream-project = { id = "io.getstream.project", version.ref = "streamConventions" } stream-android-library = { id = "io.getstream.android.library", version.ref = "streamConventions" } stream-android-application = { id = "io.getstream.android.application", version.ref = "streamConventions" } stream-java-library = { id = "io.getstream.java.library", version.ref = "streamConventions" } maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" } dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinDokka" } -kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover"} -sonarqube = { id = "org.sonarqube", version.ref = "sonarqube"} +kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } +sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } From 807a181a50143d4fd5c34748f7f66920e1081d0d Mon Sep 17 00:00:00 2001 From: Gian <47775302+gpunto@users.noreply.github.com> Date: Fri, 7 Nov 2025 10:28:51 +0100 Subject: [PATCH 2/2] Apply Spotless with new configuration --- app/build.gradle.kts | 4 ++-- app/src/main/AndroidManifest.xml | 15 +++++++++++++ .../android/core/sample/SampleActivity.kt | 1 + .../core/sample/client/StreamClient.kt | 1 + .../core/sample/ui/ConnectionStateCard.kt | 1 + .../android/core/sample/ui/NetworkInfoCard.kt | 1 + .../core/sample/ui/NetworkInfoComponents.kt | 1 + .../android/core/sample/ui/theme/Color.kt | 1 + .../android/core/sample/ui/theme/Theme.kt | 1 + .../android/core/sample/ui/theme/Type.kt | 1 + .../drawable-v24/ic_launcher_foreground.xml | 16 ++++++++++++++ .../res/drawable/ic_launcher_background.xml | 15 +++++++++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 15 +++++++++++++ .../mipmap-anydpi-v26/ic_launcher_round.xml | 15 +++++++++++++ app/src/main/res/values-night/themes.xml | 16 ++++++++++++++ app/src/main/res/values/colors.xml | 15 +++++++++++++ app/src/main/res/values/strings.xml | 16 ++++++++++++++ app/src/main/res/values/themes.xml | 16 ++++++++++++++ app/src/main/res/xml/backup_rules.xml | 21 +++++++++++++------ .../main/res/xml/data_extraction_rules.xml | 19 +++++++++++++---- .../getstream/android/core/ExampleUnitTest.kt | 1 + .../build.gradle.kts | 4 ++-- .../core/annotations/StreamApiMarkers.kt | 1 + stream-android-core/build.gradle.kts | 10 ++++----- .../src/main/AndroidManifest.xml | 15 +++++++++++++ .../android/core/api/StreamClient.kt | 1 + .../api/authentication/StreamTokenManager.kt | 1 + .../api/authentication/StreamTokenProvider.kt | 1 + .../StreamAndroidComponentsProvider.kt | 1 + .../android/core/api/filter/Filter.kt | 1 + .../android/core/api/filter/FilterField.kt | 1 + .../android/core/api/filter/Filters.kt | 1 + .../core/api/http/StreamOkHttpInterceptors.kt | 1 + .../android/core/api/log/StreamLogger.kt | 1 + .../core/api/log/StreamLoggerProvider.kt | 1 + .../core/api/model/StreamRetryPolicy.kt | 1 + .../android/core/api/model/StreamTypedKey.kt | 1 + .../config/StreamClientSerializationConfig.kt | 1 + .../core/api/model/config/StreamHttpConfig.kt | 1 + .../api/model/config/StreamSocketConfig.kt | 1 + .../model/connection/StreamConnectedUser.kt | 1 + .../model/connection/StreamConnectionState.kt | 1 + .../connection/network/StreamNetworkInfo.kt | 1 + .../connection/network/StreamNetworkState.kt | 1 + .../api/model/event/StreamClientWsEvent.kt | 1 + .../core/api/model/exceptions/Exceptions.kt | 1 + .../exceptions/StreamEndpointErrorData.kt | 1 + .../core/api/model/value/StreamApiKey.kt | 1 + .../model/value/StreamHttpClientInfoHeader.kt | 1 + .../core/api/model/value/StreamHttpUrl.kt | 1 + .../core/api/model/value/StreamToken.kt | 1 + .../core/api/model/value/StreamUserId.kt | 1 + .../core/api/model/value/StreamWsUrl.kt | 1 + .../observers/network/StreamNetworkMonitor.kt | 1 + .../network/StreamNetworkMonitorListener.kt | 1 + .../core/api/processing/StreamBatcher.kt | 1 + .../api/processing/StreamRetryProcessor.kt | 1 + .../processing/StreamSerialProcessingQueue.kt | 1 + .../processing/StreamSingleFlightProcessor.kt | 1 + .../serialization/StreamEventSerialization.kt | 1 + .../serialization/StreamJsonSerialization.kt | 1 + .../api/socket/StreamConnectionIdHolder.kt | 1 + .../core/api/socket/StreamWebSocket.kt | 1 + .../core/api/socket/StreamWebSocketFactory.kt | 1 + .../socket/listeners/StreamClientListener.kt | 1 + .../listeners/StreamWebSocketListener.kt | 1 + .../api/socket/monitor/StreamHealthMonitor.kt | 1 + .../getstream/android/core/api/sort/Sort.kt | 1 + .../android/core/api/sort/SortComparator.kt | 1 + .../android/core/api/sort/SortDirection.kt | 1 + .../android/core/api/sort/SortField.kt | 1 + .../core/api/subscribe/StreamSubscription.kt | 1 + .../subscribe/StreamSubscriptionManager.kt | 1 + .../android/core/api/utils/Algebra.kt | 1 + .../android/core/api/utils/Catching.kt | 1 + .../getstream/android/core/api/utils/Map.kt | 1 + .../android/core/api/utils/Response.kt | 1 + .../android/core/api/utils/Result.kt | 1 + .../authentication/StreamTokenManagerImpl.kt | 1 + .../core/internal/client/StreamClientImpl.kt | 1 + .../StreamAndroidComponentsProviderImpl.kt | 1 + .../core/internal/filter/FilterOperations.kt | 1 + .../core/internal/filter/FilterOperator.kt | 1 + .../interceptor/StreamApiKeyInterceptor.kt | 1 + .../http/interceptor/StreamAuthInterceptor.kt | 1 + .../StreamClientInfoInterceptor.kt | 1 + .../StreamConnectionIdInterceptor.kt | 1 + .../StreamEndpointErrorInterceptor.kt | 1 + .../model/StreamConnectUserDetailsRequest.kt | 1 + .../StreamWSAuthMessageRequest.kt | 1 + .../internal/model/events/ConnectionEvents.kt | 1 + .../model/events/StreamHealthCheckEvent.kt | 1 + .../network/StreamNetworkMonitorCallback.kt | 1 + .../network/StreamNetworkMonitorImpl.kt | 1 + .../network/StreamNetworkMonitorUtils.kt | 1 + .../network/StreamNetworkSignalProcessing.kt | 1 + .../network/StreamNetworkSnapshotBuilder.kt | 1 + .../internal/processing/StreamBatcherImpl.kt | 1 + .../processing/StreamRestartableChannel.kt | 1 + .../processing/StreamRetryProcessorImpl.kt | 1 + .../StreamSerialProcessingQueueImpl.kt | 1 + .../StreamSingleFlightProcessorImpl.kt | 1 + .../StreamClientEventSerializationImpl.kt | 1 + .../StreamCompositeEventSerializationImpl.kt | 1 + .../StreamCompositeMoshiJsonSerialization.kt | 1 + .../StreamMoshiJsonSerializationImpl.kt | 1 + .../moshi/StreamCoreMoshiProvider.kt | 1 + .../core/internal/socket/SocketConstants.kt | 1 + .../internal/socket/StreamSocketSession.kt | 1 + .../internal/socket/StreamWebSocketImpl.kt | 1 + .../StreamConnectionIdHolderImpl.kt | 1 + .../factory/StreamWebSocketFactoryImpl.kt | 1 + .../internal/socket/model/ConnectUserData.kt | 1 + .../socket/monitor/StreamHealthMonitorImpl.kt | 1 + .../core/internal/sort/SortFieldImpl.kt | 1 + .../StreamSubscriptionManagerImpl.kt | 1 + .../android/core/api/ApiFactoryTest.kt | 1 + .../core/api/StreamClientFactoryTest.kt | 1 + ...mAndroidComponentsProviderLatestApiTest.kt | 1 + ...mAndroidComponentsProviderLegacyApiTest.kt | 1 + .../core/api/filter/FilterMatchingTest.kt | 1 + .../core/api/filter/FilterToRequestTest.kt | 1 + .../api/http/StreamOkHttpInterceptorsTest.kt | 1 + .../core/api/log/StreamLoggerProviderTest.kt | 1 + .../api/model/value/StreamValueClassesTest.kt | 1 + .../StreamNetworkMonitorFactoryTest.kt | 1 + .../StreamNetworkMonitorListenerTest.kt | 1 + .../StreamListenersDefaultImplsTest.kt | 1 + .../android/core/api/sort/SortTest.kt | 1 + .../android/core/api/utils/AlgebraTest.kt | 1 + .../core/api/utils/CatchingUtilsTest.kt | 1 + .../android/core/api/utils/MapUtilsTest.kt | 1 + .../android/core/api/utils/ResponseTest.kt | 1 + .../android/core/api/utils/ResultTest.kt | 1 + .../StreamTokenManagerImplTest.kt | 1 + .../internal/client/StreamClientIImplTest.kt | 1 + .../http/StreamHttpClientInfoHeaderTest.kt | 1 + .../StreamApiKeyInterceptorTest.kt | 1 + .../interceptor/StreamAuthInterceptorTest.kt | 1 + .../StreamClientInfoInterceptorTest.kt | 1 + .../StreamConnectionIdInterceptorTest.kt | 1 + .../StreamEndpointErrorInterceptorTest.kt | 1 + .../StreamInternalModelSerializationTest.kt | 1 + .../StreamNetworkMonitorCallbackTest.kt | 1 + .../network/StreamNetworkMonitorImplTest.kt | 1 + .../network/StreamNetworkMonitorUtilsTest.kt | 1 + ...eamNetworkSignalProcessingLatestApiTest.kt | 1 + ...eamNetworkSignalProcessingLegacyApiTest.kt | 1 + .../StreamNetworkSignalProcessingTest.kt | 1 + ...reamNetworkSnapshotBuilderLatestApiTest.kt | 1 + ...reamNetworkSnapshotBuilderLegacyApiTest.kt | 1 + .../processing/StreamBatcherImplTest.kt | 1 + .../StreamRestartableChannelTest.kt | 1 + .../StreamRetryProcessorImplTest.kt | 1 + .../StreamSerialProcessingQueueImplTest.kt | 1 + .../StreamSingleFlightProcessorImplTest.kt | 1 + .../StreamClientEventSerializationImplTest.kt | 1 + ...reamCompositeEventSerializationImplTest.kt | 1 + ...reamCompositeMoshiJsonSerializationTest.kt | 1 + .../StreamMoshiJsonSerializationImplTest.kt | 1 + .../serialization/moshi/MoshiProviderTest.kt | 15 ++++++------- .../socket/StreamSocketSessionTest.kt | 1 + .../socket/StreamWebSocketImplTest.kt | 1 + .../StreamConnectionIdHolderImplTest.kt | 1 + .../factory/StreamWebSocketFactoryImplTest.kt | 1 + .../monitor/StreamHealthMonitorImplTest.kt | 1 + .../StreamSubscriptionManagerImplTest.kt | 1 + .../core/testutil/ReflectionAssertions.kt | 1 + .../android/core/utils/ValueClassTestUtils.kt | 1 + 169 files changed, 353 insertions(+), 27 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e1959fa..f2dfa23 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,7 +8,7 @@ kotlin { compilerOptions { freeCompilerArgs.addAll( "-opt-in=io.getstream.android.core.annotations.StreamInternalApi", - "-XXLanguage:+PropertyParamAnnotationDefaultTargetMode" + "-XXLanguage:+PropertyParamAnnotationDefaultTargetMode", ) } } @@ -29,7 +29,7 @@ android { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" + "proguard-rules.pro", ) } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ac11484..d45c38e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,4 +1,19 @@ + diff --git a/app/src/main/java/io/getstream/android/core/sample/SampleActivity.kt b/app/src/main/java/io/getstream/android/core/sample/SampleActivity.kt index b88a4f3..ec8a066 100644 --- a/app/src/main/java/io/getstream/android/core/sample/SampleActivity.kt +++ b/app/src/main/java/io/getstream/android/core/sample/SampleActivity.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample import android.os.Build diff --git a/app/src/main/java/io/getstream/android/core/sample/client/StreamClient.kt b/app/src/main/java/io/getstream/android/core/sample/client/StreamClient.kt index baf3908..2dd474c 100644 --- a/app/src/main/java/io/getstream/android/core/sample/client/StreamClient.kt +++ b/app/src/main/java/io/getstream/android/core/sample/client/StreamClient.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.client import android.content.Context diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/ConnectionStateCard.kt b/app/src/main/java/io/getstream/android/core/sample/ui/ConnectionStateCard.kt index 52b28b9..a40102c 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/ConnectionStateCard.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/ConnectionStateCard.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoCard.kt b/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoCard.kt index ed3b383..56a2de6 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoCard.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoCard.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoComponents.kt b/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoComponents.kt index 8e7d7f1..56022b5 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoComponents.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/NetworkInfoComponents.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui import androidx.compose.foundation.background diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Color.kt b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Color.kt index 4b321c5..d5e4673 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Color.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Color.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui.theme import androidx.compose.ui.graphics.Color diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Theme.kt b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Theme.kt index 48d39df..4c95aa2 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Theme.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Theme.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui.theme import android.os.Build diff --git a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Type.kt b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Type.kt index 8bf0f50..63585a1 100644 --- a/app/src/main/java/io/getstream/android/core/sample/ui/theme/Type.kt +++ b/app/src/main/java/io/getstream/android/core/sample/ui/theme/Type.kt @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.getstream.android.core.sample.ui.theme import androidx.compose.material3.Typography diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index 2b068d1..064ca53 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -1,3 +1,19 @@ + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 6f3b755..d8d6aec 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,4 +1,19 @@ + diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 5fdc249..f65845d 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,3 +1,19 @@ + +