Skip to content

Commit d95653f

Browse files
committed
Merge branch 'main' into mrober/datastore-bump
2 parents 5992055 + 79deb5f commit d95653f

File tree

71 files changed

+1797
-225
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1797
-225
lines changed

.github/workflows/dataconnect.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,10 @@ jobs:
217217
if-no-files-found: warn
218218
compression-level: 9
219219

220-
- name: Check test result
220+
- name: Verify "Gradle connectedCheck" step was successful
221221
if: steps.connectedCheck.outcome != 'success'
222222
run: |
223-
echo "Failing the job since the connectedCheck step failed"
223+
echo 'Failing because the outcome of the "Gradle connectedCheck" step ("${{ steps.connectedCheck.outcome }}") was not successful'
224224
exit 1
225225
226226
# Check this yml file with "actionlint": https://github.com/rhysd/actionlint
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Metalava SemVer Check
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
semver-check:
8+
runs-on: ubuntu-latest
9+
permissions:
10+
pull-requests: write
11+
steps:
12+
- name: Checkout main
13+
uses: actions/[email protected]
14+
with:
15+
ref: ${{ github.base_ref }}
16+
17+
- name: Set up JDK 17
18+
uses: actions/[email protected]
19+
with:
20+
java-version: 17
21+
distribution: temurin
22+
cache: gradle
23+
24+
- name: Copy previous api.txt files
25+
run: ./gradlew copyApiTxtFile
26+
27+
- name: Checkout PR
28+
uses: actions/[email protected]
29+
with:
30+
ref: ${{ github.head_ref }}
31+
clean: false
32+
33+
- name: Run Metalava SemVer check
34+
run: ./gradlew metalavaSemver

