Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit 145258d

Browse files
Upgrade native SDKs to iOS 6.2.0 and Android 16.0.9 #1283 (Android)
1 parent 80f6b18 commit 145258d

35 files changed

+26624
-10451
lines changed

demo-ng/app/tabs/mlkit/mlkit.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ export class MLKitComponent {
256256
}).then((languageIdResult: MLKitNaturalLanguageIdentificationResult) => {
257257
alert({
258258
title: `Result`,
259-
message: `Language code: ${languageIdResult.languageCode}`,
259+
message: `Language code: ${languageIdResult ? languageIdResult.languageCode : "Unknown" }`,
260260
okButtonText: "OK"
261261
});
262262
}).catch(errorMessage => console.log("ML Kit error: " + errorMessage));

demo/app/main-page.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@
224224
<Button row="49" col="1" text="set int crashlytics" tap="{{ doSetCrashlyticInt }}" class="button button-crash"/>
225225
<Button row="50" colSpan="2" text="SetUserId" tap="{{ doSetUserId }}" class="button button-crash"/>
226226

227-
<Label row="51" colSpan="2" text="Performance Monitoring" class="subtitle"/>
227+
<Label row="51" colSpan="2" text="Perf. Monitoring (see the console log)" class="subtitle"/>
228228
<Button row="52" col="0" text="start trace" tap="{{ startPerformanceMonitoringTrace }}" class="button button-performance"/>
229229
<Button row="52" col="1" text="stop trace" tap="{{ stopPerformanceMonitoringTrace }}" class="button button-performance"/>
230230
<Button row="53" col="0" text="set value trace" tap="{{ setValuePerformanceMonitoring }}" class="button button-performance"/>

