diff --git a/DEPS b/DEPS index 2bb444eb8ca..b9233ef18db 100644 --- a/DEPS +++ b/DEPS @@ -267,7 +267,7 @@ allowed_hosts = [ ] deps = { - 'src': 'https://github.com/flutter/buildroot.git' + '@' + '5ced4367fee2721f6eda34802dc28b1335637c63', + 'src': 'https://github.com/flutter/buildroot.git' + '@' + '44ca359ea6fada2fa1bb007b81994fa4dc8ce2ec', 'src/flutter/third_party/rapidjson': Var('fuchsia_git') + '/third_party/rapidjson' + '@' + 'ef3564c5c8824989393b87df25355baf35ff544b', @@ -766,7 +766,7 @@ deps = { 'packages': [ { 'package': 'flutter/android/sdk/all/${{platform}}', - 'version': 'version:33v6' + 'version': 'version:34v3' } ], 'condition': 'download_android_deps', @@ -798,7 +798,7 @@ deps = { 'packages': [ { 'package': 'flutter/java/openjdk/${{platform}}', - 'version': 'version:11' + 'version': 'version:17' } ], 'condition': 'download_android_deps', diff --git a/engine/src/flutter/.ci.yaml b/engine/src/flutter/.ci.yaml index 0f7e2a09767..2cb1a4b2a86 100644 --- a/engine/src/flutter/.ci.yaml +++ b/engine/src/flutter/.ci.yaml @@ -27,7 +27,7 @@ platform_properties: # CIPD flutter/java/openjdk/$platform dependencies: >- [ - {"dependency": "open_jdk", "version": "version:11"}, + {"dependency": "open_jdk", "version": "version:17"}, {"dependency": "gradle_cache", "version": "none"} ] device_type: none @@ -49,7 +49,7 @@ platform_properties: # CIPD flutter/java/openjdk/$platform dependencies: >- [ - {"dependency": "open_jdk", "version": "version:11"} + {"dependency": "open_jdk", "version": "version:17"} ] device_type: none cpu: x86 @@ -79,7 +79,7 @@ platform_properties: # CIPD flutter/java/openjdk/$platform dependencies: >- [ - {"dependency": "open_jdk", "version": "version:11"} + {"dependency": "open_jdk", "version": "version:17"} ] device_type: none os: Windows-10 diff --git a/engine/src/flutter/shell/platform/android/AndroidManifest.xml b/engine/src/flutter/shell/platform/android/AndroidManifest.xml index 2b904fe0412..82f4b0a7c5d 100644 --- a/engine/src/flutter/shell/platform/android/AndroidManifest.xml +++ b/engine/src/flutter/shell/platform/android/AndroidManifest.xml @@ -5,7 +5,7 @@ --> - + diff --git a/engine/src/flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java b/engine/src/flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java index f5393bbaa43..4cfa3c8839d 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/embedding/android/FlutterView.java @@ -233,7 +233,7 @@ public class FlutterView extends FrameLayout renderSurface = flutterTextureView; } else { throw new IllegalArgumentException( - String.format("RenderMode not supported with this constructor: %s", renderMode)); + "RenderMode not supported with this constructor: " + renderMode); } init(); @@ -327,7 +327,7 @@ public class FlutterView extends FrameLayout renderSurface = flutterTextureView; } else { throw new IllegalArgumentException( - String.format("RenderMode not supported with this constructor: %s", renderMode)); + "RenderMode not supported with this constructor: " + renderMode); } init(); diff --git a/engine/src/flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java b/engine/src/flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java index 989566872de..705becaa96c 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java @@ -330,17 +330,17 @@ public class PlayStoreDeferredComponentManager implements DeferredComponentManag case SplitInstallErrorCode.NETWORK_ERROR: flutterJNI.deferredComponentInstallFailure( loadingUnitId, - String.format( - "Install of deferred component module \"%s\" failed with a network error", - componentName), + "Install of deferred component module \"" + + componentName + + "\" failed with a network error", true); break; case SplitInstallErrorCode.MODULE_UNAVAILABLE: flutterJNI.deferredComponentInstallFailure( loadingUnitId, - String.format( - "Install of deferred component module \"%s\" failed as it is unavailable", - componentName), + "Install of deferred component module \"" + + componentName + + "\" failed as it is unavailable", false); break; default: diff --git a/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java b/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java index 08d52867eb2..b7ca559ac7c 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/SingleViewPresentation.java @@ -51,7 +51,7 @@ import java.lang.reflect.Proxy; * EmbeddedView */ @Keep -@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) +@TargetApi(Build.VERSION_CODES.KITKAT) class SingleViewPresentation extends Presentation { private static final String TAG = "PlatformViewsController"; diff --git a/engine/src/flutter/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java b/engine/src/flutter/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java index 9f9ecd6d637..30dd648beac 100644 --- a/engine/src/flutter/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java +++ b/engine/src/flutter/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java @@ -485,7 +485,7 @@ public class FlutterActivityTest { } @Test - @Config(minSdk = Build.VERSION_CODES.JELLY_BEAN, maxSdk = Build.VERSION_CODES.P) + @Config(minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.P) public void fullyDrawn_beforeAndroidQ() { Intent intent = FlutterActivityWithReportFullyDrawn.createDefaultIntent(ctx); ActivityController activityController = diff --git a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/localization/LocalizationPluginTest.java b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/localization/LocalizationPluginTest.java index a1e8a127168..9b3d7ee921b 100644 --- a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/localization/LocalizationPluginTest.java +++ b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/localization/LocalizationPluginTest.java @@ -238,7 +238,7 @@ public class LocalizationPluginTest { // Tests the legacy pre API 24 algorithm. @Test @Config( - minSdk = Build.VERSION_CODES.JELLY_BEAN, + minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.M, qualifiers = "es-rMX") public void computePlatformResolvedLocale_emptySupportedLocales_beforeAndroidN() { @@ -252,7 +252,7 @@ public class LocalizationPluginTest { } @Test - @Config(minSdk = Build.VERSION_CODES.JELLY_BEAN, maxSdk = Build.VERSION_CODES.M, qualifiers = "") + @Config(minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.M, qualifiers = "") public void computePlatformResolvedLocale_selectFirstLocaleWhenNoUserSetting_beforeAndroidN() { FlutterJNI flutterJNI = new FlutterJNI(); DartExecutor dartExecutor = mock(DartExecutor.class); @@ -273,7 +273,7 @@ public class LocalizationPluginTest { @Test @Config( - minSdk = Build.VERSION_CODES.JELLY_BEAN, + minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.M, qualifiers = "fr-rCH") public void computePlatformResolvedLocale_selectFirstLocaleWhenNoExactMatch_beforeAndroidN() { @@ -299,7 +299,7 @@ public class LocalizationPluginTest { @Test @Config( - minSdk = Build.VERSION_CODES.JELLY_BEAN, + minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.M, qualifiers = "it-rIT") public void computePlatformResolvedLocale_selectExactMatchLocale_beforeAndroidN() { @@ -325,7 +325,7 @@ public class LocalizationPluginTest { @Test @Config( - minSdk = Build.VERSION_CODES.JELLY_BEAN, + minSdk = Build.VERSION_CODES.KITKAT, maxSdk = Build.VERSION_CODES.M, qualifiers = "fr-rCH") public void computePlatformResolvedLocale_selectOnlyLanguageLocale_beforeAndroidN() { @@ -351,35 +351,35 @@ public class LocalizationPluginTest { } // Tests the legacy pre API 21 algorithm. - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void localeFromString_languageOnly() { Locale locale = LocalizationPlugin.localeFromString("en"); assertEquals(locale, new Locale("en")); } - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void localeFromString_languageAndCountry() { Locale locale = LocalizationPlugin.localeFromString("en-US"); assertEquals(locale, new Locale("en", "US")); } - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void localeFromString_languageCountryAndVariant() { Locale locale = LocalizationPlugin.localeFromString("zh-Hans-CN"); assertEquals(locale, new Locale("zh", "CN", "Hans")); } - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void localeFromString_underscore() { Locale locale = LocalizationPlugin.localeFromString("zh_Hans_CN"); assertEquals(locale, new Locale("zh", "CN", "Hans")); } - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void localeFromString_additionalVariantsAreIgnored() { Locale locale = LocalizationPlugin.localeFromString("de-DE-u-co-phonebk"); diff --git a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/PlatformPluginTest.java b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/PlatformPluginTest.java index 3a77e6ae68c..23b7fbf5b6a 100644 --- a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/PlatformPluginTest.java +++ b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/PlatformPluginTest.java @@ -52,7 +52,7 @@ import org.robolectric.shadows.ShadowLooper; public class PlatformPluginTest { private final Context ctx = ApplicationProvider.getApplicationContext(); - @Config(sdk = 16) + @Config(sdk = Build.VERSION_CODES.KITKAT) @Test public void itIgnoresNewHapticEventsOnOldAndroidPlatforms() { View fakeDecorView = mock(View.class); @@ -70,7 +70,7 @@ public class PlatformPluginTest { platformPlugin.vibrateHapticFeedback(PlatformChannel.HapticFeedbackType.SELECTION_CLICK); } - @Config(sdk = 29) + @Config(sdk = Build.VERSION_CODES.Q) @Test public void platformPlugin_getClipboardData() throws IOException { ClipboardManager clipboardManager = ctx.getSystemService(ClipboardManager.class); @@ -100,7 +100,7 @@ public class PlatformPluginTest { @SuppressWarnings("deprecation") // ClipboardManager.getText - @Config(sdk = 28) + @Config(sdk = Build.VERSION_CODES.P) @Test public void platformPlugin_hasStrings() { ClipboardManager clipboardManager = spy(ctx.getSystemService(ClipboardManager.class)); @@ -154,7 +154,7 @@ public class PlatformPluginTest { verify(clipboardManager, never()).getText(); } - @Config(sdk = 29) + @Config(sdk = Build.VERSION_CODES.Q) @Test public void setNavigationBarDividerColor() { View fakeDecorView = mock(View.class); @@ -229,7 +229,7 @@ public class PlatformPluginTest { } } - @Config(sdk = 30) + @Config(sdk = Build.VERSION_CODES.R) @Test public void setNavigationBarIconBrightness() { if (Build.VERSION.SDK_INT >= 30) { @@ -276,7 +276,7 @@ public class PlatformPluginTest { } } - @Config(sdk = 30) + @Config(sdk = Build.VERSION_CODES.R) @Test public void setStatusBarIconBrightness() { if (Build.VERSION.SDK_INT >= 30) { @@ -323,7 +323,7 @@ public class PlatformPluginTest { @SuppressWarnings("deprecation") // SYSTEM_UI_FLAG_*, setSystemUiVisibility - @Config(sdk = 29) + @Config(sdk = Build.VERSION_CODES.Q) @Test public void setSystemUiMode() { View fakeDecorView = mock(View.class); @@ -440,7 +440,7 @@ public class PlatformPluginTest { @SuppressWarnings("deprecation") // SYSTEM_UI_FLAG_*, setSystemUiVisibility - @Config(sdk = 28) + @Config(sdk = Build.VERSION_CODES.P) @Test public void doNotEnableEdgeToEdgeOnOlderSdk() { View fakeDecorView = mock(View.class); @@ -462,7 +462,7 @@ public class PlatformPluginTest { @SuppressWarnings("deprecation") // FLAG_TRANSLUCENT_STATUS, FLAG_TRANSLUCENT_NAVIGATION - @Config(sdk = 29) + @Config(sdk = Build.VERSION_CODES.Q) @Test public void verifyWindowFlagsSetToStyleOverlays() { View fakeDecorView = mock(View.class); diff --git a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/SingleViewPresentationTest.java b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/SingleViewPresentationTest.java index 04668279762..d27e08bbbdc 100644 --- a/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/SingleViewPresentationTest.java +++ b/engine/src/flutter/shell/platform/android/test/io/flutter/plugin/platform/SingleViewPresentationTest.java @@ -4,7 +4,7 @@ package io.flutter.plugin.platform; -import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1; +import static android.os.Build.VERSION_CODES.KITKAT; import static android.os.Build.VERSION_CODES.P; import static android.os.Build.VERSION_CODES.R; import static org.junit.Assert.assertEquals; @@ -28,7 +28,7 @@ import org.robolectric.annotation.Config; @TargetApi(P) public class SingleViewPresentationTest { @Test - @Config(minSdk = JELLY_BEAN_MR1, maxSdk = R) + @Config(minSdk = KITKAT, maxSdk = R) public void returnsOuterContextInputMethodManager() { // There's a bug in Android Q caused by the IMM being instanced per display. // https://github.com/flutter/flutter/issues/38375. We need the context returned by @@ -59,7 +59,7 @@ public class SingleViewPresentationTest { } @Test - @Config(minSdk = JELLY_BEAN_MR1, maxSdk = R) + @Config(minSdk = KITKAT, maxSdk = R) public void returnsOuterContextInputMethodManager_createDisplayContext() { // The IMM should also persist across display contexts created from the base context. diff --git a/engine/src/flutter/shell/platform/android/test_runner/build.gradle b/engine/src/flutter/shell/platform/android/test_runner/build.gradle index 53a537f874c..609d4810f6a 100644 --- a/engine/src/flutter/shell/platform/android/test_runner/build.gradle +++ b/engine/src/flutter/shell/platform/android/test_runner/build.gradle @@ -32,10 +32,10 @@ println "AVAILABLE PROCESSORS: $availableProcessors" println "==========================================" android { - compileSdkVersion 33 + compileSdkVersion 34 defaultConfig { - minSdkVersion 16 + minSdkVersion 19 } compileOptions { diff --git a/engine/src/flutter/testing/android_background_image/android/app/build.gradle b/engine/src/flutter/testing/android_background_image/android/app/build.gradle index c7346c23e84..7a72a25fe99 100644 --- a/engine/src/flutter/testing/android_background_image/android/app/build.gradle +++ b/engine/src/flutter/testing/android_background_image/android/app/build.gradle @@ -16,16 +16,16 @@ android { // The others are irrelevant for a test application. disable 'UnpackedNativeCode','MissingApplicationIcon','GoogleAppIndexingApiWarning','GoogleAppIndexingWarning','GradleDependency','NewerVersionAvailable' } - buildToolsVersion = '33.0.0' - compileSdkVersion 33 + buildToolsVersion = '34.0.0' + compileSdkVersion 34 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } defaultConfig { applicationId 'dev.flutter.android_background_image' - minSdkVersion 16 - targetSdkVersion 33 + minSdkVersion 19 + targetSdkVersion 34 versionCode 1 versionName '1.0' } diff --git a/engine/src/flutter/testing/scenario_app/android/app/build.gradle b/engine/src/flutter/testing/scenario_app/android/app/build.gradle index 5f2a94523b9..2465157ed5f 100644 --- a/engine/src/flutter/testing/scenario_app/android/app/build.gradle +++ b/engine/src/flutter/testing/scenario_app/android/app/build.gradle @@ -18,16 +18,16 @@ android { // The others are irrelevant for a test application. disable 'UnpackedNativeCode','MissingApplicationIcon','GoogleAppIndexingApiWarning','GoogleAppIndexingWarning','GradleDependency','NewerVersionAvailable','Registered' } - buildToolsVersion = '33.0.0' - compileSdkVersion 33 + buildToolsVersion = '34.0.0' + compileSdkVersion 34 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } defaultConfig { applicationId 'dev.flutter.scenarios' - minSdkVersion 18 - targetSdkVersion 33 + minSdkVersion 19 + targetSdkVersion 34 versionCode 1 versionName '1.0' testInstrumentationRunner 'dev.flutter.TestRunner' diff --git a/engine/src/flutter/tools/android_lint/baseline.xml b/engine/src/flutter/tools/android_lint/baseline.xml index 3958739020e..b540917bd52 100644 --- a/engine/src/flutter/tools/android_lint/baseline.xml +++ b/engine/src/flutter/tools/android_lint/baseline.xml @@ -1,5 +1,5 @@ - + @@ -19,7 +19,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -30,7 +30,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -41,7 +41,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -52,7 +52,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -67,6 +67,17 @@ column="82"/> + + + + @@ -85,19 +96,8 @@ errorLine2=" ~~~~~~~~~~~~"> - - - - diff --git a/engine/src/flutter/tools/android_lint/bin/main.dart b/engine/src/flutter/tools/android_lint/bin/main.dart index 88cfd040e23..d6b6191b73e 100644 --- a/engine/src/flutter/tools/android_lint/bin/main.dart +++ b/engine/src/flutter/tools/android_lint/bin/main.dart @@ -73,7 +73,7 @@ Future runLint(ArgParser argParser, ArgResults argResults) async { - + '''); for (final FileSystemEntity entity in androidDir.listSync(recursive: true)) { @@ -95,7 +95,7 @@ Future runLint(ArgParser argParser, ArgResults argResults) async { final List lintArgs = [ path.join(androidSdkDir.path, 'cmdline-tools', 'latest', 'bin', 'lint'), '--project', projectXmlPath, - '--compile-sdk-version', '33', + '--compile-sdk-version', '34', '--showall', '--exitcode', // Set non-zero exit code on errors '-Wall', diff --git a/engine/src/flutter/tools/android_lint/project.xml b/engine/src/flutter/tools/android_lint/project.xml index c2a754adebd..f3eeafdb2b6 100644 --- a/engine/src/flutter/tools/android_lint/project.xml +++ b/engine/src/flutter/tools/android_lint/project.xml @@ -2,7 +2,7 @@ - + @@ -53,6 +53,7 @@ + @@ -84,6 +85,7 @@ + @@ -93,6 +95,7 @@ + @@ -102,7 +105,9 @@ - + + + @@ -110,11 +115,11 @@ - + @@ -141,6 +146,7 @@ + diff --git a/engine/src/flutter/tools/android_sdk/packages.txt b/engine/src/flutter/tools/android_sdk/packages.txt index b257101a496..43a2526314c 100644 --- a/engine/src/flutter/tools/android_sdk/packages.txt +++ b/engine/src/flutter/tools/android_sdk/packages.txt @@ -1,6 +1,6 @@ -platforms;android-33:platforms +platforms;android-34:platforms cmdline-tools;latest:cmdline-tools -build-tools;33.0.0:build-tools +build-tools;34.0.0:build-tools platform-tools:platform-tools tools:tools -ndk;22.1.7171670:ndk \ No newline at end of file +ndk;22.1.7171670:ndk diff --git a/engine/src/flutter/tools/cipd/android_embedding_bundle/build.gradle b/engine/src/flutter/tools/cipd/android_embedding_bundle/build.gradle index f110332990e..9b93d0a0afb 100644 --- a/engine/src/flutter/tools/cipd/android_embedding_bundle/build.gradle +++ b/engine/src/flutter/tools/cipd/android_embedding_bundle/build.gradle @@ -33,7 +33,7 @@ allprojects { apply plugin: "com.android.application" android { - compileSdkVersion 33 + compileSdkVersion 34 } configurations { diff --git a/engine/src/flutter/tools/javadoc/gen_javadoc.py b/engine/src/flutter/tools/javadoc/gen_javadoc.py index 92b49ad7711..739de78389e 100755 --- a/engine/src/flutter/tools/javadoc/gen_javadoc.py +++ b/engine/src/flutter/tools/javadoc/gen_javadoc.py @@ -58,7 +58,7 @@ def main(): classpath = [ args.android_source_root, os.path.join( - args.third_party, 'android_tools/sdk/platforms/android-33/android.jar' + args.third_party, 'android_tools/sdk/platforms/android-34/android.jar' ), os.path.join( args.third_party, 'android_embedding_dependencies', 'lib', '*'