Skip to content

Commit af9ca1d

Browse files
committed
update code
1 parent f2ce0ce commit af9ca1d

File tree

7 files changed

+177
-87
lines changed

7 files changed

+177
-87
lines changed

firebase-common/firebase-common.gradle.kts

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,31 @@ firebaseLibrary {
2424
}
2525

2626
android {
27-
val targetSdkVersion : Int by rootProject
28-
val minSdkVersion : Int by rootProject
27+
val targetSdkVersion : Int by rootProject
28+
val minSdkVersion : Int by rootProject
2929

30-
compileSdk = targetSdkVersion
31-
namespace = "com.google.firebase"
32-
defaultConfig {
33-
minSdk = minSdkVersion
34-
targetSdk = targetSdkVersion
35-
multiDexEnabled = true
36-
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
37-
consumerProguardFiles("proguard.txt")
30+
compileSdk = targetSdkVersion
31+
namespace = "com.google.firebase"
32+
defaultConfig {
33+
minSdk = minSdkVersion
34+
targetSdk = targetSdkVersion
35+
multiDexEnabled = true
36+
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
37+
consumerProguardFiles("proguard.txt")
38+
}
39+
sourceSets {
40+
getByName("androidTest") {
41+
java.srcDirs("src/testUtil")
3842
}
39-
sourceSets {
40-
getByName("androidTest") {
41-
java.srcDirs("src/testUtil")
42-
}
43-
getByName("test") {
44-
java.srcDirs("src/testUtil")
45-
}
43+
getByName("test") {
44+
java.srcDirs("src/testUtil")
4645
}
47-
compileOptions {
48-
sourceCompatibility = JavaVersion.VERSION_1_8
49-
targetCompatibility = JavaVersion.VERSION_1_8
50-
}
51-
testOptions.unitTests.isIncludeAndroidResources = true
46+
}
47+
compileOptions {
48+
sourceCompatibility = JavaVersion.VERSION_1_8
49+
targetCompatibility = JavaVersion.VERSION_1_8
50+
}
51+
testOptions.unitTests.isIncludeAndroidResources = true
5252
}
5353

5454
dependencies {
@@ -81,5 +81,4 @@ dependencies {
8181
testImplementation(libs.org.json)
8282
testImplementation(libs.robolectric)
8383
testImplementation(libs.truth)
84-
}
85-
84+
}

firebase-common/ktx/ktx.gradle.kts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ android {
4242
}
4343

4444
dependencies {
45-
api(project(":firebase-common"))
4645
implementation("com.google.firebase:firebase-components:17.1.0")
47-
testImplementation(libs.androidx.test.core)
48-
testImplementation(libs.junit)
49-
testImplementation(libs.kotlin.coroutines.test)
46+
api(project(":firebase-common"))
47+
5048
testImplementation(libs.robolectric)
49+
testImplementation(libs.junit)
5150
testImplementation(libs.truth)
51+
testImplementation(libs.androidx.test.core)
52+
testImplementation(libs.kotlin.coroutines.test)
5253
}
53-

firebase-common/ktx/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,3 @@
99
</service>
1010
</application>
1111
</manifest>
12-
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
// Copyright 2019 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
package com.google.firebase.ktx
15+
16+
import android.content.Context
17+
import androidx.annotation.Keep
18+
import com.google.firebase.FirebaseApp
19+
import com.google.firebase.FirebaseOptions
20+
import com.google.firebase.annotations.concurrent.Background
21+
import com.google.firebase.annotations.concurrent.Blocking
22+
import com.google.firebase.annotations.concurrent.Lightweight
23+
import com.google.firebase.annotations.concurrent.UiThread
24+
import com.google.firebase.components.Component
25+
import com.google.firebase.components.ComponentRegistrar
26+
import com.google.firebase.components.Dependency
27+
import com.google.firebase.components.Qualified
28+
import com.google.firebase.platforminfo.LibraryVersionComponent
29+
import java.util.concurrent.Executor
30+
import kotlinx.coroutines.CoroutineDispatcher
31+
import kotlinx.coroutines.asCoroutineDispatcher
32+
33+
/**
34+
* Single access point to all firebase SDKs from Kotlin.
35+
*
36+
* <p>Acts as a target for extension methods provided by sdks.
37+
*/
38+
object Firebase
39+
40+
/** Returns the default firebase app instance. */
41+
val Firebase.app: FirebaseApp
42+
get() = FirebaseApp.getInstance()
43+
44+
/** Returns a named firebase app instance. */
45+
fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name)
46+
47+
/** Initializes and returns a FirebaseApp. */
48+
fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context)
49+
50+
/** Initializes and returns a FirebaseApp. */
51+
fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp =
52+
FirebaseApp.initializeApp(context, options)
53+
54+
/** Initializes and returns a FirebaseApp. */
55+
fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp =
56+
FirebaseApp.initializeApp(context, options, name)
57+
58+
/** Returns options of default FirebaseApp */
59+
val Firebase.options: FirebaseOptions
60+
get() = Firebase.app.options
61+
62+
internal const val LIBRARY_NAME: String = "fire-core-ktx"
63+
64+
/** @suppress */
65+
@Keep
66+
class FirebaseCommonKtxRegistrar : ComponentRegistrar {
67+
override fun getComponents(): List<Component<*>> {
68+
return listOf(
69+
LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME),
70+
coroutineDispatcher<Background>(),
71+
coroutineDispatcher<Lightweight>(),
72+
coroutineDispatcher<Blocking>(),
73+
coroutineDispatcher<UiThread>()
74+
)
75+
}
76+
}
77+
78+
private inline fun <reified T : Annotation> coroutineDispatcher(): Component<CoroutineDispatcher> =
79+
Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java))
80+
.add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java)))
81+
.factory { c ->
82+
c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher()
83+
}
84+
.build()

firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package com.google.firebase.ktx
1717
import androidx.test.core.app.ApplicationProvider
1818
import com.google.android.gms.tasks.Tasks
1919
import com.google.common.truth.Truth.assertThat
20+
import com.google.firebase.Firebase
2021
import com.google.firebase.FirebaseApp
2122
import com.google.firebase.FirebaseOptions
2223
import com.google.firebase.platforminfo.UserAgentPublisher
@@ -50,7 +51,6 @@ class VersionTests {
5051
withApp("ktxTestApp") {
5152
val uaPublisher = get(UserAgentPublisher::class.java)
5253
assertThat(uaPublisher.userAgent).contains("kotlin")
53-
assertThat(uaPublisher.userAgent).contains(LIBRARY_NAME)
5454
}
5555
}
5656
}

firebase-common/src/main/AndroidManifest.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
android:name="com.google.firebase.components.ComponentDiscoveryService"
3030
android:directBootAware="true"
3131
android:exported="false"
32-
tools:targetApi="n" > <meta-data android:name="com.google.firebase.components:com.google.firebase.FirebaseCommonKtxRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/> </service>
32+
tools:targetApi="n" >
33+
<meta-data android:name="com.google.firebase.components:com.google.firebase.FirebaseCommonKtxRegistrar"
34+
android:value="com.google.firebase.components.ComponentRegistrar" />
35+
</service>
3336
</application>
34-
</manifest>
37+
</manifest>

firebase-messaging/firebase-messaging.gradle

Lines changed: 59 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,26 @@
1313
// limitations under the License.
1414

1515
plugins {
16-
id 'firebase-library'
1716
id 'com.google.protobuf'
18-
}
19-
20-
configurations.create("protobuild")
21-
dependencies {
22-
protobuild project(path: ":encoders:protoc-gen-firebase-encoders", configuration: "shadow")
17+
id 'firebase-library'
18+
id 'kotlin-android'
2319
}
2420

