diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 57c7199f7..4d99c2db2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -20,7 +20,7 @@ _See also: [Flutter's code of conduct]_
## Is this the right place for your sample?
In most cases, if you've written a great sample app, it should be maintained
-in your own repoistory. You can maintain your sample app in your own repo
+in your own repository. You can maintain your sample app in your own repo
(or with another source control provider) and still be as important a part of
the Flutter-verse as anything you see here.
@@ -99,7 +99,7 @@ Validate your idea against the following criteria:
1. **The sample solves a single problem or set of tightly coupled problems.**
If not, you're either writing a Demo app or an extended sample. These might
- still be appropriate for the samples repos, but need to be justified.
+ still be appropriate for the sample repos, but need to be justified.
2. **The target audience for the sample isn’t beginners.**
3. **The sample code isn’t so complex that it needs video or text explanation.**
@@ -115,10 +115,10 @@ Validate your idea against the following criteria:
6. **The topic doesn’t have crossover with any existing samples.**
If it does, ensure that it wouldn't be better to update the existing sample.
-## What are your ongoing maintenance resposibilities?
+## What are your ongoing maintenance responsibilities?
All sample code has an unbound maintenance cost. If you cannot commit to maintaining a sample
-(for the forseeable future, barring changes in life circumstances), then you should talk to the
+(for the foreseeable future, barring changes in life circumstances), then you should talk to the
[primary maintainers] of this project, particularly @ericwindmill, before submitting a PR.
Any new sample **must** have a CODEOWNER, and that owner is most likely you (the author).
diff --git a/add_to_app/fullscreen/README.md b/add_to_app/fullscreen/README.md
index 8abc792c8..0f378d5ba 100644
--- a/add_to_app/fullscreen/README.md
+++ b/add_to_app/fullscreen/README.md
@@ -5,7 +5,7 @@ Embeds a full screen instance of Flutter into an existing iOS or Android app.
## Description
These apps showcase a relatively straightforward integration of
-`flutter_module`:
+`flutter_module_fullscreen`:
* The Flutter module is built along with the app when the app is built.
* The Flutter engine is warmed up at app launch.
@@ -27,7 +27,7 @@ you're building for both iOS and Android, with both toolchains installed):
#!/bin/bash
set -e
- cd flutter_module/
+ cd flutter_module_fullscreen/
flutter pub get
# For Android builds:
diff --git a/add_to_app/fullscreen/android_fullscreen/settings.gradle b/add_to_app/fullscreen/android_fullscreen/settings.gradle
index 19816f4e8..97e95d4c1 100644
--- a/add_to_app/fullscreen/android_fullscreen/settings.gradle
+++ b/add_to_app/fullscreen/android_fullscreen/settings.gradle
@@ -3,5 +3,5 @@ rootProject.name='AndroidFullScreen'
setBinding(new Binding([gradle: this]))
evaluate(new File(
settingsDir.parentFile,
- 'flutter_module/.android/include_flutter.groovy'
+ 'flutter_module_fullscreen/.android/include_flutter.groovy'
))
\ No newline at end of file
diff --git a/add_to_app/fullscreen/flutter_module_fullscreen/README.md b/add_to_app/fullscreen/flutter_module_fullscreen/README.md
index 092c7d11a..b1513f2d5 100644
--- a/add_to_app/fullscreen/flutter_module_fullscreen/README.md
+++ b/add_to_app/fullscreen/flutter_module_fullscreen/README.md
@@ -1,4 +1,4 @@
-# flutter_module
+# flutter_module_fullscreen
An example Flutter module used in the Flutter add-to-app samples. For more
information on how to use it, see the [README.md](../README.md) parent
diff --git a/add_to_app/fullscreen/ios_fullscreen/IOSFullScreen.xcodeproj/project.pbxproj b/add_to_app/fullscreen/ios_fullscreen/IOSFullScreen.xcodeproj/project.pbxproj
index c6c8cf44a..a5eaf5f35 100644
--- a/add_to_app/fullscreen/ios_fullscreen/IOSFullScreen.xcodeproj/project.pbxproj
+++ b/add_to_app/fullscreen/ios_fullscreen/IOSFullScreen.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 51;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -175,11 +175,11 @@
buildConfigurationList = 26DF66FC233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreen" */;
buildPhases = (
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */,
- 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module Script */,
+ 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module_fullscreen Script */,
26DF66D0233136460076ACA6 /* Sources */,
26DF66D1233136460076ACA6 /* Frameworks */,
26DF66D2233136460076ACA6 /* Resources */,
- D1C2795C35803D65EBC8B371 /* [CP] Embed Pods Frameworks */,
+ B9B95ECDA31F21359E3D008B /* [CP-User] Embed Flutter Build flutter_module_fullscreen Script */,
);
buildRules = (
);
@@ -321,15 +321,15 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module Script */ = {
+ 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module_fullscreen Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- name = "[CP-User] Run Flutter Build flutter_module Script";
+ name = "[CP-User] Run Flutter Build flutter_module_fullscreen Script";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build";
+ shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module_fullscreen/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build";
};
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
@@ -353,6 +353,16 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
+ B9B95ECDA31F21359E3D008B /* [CP-User] Embed Flutter Build flutter_module_fullscreen Script */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ name = "[CP-User] Embed Flutter Build flutter_module_fullscreen Script";
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module_fullscreen/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh embed_and_thin";
+ };
C73209EF6AC199B8584ED9E2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -375,23 +385,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- D1C2795C35803D65EBC8B371 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks-${CONFIGURATION}-input-files.xcfilelist",
- );
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks-${CONFIGURATION}-output-files.xcfilelist",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -578,6 +571,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -596,6 +590,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
diff --git a/add_to_app/fullscreen/ios_fullscreen/Podfile b/add_to_app/fullscreen/ios_fullscreen/Podfile
index 4140cea7d..1daf6b963 100644
--- a/add_to_app/fullscreen/ios_fullscreen/Podfile
+++ b/add_to_app/fullscreen/ios_fullscreen/Podfile
@@ -1,7 +1,7 @@
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
-flutter_application_path = '../flutter_module'
+flutter_application_path = '../flutter_module_fullscreen'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target 'IOSFullScreen' do
diff --git a/android_splash_screen/android/app/build.gradle b/android_splash_screen/android/app/build.gradle
index 8c01625b4..958b5b065 100644
--- a/android_splash_screen/android/app/build.gradle
+++ b/android_splash_screen/android/app/build.gradle
@@ -1,3 +1,10 @@
+plugins {
+ id "com.android.application"
+ id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
+ id "dev.flutter.flutter-gradle-plugin"
+}
+
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
@@ -21,12 +28,9 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
android {
- compileSdkVersion 31
+ namespace "com.example.splash_screen_sample"
+ compileSdkVersion 34
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -35,12 +39,21 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.splash_screen_sample"
- minSdkVersion 21
- targetSdkVersion 30
+ minSdkVersion flutter.minSdkVersion
+ targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8
+ }
+
buildTypes {
release {
// TODO: Add your own signing config for the release build.
@@ -55,7 +68,6 @@ flutter {
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "androidx.core:core-splashscreen:1.0.0-alpha02"
implementation "androidx.core:core:1.5.0-alpha05"
implementation "androidx.core:core-ktx:1.6.0"
diff --git a/android_splash_screen/android/app/src/main/kotlin/com/example/splash_screen_sample/MainActivity.kt b/android_splash_screen/android/app/src/main/kotlin/com/example/splash_screen_sample/MainActivity.kt
index d3efc96d7..e7d858e69 100644
--- a/android_splash_screen/android/app/src/main/kotlin/com/example/splash_screen_sample/MainActivity.kt
+++ b/android_splash_screen/android/app/src/main/kotlin/com/example/splash_screen_sample/MainActivity.kt
@@ -203,9 +203,9 @@ class MainActivity : FlutterActivity() {
}
private companion object {
- const val SPLASHSCREEN_ALPHA_ANIMATION_DURATION = 500 as Long
- const val SPLASHSCREEN_TY_ANIMATION_DURATION = 500 as Long
- const val SPLASHSCREEN_FINAL_ANIMATION_ALPHA_ANIMATION_DURATION = 250 as Long
- const val WAIT_FOR_AVD_TO_FINISH = false
+ const val SPLASHSCREEN_ALPHA_ANIMATION_DURATION = 500L
+ const val SPLASHSCREEN_TY_ANIMATION_DURATION = 500L
+ const val SPLASHSCREEN_FINAL_ANIMATION_ALPHA_ANIMATION_DURATION = 250L
+ const val WAIT_FOR_AVD_TO_FINISH = false
}
}
diff --git a/android_splash_screen/android/build.gradle b/android_splash_screen/android/build.gradle
index c45f25cc9..d2ffbffa4 100644
--- a/android_splash_screen/android/build.gradle
+++ b/android_splash_screen/android/build.gradle
@@ -1,16 +1,3 @@
-buildscript {
- ext.kotlin_version = '1.5.31'
- repositories {
- google()
- mavenCentral()
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:4.1.0'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
allprojects {
repositories {
google()
@@ -18,12 +5,14 @@ allprojects {
}
}
-rootProject.buildDir = '../build'
+rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
- project.evaluationDependsOn(':app')
+}
+subprojects {
+ project.evaluationDependsOn(":app")
}
-task clean(type: Delete) {
+tasks.register("clean", Delete) {
delete rootProject.buildDir
}
diff --git a/android_splash_screen/android/gradle/wrapper/gradle-wrapper.properties b/android_splash_screen/android/gradle/wrapper/gradle-wrapper.properties
index bc6a58afd..7aeeb11c6 100644
--- a/android_splash_screen/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android_splash_screen/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip
diff --git a/android_splash_screen/android/settings.gradle b/android_splash_screen/android/settings.gradle
index 44e62bcf0..4f520718d 100644
--- a/android_splash_screen/android/settings.gradle
+++ b/android_splash_screen/android/settings.gradle
@@ -1,11 +1,25 @@
-include ':app'
+pluginManagement {
+ def flutterSdkPath = {
+ def properties = new Properties()
+ file("local.properties").withInputStream { properties.load(it) }
+ def flutterSdkPath = properties.getProperty("flutter.sdk")
+ assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
+ return flutterSdkPath
+ }()
-def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
-def properties = new Properties()
+ includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
-assert localPropertiesFile.exists()
-localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
-def flutterSdkPath = properties.getProperty("flutter.sdk")
-assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
-apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
+plugins {
+ id "dev.flutter.flutter-plugin-loader" version "1.0.0"
+ id "com.android.application" version "8.6.0" apply false
+ id "org.jetbrains.kotlin.android" version "2.1.0" apply false
+}
+
+include ":app"
diff --git a/compass_app/app/lib/ui/auth/login/widgets/login_screen.dart b/compass_app/app/lib/ui/auth/login/widgets/login_screen.dart
index e33196c1f..066fd00f1 100644
--- a/compass_app/app/lib/ui/auth/login/widgets/login_screen.dart
+++ b/compass_app/app/lib/ui/auth/login/widgets/login_screen.dart
@@ -43,6 +43,8 @@ class _LoginScreenState extends State {
@override
void dispose() {
+ _email.dispose();
+ _password.dispose();
widget.viewModel.login.removeListener(_onResult);
super.dispose();
}
diff --git a/dynamic_theme/android/gradle/wrapper/gradle-wrapper.properties b/dynamic_theme/android/gradle/wrapper/gradle-wrapper.properties
index e1ca574ef..efdcc4ace 100644
--- a/dynamic_theme/android/gradle/wrapper/gradle-wrapper.properties
+++ b/dynamic_theme/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
diff --git a/dynamic_theme/android/settings.gradle b/dynamic_theme/android/settings.gradle
index 1d6d19b7f..1bb3284d7 100644
--- a/dynamic_theme/android/settings.gradle
+++ b/dynamic_theme/android/settings.gradle
@@ -19,8 +19,8 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.3.0" apply false
- id "org.jetbrains.kotlin.android" version "1.7.10" apply false
+ id "com.android.application" version "8.9.1" apply false
+ id "org.jetbrains.kotlin.android" version "2.1.0" apply false
}
include ":app"