Skip to content

Commit 6b22865

Browse files
committed
Merge remote-tracking branch 'origin/master' into mila/BloomFilter
2 parents 98f62ad + 8f1a33f commit 6b22865

File tree

34 files changed

+297
-84
lines changed

34 files changed

+297
-84
lines changed

appcheck/firebase-appcheck-debug-testing/CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
# Unreleased
22

3+
# 17.0.0
4+
* [unchanged] Updated to keep [app_check] SDK versions aligned.
5+
36
# 16.1.2
47
* [unchanged] Updated to keep [app_check] SDK versions aligned.
58

69
# 16.1.1
7-
* [changed] Integrated the [app_check] Debug Testing SDK with Firebase Components. (#4436)
10+
* [changed] Integrated the [app_check] Debug Testing SDK with Firebase
11+
components.
12+
(GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external})
813

914
# 16.1.0
1015
* [unchanged] Updated to accommodate the release of the updated

appcheck/firebase-appcheck-debug/CHANGELOG.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
# Unreleased
22

3+
# 17.0.0
4+
* [unchanged] Updated to keep [app_check] SDK versions aligned.
5+
36
# 16.1.2
47
* [unchanged] Updated to keep [app_check] SDK versions aligned.
58

69
# 16.1.1
7-
* [changed] Migrated [app_check] SDKs to use standard Firebase executors. (#4431, #4449)
8-
* [changed] Integrated the [app_check] Debug SDK with Firebase Components. (#4436)
9-
* [changed] Moved Task continuations off the main thread. (#4453)
10+
* [changed] Migrated [app_check] SDKs to use standard Firebase executors.
11+
(GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external}
12+
and
13+
[#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external})
14+
15+
* [changed] Integrated the [app_check] Debug SDK with Firebase components.
16+
(GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external})
17+
18+
* [changed] Moved Task continuations off the main thread.
19+
(GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external})
1020

1121
# 16.1.0
1222
* [unchanged] Updated to accommodate the release of the updated

appcheck/firebase-appcheck-playintegrity/CHANGELOG.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
11
# Unreleased
22

3+
4+
# 17.0.0
5+
* [unchanged] Updated to keep [app_check] SDK versions aligned.
6+
37
# 16.1.2
48
* [unchanged] Updated to keep [app_check] SDK versions aligned.
59

610
# 16.1.1
7-
* [changed] Migrated [app_check] SDKs to use standard Firebase executors. (#4431, #4449)
8-
* [changed] Integrated the [app_check] Play Integrity SDK with Firebase Components. (#4436)
9-
* [changed] Moved Task continuations off the main thread. (#4453)
11+
* [changed] Migrated [app_check] SDKs to use standard Firebase executors.
12+
(GitHub [#4431](//github.com/firebase/firebase-android-sdk/issues/4431){: .external}
13+
and
14+
[#4449](//github.com/firebase/firebase-android-sdk/issues/4449){: .external})
15+
16+
* [changed] Integrated the [app_check] Play integrity SDK with Firebase
17+
components.
18+
(GitHub [#4436](//github.com/firebase/firebase-android-sdk/issues/4436){: .external})
19+
20+
* [changed] Moved Task continuations off the main thread.
21+
(GitHub [#4453](//github.com/firebase/firebase-android-sdk/issues/4453){: .external})
1022

1123
# 16.1.0
1224
* [unchanged] Updated to accommodate the release of the updated

appcheck/firebase-appcheck/CHANGELOG.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
# Unreleased
2-
* [feature] Added `getLimtedUseAppCheckToken()` for obtaining limited-use tokens
3-
for protecting non-Firebase backends.
2+
3+
4+
# 17.0.0
5+
* [feature] Added [`getLimtedUseAppCheckToken()`](/docs/reference/android/com/google/firebase/appcheck/FirebaseAppCheck#getLimitedUseAppCheckToken())
6+
for obtaining limited-use tokens for protecting non-Firebase backends.
7+
8+
9+
## Kotlin
10+
The Kotlin extensions library transitively includes the updated
11+
`firebase-appcheck` library. The Kotlin extensions library has no additional
12+
updates.
413

514
# 16.1.2
615
* [unchanged] Updated to keep [app_check] SDK versions aligned.

buildSrc/src/main/java/com/google/firebase/gradle/plugins/BaseFirebaseLibraryPlugin.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ abstract class BaseFirebaseLibraryPlugin : Plugin<Project> {
189189
// TODO(b/277607560): Remove when Gradle's MavenPublishPlugin adds functionality for aar types
190190
private fun addTypeWithAARSupport(dependency: Element, androidLibraries: List<String>) {
191191
dependency.findOrCreate("type").apply {
192-
textContent = if (androidLibraries.contains(dependency.toArtifactString())) "aar" else "jar"
192+
textContent = if (androidLibraries.contains(dependency.toMavenName())) "aar" else "jar"
193193
}
194194
}
195195
}
@@ -200,17 +200,15 @@ abstract class BaseFirebaseLibraryPlugin : Plugin<Project> {
200200
* This is collected via the [runtimeClasspath][FirebaseLibraryExtension.getRuntimeClasspath], and
201201
* includes project level dependencies as well as external dependencies.
202202
*
203-
* The dependencies are mapped to their [artifactName].
203+
* The dependencies are mapped to their [mavenName][toMavenName].
204204
*
205205
* @see resolveProjectLevelDependencies
206206
* @see resolveExternalAndroidLibraries
207207
*/
208208
// TODO(b/277607560): Remove when Gradle's MavenPublishPlugin adds functionality for aar types
209209
fun FirebaseLibraryExtension.resolveAndroidDependencies() =
210210
resolveExternalAndroidLibraries() +
211-
resolveProjectLevelDependencies()
212-
.filter { it.type == LibraryType.ANDROID }
213-
.map { it.artifactName }
211+
resolveProjectLevelDependencies().filter { it.type == LibraryType.ANDROID }.map { it.mavenName }
214212

215213
/**
216214
* A list of project level dependencies.
@@ -239,9 +237,9 @@ fun FirebaseLibraryExtension.resolveProjectLevelDependencies() =
239237
* This is collected via the [runtimeClasspath][FirebaseLibraryExtension.getRuntimeClasspath], using
240238
* an [ArtifactView][org.gradle.api.artifacts.ArtifactView] that filters for `aar` artifactType.
241239
*
242-
* Artifacts are mapped to their respective display name:
240+
* Artifacts are mapped to their respective maven name:
243241
* ```
244-
* groupId:artifactId:version
242+
* groupId:artifactId
245243
* ```
246244
*/
247245
// TODO(b/277607560): Remove when Gradle's MavenPublishPlugin adds functionality for aar types
@@ -251,7 +249,7 @@ fun FirebaseLibraryExtension.resolveExternalAndroidLibraries() =
251249
.incoming
252250
.artifactView { attributes { attribute("artifactType", "aar") } }
253251
.artifacts
254-
.map { it.variant.displayName.substringBefore(" ") }
252+
.map { it.variant.displayName.substringBefore(" ").substringBeforeLast(":") }
255253

256254
/**
257255
* The name provided to this artifact when published.

buildSrc/src/main/java/com/google/firebase/gradle/plugins/KotlinUtils.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,27 @@ public fun <T> Sequence<T>.takeAll(): Sequence<T> = take(count())
5858
fun Element.toArtifactString() =
5959
"${textByTag("groupId")}:${textByTag("artifactId")}:${textByTag("version")}"
6060

61+
/**
62+
* Converts an [Element] to a Maven name
63+
*
64+
* A Maven name can be defined as a dependency with the following format:
65+
* ```
66+
* groupId:artifactId
67+
* ```
68+
*
69+
* For example, the following would be a valid [Element]:
70+
* ```
71+
* <mySuperCoolElement>
72+
* <groupId>com.google.firebase</groupId>
73+
* <artifactId>firebase-common</artifactId>
74+
* </mySuperCoolElement>
75+
* ```
76+
*
77+
* @throws NoSuchElementException if the [Element] does not have descendant [Element]s with tags
78+
* that match the components of an Artifact string; groupId, artifactId, version.
79+
*/
80+
fun Element.toMavenName() = "${textByTag("groupId")}:${textByTag("artifactId")}"
81+
6182
/**
6283
* Finds a descendant [Element] by a given [tag], and returns the [textContent]
6384
* [Element.getTextContent] of it.

buildSrc/src/main/java/com/google/firebase/gradle/plugins/PomValidator.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ abstract class PomValidator : DefaultTask() {
9292
companion object {
9393
val IGNORED_DEPENDENCIES =
9494
listOf(
95-
"javax.inject" // javax.inject doesn't respect SemVer and doesn't update
95+
"javax.inject", // javax.inject doesn't respect SemVer and doesn't update
96+
"dagger", // dagger doesn't respect Semver
9697
)
9798
}
9899
}

buildSrc/src/main/java/com/google/firebase/gradle/plugins/semver/DeltaType.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ enum class DeltaType {
172172
((publicBeforeMethods.keys intersect nonPublicMethods.keys) union
173173
(protectedBeforeMethods.keys intersect privateMethods.keys))
174174
.forEach {
175-
val method = allAfterMethods.get(it)
175+
val method =
176+
if (allAfterMethods.get(it) != null) allAfterMethods.get(it)
177+
else allBeforeMethods.get(it)
176178
apiDeltas.add(
177179
Delta(
178180
after.name,
@@ -191,7 +193,8 @@ enum class DeltaType {
191193
((publicBeforeFields.keys intersect nonPublicFields.keys) union
192194
(protectedBeforeFields.keys intersect privateFields.keys))
193195
.forEach {
194-
val field = allAfterFields.get(it)
196+
val field =
197+
if (allAfterFields.get(it) != null) allAfterFields.get(it) else allBeforeFields.get(it)
195198
apiDeltas.add(
196199
Delta(
197200
after.name,
@@ -604,8 +607,9 @@ enum class DeltaType {
604607
allBeforeMethods.containsKey(key) &&
605608
access.isStatic()
606609
}
610+
607611
return (beforeStaticMethods.keys subtract afterStaticMethods.keys).map {
608-
val method = allAfterMethods.get(it)
612+
val method = beforeStaticMethods.get(it)
609613
Delta(
610614
after!!.name,
611615
method!!.name,

firebase-appdistribution-api/CHANGELOG.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# Unreleased
2-
* [fixed] Fixed a crash when showing feedback notification on devices running Android 4 and below.
32

43

54
# 16.0.0-beta08

firebase-appdistribution/CHANGELOG.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
# Unreleased
2-
* [fixed] Fixed a crash when showing feedback notification on devices running Android 4 and below.
3-
42

53
# 16.0.0-beta08
64
* [fixed] Fixed an issue where a crash happened whenever a feedback

firebase-config/CHANGELOG.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
# Unreleased
2+
3+
4+
# 21.4.0
25
* [unchanged] Updated to accommodate the release of the updated
36
[remote_config] Kotlin extensions library.
47

8+
59
## Kotlin
6-
* [feature] Added the `FirebaseRemoteConfig.configUpdates` Kotlin Flow to listen for real-time
7-
config updates.
10+
The Kotlin extensions library transitively includes the updated
11+
`firebase-config` library. The Kotlin extensions library has the following
12+
additional updates.
13+
14+
* [feature] Added the
15+
[`FirebaseRemoteConfig.configUpdates`](/docs/reference/kotlin/com/google/firebase/remoteconfig/ktx/package-summary#(com.google.firebase.remoteconfig.FirebaseRemoteConfig).configUpdates())
16+
Kotlin Flow to listen for real-time config updates.
817

918
# 21.3.0
1019
* [feature] Added support for real-time config updates. To learn more, see
1120
[Get started with [firebase_remote_config]](/docs/remote-config/get-started?platform=android#add-real-time-listener).
1221

22+
1323
## Kotlin
1424
The Kotlin extensions library transitively includes the updated
1525
`firebase-config` library. The Kotlin extensions library has no additional

firebase-config/src/main/java/com/google/firebase/remoteconfig/ConfigUpdateListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import javax.annotation.Nonnull;
1919

2020
/**
21-
* Event listener interface for real-time Remote Config updates. Implement {@link
21+
* Event listener interface for real-time Remote Config updates. Implement {@code
2222
* ConfigUpdateListener} to call {@link
2323
* com.google.firebase.remoteconfig.FirebaseRemoteConfig#addOnConfigUpdateListener}.
2424
*/

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfig.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,12 @@
4848
import org.json.JSONObject;
4949

5050
/**
51-
* Entry point for the Firebase Remote Config (FRC) API.
51+
* Entry point for the Firebase Remote Config API.
5252
*
5353
* <p>Callers should first get the singleton object using {@link #getInstance()}, and then call
54-
* operations on that singleton object. The singleton contains the complete set of FRC parameter
55-
* values available to your app. The singleton also stores values fetched from the FRC Server until
56-
* they are made available for use with a call to {@link #activate()}.
57-
*
58-
* @author Miraziz Yusupov
54+
* operations on that singleton object. The singleton contains the complete set of Remote Config
55+
* parameter values available to your app. The singleton also stores values fetched from the Remote
56+
* Config Server until they are made available for use with a call to {@link #activate()}.
5957
*/
6058
public class FirebaseRemoteConfig {
6159
// -------------------------------------------------------------------------------
@@ -557,8 +555,8 @@ public Task<Void> reset() {
557555
* re-use the same connection to the backend.
558556
*
559557
* <p>Note: Real-time Remote Config requires the Firebase Remote Config Realtime API. See the <a
560-
* href="https://firebase.google.com/docs/remote-config/get-started#add-real-time-listener">Remote
561-
* Config Get Started </a> guide to enable the API.
558+
* href="https://firebase.google.com/docs/remote-config/get-started?platform=android#add-real-time-listener">Remote
559+
* Config Get Started</a> guide to enable the API.
562560
*
563561
* @param configUpdateListener A {@link ConfigUpdateListener} that can be used to respond to
564562
* config updates when they're fetched.

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfigClientException.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
/**
2121
* A Firebase Remote Config internal issue that isn't caused by an interaction with the Firebase
2222
* Remote Config server.
23-
*
24-
* @author Miraziz Yusupov
2523
*/
2624
public class FirebaseRemoteConfigClientException extends FirebaseRemoteConfigException {
2725
/** Creates a Firebase Remote Config client exception with the given message. */
@@ -36,8 +34,8 @@ public FirebaseRemoteConfigClientException(
3634
}
3735

3836
/**
39-
* Creates a Firebase Remote Config client exception with the given message and
40-
* FirebaseRemoteConfigException code.
37+
* Creates a Firebase Remote Config client exception with the given message and {@code
38+
* FirebaseRemoteConfigException} code.
4139
*/
4240
public FirebaseRemoteConfigClientException(@NonNull String detailMessage, @NonNull Code code) {
4341
super(detailMessage, code);

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfigException.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public int value() {
7575
}
7676
}
7777

78+
/**
79+
* Gets the {@link Code} representing the type of exception.
80+
*
81+
* @return A {@link Code} representing the type of exception.
82+
*/
7883
@NonNull
7984
public Code getCode() {
8085
return code;

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfigInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import androidx.annotation.NonNull;
1818

19-
/** Wraps the current state of the FirebaseRemoteConfig singleton object. */
19+
/** Wraps the current state of the {@link FirebaseRemoteConfig} singleton object. */
2020
public interface FirebaseRemoteConfigInfo {
2121
/**
2222
* Gets the timestamp (milliseconds since epoch) of the last successful fetch, regardless of
@@ -38,7 +38,7 @@ public interface FirebaseRemoteConfigInfo {
3838
int getLastFetchStatus();
3939

4040
/**
41-
* Gets the current settings of the FirebaseRemoteConfig singleton object.
41+
* Gets the current settings of the {@link FirebaseRemoteConfig} singleton object.
4242
*
4343
* @return A {@link FirebaseRemoteConfigSettings} object indicating the current settings.
4444
*/

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfigServerException.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
/**
2222
* A Firebase Remote Config internal issue caused by an interaction with the Firebase Remote Config
2323
* server.
24-
*
25-
* @author Miraziz Yusupov
2624
*/
2725
public class FirebaseRemoteConfigServerException extends FirebaseRemoteConfigException {
2826
private final int httpStatusCode;

firebase-config/src/main/java/com/google/firebase/remoteconfig/FirebaseRemoteConfigSettings.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@
1919

2020
import androidx.annotation.NonNull;
2121

22-
/**
23-
* Wraps the settings for {@link FirebaseRemoteConfig} operations.
24-
*
25-
* @author Lucas Png
26-
*/
22+
/** Wraps the settings for {@link FirebaseRemoteConfig} operations. */
2723
public class FirebaseRemoteConfigSettings {
2824
private final long fetchTimeoutInSeconds;
2925
private final long minimumFetchInterval;
@@ -37,7 +33,7 @@ private FirebaseRemoteConfigSettings(Builder builder) {
3733
* Returns the fetch timeout in seconds.
3834
*
3935
* <p>The timeout specifies how long the client should wait for a connection to the Firebase
40-
* Remote Config servers.
36+
* Remote Config server.
4137
*/
4238
public long getFetchTimeoutInSeconds() {
4339
return fetchTimeoutInSeconds;
@@ -48,7 +44,7 @@ public long getMinimumFetchIntervalInSeconds() {
4844
return minimumFetchInterval;
4945
}
5046

51-
/** Constructs a builder initialized with the current FirebaseRemoteConfigSettings. */
47+
/** Constructs a builder initialized with the current {@link FirebaseRemoteConfigSettings}. */
5248
@NonNull
5349
public FirebaseRemoteConfigSettings.Builder toBuilder() {
5450
FirebaseRemoteConfigSettings.Builder frcBuilder = new FirebaseRemoteConfigSettings.Builder();
@@ -68,7 +64,7 @@ public static class Builder {
6864
* servers in seconds.
6965
*
7066
* <p>A fetch call will fail if it takes longer than the specified timeout to connect to or read
71-
* from the Remote Config servers.
67+
* from the Remote Config server.
7268
*
7369
* @param duration Timeout duration in seconds. Should be a non-negative number.
7470
*/
@@ -109,7 +105,7 @@ public Builder setMinimumFetchIntervalInSeconds(long duration) {
109105
* Returns the fetch timeout in seconds.
110106
*
111107
* <p>The timeout specifies how long the client should wait for a connection to the Firebase
112-
* Remote Config servers.
108+
* Remote Config server.
113109
*/
114110
public long getFetchTimeoutInSeconds() {
115111
return fetchTimeoutInSeconds;

0 commit comments

Comments
 (0)