From e09b2a503f666c7d96b48b9c062e7a37e3407277 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 25 Jul 2023 15:43:56 -0400 Subject: [PATCH 01/33] update --- .../gradle/plugins/FirebaseLibraryPlugin.kt | 9 + .../gradle/plugins/PackageTransform.kt | 35 +++ .../current-version/AndroidManifest.xml | 9 + .../ktx/semver/current-version/R.txt | 202 ++++++++++++++++++ .../ktx/semver/current-version/classes.jar | Bin 0 -> 967 bytes .../current-version/third_party_licenses.json | 1 + .../current-version/third_party_licenses.txt | 0 .../previous-version/AndroidManifest.xml | 20 ++ .../ktx/semver/previous-version/R.txt | 202 ++++++++++++++++++ .../ktx/semver/previous-version/classes.jar | Bin 0 -> 12334 bytes .../third_party_licenses.json | 1 + .../previous-version/third_party_licenses.txt | 0 firebase-common/ktx/semver/previous.aar | Bin 0 -> 13252 bytes .../current-version/AndroidManifest.xml | 43 ++++ firebase-common/semver/current-version/R.txt | 202 ++++++++++++++++++ .../semver/current-version/classes.jar | Bin 0 -> 96636 bytes .../semver/current-version/proguard.txt | 3 + .../res/raw/firebase_common_keep.xml | 3 + .../current-version/third_party_licenses.json | 1 + .../current-version/third_party_licenses.txt | 0 .../previous-version/AndroidManifest.xml | 39 ++++ firebase-common/semver/previous-version/R.txt | 202 ++++++++++++++++++ .../semver/previous-version/classes.jar | Bin 0 -> 80338 bytes .../semver/previous-version/proguard.txt | 3 + .../res/raw/firebase_common_keep.xml | 3 + .../third_party_licenses.json | 1 + .../previous-version/third_party_licenses.txt | 0 firebase-common/semver/previous.aar | Bin 0 -> 75565 bytes .../java/com/google/firebase/ktx/Firebase.kt | 84 ++++++++ 29 files changed, 1063 insertions(+) create mode 100644 buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt create mode 100644 firebase-common/ktx/semver/current-version/AndroidManifest.xml create mode 100644 firebase-common/ktx/semver/current-version/R.txt create mode 100644 firebase-common/ktx/semver/current-version/classes.jar create mode 100644 firebase-common/ktx/semver/current-version/third_party_licenses.json create mode 100644 firebase-common/ktx/semver/current-version/third_party_licenses.txt create mode 100644 firebase-common/ktx/semver/previous-version/AndroidManifest.xml create mode 100644 firebase-common/ktx/semver/previous-version/R.txt create mode 100644 firebase-common/ktx/semver/previous-version/classes.jar create mode 100644 firebase-common/ktx/semver/previous-version/third_party_licenses.json create mode 100644 firebase-common/ktx/semver/previous-version/third_party_licenses.txt create mode 100644 firebase-common/ktx/semver/previous.aar create mode 100644 firebase-common/semver/current-version/AndroidManifest.xml create mode 100644 firebase-common/semver/current-version/R.txt create mode 100644 firebase-common/semver/current-version/classes.jar create mode 100644 firebase-common/semver/current-version/proguard.txt create mode 100644 firebase-common/semver/current-version/res/raw/firebase_common_keep.xml create mode 100644 firebase-common/semver/current-version/third_party_licenses.json create mode 100644 firebase-common/semver/current-version/third_party_licenses.txt create mode 100644 firebase-common/semver/previous-version/AndroidManifest.xml create mode 100644 firebase-common/semver/previous-version/R.txt create mode 100644 firebase-common/semver/previous-version/classes.jar create mode 100644 firebase-common/semver/previous-version/proguard.txt create mode 100644 firebase-common/semver/previous-version/res/raw/firebase_common_keep.xml create mode 100644 firebase-common/semver/previous-version/third_party_licenses.json create mode 100644 firebase-common/semver/previous-version/third_party_licenses.txt create mode 100644 firebase-common/semver/previous.aar create mode 100644 firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.kt index 4660b859a21..2f05a18c25a 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/FirebaseLibraryPlugin.kt @@ -86,9 +86,18 @@ class FirebaseLibraryPlugin : BaseFirebaseLibraryPlugin() { setupStaticAnalysis(project, firebaseLibrary) getIsPomValidTask(project, firebaseLibrary) getSemverTaskAar(project, firebaseLibrary) + getPackageTransform(project, firebaseLibrary) configurePublishing(project, firebaseLibrary, android) } + private fun getPackageTransform(project: Project, firebaseLibrary: FirebaseLibraryExtension) { + project.tasks.register("packageTransform") { + groupId.set(firebaseLibrary.groupId.get()) + artifactId.set(firebaseLibrary.artifactId.get()) + projectPath.set(project.projectDir.absolutePath) + } + } + private fun getSemverTaskAar(project: Project, firebaseLibrary: FirebaseLibraryExtension) { project.mkdir("semver") project.tasks.register("copyPreviousArtifacts") { diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt new file mode 100644 index 00000000000..f793edb309b --- /dev/null +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -0,0 +1,35 @@ +package com.google.firebase.gradle.plugins + +import java.io.File +import java.nio.file.Files +import java.nio.file.Path +import org.gradle.api.DefaultTask +import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +abstract class PackageTransform : DefaultTask() { + @get:Input abstract val artifactId: Property + @get:Input abstract val groupId: Property + @get:Input abstract val projectPath: Property + + fun copyDir(src: Path, dest: Path) { + Files.walk(src).forEach { + if (!Files.isDirectory(it)) { + println(it) + println(dest.resolve(src.relativize(it))) + } + } + } + + @TaskAction + fun run() { + var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") + packageNamePath = packageNamePath.replace("common", "") + val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" + val ktxPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}/ktx" + val mainPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}" + copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath()) + copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath()) + } +} diff --git a/firebase-common/ktx/semver/current-version/AndroidManifest.xml b/firebase-common/ktx/semver/current-version/AndroidManifest.xml new file mode 100644 index 00000000000..4c4c769cfbf --- /dev/null +++ b/firebase-common/ktx/semver/current-version/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/firebase-common/ktx/semver/current-version/R.txt b/firebase-common/ktx/semver/current-version/R.txt new file mode 100644 index 00000000000..6702614e7b8 --- /dev/null +++ b/firebase-common/ktx/semver/current-version/R.txt @@ -0,0 +1,202 @@ +int attr alpha 0x0 +int attr coordinatorLayoutStyle 0x0 +int attr font 0x0 +int attr fontProviderAuthority 0x0 +int attr fontProviderCerts 0x0 +int attr fontProviderFetchStrategy 0x0 +int attr fontProviderFetchTimeout 0x0 +int attr fontProviderPackage 0x0 +int attr fontProviderQuery 0x0 +int attr fontStyle 0x0 +int attr fontVariationSettings 0x0 +int attr fontWeight 0x0 +int attr keylines 0x0 +int attr layout_anchor 0x0 +int attr layout_anchorGravity 0x0 +int attr layout_behavior 0x0 +int attr layout_dodgeInsetEdges 0x0 +int attr layout_insetEdge 0x0 +int attr layout_keyline 0x0 +int attr statusBarBackground 0x0 +int attr ttcIndex 0x0 +int color notification_action_color_filter 0x0 +int color notification_icon_bg_color 0x0 +int color ripple_material_light 0x0 +int color secondary_text_default_material_light 0x0 +int dimen compat_button_inset_horizontal_material 0x0 +int dimen compat_button_inset_vertical_material 0x0 +int dimen compat_button_padding_horizontal_material 0x0 +int dimen compat_button_padding_vertical_material 0x0 +int dimen compat_control_corner_material 0x0 +int dimen compat_notification_large_icon_max_height 0x0 +int dimen compat_notification_large_icon_max_width 0x0 +int dimen notification_action_icon_size 0x0 +int dimen notification_action_text_size 0x0 +int dimen notification_big_circle_margin 0x0 +int dimen notification_content_margin_start 0x0 +int dimen notification_large_icon_height 0x0 +int dimen notification_large_icon_width 0x0 +int dimen notification_main_column_padding_top 0x0 +int dimen notification_media_narrow_margin 0x0 +int dimen notification_right_icon_size 0x0 +int dimen notification_right_side_padding_top 0x0 +int dimen notification_small_icon_background_padding 0x0 +int dimen notification_small_icon_size_as_large 0x0 +int dimen notification_subtext_size 0x0 +int dimen notification_top_pad 0x0 +int dimen notification_top_pad_large_text 0x0 +int drawable notification_action_background 0x0 +int drawable notification_bg 0x0 +int drawable notification_bg_low 0x0 +int drawable notification_bg_low_normal 0x0 +int drawable notification_bg_low_pressed 0x0 +int drawable notification_bg_normal 0x0 +int drawable notification_bg_normal_pressed 0x0 +int drawable notification_icon_background 0x0 +int drawable notification_template_icon_bg 0x0 +int drawable notification_template_icon_low_bg 0x0 +int drawable notification_tile_bg 0x0 +int drawable notify_panel_notification_icon_bg 0x0 +int id accessibility_action_clickable_span 0x0 +int id accessibility_custom_action_0 0x0 +int id accessibility_custom_action_1 0x0 +int id accessibility_custom_action_10 0x0 +int id accessibility_custom_action_11 0x0 +int id accessibility_custom_action_12 0x0 +int id accessibility_custom_action_13 0x0 +int id accessibility_custom_action_14 0x0 +int id accessibility_custom_action_15 0x0 +int id accessibility_custom_action_16 0x0 +int id accessibility_custom_action_17 0x0 +int id accessibility_custom_action_18 0x0 +int id accessibility_custom_action_19 0x0 +int id accessibility_custom_action_2 0x0 +int id accessibility_custom_action_20 0x0 +int id accessibility_custom_action_21 0x0 +int id accessibility_custom_action_22 0x0 +int id accessibility_custom_action_23 0x0 +int id accessibility_custom_action_24 0x0 +int id accessibility_custom_action_25 0x0 +int id accessibility_custom_action_26 0x0 +int id accessibility_custom_action_27 0x0 +int id accessibility_custom_action_28 0x0 +int id accessibility_custom_action_29 0x0 +int id accessibility_custom_action_3 0x0 +int id accessibility_custom_action_30 0x0 +int id accessibility_custom_action_31 0x0 +int id accessibility_custom_action_4 0x0 +int id accessibility_custom_action_5 0x0 +int id accessibility_custom_action_6 0x0 +int id accessibility_custom_action_7 0x0 +int id accessibility_custom_action_8 0x0 +int id accessibility_custom_action_9 0x0 +int id action_container 0x0 +int id action_divider 0x0 +int id action_image 0x0 +int id action_text 0x0 +int id actions 0x0 +int id async 0x0 +int id blocking 0x0 +int id bottom 0x0 +int id chronometer 0x0 +int id dialog_button 0x0 +int id end 0x0 +int id forever 0x0 +int id icon 0x0 +int id icon_group 0x0 +int id info 0x0 +int id italic 0x0 +int id left 0x0 +int id line1 0x0 +int id line3 0x0 +int id none 0x0 +int id normal 0x0 +int id notification_background 0x0 +int id notification_main_column 0x0 +int id notification_main_column_container 0x0 +int id right 0x0 +int id right_icon 0x0 +int id right_side 0x0 +int id start 0x0 +int id tag_accessibility_actions 0x0 +int id tag_accessibility_clickable_spans 0x0 +int id tag_accessibility_heading 0x0 +int id tag_accessibility_pane_title 0x0 +int id tag_screen_reader_focusable 0x0 +int id tag_transition_group 0x0 +int id tag_unhandled_key_event_manager 0x0 +int id tag_unhandled_key_listeners 0x0 +int id text 0x0 +int id text2 0x0 +int id time 0x0 +int id title 0x0 +int id top 0x0 +int integer google_play_services_version 0x0 +int integer status_bar_notification_info_maxnum 0x0 +int layout custom_dialog 0x0 +int layout notification_action 0x0 +int layout notification_action_tombstone 0x0 +int layout notification_template_custom_big 0x0 +int layout notification_template_icon_group 0x0 +int layout notification_template_part_chronometer 0x0 +int layout notification_template_part_time 0x0 +int raw firebase_common_keep 0x0 +int string common_google_play_services_unknown_issue 0x0 +int string status_bar_notification_info_overflow 0x0 +int style TextAppearance_Compat_Notification 0x0 +int style TextAppearance_Compat_Notification_Info 0x0 +int style TextAppearance_Compat_Notification_Line2 0x0 +int style TextAppearance_Compat_Notification_Time 0x0 +int style TextAppearance_Compat_Notification_Title 0x0 +int style Widget_Compat_NotificationActionContainer 0x0 +int style Widget_Compat_NotificationActionText 0x0 +int style Widget_Support_CoordinatorLayout 0x0 +int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } +int styleable ColorStateListItem_alpha 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_android_color 2 +int[] styleable CoordinatorLayout { 0x0, 0x0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontStyle 1 +int styleable FontFamilyFont_android_fontVariationSettings 2 +int styleable FontFamilyFont_android_fontWeight 3 +int styleable FontFamilyFont_android_ttcIndex 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } +int styleable GradientColor_android_centerColor 0 +int styleable GradientColor_android_centerX 1 +int styleable GradientColor_android_centerY 2 +int styleable GradientColor_android_endColor 3 +int styleable GradientColor_android_endX 4 +int styleable GradientColor_android_endY 5 +int styleable GradientColor_android_gradientRadius 6 +int styleable GradientColor_android_startColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_tileMode 10 +int styleable GradientColor_android_type 11 +int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/ktx/semver/current-version/classes.jar b/firebase-common/ktx/semver/current-version/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..01765fb8091e175710648806ae7c367c43a1c6e5 GIT binary patch literal 967 zcmWIWW@cdk14Rx+CI|~cf`pUvbM*sos^EsINYBqt&q>9jPy|(BT4qsdQerVa9TGTn zWS3OH?crbmJ9*uatXxJ01~H)HHSy?jD$UGEan8?6%S_ix&PgmT?wxqj@34VD+y8~y zOP8{q3fji)#KhM-VMpVHT`VDjT(8s)E-eZ+mvCyj#PTs}&IF4O3^pQ3LfhmlE1u;4 z`Twor+26-sc@Hp}8FwVAwgz#nZgGiSU*^wQ;(Ow1O!^z{KSb$n8uX;N5R)LsHmgXM=>W`Mm3J} zUEZWjE*qXDhJQ~>KAXvT&gi*X#k6t}vGav}#!*KclHRj^k@0+HskS&ph+AfJJd?;q ziQZDpAl-VV0B=Sn24-ON00Fjy29aT4c + + + + + + + + + + + + \ No newline at end of file diff --git a/firebase-common/ktx/semver/previous-version/R.txt b/firebase-common/ktx/semver/previous-version/R.txt new file mode 100644 index 00000000000..6702614e7b8 --- /dev/null +++ b/firebase-common/ktx/semver/previous-version/R.txt @@ -0,0 +1,202 @@ +int attr alpha 0x0 +int attr coordinatorLayoutStyle 0x0 +int attr font 0x0 +int attr fontProviderAuthority 0x0 +int attr fontProviderCerts 0x0 +int attr fontProviderFetchStrategy 0x0 +int attr fontProviderFetchTimeout 0x0 +int attr fontProviderPackage 0x0 +int attr fontProviderQuery 0x0 +int attr fontStyle 0x0 +int attr fontVariationSettings 0x0 +int attr fontWeight 0x0 +int attr keylines 0x0 +int attr layout_anchor 0x0 +int attr layout_anchorGravity 0x0 +int attr layout_behavior 0x0 +int attr layout_dodgeInsetEdges 0x0 +int attr layout_insetEdge 0x0 +int attr layout_keyline 0x0 +int attr statusBarBackground 0x0 +int attr ttcIndex 0x0 +int color notification_action_color_filter 0x0 +int color notification_icon_bg_color 0x0 +int color ripple_material_light 0x0 +int color secondary_text_default_material_light 0x0 +int dimen compat_button_inset_horizontal_material 0x0 +int dimen compat_button_inset_vertical_material 0x0 +int dimen compat_button_padding_horizontal_material 0x0 +int dimen compat_button_padding_vertical_material 0x0 +int dimen compat_control_corner_material 0x0 +int dimen compat_notification_large_icon_max_height 0x0 +int dimen compat_notification_large_icon_max_width 0x0 +int dimen notification_action_icon_size 0x0 +int dimen notification_action_text_size 0x0 +int dimen notification_big_circle_margin 0x0 +int dimen notification_content_margin_start 0x0 +int dimen notification_large_icon_height 0x0 +int dimen notification_large_icon_width 0x0 +int dimen notification_main_column_padding_top 0x0 +int dimen notification_media_narrow_margin 0x0 +int dimen notification_right_icon_size 0x0 +int dimen notification_right_side_padding_top 0x0 +int dimen notification_small_icon_background_padding 0x0 +int dimen notification_small_icon_size_as_large 0x0 +int dimen notification_subtext_size 0x0 +int dimen notification_top_pad 0x0 +int dimen notification_top_pad_large_text 0x0 +int drawable notification_action_background 0x0 +int drawable notification_bg 0x0 +int drawable notification_bg_low 0x0 +int drawable notification_bg_low_normal 0x0 +int drawable notification_bg_low_pressed 0x0 +int drawable notification_bg_normal 0x0 +int drawable notification_bg_normal_pressed 0x0 +int drawable notification_icon_background 0x0 +int drawable notification_template_icon_bg 0x0 +int drawable notification_template_icon_low_bg 0x0 +int drawable notification_tile_bg 0x0 +int drawable notify_panel_notification_icon_bg 0x0 +int id accessibility_action_clickable_span 0x0 +int id accessibility_custom_action_0 0x0 +int id accessibility_custom_action_1 0x0 +int id accessibility_custom_action_10 0x0 +int id accessibility_custom_action_11 0x0 +int id accessibility_custom_action_12 0x0 +int id accessibility_custom_action_13 0x0 +int id accessibility_custom_action_14 0x0 +int id accessibility_custom_action_15 0x0 +int id accessibility_custom_action_16 0x0 +int id accessibility_custom_action_17 0x0 +int id accessibility_custom_action_18 0x0 +int id accessibility_custom_action_19 0x0 +int id accessibility_custom_action_2 0x0 +int id accessibility_custom_action_20 0x0 +int id accessibility_custom_action_21 0x0 +int id accessibility_custom_action_22 0x0 +int id accessibility_custom_action_23 0x0 +int id accessibility_custom_action_24 0x0 +int id accessibility_custom_action_25 0x0 +int id accessibility_custom_action_26 0x0 +int id accessibility_custom_action_27 0x0 +int id accessibility_custom_action_28 0x0 +int id accessibility_custom_action_29 0x0 +int id accessibility_custom_action_3 0x0 +int id accessibility_custom_action_30 0x0 +int id accessibility_custom_action_31 0x0 +int id accessibility_custom_action_4 0x0 +int id accessibility_custom_action_5 0x0 +int id accessibility_custom_action_6 0x0 +int id accessibility_custom_action_7 0x0 +int id accessibility_custom_action_8 0x0 +int id accessibility_custom_action_9 0x0 +int id action_container 0x0 +int id action_divider 0x0 +int id action_image 0x0 +int id action_text 0x0 +int id actions 0x0 +int id async 0x0 +int id blocking 0x0 +int id bottom 0x0 +int id chronometer 0x0 +int id dialog_button 0x0 +int id end 0x0 +int id forever 0x0 +int id icon 0x0 +int id icon_group 0x0 +int id info 0x0 +int id italic 0x0 +int id left 0x0 +int id line1 0x0 +int id line3 0x0 +int id none 0x0 +int id normal 0x0 +int id notification_background 0x0 +int id notification_main_column 0x0 +int id notification_main_column_container 0x0 +int id right 0x0 +int id right_icon 0x0 +int id right_side 0x0 +int id start 0x0 +int id tag_accessibility_actions 0x0 +int id tag_accessibility_clickable_spans 0x0 +int id tag_accessibility_heading 0x0 +int id tag_accessibility_pane_title 0x0 +int id tag_screen_reader_focusable 0x0 +int id tag_transition_group 0x0 +int id tag_unhandled_key_event_manager 0x0 +int id tag_unhandled_key_listeners 0x0 +int id text 0x0 +int id text2 0x0 +int id time 0x0 +int id title 0x0 +int id top 0x0 +int integer google_play_services_version 0x0 +int integer status_bar_notification_info_maxnum 0x0 +int layout custom_dialog 0x0 +int layout notification_action 0x0 +int layout notification_action_tombstone 0x0 +int layout notification_template_custom_big 0x0 +int layout notification_template_icon_group 0x0 +int layout notification_template_part_chronometer 0x0 +int layout notification_template_part_time 0x0 +int raw firebase_common_keep 0x0 +int string common_google_play_services_unknown_issue 0x0 +int string status_bar_notification_info_overflow 0x0 +int style TextAppearance_Compat_Notification 0x0 +int style TextAppearance_Compat_Notification_Info 0x0 +int style TextAppearance_Compat_Notification_Line2 0x0 +int style TextAppearance_Compat_Notification_Time 0x0 +int style TextAppearance_Compat_Notification_Title 0x0 +int style Widget_Compat_NotificationActionContainer 0x0 +int style Widget_Compat_NotificationActionText 0x0 +int style Widget_Support_CoordinatorLayout 0x0 +int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } +int styleable ColorStateListItem_alpha 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_android_color 2 +int[] styleable CoordinatorLayout { 0x0, 0x0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontStyle 1 +int styleable FontFamilyFont_android_fontVariationSettings 2 +int styleable FontFamilyFont_android_fontWeight 3 +int styleable FontFamilyFont_android_ttcIndex 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } +int styleable GradientColor_android_centerColor 0 +int styleable GradientColor_android_centerX 1 +int styleable GradientColor_android_centerY 2 +int styleable GradientColor_android_endColor 3 +int styleable GradientColor_android_endX 4 +int styleable GradientColor_android_endY 5 +int styleable GradientColor_android_gradientRadius 6 +int styleable GradientColor_android_startColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_tileMode 10 +int styleable GradientColor_android_type 11 +int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/ktx/semver/previous-version/classes.jar b/firebase-common/ktx/semver/previous-version/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..a9aa5e734fdfb634ce1ba4ca2b3a4663412f5c03 GIT binary patch literal 12334 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 literal 0 HcmV?d00001 diff --git a/firebase-common/ktx/semver/previous-version/third_party_licenses.json b/firebase-common/ktx/semver/previous-version/third_party_licenses.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/firebase-common/ktx/semver/previous-version/third_party_licenses.json @@ -0,0 +1 @@ +{} diff --git a/firebase-common/ktx/semver/previous-version/third_party_licenses.txt b/firebase-common/ktx/semver/previous-version/third_party_licenses.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/firebase-common/ktx/semver/previous.aar b/firebase-common/ktx/semver/previous.aar new file mode 100644 index 0000000000000000000000000000000000000000..a7573740299ed5c06ecdb597e1d198f9afec766f GIT binary patch literal 13252 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/firebase-common/semver/current-version/R.txt b/firebase-common/semver/current-version/R.txt new file mode 100644 index 00000000000..6702614e7b8 --- /dev/null +++ b/firebase-common/semver/current-version/R.txt @@ -0,0 +1,202 @@ +int attr alpha 0x0 +int attr coordinatorLayoutStyle 0x0 +int attr font 0x0 +int attr fontProviderAuthority 0x0 +int attr fontProviderCerts 0x0 +int attr fontProviderFetchStrategy 0x0 +int attr fontProviderFetchTimeout 0x0 +int attr fontProviderPackage 0x0 +int attr fontProviderQuery 0x0 +int attr fontStyle 0x0 +int attr fontVariationSettings 0x0 +int attr fontWeight 0x0 +int attr keylines 0x0 +int attr layout_anchor 0x0 +int attr layout_anchorGravity 0x0 +int attr layout_behavior 0x0 +int attr layout_dodgeInsetEdges 0x0 +int attr layout_insetEdge 0x0 +int attr layout_keyline 0x0 +int attr statusBarBackground 0x0 +int attr ttcIndex 0x0 +int color notification_action_color_filter 0x0 +int color notification_icon_bg_color 0x0 +int color ripple_material_light 0x0 +int color secondary_text_default_material_light 0x0 +int dimen compat_button_inset_horizontal_material 0x0 +int dimen compat_button_inset_vertical_material 0x0 +int dimen compat_button_padding_horizontal_material 0x0 +int dimen compat_button_padding_vertical_material 0x0 +int dimen compat_control_corner_material 0x0 +int dimen compat_notification_large_icon_max_height 0x0 +int dimen compat_notification_large_icon_max_width 0x0 +int dimen notification_action_icon_size 0x0 +int dimen notification_action_text_size 0x0 +int dimen notification_big_circle_margin 0x0 +int dimen notification_content_margin_start 0x0 +int dimen notification_large_icon_height 0x0 +int dimen notification_large_icon_width 0x0 +int dimen notification_main_column_padding_top 0x0 +int dimen notification_media_narrow_margin 0x0 +int dimen notification_right_icon_size 0x0 +int dimen notification_right_side_padding_top 0x0 +int dimen notification_small_icon_background_padding 0x0 +int dimen notification_small_icon_size_as_large 0x0 +int dimen notification_subtext_size 0x0 +int dimen notification_top_pad 0x0 +int dimen notification_top_pad_large_text 0x0 +int drawable notification_action_background 0x0 +int drawable notification_bg 0x0 +int drawable notification_bg_low 0x0 +int drawable notification_bg_low_normal 0x0 +int drawable notification_bg_low_pressed 0x0 +int drawable notification_bg_normal 0x0 +int drawable notification_bg_normal_pressed 0x0 +int drawable notification_icon_background 0x0 +int drawable notification_template_icon_bg 0x0 +int drawable notification_template_icon_low_bg 0x0 +int drawable notification_tile_bg 0x0 +int drawable notify_panel_notification_icon_bg 0x0 +int id accessibility_action_clickable_span 0x0 +int id accessibility_custom_action_0 0x0 +int id accessibility_custom_action_1 0x0 +int id accessibility_custom_action_10 0x0 +int id accessibility_custom_action_11 0x0 +int id accessibility_custom_action_12 0x0 +int id accessibility_custom_action_13 0x0 +int id accessibility_custom_action_14 0x0 +int id accessibility_custom_action_15 0x0 +int id accessibility_custom_action_16 0x0 +int id accessibility_custom_action_17 0x0 +int id accessibility_custom_action_18 0x0 +int id accessibility_custom_action_19 0x0 +int id accessibility_custom_action_2 0x0 +int id accessibility_custom_action_20 0x0 +int id accessibility_custom_action_21 0x0 +int id accessibility_custom_action_22 0x0 +int id accessibility_custom_action_23 0x0 +int id accessibility_custom_action_24 0x0 +int id accessibility_custom_action_25 0x0 +int id accessibility_custom_action_26 0x0 +int id accessibility_custom_action_27 0x0 +int id accessibility_custom_action_28 0x0 +int id accessibility_custom_action_29 0x0 +int id accessibility_custom_action_3 0x0 +int id accessibility_custom_action_30 0x0 +int id accessibility_custom_action_31 0x0 +int id accessibility_custom_action_4 0x0 +int id accessibility_custom_action_5 0x0 +int id accessibility_custom_action_6 0x0 +int id accessibility_custom_action_7 0x0 +int id accessibility_custom_action_8 0x0 +int id accessibility_custom_action_9 0x0 +int id action_container 0x0 +int id action_divider 0x0 +int id action_image 0x0 +int id action_text 0x0 +int id actions 0x0 +int id async 0x0 +int id blocking 0x0 +int id bottom 0x0 +int id chronometer 0x0 +int id dialog_button 0x0 +int id end 0x0 +int id forever 0x0 +int id icon 0x0 +int id icon_group 0x0 +int id info 0x0 +int id italic 0x0 +int id left 0x0 +int id line1 0x0 +int id line3 0x0 +int id none 0x0 +int id normal 0x0 +int id notification_background 0x0 +int id notification_main_column 0x0 +int id notification_main_column_container 0x0 +int id right 0x0 +int id right_icon 0x0 +int id right_side 0x0 +int id start 0x0 +int id tag_accessibility_actions 0x0 +int id tag_accessibility_clickable_spans 0x0 +int id tag_accessibility_heading 0x0 +int id tag_accessibility_pane_title 0x0 +int id tag_screen_reader_focusable 0x0 +int id tag_transition_group 0x0 +int id tag_unhandled_key_event_manager 0x0 +int id tag_unhandled_key_listeners 0x0 +int id text 0x0 +int id text2 0x0 +int id time 0x0 +int id title 0x0 +int id top 0x0 +int integer google_play_services_version 0x0 +int integer status_bar_notification_info_maxnum 0x0 +int layout custom_dialog 0x0 +int layout notification_action 0x0 +int layout notification_action_tombstone 0x0 +int layout notification_template_custom_big 0x0 +int layout notification_template_icon_group 0x0 +int layout notification_template_part_chronometer 0x0 +int layout notification_template_part_time 0x0 +int raw firebase_common_keep 0x0 +int string common_google_play_services_unknown_issue 0x0 +int string status_bar_notification_info_overflow 0x0 +int style TextAppearance_Compat_Notification 0x0 +int style TextAppearance_Compat_Notification_Info 0x0 +int style TextAppearance_Compat_Notification_Line2 0x0 +int style TextAppearance_Compat_Notification_Time 0x0 +int style TextAppearance_Compat_Notification_Title 0x0 +int style Widget_Compat_NotificationActionContainer 0x0 +int style Widget_Compat_NotificationActionText 0x0 +int style Widget_Support_CoordinatorLayout 0x0 +int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } +int styleable ColorStateListItem_alpha 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_android_color 2 +int[] styleable CoordinatorLayout { 0x0, 0x0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontStyle 1 +int styleable FontFamilyFont_android_fontVariationSettings 2 +int styleable FontFamilyFont_android_fontWeight 3 +int styleable FontFamilyFont_android_ttcIndex 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } +int styleable GradientColor_android_centerColor 0 +int styleable GradientColor_android_centerX 1 +int styleable GradientColor_android_centerY 2 +int styleable GradientColor_android_endColor 3 +int styleable GradientColor_android_endX 4 +int styleable GradientColor_android_endY 5 +int styleable GradientColor_android_gradientRadius 6 +int styleable GradientColor_android_startColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_tileMode 10 +int styleable GradientColor_android_type 11 +int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/semver/current-version/classes.jar b/firebase-common/semver/current-version/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..c73d0b3f6f43f4151008d4ee65d00e3bb99fe4f8 GIT binary patch literal 96636 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 + \ No newline at end of file diff --git a/firebase-common/semver/current-version/third_party_licenses.json b/firebase-common/semver/current-version/third_party_licenses.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/firebase-common/semver/current-version/third_party_licenses.json @@ -0,0 +1 @@ +{} diff --git a/firebase-common/semver/current-version/third_party_licenses.txt b/firebase-common/semver/current-version/third_party_licenses.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/firebase-common/semver/previous-version/AndroidManifest.xml b/firebase-common/semver/previous-version/AndroidManifest.xml new file mode 100644 index 00000000000..130d3c80d56 --- /dev/null +++ b/firebase-common/semver/previous-version/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/firebase-common/semver/previous-version/R.txt b/firebase-common/semver/previous-version/R.txt new file mode 100644 index 00000000000..6702614e7b8 --- /dev/null +++ b/firebase-common/semver/previous-version/R.txt @@ -0,0 +1,202 @@ +int attr alpha 0x0 +int attr coordinatorLayoutStyle 0x0 +int attr font 0x0 +int attr fontProviderAuthority 0x0 +int attr fontProviderCerts 0x0 +int attr fontProviderFetchStrategy 0x0 +int attr fontProviderFetchTimeout 0x0 +int attr fontProviderPackage 0x0 +int attr fontProviderQuery 0x0 +int attr fontStyle 0x0 +int attr fontVariationSettings 0x0 +int attr fontWeight 0x0 +int attr keylines 0x0 +int attr layout_anchor 0x0 +int attr layout_anchorGravity 0x0 +int attr layout_behavior 0x0 +int attr layout_dodgeInsetEdges 0x0 +int attr layout_insetEdge 0x0 +int attr layout_keyline 0x0 +int attr statusBarBackground 0x0 +int attr ttcIndex 0x0 +int color notification_action_color_filter 0x0 +int color notification_icon_bg_color 0x0 +int color ripple_material_light 0x0 +int color secondary_text_default_material_light 0x0 +int dimen compat_button_inset_horizontal_material 0x0 +int dimen compat_button_inset_vertical_material 0x0 +int dimen compat_button_padding_horizontal_material 0x0 +int dimen compat_button_padding_vertical_material 0x0 +int dimen compat_control_corner_material 0x0 +int dimen compat_notification_large_icon_max_height 0x0 +int dimen compat_notification_large_icon_max_width 0x0 +int dimen notification_action_icon_size 0x0 +int dimen notification_action_text_size 0x0 +int dimen notification_big_circle_margin 0x0 +int dimen notification_content_margin_start 0x0 +int dimen notification_large_icon_height 0x0 +int dimen notification_large_icon_width 0x0 +int dimen notification_main_column_padding_top 0x0 +int dimen notification_media_narrow_margin 0x0 +int dimen notification_right_icon_size 0x0 +int dimen notification_right_side_padding_top 0x0 +int dimen notification_small_icon_background_padding 0x0 +int dimen notification_small_icon_size_as_large 0x0 +int dimen notification_subtext_size 0x0 +int dimen notification_top_pad 0x0 +int dimen notification_top_pad_large_text 0x0 +int drawable notification_action_background 0x0 +int drawable notification_bg 0x0 +int drawable notification_bg_low 0x0 +int drawable notification_bg_low_normal 0x0 +int drawable notification_bg_low_pressed 0x0 +int drawable notification_bg_normal 0x0 +int drawable notification_bg_normal_pressed 0x0 +int drawable notification_icon_background 0x0 +int drawable notification_template_icon_bg 0x0 +int drawable notification_template_icon_low_bg 0x0 +int drawable notification_tile_bg 0x0 +int drawable notify_panel_notification_icon_bg 0x0 +int id accessibility_action_clickable_span 0x0 +int id accessibility_custom_action_0 0x0 +int id accessibility_custom_action_1 0x0 +int id accessibility_custom_action_10 0x0 +int id accessibility_custom_action_11 0x0 +int id accessibility_custom_action_12 0x0 +int id accessibility_custom_action_13 0x0 +int id accessibility_custom_action_14 0x0 +int id accessibility_custom_action_15 0x0 +int id accessibility_custom_action_16 0x0 +int id accessibility_custom_action_17 0x0 +int id accessibility_custom_action_18 0x0 +int id accessibility_custom_action_19 0x0 +int id accessibility_custom_action_2 0x0 +int id accessibility_custom_action_20 0x0 +int id accessibility_custom_action_21 0x0 +int id accessibility_custom_action_22 0x0 +int id accessibility_custom_action_23 0x0 +int id accessibility_custom_action_24 0x0 +int id accessibility_custom_action_25 0x0 +int id accessibility_custom_action_26 0x0 +int id accessibility_custom_action_27 0x0 +int id accessibility_custom_action_28 0x0 +int id accessibility_custom_action_29 0x0 +int id accessibility_custom_action_3 0x0 +int id accessibility_custom_action_30 0x0 +int id accessibility_custom_action_31 0x0 +int id accessibility_custom_action_4 0x0 +int id accessibility_custom_action_5 0x0 +int id accessibility_custom_action_6 0x0 +int id accessibility_custom_action_7 0x0 +int id accessibility_custom_action_8 0x0 +int id accessibility_custom_action_9 0x0 +int id action_container 0x0 +int id action_divider 0x0 +int id action_image 0x0 +int id action_text 0x0 +int id actions 0x0 +int id async 0x0 +int id blocking 0x0 +int id bottom 0x0 +int id chronometer 0x0 +int id dialog_button 0x0 +int id end 0x0 +int id forever 0x0 +int id icon 0x0 +int id icon_group 0x0 +int id info 0x0 +int id italic 0x0 +int id left 0x0 +int id line1 0x0 +int id line3 0x0 +int id none 0x0 +int id normal 0x0 +int id notification_background 0x0 +int id notification_main_column 0x0 +int id notification_main_column_container 0x0 +int id right 0x0 +int id right_icon 0x0 +int id right_side 0x0 +int id start 0x0 +int id tag_accessibility_actions 0x0 +int id tag_accessibility_clickable_spans 0x0 +int id tag_accessibility_heading 0x0 +int id tag_accessibility_pane_title 0x0 +int id tag_screen_reader_focusable 0x0 +int id tag_transition_group 0x0 +int id tag_unhandled_key_event_manager 0x0 +int id tag_unhandled_key_listeners 0x0 +int id text 0x0 +int id text2 0x0 +int id time 0x0 +int id title 0x0 +int id top 0x0 +int integer google_play_services_version 0x0 +int integer status_bar_notification_info_maxnum 0x0 +int layout custom_dialog 0x0 +int layout notification_action 0x0 +int layout notification_action_tombstone 0x0 +int layout notification_template_custom_big 0x0 +int layout notification_template_icon_group 0x0 +int layout notification_template_part_chronometer 0x0 +int layout notification_template_part_time 0x0 +int raw firebase_common_keep 0x0 +int string common_google_play_services_unknown_issue 0x0 +int string status_bar_notification_info_overflow 0x0 +int style TextAppearance_Compat_Notification 0x0 +int style TextAppearance_Compat_Notification_Info 0x0 +int style TextAppearance_Compat_Notification_Line2 0x0 +int style TextAppearance_Compat_Notification_Time 0x0 +int style TextAppearance_Compat_Notification_Title 0x0 +int style Widget_Compat_NotificationActionContainer 0x0 +int style Widget_Compat_NotificationActionText 0x0 +int style Widget_Support_CoordinatorLayout 0x0 +int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } +int styleable ColorStateListItem_alpha 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_android_color 2 +int[] styleable CoordinatorLayout { 0x0, 0x0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontStyle 1 +int styleable FontFamilyFont_android_fontVariationSettings 2 +int styleable FontFamilyFont_android_fontWeight 3 +int styleable FontFamilyFont_android_ttcIndex 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } +int styleable GradientColor_android_centerColor 0 +int styleable GradientColor_android_centerX 1 +int styleable GradientColor_android_centerY 2 +int styleable GradientColor_android_endColor 3 +int styleable GradientColor_android_endX 4 +int styleable GradientColor_android_endY 5 +int styleable GradientColor_android_gradientRadius 6 +int styleable GradientColor_android_startColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_tileMode 10 +int styleable GradientColor_android_type 11 +int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/semver/previous-version/classes.jar b/firebase-common/semver/previous-version/classes.jar new file mode 100644 index 0000000000000000000000000000000000000000..88119f14eff0d45782bbb27e42a66cc9e773305d GIT binary patch literal 80338 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 + \ No newline at end of file diff --git a/firebase-common/semver/previous-version/third_party_licenses.json b/firebase-common/semver/previous-version/third_party_licenses.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/firebase-common/semver/previous-version/third_party_licenses.json @@ -0,0 +1 @@ +{} diff --git a/firebase-common/semver/previous-version/third_party_licenses.txt b/firebase-common/semver/previous-version/third_party_licenses.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/firebase-common/semver/previous.aar b/firebase-common/semver/previous.aar new file mode 100644 index 0000000000000000000000000000000000000000..6fd5104c5e9c581edeb0a25dd9416002f52f38bf GIT binary patch literal 75565 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 b1`?eAa`O!&&!8Zwg96n9QPqN+hl2V)IeU8K From 92c43b5ad684dfbf5978c188b7b515a3ec64a757 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 11:10:32 -0400 Subject: [PATCH 07/33] update --- .../gradle/plugins/PackageTransform.kt | 71 +++++++++++++- firebase-common/firebase-common.gradle.kts | 36 ++++---- .../com/google/firebase/ktx/Firebase.kt | 2 - .../kotlin/com/google/firebase/ktx/Tests.kt | 1 - firebase-common/src/main/AndroidManifest.xml | 5 +- .../main/java/com/google/firebase/Firebase.kt | 6 +- .../java/com/google/firebase/ktx/Firebase.kt | 92 ------------------- 7 files changed, 90 insertions(+), 123 deletions(-) delete mode 100644 firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index d43b6343cc5..7750b516452 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -47,7 +47,9 @@ abstract class PackageTransform : DefaultTask() { fun copyDir(src: Path, dest: Path) { Files.walk(src).forEach { if (!Files.isDirectory(it)) { - Files.copy(it, dest.resolve(src.relativize(it)), StandardCopyOption.REPLACE_EXISTING) + val destination = dest.resolve(src.relativize(it)) + Files.createDirectories(destination.parent) + Files.copy(it, destination, StandardCopyOption.REPLACE_EXISTING) } } } @@ -95,7 +97,7 @@ abstract class PackageTransform : DefaultTask() { """LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME),""", "" ) - } + }.filter { x-> !x.contains("contains(LIBRARY_NAME)") } File(it.absolutePath).delete() val newFile = File(it.absolutePath) newFile.writeText(lines.joinToString("\n")) @@ -103,6 +105,25 @@ abstract class PackageTransform : DefaultTask() { } } + fun readDependencies(path: String): List { + val lines = File(path).readLines() + var start = false + var output = mutableListOf() + for (line in lines) { + if (start == true) { + if (line.contains("}")) { + break + } + output.add(line.trim()) + } + + if (line.contains("dependencies {")) { + start = true + } + } + return output.filter { x -> (x.trim().isNotEmpty() && !x.startsWith("//")) } + } + @TaskAction fun run() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") @@ -110,11 +131,53 @@ abstract class PackageTransform : DefaultTask() { val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" val ktxPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}/ktx" val mainPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}" + val ktxArtifactTestPath = "${projectPath.get()}/ktx/src/test/kotlin/${packageNamePath}/ktx" + val ktxPackageTestPath = "${projectPath.get()}/src/test/java/${packageNamePath}/ktx" + val mainPackageTestPath = "${projectPath.get()}/src/test/java/${packageNamePath}" + val ktxArtifactAndroidTestPath = + "${projectPath.get()}/ktx/src/androidTest/kotlin/${packageNamePath}/ktx" + val ktxPackageAndroidTestPath = + "${projectPath.get()}/src/androidTest/java/${packageNamePath}/ktx" + val mainPackageAndroidTestPath = "${projectPath.get()}/src/androidTest/java/${packageNamePath}" copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath()) copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath()) + if (File(ktxArtifactTestPath).exists()) { + copyDir(File(ktxArtifactTestPath).toPath(), File(mainPackageTestPath).toPath()) + copyDir(File(ktxArtifactTestPath).toPath(), File(ktxPackageTestPath).toPath()) + updateKTXReferences(mainPackageTestPath) + } + if (File(ktxArtifactAndroidTestPath).exists()) { + copyDir(File(ktxArtifactAndroidTestPath).toPath(), File(mainPackageAndroidTestPath).toPath()) + copyDir(File(ktxArtifactAndroidTestPath).toPath(), File(ktxPackageAndroidTestPath).toPath()) + updateKTXReferences(mainPackageAndroidTestPath) + } updateKTXReferences(mainPackagePath) - updatePlatformLogging(mainPackagePath) + updatePlatformLogging("${projectPath.get()}/src") deprecateKTX(ktxPackagePath, packageNamePath.replace("/", ".")) - project.dependencies.create("com.google.firebase:firebase-functions-ktx:20.3.1") + var gradlePath = "${projectPath.get()}/${artifactId.get()}.gradle.kts" + var ktxGradlePath = "${projectPath.get()}/ktx/ktx.gradle.kts" + if (!File(gradlePath).exists()) { + gradlePath = "${projectPath.get()}/${artifactId.get()}.gradle" + ktxGradlePath = "${projectPath.get()}/ktx/ktx.gradle" + } + val dependencies = readDependencies(gradlePath) + val ktxDependencies = readDependencies(ktxGradlePath) + val deps = + (dependencies.toSet() + ktxDependencies.toSet()).toList().sorted().map { x -> " " + x } + val lines = File(gradlePath).readLines() + val output = mutableListOf() + println(project.path) + for (line in lines) { + output.add(line) + if (line.contains("id(\"firebase-library\")")) { + output.add(" id(\"kotlin-android\")") + } + if (line.contains("dependencies {")) { + output += deps + output.add("}") + break + } + } + File(gradlePath).writeText(output.joinToString("\n")) } } diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index ae4fd4292ec..f9f4c2502a1 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -14,6 +14,7 @@ plugins { id("firebase-library") + id("kotlin-android") } firebaseLibrary { @@ -51,34 +52,33 @@ android { } dependencies { + androidTestImplementation(libs.androidx.test.junit) + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.junit) + androidTestImplementation(libs.mockito.core) + androidTestImplementation(libs.mockito.dexmaker) + androidTestImplementation(libs.truth) + androidTestImplementation(project(":integ-testing")) + annotationProcessor(libs.autovalue) + api(libs.kotlin.coroutines.tasks) + compileOnly(libs.autovalue.annotations) + compileOnly(libs.findbugs.jsr305) + compileOnly(libs.kotlin.stdlib) implementation("com.google.firebase:firebase-annotations:16.2.0") implementation("com.google.firebase:firebase-components:17.1.0") + implementation(libs.androidx.annotation) implementation(libs.androidx.futures) + implementation(libs.kotlin.stdlib) implementation(libs.playservices.basement) implementation(libs.playservices.tasks) - - annotationProcessor(libs.autovalue) - - compileOnly(libs.autovalue.annotations) - compileOnly(libs.findbugs.jsr305) - // needed for Kotlin detection to compile, but not necessarily present at runtime. - compileOnly(libs.kotlin.stdlib) - testImplementation("com.google.guava:guava-testlib:12.0-rc2") - testImplementation(libs.androidx.test.junit) + testImplementation(libs.androidx.test.core) testImplementation(libs.androidx.test.junit) testImplementation(libs.androidx.test.runner) testImplementation(libs.junit) + testImplementation(libs.kotlin.coroutines.test) testImplementation(libs.mockito.core) testImplementation(libs.org.json) testImplementation(libs.robolectric) testImplementation(libs.truth) - - androidTestImplementation(libs.androidx.test.junit) - androidTestImplementation(libs.androidx.test.runner) - androidTestImplementation(libs.junit) - androidTestImplementation(libs.mockito.core) - androidTestImplementation(libs.mockito.dexmaker) - androidTestImplementation(libs.truth) - androidTestImplementation(project(":integ-testing")) -} +} \ No newline at end of file diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt index 058c0f20626..77aa495dc26 100644 --- a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt @@ -25,7 +25,6 @@ import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar import com.google.firebase.components.Dependency import com.google.firebase.components.Qualified -import com.google.firebase.platforminfo.LibraryVersionComponent import java.util.concurrent.Executor import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher @@ -66,7 +65,6 @@ internal const val LIBRARY_NAME: String = "fire-core-ktx" class FirebaseCommonKtxRegistrar : ComponentRegistrar { override fun getComponents(): List> { return listOf( - LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), coroutineDispatcher(), coroutineDispatcher(), coroutineDispatcher(), diff --git a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt index 43ac45c33b3..eb49aa0ad09 100644 --- a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt +++ b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt @@ -50,7 +50,6 @@ class VersionTests { withApp("ktxTestApp") { val uaPublisher = get(UserAgentPublisher::class.java) assertThat(uaPublisher.userAgent).contains("kotlin") - assertThat(uaPublisher.userAgent).contains(LIBRARY_NAME) } } } diff --git a/firebase-common/src/main/AndroidManifest.xml b/firebase-common/src/main/AndroidManifest.xml index a2913a3a915..ed589155c92 100644 --- a/firebase-common/src/main/AndroidManifest.xml +++ b/firebase-common/src/main/AndroidManifest.xml @@ -29,6 +29,9 @@ android:name="com.google.firebase.components.ComponentDiscoveryService" android:directBootAware="true" android:exported="false" - tools:targetApi="n" /> + tools:targetApi="n" > + + diff --git a/firebase-common/src/main/java/com/google/firebase/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/Firebase.kt index 626f1b949d0..c18befc0723 100644 --- a/firebase-common/src/main/java/com/google/firebase/Firebase.kt +++ b/firebase-common/src/main/java/com/google/firebase/Firebase.kt @@ -15,8 +15,6 @@ package com.google.firebase import android.content.Context import androidx.annotation.Keep -import com.google.firebase.FirebaseApp -import com.google.firebase.FirebaseOptions import com.google.firebase.annotations.concurrent.Background import com.google.firebase.annotations.concurrent.Blocking import com.google.firebase.annotations.concurrent.Lightweight @@ -25,7 +23,6 @@ import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar import com.google.firebase.components.Dependency import com.google.firebase.components.Qualified -import com.google.firebase.platforminfo.LibraryVersionComponent import java.util.concurrent.Executor import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher @@ -66,7 +63,6 @@ internal const val LIBRARY_NAME: String = "fire-core-ktx" class FirebaseCommonKtxRegistrar : ComponentRegistrar { override fun getComponents(): List> { return listOf( - coroutineDispatcher(), coroutineDispatcher(), coroutineDispatcher(), @@ -81,4 +77,4 @@ private inline fun coroutineDispatcher(): Component c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() } - .build() \ No newline at end of file + .build() diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt deleted file mode 100644 index feaabc24a45..00000000000 --- a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2019 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// 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. -package com.google.firebase.ktx - -import android.content.Context -import androidx.annotation.Keep -import com.google.firebase.FirebaseApp -import com.google.firebase.FirebaseOptions -import com.google.firebase.annotations.concurrent.Background -import com.google.firebase.annotations.concurrent.Blocking -import com.google.firebase.annotations.concurrent.Lightweight -import com.google.firebase.annotations.concurrent.UiThread -import com.google.firebase.components.Component -import com.google.firebase.components.ComponentRegistrar -import com.google.firebase.components.Dependency -import com.google.firebase.components.Qualified -import com.google.firebase.platforminfo.LibraryVersionComponent -import java.util.concurrent.Executor -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.asCoroutineDispatcher - -/** - * Single access point to all firebase SDKs from Kotlin. - * - *