2521
protobuf {
22+
dependencies {
23+
// Include the project dependency directly
24+
implementation project(':encoders:protoc-gen-firebase-encoders')
25+
}
2626
protoc {
2727
artifact = "com.google.protobuf:protoc:$protocVersion"
2828
}
2929
plugins {
3030
firebaseEncoders {
31-
path = configurations.protobuild.asPath
31+
path = project(':encoders:protoc-gen-firebase-encoders').buildDir.path + '/libs' +'/protoc-gen-firebase-encoders-all.jar'
3232
}
3333
}
3434
generateProtoTasks {
35+
3536
all().each { task ->
3637
task.dependsOn configurations.protobuild
3738
task.inputs.file 'code_gen_cfg.textproto'
@@ -42,7 +43,9 @@ protobuf {
4243
}
4344
task.builtins {
4445
remove java
46+
remove kotlin
4547
}
48+
4649
}
4750
}
4851
}
@@ -75,67 +78,69 @@ android {
7578
}
7679

7780
dependencies {
78-
implementation 'com.google.firebase:firebase-common:20.3.1'
79-
implementation 'com.google.firebase:firebase-components:17.1.0'
80-
implementation 'com.google.firebase:firebase-installations-interop:17.1.0'
81-
implementation 'com.google.firebase:firebase-datatransport:18.1.7'
82-
implementation 'com.google.android.datatransport:transport-api:3.0.0'
83-
implementation 'com.google.android.datatransport:transport-runtime:3.1.8'
84-
implementation 'com.google.android.datatransport:transport-backend-cct:3.1.8'
85-
implementation 'com.google.firebase:firebase-encoders:17.0.0'
86-
implementation 'com.google.firebase:firebase-encoders-json:18.0.0'
87-
implementation "com.google.firebase:firebase-encoders-proto:16.0.0"
88-
implementation "com.google.firebase:firebase-installations:17.1.3"
81+
androidTestImplementation "androidx.annotation:annotation:1.0.0"
82+
androidTestImplementation "androidx.test.ext:junit:$androidxTestJUnitVersion"
83+
androidTestImplementation "com.google.truth:truth:$googleTruthVersion"
84+
androidTestImplementation 'androidx.test:runner:1.2.0'
85+
androidTestImplementation 'junit:junit:4.12'
86+
androidTestImplementation 'org.mockito:mockito-core:2.25.0'
87+
androidTestImplementation 'org.mockito:mockito-inline:2.25.0'
88+
androidTestImplementation project(':integ-testing')
8989
annotationProcessor project(":encoders:firebase-encoders-processor")
90-
91-
implementation 'androidx.annotation:annotation:1.2.0'
92-
implementation "com.google.android.gms:play-services-tasks:18.0.1"
9390
implementation "com.google.android.gms:play-services-basement:18.1.0"
94-
implementation 'com.google.android.gms:play-services-base:18.0.1'
95-
implementation 'com.google.android.gms:play-services-stats:17.0.2'
96-
implementation 'com.google.firebase:firebase-measurement-connector:19.0.0'
91+
implementation "com.google.android.gms:play-services-tasks:18.0.1"
92+
implementation "com.google.errorprone:error_prone_annotations:2.9.0"
93+
implementation "com.google.firebase:firebase-encoders-proto:16.0.0"
9794
implementation "com.google.firebase:firebase-iid-interop:17.1.0"
95+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
96+
implementation 'androidx.annotation:annotation:1.2.0'
97+
implementation 'com.google.android.datatransport:transport-api:3.0.0'
98+
implementation 'com.google.android.datatransport:transport-backend-cct:3.1.8'
99+
implementation 'com.google.android.datatransport:transport-runtime:3.1.8'
100+
implementation 'com.google.android.gms:play-services-base:18.0.1'
98101
implementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1'
99-
implementation "com.google.errorprone:error_prone_annotations:2.9.0"
100-
testImplementation ("com.google.api-client:google-api-client:1.30.9") {
101-
exclude group: "org.apache.httpcomponents", module: "httpclient"
102+
implementation 'com.google.android.gms:play-services-stats:17.0.2'
103+
implementation('com.google.firebase:firebase-datatransport:18.1.7') {
104+
exclude group: 'com.google.firebase', module: 'firebase-common'
105+
exclude group: 'com.google.firebase', module: 'firebase-components'
106+
}
107+
implementation 'com.google.firebase:firebase-encoders-json:18.0.0'
108+
implementation 'com.google.firebase:firebase-encoders:17.0.0'
109+
implementation('com.google.firebase:firebase-installations-interop:17.1.0')
110+
implementation('com.google.firebase:firebase-measurement-connector:19.0.0')
111+
implementation(project(":firebase-common"))
112+
implementation(project(":firebase-components"))
113+
implementation(project(":firebase-installations")) {
114+
exclude group: 'com.google.firebase', module: 'firebase-common'
115+
exclude group: 'com.google.firebase', module: 'firebase-components'
102116
}
103-
testCompileOnly 'com.google.auto.value:auto-value-annotations:1.6.3'
104-
testAnnotationProcessor "com.google.auto.value:auto-value:1.6.3"
105-
106117
javadocClasspath 'com.google.auto.value:auto-value-annotations:1.6.6'
107-
118+
testAnnotationProcessor "com.google.auto.value:auto-value:1.6.3"
119+
testCompileOnly 'com.google.auto.value:auto-value-annotations:1.6.3'
108120
testImplementation "androidx.test:core:$androidxTestCoreVersion"
109-
testImplementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1'
121+
testImplementation "com.google.truth:truth:$googleTruthVersion"
122+
testImplementation "org.robolectric:robolectric:$robolectricVersion"
123+
testImplementation 'androidx.core:core:1.6.0'
124+
testImplementation 'androidx.test.espresso:espresso-intents:3.2.0'
125+
testImplementation 'androidx.test.ext:truth:1.4.0'
126+
testImplementation 'androidx.test.services:test-services:1.2.0'
110127
testImplementation 'androidx.test:rules:1.2.0'
111128
testImplementation 'androidx.test:runner:1.2.0'
112-
testImplementation "org.robolectric:robolectric:$robolectricVersion"
129+
testImplementation 'com.android.support.test:runner:1.0.2'
130+
testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
131+
testImplementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1'
132+
testImplementation 'com.google.android.gms:play-services-vision:20.1.3'
133+
testImplementation 'com.google.guava:guava-testlib:12.0-rc2'
134+
testImplementation 'junit:junit:4.12'
113135
testImplementation 'junit:junit:4.13-beta-2'
114136
testImplementation 'org.mockito:mockito-core:2.25.0'
115-
testImplementation "com.google.truth:truth:$googleTruthVersion"
116-
testImplementation 'com.google.android.gms:play-services-vision:20.1.3'
137+
testImplementation ("com.google.api-client:google-api-client:1.30.9") {
138+
exclude group: "org.apache.httpcomponents", module: "httpclient"
139+
}
117140
testImplementation ("com.google.firebase:firebase-iid:21.1.0") {
118141
exclude group: "com.google.firebase", module: "firebase-common"
119142
exclude group: "com.google.firebase", module: "firebase-components"
120143
exclude group: "com.google.firebase", module: "firebase-installations-interop"
121144
exclude group: "com.google.firebase", module: "firebase-installations"
122145
}
123-
124-
testImplementation 'com.android.support.test:runner:1.0.2'
125-
testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
126-
testImplementation 'com.google.guava:guava-testlib:12.0-rc2'
127-
testImplementation 'androidx.test.espresso:espresso-intents:3.2.0'
128-
testImplementation 'androidx.test:rules:1.2.0'
129-
testImplementation 'androidx.test.ext:truth:1.4.0'
130-
testImplementation 'androidx.test.services:test-services:1.2.0'
131-
testImplementation 'androidx.core:core:1.6.0'
132-
133-
androidTestImplementation project(':integ-testing')
134-
androidTestImplementation "androidx.test.ext:junit:$androidxTestJUnitVersion"
135-
androidTestImplementation 'androidx.test:runner:1.2.0'
136-
androidTestImplementation "com.google.truth:truth:$googleTruthVersion"
137-
androidTestImplementation 'junit:junit:4.12'
138-
androidTestImplementation "androidx.annotation:annotation:1.0.0"
139-
androidTestImplementation 'org.mockito:mockito-core:2.25.0'
140-
androidTestImplementation 'org.mockito:mockito-inline:2.25.0'
141-
}
146+
}

0 commit comments

Comments
 (0)