demo/app/main-view-model.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1697,10 +1697,12 @@ export class HelloWorldModel extends Observable {
16971697
firebase.reauthenticate({
16981698
type: firebase.LoginType.GOOGLE
16991699
}).then(
1700-
() => {
1700+
result => {
1701+
console.log("Google login OK: " + JSON.stringify(result));
17011702
alert({
1702-
title: "Re-authenticated Google user",
1703-
okButtonText: "OK"
1703+
title: "Reauthenticated with Google",
1704+
message: JSON.stringify(result),
1705+
okButtonText: "Nice!"
17041706
});
17051707
},
17061708
error => {

publish/scripts/installer.js

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -726,63 +726,64 @@ dependencies {
726726
implementation "com.android.support:support-compat:$supportVersion"
727727
728728
// make sure you have these versions by updating your local Android SDK's (Android Support repo and Google repo)
729-
implementation "com.google.firebase:firebase-core:16.0.8"
729+
implementation "com.google.firebase:firebase-core:16.0.9"
730730
731731
// for reading google-services.json and configuration
732732
implementation "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
733733
734734
// Authentication
735-
` + (!externalPushClientOnly && (!isPresent(result.authentication) || isSelected(result.authentication)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-auth:16.2.1"
735+
` + (!externalPushClientOnly && (!isPresent(result.authentication) || isSelected(result.authentication)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-auth:17.0.0"
736736
737737
// Realtime DB
738-
` + (!externalPushClientOnly && (!isPresent(result.realtimedb) || isSelected(result.realtimedb)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-database:16.1.0"
738+
` + (!externalPushClientOnly && (!isPresent(result.realtimedb) || isSelected(result.realtimedb)) ? `` : `//`) + ` implementation "com.google.firebase:firebase-database:17.0.0"
739739
740740
// Cloud Firestore
741-
` + (isSelected(result.firestore) ? `` : `//`) + ` implementation "com.google.firebase:firebase-firestore:18.2.0"
741+
` + (isSelected(result.firestore) ? `` : `//`) + ` implementation "com.google.firebase:firebase-firestore:19.0.2"
742742
743743
// Remote Config
744-
` + (isSelected(result.remote_config) ? `` : `//`) + ` implementation "com.google.firebase:firebase-config:16.5.0"
744+
` + (isSelected(result.remote_config) ? `` : `//`) + ` implementation "com.google.firebase:firebase-config:17.0.0"
745745
746746
// Performance Monitoring
747-
` + (isSelected(result.performance_monitoring) ? `` : `//`) + ` implementation "com.google.firebase:firebase-perf:16.2.5"
747+
` + (isSelected(result.performance_monitoring) ? `` : `//`) + ` implementation "com.google.firebase:firebase-perf:17.0.2"
748748
749749
// Crashlytics
750-
` + (isSelected(result.crashlytics) ? `` : `//`) + ` implementation "com.crashlytics.sdk.android:crashlytics:2.9.9"
750+
` + (isSelected(result.crashlytics) ? `` : `//`) + ` implementation "com.crashlytics.sdk.android:crashlytics:2.10.1"
751751
752752
// Cloud Messaging (FCM)
753-
` + (isSelected(result.messaging) || externalPushClientOnly ? `` : `//`) + ` implementation "com.google.firebase:firebase-messaging:17.6.0"
753+
` + (isSelected(result.messaging) || externalPushClientOnly ? `` : `//`) + ` implementation "com.google.firebase:firebase-messaging:18.0.0"
754754
// ` + (isSelected(result.messaging) || externalPushClientOnly ? `` : `//`) + ` implementation "me.leolin:ShortcutBadger:1.1.22@aar"
755755
756756
// In-App Messaging
757-
` + (isSelected(result.in_app_messaging) ? `` : `//`) + ` implementation "com.google.firebase:firebase-inappmessaging-display:17.1.1"
757+
` + (isSelected(result.in_app_messaging) ? `` : `//`) + ` implementation "com.google.firebase:firebase-inappmessaging-display:17.2.0"
758758
// not entirely sure this is needed, but doesn't hurt.. make sure to check the compatible version when bumping firebase-inappmessaging-display
759759
` + (isSelected(result.in_app_messaging) ? `` : `//`) + ` implementation "com.squareup.picasso:picasso:2.5.2"
760760
761761
// Cloud Storage
762-
` + (isSelected(result.storage) ? `` : `//`) + ` implementation "com.google.firebase:firebase-storage:16.1.0"
762+
` + (isSelected(result.storage) ? `` : `//`) + ` implementation "com.google.firebase:firebase-storage:17.0.0"
763763
764764
// Cloud Functions
765-
` + (isSelected(result.functions) ? `` : `//`) + ` implementation "com.google.firebase:firebase-functions:16.3.0"
765+
` + (isSelected(result.functions) ? `` : `//`) + ` implementation "com.google.firebase:firebase-functions:17.0.0"
766766
767767
// AdMob / Ads
768-
` + (isSelected(result.admob) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ads:17.2.0"
768+
` + (isSelected(result.admob) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ads:17.2.1"
769769
770770
// ML Kit
771-
` + (isSelected(result.ml_kit) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision:19.0.3"
771+
` + (isSelected(result.ml_kit) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision:20.0.0"
772772
` + (isSelected(result.ml_kit_image_labeling) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-vision-image-label-model:17.0.2"
773-
` + (isSelected(result.ml_kit_custom_model) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-model-interpreter:18.0.0"
774-
` + (isSelected(result.ml_kit_natural_language_identification) || isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language:18.2.0"
775-
` + (isSelected(result.ml_kit_natural_language_identification) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-language-id-model:18.0.3"
776-
` + (isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-smart-reply-model:18.0.0"
773+
` + (isSelected(result.ml_kit_custom_model) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-model-interpreter:19.0.0"
774+
` + (isSelected(result.ml_kit_natural_language_identification) || isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language:19.0.1"
775+
` + (isSelected(result.ml_kit_natural_language_identification) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-language-id-model:19.0.1"
776+
` + (isSelected(result.ml_kit_natural_language_smartreply) ? `` : `//`) + ` implementation "com.google.firebase:firebase-ml-natural-language-smart-reply-model:19.0.1"
777777
778778
// Facebook Authentication
779-
` + (isSelected(result.facebook_auth) ? `` : `//`) + ` implementation ("com.facebook.android:facebook-android-sdk:4.35.0"){ exclude group: 'com.google.zxing' }
779+
` + (isSelected(result.facebook_auth) ? `` : `//`) + ` implementation "com.facebook.android:facebook-core:5.0.1"
780+
` + (isSelected(result.facebook_auth) ? `` : `//`) + ` implementation "com.facebook.android:facebook-login:5.0.1"
780781
781782
// Google Sign-In Authentication
782783
` + (isSelected(result.google_auth) ? `` : `//`) + ` implementation "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
783784
784785
// Dynamic Links
785-
` + (isSelected(result.dynamic_links) ? `` : `//`) + ` implementation "com.google.firebase:firebase-dynamic-links:16.1.8"
786+
` + (isSelected(result.dynamic_links) ? `` : `//`) + ` implementation "com.google.firebase:firebase-dynamic-links:17.0.0"
786787
}
787788
788789
apply plugin: "com.google.gms.google-services"

src/firebase.android.ts

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -517,14 +517,13 @@ firebase.getRemoteConfig = arg => {
517517
// Get a Remote Config object instance
518518
const firebaseRemoteConfig = com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance();
519519

520-
// Enable developer mode to allow for frequent refreshes of the cache
521-
const remoteConfigSettings = new com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings.Builder()
522-
.setDeveloperModeEnabled(arg.developerMode || false)
523-
.build();
524-
525-
firebaseRemoteConfig.setConfigSettings(remoteConfigSettings);
520+
// Enable developer mode to allow for frequent refreshes of the cache (this changed, see https://firebase.google.com/support/release-notes/android#version_1700)
521+
const remoteConfigSettingsBuilder = new com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings.Builder();
522+
if (arg.developerMode === true) {
523+
remoteConfigSettingsBuilder.setFetchTimeoutInSeconds(0);
524+
}
526525

527-
const addOnCompleteListener = new gmsTasks.OnCompleteListener({
526+
const addOnSetDefaultsCompleteListener = new gmsTasks.OnCompleteListener({
528527
onComplete: task => {
529528
if (!task.isSuccessful()) {
530529
reject((task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()));
@@ -539,8 +538,8 @@ firebase.getRemoteConfig = arg => {
539538
const lastFetch = new Date(lastFetchTime);
540539

541540
const result = {
542-
lastFetch: lastFetch,
543-
throttled: throttled,
541+
lastFetch,
542+
throttled,
544543
properties: {}
545544
};
546545

@@ -582,9 +581,21 @@ firebase.getRemoteConfig = arg => {
582581
}
583582
});
584583

585-
const defaults = firebase.getRemoteConfigDefaults(arg.properties);
586-
firebaseRemoteConfig.setDefaultsAsync(firebase.toHashMap(defaults))
587-
.addOnCompleteListener(addOnCompleteListener);
584+
const addOnSetConfigSettingsCompleteListener = new gmsTasks.OnCompleteListener({
585+
onComplete: task => {
586+
if (!task.isSuccessful()) {
587+
reject((task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()));
588+
} else {
589+
const defaults = firebase.getRemoteConfigDefaults(arg.properties);
590+
firebaseRemoteConfig.setDefaultsAsync(firebase.toHashMap(defaults))
591+
.addOnCompleteListener(addOnSetDefaultsCompleteListener);
592+
}
593+
}
594+
});
595+
596+
firebaseRemoteConfig.setConfigSettingsAsync(remoteConfigSettingsBuilder.build())
597+
.addOnCompleteListener(addOnSetConfigSettingsCompleteListener);
598+
588599
};
589600

590601
try {
@@ -1187,10 +1198,16 @@ firebase.reauthenticate = arg => {
11871198
const onCompleteListener = new gmsTasks.OnCompleteListener({
11881199
onComplete: task => {
11891200
if (task.isSuccessful()) {
1190-
resolve();
1201+
const user = com.google.firebase.auth.FirebaseAuth.getInstance().getCurrentUser();
1202+
const loginResult = toLoginResult(user);
1203+
1204+
firebase.notifyAuthStateListeners({
1205+
loggedIn: true,
1206+
user: loginResult
1207+
});
1208+
resolve(loginResult);
11911209
} else {
1192-
// TODO extract error
1193-
reject("Reathentication failed");
1210+
reject((task.getException() && task.getException().getReason ? task.getException().getReason() : task.getException()));
11941211
}
11951212
}
11961213
});

src/firebase.ios.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,12 +1022,12 @@ firebase.reauthenticate = arg => {
10221022
reject(error.localizedDescription);
10231023

10241024
} else {
1025-
resolve(toLoginResult(authResult && authResult.user, authResult && authResult.additionalUserInfo));
1026-
10271025
firebase.notifyAuthStateListeners({
10281026
loggedIn: true,
10291027
user: toLoginResult(authResult.user)
10301028
});
1029+
1030+
resolve(toLoginResult(authResult && authResult.user, authResult && authResult.additionalUserInfo));
10311031
}
10321032
};
10331033
user.reauthenticateWithCredentialCompletion(authCredential, onCompletion);

src/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,8 @@
7272
"ios.list-devices": "tns device ios --available-devices",
7373
"generate.typings.ios": "echo '##### Make sure to first run demo-ng.ios #####' && cd ../demo-ng && TNS_DEBUG_METADATA_PATH=\"$(pwd)/metadata\" tns build ios && TNS_TYPESCRIPT_DECLARATIONS_PATH=\"$(pwd)/typings\" tns build ios && echo 'Now look for your library typings in demo-ng/typings!'",
7474
"generate.typings.android": "echo '##### Download the latest relevant .aar file from https://mvnrepository.com/artifact/com.google.firebase, rename .aar to .zip and extract it. Then move classes.jar to the plugin /src folder' && java -jar ../../android-dts-generator/dts-generator/build/libs/dts-generator.jar -input ./classes.jar -output platforms/android/typings/$npm_package_config_typings && rimraf classes.jar && echo '##### Done! Deleted src/classes.jar, and generated typings in src/platforms/android/typings/'",
75-
"generate.typings.android.admob": "npm run generate.typings.android --nativescript-plugin-firebase:typings=admob",
7675
"generate.typings.android.analytics": "npm run generate.typings.android --nativescript-plugin-firebase:typings=analytics-impl",
7776
"generate.typings.android.auth": "npm run generate.typings.android --nativescript-plugin-firebase:typings=auth",
78-
"generate.typings.android.core": "npm run generate.typings.android --nativescript-plugin-firebase:typings=core",
7977
"generate.typings.android.database": "npm run generate.typings.android --nativescript-plugin-firebase:typings=database --nativescript-plugin-firebase:typingsproject=demo",
8078
"generate.typings.android.dynamiclinks": "npm run generate.typings.android --nativescript-plugin-firebase:typings=dynamiclinks --nativescript-plugin-firebase:typingsproject=demo",
8179
"generate.typings.android.firestore": "npm run generate.typings.android --nativescript-plugin-firebase:typings=firestore",
@@ -86,7 +84,8 @@
8684
"generate.typings.android.functions": "npm run generate.typings.android --nativescript-plugin-firebase:typings=functions",
8785
"generate.typings.android.mlkit": "npm run generate.typings.android --nativescript-plugin-firebase:typings=mlkit",
8886
"generate.typings.android.crashlytics": "npm run generate.typings.android --nativescript-plugin-firebase:typings=crashlytics",
89-
"generate.typings.android.inappmessaging": "npm run generate.typings.android --nativescript-plugin-firebase:typings=inappmessaging"
87+
"generate.typings.android.inappmessaging": "npm run generate.typings.android --nativescript-plugin-firebase:typings=inappmessaging",
88+
"generate.typings.android.performance": "npm run generate.typings.android --nativescript-plugin-firebase:typings=performance"
9089
},
9190
"repository": {
9291
"type": "git",

src/performance/performance.android.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
declare const com: any;
2-
31
export function startTrace(name: string): FirebaseTrace {
42
const trace = com.google.firebase.perf.FirebasePerformance.getInstance().newTrace(name);
53
trace.start();
64
return new FirebaseTrace(trace);
75
}
86

97
export class FirebaseTrace {
10-
constructor(private nativeTrace: any /* com.google.firebase.perf.metrics.Trace */) {
8+
constructor(private nativeTrace: com.google.firebase.perf.metrics.Trace) {
119
}
1210

1311
setValue(attribute: string, value: string): void {

src/platforms/android/typings/analytics-impl/_helpers.d.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module native { export class Array<T> { constructor(); length: number; [index: number]: T; } }
2+
3+
import globalAndroid = android;
4+

0 commit comments

Comments
 (0)