Acts as a target for extension methods provided by sdks. - */ -@Deprecated("Use `com.google.firebase.Firebase`", ReplaceWith("com.google.firebase.Firebase")) -object Firebase - -/** Returns the default firebase app instance. */ -@Deprecated("Use `com.google.firebase.Firebase.app`", ReplaceWith("com.google.firebase.Firebase.app")) -val Firebase.app: FirebaseApp - get() = FirebaseApp.getInstance() - -/** Returns a named firebase app instance. */ -@Deprecated("Use `com.google.firebase.Firebase.app(name)`", ReplaceWith("com.google.firebase.Firebase.app(name)")) -fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated("Use `com.google.firebase.Firebase.initialize(context)`", ReplaceWith("com.google.firebase.Firebase.initialize(context)")) -fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated("Use `com.google.firebase.Firebase.initialize(context, options)`", ReplaceWith("com.google.firebase.Firebase.initialize(context, options)")) -fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = - FirebaseApp.initializeApp(context, options) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated("Use `com.google.firebase.Firebase.initialize(context, options, name)`", ReplaceWith("com.google.firebase.Firebase.initialize(context, options, name)")) -fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = - FirebaseApp.initializeApp(context, options, name) - -/** Returns options of default FirebaseApp */ -@Deprecated("Use `com.google.firebase.Firebase.options`", ReplaceWith("com.google.firebase.Firebase.options")) -val Firebase.options: FirebaseOptions - get() = Firebase.app.options - -internal const val LIBRARY_NAME: String = "fire-core-ktx" - -/** @suppress */ -@Deprecated("Use `com.google.firebase.FirebaseCommonKtxRegistrar`", ReplaceWith("com.google.firebase.FirebaseCommonKtxRegistrar")) -@Keep -class FirebaseCommonKtxRegistrar : ComponentRegistrar { - override fun getComponents(): List> { - return listOf( - - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher() - ) - } -} - -private inline fun coroutineDispatcher(): Component = - Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) - .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) - .factory { c -> - c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() - } - .build() \ No newline at end of file From aeef091d4c28554c816311e5e97077e181dc46f9 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 12:30:55 -0400 Subject: [PATCH 08/33] update manifest file as well --- .../gradle/plugins/PackageTransform.kt | 69 ++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 7750b516452..5899b9146a1 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -4,10 +4,13 @@ import java.io.File import java.nio.file.Files import java.nio.file.Path import java.nio.file.StandardCopyOption +import javax.xml.parsers.DocumentBuilderFactory import org.gradle.api.DefaultTask import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction +import org.gradle.kotlin.dsl.project +import org.w3c.dom.Element abstract class PackageTransform : DefaultTask() { @get:Input abstract val artifactId: Property @@ -92,12 +95,10 @@ abstract class PackageTransform : DefaultTask() { File(src).walk().forEach { if (it.absolutePath.endsWith(".kt")) { val lines = - File(it.absolutePath).readLines().map { x -> - x.replace( - """LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME),""", - "" - ) - }.filter { x-> !x.contains("contains(LIBRARY_NAME)") } + File(it.absolutePath).readLines().filter { x -> + !x.contains("contains(LIBRARY_NAME)") && + !x.contains("LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)") + } File(it.absolutePath).delete() val newFile = File(it.absolutePath) newFile.writeText(lines.joinToString("\n")) @@ -124,6 +125,48 @@ abstract class PackageTransform : DefaultTask() { return output.filter { x -> (x.trim().isNotEmpty() && !x.startsWith("//")) } } + fun copyManifestComponent(source: String, dest: String) { + val documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder() + val ktxManifest = documentBuilder.parse(File(source)) + ktxManifest.documentElement.normalize() + val nodeList = ktxManifest.getElementsByTagName("*") + val metadata = + (0..nodeList.length - 1) + .toList() + .map { x -> nodeList.item(x) } + .filter { it.nodeType == Element.ELEMENT_NODE } + .map { x -> (x as Element) } + .filter { it.nodeName == "meta-data" } + .map { x -> + "" + } + .joinToString("\n") + + val lines = File(dest).readLines() + var output = mutableListOf() + var inside = false + for (line in lines) { + if ( + line.contains("android:name=\"com.google.firebase.components.ComponentDiscoveryService\"") + ) { + inside = true + } + if (inside == true) { + if (line.contains("/>")) { + output.add(line.replace("/>", "> ${metadata} ")) + inside = false + continue + } else if (line.contains(">")) { + output.add(line.replace(">", "> ${metadata}")) + inside = false + continue + } + } + output.add(line) + } + File(dest).writeText(output.joinToString("\n")) + } + @TaskAction fun run() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") @@ -153,6 +196,10 @@ abstract class PackageTransform : DefaultTask() { } updateKTXReferences(mainPackagePath) updatePlatformLogging("${projectPath.get()}/src") + copyManifestComponent( + "${projectPath.get()}/ktx/src/main/AndroidManifest.xml", + "${projectPath.get()}/src/main/AndroidManifest.xml" + ) deprecateKTX(ktxPackagePath, packageNamePath.replace("/", ".")) var gradlePath = "${projectPath.get()}/${artifactId.get()}.gradle.kts" var ktxGradlePath = "${projectPath.get()}/ktx/ktx.gradle.kts" @@ -163,11 +210,17 @@ abstract class PackageTransform : DefaultTask() { val dependencies = readDependencies(gradlePath) val ktxDependencies = readDependencies(ktxGradlePath) val deps = - (dependencies.toSet() + ktxDependencies.toSet()).toList().sorted().map { x -> " " + x } + (dependencies.toSet() + ktxDependencies.toSet()) + .toList() + .sorted() + .map { x -> " " + x } + .filter { !it.contains("project(\"${project.path}\")") } val lines = File(gradlePath).readLines() val output = mutableListOf() - println(project.path) for (line in lines) { + if (line.contains("id(\"kotlin-android\")")) { + continue + } output.add(line) if (line.contains("id(\"firebase-library\")")) { output.add(" id(\"kotlin-android\")") From 0d291c9a4574866b8eb2d9e55707e19fff27b304 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 14:21:04 -0400 Subject: [PATCH 09/33] update manifest file as well --- .../gradle/plugins/PackageTransform.kt | 11 ++++ firebase-common/ktx/ktx.gradle.kts | 10 +-- .../ktx/src/main/AndroidManifest.xml | 2 +- .../com/google/firebase/ktx/Firebase.kt | 61 ++----------------- .../kotlin/com/google/firebase/ktx/Tests.kt | 1 + 5 files changed, 18 insertions(+), 67 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 5899b9146a1..9bdccff5f4f 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -232,5 +232,16 @@ abstract class PackageTransform : DefaultTask() { } } File(gradlePath).writeText(output.joinToString("\n")) + // KTX changes + updateCode(File(ktxArtifactPath).toPath()) + + } + private fun updateCode(path: Path) { + Files.walk(path).forEach { + if (!Files.isDirectory(it) && it.toAbsolutePath().endsWith(".kt")) { + val filePath = it.toAbsolutePath() + println(filePath) + } + } } } diff --git a/firebase-common/ktx/ktx.gradle.kts b/firebase-common/ktx/ktx.gradle.kts index eb0218a0948..2c5ee2aa6f8 100644 --- a/firebase-common/ktx/ktx.gradle.kts +++ b/firebase-common/ktx/ktx.gradle.kts @@ -42,16 +42,8 @@ android { } dependencies { - implementation(libs.kotlin.stdlib) - - implementation("com.google.firebase:firebase-annotations:16.2.0") - implementation(project(":firebase-common")) implementation("com.google.firebase:firebase-components:17.1.0") - implementation(libs.androidx.annotation) - - // We"re exposing this library as a transitive dependency so developers can - // get Kotlin Coroutines support out-of-the-box for methods that return a Task - api(libs.kotlin.coroutines.tasks) + api(project(":firebase-common")) testImplementation(libs.robolectric) testImplementation(libs.junit) diff --git a/firebase-common/ktx/src/main/AndroidManifest.xml b/firebase-common/ktx/src/main/AndroidManifest.xml index 05858c6eb7b..d7872f2e0dc 100644 --- a/firebase-common/ktx/src/main/AndroidManifest.xml +++ b/firebase-common/ktx/src/main/AndroidManifest.xml @@ -4,7 +4,7 @@ - diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt index 77aa495dc26..6690747e68b 100644 --- a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt @@ -1,4 +1,4 @@ -// Copyright 2019 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,70 +13,17 @@ // limitations under the License. package com.google.firebase.ktx -import android.content.Context import androidx.annotation.Keep -import com.google.firebase.FirebaseApp -import com.google.firebase.FirebaseOptions -import com.google.firebase.annotations.concurrent.Background -import com.google.firebase.annotations.concurrent.Blocking -import com.google.firebase.annotations.concurrent.Lightweight -import com.google.firebase.annotations.concurrent.UiThread import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar -import com.google.firebase.components.Dependency -import com.google.firebase.components.Qualified -import java.util.concurrent.Executor -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.asCoroutineDispatcher - -/** - * Single access point to all firebase SDKs from Kotlin. - * - *

Acts as a target for extension methods provided by sdks. - */ -object Firebase - -/** Returns the default firebase app instance. */ -val Firebase.app: FirebaseApp - get() = FirebaseApp.getInstance() - -/** Returns a named firebase app instance. */ -fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = - FirebaseApp.initializeApp(context, options) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = - FirebaseApp.initializeApp(context, options, name) - -/** Returns options of default FirebaseApp */ -val Firebase.options: FirebaseOptions - get() = Firebase.app.options +import com.google.firebase.platforminfo.LibraryVersionComponent internal const val LIBRARY_NAME: String = "fire-core-ktx" /** @suppress */ @Keep -class FirebaseCommonKtxRegistrar : ComponentRegistrar { +class FirebaseCommonLoggingRegistrar : ComponentRegistrar { override fun getComponents(): List> { - return listOf( - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher() - ) + return listOf(LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)) } } - -private inline fun coroutineDispatcher(): Component = - Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) - .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) - .factory { c -> - c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() - } - .build() diff --git a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt index eb49aa0ad09..4002bbfe334 100644 --- a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt +++ b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt @@ -17,6 +17,7 @@ package com.google.firebase.ktx import androidx.test.core.app.ApplicationProvider import com.google.android.gms.tasks.Tasks import com.google.common.truth.Truth.assertThat +import com.google.firebase.Firebase import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseOptions import com.google.firebase.platforminfo.UserAgentPublisher From f35e14eed70e42f8a64a491f4031c22dcc9622c6 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:11:36 -0400 Subject: [PATCH 10/33] update ktx source code --- .../gradle/plugins/PackageTransform.kt | 100 +++++++++++++++--- 1 file changed, 86 insertions(+), 14 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 9bdccff5f4f..140e2dad33b 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -9,9 +9,44 @@ import org.gradle.api.DefaultTask import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction +import org.gradle.configurationcache.extensions.capitalized import org.gradle.kotlin.dsl.project import org.w3c.dom.Element +val KTX_CONTENT = + """ + // Copyright 2023 Google LLC + // + // Licensed under the Apache License, Version 2.0 (the "License"); + // you may not use this file except in compliance with the License. + // You may obtain a copy of the License at + // + // http://www.apache.org/licenses/LICENSE-2.0 + // + // 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. + package com.google.firebase.ktx + + import androidx.annotation.Keep + import com.google.firebase.components.Component + import com.google.firebase.components.ComponentRegistrar + import com.google.firebase.platforminfo.LibraryVersionComponent + + internal const val LIBRARY_NAME: String = #{LIBRARY_NAME} + + /** @suppress */ + @Keep + class #{PROJECT_NAME}LoggingRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf(LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)) + } + } +""" + .trimIndent() + abstract class PackageTransform : DefaultTask() { @get:Input abstract val artifactId: Property @get:Input abstract val groupId: Property @@ -208,13 +243,31 @@ abstract class PackageTransform : DefaultTask() { ktxGradlePath = "${projectPath.get()}/ktx/ktx.gradle" } val dependencies = readDependencies(gradlePath) - val ktxDependencies = readDependencies(ktxGradlePath) - val deps = - (dependencies.toSet() + ktxDependencies.toSet()) - .toList() - .sorted() - .map { x -> " " + x } + var ktxDependencies = + readDependencies(ktxGradlePath) .filter { !it.contains("project(\"${project.path}\")") } + .toMutableList() + val deps = (dependencies.toSet() + ktxDependencies.toSet()).toList() + updateGradleFile(gradlePath, deps) + // KTX changes + updateCode( + ktxArtifactPath, + packageNamePath.replace("/", "."), + "${projectPath.get()}/ktx/src/main/AndroidManifest.xml" + ) + ktxDependencies = + ktxDependencies + .filter { + !((it.contains("implementation") || it.contains("api")) && + !it.contains("firebase-components:")) + } + .toMutableList() + // KTX gradle changes + ktxDependencies.add("api(project(\"${project.path}\"))") + updateGradleFile(ktxGradlePath, ktxDependencies) + } + private fun updateGradleFile(gradlePath: String, depsArg: List) { + val deps = depsArg.sorted().map { x -> " " + x } val lines = File(gradlePath).readLines() val output = mutableListOf() for (line in lines) { @@ -232,15 +285,34 @@ abstract class PackageTransform : DefaultTask() { } } File(gradlePath).writeText(output.joinToString("\n")) - // KTX changes - updateCode(File(ktxArtifactPath).toPath()) - } - private fun updateCode(path: Path) { - Files.walk(path).forEach { - if (!Files.isDirectory(it) && it.toAbsolutePath().endsWith(".kt")) { - val filePath = it.toAbsolutePath() - println(filePath) + private fun extractLibraryName(path: String): String = + File(path) + .readLines() + .filter { x -> x.contains("LIBRARY_NAME:") } + .map { x -> x.split(" ").last() } + .get(0) + private fun updateCode(path: String, pkgName: String, manifestPath: String) { + File(path).walk().forEach { + if (it.absolutePath.endsWith(".kt")) { + val filePath = it.absolutePath + val projectName = artifactId.get().split("-").map { x -> x.capitalized() }.joinToString("") + val replaceClass: String = + File(filePath) + .readLines() + .filter { it.contains("class") } + .map { x -> x.split(" ").get(1).replace(":", "") } + .get(0) + File(filePath) + .writeText( + KTX_CONTENT.replace("#{LIBRARY_NAME}", extractLibraryName(filePath)) + .replace("#{PROJECT_NAME}", projectName) + ) + val lines = + File(manifestPath).readLines().map { x -> + x.replace(replaceClass, "${projectName}LoggingRegistrar") + } + File(manifestPath).writeText(lines.joinToString("\n")) } } } From df0b99aed2ebf7e6e64179fcfc9e8e6e4ca7cfa3 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:16:32 -0400 Subject: [PATCH 11/33] update --- .../com/google/firebase/ktx/Firebase.kt | 61 ++++++++++++++++++- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt index 6690747e68b..058c0f20626 100644 --- a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2019 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,17 +13,72 @@ // limitations under the License. package com.google.firebase.ktx +import android.content.Context import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified import com.google.firebase.platforminfo.LibraryVersionComponent +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +object Firebase + +/** Returns the default firebase app instance. */ +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +val Firebase.options: FirebaseOptions + get() = Firebase.app.options internal const val LIBRARY_NAME: String = "fire-core-ktx" /** @suppress */ @Keep -class FirebaseCommonLoggingRegistrar : ComponentRegistrar { +class FirebaseCommonKtxRegistrar : ComponentRegistrar { override fun getComponents(): List> { - return listOf(LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)) + return listOf( + LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) } } + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() From c4d5fbe3d7fc51b4c8dc87a9fd1e4b3b98323045 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:33:06 -0400 Subject: [PATCH 12/33] update --- firebase-common/firebase-common.gradle.kts | 78 +++++++++---------- firebase-common/ktx/ktx.gradle.kts | 12 ++- .../kotlin/com/google/firebase/ktx/Tests.kt | 4 +- firebase-common/src/main/AndroidManifest.xml | 7 +- 4 files changed, 53 insertions(+), 48 deletions(-) diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index f9f4c2502a1..6883d261b96 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -14,7 +14,6 @@ plugins { id("firebase-library") - id("kotlin-android") } firebaseLibrary { @@ -24,61 +23,62 @@ firebaseLibrary { } android { - val targetSdkVersion : Int by rootProject - val minSdkVersion : Int by rootProject + val targetSdkVersion : Int by rootProject + val minSdkVersion : Int by rootProject - compileSdk = targetSdkVersion - namespace = "com.google.firebase" - defaultConfig { - minSdk = minSdkVersion - targetSdk = targetSdkVersion - multiDexEnabled = true - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("proguard.txt") - } - sourceSets { - getByName("androidTest") { - java.srcDirs("src/testUtil") + compileSdk = targetSdkVersion + namespace = "com.google.firebase" + defaultConfig { + minSdk = minSdkVersion + targetSdk = targetSdkVersion + multiDexEnabled = true + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("proguard.txt") } - getByName("test") { - java.srcDirs("src/testUtil") + sourceSets { + getByName("androidTest") { + java.srcDirs("src/testUtil") + } + getByName("test") { + java.srcDirs("src/testUtil") + } } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - testOptions.unitTests.isIncludeAndroidResources = true + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + testOptions.unitTests.isIncludeAndroidResources = true } dependencies { - androidTestImplementation(libs.androidx.test.junit) - androidTestImplementation(libs.androidx.test.runner) - androidTestImplementation(libs.junit) - androidTestImplementation(libs.mockito.core) - androidTestImplementation(libs.mockito.dexmaker) - androidTestImplementation(libs.truth) - androidTestImplementation(project(":integ-testing")) - annotationProcessor(libs.autovalue) - api(libs.kotlin.coroutines.tasks) - compileOnly(libs.autovalue.annotations) - compileOnly(libs.findbugs.jsr305) - compileOnly(libs.kotlin.stdlib) implementation("com.google.firebase:firebase-annotations:16.2.0") implementation("com.google.firebase:firebase-components:17.1.0") - implementation(libs.androidx.annotation) implementation(libs.androidx.futures) - implementation(libs.kotlin.stdlib) implementation(libs.playservices.basement) implementation(libs.playservices.tasks) + + annotationProcessor(libs.autovalue) + + compileOnly(libs.autovalue.annotations) + compileOnly(libs.findbugs.jsr305) + // needed for Kotlin detection to compile, but not necessarily present at runtime. + compileOnly(libs.kotlin.stdlib) + testImplementation("com.google.guava:guava-testlib:12.0-rc2") - testImplementation(libs.androidx.test.core) + testImplementation(libs.androidx.test.junit) testImplementation(libs.androidx.test.junit) testImplementation(libs.androidx.test.runner) testImplementation(libs.junit) - testImplementation(libs.kotlin.coroutines.test) testImplementation(libs.mockito.core) testImplementation(libs.org.json) testImplementation(libs.robolectric) testImplementation(libs.truth) + + androidTestImplementation(libs.androidx.test.junit) + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.junit) + androidTestImplementation(libs.mockito.core) + androidTestImplementation(libs.mockito.dexmaker) + androidTestImplementation(libs.truth) + androidTestImplementation(project(":integ-testing")) } \ No newline at end of file diff --git a/firebase-common/ktx/ktx.gradle.kts b/firebase-common/ktx/ktx.gradle.kts index 2c5ee2aa6f8..e9cf5927fb3 100644 --- a/firebase-common/ktx/ktx.gradle.kts +++ b/firebase-common/ktx/ktx.gradle.kts @@ -42,12 +42,20 @@ android { } dependencies { + implementation(libs.kotlin.stdlib) + + implementation("com.google.firebase:firebase-annotations:16.2.0") + implementation(project(":firebase-common")) implementation("com.google.firebase:firebase-components:17.1.0") - api(project(":firebase-common")) + implementation(libs.androidx.annotation) + + // We"re exposing this library as a transitive dependency so developers can + // get Kotlin Coroutines support out-of-the-box for methods that return a Task + api(libs.kotlin.coroutines.tasks) testImplementation(libs.robolectric) testImplementation(libs.junit) testImplementation(libs.truth) testImplementation(libs.androidx.test.core) testImplementation(libs.kotlin.coroutines.test) -} +} \ No newline at end of file diff --git a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt index 4002bbfe334..c326bfa4153 100644 --- a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt +++ b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt @@ -17,7 +17,6 @@ package com.google.firebase.ktx import androidx.test.core.app.ApplicationProvider import com.google.android.gms.tasks.Tasks import com.google.common.truth.Truth.assertThat -import com.google.firebase.Firebase import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseOptions import com.google.firebase.platforminfo.UserAgentPublisher @@ -51,6 +50,7 @@ class VersionTests { withApp("ktxTestApp") { val uaPublisher = get(UserAgentPublisher::class.java) assertThat(uaPublisher.userAgent).contains("kotlin") + assertThat(uaPublisher.userAgent).contains(LIBRARY_NAME) } } } @@ -139,4 +139,4 @@ class CoroutinesPlayServicesTests { assertThat(task.isSuccessful).isFalse() } } -} +} \ No newline at end of file diff --git a/firebase-common/src/main/AndroidManifest.xml b/firebase-common/src/main/AndroidManifest.xml index ed589155c92..18140a91350 100644 --- a/firebase-common/src/main/AndroidManifest.xml +++ b/firebase-common/src/main/AndroidManifest.xml @@ -29,9 +29,6 @@ android:name="com.google.firebase.components.ComponentDiscoveryService" android:directBootAware="true" android:exported="false" - tools:targetApi="n" > - - + tools:targetApi="n" /> - + \ No newline at end of file From 8444cdec26a9b2519bd4b0dfe2a80f68f5504698 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:33:45 -0400 Subject: [PATCH 13/33] remove --- .../main/java/com/google/firebase/Firebase.kt | 80 ------------------- 1 file changed, 80 deletions(-) delete mode 100644 firebase-common/src/main/java/com/google/firebase/Firebase.kt diff --git a/firebase-common/src/main/java/com/google/firebase/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/Firebase.kt deleted file mode 100644 index c18befc0723..00000000000 --- a/firebase-common/src/main/java/com/google/firebase/Firebase.kt +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2019 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// 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. -package com.google.firebase - -import android.content.Context -import androidx.annotation.Keep -import com.google.firebase.annotations.concurrent.Background -import com.google.firebase.annotations.concurrent.Blocking -import com.google.firebase.annotations.concurrent.Lightweight -import com.google.firebase.annotations.concurrent.UiThread -import com.google.firebase.components.Component -import com.google.firebase.components.ComponentRegistrar -import com.google.firebase.components.Dependency -import com.google.firebase.components.Qualified -import java.util.concurrent.Executor -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.asCoroutineDispatcher - -/** - * Single access point to all firebase SDKs from Kotlin. - * - *

Acts as a target for extension methods provided by sdks. - */ -object Firebase - -/** Returns the default firebase app instance. */ -val Firebase.app: FirebaseApp - get() = FirebaseApp.getInstance() - -/** Returns a named firebase app instance. */ -fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = - FirebaseApp.initializeApp(context, options) - -/** Initializes and returns a FirebaseApp. */ -fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = - FirebaseApp.initializeApp(context, options, name) - -/** Returns options of default FirebaseApp */ -val Firebase.options: FirebaseOptions - get() = Firebase.app.options - -internal const val LIBRARY_NAME: String = "fire-core-ktx" - -/** @suppress */ -@Keep -class FirebaseCommonKtxRegistrar : ComponentRegistrar { - override fun getComponents(): List> { - return listOf( - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher() - ) - } -} - -private inline fun coroutineDispatcher(): Component = - Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) - .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) - .factory { c -> - c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() - } - .build() From 132d7d10aade29bbb2d108d166caaeda2a8a4760 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:36:27 -0400 Subject: [PATCH 14/33] update --- firebase-common/firebase-common.gradle.kts | 2 +- firebase-common/ktx/ktx.gradle.kts | 2 +- .../ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index 6883d261b96..7c3ed8abaa3 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -81,4 +81,4 @@ dependencies { androidTestImplementation(libs.mockito.dexmaker) androidTestImplementation(libs.truth) androidTestImplementation(project(":integ-testing")) -} \ No newline at end of file +} diff --git a/firebase-common/ktx/ktx.gradle.kts b/firebase-common/ktx/ktx.gradle.kts index e9cf5927fb3..eb0218a0948 100644 --- a/firebase-common/ktx/ktx.gradle.kts +++ b/firebase-common/ktx/ktx.gradle.kts @@ -58,4 +58,4 @@ dependencies { testImplementation(libs.truth) testImplementation(libs.androidx.test.core) testImplementation(libs.kotlin.coroutines.test) -} \ No newline at end of file +} diff --git a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt index c326bfa4153..43ac45c33b3 100644 --- a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt +++ b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt @@ -139,4 +139,4 @@ class CoroutinesPlayServicesTests { assertThat(task.isSuccessful).isFalse() } } -} \ No newline at end of file +} From 4f34e82dbdebecb25db70ee22fd1d07e7ca4f1f2 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 8 Aug 2023 15:38:09 -0400 Subject: [PATCH 15/33] update --- firebase-common/ktx/src/main/AndroidManifest.xml | 2 +- firebase-common/src/main/AndroidManifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/firebase-common/ktx/src/main/AndroidManifest.xml b/firebase-common/ktx/src/main/AndroidManifest.xml index d7872f2e0dc..05858c6eb7b 100644 --- a/firebase-common/ktx/src/main/AndroidManifest.xml +++ b/firebase-common/ktx/src/main/AndroidManifest.xml @@ -4,7 +4,7 @@ - diff --git a/firebase-common/src/main/AndroidManifest.xml b/firebase-common/src/main/AndroidManifest.xml index 18140a91350..a2913a3a915 100644 --- a/firebase-common/src/main/AndroidManifest.xml +++ b/firebase-common/src/main/AndroidManifest.xml @@ -31,4 +31,4 @@ android:exported="false" tools:targetApi="n" /> - \ No newline at end of file + From 59850f6cd4eb7dec5430ec2f431b5f0acd7cb2f0 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 12:30:40 -0400 Subject: [PATCH 16/33] package transform complete --- .../com/google/firebase/gradle/plugins/PackageTransform.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 140e2dad33b..0938d8bba49 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -294,7 +294,7 @@ abstract class PackageTransform : DefaultTask() { .get(0) private fun updateCode(path: String, pkgName: String, manifestPath: String) { File(path).walk().forEach { - if (it.absolutePath.endsWith(".kt")) { + if (it.absolutePath.endsWith(".kt") && !it.absolutePath.endsWith("Logging.kt")) { val filePath = it.absolutePath val projectName = artifactId.get().split("-").map { x -> x.capitalized() }.joinToString("") val replaceClass: String = @@ -303,7 +303,8 @@ abstract class PackageTransform : DefaultTask() { .filter { it.contains("class") } .map { x -> x.split(" ").get(1).replace(":", "") } .get(0) - File(filePath) + val loggingPath: String = "${File(filePath).parent}/Logging.kt" + File(loggingPath) .writeText( KTX_CONTENT.replace("#{LIBRARY_NAME}", extractLibraryName(filePath)) .replace("#{PROJECT_NAME}", projectName) @@ -313,6 +314,7 @@ abstract class PackageTransform : DefaultTask() { x.replace(replaceClass, "${projectName}LoggingRegistrar") } File(manifestPath).writeText(lines.joinToString("\n")) + File(filePath).delete() } } } From 53b4c6d856e08da71f80cd1b4df83a98fc29ecf9 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 12:37:14 -0400 Subject: [PATCH 17/33] update --- .../google/firebase/gradle/plugins/PackageTransform.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 0938d8bba49..7477a78b0aa 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -284,6 +284,7 @@ abstract class PackageTransform : DefaultTask() { break } } + output.add("\n") File(gradlePath).writeText(output.joinToString("\n")) } private fun extractLibraryName(path: String): String = @@ -310,9 +311,10 @@ abstract class PackageTransform : DefaultTask() { .replace("#{PROJECT_NAME}", projectName) ) val lines = - File(manifestPath).readLines().map { x -> - x.replace(replaceClass, "${projectName}LoggingRegistrar") - } + File(manifestPath) + .readLines() + .map { x -> x.replace(replaceClass, "${projectName}LoggingRegistrar") } + .plus("\n") File(manifestPath).writeText(lines.joinToString("\n")) File(filePath).delete() } From 9b066fb8c5d745f261c922a1ec6ddd3be2c27b07 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 12:42:03 -0400 Subject: [PATCH 18/33] modernize firebase common --- firebase-common/firebase-common.gradle.kts | 35 ++--- firebase-common/ktx/ktx.gradle.kts | 18 +-- .../ktx/src/main/AndroidManifest.xml | 3 +- .../kotlin/com/google/firebase/ktx/Logging.kt | 29 ++++ firebase-common/src/main/AndroidManifest.xml | 4 +- .../java/com/google/firebase}/Firebase.kt | 6 +- .../java/com/google/firebase/ktx/Firebase.kt | 111 ++++++++++++++ .../test/java/com/google/firebase/Tests.kt | 139 +++++++++++++++++ .../java/com/google/firebase/ktx/Tests.kt | 141 ++++++++++++++++++ 9 files changed, 448 insertions(+), 38 deletions(-) create mode 100644 firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Logging.kt rename firebase-common/{ktx/src/main/kotlin/com/google/firebase/ktx => src/main/java/com/google/firebase}/Firebase.kt (92%) create mode 100644 firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt create mode 100644 firebase-common/src/test/java/com/google/firebase/Tests.kt create mode 100644 firebase-common/src/test/java/com/google/firebase/ktx/Tests.kt diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index 7c3ed8abaa3..2815f4c8855 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -14,6 +14,7 @@ plugins { id("firebase-library") + id("kotlin-android") } firebaseLibrary { @@ -51,34 +52,34 @@ android { } dependencies { + androidTestImplementation(libs.androidx.test.junit) + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.junit) + androidTestImplementation(libs.mockito.core) + androidTestImplementation(libs.mockito.dexmaker) + androidTestImplementation(libs.truth) + androidTestImplementation(project(":integ-testing")) + annotationProcessor(libs.autovalue) + api(libs.kotlin.coroutines.tasks) + compileOnly(libs.autovalue.annotations) + compileOnly(libs.findbugs.jsr305) + compileOnly(libs.kotlin.stdlib) implementation("com.google.firebase:firebase-annotations:16.2.0") implementation("com.google.firebase:firebase-components:17.1.0") + implementation(libs.androidx.annotation) implementation(libs.androidx.futures) + implementation(libs.kotlin.stdlib) implementation(libs.playservices.basement) implementation(libs.playservices.tasks) - - annotationProcessor(libs.autovalue) - - compileOnly(libs.autovalue.annotations) - compileOnly(libs.findbugs.jsr305) - // needed for Kotlin detection to compile, but not necessarily present at runtime. - compileOnly(libs.kotlin.stdlib) - testImplementation("com.google.guava:guava-testlib:12.0-rc2") - testImplementation(libs.androidx.test.junit) + testImplementation(libs.androidx.test.core) testImplementation(libs.androidx.test.junit) testImplementation(libs.androidx.test.runner) testImplementation(libs.junit) + testImplementation(libs.kotlin.coroutines.test) testImplementation(libs.mockito.core) testImplementation(libs.org.json) testImplementation(libs.robolectric) testImplementation(libs.truth) - - androidTestImplementation(libs.androidx.test.junit) - androidTestImplementation(libs.androidx.test.runner) - androidTestImplementation(libs.junit) - androidTestImplementation(libs.mockito.core) - androidTestImplementation(libs.mockito.dexmaker) - androidTestImplementation(libs.truth) - androidTestImplementation(project(":integ-testing")) } + diff --git a/firebase-common/ktx/ktx.gradle.kts b/firebase-common/ktx/ktx.gradle.kts index eb0218a0948..6b9e4389e0c 100644 --- a/firebase-common/ktx/ktx.gradle.kts +++ b/firebase-common/ktx/ktx.gradle.kts @@ -42,20 +42,12 @@ android { } dependencies { - implementation(libs.kotlin.stdlib) - - implementation("com.google.firebase:firebase-annotations:16.2.0") - implementation(project(":firebase-common")) + api(project(":firebase-common")) implementation("com.google.firebase:firebase-components:17.1.0") - implementation(libs.androidx.annotation) - - // We"re exposing this library as a transitive dependency so developers can - // get Kotlin Coroutines support out-of-the-box for methods that return a Task - api(libs.kotlin.coroutines.tasks) - - testImplementation(libs.robolectric) - testImplementation(libs.junit) - testImplementation(libs.truth) testImplementation(libs.androidx.test.core) + testImplementation(libs.junit) testImplementation(libs.kotlin.coroutines.test) + testImplementation(libs.robolectric) + testImplementation(libs.truth) } + diff --git a/firebase-common/ktx/src/main/AndroidManifest.xml b/firebase-common/ktx/src/main/AndroidManifest.xml index 05858c6eb7b..edff5eec447 100644 --- a/firebase-common/ktx/src/main/AndroidManifest.xml +++ b/firebase-common/ktx/src/main/AndroidManifest.xml @@ -4,8 +4,9 @@ - + diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Logging.kt b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Logging.kt new file mode 100644 index 00000000000..6690747e68b --- /dev/null +++ b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Logging.kt @@ -0,0 +1,29 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase.ktx + +import androidx.annotation.Keep +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.platforminfo.LibraryVersionComponent + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Keep +class FirebaseCommonLoggingRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf(LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)) + } +} diff --git a/firebase-common/src/main/AndroidManifest.xml b/firebase-common/src/main/AndroidManifest.xml index a2913a3a915..1fdce361fba 100644 --- a/firebase-common/src/main/AndroidManifest.xml +++ b/firebase-common/src/main/AndroidManifest.xml @@ -29,6 +29,6 @@ android:name="com.google.firebase.components.ComponentDiscoveryService" android:directBootAware="true" android:exported="false" - tools:targetApi="n" /> + tools:targetApi="n" > - + \ No newline at end of file diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/Firebase.kt similarity index 92% rename from firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt rename to firebase-common/src/main/java/com/google/firebase/Firebase.kt index 058c0f20626..c18befc0723 100644 --- a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/src/main/java/com/google/firebase/Firebase.kt @@ -11,12 +11,10 @@ // 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. -package com.google.firebase.ktx +package com.google.firebase import android.content.Context import androidx.annotation.Keep -import com.google.firebase.FirebaseApp -import com.google.firebase.FirebaseOptions import com.google.firebase.annotations.concurrent.Background import com.google.firebase.annotations.concurrent.Blocking import com.google.firebase.annotations.concurrent.Lightweight @@ -25,7 +23,6 @@ import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar import com.google.firebase.components.Dependency import com.google.firebase.components.Qualified -import com.google.firebase.platforminfo.LibraryVersionComponent import java.util.concurrent.Executor import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher @@ -66,7 +63,6 @@ internal const val LIBRARY_NAME: String = "fire-core-ktx" class FirebaseCommonKtxRegistrar : ComponentRegistrar { override fun getComponents(): List> { return listOf( - LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), coroutineDispatcher(), coroutineDispatcher(), coroutineDispatcher(), diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt new file mode 100644 index 00000000000..20ffc89e6db --- /dev/null +++ b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt @@ -0,0 +1,111 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase.ktx + +import android.content.Context +import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +@Deprecated("Use `com.google.firebase.Firebase`", ReplaceWith("com.google.firebase.Firebase")) +object Firebase + +/** Returns the default firebase app instance. */ +@Deprecated( + "Use `com.google.firebase.Firebase.app`", + ReplaceWith("com.google.firebase.Firebase.app") +) +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +@Deprecated( + "Use `com.google.firebase.Firebase.app(name)`", + ReplaceWith("com.google.firebase.Firebase.app(name)") +) +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated( + "Use `com.google.firebase.Firebase.initialize(context)`", + ReplaceWith("com.google.firebase.Firebase.initialize(context)") +) +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated( + "Use `com.google.firebase.Firebase.initialize(context, options)`", + ReplaceWith("com.google.firebase.Firebase.initialize(context, options)") +) +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated( + "Use `com.google.firebase.Firebase.initialize(context, options, name)`", + ReplaceWith("com.google.firebase.Firebase.initialize(context, options, name)") +) +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +@Deprecated( + "Use `com.google.firebase.Firebase.options`", + ReplaceWith("com.google.firebase.Firebase.options") +) +val Firebase.options: FirebaseOptions + get() = Firebase.app.options + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Deprecated( + "Use `com.google.firebase.FirebaseCommonKtxRegistrar`", + ReplaceWith("com.google.firebase.FirebaseCommonKtxRegistrar") +) +@Keep +class FirebaseCommonKtxRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf( + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) + } +} + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() diff --git a/firebase-common/src/test/java/com/google/firebase/Tests.kt b/firebase-common/src/test/java/com/google/firebase/Tests.kt new file mode 100644 index 00000000000..4a1357bb1d9 --- /dev/null +++ b/firebase-common/src/test/java/com/google/firebase/Tests.kt @@ -0,0 +1,139 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. + +package com.google.firebase + +import androidx.test.core.app.ApplicationProvider +import com.google.android.gms.tasks.Tasks +import com.google.common.truth.Truth.assertThat +import com.google.firebase.platforminfo.UserAgentPublisher +import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.test.runTest +import org.junit.Assert.fail +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +fun withApp(name: String, block: FirebaseApp.() -> Unit) { + val app = + Firebase.initialize( + ApplicationProvider.getApplicationContext(), + FirebaseOptions.Builder().setApplicationId("appId").build(), + name + ) + try { + block(app) + } finally { + app.delete() + } +} + +class TestException(message: String) : Exception(message) + +@RunWith(RobolectricTestRunner::class) +class VersionTests { + @Test + fun libraryVersions_shouldBeRegisteredWithRuntime() { + withApp("ktxTestApp") { + val uaPublisher = get(UserAgentPublisher::class.java) + assertThat(uaPublisher.userAgent).contains("kotlin") + } + } +} + +@RunWith(RobolectricTestRunner::class) +class KtxTests { + @Test + fun `Firebase#app should delegate to FirebaseApp#getInstance()`() { + withApp(FirebaseApp.DEFAULT_APP_NAME) { + assertThat(Firebase.app).isSameInstanceAs(FirebaseApp.getInstance()) + } + } + + @Test + fun `Firebase#app(String) should delegate to FirebaseApp#getInstance(String)`() { + val appName = "testApp" + withApp(appName) { + assertThat(Firebase.app(appName)).isSameInstanceAs(FirebaseApp.getInstance(appName)) + } + } + + @Test + fun `Firebase#options should delegate to FirebaseApp#getInstance()#options`() { + withApp(FirebaseApp.DEFAULT_APP_NAME) { + assertThat(Firebase.options).isSameInstanceAs(FirebaseApp.getInstance().options) + } + } + + @Test + fun `Firebase#initialize(Context, FirebaseOptions) should initialize the app correctly`() { + val options = FirebaseOptions.Builder().setApplicationId("appId").build() + val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options) + try { + assertThat(app).isNotNull() + assertThat(app.name).isEqualTo(FirebaseApp.DEFAULT_APP_NAME) + assertThat(app.options).isSameInstanceAs(options) + assertThat(app.applicationContext) + .isSameInstanceAs(ApplicationProvider.getApplicationContext()) + } finally { + app.delete() + } + } + + @Test + fun `Firebase#initialize(Context, FirebaseOptions, String) should initialize the app correctly`() { + val options = FirebaseOptions.Builder().setApplicationId("appId").build() + val name = "appName" + val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options, name) + try { + assertThat(app).isNotNull() + assertThat(app.name).isEqualTo(name) + assertThat(app.options).isSameInstanceAs(options) + assertThat(app.applicationContext) + .isSameInstanceAs(ApplicationProvider.getApplicationContext()) + } finally { + app.delete() + } + } +} + +class CoroutinesPlayServicesTests { + // We are only interested in the await() function offered by kotlinx-coroutines-play-services + // So we're not testing the other functions provided by that library. + + @Test + fun `Task#await() resolves to the same result as Task#getResult()`() = runTest { + val task = Tasks.forResult(21) + + val expected = task.result + val actual = task.await() + + assertThat(actual).isEqualTo(expected) + assertThat(task.isSuccessful).isTrue() + assertThat(task.exception).isNull() + } + + @Test + fun `Task#await() throws an Exception for failing Tasks`() = runTest { + val task = Tasks.forException(TestException("some error happened")) + + try { + task.await() + fail("Task#await should throw an Exception") + } catch (e: Exception) { + assertThat(e).isInstanceOf(TestException::class.java) + assertThat(task.isSuccessful).isFalse() + } + } +} diff --git a/firebase-common/src/test/java/com/google/firebase/ktx/Tests.kt b/firebase-common/src/test/java/com/google/firebase/ktx/Tests.kt new file mode 100644 index 00000000000..eb49aa0ad09 --- /dev/null +++ b/firebase-common/src/test/java/com/google/firebase/ktx/Tests.kt @@ -0,0 +1,141 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. + +package com.google.firebase.ktx + +import androidx.test.core.app.ApplicationProvider +import com.google.android.gms.tasks.Tasks +import com.google.common.truth.Truth.assertThat +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.platforminfo.UserAgentPublisher +import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.test.runTest +import org.junit.Assert.fail +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner + +fun withApp(name: String, block: FirebaseApp.() -> Unit) { + val app = + Firebase.initialize( + ApplicationProvider.getApplicationContext(), + FirebaseOptions.Builder().setApplicationId("appId").build(), + name + ) + try { + block(app) + } finally { + app.delete() + } +} + +class TestException(message: String) : Exception(message) + +@RunWith(RobolectricTestRunner::class) +class VersionTests { + @Test + fun libraryVersions_shouldBeRegisteredWithRuntime() { + withApp("ktxTestApp") { + val uaPublisher = get(UserAgentPublisher::class.java) + assertThat(uaPublisher.userAgent).contains("kotlin") + } + } +} + +@RunWith(RobolectricTestRunner::class) +class KtxTests { + @Test + fun `Firebase#app should delegate to FirebaseApp#getInstance()`() { + withApp(FirebaseApp.DEFAULT_APP_NAME) { + assertThat(Firebase.app).isSameInstanceAs(FirebaseApp.getInstance()) + } + } + + @Test + fun `Firebase#app(String) should delegate to FirebaseApp#getInstance(String)`() { + val appName = "testApp" + withApp(appName) { + assertThat(Firebase.app(appName)).isSameInstanceAs(FirebaseApp.getInstance(appName)) + } + } + + @Test + fun `Firebase#options should delegate to FirebaseApp#getInstance()#options`() { + withApp(FirebaseApp.DEFAULT_APP_NAME) { + assertThat(Firebase.options).isSameInstanceAs(FirebaseApp.getInstance().options) + } + } + + @Test + fun `Firebase#initialize(Context, FirebaseOptions) should initialize the app correctly`() { + val options = FirebaseOptions.Builder().setApplicationId("appId").build() + val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options) + try { + assertThat(app).isNotNull() + assertThat(app.name).isEqualTo(FirebaseApp.DEFAULT_APP_NAME) + assertThat(app.options).isSameInstanceAs(options) + assertThat(app.applicationContext) + .isSameInstanceAs(ApplicationProvider.getApplicationContext()) + } finally { + app.delete() + } + } + + @Test + fun `Firebase#initialize(Context, FirebaseOptions, String) should initialize the app correctly`() { + val options = FirebaseOptions.Builder().setApplicationId("appId").build() + val name = "appName" + val app = Firebase.initialize(ApplicationProvider.getApplicationContext(), options, name) + try { + assertThat(app).isNotNull() + assertThat(app.name).isEqualTo(name) + assertThat(app.options).isSameInstanceAs(options) + assertThat(app.applicationContext) + .isSameInstanceAs(ApplicationProvider.getApplicationContext()) + } finally { + app.delete() + } + } +} + +class CoroutinesPlayServicesTests { + // We are only interested in the await() function offered by kotlinx-coroutines-play-services + // So we're not testing the other functions provided by that library. + + @Test + fun `Task#await() resolves to the same result as Task#getResult()`() = runTest { + val task = Tasks.forResult(21) + + val expected = task.result + val actual = task.await() + + assertThat(actual).isEqualTo(expected) + assertThat(task.isSuccessful).isTrue() + assertThat(task.exception).isNull() + } + + @Test + fun `Task#await() throws an Exception for failing Tasks`() = runTest { + val task = Tasks.forException(TestException("some error happened")) + + try { + task.await() + fail("Task#await should throw an Exception") + } catch (e: Exception) { + assertThat(e).isInstanceOf(TestException::class.java) + assertThat(task.isSuccessful).isFalse() + } + } +} From 43eb76826312cdaef0ad9b02e330f822677e68a8 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 12:43:34 -0400 Subject: [PATCH 19/33] ktfmtformat --- .../google/firebase/gradle/plugins/PackageTransform.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 7477a78b0aa..0938d8bba49 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -284,7 +284,6 @@ abstract class PackageTransform : DefaultTask() { break } } - output.add("\n") File(gradlePath).writeText(output.joinToString("\n")) } private fun extractLibraryName(path: String): String = @@ -311,10 +310,9 @@ abstract class PackageTransform : DefaultTask() { .replace("#{PROJECT_NAME}", projectName) ) val lines = - File(manifestPath) - .readLines() - .map { x -> x.replace(replaceClass, "${projectName}LoggingRegistrar") } - .plus("\n") + File(manifestPath).readLines().map { x -> + x.replace(replaceClass, "${projectName}LoggingRegistrar") + } File(manifestPath).writeText(lines.joinToString("\n")) File(filePath).delete() } From 09ae515b607cc9daa9c5728b6c107c9919ad3f1c Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 14:10:59 -0400 Subject: [PATCH 20/33] update --- .../gradle/plugins/PackageTransform.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 0938d8bba49..958fb4807f5 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -13,6 +13,24 @@ import org.gradle.configurationcache.extensions.capitalized import org.gradle.kotlin.dsl.project import org.w3c.dom.Element +val PROJECT_LEVEL_REQUIRED = + [ + "firebase-appdistribution-api", + "firebase-common", + "firebase-config", + "firebase-crashlytics", + "firebase-database", + "firebase-dynamic-links", + "firebase-firestore", + "firebase-functions", + "firebase-messaging", + "firebase-inappmessaging", + "firebase-inappmessaging-display", + "firebase-installations", + "firebase-ml-modeldownloader", + "firebase-perf", + "firebase-storage", + ] val KTX_CONTENT = """ // Copyright 2023 Google LLC @@ -248,6 +266,14 @@ abstract class PackageTransform : DefaultTask() { .filter { !it.contains("project(\"${project.path}\")") } .toMutableList() val deps = (dependencies.toSet() + ktxDependencies.toSet()).toList() + val filtered_project_deps = + PROJECT_LEVEL_REQUIRED.map { x -> ":${x}" }.filter { it != project.path } + deps.map { x -> + val matches = filtered_project_deps.filter { y -> x.contains(y) } + if (matches.isEmpty()) return@map x + return@map "implementation(project(\"matches.get(0)\"))" + } + updateGradleFile(gradlePath, deps) // KTX changes updateCode( From 1809cc36029496ae8718384c1a031fd0439c3cba Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 15:42:18 -0400 Subject: [PATCH 21/33] working for dependency --- .../gradle/plugins/PackageTransform.kt | 84 ++++++++++++++----- 1 file changed, 64 insertions(+), 20 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 958fb4807f5..5a0711f32c1 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -14,7 +14,7 @@ import org.gradle.kotlin.dsl.project import org.w3c.dom.Element val PROJECT_LEVEL_REQUIRED = - [ + mutableListOf( "firebase-appdistribution-api", "firebase-common", "firebase-config", @@ -30,7 +30,7 @@ val PROJECT_LEVEL_REQUIRED = "firebase-ml-modeldownloader", "firebase-perf", "firebase-storage", - ] + ) val KTX_CONTENT = """ // Copyright 2023 Google LLC @@ -108,6 +108,17 @@ abstract class PackageTransform : DefaultTask() { Files.copy(it, destination, StandardCopyOption.REPLACE_EXISTING) } } + if (dest.endsWith("/ktx")) return + val dir: File = File(src.parent.toString()) + if (dir.exists() && dir.isDirectory) { + + dir.listFiles().forEach { x -> + if (x.isDirectory) return + val destination = dest.resolve(dir.toPath().relativize(x.toPath())) + Files.createDirectories(destination.parent) + Files.copy(x.toPath(), destination, StandardCopyOption.COPY_ATTRIBUTES) + } + } } fun deprecateKTX(src: String, pkgName: String) { @@ -148,10 +159,23 @@ abstract class PackageTransform : DefaultTask() { File(src).walk().forEach { if (it.absolutePath.endsWith(".kt")) { val lines = - File(it.absolutePath).readLines().filter { x -> - !x.contains("contains(LIBRARY_NAME)") && - !x.contains("LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)") - } + File(it.absolutePath) + .readLines() + .map { x -> + val p = + x.replace( + "LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME)", + "" + ) + if (p.trim().isEmpty()) { + return@map "#REMOVE#REMOVE#REMOVE" + } else { + return@map p + } + } + .filter { + !it.contains("#REMOVE#REMOVE#REMOVE") && !it.contains("contains(LIBRARY_NAME)") + } File(it.absolutePath).delete() val newFile = File(it.absolutePath) newFile.writeText(lines.joinToString("\n")) @@ -161,18 +185,33 @@ abstract class PackageTransform : DefaultTask() { fun readDependencies(path: String): List { val lines = File(path).readLines() - var start = false + var ctr = 0 var output = mutableListOf() + var tmpString = "" for (line in lines) { - if (start == true) { - if (line.contains("}")) { + if (ctr == 0) { + if (line.contains("dependencies {")) { + ctr++ + continue + } + } else if (ctr == 1) { + if (line.contains("{") && !line.contains("}")) { + tmpString = line + ctr += 1 + } else if (line.contains("}") && !line.contains("{")) { break + } else { + output.add(line.trim()) + } + } else if (ctr == 2) { + val add = " " + if (line.contains("}")) { + ctr = 1 + tmpString += "\n" + add + line + output.add(tmpString.trim()) + } else { + tmpString += "\n" + add + line } - output.add(line.trim()) - } - - if (line.contains("dependencies {")) { - start = true } } return output.filter { x -> (x.trim().isNotEmpty() && !x.startsWith("//")) } @@ -225,6 +264,7 @@ abstract class PackageTransform : DefaultTask() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") packageNamePath = packageNamePath.replace("common", "") val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" + val ktxPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}/ktx" val mainPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}" val ktxArtifactTestPath = "${projectPath.get()}/ktx/src/test/kotlin/${packageNamePath}/ktx" @@ -265,14 +305,18 @@ abstract class PackageTransform : DefaultTask() { readDependencies(ktxGradlePath) .filter { !it.contains("project(\"${project.path}\")") } .toMutableList() - val deps = (dependencies.toSet() + ktxDependencies.toSet()).toList() val filtered_project_deps = PROJECT_LEVEL_REQUIRED.map { x -> ":${x}" }.filter { it != project.path } - deps.map { x -> - val matches = filtered_project_deps.filter { y -> x.contains(y) } - if (matches.isEmpty()) return@map x - return@map "implementation(project(\"matches.get(0)\"))" - } + val deps = + (dependencies.toSet() + ktxDependencies.toSet()) + .toList() + .map { x -> + val matches = filtered_project_deps.filter { y -> x.contains(y) } + if (matches.isEmpty()) return@map x + return@map "implementation(project(\"${matches.get(0)}\"))" + } + .toSet() + .toList() updateGradleFile(gradlePath, deps) // KTX changes From 6751b29da1abe22f64c83d26fbf0a992d6b7b21b Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 9 Aug 2023 16:08:43 -0400 Subject: [PATCH 22/33] update --- .../gradle/plugins/PackageTransform.kt | 60 +++++++++++-------- .../src/main/AndroidManifest.xml | 4 +- 2 files changed, 38 insertions(+), 26 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 5a0711f32c1..3f5270a97fc 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -100,7 +100,7 @@ abstract class PackageTransform : DefaultTask() { return "" } - fun copyDir(src: Path, dest: Path) { + fun copyDir(src: Path, dest: Path, cont: Boolean) { Files.walk(src).forEach { if (!Files.isDirectory(it)) { val destination = dest.resolve(src.relativize(it)) @@ -108,7 +108,7 @@ abstract class PackageTransform : DefaultTask() { Files.copy(it, destination, StandardCopyOption.REPLACE_EXISTING) } } - if (dest.endsWith("/ktx")) return + if (!cont) return val dir: File = File(src.parent.toString()) if (dir.exists() && dir.isDirectory) { @@ -131,7 +131,7 @@ abstract class PackageTransform : DefaultTask() { if (lines[i].contains("*/")) { var symbol = "" var ctr = i + 1 - while (symbol.isEmpty()) { + while (symbol.isEmpty() && ctr < lines.size) { symbol = getSymbol(lines[ctr++]).trim() } output.add( @@ -233,7 +233,6 @@ abstract class PackageTransform : DefaultTask() { "" } .joinToString("\n") - val lines = File(dest).readLines() var output = mutableListOf() var inside = false @@ -275,16 +274,24 @@ abstract class PackageTransform : DefaultTask() { val ktxPackageAndroidTestPath = "${projectPath.get()}/src/androidTest/java/${packageNamePath}/ktx" val mainPackageAndroidTestPath = "${projectPath.get()}/src/androidTest/java/${packageNamePath}" - copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath()) - copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath()) + copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath(), false) + copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath(), true) if (File(ktxArtifactTestPath).exists()) { - copyDir(File(ktxArtifactTestPath).toPath(), File(mainPackageTestPath).toPath()) - copyDir(File(ktxArtifactTestPath).toPath(), File(ktxPackageTestPath).toPath()) + copyDir(File(ktxArtifactTestPath).toPath(), File(mainPackageTestPath).toPath(), true) + copyDir(File(ktxArtifactTestPath).toPath(), File(ktxPackageTestPath).toPath(), false) updateKTXReferences(mainPackageTestPath) } if (File(ktxArtifactAndroidTestPath).exists()) { - copyDir(File(ktxArtifactAndroidTestPath).toPath(), File(mainPackageAndroidTestPath).toPath()) - copyDir(File(ktxArtifactAndroidTestPath).toPath(), File(ktxPackageAndroidTestPath).toPath()) + copyDir( + File(ktxArtifactAndroidTestPath).toPath(), + File(mainPackageAndroidTestPath).toPath(), + true + ) + copyDir( + File(ktxArtifactAndroidTestPath).toPath(), + File(ktxPackageAndroidTestPath).toPath(), + false + ) updateKTXReferences(mainPackageAndroidTestPath) } updateKTXReferences(mainPackagePath) @@ -356,34 +363,39 @@ abstract class PackageTransform : DefaultTask() { } File(gradlePath).writeText(output.joinToString("\n")) } - private fun extractLibraryName(path: String): String = + private fun extractLibraryName(path: String): String? = File(path) .readLines() .filter { x -> x.contains("LIBRARY_NAME:") } .map { x -> x.split(" ").last() } - .get(0) + .getOrNull(0) private fun updateCode(path: String, pkgName: String, manifestPath: String) { File(path).walk().forEach { if (it.absolutePath.endsWith(".kt") && !it.absolutePath.endsWith("Logging.kt")) { val filePath = it.absolutePath val projectName = artifactId.get().split("-").map { x -> x.capitalized() }.joinToString("") - val replaceClass: String = + val replaceClass: String? = File(filePath) .readLines() .filter { it.contains("class") } .map { x -> x.split(" ").get(1).replace(":", "") } - .get(0) + .getOrNull(0) val loggingPath: String = "${File(filePath).parent}/Logging.kt" - File(loggingPath) - .writeText( - KTX_CONTENT.replace("#{LIBRARY_NAME}", extractLibraryName(filePath)) - .replace("#{PROJECT_NAME}", projectName) - ) - val lines = - File(manifestPath).readLines().map { x -> - x.replace(replaceClass, "${projectName}LoggingRegistrar") - } - File(manifestPath).writeText(lines.joinToString("\n")) + val libraryName = extractLibraryName(filePath) + if (!libraryName.isNullOrEmpty()) { + File(loggingPath) + .writeText( + KTX_CONTENT.replace("#{LIBRARY_NAME}", libraryName) + .replace("#{PROJECT_NAME}", projectName) + ) + } + if (!replaceClass.isNullOrEmpty()) { + val lines = + File(manifestPath).readLines().map { x -> + x.replace(replaceClass, "${projectName}LoggingRegistrar") + } + File(manifestPath).writeText(lines.joinToString("\n")) + } File(filePath).delete() } } diff --git a/firebase-crashlytics/src/main/AndroidManifest.xml b/firebase-crashlytics/src/main/AndroidManifest.xml index ef10ac95cec..b14a7ff1107 100644 --- a/firebase-crashlytics/src/main/AndroidManifest.xml +++ b/firebase-crashlytics/src/main/AndroidManifest.xml @@ -6,10 +6,10 @@ - + - + \ No newline at end of file From 78e9f35a92e6270e3e856d1723ec670d54bb9a5e Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 10 Aug 2023 11:55:04 -0400 Subject: [PATCH 23/33] update code --- .../gradle/plugins/PackageTransform.kt | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 3f5270a97fc..b67bd8e879f 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -1,3 +1,16 @@ +// Copyright 2023 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. package com.google.firebase.gradle.plugins import java.io.File @@ -101,17 +114,16 @@ abstract class PackageTransform : DefaultTask() { } fun copyDir(src: Path, dest: Path, cont: Boolean) { - Files.walk(src).forEach { - if (!Files.isDirectory(it)) { - val destination = dest.resolve(src.relativize(it)) + for (file in Files.walk(src)) { + if (!Files.isDirectory(file)) { + val destination = dest.resolve(src.relativize(file)) Files.createDirectories(destination.parent) - Files.copy(it, destination, StandardCopyOption.REPLACE_EXISTING) + Files.copy(file, destination, StandardCopyOption.REPLACE_EXISTING) } } if (!cont) return val dir: File = File(src.parent.toString()) if (dir.exists() && dir.isDirectory) { - dir.listFiles().forEach { x -> if (x.isDirectory) return val destination = dest.resolve(dir.toPath().relativize(x.toPath())) @@ -122,9 +134,9 @@ abstract class PackageTransform : DefaultTask() { } fun deprecateKTX(src: String, pkgName: String) { - File(src).walk().forEach { - if (it.absolutePath.endsWith(".kt")) { - val lines = File(it.absolutePath).readLines() + for (file in File(src).walk()) { + if (file.absolutePath.endsWith(".kt")) { + val lines = File(file.absolutePath).readLines() val output = mutableListOf() for (i in 0 until lines.size) { output.add(lines[i]) @@ -139,10 +151,11 @@ abstract class PackageTransform : DefaultTask() { ) } } - File(it.absolutePath).writeText(output.joinToString("\n")) + File(file.absolutePath).writeText(output.joinToString("\n")) } } } + fun updateKTXReferences(src: String) { // Remove all .ktx suffixes essentially. File(src).walk().forEach { From 3b973200b2481292b6001e810b7ea68e9f51f0e2 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 10 Aug 2023 12:20:03 -0400 Subject: [PATCH 24/33] update --- .../firebase/gradle/plugins/PackageTransform.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index b67bd8e879f..1ae38dd4f9a 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -217,7 +217,7 @@ abstract class PackageTransform : DefaultTask() { output.add(line.trim()) } } else if (ctr == 2) { - val add = " " + val add = " " if (line.contains("}")) { ctr = 1 tmpString += "\n" + add + line @@ -364,8 +364,15 @@ abstract class PackageTransform : DefaultTask() { if (line.contains("id(\"kotlin-android\")")) { continue } + if (line.contains("plugins { id(\"firebase-library\") }")) { + output.add("plugins {") + output.add(" id(\"firebase-library\")") + output.add(" id(\"kotlin-android\")") + output.add("}") + continue + } output.add(line) - if (line.contains("id(\"firebase-library\")")) { + if (line.contains("id(\"firebase-library\")") || line.contains("id 'firebase-library'")) { output.add(" id(\"kotlin-android\")") } if (line.contains("dependencies {")) { From c9cba8c8c76d9f78ca1c58d5c0294a92a37a21d2 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 10 Aug 2023 16:13:48 -0400 Subject: [PATCH 25/33] update packaging --- .../firebase/gradle/plugins/PackageTransform.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 1ae38dd4f9a..5f7c2d7e531 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -59,11 +59,12 @@ val KTX_CONTENT = // 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. - package com.google.firebase.ktx + package #{PACKAGE_NAME}.ktx import androidx.annotation.Keep import com.google.firebase.components.Component import com.google.firebase.components.ComponentRegistrar + import #{PACKAGE_NAME}.BuildConfig import com.google.firebase.platforminfo.LibraryVersionComponent internal const val LIBRARY_NAME: String = #{LIBRARY_NAME} @@ -275,6 +276,9 @@ abstract class PackageTransform : DefaultTask() { fun run() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") packageNamePath = packageNamePath.replace("common", "") + if (artifactId.get().equals("firebase-config")) { + packageNamePath = "com/google/firebase/remoteconfig" + } val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" val ktxPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}/ktx" @@ -391,13 +395,17 @@ abstract class PackageTransform : DefaultTask() { .getOrNull(0) private fun updateCode(path: String, pkgName: String, manifestPath: String) { File(path).walk().forEach { - if (it.absolutePath.endsWith(".kt") && !it.absolutePath.endsWith("Logging.kt")) { + if ( + it.absolutePath.endsWith(".kt") && + !it.absolutePath.endsWith("ChildEvent.kt") && + !it.absolutePath.endsWith("Logging.kt") + ) { val filePath = it.absolutePath val projectName = artifactId.get().split("-").map { x -> x.capitalized() }.joinToString("") val replaceClass: String? = File(filePath) .readLines() - .filter { it.contains("class") } + .filter { it.contains("class") && it.contains("KtxRegistrar") } .map { x -> x.split(" ").get(1).replace(":", "") } .getOrNull(0) val loggingPath: String = "${File(filePath).parent}/Logging.kt" @@ -407,6 +415,7 @@ abstract class PackageTransform : DefaultTask() { .writeText( KTX_CONTENT.replace("#{LIBRARY_NAME}", libraryName) .replace("#{PROJECT_NAME}", projectName) + .replace("#{PACKAGE_NAME}", pkgName.trim('.')) ) } if (!replaceClass.isNullOrEmpty()) { From 2d5a37501bc1cc89aa4095e23554a8d473250eca Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 10 Aug 2023 16:39:46 -0400 Subject: [PATCH 26/33] update --- .../firebase/gradle/plugins/PackageTransform.kt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 5f7c2d7e531..d67e5d88de8 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -327,7 +327,9 @@ abstract class PackageTransform : DefaultTask() { val dependencies = readDependencies(gradlePath) var ktxDependencies = readDependencies(ktxGradlePath) - .filter { !it.contains("project(\"${project.path}\")") } + .filter { + !it.contains("project(\"${project.path}\")") && !it.contains("project '${project.path}'") + } .toMutableList() val filtered_project_deps = PROJECT_LEVEL_REQUIRED.map { x -> ":${x}" }.filter { it != project.path } @@ -355,6 +357,12 @@ abstract class PackageTransform : DefaultTask() { !((it.contains("implementation") || it.contains("api")) && !it.contains("firebase-components:")) } + .map { x -> + val filtered = PROJECT_LEVEL_REQUIRED.filter { x.contains("${it}:") } + println(filtered.isEmpty()) + if (filtered.isEmpty()) return@map x + else return@map "api(project(\":${filtered.get(0)}\")" + } .toMutableList() // KTX gradle changes ktxDependencies.add("api(project(\"${project.path}\"))") @@ -365,10 +373,13 @@ abstract class PackageTransform : DefaultTask() { val lines = File(gradlePath).readLines() val output = mutableListOf() for (line in lines) { - if (line.contains("id(\"kotlin-android\")")) { + if (line.contains("id(\"kotlin-android\")") || line.contains("id 'kotlin-android'")) { continue } - if (line.contains("plugins { id(\"firebase-library\") }")) { + if ( + line.contains("plugins { id(\"firebase-library\") }") || + line.contains("plugins { id 'firebase-library' }") + ) { output.add("plugins {") output.add(" id(\"firebase-library\")") output.add(" id(\"kotlin-android\")") From 843f7278957e07ab8aa0e356354289f1478025b5 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 15 Aug 2023 15:23:45 -0400 Subject: [PATCH 27/33] update --- .../firebase/gradle/plugins/PackageTransform.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index d67e5d88de8..ed27e9e244d 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -278,6 +278,10 @@ abstract class PackageTransform : DefaultTask() { packageNamePath = packageNamePath.replace("common", "") if (artifactId.get().equals("firebase-config")) { packageNamePath = "com/google/firebase/remoteconfig" + } else if (artifactId.get().equals("firebase-dynamic-links")) { + packageNamePath = "com/google/firebase/dynamiclinks" + } else if (artifactId.get().equals("firebase-ml-modeldownloader")) { + packageNamePath = "com/google/firebase/ml/modeldownloader" } val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" @@ -328,7 +332,7 @@ abstract class PackageTransform : DefaultTask() { var ktxDependencies = readDependencies(ktxGradlePath) .filter { - !it.contains("project(\"${project.path}\")") && !it.contains("project '${project.path}'") + !it.contains("project(\"${project.path}\")") && !it.contains("project('${project.path}')") } .toMutableList() val filtered_project_deps = @@ -337,7 +341,10 @@ abstract class PackageTransform : DefaultTask() { (dependencies.toSet() + ktxDependencies.toSet()) .toList() .map { x -> - val matches = filtered_project_deps.filter { y -> x.contains(y) } + val matches = + filtered_project_deps.filter { y -> + x.contains(y) && !x.contains("interop") && !x.contains("collection") + } if (matches.isEmpty()) return@map x return@map "implementation(project(\"${matches.get(0)}\"))" } @@ -355,13 +362,12 @@ abstract class PackageTransform : DefaultTask() { ktxDependencies .filter { !((it.contains("implementation") || it.contains("api")) && - !it.contains("firebase-components:")) + (!it.contains("firebase") || it.contains(project.path) || it.contains("-ktx"))) } .map { x -> val filtered = PROJECT_LEVEL_REQUIRED.filter { x.contains("${it}:") } - println(filtered.isEmpty()) if (filtered.isEmpty()) return@map x - else return@map "api(project(\":${filtered.get(0)}\")" + else return@map "api(project(\":${filtered.get(0)}\"))" } .toMutableList() // KTX gradle changes From ac0611ca80ee1381d8cbdfd10bc4205d9be3c44d Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 15 Aug 2023 15:31:40 -0400 Subject: [PATCH 28/33] small update --- .../java/com/google/firebase/gradle/plugins/PackageTransform.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index ed27e9e244d..7b593b56a9d 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -282,6 +282,8 @@ abstract class PackageTransform : DefaultTask() { packageNamePath = "com/google/firebase/dynamiclinks" } else if (artifactId.get().equals("firebase-ml-modeldownloader")) { packageNamePath = "com/google/firebase/ml/modeldownloader" + } else if (artifactId.get().contains("appcheck")) { + packageNamePath = "com/google/firebase/appcheck" } val ktxArtifactPath = "${projectPath.get()}/ktx/src/main/kotlin/${packageNamePath}/ktx" From 5b8b8b0c813e2ed5060b48e149aec74bfcf95160 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 15 Aug 2023 15:52:12 -0400 Subject: [PATCH 29/33] upgrade protobuf --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5b4a27741e9..5f53f805494 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ buildscript { } dependencies { - classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.2' + classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.4' classpath 'net.ltgt.gradle:gradle-errorprone-plugin:1.3.0' classpath 'gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.9' classpath 'com.google.gms:google-services:4.3.15' From 14f219ec705d54c7d938094da3aba3e994ca6103 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 16 Aug 2023 13:40:30 -0400 Subject: [PATCH 30/33] update --- .../gradle/plugins/PackageTransform.kt | 11 +++++---- .../java/com/google/firebase/ktx/Firebase.kt | 24 ------------------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 7b593b56a9d..479cd751839 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -125,11 +125,12 @@ abstract class PackageTransform : DefaultTask() { if (!cont) return val dir: File = File(src.parent.toString()) if (dir.exists() && dir.isDirectory) { - dir.listFiles().forEach { x -> - if (x.isDirectory) return - val destination = dest.resolve(dir.toPath().relativize(x.toPath())) - Files.createDirectories(destination.parent) - Files.copy(x.toPath(), destination, StandardCopyOption.COPY_ATTRIBUTES) + for (file in Files.walk(dir.toPath())) { + if (!Files.isDirectory(file) && !file.toAbsolutePath().contains(src.toAbsolutePath())) { + val destination = dest.resolve(dir.toPath().relativize(file)) + Files.createDirectories(destination.parent) + Files.copy(file, destination, StandardCopyOption.REPLACE_EXISTING) + } } } } diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt index 20ffc89e6db..8b3d7943433 100644 --- a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt @@ -85,27 +85,3 @@ val Firebase.options: FirebaseOptions internal const val LIBRARY_NAME: String = "fire-core-ktx" -/** @suppress */ -@Deprecated( - "Use `com.google.firebase.FirebaseCommonKtxRegistrar`", - ReplaceWith("com.google.firebase.FirebaseCommonKtxRegistrar") -) -@Keep -class FirebaseCommonKtxRegistrar : ComponentRegistrar { - override fun getComponents(): List> { - return listOf( - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher() - ) - } -} - -private inline fun coroutineDispatcher(): Component = - Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) - .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) - .factory { c -> - c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() - } - .build() From cb28d6a99f2377454bba4b5fbdd5afcf819d8bb2 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 17 Aug 2023 14:41:56 -0400 Subject: [PATCH 31/33] component runtime --- .../firebase/components/ComponentRuntime.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/firebase-components/src/main/java/com/google/firebase/components/ComponentRuntime.java b/firebase-components/src/main/java/com/google/firebase/components/ComponentRuntime.java index a560cf5b502..15eead69d53 100644 --- a/firebase-components/src/main/java/com/google/firebase/components/ComponentRuntime.java +++ b/firebase-components/src/main/java/com/google/firebase/components/ComponentRuntime.java @@ -49,6 +49,7 @@ public class ComponentRuntime implements ComponentContainer, ComponentLoader { private final Map, Provider> lazyInstanceMap = new HashMap<>(); private final Map, LazySet> lazySetMap = new HashMap<>(); private final List> unprocessedRegistrarProviders; + private final List> processedComponents = new ArrayList<>(); private final EventBus eventBus; private final AtomicReference eagerComponentsInitializedWith = new AtomicReference<>(); private final ComponentRegistrarProcessor componentRegistrarProcessor; @@ -107,6 +108,8 @@ private void discoverComponents(List> componentsToAdd) { // instead of executing such code in the synchronized block below, we store it in a list and // execute right after the synchronized section. List runAfterDiscovery = new ArrayList<>(); + List> componentsAdding = new ArrayList<>(); + Set existingInterfaces = new HashSet<>(); synchronized (this) { Iterator> iterator = unprocessedRegistrarProviders.iterator(); while (iterator.hasNext()) { @@ -122,16 +125,41 @@ private void discoverComponents(List> componentsToAdd) { Log.w(ComponentDiscovery.TAG, "Invalid component registrar.", ex); } } + for (int i = 0; i < processedComponents.size(); i++) { + Object[] interfaces = processedComponents.get(i).getProvidedInterfaces().toArray(); + for (Object anInterface : interfaces) { + if (anInterface.toString().contains("kotlinx.coroutines.CoroutineDispatcher")) { + existingInterfaces.add(anInterface.toString()); + } + } + } + for (int i = 0; i < componentsToAdd.size(); i++) { + Object[] interfaces = componentsToAdd.get(i).getProvidedInterfaces().toArray(); + boolean addComponent = true; + for (Object anInterface : interfaces) { + String interfaceString = anInterface.toString(); + if (interfaceString.contains("kotlinx.coroutines.CoroutineDispatcher")) { + if (existingInterfaces.contains(interfaceString)) { + addComponent = false; + } else { + existingInterfaces.add(interfaceString); + } + } + } + if (addComponent) { + componentsAdding.add(componentsToAdd.get(i)); + } + } if (components.isEmpty()) { - CycleDetector.detect(componentsToAdd); + CycleDetector.detect(componentsAdding); } else { ArrayList> allComponents = new ArrayList<>(this.components.keySet()); - allComponents.addAll(componentsToAdd); + allComponents.addAll(componentsAdding); CycleDetector.detect(allComponents); } - for (Component component : componentsToAdd) { + for (Component component : componentsAdding) { Lazy lazy = new Lazy<>( () -> @@ -142,7 +170,8 @@ private void discoverComponents(List> componentsToAdd) { components.put(component, lazy); } - runAfterDiscovery.addAll(processInstanceComponents(componentsToAdd)); + runAfterDiscovery.addAll(processInstanceComponents(componentsAdding)); + processedComponents.addAll(componentsAdding); runAfterDiscovery.addAll(processSetComponents()); processDependencies(); } From f2ce0ce9af5b0ddb78fa89e980c0738a8ad9326e Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 22 Aug 2023 13:29:27 -0400 Subject: [PATCH 32/33] update script --- .../com/google/firebase/gradle/plugins/PackageTransform.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 479cd751839..adb82cfd20c 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -32,6 +32,7 @@ val PROJECT_LEVEL_REQUIRED = "firebase-common", "firebase-config", "firebase-crashlytics", + "firebase-components", "firebase-database", "firebase-dynamic-links", "firebase-firestore", @@ -283,6 +284,8 @@ abstract class PackageTransform : DefaultTask() { packageNamePath = "com/google/firebase/dynamiclinks" } else if (artifactId.get().equals("firebase-ml-modeldownloader")) { packageNamePath = "com/google/firebase/ml/modeldownloader" + } else if (artifactId.get().equals("firebase-inappmessaging-display")) { + packageNamePath = "com/google/firebase/inappmessaging/display" } else if (artifactId.get().contains("appcheck")) { packageNamePath = "com/google/firebase/appcheck" } From af9ca1d514f9892a5188f3c6833c480f8bf5e0ff Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Thu, 24 Aug 2023 13:35:27 -0400 Subject: [PATCH 33/33] update code --- firebase-common/firebase-common.gradle.kts | 47 ++++---- firebase-common/ktx/ktx.gradle.kts | 10 +- .../ktx/src/main/AndroidManifest.xml | 1 - .../com/google/firebase/ktx/Firebase.kt | 84 +++++++++++++ .../kotlin/com/google/firebase/ktx/Tests.kt | 2 +- firebase-common/src/main/AndroidManifest.xml | 7 +- firebase-messaging/firebase-messaging.gradle | 113 +++++++++--------- 7 files changed, 177 insertions(+), 87 deletions(-) create mode 100644 firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt diff --git a/firebase-common/firebase-common.gradle.kts b/firebase-common/firebase-common.gradle.kts index 2815f4c8855..f9f4c2502a1 100644 --- a/firebase-common/firebase-common.gradle.kts +++ b/firebase-common/firebase-common.gradle.kts @@ -24,31 +24,31 @@ firebaseLibrary { } android { - val targetSdkVersion : Int by rootProject - val minSdkVersion : Int by rootProject + val targetSdkVersion : Int by rootProject + val minSdkVersion : Int by rootProject - compileSdk = targetSdkVersion - namespace = "com.google.firebase" - defaultConfig { - minSdk = minSdkVersion - targetSdk = targetSdkVersion - multiDexEnabled = true - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("proguard.txt") + compileSdk = targetSdkVersion + namespace = "com.google.firebase" + defaultConfig { + minSdk = minSdkVersion + targetSdk = targetSdkVersion + multiDexEnabled = true + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("proguard.txt") + } + sourceSets { + getByName("androidTest") { + java.srcDirs("src/testUtil") } - sourceSets { - getByName("androidTest") { - java.srcDirs("src/testUtil") - } - getByName("test") { - java.srcDirs("src/testUtil") - } + getByName("test") { + java.srcDirs("src/testUtil") } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - testOptions.unitTests.isIncludeAndroidResources = true + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + testOptions.unitTests.isIncludeAndroidResources = true } dependencies { @@ -81,5 +81,4 @@ dependencies { testImplementation(libs.org.json) testImplementation(libs.robolectric) testImplementation(libs.truth) -} - +} \ No newline at end of file diff --git a/firebase-common/ktx/ktx.gradle.kts b/firebase-common/ktx/ktx.gradle.kts index 6b9e4389e0c..2c5ee2aa6f8 100644 --- a/firebase-common/ktx/ktx.gradle.kts +++ b/firebase-common/ktx/ktx.gradle.kts @@ -42,12 +42,12 @@ android { } dependencies { - api(project(":firebase-common")) implementation("com.google.firebase:firebase-components:17.1.0") - testImplementation(libs.androidx.test.core) - testImplementation(libs.junit) - testImplementation(libs.kotlin.coroutines.test) + api(project(":firebase-common")) + testImplementation(libs.robolectric) + testImplementation(libs.junit) testImplementation(libs.truth) + testImplementation(libs.androidx.test.core) + testImplementation(libs.kotlin.coroutines.test) } - diff --git a/firebase-common/ktx/src/main/AndroidManifest.xml b/firebase-common/ktx/src/main/AndroidManifest.xml index edff5eec447..d7872f2e0dc 100644 --- a/firebase-common/ktx/src/main/AndroidManifest.xml +++ b/firebase-common/ktx/src/main/AndroidManifest.xml @@ -9,4 +9,3 @@ - diff --git a/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt new file mode 100644 index 00000000000..058c0f20626 --- /dev/null +++ b/firebase-common/ktx/src/main/kotlin/com/google/firebase/ktx/Firebase.kt @@ -0,0 +1,84 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase.ktx + +import android.content.Context +import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified +import com.google.firebase.platforminfo.LibraryVersionComponent +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +object Firebase + +/** Returns the default firebase app instance. */ +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +val Firebase.options: FirebaseOptions + get() = Firebase.app.options + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Keep +class FirebaseCommonKtxRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf( + LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) + } +} + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() diff --git a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt index 43ac45c33b3..4002bbfe334 100644 --- a/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt +++ b/firebase-common/ktx/src/test/kotlin/com/google/firebase/ktx/Tests.kt @@ -17,6 +17,7 @@ package com.google.firebase.ktx import androidx.test.core.app.ApplicationProvider import com.google.android.gms.tasks.Tasks import com.google.common.truth.Truth.assertThat +import com.google.firebase.Firebase import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseOptions import com.google.firebase.platforminfo.UserAgentPublisher @@ -50,7 +51,6 @@ class VersionTests { withApp("ktxTestApp") { val uaPublisher = get(UserAgentPublisher::class.java) assertThat(uaPublisher.userAgent).contains("kotlin") - assertThat(uaPublisher.userAgent).contains(LIBRARY_NAME) } } } diff --git a/firebase-common/src/main/AndroidManifest.xml b/firebase-common/src/main/AndroidManifest.xml index 1fdce361fba..ed589155c92 100644 --- a/firebase-common/src/main/AndroidManifest.xml +++ b/firebase-common/src/main/AndroidManifest.xml @@ -29,6 +29,9 @@ android:name="com.google.firebase.components.ComponentDiscoveryService" android:directBootAware="true" android:exported="false" - tools:targetApi="n" > + tools:targetApi="n" > + + - \ No newline at end of file + diff --git a/firebase-messaging/firebase-messaging.gradle b/firebase-messaging/firebase-messaging.gradle index eaaa4445f8a..a6f7753c09b 100644 --- a/firebase-messaging/firebase-messaging.gradle +++ b/firebase-messaging/firebase-messaging.gradle @@ -13,25 +13,26 @@ // limitations under the License. plugins { - id 'firebase-library' id 'com.google.protobuf' -} - -configurations.create("protobuild") -dependencies { - protobuild project(path: ":encoders:protoc-gen-firebase-encoders", configuration: "shadow") + id 'firebase-library' + id 'kotlin-android' } protobuf { + dependencies { + // Include the project dependency directly + implementation project(':encoders:protoc-gen-firebase-encoders') + } protoc { artifact = "com.google.protobuf:protoc:$protocVersion" } plugins { firebaseEncoders { - path = configurations.protobuild.asPath + path = project(':encoders:protoc-gen-firebase-encoders').buildDir.path + '/libs' +'/protoc-gen-firebase-encoders-all.jar' } } generateProtoTasks { + all().each { task -> task.dependsOn configurations.protobuild task.inputs.file 'code_gen_cfg.textproto' @@ -42,7 +43,9 @@ protobuf { } task.builtins { remove java + remove kotlin } + } } } @@ -75,67 +78,69 @@ android { } dependencies { - implementation 'com.google.firebase:firebase-common:20.3.1' - implementation 'com.google.firebase:firebase-components:17.1.0' - implementation 'com.google.firebase:firebase-installations-interop:17.1.0' - implementation 'com.google.firebase:firebase-datatransport:18.1.7' - implementation 'com.google.android.datatransport:transport-api:3.0.0' - implementation 'com.google.android.datatransport:transport-runtime:3.1.8' - implementation 'com.google.android.datatransport:transport-backend-cct:3.1.8' - implementation 'com.google.firebase:firebase-encoders:17.0.0' - implementation 'com.google.firebase:firebase-encoders-json:18.0.0' - implementation "com.google.firebase:firebase-encoders-proto:16.0.0" - implementation "com.google.firebase:firebase-installations:17.1.3" + androidTestImplementation "androidx.annotation:annotation:1.0.0" + androidTestImplementation "androidx.test.ext:junit:$androidxTestJUnitVersion" + androidTestImplementation "com.google.truth:truth:$googleTruthVersion" + androidTestImplementation 'androidx.test:runner:1.2.0' + androidTestImplementation 'junit:junit:4.12' + androidTestImplementation 'org.mockito:mockito-core:2.25.0' + androidTestImplementation 'org.mockito:mockito-inline:2.25.0' + androidTestImplementation project(':integ-testing') annotationProcessor project(":encoders:firebase-encoders-processor") - - implementation 'androidx.annotation:annotation:1.2.0' - implementation "com.google.android.gms:play-services-tasks:18.0.1" implementation "com.google.android.gms:play-services-basement:18.1.0" - implementation 'com.google.android.gms:play-services-base:18.0.1' - implementation 'com.google.android.gms:play-services-stats:17.0.2' - implementation 'com.google.firebase:firebase-measurement-connector:19.0.0' + implementation "com.google.android.gms:play-services-tasks:18.0.1" + implementation "com.google.errorprone:error_prone_annotations:2.9.0" + implementation "com.google.firebase:firebase-encoders-proto:16.0.0" implementation "com.google.firebase:firebase-iid-interop:17.1.0" + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + implementation 'androidx.annotation:annotation:1.2.0' + implementation 'com.google.android.datatransport:transport-api:3.0.0' + implementation 'com.google.android.datatransport:transport-backend-cct:3.1.8' + implementation 'com.google.android.datatransport:transport-runtime:3.1.8' + implementation 'com.google.android.gms:play-services-base:18.0.1' implementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1' - implementation "com.google.errorprone:error_prone_annotations:2.9.0" - testImplementation ("com.google.api-client:google-api-client:1.30.9") { - exclude group: "org.apache.httpcomponents", module: "httpclient" + implementation 'com.google.android.gms:play-services-stats:17.0.2' + implementation('com.google.firebase:firebase-datatransport:18.1.7') { + exclude group: 'com.google.firebase', module: 'firebase-common' + exclude group: 'com.google.firebase', module: 'firebase-components' + } + implementation 'com.google.firebase:firebase-encoders-json:18.0.0' + implementation 'com.google.firebase:firebase-encoders:17.0.0' + implementation('com.google.firebase:firebase-installations-interop:17.1.0') + implementation('com.google.firebase:firebase-measurement-connector:19.0.0') + implementation(project(":firebase-common")) + implementation(project(":firebase-components")) + implementation(project(":firebase-installations")) { + exclude group: 'com.google.firebase', module: 'firebase-common' + exclude group: 'com.google.firebase', module: 'firebase-components' } - testCompileOnly 'com.google.auto.value:auto-value-annotations:1.6.3' - testAnnotationProcessor "com.google.auto.value:auto-value:1.6.3" - javadocClasspath 'com.google.auto.value:auto-value-annotations:1.6.6' - + testAnnotationProcessor "com.google.auto.value:auto-value:1.6.3" + testCompileOnly 'com.google.auto.value:auto-value-annotations:1.6.3' testImplementation "androidx.test:core:$androidxTestCoreVersion" - testImplementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1' + testImplementation "com.google.truth:truth:$googleTruthVersion" + testImplementation "org.robolectric:robolectric:$robolectricVersion" + testImplementation 'androidx.core:core:1.6.0' + testImplementation 'androidx.test.espresso:espresso-intents:3.2.0' + testImplementation 'androidx.test.ext:truth:1.4.0' + testImplementation 'androidx.test.services:test-services:1.2.0' testImplementation 'androidx.test:rules:1.2.0' testImplementation 'androidx.test:runner:1.2.0' - testImplementation "org.robolectric:robolectric:$robolectricVersion" + testImplementation 'com.android.support.test:runner:1.0.2' + testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8' + testImplementation 'com.google.android.gms:play-services-cloud-messaging:17.0.1' + testImplementation 'com.google.android.gms:play-services-vision:20.1.3' + testImplementation 'com.google.guava:guava-testlib:12.0-rc2' + testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.13-beta-2' testImplementation 'org.mockito:mockito-core:2.25.0' - testImplementation "com.google.truth:truth:$googleTruthVersion" - testImplementation 'com.google.android.gms:play-services-vision:20.1.3' + testImplementation ("com.google.api-client:google-api-client:1.30.9") { + exclude group: "org.apache.httpcomponents", module: "httpclient" + } testImplementation ("com.google.firebase:firebase-iid:21.1.0") { exclude group: "com.google.firebase", module: "firebase-common" exclude group: "com.google.firebase", module: "firebase-components" exclude group: "com.google.firebase", module: "firebase-installations-interop" exclude group: "com.google.firebase", module: "firebase-installations" } - - testImplementation 'com.android.support.test:runner:1.0.2' - testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8' - testImplementation 'com.google.guava:guava-testlib:12.0-rc2' - testImplementation 'androidx.test.espresso:espresso-intents:3.2.0' - testImplementation 'androidx.test:rules:1.2.0' - testImplementation 'androidx.test.ext:truth:1.4.0' - testImplementation 'androidx.test.services:test-services:1.2.0' - testImplementation 'androidx.core:core:1.6.0' - - androidTestImplementation project(':integ-testing') - androidTestImplementation "androidx.test.ext:junit:$androidxTestJUnitVersion" - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation "com.google.truth:truth:$googleTruthVersion" - androidTestImplementation 'junit:junit:4.12' - androidTestImplementation "androidx.annotation:annotation:1.0.0" - androidTestImplementation 'org.mockito:mockito-core:2.25.0' - androidTestImplementation 'org.mockito:mockito-inline:2.25.0' -} +} \ No newline at end of file

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 b1`?eAa`O!&&!8Zwg96n9QPqN+hl2V)IeU8K literal 0 HcmV?d00001 diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt new file mode 100644 index 00000000000..058c0f20626 --- /dev/null +++ b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt @@ -0,0 +1,84 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase.ktx + +import android.content.Context +import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified +import com.google.firebase.platforminfo.LibraryVersionComponent +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +object Firebase + +/** Returns the default firebase app instance. */ +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +val Firebase.options: FirebaseOptions + get() = Firebase.app.options + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Keep +class FirebaseCommonKtxRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf( + LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) + } +} + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() From a6af7170e35e4dba5afcf89a7f7e8ec9a7ee6719 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 25 Jul 2023 15:47:08 -0400 Subject: [PATCH 02/33] update --- .../com/google/firebase/gradle/plugins/PackageTransform.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index f793edb309b..47e2ba3924e 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -16,8 +16,7 @@ abstract class PackageTransform : DefaultTask() { fun copyDir(src: Path, dest: Path) { Files.walk(src).forEach { if (!Files.isDirectory(it)) { - println(it) - println(dest.resolve(src.relativize(it))) + Files.copy(it, dest.resolve(src.relativize(it)), StandardCopyOption.REPLACE_EXISTING) } } } From e9c40f84d4c4635160a69a538f7edc99bb0c6157 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 1 Aug 2023 11:25:57 -0400 Subject: [PATCH 03/33] update --- .../gradle/plugins/PackageTransform.kt | 30 +++++++++++++++++++ .../java/com/google/firebase/ktx/Firebase.kt | 12 ++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index 47e2ba3924e..a8dd228ccc0 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -3,6 +3,7 @@ package com.google.firebase.gradle.plugins import java.io.File import java.nio.file.Files import java.nio.file.Path +import java.nio.file.StandardCopyOption import org.gradle.api.DefaultTask import org.gradle.api.provider.Property import org.gradle.api.tasks.Input @@ -21,6 +22,33 @@ abstract class PackageTransform : DefaultTask() { } } + fun deprecateKTX(src: String) { + File(src).walk().forEach { + if (it.absolutePath.endsWith(".kt")) { + val lines = File(it.absolutePath).readLines() + val output = mutableListOf() + for (line in lines) { + output.add(line) + if (line.contains("*/")) { + output.add("@Deprecated") + } + } + File(it.absolutePath).writeText(output.joinToString("\n")) + } + } + } + fun updateKTXReferences(src: String) { + // Remove all .ktx suffixes essentially. + File(src).walk().forEach { + if (it.absolutePath.endsWith(".kt")) { + val lines = File(it.absolutePath).readLines().map { x -> x.replace(".ktx", "") } + File(it.absolutePath).delete() + val newFile = File(it.absolutePath) + newFile.writeText(lines.joinToString("\n")) + } + } + } + @TaskAction fun run() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") @@ -30,5 +58,7 @@ abstract class PackageTransform : DefaultTask() { val mainPackagePath = "${projectPath.get()}/src/main/java/${packageNamePath}" copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath()) copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath()) + updateKTXReferences(mainPackagePath) + deprecateKTX(ktxPackagePath) } } diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt index 058c0f20626..dab7b89575b 100644 --- a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt +++ b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt @@ -11,7 +11,7 @@ // 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. -package com.google.firebase.ktx +package com.google.firebase import android.content.Context import androidx.annotation.Keep @@ -35,33 +35,41 @@ import kotlinx.coroutines.asCoroutineDispatcher * *

Acts as a target for extension methods provided by sdks. */ +@Deprecated("Use {@code } instead") object Firebase /** Returns the default firebase app instance. */ +@Deprecated val Firebase.app: FirebaseApp get() = FirebaseApp.getInstance() /** Returns a named firebase app instance. */ +@Deprecated fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) /** Initializes and returns a FirebaseApp. */ +@Deprecated fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) /** Initializes and returns a FirebaseApp. */ +@Deprecated fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = FirebaseApp.initializeApp(context, options) /** Initializes and returns a FirebaseApp. */ +@Deprecated fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = FirebaseApp.initializeApp(context, options, name) /** Returns options of default FirebaseApp */ +@Deprecated val Firebase.options: FirebaseOptions get() = Firebase.app.options internal const val LIBRARY_NAME: String = "fire-core-ktx" /** @suppress */ +@Deprecated @Keep class FirebaseCommonKtxRegistrar : ComponentRegistrar { override fun getComponents(): List> { @@ -81,4 +89,4 @@ private inline fun coroutineDispatcher(): Component c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() } - .build() + .build() \ No newline at end of file From ccb83b9bcb04cf23c12be451b48c3885769b28d8 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 2 Aug 2023 15:16:11 -0400 Subject: [PATCH 04/33] update --- .../gradle/plugins/PackageTransform.kt | 70 ++++++++++++-- .../java/com/google/firebase/ktx/Firebase.kt | 92 ------------------- 2 files changed, 63 insertions(+), 99 deletions(-) delete mode 100644 firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt diff --git a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt index a8dd228ccc0..d43b6343cc5 100644 --- a/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt +++ b/buildSrc/src/main/java/com/google/firebase/gradle/plugins/PackageTransform.kt @@ -14,6 +14,36 @@ abstract class PackageTransform : DefaultTask() { @get:Input abstract val groupId: Property @get:Input abstract val projectPath: Property + fun getSymbol(line: String): String { + val parts = line.split(" ") + if (parts.get(0) == "val" || parts.get(0) == "class") { + // Field or class + return parts.get(1).replace(":", "") + } else if (parts.get(0) == "object") { + return parts.get(1) + } else if (parts.get(0) == "fun") { + // Method + var output: String = "" + var ignore = false + for (c in line) { + if (c == ':') { + ignore = true + } + if (c == ')' || c == ',') { + ignore = false + } + if (c == '=') { + break + } + if (!ignore) { + output += c + } + } + return output.replace("fun", "") + } + return "" + } + fun copyDir(src: Path, dest: Path) { Files.walk(src).forEach { if (!Files.isDirectory(it)) { @@ -22,15 +52,22 @@ abstract class PackageTransform : DefaultTask() { } } - fun deprecateKTX(src: String) { + fun deprecateKTX(src: String, pkgName: String) { File(src).walk().forEach { if (it.absolutePath.endsWith(".kt")) { val lines = File(it.absolutePath).readLines() val output = mutableListOf() - for (line in lines) { - output.add(line) - if (line.contains("*/")) { - output.add("@Deprecated") + for (i in 0 until lines.size) { + output.add(lines[i]) + if (lines[i].contains("*/")) { + var symbol = "" + var ctr = i + 1 + while (symbol.isEmpty()) { + symbol = getSymbol(lines[ctr++]).trim() + } + output.add( + """@Deprecated("Use `${pkgName}${symbol}`", ReplaceWith("${pkgName}${symbol}"))""" + ) } } File(it.absolutePath).writeText(output.joinToString("\n")) @@ -40,7 +77,7 @@ abstract class PackageTransform : DefaultTask() { fun updateKTXReferences(src: String) { // Remove all .ktx suffixes essentially. File(src).walk().forEach { - if (it.absolutePath.endsWith(".kt")) { + if (it.absolutePath.endsWith(".kt") && !it.absolutePath.contains("/ktx/")) { val lines = File(it.absolutePath).readLines().map { x -> x.replace(".ktx", "") } File(it.absolutePath).delete() val newFile = File(it.absolutePath) @@ -49,6 +86,23 @@ abstract class PackageTransform : DefaultTask() { } } + fun updatePlatformLogging(src: String) { + File(src).walk().forEach { + if (it.absolutePath.endsWith(".kt")) { + val lines = + File(it.absolutePath).readLines().map { x -> + x.replace( + """LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME),""", + "" + ) + } + File(it.absolutePath).delete() + val newFile = File(it.absolutePath) + newFile.writeText(lines.joinToString("\n")) + } + } + } + @TaskAction fun run() { var packageNamePath = "${groupId.get()}.${artifactId.get().split("-")[1]}".replace(".", "/") @@ -59,6 +113,8 @@ abstract class PackageTransform : DefaultTask() { copyDir(File(ktxArtifactPath).toPath(), File(ktxPackagePath).toPath()) copyDir(File(ktxArtifactPath).toPath(), File(mainPackagePath).toPath()) updateKTXReferences(mainPackagePath) - deprecateKTX(ktxPackagePath) + updatePlatformLogging(mainPackagePath) + deprecateKTX(ktxPackagePath, packageNamePath.replace("/", ".")) + project.dependencies.create("com.google.firebase:firebase-functions-ktx:20.3.1") } } diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt deleted file mode 100644 index dab7b89575b..00000000000 --- a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2019 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// 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. -package com.google.firebase - -import android.content.Context -import androidx.annotation.Keep -import com.google.firebase.FirebaseApp -import com.google.firebase.FirebaseOptions -import com.google.firebase.annotations.concurrent.Background -import com.google.firebase.annotations.concurrent.Blocking -import com.google.firebase.annotations.concurrent.Lightweight -import com.google.firebase.annotations.concurrent.UiThread -import com.google.firebase.components.Component -import com.google.firebase.components.ComponentRegistrar -import com.google.firebase.components.Dependency -import com.google.firebase.components.Qualified -import com.google.firebase.platforminfo.LibraryVersionComponent -import java.util.concurrent.Executor -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.asCoroutineDispatcher - -/** - * Single access point to all firebase SDKs from Kotlin. - * - *

Acts as a target for extension methods provided by sdks. - */ -@Deprecated("Use {@code } instead") -object Firebase - -/** Returns the default firebase app instance. */ -@Deprecated -val Firebase.app: FirebaseApp - get() = FirebaseApp.getInstance() - -/** Returns a named firebase app instance. */ -@Deprecated -fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated -fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated -fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = - FirebaseApp.initializeApp(context, options) - -/** Initializes and returns a FirebaseApp. */ -@Deprecated -fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = - FirebaseApp.initializeApp(context, options, name) - -/** Returns options of default FirebaseApp */ -@Deprecated -val Firebase.options: FirebaseOptions - get() = Firebase.app.options - -internal const val LIBRARY_NAME: String = "fire-core-ktx" - -/** @suppress */ -@Deprecated -@Keep -class FirebaseCommonKtxRegistrar : ComponentRegistrar { - override fun getComponents(): List> { - return listOf( - LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher(), - coroutineDispatcher() - ) - } -} - -private inline fun coroutineDispatcher(): Component = - Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) - .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) - .factory { c -> - c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() - } - .build() \ No newline at end of file From 5cce3b0c13c7df0414c777243813025a399c23e3 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 2 Aug 2023 15:16:17 -0400 Subject: [PATCH 05/33] add files --- .../main/java/com/google/firebase/Firebase.kt | 84 +++++++++++++++++ .../java/com/google/firebase/ktx/Firebase.kt | 92 +++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 firebase-common/src/main/java/com/google/firebase/Firebase.kt create mode 100644 firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt diff --git a/firebase-common/src/main/java/com/google/firebase/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/Firebase.kt new file mode 100644 index 00000000000..626f1b949d0 --- /dev/null +++ b/firebase-common/src/main/java/com/google/firebase/Firebase.kt @@ -0,0 +1,84 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase + +import android.content.Context +import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified +import com.google.firebase.platforminfo.LibraryVersionComponent +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +object Firebase + +/** Returns the default firebase app instance. */ +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +val Firebase.options: FirebaseOptions + get() = Firebase.app.options + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Keep +class FirebaseCommonKtxRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf( + + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) + } +} + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() \ No newline at end of file diff --git a/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt new file mode 100644 index 00000000000..feaabc24a45 --- /dev/null +++ b/firebase-common/src/main/java/com/google/firebase/ktx/Firebase.kt @@ -0,0 +1,92 @@ +// Copyright 2019 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// 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. +package com.google.firebase.ktx + +import android.content.Context +import androidx.annotation.Keep +import com.google.firebase.FirebaseApp +import com.google.firebase.FirebaseOptions +import com.google.firebase.annotations.concurrent.Background +import com.google.firebase.annotations.concurrent.Blocking +import com.google.firebase.annotations.concurrent.Lightweight +import com.google.firebase.annotations.concurrent.UiThread +import com.google.firebase.components.Component +import com.google.firebase.components.ComponentRegistrar +import com.google.firebase.components.Dependency +import com.google.firebase.components.Qualified +import com.google.firebase.platforminfo.LibraryVersionComponent +import java.util.concurrent.Executor +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.asCoroutineDispatcher + +/** + * Single access point to all firebase SDKs from Kotlin. + * + *