firebase-appdistribution/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Unreleased
2-
2+
* [fixed] Added custom tab support for more browsers [#6692]
33

44
# 16.0.0-beta14
55
* [changed] Internal improvements to testing on Android 14

firebase-appdistribution/src/main/AndroidManifest.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@
2121
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
2222
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2323

24+
<queries>
25+
<intent>
26+
<action android:name="android.support.customtabs.action.CustomTabsService" />
27+
</intent>
28+
</queries>
29+
2430
<application>
2531
<service
2632
android:name="com.google.firebase.components.ComponentDiscoveryService"

firebase-appdistribution/src/main/java/com/google/firebase/appdistribution/impl/TesterSignInManager.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import android.app.Activity;
2222
import android.content.Context;
2323
import android.content.Intent;
24-
import android.content.pm.ResolveInfo;
2524
import android.net.Uri;
2625
import androidx.annotation.NonNull;
2726
import androidx.annotation.VisibleForTesting;
27+
import androidx.browser.customtabs.CustomTabsClient;
2828
import androidx.browser.customtabs.CustomTabsIntent;
2929
import com.google.android.gms.tasks.OnFailureListener;
3030
import com.google.android.gms.tasks.Task;
@@ -36,7 +36,7 @@
3636
import com.google.firebase.appdistribution.FirebaseAppDistributionException.Status;
3737
import com.google.firebase.inject.Provider;
3838
import com.google.firebase.installations.FirebaseInstallationsApi;
39-
import java.util.List;
39+
import java.util.Collections;
4040
import java.util.concurrent.Executor;
4141
import javax.inject.Inject;
4242
import javax.inject.Singleton;
@@ -212,10 +212,7 @@ private void openSignInFlowInBrowser(String fid, Activity activity) {
212212
}
213213

214214
private boolean supportsCustomTabs(Context context) {
215-
Intent customTabIntent = new Intent("android.support.customtabs.action.CustomTabsService");
216-
customTabIntent.setPackage("com.android.chrome");
217-
List<ResolveInfo> resolveInfos =
218-
context.getPackageManager().queryIntentServices(customTabIntent, 0);
219-
return resolveInfos != null && !resolveInfos.isEmpty();
215+
String packageName = CustomTabsClient.getPackageName(context, Collections.emptyList());
216+
return packageName != null;
220217
}
221218
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -656,16 +656,17 @@ private Task<Void> setDefaultsWithStringsMapAsync(Map<String, String> defaultsSt
656656
* Asynchronously changes the custom signals for this {@link FirebaseRemoteConfig} instance.
657657
*
658658
* <p>Custom signals are subject to limits on the size of key/value pairs and the total
659-
* number of signals. Any calls that exceed these limits will be discarded.
659+
* number of signals. Any calls that exceed these limits will be discarded. See <a
660+
* href="https://firebase.google.com/docs/remote-config/parameters?template_type=client#custom-signal-limits">Custom
661+
* Signal Limits</a>.
660662
*
661663
* @param customSignals The custom signals to set for this instance.
662-
* <ol>
664+
* <ul>
663665
* <li>New keys will add new key-value pairs in the custom signals.
664666
* <li>Existing keys with new values will update the corresponding signals.
665667
* <li>Setting a key's value to {@code null} will remove the associated signal.
666-
* </ol>
668+
* </ul>
667669
*/
668-
// TODO(b/385028620): Add link to documentation about custom signal limits.
669670
@NonNull
670671
public Task<Void> setCustomSignals(@NonNull CustomSignals customSignals) {
671672
return Tasks.call(

firebase-crashlytics-ndk/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Unreleased
2-
2+
* [changed] Updated `firebase-crashlytics` dependency to v19.4.1
33

44
# 19.3.0
55
* [changed] Updated `firebase-crashlytics` dependency to v19.3.0

firebase-crashlytics/CHANGELOG.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Unreleased
2+
* [fixed] Fixed NoSuchMethodError when getting process info on Android 13 [#6720]
23

4+
# 19.4.1
5+
* [changed] Updated `firebase-sessions` dependency to v2.0.9
6+
7+
8+
## Kotlin
9+
The Kotlin extensions library transitively includes the updated
10+
`firebase-crashlytics` library. The Kotlin extensions library has no additional
11+
updates.
312

413
# 19.4.0
514
* [feature] Added an overload for `recordException` that allows logging additional custom
@@ -324,10 +333,10 @@ updates.
324333

325334
# 18.2.10
326335
* [fixed] Fixed a bug that could prevent unhandled exceptions from being
327-
propogated to the default handler when the network is unavailable.
336+
propagated to the default handler when the network is unavailable.
328337
* [changed] Internal changes to support on-demand fatal crash reporting for
329338
Flutter apps.
330-
* [fixed] Fixed a bug that prevented [crashlytics] from initalizing on some
339+
* [fixed] Fixed a bug that prevented [crashlytics] from initializing on some
331340
devices in some cases. (#3269)
332341

333342

firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/ProcessDetailsProvider.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import com.google.firebase.crashlytics.internal.model.CrashlyticsReport.Session.
2929
* @hide
3030
*/
3131
internal object ProcessDetailsProvider {
32+
// TODO(mrober): Merge this with [com.google.firebase.sessions.ProcessDetailsProvider].
33+
3234
/** Gets the details for all of this app's running processes. */
3335
fun getAppProcessDetails(context: Context): List<ProcessDetails> {
3436
val appUid = context.applicationInfo.uid
@@ -70,7 +72,7 @@ internal object ProcessDetailsProvider {
7072
processName: String,
7173
pid: Int = 0,
7274
importance: Int = 0,
73-
isDefaultProcess: Boolean = false
75+
isDefaultProcess: Boolean = false,
7476
) =
7577
ProcessDetails.builder()
7678
.setProcessName(processName)
@@ -81,7 +83,7 @@ internal object ProcessDetailsProvider {
8183

8284
/** Gets the app's current process name. If the API is not available, returns an empty string. */
8385
private fun getProcessName(): String =
84-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
86+
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) {
8587
Process.myProcessName()
8688
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
8789
Application.getProcessName() ?: ""

firebase-dataconnect/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Unreleased
2-
2+
* [changed] Changed gRPC proto package to v1 (was v1beta).
3+
([#6729](https://github.com/firebase/firebase-android-sdk/pull/6729))
34

45
# 16.0.0-beta04
56
* [changed] `FirebaseDataConnect.logLevel` type changed from `LogLevel` to

0 commit comments

Comments
 (0)