diff --git a/admob/app/build.gradle b/admob/app/build.gradle index 72ec877ed..db07ca8a7 100644 --- a/admob/app/build.gradle +++ b/admob/app/build.gradle @@ -38,19 +38,19 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.browser:browser:1.0.0' - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.4' - implementation 'androidx.navigation:navigation-ui-ktx:2.3.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' - implementation 'com.google.android.gms:play-services-ads:19.7.0' + implementation 'com.google.android.gms:play-services-ads:20.0.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // For an optimal experience using AdMob, add the Firebase SDK // for Google Analytics. This is recommended, but not required. implementation 'com.google.firebase:firebase-analytics' - debugImplementation "androidx.fragment:fragment-testing:1.3.1" + debugImplementation "androidx.fragment:fragment-testing:1.3.2" androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'androidx.test:rules:1.3.0' androidTestImplementation 'androidx.test:runner:1.3.0' diff --git a/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/AdViewIdlingResource.java b/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/AdViewIdlingResource.java deleted file mode 100644 index c603479ab..000000000 --- a/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/AdViewIdlingResource.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.google.samples.quickstart.admobexample; - -import androidx.test.espresso.IdlingResource; - -import com.google.android.gms.ads.AdListener; -import com.google.android.gms.ads.AdView; - -/** - * Espresso idling resource for monitoring an AdView. - */ -public class AdViewIdlingResource implements IdlingResource { - - private AdView mAdView; - private AdListener mAdListener; - private ResourceCallback mResourceCallback; - private boolean mIsLoadingAd = false; - - public AdViewIdlingResource(AdView adView) { - if (adView == null) { - throw new IllegalArgumentException( - "Can't initialize AdViewIdlingResource with null AdView."); - } - - this.mAdView = adView; - this.mAdListener = new AdListener() { - @Override - public void onAdFailedToLoad(int i) { - transitionToIdle(); - } - - @Override - public void onAdLoaded() { - transitionToIdle(); - } - }; - - mAdView.setAdListener(mAdListener); - } - - @Override - public String getName() { - return "AdViewIdlingResource:" + mAdView; - } - - @Override - public boolean isIdleNow() { - boolean idle = !mIsLoadingAd; - if (idle) { - transitionToIdle(); - } - return idle; - } - - @Override - public void registerIdleTransitionCallback(ResourceCallback callback) { - this.mResourceCallback = callback; - } - - public void setIsLoadingAd(boolean isLoadingAd) { - this.mIsLoadingAd = isLoadingAd; - } - - private void transitionToIdle() { - mIsLoadingAd = false; - if (mResourceCallback != null) { - mResourceCallback.onTransitionToIdle(); - } - } -} diff --git a/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/InterstitialAdTest.java b/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/InterstitialAdTest.java deleted file mode 100644 index 598c8cdb8..000000000 --- a/admob/app/src/androidTest/java/com/google/samples/quickstart/admobexample/InterstitialAdTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.google.samples.quickstart.admobexample; - - -import androidx.fragment.app.testing.FragmentScenario; -import androidx.test.espresso.ViewInteraction; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import androidx.test.filters.LargeTest; - -import com.google.samples.quickstart.admobexample.kotlin.FirstFragment; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static androidx.test.espresso.Espresso.onView; -import static androidx.test.espresso.action.ViewActions.click; -import static androidx.test.espresso.assertion.ViewAssertions.matches; -import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; -import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; -import static androidx.test.espresso.matcher.ViewMatchers.withId; -import static androidx.test.espresso.matcher.ViewMatchers.withText; -import static org.hamcrest.Matchers.allOf; - -@LargeTest -@RunWith(AndroidJUnit4.class) -public class InterstitialAdTest { - - @Test - public void interstitialAdTest() { - FragmentScenario fragment = FragmentScenario.launchInContainer(FirstFragment.class); - - // Confirm that banner ad appears - onView(withId(R.id.adView)) - .check(matches(isDisplayed())); - - // Click show interstitial button - ViewInteraction showInterstitialButton = onView( - allOf(withId(R.id.loadInterstitialButton), - withText(R.string.interstitial_button_text), - isDisplayed())); - showInterstitialButton.perform(click()); - - // Click close interstitial button - ViewInteraction closeInterstitialButton = onView( - allOf(withContentDescription("Interstitial close button"), isDisplayed())); - closeInterstitialButton.perform(click()); - - // Confirm that we're on the second activity - onView(withText(R.string.second_fragment_content)) - .check(matches(isDisplayed())); - } -} diff --git a/admob/app/src/main/java/com/google/samples/quickstart/admobexample/java/FirstFragment.java b/admob/app/src/main/java/com/google/samples/quickstart/admobexample/java/FirstFragment.java index 7f38d5eb7..f48340d80 100644 --- a/admob/app/src/main/java/com/google/samples/quickstart/admobexample/java/FirstFragment.java +++ b/admob/app/src/main/java/com/google/samples/quickstart/admobexample/java/FirstFragment.java @@ -13,12 +13,13 @@ import androidx.fragment.app.Fragment; import androidx.navigation.fragment.NavHostFragment; -import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; -import com.google.android.gms.ads.InterstitialAd; +import com.google.android.gms.ads.FullScreenContentCallback; import com.google.android.gms.ads.LoadAdError; import com.google.android.gms.ads.MobileAds; +import com.google.android.gms.ads.interstitial.InterstitialAd; +import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback; import com.google.samples.quickstart.admobexample.R; import com.google.samples.quickstart.admobexample.databinding.FragmentFirstBinding; @@ -48,46 +49,15 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat MobileAds.initialize(getContext()); mAdView = binding.adView; - AdRequest adRequest = new AdRequest.Builder().build(); - mAdView.loadAd(adRequest); - - // AdMob ad unit IDs are not currently stored inside the google-services.json file. - // Developers using AdMob can store them as custom values in a string resource file or - // simply use constants. Note that the ad units used here are configured to return only test - // ads, and should not be used outside this sample. - - // Create an InterstitialAd object. This same object can be re-used whenever you want to - // show an interstitial. - mInterstitialAd = new InterstitialAd(getContext()); - mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id)); - mInterstitialAd.setAdListener(new AdListener() { - @Override - public void onAdClosed() { - requestNewInterstitial(); - beginSecondActivity(); - } - - @Override - public void onAdLoaded() { - // Ad received, ready to display - if (mLoadInterstitialButton != null) { - mLoadInterstitialButton.setEnabled(true); - } - } - - @Override - public void onAdFailedToLoad(LoadAdError error) { - Log.w(TAG, "onAdFailedToLoad:" + error.getMessage()); - } - }); + requestNewInterstitial(); mLoadInterstitialButton = binding.loadInterstitialButton; mLoadInterstitialButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (mInterstitialAd.isLoaded()) { - mInterstitialAd.show(); + if (mInterstitialAd != null) { + mInterstitialAd.show(getActivity()); } else { beginSecondActivity(); } @@ -95,7 +65,7 @@ public void onClick(View v) { }); // Disable button if an interstitial ad is not loaded yet. - mLoadInterstitialButton.setEnabled(mInterstitialAd.isLoaded()); + mLoadInterstitialButton.setEnabled(mInterstitialAd != null); } /** @@ -103,8 +73,40 @@ public void onClick(View v) { */ private void requestNewInterstitial() { AdRequest adRequest = new AdRequest.Builder().build(); + mAdView.loadAd(adRequest); + + // AdMob ad unit IDs are not currently stored inside the google-services.json file. + // Developers using AdMob can store them as custom values in a string resource file or + // simply use constants. Note that the ad units used here are configured to return only test + // ads, and should not be used outside this sample. + InterstitialAd.load(getContext(), getString(R.string.interstitial_ad_unit_id), adRequest, new InterstitialAdLoadCallback() { + @Override + public void onAdLoaded(@NonNull InterstitialAd interstitialAd) { + super.onAdLoaded(interstitialAd); + mInterstitialAd = interstitialAd; - mInterstitialAd.loadAd(adRequest); + // Ad received, ready to display + if (mLoadInterstitialButton != null) { + mLoadInterstitialButton.setEnabled(true); + } + + mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() { + @Override + public void onAdDismissedFullScreenContent() { + super.onAdDismissedFullScreenContent(); + requestNewInterstitial(); + beginSecondActivity(); + } + }); + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + super.onAdFailedToLoad(loadAdError); + mInterstitialAd = null; + Log.w(TAG, "onAdFailedToLoad:" + loadAdError.getMessage()); + } + }); } private void beginSecondActivity() { @@ -127,7 +129,7 @@ public void onResume() { if (mAdView != null) { mAdView.resume(); } - if (!mInterstitialAd.isLoaded()) { + if (mInterstitialAd == null) { requestNewInterstitial(); } } diff --git a/admob/app/src/main/java/com/google/samples/quickstart/admobexample/kotlin/FirstFragment.kt b/admob/app/src/main/java/com/google/samples/quickstart/admobexample/kotlin/FirstFragment.kt index 5bc68db36..a09d47aeb 100644 --- a/admob/app/src/main/java/com/google/samples/quickstart/admobexample/kotlin/FirstFragment.kt +++ b/admob/app/src/main/java/com/google/samples/quickstart/admobexample/kotlin/FirstFragment.kt @@ -8,12 +8,13 @@ import android.view.View import android.view.ViewGroup import android.widget.Button import androidx.navigation.fragment.findNavController -import com.google.android.gms.ads.AdListener import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdView -import com.google.android.gms.ads.InterstitialAd +import com.google.android.gms.ads.FullScreenContentCallback import com.google.android.gms.ads.LoadAdError import com.google.android.gms.ads.MobileAds +import com.google.android.gms.ads.interstitial.InterstitialAd +import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback import com.google.samples.quickstart.admobexample.R import com.google.samples.quickstart.admobexample.databinding.FragmentFirstBinding @@ -21,12 +22,12 @@ class FirstFragment : Fragment() { private var _binding: FragmentFirstBinding? = null private val binding get() = _binding!! - private lateinit var interstitialAd: InterstitialAd + private var interstitialAd: InterstitialAd? = null private lateinit var adView: AdView private lateinit var loadInterstitialButton: Button override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?): View? { + savedInstanceState: Bundle?): View { _binding = FragmentFirstBinding.inflate(inflater, container, false) return binding.root } @@ -40,57 +41,60 @@ class FirstFragment : Fragment() { checkIds() // Initialize the Google Mobile Ads SDK - MobileAds.initialize(context) + MobileAds.initialize(requireContext()) - val adRequest = AdRequest.Builder().build() - - adView.loadAd(adRequest) - - // AdMob ad unit IDs are not currently stored inside the google-services.json file. - // Developers using AdMob can store them as custom values in a string resource file or - // simply use constants. Note that the ad units used here are configured to return only test - // ads, and should not be used outside this sample. - - // Create an InterstitialAd object. This same object can be re-used whenever you want to - // show an interstitial. - interstitialAd = InterstitialAd(context) - interstitialAd.adUnitId = getString(R.string.interstitial_ad_unit_id) - - interstitialAd.adListener = object : AdListener() { - override fun onAdClosed() { - requestNewInterstitial() - goToNextFragment() - } - - override fun onAdLoaded() { - // Ad received, ready to display - loadInterstitialButton.isEnabled = true - } - - override fun onAdFailedToLoad(error: LoadAdError) { - Log.w(TAG, "onAdFailedToLoad:${error.message}") - } - } + requestNewInterstitial() loadInterstitialButton.setOnClickListener { - if (interstitialAd.isLoaded) { - interstitialAd.show() + if (interstitialAd != null) { + interstitialAd?.show(requireActivity()) } else { goToNextFragment() } } // Disable button if an interstitial ad is not loaded yet. - loadInterstitialButton.isEnabled = interstitialAd.isLoaded + loadInterstitialButton.isEnabled = interstitialAd != null } /** * Load a new interstitial ad asynchronously. */ private fun requestNewInterstitial() { + // AdMob ad unit IDs are not currently stored inside the google-services.json file. + // Developers using AdMob can store them as custom values in a string resource file or + // simply use constants. Note that the ad units used here are configured to return only test + // ads, and should not be used outside this sample. val adRequest = AdRequest.Builder().build() - interstitialAd.loadAd(adRequest) + adView.loadAd(adRequest) + + InterstitialAd.load( + requireContext(), + getString(R.string.interstitial_ad_unit_id), + adRequest, + object : InterstitialAdLoadCallback() { + override fun onAdLoaded(ad: InterstitialAd) { + super.onAdLoaded(ad) + interstitialAd = ad + // Ad received, ready to display + loadInterstitialButton.isEnabled = true + + interstitialAd?.fullScreenContentCallback = object : FullScreenContentCallback() { + override fun onAdDismissedFullScreenContent() { + super.onAdDismissedFullScreenContent() + goToNextFragment() + } + } + } + + override fun onAdFailedToLoad(error: LoadAdError) { + super.onAdFailedToLoad(error) + interstitialAd = null + Log.w(TAG, "onAdFailedToLoad:${error.message}") + } + } + ) } private fun goToNextFragment() { @@ -107,7 +111,7 @@ class FirstFragment : Fragment() { override fun onResume() { super.onResume() adView.resume() - if (!interstitialAd.isLoaded) { + if (interstitialAd == null) { requestNewInterstitial() } } diff --git a/admob/build.gradle b/admob/build.gradle index c44fe06c9..2f95b9ba9 100644 --- a/admob/build.gradle +++ b/admob/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/analytics/app/build.gradle b/analytics/app/build.gradle index e553577d1..f6cddd0d6 100644 --- a/analytics/app/build.gradle +++ b/analytics/app/build.gradle @@ -35,7 +35,7 @@ dependencies { implementation "androidx.preference:preference-ktx:1.1.1" // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Analytics (Java) implementation 'com.google.firebase:firebase-analytics' diff --git a/analytics/build.gradle b/analytics/build.gradle index 53847afca..651013369 100644 --- a/analytics/build.gradle +++ b/analytics/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/app-indexing/build.gradle b/app-indexing/build.gradle index 382cbac3c..0a4a146c3 100644 --- a/app-indexing/build.gradle +++ b/app-indexing/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/auth/app/build.gradle b/auth/app/build.gradle index d0f25265d..7df596e39 100644 --- a/auth/app/build.gradle +++ b/auth/app/build.gradle @@ -41,12 +41,12 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0' implementation 'com.google.android.material:material:1.3.0' - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.4' - implementation 'androidx.navigation:navigation-ui-ktx:2.3.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) // Temporarily pinning versions due to Kotlin bug (see below) - // implementation platform('com.google.firebase:firebase-bom:26.6.0') + // implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Authentication (Java) // Temporarily pinned to 20.0.1 to avoid https://youtrack.jetbrains.com/issue/KT-44375 diff --git a/auth/build.gradle b/auth/build.gradle index 693acab59..cef861023 100644 --- a/auth/build.gradle +++ b/auth/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/build.gradle b/build.gradle index d517cb570..0565cc218 100644 --- a/build.gradle +++ b/build.gradle @@ -5,13 +5,13 @@ buildscript { mavenLocal() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'com.android.tools.build:gradle:4.1.3' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:perf-plugin:1.3.5' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.1' - classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.4' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2' + classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5' } } diff --git a/config/app/build.gradle b/config/app/build.gradle index 75775db15..dac57d252 100644 --- a/config/app/build.gradle +++ b/config/app/build.gradle @@ -34,7 +34,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Remote Config (Java) implementation 'com.google.firebase:firebase-config' diff --git a/config/build.gradle b/config/build.gradle index 47c5f9296..25c27f780 100644 --- a/config/build.gradle +++ b/config/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/crash/app/build.gradle b/crash/app/build.gradle index 039f0d6ce..b39f2d5db 100644 --- a/crash/app/build.gradle +++ b/crash/app/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Crashlytics (Java) implementation 'com.google.firebase:firebase-crashlytics' diff --git a/crash/build.gradle b/crash/build.gradle index 169b757de..e892c7701 100644 --- a/crash/build.gradle +++ b/crash/build.gradle @@ -7,10 +7,10 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.1' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/database/app/build.gradle b/database/app/build.gradle index ef2afef89..985d1c2e5 100644 --- a/database/app/build.gradle +++ b/database/app/build.gradle @@ -33,13 +33,13 @@ dependencies { implementation project(":internal:chooserx") implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.recyclerview:recyclerview:1.2.0' implementation 'com.google.android.material:material:1.3.0' - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.4' - implementation 'androidx.navigation:navigation-ui-ktx:2.3.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Realtime Database (Java) implementation 'com.google.firebase:firebase-database' diff --git a/database/build.gradle b/database/build.gradle index e41879df6..d532be09b 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/dynamiclinks/app/build.gradle b/dynamiclinks/app/build.gradle index 0488d8c6e..588028692 100644 --- a/dynamiclinks/app/build.gradle +++ b/dynamiclinks/app/build.gradle @@ -48,7 +48,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Dynamic Links (Java) implementation 'com.google.firebase:firebase-dynamic-links' diff --git a/dynamiclinks/build.gradle b/dynamiclinks/build.gradle index e41879df6..d532be09b 100644 --- a/dynamiclinks/build.gradle +++ b/dynamiclinks/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/firestore/app/build.gradle b/firestore/app/build.gradle index 70e280660..c6898d57e 100644 --- a/firestore/app/build.gradle +++ b/firestore/app/build.gradle @@ -41,7 +41,7 @@ dependencies { implementation project(":internal:chooserx") // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firestore (Java) implementation 'com.google.firebase:firebase-firestore' @@ -68,16 +68,16 @@ dependencies { implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.browser:browser:1.0.0' implementation 'com.google.android.material:material:1.3.0' - implementation 'androidx.media:media:1.2.1' - implementation 'androidx.recyclerview:recyclerview:1.1.0' + implementation 'androidx.media:media:1.3.0' + implementation 'androidx.recyclerview:recyclerview:1.2.0' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.navigation:navigation-fragment-ktx:2.3.4' - implementation 'androidx.navigation:navigation-ui-ktx:2.3.4' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' // Android architecture components - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' - annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.3.0' + annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.3.1' // Third-party libraries implementation 'me.zhanghai.android.materialratingbar:library:1.4.0' diff --git a/firestore/build.gradle b/firestore/build.gradle index 76c2fa965..e1d339552 100644 --- a/firestore/build.gradle +++ b/firestore/build.gradle @@ -7,10 +7,10 @@ buildscript { mavenLocal() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' - classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.4' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' + classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5' } } diff --git a/functions/app/build.gradle b/functions/app/build.gradle index 5e38cc795..80cdfd902 100644 --- a/functions/app/build.gradle +++ b/functions/app/build.gradle @@ -37,7 +37,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Cloud Functions for Firebase (Java) implementation 'com.google.firebase:firebase-functions' diff --git a/functions/build.gradle b/functions/build.gradle index e41879df6..d532be09b 100644 --- a/functions/build.gradle +++ b/functions/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/inappmessaging/app/build.gradle b/inappmessaging/app/build.gradle index 56399d103..5bf13de94 100644 --- a/inappmessaging/app/build.gradle +++ b/inappmessaging/app/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation 'androidx.multidex:multidex:2.0.1' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // FIAM (Java) implementation 'com.google.firebase:firebase-inappmessaging-display' diff --git a/inappmessaging/build.gradle b/inappmessaging/build.gradle index 6fdc1b27e..728e34454 100644 --- a/inappmessaging/build.gradle +++ b/inappmessaging/build.gradle @@ -9,8 +9,8 @@ buildscript { } dependencies { classpath 'com.google.gms:google-services:4.3.5' - classpath 'com.android.tools.build:gradle:4.1.2' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'com.android.tools.build:gradle:4.1.3' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/internal/chooserx/build.gradle b/internal/chooserx/build.gradle index 7aaccf049..bfd22d740 100755 --- a/internal/chooserx/build.gradle +++ b/internal/chooserx/build.gradle @@ -24,6 +24,6 @@ android { dependencies { api 'com.google.android.material:material:1.3.0' - api 'androidx.recyclerview:recyclerview:1.1.0' + api 'androidx.recyclerview:recyclerview:1.2.0' api 'androidx.constraintlayout:constraintlayout:2.0.4' } diff --git a/internal/lint/build.gradle b/internal/lint/build.gradle index 575c3ed3d..c89181926 100755 --- a/internal/lint/build.gradle +++ b/internal/lint/build.gradle @@ -5,10 +5,10 @@ targetCompatibility = JavaVersion.VERSION_1_7 sourceCompatibility = JavaVersion.VERSION_1_7 dependencies { - compileOnly "com.android.tools.lint:lint-api:27.1.2" - compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.31" - testImplementation "com.android.tools.lint:lint:27.1.2" - testImplementation "com.android.tools.lint:lint-tests:27.1.2" + compileOnly "com.android.tools.lint:lint-api:27.1.3" + compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.32" + testImplementation "com.android.tools.lint:lint:27.1.3" + testImplementation "com.android.tools.lint:lint-tests:27.1.3" } jar { diff --git a/messaging/app/build.gradle b/messaging/app/build.gradle index 8bfab5fad..b0271cff4 100644 --- a/messaging/app/build.gradle +++ b/messaging/app/build.gradle @@ -38,14 +38,14 @@ android { dependencies { implementation project(":internal:lintchecks") implementation project(":internal:chooserx") - implementation 'androidx.annotation:annotation:1.1.0' + implementation 'androidx.annotation:annotation:1.2.0' implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0' implementation 'androidx.core:core:1.3.2' implementation 'com.google.android.material:material:1.3.0' // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Cloud Messaging (Java) implementation 'com.google.firebase:firebase-messaging' @@ -65,7 +65,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'androidx.test:runner:1.3.0' androidTestImplementation 'androidx.test:rules:1.3.0' - androidTestImplementation 'androidx.annotation:annotation:1.1.0' + androidTestImplementation 'androidx.annotation:annotation:1.2.0' } apply plugin: 'com.google.gms.google-services' diff --git a/messaging/build.gradle b/messaging/build.gradle index 47c5f9296..25c27f780 100644 --- a/messaging/build.gradle +++ b/messaging/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/perf/app/build.gradle b/perf/app/build.gradle index 6fd3e7666..862c66465 100644 --- a/perf/app/build.gradle +++ b/perf/app/build.gradle @@ -39,7 +39,7 @@ dependencies { implementation project(":internal:chooserx") // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Firebase Performance Monitoring (Java) implementation 'com.google.firebase:firebase-perf' @@ -49,7 +49,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' implementation 'com.github.bumptech.glide:glide:3.7.0' diff --git a/perf/build.gradle b/perf/build.gradle index 24cfad75d..f6d6f6dbe 100644 --- a/perf/build.gradle +++ b/perf/build.gradle @@ -7,10 +7,10 @@ buildscript { mavenLocal() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.firebase:perf-plugin:1.3.5' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } } diff --git a/storage/app/build.gradle b/storage/app/build.gradle index ff4c476ef..916234841 100644 --- a/storage/app/build.gradle +++ b/storage/app/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation project(":internal:chooserx") // Import the Firebase BoM (see: https://firebase.google.com/docs/android/learn-more#bom) - implementation platform('com.google.firebase:firebase-bom:26.6.0') + implementation platform('com.google.firebase:firebase-bom:27.0.0') // Cloud Storage for Firebase (Java) implementation 'com.google.firebase:firebase-storage' diff --git a/storage/build.gradle b/storage/build.gradle index 1ae960f63..c8a224d0f 100644 --- a/storage/build.gradle +++ b/storage/build.gradle @@ -7,9 +7,9 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.2' + classpath 'com.android.tools.build:gradle:4.1.3' classpath 'com.google.gms:google-services:4.3.5' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32' } }