Acts as a target for extension methods provided by sdks. + */ +@Deprecated("Use `com.google.firebase.Firebase`", ReplaceWith("com.google.firebase.Firebase")) +object Firebase + +/** Returns the default firebase app instance. */ +@Deprecated("Use `com.google.firebase.Firebase.app`", ReplaceWith("com.google.firebase.Firebase.app")) +val Firebase.app: FirebaseApp + get() = FirebaseApp.getInstance() + +/** Returns a named firebase app instance. */ +@Deprecated("Use `com.google.firebase.Firebase.app(name)`", ReplaceWith("com.google.firebase.Firebase.app(name)")) +fun Firebase.app(name: String): FirebaseApp = FirebaseApp.getInstance(name) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated("Use `com.google.firebase.Firebase.initialize(context)`", ReplaceWith("com.google.firebase.Firebase.initialize(context)")) +fun Firebase.initialize(context: Context): FirebaseApp? = FirebaseApp.initializeApp(context) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated("Use `com.google.firebase.Firebase.initialize(context, options)`", ReplaceWith("com.google.firebase.Firebase.initialize(context, options)")) +fun Firebase.initialize(context: Context, options: FirebaseOptions): FirebaseApp = + FirebaseApp.initializeApp(context, options) + +/** Initializes and returns a FirebaseApp. */ +@Deprecated("Use `com.google.firebase.Firebase.initialize(context, options, name)`", ReplaceWith("com.google.firebase.Firebase.initialize(context, options, name)")) +fun Firebase.initialize(context: Context, options: FirebaseOptions, name: String): FirebaseApp = + FirebaseApp.initializeApp(context, options, name) + +/** Returns options of default FirebaseApp */ +@Deprecated("Use `com.google.firebase.Firebase.options`", ReplaceWith("com.google.firebase.Firebase.options")) +val Firebase.options: FirebaseOptions + get() = Firebase.app.options + +internal const val LIBRARY_NAME: String = "fire-core-ktx" + +/** @suppress */ +@Deprecated("Use `com.google.firebase.FirebaseCommonKtxRegistrar`", ReplaceWith("com.google.firebase.FirebaseCommonKtxRegistrar")) +@Keep +class FirebaseCommonKtxRegistrar : ComponentRegistrar { + override fun getComponents(): List> { + return listOf( + + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher(), + coroutineDispatcher() + ) + } +} + +private inline fun coroutineDispatcher(): Component = + Component.builder(Qualified.qualified(T::class.java, CoroutineDispatcher::class.java)) + .add(Dependency.required(Qualified.qualified(T::class.java, Executor::class.java))) + .factory { c -> + c.get(Qualified.qualified(T::class.java, Executor::class.java)).asCoroutineDispatcher() + } + .build() \ No newline at end of file From d54da7c79bd89f2249069b2bddf3db94d023a1dc Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Wed, 2 Aug 2023 15:22:09 -0400 Subject: [PATCH 06/33] update --- .../current-version/AndroidManifest.xml | 9 - .../ktx/semver/current-version/R.txt | 202 ------------------ .../ktx/semver/current-version/classes.jar | Bin 967 -> 0 bytes .../current-version/third_party_licenses.json | 1 - .../current-version/third_party_licenses.txt | 0 .../previous-version/AndroidManifest.xml | 20 -- .../ktx/semver/previous-version/R.txt | 202 ------------------ .../ktx/semver/previous-version/classes.jar | Bin 12334 -> 0 bytes .../third_party_licenses.json | 1 - .../previous-version/third_party_licenses.txt | 0 firebase-common/ktx/semver/previous.aar | Bin 13252 -> 0 bytes .../current-version/AndroidManifest.xml | 43 ---- firebase-common/semver/current-version/R.txt | 202 ------------------ .../semver/current-version/classes.jar | Bin 96636 -> 0 bytes .../semver/current-version/proguard.txt | 3 - .../res/raw/firebase_common_keep.xml | 3 - .../current-version/third_party_licenses.json | 1 - .../current-version/third_party_licenses.txt | 0 .../previous-version/AndroidManifest.xml | 39 ---- firebase-common/semver/previous-version/R.txt | 202 ------------------ .../semver/previous-version/classes.jar | Bin 80338 -> 0 bytes .../semver/previous-version/proguard.txt | 3 - .../res/raw/firebase_common_keep.xml | 3 - .../third_party_licenses.json | 1 - .../previous-version/third_party_licenses.txt | 0 firebase-common/semver/previous.aar | Bin 75565 -> 0 bytes 26 files changed, 935 deletions(-) delete mode 100644 firebase-common/ktx/semver/current-version/AndroidManifest.xml delete mode 100644 firebase-common/ktx/semver/current-version/R.txt delete mode 100644 firebase-common/ktx/semver/current-version/classes.jar delete mode 100644 firebase-common/ktx/semver/current-version/third_party_licenses.json delete mode 100644 firebase-common/ktx/semver/current-version/third_party_licenses.txt delete mode 100644 firebase-common/ktx/semver/previous-version/AndroidManifest.xml delete mode 100644 firebase-common/ktx/semver/previous-version/R.txt delete mode 100644 firebase-common/ktx/semver/previous-version/classes.jar delete mode 100644 firebase-common/ktx/semver/previous-version/third_party_licenses.json delete mode 100644 firebase-common/ktx/semver/previous-version/third_party_licenses.txt delete mode 100644 firebase-common/ktx/semver/previous.aar delete mode 100644 firebase-common/semver/current-version/AndroidManifest.xml delete mode 100644 firebase-common/semver/current-version/R.txt delete mode 100644 firebase-common/semver/current-version/classes.jar delete mode 100644 firebase-common/semver/current-version/proguard.txt delete mode 100644 firebase-common/semver/current-version/res/raw/firebase_common_keep.xml delete mode 100644 firebase-common/semver/current-version/third_party_licenses.json delete mode 100644 firebase-common/semver/current-version/third_party_licenses.txt delete mode 100644 firebase-common/semver/previous-version/AndroidManifest.xml delete mode 100644 firebase-common/semver/previous-version/R.txt delete mode 100644 firebase-common/semver/previous-version/classes.jar delete mode 100644 firebase-common/semver/previous-version/proguard.txt delete mode 100644 firebase-common/semver/previous-version/res/raw/firebase_common_keep.xml delete mode 100644 firebase-common/semver/previous-version/third_party_licenses.json delete mode 100644 firebase-common/semver/previous-version/third_party_licenses.txt delete mode 100644 firebase-common/semver/previous.aar diff --git a/firebase-common/ktx/semver/current-version/AndroidManifest.xml b/firebase-common/ktx/semver/current-version/AndroidManifest.xml deleted file mode 100644 index 4c4c769cfbf..00000000000 --- a/firebase-common/ktx/semver/current-version/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/firebase-common/ktx/semver/current-version/R.txt b/firebase-common/ktx/semver/current-version/R.txt deleted file mode 100644 index 6702614e7b8..00000000000 --- a/firebase-common/ktx/semver/current-version/R.txt +++ /dev/null @@ -1,202 +0,0 @@ -int attr alpha 0x0 -int attr coordinatorLayoutStyle 0x0 -int attr font 0x0 -int attr fontProviderAuthority 0x0 -int attr fontProviderCerts 0x0 -int attr fontProviderFetchStrategy 0x0 -int attr fontProviderFetchTimeout 0x0 -int attr fontProviderPackage 0x0 -int attr fontProviderQuery 0x0 -int attr fontStyle 0x0 -int attr fontVariationSettings 0x0 -int attr fontWeight 0x0 -int attr keylines 0x0 -int attr layout_anchor 0x0 -int attr layout_anchorGravity 0x0 -int attr layout_behavior 0x0 -int attr layout_dodgeInsetEdges 0x0 -int attr layout_insetEdge 0x0 -int attr layout_keyline 0x0 -int attr statusBarBackground 0x0 -int attr ttcIndex 0x0 -int color notification_action_color_filter 0x0 -int color notification_icon_bg_color 0x0 -int color ripple_material_light 0x0 -int color secondary_text_default_material_light 0x0 -int dimen compat_button_inset_horizontal_material 0x0 -int dimen compat_button_inset_vertical_material 0x0 -int dimen compat_button_padding_horizontal_material 0x0 -int dimen compat_button_padding_vertical_material 0x0 -int dimen compat_control_corner_material 0x0 -int dimen compat_notification_large_icon_max_height 0x0 -int dimen compat_notification_large_icon_max_width 0x0 -int dimen notification_action_icon_size 0x0 -int dimen notification_action_text_size 0x0 -int dimen notification_big_circle_margin 0x0 -int dimen notification_content_margin_start 0x0 -int dimen notification_large_icon_height 0x0 -int dimen notification_large_icon_width 0x0 -int dimen notification_main_column_padding_top 0x0 -int dimen notification_media_narrow_margin 0x0 -int dimen notification_right_icon_size 0x0 -int dimen notification_right_side_padding_top 0x0 -int dimen notification_small_icon_background_padding 0x0 -int dimen notification_small_icon_size_as_large 0x0 -int dimen notification_subtext_size 0x0 -int dimen notification_top_pad 0x0 -int dimen notification_top_pad_large_text 0x0 -int drawable notification_action_background 0x0 -int drawable notification_bg 0x0 -int drawable notification_bg_low 0x0 -int drawable notification_bg_low_normal 0x0 -int drawable notification_bg_low_pressed 0x0 -int drawable notification_bg_normal 0x0 -int drawable notification_bg_normal_pressed 0x0 -int drawable notification_icon_background 0x0 -int drawable notification_template_icon_bg 0x0 -int drawable notification_template_icon_low_bg 0x0 -int drawable notification_tile_bg 0x0 -int drawable notify_panel_notification_icon_bg 0x0 -int id accessibility_action_clickable_span 0x0 -int id accessibility_custom_action_0 0x0 -int id accessibility_custom_action_1 0x0 -int id accessibility_custom_action_10 0x0 -int id accessibility_custom_action_11 0x0 -int id accessibility_custom_action_12 0x0 -int id accessibility_custom_action_13 0x0 -int id accessibility_custom_action_14 0x0 -int id accessibility_custom_action_15 0x0 -int id accessibility_custom_action_16 0x0 -int id accessibility_custom_action_17 0x0 -int id accessibility_custom_action_18 0x0 -int id accessibility_custom_action_19 0x0 -int id accessibility_custom_action_2 0x0 -int id accessibility_custom_action_20 0x0 -int id accessibility_custom_action_21 0x0 -int id accessibility_custom_action_22 0x0 -int id accessibility_custom_action_23 0x0 -int id accessibility_custom_action_24 0x0 -int id accessibility_custom_action_25 0x0 -int id accessibility_custom_action_26 0x0 -int id accessibility_custom_action_27 0x0 -int id accessibility_custom_action_28 0x0 -int id accessibility_custom_action_29 0x0 -int id accessibility_custom_action_3 0x0 -int id accessibility_custom_action_30 0x0 -int id accessibility_custom_action_31 0x0 -int id accessibility_custom_action_4 0x0 -int id accessibility_custom_action_5 0x0 -int id accessibility_custom_action_6 0x0 -int id accessibility_custom_action_7 0x0 -int id accessibility_custom_action_8 0x0 -int id accessibility_custom_action_9 0x0 -int id action_container 0x0 -int id action_divider 0x0 -int id action_image 0x0 -int id action_text 0x0 -int id actions 0x0 -int id async 0x0 -int id blocking 0x0 -int id bottom 0x0 -int id chronometer 0x0 -int id dialog_button 0x0 -int id end 0x0 -int id forever 0x0 -int id icon 0x0 -int id icon_group 0x0 -int id info 0x0 -int id italic 0x0 -int id left 0x0 -int id line1 0x0 -int id line3 0x0 -int id none 0x0 -int id normal 0x0 -int id notification_background 0x0 -int id notification_main_column 0x0 -int id notification_main_column_container 0x0 -int id right 0x0 -int id right_icon 0x0 -int id right_side 0x0 -int id start 0x0 -int id tag_accessibility_actions 0x0 -int id tag_accessibility_clickable_spans 0x0 -int id tag_accessibility_heading 0x0 -int id tag_accessibility_pane_title 0x0 -int id tag_screen_reader_focusable 0x0 -int id tag_transition_group 0x0 -int id tag_unhandled_key_event_manager 0x0 -int id tag_unhandled_key_listeners 0x0 -int id text 0x0 -int id text2 0x0 -int id time 0x0 -int id title 0x0 -int id top 0x0 -int integer google_play_services_version 0x0 -int integer status_bar_notification_info_maxnum 0x0 -int layout custom_dialog 0x0 -int layout notification_action 0x0 -int layout notification_action_tombstone 0x0 -int layout notification_template_custom_big 0x0 -int layout notification_template_icon_group 0x0 -int layout notification_template_part_chronometer 0x0 -int layout notification_template_part_time 0x0 -int raw firebase_common_keep 0x0 -int string common_google_play_services_unknown_issue 0x0 -int string status_bar_notification_info_overflow 0x0 -int style TextAppearance_Compat_Notification 0x0 -int style TextAppearance_Compat_Notification_Info 0x0 -int style TextAppearance_Compat_Notification_Line2 0x0 -int style TextAppearance_Compat_Notification_Time 0x0 -int style TextAppearance_Compat_Notification_Title 0x0 -int style Widget_Compat_NotificationActionContainer 0x0 -int style Widget_Compat_NotificationActionText 0x0 -int style Widget_Support_CoordinatorLayout 0x0 -int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } -int styleable ColorStateListItem_alpha 0 -int styleable ColorStateListItem_android_alpha 1 -int styleable ColorStateListItem_android_color 2 -int[] styleable CoordinatorLayout { 0x0, 0x0 } -int styleable CoordinatorLayout_keylines 0 -int styleable CoordinatorLayout_statusBarBackground 1 -int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable CoordinatorLayout_Layout_android_layout_gravity 0 -int styleable CoordinatorLayout_Layout_layout_anchor 1 -int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 -int styleable CoordinatorLayout_Layout_layout_behavior 3 -int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 -int styleable CoordinatorLayout_Layout_layout_insetEdge 5 -int styleable CoordinatorLayout_Layout_layout_keyline 6 -int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamily_fontProviderAuthority 0 -int styleable FontFamily_fontProviderCerts 1 -int styleable FontFamily_fontProviderFetchStrategy 2 -int styleable FontFamily_fontProviderFetchTimeout 3 -int styleable FontFamily_fontProviderPackage 4 -int styleable FontFamily_fontProviderQuery 5 -int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamilyFont_android_font 0 -int styleable FontFamilyFont_android_fontStyle 1 -int styleable FontFamilyFont_android_fontVariationSettings 2 -int styleable FontFamilyFont_android_fontWeight 3 -int styleable FontFamilyFont_android_ttcIndex 4 -int styleable FontFamilyFont_font 5 -int styleable FontFamilyFont_fontStyle 6 -int styleable FontFamilyFont_fontVariationSettings 7 -int styleable FontFamilyFont_fontWeight 8 -int styleable FontFamilyFont_ttcIndex 9 -int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -int styleable GradientColor_android_centerColor 0 -int styleable GradientColor_android_centerX 1 -int styleable GradientColor_android_centerY 2 -int styleable GradientColor_android_endColor 3 -int styleable GradientColor_android_endX 4 -int styleable GradientColor_android_endY 5 -int styleable GradientColor_android_gradientRadius 6 -int styleable GradientColor_android_startColor 7 -int styleable GradientColor_android_startX 8 -int styleable GradientColor_android_startY 9 -int styleable GradientColor_android_tileMode 10 -int styleable GradientColor_android_type 11 -int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -int styleable GradientColorItem_android_color 0 -int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/ktx/semver/current-version/classes.jar b/firebase-common/ktx/semver/current-version/classes.jar deleted file mode 100644 index 01765fb8091e175710648806ae7c367c43a1c6e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmWIWW@cdk14Rx+CI|~cf`pUvbM*sos^EsINYBqt&q>9jPy|(BT4qsdQerVa9TGTn zWS3OH?crbmJ9*uatXxJ01~H)HHSy?jD$UGEan8?6%S_ix&PgmT?wxqj@34VD+y8~y zOP8{q3fji)#KhM-VMpVHT`VDjT(8s)E-eZ+mvCyj#PTs}&IF4O3^pQ3LfhmlE1u;4 z`Twor+26-sc@Hp}8FwVAwgz#nZgGiSU*^wQ;(Ow1O!^z{KSb$n8uX;N5R)LsHmgXM=>W`Mm3J} zUEZWjE*qXDhJQ~>KAXvT&gi*X#k6t}vGav}#!*KclHRj^k@0+HskS&ph+AfJJd?;q ziQZDpAl-VV0B=Sn24-ON00Fjy29aT4c - - - - - - - - - - - - \ No newline at end of file diff --git a/firebase-common/ktx/semver/previous-version/R.txt b/firebase-common/ktx/semver/previous-version/R.txt deleted file mode 100644 index 6702614e7b8..00000000000 --- a/firebase-common/ktx/semver/previous-version/R.txt +++ /dev/null @@ -1,202 +0,0 @@ -int attr alpha 0x0 -int attr coordinatorLayoutStyle 0x0 -int attr font 0x0 -int attr fontProviderAuthority 0x0 -int attr fontProviderCerts 0x0 -int attr fontProviderFetchStrategy 0x0 -int attr fontProviderFetchTimeout 0x0 -int attr fontProviderPackage 0x0 -int attr fontProviderQuery 0x0 -int attr fontStyle 0x0 -int attr fontVariationSettings 0x0 -int attr fontWeight 0x0 -int attr keylines 0x0 -int attr layout_anchor 0x0 -int attr layout_anchorGravity 0x0 -int attr layout_behavior 0x0 -int attr layout_dodgeInsetEdges 0x0 -int attr layout_insetEdge 0x0 -int attr layout_keyline 0x0 -int attr statusBarBackground 0x0 -int attr ttcIndex 0x0 -int color notification_action_color_filter 0x0 -int color notification_icon_bg_color 0x0 -int color ripple_material_light 0x0 -int color secondary_text_default_material_light 0x0 -int dimen compat_button_inset_horizontal_material 0x0 -int dimen compat_button_inset_vertical_material 0x0 -int dimen compat_button_padding_horizontal_material 0x0 -int dimen compat_button_padding_vertical_material 0x0 -int dimen compat_control_corner_material 0x0 -int dimen compat_notification_large_icon_max_height 0x0 -int dimen compat_notification_large_icon_max_width 0x0 -int dimen notification_action_icon_size 0x0 -int dimen notification_action_text_size 0x0 -int dimen notification_big_circle_margin 0x0 -int dimen notification_content_margin_start 0x0 -int dimen notification_large_icon_height 0x0 -int dimen notification_large_icon_width 0x0 -int dimen notification_main_column_padding_top 0x0 -int dimen notification_media_narrow_margin 0x0 -int dimen notification_right_icon_size 0x0 -int dimen notification_right_side_padding_top 0x0 -int dimen notification_small_icon_background_padding 0x0 -int dimen notification_small_icon_size_as_large 0x0 -int dimen notification_subtext_size 0x0 -int dimen notification_top_pad 0x0 -int dimen notification_top_pad_large_text 0x0 -int drawable notification_action_background 0x0 -int drawable notification_bg 0x0 -int drawable notification_bg_low 0x0 -int drawable notification_bg_low_normal 0x0 -int drawable notification_bg_low_pressed 0x0 -int drawable notification_bg_normal 0x0 -int drawable notification_bg_normal_pressed 0x0 -int drawable notification_icon_background 0x0 -int drawable notification_template_icon_bg 0x0 -int drawable notification_template_icon_low_bg 0x0 -int drawable notification_tile_bg 0x0 -int drawable notify_panel_notification_icon_bg 0x0 -int id accessibility_action_clickable_span 0x0 -int id accessibility_custom_action_0 0x0 -int id accessibility_custom_action_1 0x0 -int id accessibility_custom_action_10 0x0 -int id accessibility_custom_action_11 0x0 -int id accessibility_custom_action_12 0x0 -int id accessibility_custom_action_13 0x0 -int id accessibility_custom_action_14 0x0 -int id accessibility_custom_action_15 0x0 -int id accessibility_custom_action_16 0x0 -int id accessibility_custom_action_17 0x0 -int id accessibility_custom_action_18 0x0 -int id accessibility_custom_action_19 0x0 -int id accessibility_custom_action_2 0x0 -int id accessibility_custom_action_20 0x0 -int id accessibility_custom_action_21 0x0 -int id accessibility_custom_action_22 0x0 -int id accessibility_custom_action_23 0x0 -int id accessibility_custom_action_24 0x0 -int id accessibility_custom_action_25 0x0 -int id accessibility_custom_action_26 0x0 -int id accessibility_custom_action_27 0x0 -int id accessibility_custom_action_28 0x0 -int id accessibility_custom_action_29 0x0 -int id accessibility_custom_action_3 0x0 -int id accessibility_custom_action_30 0x0 -int id accessibility_custom_action_31 0x0 -int id accessibility_custom_action_4 0x0 -int id accessibility_custom_action_5 0x0 -int id accessibility_custom_action_6 0x0 -int id accessibility_custom_action_7 0x0 -int id accessibility_custom_action_8 0x0 -int id accessibility_custom_action_9 0x0 -int id action_container 0x0 -int id action_divider 0x0 -int id action_image 0x0 -int id action_text 0x0 -int id actions 0x0 -int id async 0x0 -int id blocking 0x0 -int id bottom 0x0 -int id chronometer 0x0 -int id dialog_button 0x0 -int id end 0x0 -int id forever 0x0 -int id icon 0x0 -int id icon_group 0x0 -int id info 0x0 -int id italic 0x0 -int id left 0x0 -int id line1 0x0 -int id line3 0x0 -int id none 0x0 -int id normal 0x0 -int id notification_background 0x0 -int id notification_main_column 0x0 -int id notification_main_column_container 0x0 -int id right 0x0 -int id right_icon 0x0 -int id right_side 0x0 -int id start 0x0 -int id tag_accessibility_actions 0x0 -int id tag_accessibility_clickable_spans 0x0 -int id tag_accessibility_heading 0x0 -int id tag_accessibility_pane_title 0x0 -int id tag_screen_reader_focusable 0x0 -int id tag_transition_group 0x0 -int id tag_unhandled_key_event_manager 0x0 -int id tag_unhandled_key_listeners 0x0 -int id text 0x0 -int id text2 0x0 -int id time 0x0 -int id title 0x0 -int id top 0x0 -int integer google_play_services_version 0x0 -int integer status_bar_notification_info_maxnum 0x0 -int layout custom_dialog 0x0 -int layout notification_action 0x0 -int layout notification_action_tombstone 0x0 -int layout notification_template_custom_big 0x0 -int layout notification_template_icon_group 0x0 -int layout notification_template_part_chronometer 0x0 -int layout notification_template_part_time 0x0 -int raw firebase_common_keep 0x0 -int string common_google_play_services_unknown_issue 0x0 -int string status_bar_notification_info_overflow 0x0 -int style TextAppearance_Compat_Notification 0x0 -int style TextAppearance_Compat_Notification_Info 0x0 -int style TextAppearance_Compat_Notification_Line2 0x0 -int style TextAppearance_Compat_Notification_Time 0x0 -int style TextAppearance_Compat_Notification_Title 0x0 -int style Widget_Compat_NotificationActionContainer 0x0 -int style Widget_Compat_NotificationActionText 0x0 -int style Widget_Support_CoordinatorLayout 0x0 -int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } -int styleable ColorStateListItem_alpha 0 -int styleable ColorStateListItem_android_alpha 1 -int styleable ColorStateListItem_android_color 2 -int[] styleable CoordinatorLayout { 0x0, 0x0 } -int styleable CoordinatorLayout_keylines 0 -int styleable CoordinatorLayout_statusBarBackground 1 -int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable CoordinatorLayout_Layout_android_layout_gravity 0 -int styleable CoordinatorLayout_Layout_layout_anchor 1 -int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 -int styleable CoordinatorLayout_Layout_layout_behavior 3 -int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 -int styleable CoordinatorLayout_Layout_layout_insetEdge 5 -int styleable CoordinatorLayout_Layout_layout_keyline 6 -int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamily_fontProviderAuthority 0 -int styleable FontFamily_fontProviderCerts 1 -int styleable FontFamily_fontProviderFetchStrategy 2 -int styleable FontFamily_fontProviderFetchTimeout 3 -int styleable FontFamily_fontProviderPackage 4 -int styleable FontFamily_fontProviderQuery 5 -int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamilyFont_android_font 0 -int styleable FontFamilyFont_android_fontStyle 1 -int styleable FontFamilyFont_android_fontVariationSettings 2 -int styleable FontFamilyFont_android_fontWeight 3 -int styleable FontFamilyFont_android_ttcIndex 4 -int styleable FontFamilyFont_font 5 -int styleable FontFamilyFont_fontStyle 6 -int styleable FontFamilyFont_fontVariationSettings 7 -int styleable FontFamilyFont_fontWeight 8 -int styleable FontFamilyFont_ttcIndex 9 -int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -int styleable GradientColor_android_centerColor 0 -int styleable GradientColor_android_centerX 1 -int styleable GradientColor_android_centerY 2 -int styleable GradientColor_android_endColor 3 -int styleable GradientColor_android_endX 4 -int styleable GradientColor_android_endY 5 -int styleable GradientColor_android_gradientRadius 6 -int styleable GradientColor_android_startColor 7 -int styleable GradientColor_android_startX 8 -int styleable GradientColor_android_startY 9 -int styleable GradientColor_android_tileMode 10 -int styleable GradientColor_android_type 11 -int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -int styleable GradientColorItem_android_color 0 -int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/ktx/semver/previous-version/classes.jar b/firebase-common/ktx/semver/previous-version/classes.jar deleted file mode 100644 index a9aa5e734fdfb634ce1ba4ca2b3a4663412f5c03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12334 zcmchd1yo$iny3ku0F4C+F2UU)Xo3?O3r=vSacL}Au*Tg&Sd+#$GIupq%Lc;I#J zId{(7%*=gv&3iMuSNH0@_v)&@*RJ)|_gDQ&KmFlQ?)3SykYjy3Isc%Sa_hnyRqg4q1gf9hqy>-8oK$BAuXTSSxGG{e4Zh)%|^# zN+p6|xPhBkAJL0GqNG0F3f7BP(}T2xriD81Z2*Aov%7aj(@MyLnx>55TVM65YU{mL z5&-A&2?Mhh1Va}xN|@b7D$*})!&J3|nLY%4h?hEhqgBO?(D2x4l%lR#%hVCOLcjGi zmt=@%C{=+$1M}@o{2+zw*yvjN_83!**%}AgyHY)FgGi;1VM8+~qv-Itmmq_r;E=tersXF9C8%?_pKT`a_(3E=o(BN-`%+~FQOxNA|TInA~ zNEUTTX)J8SM4-aKnf?nSMBL8C#?BT9c2hPr2RVTq4IQb?O~J6M_I9?WwqPe}YLKlp z$kx<^+Sty~&KV5*Dgkn`Hv}77m^xB({4v1l)NK@rrLnv(t*xD2g=~I)0#fF4AYM`; zr;W~^&!aJT{-XbFr8p2o#L~Y`BCc&dGywbw6|0If}6jF0+B_>)p?C;aeL zCmywB;HQD7DsoIta%`S5GKRLkY75A0965pvm zlwprN1vndJj9=~QiHGJ^K0y|FOp>TtNjphCNFM>W$Z^_C_{pM=a1a*MShB+ zBMjib>XHb^lfb;$VPTcHjNXtDa9$5lNV3=J6?99YJnwr-)Z?MbP|VeR5c9+BJGcAw z1H=LElv1bj4xsV@N`a$$2d4Yke(AloSv4v;`ej$I9)!u13|J@X-ts@Q)E0Cesm)to zT%JU&2g_@JYJT=|&^`vWbWS#snTMHab=d`-vM`fr*%GU)oaXi-F$r4zRBhzLG)Z@3 zD6YuC2d_ZYG>SmibDr$u{QYS{RGVubs{T_#A}QoJMq2wc-|v9A)eQmmW$za4=>pFk zd%Zxv6u{6W;*Ww<+dA9of^difJl#{!B}(^q7s#Tn_!&AYe_+Qdp=;SRVi==_nqv41fu`Z+MRIoP?VVFCH)oXRbamryo zVa4VpP6@j#Dqoa0=`EimWRTCUMReKx)v4^UX)tZ9a1T=~O@cL{scegXeE9?m8FPwS z$}j{takrC(PLwSvy)%pID&J;Hh^NS&%BWnJC*`$bzXY}Kq_wTRjS|IB+_G75MAXG+ zJjV$lN_y`?RBp=*P5-gr-|JWPwQxISva*$FfW3OTGEa+7UC!|N-tw>u&{|`c(jYSf ziQsfsViVOtyp!P?q`-zW$R^{IASK`m$W34Wq7tQk9cyy^CZwho&qOZ3#*V&In!RIJ z6Z}fxmZVDm)YosuVuOG3j-q#3kwv--t%oO^W6%BJ8h)0=~5K-STq(sC}cvmD@_$hck#8H&x zyQlvMMe~lzlV4Db{9l10=f6Qwg;)*O`-qm>@GTJ9c4Ec^zesI>Pfzh&0$Yq2g@J}4 zR8ug?6a_6sciF@L`&0947H|7|i+)0F=RU*RiHvnj2O(lH86b(CRM7ge$5{GZs?(AC zQPa)&@#+H{JEQ=h=v1@v07e=6l~0I-@0EIPng-GMPN`_kUHf85k^ zyOwc@nW*&$Skj`q24kW*17skDLiC!j7VQ@kcLn#E@lk|&>|5XF1H`MYo4OSPv$7*7 z;|I6UYMPq35$u|8UY8=K&CEU?8aFG+j6~;j)PhnRA)PP6Dj?XMJa{a@oY!0Re`lhi z(T+$B|KFHckRh*); z+s2g5^1D;~uVw^ICn3nE7zv@MBkWFQq6(>fiu!Bpw;baTkJ5ry1&?!` zn4X1K*AxZ$V78^)AiSs``=s^JcV2aAKV!`nC+%%)L4?}P`7Cm}h}h=4S*ZIh{LA2{qe<5DiyjdFXHm?Xf7H3K`#1j@*~NSNnSU#xoAlT`jjnr>?`!vVdfw z`}Ua4dt7v5#2iM5Llg{(SF8@?1V{QuL_7?u^2^Fu2C zP_G{Qvc#-<6PdO_ngaIt$+jpm{Ou5mt(tv#&)kYnU&Bx0N3bFNK~K~6)_se?jK$Bh zA7vD~IUU``%PtvFeCUYt+eLW5Zdj+z)d8FbY_1)+%Y2C@wjA&#LHvEvCgU|g8sFx;hG;<&<1vGYCm zU&bL>ywllt1|%Amkde>eG)^9XuGwMBAtSiKttc7KN#=*5B_Yw&{A4w_sYAwYz7O&}R8^ z)k8>I>8XeG2Vxsm7!+gFq;I7mwEYDZ>FTFEft7DMz2y?FO-S1SW?a|t)Z3h&qy@zF zk1PC9gx;8umceJBFr%8lz~~6S36BHMheY;(@Q+Z`e}A+e1A}7N{|Xej{tb$MnPR7d zo|~02YHbzzk5j0!90=u8Pwy*4!P@xz2}hFcHBV`~xq%y{kkv^{wb#7G)464;S)K=D zyO>1+=HU*0OnTF(Rf2+icVE7Y*3>-w0mVpjz!>TtLZ8nVv#-i+yy6;`8 zEk1s5fdjms^IRj^cBZ zQriq6g~tki@@u8zQ&9!^?|SubF`39P*IB#MayBdl?`ZxMMb5vA;^?^e){LuDE0Q@0kVaAVZ!ewTR0Px#Bda(tk2hx`Y%7%I~ZHAoCcqAkeU{OUP9u zD4*e+P6Q0{HGRW{C@)@3lyrTjl({+h;1_j)Hx>6xae>6p4MxBsGO|M1f^0_0+o%g} zW~!j4E0z_pC$80oxBDvMK~J&u>45az4-+LZiMRb7_G?+Uw|5_(qqaS8V4ZbH6E5aA z9nOyd6||JjL(cvNuwj;d7QFOh>|{;fcgmlH?rba;pEGPugz>FVBodZ? zo^U73u5v>-tu}c}qb-^~DIz6%G|6H+k|LQhT>VQFQ{|!AS};*$go&adA(EYe#h7wo zlOw3x-U@2pM{BEk2NT7msd`&}KUTB^_ob}9yzR8=5@NJ`bFWPc4m<1kuDF5E4&B1TdzQV9rX#_#KmoQYC&wtJoPCvPhsRXmB`K0X813|op%%=9vP%}BIeX}j%LiOsf@7n%W9>e72pt6JoI*2cvFhN|Y*P#E zd@E~vLyMN`?2$SA8ik^7^Jvx8*0}PNxUN|RB=gSar(I77iNw%Amp#$Ka%IN$EAMN ztY|2$v@gRH?-sW|8@@g|m7f*kdo0tFVH=fk*A<>dZi4ilQ7^NaNEZGZCzaEKaw>+< zP<70%8bLfvB*zLufd(6CN02~01)?@v3+uWSlbK;k*Wy2CqUc9qK-nrO8=+$r^4{2c zo#1JP-ei;FZk%M>&B##K6V~p5z$mWZt3m};Q^Z zF%vXaNBB84>Px||(wj^&Oea=FdKR+Cx^-0qmgpU#5$gDLS)JTi{Lde89Ra%XqhI|7C#U_&F19X?EeSS61$oOwZ^W~6D_CCfZF5L4XGzFES+ ztnHyZ^zJfH7hy`{yTjMW{ML#~&0Ei!nN_!KV7W8Yb*S9-OG^5Wh@9Tks&}mUOn=Lr z$LnY#^j2&fKj5c+Y2s92>_Uv_i&+pXcg}Kw z<<2T;8YcnU$LC>Oz+XrV{1b^#jsKvDeROYONK6#_RPb*| zpa|f3@!*b07?4nqEdr0OTZ-3echki?v_Nf`*Hi`0*g_{h$>eR^k6Ld2h5+b)At z$taMe=X&#zWtPf*7c!tqu~(Hv4I}CtSp2I#>DINh04^35M~~5XwUt;CT|Vmtb@VPA zi14}v5h$?1O1(o5^{X0x5drtO7{Yvi^hLIJ#6T$UYI7{7e|4mwxK-Z^qv zkQgWVnEh0?#gGsQ^({Z=@_7)-o zr2JL>+vB(5)v<3=AUOqyB!;ijIjrSp&U3}Yv}c<3bDv48GSMv!!52LLU~c7DAy~bQ zO}9ob{rLN9rV-CW-&RbO<;{Z?MUV~*K2AXdK=Bkb$ z_!L<{3A${6?hLE`8@@UWe#z67Rn9iff(nTXhKtZ?0mZnAy%c2&acNZ8%Hdv0ftakR zT2MCpDAv_!$hV8No)dcidsN*@#-Q3}Z@}~>^C*YR(w3Q=dSQ8?GOJSO*b7>K=di^6 zYDY<)F_yTk0EE!8b);_`yS!K>!srW+eTYKxhAn!MY-7zh?St0CC=LBGZTTAz+>9Ux2BxCs5qaI&+{U9zd7v8elTAR-U_dNGI&#iU>L5!4&Da1`oaI`= z9fy&mFs05wfTY4mOaeX*(5eQW4S?!Zk~_HK+I#g|@zGK=og)#Sqh3l0=W}$A>yC)# z5XwRb@a(Pnn|AR}zK%Lg96C4@kkvG5lfK}a{*KiAY`oLW2X+&i;#lZ~Fxd-P;q5m+ zGxHkx@x-SrwB3iv_4+q!DYw6K=Eh{ah41gGNzks^_&Wa)sqp2brile=QP#}}yrID~ z2^6O~ofDlWfo=FB_o#d1QGf?d?{2xHw!&b&9H+j^pyHgx|2cj>yT` zU9-TPYB;0mQfu|S89HR(GKIO0FV+NO#HY3yRkh<>RN^ z;oLPi>frP~eM;uJ96@O5$Uy$yXjs>6E_Bv(i35c^-4U!ka@N?E`<~HDxKZyXz-ZE5 zE-gQq!iD;`mO7c38WXK6Xby{FFQ<_YQ}7m@bG=$} zy*&IcTTyL%Ysuql$*sq?@fMi|?lm_Iu}8QgjoA9^vAAA^rUb9yPw<90QMZ2ta)0fl zK8n2{Gr1j$rVbmfv=Dsl>t`;rj<)EoAA8T#bBb=$OP;y$qWZy)`;p=%gW%Ndh?4gz z3!P}ttLKr3Q+9X%`ODF;o9mu1SIqRun#k%YnK2^Iy|)=_Ttk!Kv%NK*s#4Wn2Rq`h z7?WWlBAg}dY?dv78CPLW?2@6LMi!~(MzuVP6RvyKszP4*JhKxX^%bt@X(0(pt3;tL zKT7)#5B=tFg(MxDOL%0D1nJ>WLzi3Vx3fiFIODv$LZr%hDMANfd%lWn%EE`{LxQ=< z4hq=9a3R4+H0xv*67$CQ3q(eXVnJj+s6S~7#ANo=9D-up|2EOwOuScehq-qv3LKos zzcA4N!T)SaDoxGi->tsNFtJH4KAWd~QWG$VkCSWk%!V4#;-zfWo@rA+;0WuHEy48~ zpuHEBNEn$%Sf9V>9YEO3l4WCQWbB}!xjZ3f?5i!Ml zN|rM&cx9_EAB=e0{<}!%?uK~b8&nOb&&wF^6t#HK zD|d=s^cQ;Yvea}%TXj6@Z&c`QiiU4yg;UcOE~-I-<}BzT=5zbqXv$7FX`IxaUnmY^ z+kF|-DlnfXy`7?pX2Jz>1O_d8*$ER zCJ9A)K~irX$MN-ulJ@5ZO#rFNGJAx7s8$^)RH{Ox=0hY64tMEu zpnxl{e2KEad|ozU_u5v>nQ`*^EYi9WL4@AoQJIhmYZ!eDx%{^tj5=G7cTB{~Mej`_ z`HXGHpO2<6&S^B}ojU8r>xgx;Di)*73^i90r5cQ8W*1?SiXKaw&nh`j<+EnT+azHu7&Zq zmxLNaFUW6@ifUdB7ub8UkdRNZVl?s1I93+0B7pBPKtEVS-2D~x`2yyGhp1hc$Ac3q_PRmA%!q+cP=uNThk>U1VUO~}vUv|^UH>CVp|Pm<;t zpY5gI*I*(B3I7>h9joO}7qmc9Ey0o0%_THO88kN6Vf}@w9r7^(i5Q7Ej8}{|(ORhf zw5M;x=gB`VvZ86glfQck+m6SDgQNeKp!RoL25Ath5qR5*aZ$=IvD;uzqI1lD?06IQ z9z~r2DI%{HNutVt%9_F-Y=-doy zqm-`69;-Xtr6V9;0*`R1H6lPF5p8(vXIQ|a3)TN31GO#5XD!IfwN0tjRbhTY2}v8$ zQqwxQ%!rrg&zTg1{5+iqn~{wlk+Y|C3b`y|@0x$!WoB(UuOW%@1RFA9l9X$^P+eY_ ztNOWl&oFqNObo$=-I`&E)DAN{#!#aPxf`gZQpe0W6rVa;WXRog043ZrUgqRTzRRs^ z1`^zlPPSOuuM$CuIdoeTJ!VjcJr}17MBdPN zLm93BcHnYWDQ@Oavi-R2EXgJ0MbpF#F^4P+|ml!mQ2L&59ErmR>{gyK5oy6;C9+ouLptPq9 z^{504GKpx)wtY5LD^GsxUbS!*vt&54SWq@@D5**WY7xy{1F7P$&(ZZEoA3BaCg_$VdL48i+>KiEpWuG&_Q}) zzH1?@LBJWFkYS49mTi<>>>Reipl;K`%R$kr$Nwn+=e{?^JS=8ouG(I zPl6)ujy-RHmIc6rL~Sq|qz8;o1)Vu^e$Hj&U!s^|Wv|tE@~YTOO*n6FNF1Is-YNeB ztMst)zMdp+zBCF1mpvL?w4Wc6KCGtyvA05&VZ$|_v7K`qolqdC7t2~m##vlrCLTwA zQz!|S?lMFs)qGgo?UVU16(Fd1b=}x%IzhAIV?V)d3I6<#dOEj2&up?N<7CldwJB_^ zEPBfJ*OKdk`xpe%#b&LV9ev?lv zKv2&kpYitQJRkF!@{Q>sN3e#86F2>ANLxCK@cOKhy(xcnU5NAbhx!%o^&$h+@ayb0 zveyy&7>F;i_iA<{WyEXCL-5Qcp(|t&lcjb)Nb2D0IxY5ZS5cL<8>E8KosZfoh1}Om z;OOR>YXZD20%#E?n%DAWK5nPAmTd1+Wud)Bbg@q%F)-oQ(e2JF+;mi!aVs;YSizQ& zXke;up{OsJ&x#@x-zhH$GCDP@G*B@ZPY8c)XT75s{6nSGA50$uQ6>U<8dD?}gv+(89xn=C{1 z_5|j5TMpU;gM)v#TMrxW)VisWO{}J-t-9aA?{-{GW42gTp|upTB;EQaF^y&tdQ{FK zypk%5S}f7|xZi{SkkZdHWu%RyK%k4EkkiuJz254Ti&^q!dE*=zY58ZcM`Jg&9~y{$ zO>bvI_65~tJSFe=fTT4=gvT(}(wwx=8s%3YO9iIKFt%W?$k*d9n|+|ueAGb63;q+9 zqtTc5dYI`~7_o7lc*S;C6)%;u<4$%>3b!W4)!!BjJByiXkOdX=YBOo_tVeejcjGCU z%&42pY*%dv9})Q=wQo1`T;pkCYy|h8sk1#0=_a;s)(ge%a0swOmSG1Xn7*42#z_kA zlEI~O2(5SeWQw_s;Uk7cciyP|*&OLA^lD0xtVn2k*nBEb>s%=D%xk#wk&RH+VJ*Cn}@xMYdg(Ag@i|*l1G4 z30mDb_alDZ&Qig;;zk~y78dJj ztV;WFvGzbwG->A4+LNY0HfFh3Ojla-c3J+6fq`s~NdGu3!*&4{YlsC%@Xd5$W4 z1Y&-Zh^OyUqhFoC3E>(&uP5Vo`(}6lc=Y3Ec`8MHI07 zz>JRh0b2htieNN{y1x=P(TsYY^Gti`^eAJ&hjuOgIh6ChGB;c(3klHbF5R)Tn|t%17heQt|TqL*#S@ zMb%vvxzvR2y_$iXH}kjsx(5$;$GvOnP!YrAh%Gkbn|@6*D$1?5+ML*C@aFdv@;u6p z!CrEd)>b4mdMHP>u^?0-KrYA6VZ!ZXlu^zdTDL@3T>LSINUrxiZ;XzSE=b;P^V8;- zJVzs`(TB&aB8YHiP-gLg|Ho%`_rfiJ2llL9!`{F0LwQM6QI@v~Qf#mySk^y^U|IiO z1k3VoUtl+3^^GjBqF7cdJ20%0QQyYS#M#=^*ucQR4E9Dea-kpT$QzMcTK{)q i{k>T@xO>L`SAHo0kzkuLaB!%wR~T&7EQ0CR+5Z71eH=Of diff --git a/firebase-common/ktx/semver/previous-version/third_party_licenses.json b/firebase-common/ktx/semver/previous-version/third_party_licenses.json deleted file mode 100644 index 0967ef424bc..00000000000 --- a/firebase-common/ktx/semver/previous-version/third_party_licenses.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/firebase-common/ktx/semver/previous-version/third_party_licenses.txt b/firebase-common/ktx/semver/previous-version/third_party_licenses.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/firebase-common/ktx/semver/previous.aar b/firebase-common/ktx/semver/previous.aar deleted file mode 100644 index a7573740299ed5c06ecdb597e1d198f9afec766f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13252 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/firebase-common/semver/current-version/R.txt b/firebase-common/semver/current-version/R.txt deleted file mode 100644 index 6702614e7b8..00000000000 --- a/firebase-common/semver/current-version/R.txt +++ /dev/null @@ -1,202 +0,0 @@ -int attr alpha 0x0 -int attr coordinatorLayoutStyle 0x0 -int attr font 0x0 -int attr fontProviderAuthority 0x0 -int attr fontProviderCerts 0x0 -int attr fontProviderFetchStrategy 0x0 -int attr fontProviderFetchTimeout 0x0 -int attr fontProviderPackage 0x0 -int attr fontProviderQuery 0x0 -int attr fontStyle 0x0 -int attr fontVariationSettings 0x0 -int attr fontWeight 0x0 -int attr keylines 0x0 -int attr layout_anchor 0x0 -int attr layout_anchorGravity 0x0 -int attr layout_behavior 0x0 -int attr layout_dodgeInsetEdges 0x0 -int attr layout_insetEdge 0x0 -int attr layout_keyline 0x0 -int attr statusBarBackground 0x0 -int attr ttcIndex 0x0 -int color notification_action_color_filter 0x0 -int color notification_icon_bg_color 0x0 -int color ripple_material_light 0x0 -int color secondary_text_default_material_light 0x0 -int dimen compat_button_inset_horizontal_material 0x0 -int dimen compat_button_inset_vertical_material 0x0 -int dimen compat_button_padding_horizontal_material 0x0 -int dimen compat_button_padding_vertical_material 0x0 -int dimen compat_control_corner_material 0x0 -int dimen compat_notification_large_icon_max_height 0x0 -int dimen compat_notification_large_icon_max_width 0x0 -int dimen notification_action_icon_size 0x0 -int dimen notification_action_text_size 0x0 -int dimen notification_big_circle_margin 0x0 -int dimen notification_content_margin_start 0x0 -int dimen notification_large_icon_height 0x0 -int dimen notification_large_icon_width 0x0 -int dimen notification_main_column_padding_top 0x0 -int dimen notification_media_narrow_margin 0x0 -int dimen notification_right_icon_size 0x0 -int dimen notification_right_side_padding_top 0x0 -int dimen notification_small_icon_background_padding 0x0 -int dimen notification_small_icon_size_as_large 0x0 -int dimen notification_subtext_size 0x0 -int dimen notification_top_pad 0x0 -int dimen notification_top_pad_large_text 0x0 -int drawable notification_action_background 0x0 -int drawable notification_bg 0x0 -int drawable notification_bg_low 0x0 -int drawable notification_bg_low_normal 0x0 -int drawable notification_bg_low_pressed 0x0 -int drawable notification_bg_normal 0x0 -int drawable notification_bg_normal_pressed 0x0 -int drawable notification_icon_background 0x0 -int drawable notification_template_icon_bg 0x0 -int drawable notification_template_icon_low_bg 0x0 -int drawable notification_tile_bg 0x0 -int drawable notify_panel_notification_icon_bg 0x0 -int id accessibility_action_clickable_span 0x0 -int id accessibility_custom_action_0 0x0 -int id accessibility_custom_action_1 0x0 -int id accessibility_custom_action_10 0x0 -int id accessibility_custom_action_11 0x0 -int id accessibility_custom_action_12 0x0 -int id accessibility_custom_action_13 0x0 -int id accessibility_custom_action_14 0x0 -int id accessibility_custom_action_15 0x0 -int id accessibility_custom_action_16 0x0 -int id accessibility_custom_action_17 0x0 -int id accessibility_custom_action_18 0x0 -int id accessibility_custom_action_19 0x0 -int id accessibility_custom_action_2 0x0 -int id accessibility_custom_action_20 0x0 -int id accessibility_custom_action_21 0x0 -int id accessibility_custom_action_22 0x0 -int id accessibility_custom_action_23 0x0 -int id accessibility_custom_action_24 0x0 -int id accessibility_custom_action_25 0x0 -int id accessibility_custom_action_26 0x0 -int id accessibility_custom_action_27 0x0 -int id accessibility_custom_action_28 0x0 -int id accessibility_custom_action_29 0x0 -int id accessibility_custom_action_3 0x0 -int id accessibility_custom_action_30 0x0 -int id accessibility_custom_action_31 0x0 -int id accessibility_custom_action_4 0x0 -int id accessibility_custom_action_5 0x0 -int id accessibility_custom_action_6 0x0 -int id accessibility_custom_action_7 0x0 -int id accessibility_custom_action_8 0x0 -int id accessibility_custom_action_9 0x0 -int id action_container 0x0 -int id action_divider 0x0 -int id action_image 0x0 -int id action_text 0x0 -int id actions 0x0 -int id async 0x0 -int id blocking 0x0 -int id bottom 0x0 -int id chronometer 0x0 -int id dialog_button 0x0 -int id end 0x0 -int id forever 0x0 -int id icon 0x0 -int id icon_group 0x0 -int id info 0x0 -int id italic 0x0 -int id left 0x0 -int id line1 0x0 -int id line3 0x0 -int id none 0x0 -int id normal 0x0 -int id notification_background 0x0 -int id notification_main_column 0x0 -int id notification_main_column_container 0x0 -int id right 0x0 -int id right_icon 0x0 -int id right_side 0x0 -int id start 0x0 -int id tag_accessibility_actions 0x0 -int id tag_accessibility_clickable_spans 0x0 -int id tag_accessibility_heading 0x0 -int id tag_accessibility_pane_title 0x0 -int id tag_screen_reader_focusable 0x0 -int id tag_transition_group 0x0 -int id tag_unhandled_key_event_manager 0x0 -int id tag_unhandled_key_listeners 0x0 -int id text 0x0 -int id text2 0x0 -int id time 0x0 -int id title 0x0 -int id top 0x0 -int integer google_play_services_version 0x0 -int integer status_bar_notification_info_maxnum 0x0 -int layout custom_dialog 0x0 -int layout notification_action 0x0 -int layout notification_action_tombstone 0x0 -int layout notification_template_custom_big 0x0 -int layout notification_template_icon_group 0x0 -int layout notification_template_part_chronometer 0x0 -int layout notification_template_part_time 0x0 -int raw firebase_common_keep 0x0 -int string common_google_play_services_unknown_issue 0x0 -int string status_bar_notification_info_overflow 0x0 -int style TextAppearance_Compat_Notification 0x0 -int style TextAppearance_Compat_Notification_Info 0x0 -int style TextAppearance_Compat_Notification_Line2 0x0 -int style TextAppearance_Compat_Notification_Time 0x0 -int style TextAppearance_Compat_Notification_Title 0x0 -int style Widget_Compat_NotificationActionContainer 0x0 -int style Widget_Compat_NotificationActionText 0x0 -int style Widget_Support_CoordinatorLayout 0x0 -int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } -int styleable ColorStateListItem_alpha 0 -int styleable ColorStateListItem_android_alpha 1 -int styleable ColorStateListItem_android_color 2 -int[] styleable CoordinatorLayout { 0x0, 0x0 } -int styleable CoordinatorLayout_keylines 0 -int styleable CoordinatorLayout_statusBarBackground 1 -int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable CoordinatorLayout_Layout_android_layout_gravity 0 -int styleable CoordinatorLayout_Layout_layout_anchor 1 -int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 -int styleable CoordinatorLayout_Layout_layout_behavior 3 -int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 -int styleable CoordinatorLayout_Layout_layout_insetEdge 5 -int styleable CoordinatorLayout_Layout_layout_keyline 6 -int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamily_fontProviderAuthority 0 -int styleable FontFamily_fontProviderCerts 1 -int styleable FontFamily_fontProviderFetchStrategy 2 -int styleable FontFamily_fontProviderFetchTimeout 3 -int styleable FontFamily_fontProviderPackage 4 -int styleable FontFamily_fontProviderQuery 5 -int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamilyFont_android_font 0 -int styleable FontFamilyFont_android_fontStyle 1 -int styleable FontFamilyFont_android_fontVariationSettings 2 -int styleable FontFamilyFont_android_fontWeight 3 -int styleable FontFamilyFont_android_ttcIndex 4 -int styleable FontFamilyFont_font 5 -int styleable FontFamilyFont_fontStyle 6 -int styleable FontFamilyFont_fontVariationSettings 7 -int styleable FontFamilyFont_fontWeight 8 -int styleable FontFamilyFont_ttcIndex 9 -int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -int styleable GradientColor_android_centerColor 0 -int styleable GradientColor_android_centerX 1 -int styleable GradientColor_android_centerY 2 -int styleable GradientColor_android_endColor 3 -int styleable GradientColor_android_endX 4 -int styleable GradientColor_android_endY 5 -int styleable GradientColor_android_gradientRadius 6 -int styleable GradientColor_android_startColor 7 -int styleable GradientColor_android_startX 8 -int styleable GradientColor_android_startY 9 -int styleable GradientColor_android_tileMode 10 -int styleable GradientColor_android_type 11 -int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -int styleable GradientColorItem_android_color 0 -int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/semver/current-version/classes.jar b/firebase-common/semver/current-version/classes.jar deleted file mode 100644 index c73d0b3f6f43f4151008d4ee65d00e3bb99fe4f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96636 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 - \ No newline at end of file diff --git a/firebase-common/semver/current-version/third_party_licenses.json b/firebase-common/semver/current-version/third_party_licenses.json deleted file mode 100644 index 0967ef424bc..00000000000 --- a/firebase-common/semver/current-version/third_party_licenses.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/firebase-common/semver/current-version/third_party_licenses.txt b/firebase-common/semver/current-version/third_party_licenses.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/firebase-common/semver/previous-version/AndroidManifest.xml b/firebase-common/semver/previous-version/AndroidManifest.xml deleted file mode 100644 index 130d3c80d56..00000000000 --- a/firebase-common/semver/previous-version/AndroidManifest.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/firebase-common/semver/previous-version/R.txt b/firebase-common/semver/previous-version/R.txt deleted file mode 100644 index 6702614e7b8..00000000000 --- a/firebase-common/semver/previous-version/R.txt +++ /dev/null @@ -1,202 +0,0 @@ -int attr alpha 0x0 -int attr coordinatorLayoutStyle 0x0 -int attr font 0x0 -int attr fontProviderAuthority 0x0 -int attr fontProviderCerts 0x0 -int attr fontProviderFetchStrategy 0x0 -int attr fontProviderFetchTimeout 0x0 -int attr fontProviderPackage 0x0 -int attr fontProviderQuery 0x0 -int attr fontStyle 0x0 -int attr fontVariationSettings 0x0 -int attr fontWeight 0x0 -int attr keylines 0x0 -int attr layout_anchor 0x0 -int attr layout_anchorGravity 0x0 -int attr layout_behavior 0x0 -int attr layout_dodgeInsetEdges 0x0 -int attr layout_insetEdge 0x0 -int attr layout_keyline 0x0 -int attr statusBarBackground 0x0 -int attr ttcIndex 0x0 -int color notification_action_color_filter 0x0 -int color notification_icon_bg_color 0x0 -int color ripple_material_light 0x0 -int color secondary_text_default_material_light 0x0 -int dimen compat_button_inset_horizontal_material 0x0 -int dimen compat_button_inset_vertical_material 0x0 -int dimen compat_button_padding_horizontal_material 0x0 -int dimen compat_button_padding_vertical_material 0x0 -int dimen compat_control_corner_material 0x0 -int dimen compat_notification_large_icon_max_height 0x0 -int dimen compat_notification_large_icon_max_width 0x0 -int dimen notification_action_icon_size 0x0 -int dimen notification_action_text_size 0x0 -int dimen notification_big_circle_margin 0x0 -int dimen notification_content_margin_start 0x0 -int dimen notification_large_icon_height 0x0 -int dimen notification_large_icon_width 0x0 -int dimen notification_main_column_padding_top 0x0 -int dimen notification_media_narrow_margin 0x0 -int dimen notification_right_icon_size 0x0 -int dimen notification_right_side_padding_top 0x0 -int dimen notification_small_icon_background_padding 0x0 -int dimen notification_small_icon_size_as_large 0x0 -int dimen notification_subtext_size 0x0 -int dimen notification_top_pad 0x0 -int dimen notification_top_pad_large_text 0x0 -int drawable notification_action_background 0x0 -int drawable notification_bg 0x0 -int drawable notification_bg_low 0x0 -int drawable notification_bg_low_normal 0x0 -int drawable notification_bg_low_pressed 0x0 -int drawable notification_bg_normal 0x0 -int drawable notification_bg_normal_pressed 0x0 -int drawable notification_icon_background 0x0 -int drawable notification_template_icon_bg 0x0 -int drawable notification_template_icon_low_bg 0x0 -int drawable notification_tile_bg 0x0 -int drawable notify_panel_notification_icon_bg 0x0 -int id accessibility_action_clickable_span 0x0 -int id accessibility_custom_action_0 0x0 -int id accessibility_custom_action_1 0x0 -int id accessibility_custom_action_10 0x0 -int id accessibility_custom_action_11 0x0 -int id accessibility_custom_action_12 0x0 -int id accessibility_custom_action_13 0x0 -int id accessibility_custom_action_14 0x0 -int id accessibility_custom_action_15 0x0 -int id accessibility_custom_action_16 0x0 -int id accessibility_custom_action_17 0x0 -int id accessibility_custom_action_18 0x0 -int id accessibility_custom_action_19 0x0 -int id accessibility_custom_action_2 0x0 -int id accessibility_custom_action_20 0x0 -int id accessibility_custom_action_21 0x0 -int id accessibility_custom_action_22 0x0 -int id accessibility_custom_action_23 0x0 -int id accessibility_custom_action_24 0x0 -int id accessibility_custom_action_25 0x0 -int id accessibility_custom_action_26 0x0 -int id accessibility_custom_action_27 0x0 -int id accessibility_custom_action_28 0x0 -int id accessibility_custom_action_29 0x0 -int id accessibility_custom_action_3 0x0 -int id accessibility_custom_action_30 0x0 -int id accessibility_custom_action_31 0x0 -int id accessibility_custom_action_4 0x0 -int id accessibility_custom_action_5 0x0 -int id accessibility_custom_action_6 0x0 -int id accessibility_custom_action_7 0x0 -int id accessibility_custom_action_8 0x0 -int id accessibility_custom_action_9 0x0 -int id action_container 0x0 -int id action_divider 0x0 -int id action_image 0x0 -int id action_text 0x0 -int id actions 0x0 -int id async 0x0 -int id blocking 0x0 -int id bottom 0x0 -int id chronometer 0x0 -int id dialog_button 0x0 -int id end 0x0 -int id forever 0x0 -int id icon 0x0 -int id icon_group 0x0 -int id info 0x0 -int id italic 0x0 -int id left 0x0 -int id line1 0x0 -int id line3 0x0 -int id none 0x0 -int id normal 0x0 -int id notification_background 0x0 -int id notification_main_column 0x0 -int id notification_main_column_container 0x0 -int id right 0x0 -int id right_icon 0x0 -int id right_side 0x0 -int id start 0x0 -int id tag_accessibility_actions 0x0 -int id tag_accessibility_clickable_spans 0x0 -int id tag_accessibility_heading 0x0 -int id tag_accessibility_pane_title 0x0 -int id tag_screen_reader_focusable 0x0 -int id tag_transition_group 0x0 -int id tag_unhandled_key_event_manager 0x0 -int id tag_unhandled_key_listeners 0x0 -int id text 0x0 -int id text2 0x0 -int id time 0x0 -int id title 0x0 -int id top 0x0 -int integer google_play_services_version 0x0 -int integer status_bar_notification_info_maxnum 0x0 -int layout custom_dialog 0x0 -int layout notification_action 0x0 -int layout notification_action_tombstone 0x0 -int layout notification_template_custom_big 0x0 -int layout notification_template_icon_group 0x0 -int layout notification_template_part_chronometer 0x0 -int layout notification_template_part_time 0x0 -int raw firebase_common_keep 0x0 -int string common_google_play_services_unknown_issue 0x0 -int string status_bar_notification_info_overflow 0x0 -int style TextAppearance_Compat_Notification 0x0 -int style TextAppearance_Compat_Notification_Info 0x0 -int style TextAppearance_Compat_Notification_Line2 0x0 -int style TextAppearance_Compat_Notification_Time 0x0 -int style TextAppearance_Compat_Notification_Title 0x0 -int style Widget_Compat_NotificationActionContainer 0x0 -int style Widget_Compat_NotificationActionText 0x0 -int style Widget_Support_CoordinatorLayout 0x0 -int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 } -int styleable ColorStateListItem_alpha 0 -int styleable ColorStateListItem_android_alpha 1 -int styleable ColorStateListItem_android_color 2 -int[] styleable CoordinatorLayout { 0x0, 0x0 } -int styleable CoordinatorLayout_keylines 0 -int styleable CoordinatorLayout_statusBarBackground 1 -int[] styleable CoordinatorLayout_Layout { 0x10100b3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable CoordinatorLayout_Layout_android_layout_gravity 0 -int styleable CoordinatorLayout_Layout_layout_anchor 1 -int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 -int styleable CoordinatorLayout_Layout_layout_behavior 3 -int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 -int styleable CoordinatorLayout_Layout_layout_insetEdge 5 -int styleable CoordinatorLayout_Layout_layout_keyline 6 -int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamily_fontProviderAuthority 0 -int styleable FontFamily_fontProviderCerts 1 -int styleable FontFamily_fontProviderFetchStrategy 2 -int styleable FontFamily_fontProviderFetchTimeout 3 -int styleable FontFamily_fontProviderPackage 4 -int styleable FontFamily_fontProviderQuery 5 -int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 } -int styleable FontFamilyFont_android_font 0 -int styleable FontFamilyFont_android_fontStyle 1 -int styleable FontFamilyFont_android_fontVariationSettings 2 -int styleable FontFamilyFont_android_fontWeight 3 -int styleable FontFamilyFont_android_ttcIndex 4 -int styleable FontFamilyFont_font 5 -int styleable FontFamilyFont_fontStyle 6 -int styleable FontFamilyFont_fontVariationSettings 7 -int styleable FontFamilyFont_fontWeight 8 -int styleable FontFamilyFont_ttcIndex 9 -int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 } -int styleable GradientColor_android_centerColor 0 -int styleable GradientColor_android_centerX 1 -int styleable GradientColor_android_centerY 2 -int styleable GradientColor_android_endColor 3 -int styleable GradientColor_android_endX 4 -int styleable GradientColor_android_endY 5 -int styleable GradientColor_android_gradientRadius 6 -int styleable GradientColor_android_startColor 7 -int styleable GradientColor_android_startX 8 -int styleable GradientColor_android_startY 9 -int styleable GradientColor_android_tileMode 10 -int styleable GradientColor_android_type 11 -int[] styleable GradientColorItem { 0x10101a5, 0x1010514 } -int styleable GradientColorItem_android_color 0 -int styleable GradientColorItem_android_offset 1 diff --git a/firebase-common/semver/previous-version/classes.jar b/firebase-common/semver/previous-version/classes.jar deleted file mode 100644 index 88119f14eff0d45782bbb27e42a66cc9e773305d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80338 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
1RN3)=b5fBfIyW+QC-5zSQaMS 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 - \ No newline at end of file diff --git a/firebase-common/semver/previous-version/third_party_licenses.json b/firebase-common/semver/previous-version/third_party_licenses.json deleted file mode 100644 index 0967ef424bc..00000000000 --- a/firebase-common/semver/previous-version/third_party_licenses.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/firebase-common/semver/previous-version/third_party_licenses.txt b/firebase-common/semver/previous-version/third_party_licenses.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/firebase-common/semver/previous.aar b/firebase-common/semver/previous.aar deleted file mode 100644 index 6fd5104c5e9c581edeb0a25dd9416002f52f38bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75565 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