diff --git a/.gitignore b/.gitignore
index 44cadee..1985397 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,74 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
.DS_Store
-.dart_tool/
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
.packages
+.pub-cache/
.pub/
-
build/
-ios/.generated/
-ios/Flutter/Generated.xcconfig
-ios/Runner/GeneratedPluginRegistrant.*
-*.log
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Flutter.podspec
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/Flutter/flutter_export_environment.sh
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml
deleted file mode 100644
index f058607..0000000
--- a/.idea/libraries/Dart_Packages.xml
+++ /dev/null
@@ -1,276 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml
index 321b902..896efb4 100644
--- a/.idea/libraries/Dart_SDK.xml
+++ b/.idea/libraries/Dart_SDK.xml
@@ -1,25 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml
deleted file mode 100644
index b0f6971..0000000
--- a/.idea/libraries/Flutter_Plugins.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index de732b4..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index acf13e6..5b3388c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,991 +1,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
- viewportDimension
- _page
- _constraints
- SliverConstraints
- _renderObject
- SliverMultiBoxAdaptorParentData
- MySliverFillViewport
- RenderSliverMultiBoxAdaptor
- offset
- print
- curve
- _currentPixels
- reverse
- onChangeNotifier
- index_controller
- _pageController
- _buildItem
- Random
- children
- next
- loop
- itemCount
- 3
- dispose
- didUpdateWidget
- isNotEmpty
- viewportFraction
- _size
- findRenderObject
- setState
-
-
- transformer_page_view
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1535548627938
-
-
- 1535548627938
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- mock:///liberrors_patch.dart
- 39
-
-
-
- file://$PROJECT_DIR$/lib/transformer_page_view.dart
- 332
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- No facets are configured
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.8
-
-
-
-
-
-
-
-
-
-
-
- transformer_page_view
-
-
-
-
-
-
-
-
-
-
-
-
- Dart Packages
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/.metadata b/.metadata
new file mode 100644
index 0000000..12f7851
--- /dev/null
+++ b/.metadata
@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: c5a4b4029c0798f37c4a39b479d7cb75daa7b05c
+ channel: stable
+
+project_type: package
diff --git a/dev/bots/travis_install.sh b/dev/bots/travis_install.sh
deleted file mode 100755
index 68e36ff..0000000
--- a/dev/bots/travis_install.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-echo "$PWD"
-export ROOT="$PWD"
-
-mkdir ~/development
-
-cd ~/development
-wget https://storage.googleapis.com/flutter_infra/releases/beta/linux/flutter_linux_v0.6.0-beta.tar.xz
-tar xf ~/development/flutter_linux_v0.6.0-beta.tar.xz
-
-export PATH=~/development/flutter/bin:$PATH
-
-
-cd $ROOT
-flutter packages get
-
-gem install coveralls-lcov
diff --git a/dev/bots/travis_script.sh b/dev/bots/travis_script.sh
deleted file mode 100755
index 8eea42d..0000000
--- a/dev/bots/travis_script.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-set -ex
-
-export PATH=~/development/flutter/bin:$PATH
-export ROOT="$PWD"
-
-if [[ "$SHARD" == "dartfmt" ]]; then
- echo 'Formating code'
- cd $ROOT
- flutter format . || exit $?
-else
- # tests shard
- cd $ROOT
-
- flutter test --coverage test/* || exit $?
-
-fi
diff --git a/example/.gitignore b/example/.gitignore
index dee655c..0fa6b67 100644
--- a/example/.gitignore
+++ b/example/.gitignore
@@ -1,9 +1,46 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
.DS_Store
-.dart_tool/
+.atom/
+.buildlog/
+.history
+.svn/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+**/ios/Flutter/.last_build_id
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
.packages
+.pub-cache/
.pub/
+/build/
-build/
+# Web related
+lib/generated_plugin_registrant.dart
-.flutter-plugins
+# Symbolication related
+app.*.symbols
+
+# Obfuscation related
+app.*.map.json
+
+# Android Studio will place build artifacts here
+/android/app/debug
+/android/app/profile
+/android/app/release
diff --git a/example/.idea/libraries/Dart_Packages.xml b/example/.idea/libraries/Dart_Packages.xml
deleted file mode 100644
index c2cf47f..0000000
--- a/example/.idea/libraries/Dart_Packages.xml
+++ /dev/null
@@ -1,452 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/example/.idea/libraries/Dart_SDK.xml b/example/.idea/libraries/Dart_SDK.xml
index 1e1596f..896efb4 100644
--- a/example/.idea/libraries/Dart_SDK.xml
+++ b/example/.idea/libraries/Dart_SDK.xml
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/.idea/libraries/Flutter_Plugins.xml b/example/.idea/libraries/Flutter_Plugins.xml
deleted file mode 100644
index b0f6971..0000000
--- a/example/.idea/libraries/Flutter_Plugins.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/example/.idea/libraries/Flutter_for_Android.xml b/example/.idea/libraries/Flutter_for_Android.xml
deleted file mode 100644
index 3c07393..0000000
--- a/example/.idea/libraries/Flutter_for_Android.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/example/.idea/misc.xml b/example/.idea/misc.xml
deleted file mode 100644
index de732b4..0000000
--- a/example/.idea/misc.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/example/.idea/modules.xml b/example/.idea/modules.xml
index bd4a393..f778b7a 100644
--- a/example/.idea/modules.xml
+++ b/example/.idea/modules.xml
@@ -3,7 +3,7 @@
-
+
diff --git a/example/.idea/workspace.xml b/example/.idea/workspace.xml
index 3b8a10b..5b3388c 100644
--- a/example/.idea/workspace.xml
+++ b/example/.idea/workspace.xml
@@ -1,448 +1,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1535551978624
-
-
- 1535551978624
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/example/.metadata b/example/.metadata
index 029388a..80206eb 100644
--- a/example/.metadata
+++ b/example/.metadata
@@ -4,5 +4,7 @@
# This file should be version controlled and should not be manually edited.
version:
- revision: f8a2fc7c287ea0f25bb893d56caa45302d22eed6
- channel: dev
+ revision: c5a4b4029c0798f37c4a39b479d7cb75daa7b05c
+ channel: stable
+
+project_type: app
diff --git a/example/README.md b/example/README.md
index b68872a..a135626 100644
--- a/example/README.md
+++ b/example/README.md
@@ -1,8 +1,16 @@
# example
-A new Flutter application.
+A new Flutter project.
## Getting Started
-For help getting started with Flutter, view our online
-[documentation](https://flutter.io/).
+This project is a starting point for a Flutter application.
+
+A few resources to get you started if this is your first Flutter project:
+
+- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
+- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
+
+For help getting started with Flutter, view our
+[online documentation](https://flutter.dev/docs), which offers tutorials,
+samples, guidance on mobile development, and a full API reference.
diff --git a/example/android/.gitignore b/example/android/.gitignore
index 65b7315..0a741cb 100644
--- a/example/android/.gitignore
+++ b/example/android/.gitignore
@@ -1,10 +1,11 @@
-*.iml
-*.class
-.gradle
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
/local.properties
-/.idea/workspace.xml
-/.idea/libraries
-.DS_Store
-/build
-/captures
GeneratedPluginRegistrant.java
+
+# Remember to never publicly share your keystore.
+# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+key.properties
diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle
index 10e1482..6ca2344 100644
--- a/example/android/app/build.gradle
+++ b/example/android/app/build.gradle
@@ -22,23 +22,23 @@ if (flutterVersionName == null) {
}
apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion 27
+ compileSdkVersion 30
- lintOptions {
- disable 'InvalidPackage'
+ sourceSets {
+ main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
- applicationId "com.yourcompany.example"
+ applicationId "com.example.example"
minSdkVersion 16
- targetSdkVersion 27
+ targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
@@ -55,7 +55,5 @@ flutter {
}
dependencies {
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..c208884
--- /dev/null
+++ b/example/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml
index 6dc50e8..34dd77e 100644
--- a/example/android/app/src/main/AndroidManifest.xml
+++ b/example/android/app/src/main/AndroidManifest.xml
@@ -1,39 +1,41 @@
-
-
-
-
-
-
+
-
+
+ android:name="io.flutter.embedding.android.NormalTheme"
+ android:resource="@style/NormalTheme"
+ />
+
+
+
+
diff --git a/example/android/app/src/main/java/com/yourcompany/example/MainActivity.java b/example/android/app/src/main/java/com/yourcompany/example/MainActivity.java
deleted file mode 100644
index 95c17bd..0000000
--- a/example/android/app/src/main/java/com/yourcompany/example/MainActivity.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.yourcompany.example;
-
-import android.os.Bundle;
-import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
-
-public class MainActivity extends FlutterActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- GeneratedPluginRegistrant.registerWith(this);
- }
-}
diff --git a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt
new file mode 100644
index 0000000..e793a00
--- /dev/null
+++ b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt
@@ -0,0 +1,6 @@
+package com.example.example
+
+import io.flutter.embedding.android.FlutterActivity
+
+class MainActivity: FlutterActivity() {
+}
diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml
new file mode 100644
index 0000000..f74085f
--- /dev/null
+++ b/example/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml
new file mode 100644
index 0000000..449a9f9
--- /dev/null
+++ b/example/android/app/src/main/res/values-night/styles.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml
index 00fa441..d74aa35 100644
--- a/example/android/app/src/main/res/values/styles.xml
+++ b/example/android/app/src/main/res/values/styles.xml
@@ -1,8 +1,18 @@
-
+
+
diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..c208884
--- /dev/null
+++ b/example/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/example/android/build.gradle b/example/android/build.gradle
index d4225c7..c505a86 100644
--- a/example/android/build.gradle
+++ b/example/android/build.gradle
@@ -1,11 +1,13 @@
buildscript {
+ ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
+ classpath 'com.android.tools.build:gradle:4.1.0'
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
diff --git a/example/android/gradle.properties b/example/android/gradle.properties
index 8bd86f6..94adc3a 100644
--- a/example/android/gradle.properties
+++ b/example/android/gradle.properties
@@ -1 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties
index 9372d0f..bc6a58a 100644
--- a/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/example/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-4.4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
diff --git a/example/android/settings.gradle b/example/android/settings.gradle
index 5a2f14f..44e62bc 100644
--- a/example/android/settings.gradle
+++ b/example/android/settings.gradle
@@ -1,15 +1,11 @@
include ':app'
-def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
+def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
+def properties = new Properties()
-def plugins = new Properties()
-def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
-if (pluginsFile.exists()) {
- pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
-}
+assert localPropertiesFile.exists()
+localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
-plugins.each { name, path ->
- def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
- include ":$name"
- project(":$name").projectDir = pluginDirectory
-}
+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"
diff --git a/example/example.iml b/example/example.iml
index ba2ce7a..e5c8371 100644
--- a/example/example.iml
+++ b/example/example.iml
@@ -9,8 +9,6 @@
-
-
diff --git a/example/example_android.iml b/example/example_android.iml
deleted file mode 100644
index b050030..0000000
--- a/example/example_android.iml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/example/ios/.gitignore b/example/ios/.gitignore
index 79cc4da..e96ef60 100644
--- a/example/ios/.gitignore
+++ b/example/ios/.gitignore
@@ -1,45 +1,32 @@
-.idea/
-.vagrant/
-.sconsign.dblite
-.svn/
-
-.DS_Store
-*.swp
-profile
-
-DerivedData/
-build/
-GeneratedPluginRegistrant.h
-GeneratedPluginRegistrant.m
-
-.generated/
-
-*.pbxuser
*.mode1v3
*.mode2v3
+*.moved-aside
+*.pbxuser
*.perspectivev3
-
-!default.pbxuser
+**/*sync/
+.sconsign.dblite
+.tags*
+**/.vagrant/
+**/DerivedData/
+Icon?
+**/Pods/
+**/.symlinks/
+profile
+xcuserdata
+**/.generated/
+Flutter/App.framework
+Flutter/Flutter.framework
+Flutter/Flutter.podspec
+Flutter/Generated.xcconfig
+Flutter/app.flx
+Flutter/app.zip
+Flutter/flutter_assets/
+Flutter/flutter_export_environment.sh
+ServiceDefinitions.json
+Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
+!default.pbxuser
!default.perspectivev3
-
-xcuserdata
-
-*.moved-aside
-
-*.pyc
-*sync/
-Icon?
-.tags*
-
-/Flutter/app.flx
-/Flutter/app.zip
-/Flutter/flutter_assets/
-/Flutter/App.framework
-/Flutter/Flutter.framework
-/Flutter/Generated.xcconfig
-/ServiceDefinitions.json
-
-Pods/
-.symlinks/
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index b5c6fe1..c6759a6 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -8,15 +8,8 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
- 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */ = {isa = PBXBuildFile; fileRef = 2D5378251FAA1A9400D5DBA9 /* flutter_assets */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
- 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
- 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
- 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
- 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; };
- 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
- 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
+ 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@@ -29,8 +22,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
- 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -40,17 +31,13 @@
/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
- 2D5378251FAA1A9400D5DBA9 /* flutter_assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = flutter_assets; path = Flutter/flutter_assets; sourceTree = SOURCE_ROOT; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; };
+ 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
+ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
- 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
@@ -62,8 +49,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
- 3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -73,10 +58,7 @@
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
- 2D5378251FAA1A9400D5DBA9 /* flutter_assets */,
- 3B80C3931E831B6300D905FE /* App.framework */,
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
- 9740EEBA1CF902C7004384FC /* Flutter.framework */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
@@ -90,7 +72,6 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
- CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
);
sourceTree = "";
};
@@ -105,27 +86,18 @@
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
- 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */,
- 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */,
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
97C147021CF9000F007C117D /* Info.plist */,
- 97C146F11CF9000F007C117D /* Supporting Files */,
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+ 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
);
path = Runner;
sourceTree = "";
};
- 97C146F11CF9000F007C117D /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- 97C146F21CF9000F007C117D /* main.m */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -155,17 +127,18 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0910;
- ORGANIZATIONNAME = "The Chromium Authors";
+ LastUpgradeCheck = 1020;
+ ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
+ LastSwiftMigration = 1100;
};
};
};
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
+ compatibilityVersion = "Xcode 9.3";
+ developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -188,9 +161,7 @@
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
- 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
- 2D5378261FAA1A9400D5DBA9 /* flutter_assets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -210,7 +181,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
@@ -233,8 +204,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */,
- 97C146F31CF9000F007C117D /* main.m in Sources */,
+ 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -261,9 +231,76 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
+ 249021D3217E4FDB00AE95B9 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Profile;
+ };
+ 249021D4217E4FDB00AE95B9 /* Profile */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
+ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+ ENABLE_BITCODE = NO;
+ INFOPLIST_FILE = Runner/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ VERSIONING_SYSTEM = "apple-generic";
+ };
+ name = Profile;
+ };
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -275,12 +312,14 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -307,7 +346,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -317,7 +356,6 @@
};
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@@ -329,12 +367,14 @@
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -355,9 +395,11 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -368,20 +410,16 @@
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.example;
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -391,20 +429,15 @@
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
- FRAMEWORK_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
- "$(inherited)",
- "$(PROJECT_DIR)/Flutter",
- );
- PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.example;
+ PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
@@ -417,6 +450,7 @@
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
+ 249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -426,6 +460,7 @@
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
+ 249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
index 1d526a1..919434a 100644
--- a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -2,6 +2,6 @@
+ location = "self:">
diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000..f9b0d7c
--- /dev/null
+++ b/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ PreviewsEnabled
+
+
+
diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 1263ac8..a28140c 100644
--- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
@@ -46,7 +45,6 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
- language = ""
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
@@ -67,7 +65,7 @@
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
index 949b678..f9b0d7c 100644
--- a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
+++ b/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -2,7 +2,7 @@
- BuildSystemType
- Original
+ PreviewsEnabled
+
diff --git a/example/ios/Runner/AppDelegate.h b/example/ios/Runner/AppDelegate.h
deleted file mode 100644
index 36e21bb..0000000
--- a/example/ios/Runner/AppDelegate.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#import
-#import
-
-@interface AppDelegate : FlutterAppDelegate
-
-@end
diff --git a/example/ios/Runner/AppDelegate.m b/example/ios/Runner/AppDelegate.m
deleted file mode 100644
index 59a72e9..0000000
--- a/example/ios/Runner/AppDelegate.m
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "AppDelegate.h"
-#include "GeneratedPluginRegistrant.h"
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application
- didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [GeneratedPluginRegistrant registerWithRegistry:self];
- // Override point for customization after application launch.
- return [super application:application didFinishLaunchingWithOptions:launchOptions];
-}
-
-@end
diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift
new file mode 100644
index 0000000..70693e4
--- /dev/null
+++ b/example/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+ override func application(
+ _ application: UIApplication,
+ didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+ ) -> Bool {
+ GeneratedPluginRegistrant.register(with: self)
+ return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+ }
+}
diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
index 3d43d11..dc9ada4 100644
Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ
diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist
index 0513117..a060db6 100644
--- a/example/ios/Runner/Info.plist
+++ b/example/ios/Runner/Info.plist
@@ -3,7 +3,7 @@
CFBundleDevelopmentRegion
- en
+ $(DEVELOPMENT_LANGUAGE)
CFBundleExecutable
$(EXECUTABLE_NAME)
CFBundleIdentifier
diff --git a/example/ios/Runner/Runner-Bridging-Header.h b/example/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 0000000..308a2a5
--- /dev/null
+++ b/example/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
diff --git a/example/ios/Runner/main.m b/example/ios/Runner/main.m
deleted file mode 100644
index dff6597..0000000
--- a/example/ios/Runner/main.m
+++ /dev/null
@@ -1,9 +0,0 @@
-#import
-#import
-#import "AppDelegate.h"
-
-int main(int argc, char* argv[]) {
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/example/lib/AccordionTransformer.dart b/example/lib/AccordionTransformer.dart
index 46ed19b..874c0d5 100644
--- a/example/lib/AccordionTransformer.dart
+++ b/example/lib/AccordionTransformer.dart
@@ -31,9 +31,9 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, this.title}) : super(key: key);
- final String title;
+ final String? title;
@override
_MyHomePageState createState() => new _MyHomePageState();
diff --git a/example/lib/CachePageView.dart b/example/lib/CachePageView.dart
index a6fbf2e..ce8e285 100644
--- a/example/lib/CachePageView.dart
+++ b/example/lib/CachePageView.dart
@@ -1,16 +1,15 @@
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
-import 'package:meta/meta.dart';
import 'dart:math';
class MyViewPort extends RenderSliverFillViewport {
int itemCount;
- MyViewPort(
- {@required RenderSliverBoxChildManager childManager,
- double viewportFraction = 1.0,
- this.itemCount})
- : super(childManager: childManager, viewportFraction: viewportFraction);
+ MyViewPort({
+ required RenderSliverBoxChildManager childManager,
+ double viewportFraction = 1.0,
+ required this.itemCount,
+ }) : super(childManager: childManager, viewportFraction: viewportFraction);
@override
int getMaxChildIndexForScrollOffset(double scrollOffset, double itemExtent) {
@@ -35,13 +34,12 @@ class MyViewPort extends RenderSliverFillViewport {
class MySliverFillViewport extends SliverMultiBoxAdaptorWidget {
/// Creates a sliver whose box children that each fill the viewport.
//
- const MySliverFillViewport(
- {Key key,
- @required SliverChildDelegate delegate,
- this.viewportFraction = 1.0,
- this.itemCount})
- : assert(viewportFraction != null),
- assert(viewportFraction > 0.0),
+ const MySliverFillViewport({
+ Key? key,
+ required SliverChildDelegate delegate,
+ this.viewportFraction = 1.0,
+ required this.itemCount,
+ }) : assert(viewportFraction > 0.0),
super(key: key, delegate: delegate);
/// The fraction of the viewport that each child should fill in the main axis.
@@ -55,7 +53,9 @@ class MySliverFillViewport extends SliverMultiBoxAdaptorWidget {
@override
RenderSliverFillViewport createRenderObject(BuildContext context) {
- final SliverMultiBoxAdaptorElement element = context;
+ final SliverMultiBoxAdaptorElement element = SliverMultiBoxAdaptorElement(
+ context.widget as SliverMultiBoxAdaptorWidget);
+
return new MyViewPort(
childManager: element,
itemCount: itemCount,
@@ -78,11 +78,13 @@ const PageScrollPhysics _kPagePhysics = PageScrollPhysics();
class Ext extends PageView {}
+// ignore: must_be_immutable
class MyPageView extends StatelessWidget {
final SliverChildListDelegate childrenDelegate;
- MyPageView({List children})
- : childrenDelegate = new SliverChildListDelegate(children);
+ MyPageView({
+ required List children,
+ }) : childrenDelegate = new SliverChildListDelegate(children);
PageController controller = new PageController();
diff --git a/example/lib/DeepthPageTransformer.dart b/example/lib/DeepthPageTransformer.dart
index 96c2fc0..4c1751e 100644
--- a/example/lib/DeepthPageTransformer.dart
+++ b/example/lib/DeepthPageTransformer.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/FixlistTest.dart b/example/lib/FixlistTest.dart
index 67b6e75..90c8b39 100644
--- a/example/lib/FixlistTest.dart
+++ b/example/lib/FixlistTest.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@@ -40,7 +40,7 @@ class MyHomePage extends StatefulWidget {
}
class _MyHomePageState extends State {
- IndexController _controller;
+ late IndexController _controller;
List _types = [
"AccordionTransformer",
"ThreeDTransformer",
@@ -50,8 +50,8 @@ class _MyHomePageState extends State {
"DeepthPageTransformer"
];
- String _type;
- FixedExtentScrollController controller;
+ late String _type;
+ late FixedExtentScrollController controller;
double _viewportFraction = 1.0;
@@ -92,27 +92,36 @@ class _MyHomePageState extends State {
children: [
new Row(
children: [
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
_controller.previous();
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Preious"),
),
new SizedBox(
width: 8.0,
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
_controller.next();
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Next"),
),
new SizedBox(
width: 8.0,
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
showModalBottomSheet(
context: context,
@@ -135,7 +144,7 @@ class _MyHomePageState extends State {
children: _types.map((t) => new Text(t)).toList());
});
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Change Animation"),
),
],
diff --git a/example/lib/ScaleAndFadeTransformer.dart b/example/lib/ScaleAndFadeTransformer.dart
index 80d9a4a..15e8455 100644
--- a/example/lib/ScaleAndFadeTransformer.dart
+++ b/example/lib/ScaleAndFadeTransformer.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/ThreeDTransformer.dart b/example/lib/ThreeDTransformer.dart
index fb592d8..f5e6a52 100644
--- a/example/lib/ThreeDTransformer.dart
+++ b/example/lib/ThreeDTransformer.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/ZoomInPageTransformer.dart b/example/lib/ZoomInPageTransformer.dart
index 80321eb..d8cb3b4 100644
--- a/example/lib/ZoomInPageTransformer.dart
+++ b/example/lib/ZoomInPageTransformer.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/ZoomOutPageTransformer.dart b/example/lib/ZoomOutPageTransformer.dart
index 3c67b10..325a5b5 100644
--- a/example/lib/ZoomOutPageTransformer.dart
+++ b/example/lib/ZoomOutPageTransformer.dart
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/images.dart b/example/lib/images.dart
index 78e7151..b1804a3 100644
--- a/example/lib/images.dart
+++ b/example/lib/images.dart
@@ -24,7 +24,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/main.dart b/example/lib/main.dart
index 7188b55..a19f911 100644
--- a/example/lib/main.dart
+++ b/example/lib/main.dart
@@ -1,3 +1,218 @@
+// import 'package:flutter/material.dart';
+
+// import 'package:transformer_page_view/transformer_page_view.dart';
+
+// import 'package:flutter/cupertino.dart';
+
+// void main() => runApp(new MyApp());
+
+// class MyApp extends StatelessWidget {
+// // This widget is the root of your application.
+// @override
+// Widget build(BuildContext context) {
+// return new MaterialApp(
+// title: 'Flutter Demo',
+// theme: new ThemeData(
+// // This is the theme of your application.
+// //
+// // Try running your application with "flutter run". You'll see the
+// // application has a blue toolbar. Then, without quitting the app, try
+// // changing the primarySwatch below to Colors.green and then invoke
+// // "hot reload" (press "r" in the console where you ran "flutter run",
+// // or press Run > Flutter Hot Reload in IntelliJ). Notice that the
+// // counter didn't reset back to zero; the application is not restarted.
+// primarySwatch: Colors.blue,
+// ),
+// home: new MyHomePage(title: 'Flutter Demo Home Page'),
+// );
+// }
+// }
+
+// class MyHomePage extends StatefulWidget {
+// MyHomePage({
+// Key? key,
+// required this.title,
+// }) : super(key: key);
+
+// // This widget is the home page of your application. It is stateful, meaning
+// // that it has a State object (defined below) that contains fields that affect
+// // how it looks.
+
+// // This class is the configuration for the state. It holds the values (in this
+// // case the title) provided by the parent (in this case the App widget) and
+// // used by the build method of the State. Fields in a Widget subclass are
+// // always marked "final".
+
+// final String title;
+
+// @override
+// _MyHomePageState createState() => new _MyHomePageState();
+// }
+
+// class RadioGroup extends StatefulWidget {
+// final List titles;
+
+// final ValueChanged onIndexChanged;
+
+// const RadioGroup({
+// Key? key,
+// required this.titles,
+// required this.onIndexChanged,
+// }) : super(key: key);
+
+// @override
+// State createState() {
+// return new _RadioGroupState();
+// }
+// }
+
+// class _RadioGroupState extends State {
+// int _index = 1;
+
+// @override
+// Widget build(BuildContext context) {
+// List list = [];
+// for (int i = 0; i < widget.titles.length; ++i) {
+// list.add(((String title, int index) {
+// return new Row(
+// mainAxisSize: MainAxisSize.min,
+// children: [
+// new Radio(
+// value: index,
+// groupValue: _index,
+// onChanged: (int? index) {
+// setState(() {
+// _index = index!;
+// widget.onIndexChanged(_index);
+// });
+// }),
+// new Text(title)
+// ],
+// );
+// })(widget.titles[i], i));
+// }
+
+// return new Wrap(
+// children: list,
+// );
+// }
+// }
+
+// class _MyHomePageState extends State {
+// int _index = 1;
+
+// double size = 20.0;
+// double activeSize = 30.0;
+
+// late PageController controller;
+
+// PageIndicatorLayout layout = PageIndicatorLayout.SLIDE;
+
+// List layouts = PageIndicatorLayout.values;
+
+// bool loop = false;
+
+// @override
+// void initState() {
+// controller = new PageController();
+// super.initState();
+// }
+
+// @override
+// void didUpdateWidget(MyHomePage oldWidget) {
+// super.didUpdateWidget(oldWidget);
+// }
+
+// @override
+// Widget build(BuildContext context) {
+// var children = [
+// new Container(
+// color: Colors.red,
+// ),
+// new Container(
+// color: Colors.green,
+// ),
+// new Container(
+// color: Colors.blueAccent,
+// ),
+// new Container(
+// color: Colors.grey,
+// )
+// ];
+// return new Scaffold(
+// appBar: new AppBar(
+// title: new Text(widget.title),
+// ),
+// body: new Column(
+// children: [
+// new Row(
+// children: [
+// new Checkbox(
+// value: loop,
+// onChanged: (bool? value) {
+// setState(() {
+// if (value!) {
+// controller = new TransformerPageController(
+// itemCount: 4, loop: true);
+// } else {
+// controller = new PageController(
+// initialPage: 0,
+// );
+// }
+// loop = value;
+// });
+// }),
+// new Text("loop"),
+// ],
+// ),
+// new RadioGroup(
+// titles: layouts.map((s) {
+// var str = s.toString();
+// return str.substring(str.indexOf(".") + 1);
+// }).toList(),
+// onIndexChanged: (int index) {
+// setState(() {
+// _index = index;
+// layout = layouts[index];
+// });
+// },
+// ),
+// new Expanded(
+// child: new Stack(
+// children: [
+// loop
+// ? new TransformerPageView.children(
+// children: children,
+// pageController:
+// controller as TransformerPageController?,
+// )
+// : new PageView(
+// controller: controller,
+// children: children,
+// ),
+// new Align(
+// alignment: Alignment.bottomCenter,
+// child: new Padding(
+// padding: new EdgeInsets.only(bottom: 20.0),
+// child: new PageIndicator(
+// layout: layout,
+// size: size,
+// activeSize: activeSize,
+// controller: controller,
+// space: 5.0,
+// count: 4,
+// ),
+// ),
+// )
+// ],
+// ))
+// ],
+// ));
+// }
+// }
+
+//-----------------------------------------------------------------------------------
+
import 'package:example/buildin_transformers.dart';
import 'package:example/images.dart';
import 'package:example/screens/ProductListView.dart';
@@ -35,7 +250,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@@ -44,7 +259,7 @@ class MyHomePage extends StatefulWidget {
}
class _MyHomePageState extends State {
- IndexController _controller;
+ late IndexController _controller;
List _types = [
"AccordionTransformer",
"ThreeDTransformer",
@@ -54,8 +269,8 @@ class _MyHomePageState extends State {
"DeepthPageTransformer"
];
- String _type;
- FixedExtentScrollController controller;
+ late String _type;
+ late FixedExtentScrollController controller;
int _index = 0;
double _viewportFraction = 1.0;
@@ -106,14 +321,20 @@ class _MyHomePageState extends State {
children: [
new Wrap(
children: [
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
_controller.move(new Math.Random().nextInt(5));
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Random"),
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
Navigator.of(context)
.push(new MaterialPageRoute(builder: (b) {
@@ -125,10 +346,13 @@ class _MyHomePageState extends State {
);
}));
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Image"),
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
Navigator.of(context)
.push(new MaterialPageRoute(builder: (b) {
@@ -139,44 +363,56 @@ class _MyHomePageState extends State {
body: new Welcome(0));
}));
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Welcome"),
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
Navigator.of(context)
.push(new MaterialPageRoute(builder: (b) {
return new Zero();
}));
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Zero"),
),
],
),
new Row(
children: [
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
_controller.previous();
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Preious"),
),
new SizedBox(
width: 8.0,
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
_controller.next();
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Next"),
),
new SizedBox(
width: 8.0,
),
- new RaisedButton(
+ new ElevatedButton(
+ style: ButtonStyle(
+ backgroundColor: MaterialStateProperty.all(Colors.blue),
+ ),
onPressed: () {
showModalBottomSheet(
context: context,
@@ -199,7 +435,7 @@ class _MyHomePageState extends State {
children: _types.map((t) => new Text(t)).toList());
});
},
- color: Colors.blue,
+ //color: Colors.blue,
child: new Text("Animation"),
),
],
diff --git a/example/lib/screens/ProductDetailView.dart b/example/lib/screens/ProductDetailView.dart
index 120718c..79cdf62 100644
--- a/example/lib/screens/ProductDetailView.dart
+++ b/example/lib/screens/ProductDetailView.dart
@@ -1,12 +1,8 @@
-import 'package:example/buildin_transformers.dart';
import 'package:flutter/material.dart';
-import 'package:transformer_page_view/transformer_page_view.dart';
-
class ProductDetailView extends StatelessWidget {
@override
Widget build(BuildContext context) {
- // TODO: implement build
return new Scaffold(
appBar: new AppBar(),
body: new Center(
diff --git a/example/lib/welcome.dart b/example/lib/welcome.dart
index 1021b5b..3f524d5 100644
--- a/example/lib/welcome.dart
+++ b/example/lib/welcome.dart
@@ -24,7 +24,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/lib/welcome_back.dart b/example/lib/welcome_back.dart
index 1021b5b..3f524d5 100644
--- a/example/lib/welcome_back.dart
+++ b/example/lib/welcome_back.dart
@@ -24,7 +24,7 @@ class MyApp extends StatelessWidget {
}
class MyHomePage extends StatefulWidget {
- MyHomePage({Key key, this.title}) : super(key: key);
+ MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
diff --git a/example/pubspec.lock b/example/pubspec.lock
index c6f118f..3ff4361 100644
--- a/example/pubspec.lock
+++ b/example/pubspec.lock
@@ -1,41 +1,62 @@
# Generated by pub
-# See https://www.dartlang.org/tools/pub/glossary#lockfile
+# See https://dart.dev/tools/pub/glossary#lockfile
packages:
async:
dependency: transitive
description:
name: async
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.8"
+ version: "2.5.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.4"
+ version: "2.1.0"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.2"
+ version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.14.11"
+ version: "1.15.0"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.2"
+ version: "1.0.2"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
flutter:
dependency: "direct main"
description: flutter
@@ -50,37 +71,23 @@ packages:
dependency: transitive
description:
name: matcher
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.3+1"
+ version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.6"
+ version: "1.3.0"
path:
dependency: transitive
description:
name: path
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.2"
- pedantic:
- dependency: transitive
- description:
- name: pedantic
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "1.4.0"
- quiver:
- dependency: transitive
- description:
- name: quiver
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "2.0.1"
+ version: "1.8.0"
sky_engine:
dependency: transitive
description: flutter
@@ -90,64 +97,65 @@ packages:
dependency: transitive
description:
name: source_span
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.5.4"
+ version: "1.8.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.9.3"
+ version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.8"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.4"
+ version: "1.1.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.2"
+ version: "0.2.19"
transformer_page_view:
dependency: "direct dev"
description:
path: ".."
relative: true
source: path
- version: "0.1.6"
+ version: "0.2.0"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.6"
+ version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.8"
+ version: "2.1.0"
sdks:
- dart: ">=2.1.0 <3.0.0"
+ dart: ">=2.12.0 <3.0.0"
+ flutter: ">=1.17.0"
diff --git a/example/pubspec.yaml b/example/pubspec.yaml
index 9e4d5af..ee2a06a 100644
--- a/example/pubspec.yaml
+++ b/example/pubspec.yaml
@@ -1,24 +1,33 @@
name: example
-description: A new Flutter application.
+description: A new Flutter project.
+
+# The following line prevents the package from being accidentally published to
+# pub.dev using `pub publish`. This is preferred for private packages.
+publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
-# Read more about versioning at semver.org.
-version: 1.0.0+1
+# In Android, build-name is used as versionName while build-number used as versionCode.
+# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
+# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
+# Read more about iOS versioning at
+# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
+version: 2.0.0+1
environment:
- sdk: ">=2.0.0-dev.50.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
+
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
- cupertino_icons: ^0.1.2
+ cupertino_icons: ^1.0.2
dev_dependencies:
flutter_test:
@@ -27,9 +36,8 @@ dev_dependencies:
transformer_page_view:
path: ../
-
# For information on the generic Dart part of this file, see the
-# following page: https://www.dartlang.org/tools/pub/pubspec
+# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
@@ -54,10 +62,10 @@ flutter:
- assets/edit.png
# An image asset can refer to one or more resolution-specific "variants", see
- # https://flutter.io/assets-and-images/#resolution-aware.
+ # https://flutter.dev/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
- # https://flutter.io/assets-and-images/#from-packages
+ # https://flutter.dev/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
@@ -77,4 +85,4 @@ flutter:
# weight: 700
#
# For details regarding fonts from package dependencies,
- # see https://flutter.io/custom-fonts/#from-packages
+ # see https://flutter.dev/custom-fonts/#from-packages
diff --git a/example/web/favicon.png b/example/web/favicon.png
new file mode 100644
index 0000000..8aaa46a
Binary files /dev/null and b/example/web/favicon.png differ
diff --git a/example/web/icons/Icon-192.png b/example/web/icons/Icon-192.png
new file mode 100644
index 0000000..b749bfe
Binary files /dev/null and b/example/web/icons/Icon-192.png differ
diff --git a/example/web/icons/Icon-512.png b/example/web/icons/Icon-512.png
new file mode 100644
index 0000000..88cfd48
Binary files /dev/null and b/example/web/icons/Icon-512.png differ
diff --git a/example/web/index.html b/example/web/index.html
new file mode 100644
index 0000000..1460b5e
--- /dev/null
+++ b/example/web/index.html
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ example
+
+
+
+
+
+
+
+
diff --git a/example/web/manifest.json b/example/web/manifest.json
new file mode 100644
index 0000000..8c01291
--- /dev/null
+++ b/example/web/manifest.json
@@ -0,0 +1,23 @@
+{
+ "name": "example",
+ "short_name": "example",
+ "start_url": ".",
+ "display": "standalone",
+ "background_color": "#0175C2",
+ "theme_color": "#0175C2",
+ "description": "A new Flutter project.",
+ "orientation": "portrait-primary",
+ "prefer_related_applications": false,
+ "icons": [
+ {
+ "src": "icons/Icon-192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "icons/Icon-512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ]
+}
diff --git a/lib/index_controller.dart b/lib/index_controller.dart
index 461278f..6ea70c6 100644
--- a/lib/index_controller.dart
+++ b/lib/index_controller.dart
@@ -8,14 +8,14 @@ class IndexController extends ChangeNotifier {
static const int PREVIOUS = -1;
static const int MOVE = 0;
- Completer _completer;
+ late Completer _completer;
- int index;
- bool animation;
- int event;
+ late int index;
+ late bool animation;
+ late int event;
Future move(int index, {bool animation: true}) {
- this.animation = animation ?? true;
+ this.animation = animation;
this.index = index;
this.event = MOVE;
_completer = new Completer();
@@ -25,7 +25,7 @@ class IndexController extends ChangeNotifier {
Future next({bool animation: true}) {
this.event = NEXT;
- this.animation = animation ?? true;
+ this.animation = animation;
_completer = new Completer();
notifyListeners();
return _completer.future;
@@ -33,7 +33,7 @@ class IndexController extends ChangeNotifier {
Future previous({bool animation: true}) {
this.event = PREVIOUS;
- this.animation = animation ?? true;
+ this.animation = animation;
_completer = new Completer();
notifyListeners();
return _completer.future;
diff --git a/lib/parallax.dart b/lib/parallax.dart
index 6594945..ec31686 100644
--- a/lib/parallax.dart
+++ b/lib/parallax.dart
@@ -88,9 +88,9 @@ class ParallaxColor extends StatefulWidget {
final TransformInfo info;
ParallaxColor({
- @required this.colors,
- @required this.info,
- @required this.child,
+ required this.colors,
+ required this.info,
+ required this.child,
});
@override
@@ -106,12 +106,12 @@ class ParallaxContainer extends StatelessWidget {
final double opacityFactor;
ParallaxContainer(
- {@required this.child,
- @required this.position,
+ {required this.child,
+ required this.position,
this.translationFactor: 100.0,
- this.opacityFactor: 1.0})
- : assert(position != null),
- assert(translationFactor != null);
+ this.opacityFactor: 1.0});
+ // : assert(position != null),
+ // assert(translationFactor != null);
@override
Widget build(BuildContext context) {
@@ -129,9 +129,11 @@ class ParallaxImage extends StatelessWidget {
final Image image;
final double imageFactor;
- ParallaxImage.asset(String name, {double position, this.imageFactor: 0.3})
- : assert(imageFactor != null),
- image = Image.asset(name,
+ ParallaxImage.asset(
+ String name, {
+ required double position,
+ this.imageFactor: 0.3,
+ }) : image = Image.asset(name,
fit: BoxFit.cover,
alignment: FractionalOffset(
0.5 + position * imageFactor,
diff --git a/lib/transformer_page_view.dart b/lib/transformer_page_view.dart
index f4bc33f..a21cf94 100644
--- a/lib/transformer_page_view.dart
+++ b/lib/transformer_page_view.dart
@@ -1,5 +1,6 @@
library transformer_page_view;
+import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:transformer_page_view/index_controller.dart';
export 'package:transformer_page_view/index_controller.dart';
@@ -58,17 +59,18 @@ class TransformInfo {
/// Copy from [TransformerPageView.scrollDirection]
final Axis scrollDirection;
- TransformInfo(
- {this.index,
- this.position,
- this.width,
- this.height,
- this.activeIndex,
- this.fromIndex,
- this.forward,
- this.done,
- this.viewportFraction,
- this.scrollDirection});
+ TransformInfo({
+ required this.index,
+ required this.position,
+ required this.width,
+ required this.height,
+ required this.activeIndex,
+ required this.fromIndex,
+ required this.forward,
+ required this.done,
+ required this.viewportFraction,
+ required this.scrollDirection,
+ });
}
abstract class PageTransformer {
@@ -86,9 +88,8 @@ typedef Widget PageTransformerBuilderCallback(Widget child, TransformInfo info);
class PageTransformerBuilder extends PageTransformer {
final PageTransformerBuilderCallback builder;
- PageTransformerBuilder({bool reverse: false, @required this.builder})
- : assert(builder != null),
- super(reverse: reverse);
+ PageTransformerBuilder({bool reverse: false, required this.builder})
+ : super(reverse: reverse);
@override
Widget transform(Widget child, TransformInfo info) {
@@ -106,15 +107,15 @@ class TransformerPageController extends PageController {
bool keepPage = true,
double viewportFraction = 1.0,
this.loop: false,
- this.itemCount,
+ required this.itemCount,
this.reverse: false,
}) : super(
initialPage: TransformerPageController._getRealIndexFromRenderIndex(
- initialPage ?? 0, loop, itemCount, reverse),
+ initialPage, loop, itemCount, reverse),
keepPage: keepPage,
viewportFraction: viewportFraction);
- int getRenderIndexFromRealIndex(num index) {
+ int getRenderIndexFromRealIndex(int index) {
return _getRenderIndexFromRealIndex(index, loop, itemCount, reverse);
}
@@ -124,7 +125,7 @@ class TransformerPageController extends PageController {
}
static _getRenderIndexFromRealIndex(
- num index, bool loop, int itemCount, bool reverse) {
+ int index, bool loop, int itemCount, bool reverse) {
if (itemCount == 0) return 0;
int renderIndex;
if (loop) {
@@ -145,11 +146,11 @@ class TransformerPageController extends PageController {
double get realPage {
double page;
- if (position.maxScrollExtent == null || position.minScrollExtent == null) {
- page = 0.0;
- } else {
- page = super.page;
- }
+ // if (position.maxScrollExtent == null || position.minScrollExtent == null) {
+ // page = 0.0;
+ // } else {
+ page = super.page ?? 0.0;
+ //}
return page;
}
@@ -179,12 +180,12 @@ class TransformerPageController extends PageController {
: realPage;
}
- int getRealIndexFromRenderIndex(num index) {
+ int getRealIndexFromRenderIndex(int index) {
return _getRealIndexFromRenderIndex(index, loop, itemCount, reverse);
}
static int _getRealIndexFromRenderIndex(
- num index, bool loop, int itemCount, bool reverse) {
+ int index, bool loop, int itemCount, bool reverse) {
int result = reverse ? (itemCount - index - 1) : index;
if (loop) {
result += kMiddleValue;
@@ -197,7 +198,7 @@ class TransformerPageView extends StatefulWidget {
/// Create a `transformed` widget base on the widget that has been passed to the [PageTransformer.transform].
/// See [TransformInfo]
///
- final PageTransformer transformer;
+ final PageTransformer? transformer;
/// Same as [PageView.scrollDirection]
///
@@ -205,7 +206,7 @@ class TransformerPageView extends StatefulWidget {
final Axis scrollDirection;
/// Same as [PageView.physics]
- final ScrollPhysics physics;
+ final ScrollPhysics? physics;
/// Set to false to disable page snapping, useful for custom scroll behavior.
/// Same as [PageView.pageSnapping]
@@ -213,12 +214,12 @@ class TransformerPageView extends StatefulWidget {
/// Called whenever the page in the center of the viewport changes.
/// Same as [PageView.onPageChanged]
- final ValueChanged onPageChanged;
+ final ValueChanged? onPageChanged;
- final IndexedWidgetBuilder itemBuilder;
+ final IndexedWidgetBuilder? itemBuilder;
// See [IndexController.mode],[IndexController.next],[IndexController.previous]
- final IndexController controller;
+ final IndexController? controller;
/// Animation duration
final Duration duration;
@@ -226,7 +227,7 @@ class TransformerPageView extends StatefulWidget {
/// Animation curve
final Curve curve;
- final TransformerPageController pageController;
+ final TransformerPageController? pageController;
/// Set true to open infinity loop mode.
final bool loop;
@@ -253,9 +254,9 @@ class TransformerPageView extends StatefulWidget {
/// [itemBuilder] will be called only with indices greater than or equal to
/// zero and less than [itemCount].
TransformerPageView({
- Key key,
- this.index,
- Duration duration,
+ Key? key,
+ this.index = 0,
+ Duration? duration,
this.curve: Curves.ease,
this.viewportFraction: 1.0,
this.loop: false,
@@ -267,29 +268,27 @@ class TransformerPageView extends StatefulWidget {
this.transformer,
this.itemBuilder,
this.pageController,
- @required this.itemCount,
- }) : assert(itemCount != null),
- assert(itemCount == 0 || itemBuilder != null || transformer != null),
- this.duration =
+ required this.itemCount,
+ }) : this.duration =
duration ?? new Duration(milliseconds: kDefaultTransactionDuration),
super(key: key);
- factory TransformerPageView.children(
- {Key key,
- int index,
- Duration duration,
- Curve curve: Curves.ease,
- double viewportFraction: 1.0,
- bool loop: false,
- Axis scrollDirection = Axis.horizontal,
- ScrollPhysics physics,
- bool pageSnapping = true,
- ValueChanged onPageChanged,
- IndexController controller,
- PageTransformer transformer,
- @required List children,
- TransformerPageController pageController}) {
- assert(children != null);
+ factory TransformerPageView.children({
+ Key? key,
+ int index = 0,
+ Duration? duration,
+ Curve curve: Curves.ease,
+ double viewportFraction: 1.0,
+ bool loop: false,
+ Axis scrollDirection = Axis.horizontal,
+ ScrollPhysics? physics,
+ bool pageSnapping = true,
+ ValueChanged? onPageChanged,
+ IndexController? controller,
+ PageTransformer? transformer,
+ required List children,
+ TransformerPageController? pageController,
+ }) {
return new TransformerPageView(
itemCount: children.length,
itemBuilder: (BuildContext context, int index) {
@@ -315,8 +314,12 @@ class TransformerPageView extends StatefulWidget {
return new _TransformerPageViewState();
}
- static int getRealIndexFromRenderIndex(
- {bool reverse, int index, int itemCount, bool loop}) {
+ static int getRealIndexFromRenderIndex({
+ required bool reverse,
+ required int index,
+ required int itemCount,
+ required bool loop,
+ }) {
int initPage = reverse ? (itemCount - index - 1) : index;
if (loop) {
initPage += kMiddleValue;
@@ -324,12 +327,13 @@ class TransformerPageView extends StatefulWidget {
return initPage;
}
- static PageController createPageController(
- {bool reverse,
- int index,
- int itemCount,
- bool loop,
- double viewportFraction}) {
+ static PageController createPageController({
+ required bool reverse,
+ required int index,
+ required int itemCount,
+ required bool loop,
+ required double viewportFraction,
+ }) {
return new PageController(
initialPage: getRealIndexFromRenderIndex(
reverse: reverse, index: index, itemCount: itemCount, loop: loop),
@@ -338,45 +342,45 @@ class TransformerPageView extends StatefulWidget {
}
class _TransformerPageViewState extends State {
- Size _size;
- int _activeIndex;
- double _currentPixels;
+ Size? _size;
+ late int _activeIndex;
+ late double _currentPixels;
bool _done = false;
///This value will not change until user end drag.
- int _fromIndex;
+ late int _fromIndex;
- PageTransformer _transformer;
+ PageTransformer? _transformer;
- TransformerPageController _pageController;
+ late TransformerPageController _pageController;
Widget _buildItemNormal(BuildContext context, int index) {
int renderIndex = _pageController.getRenderIndexFromRealIndex(index);
- Widget child = widget.itemBuilder(context, renderIndex);
+ Widget child = widget.itemBuilder!(context, renderIndex);
return child;
}
Widget _buildItem(BuildContext context, int index) {
return new AnimatedBuilder(
animation: _pageController,
- builder: (BuildContext c, Widget w) {
+ builder: (BuildContext c, Widget? w) {
int renderIndex = _pageController.getRenderIndexFromRealIndex(index);
- Widget child;
+ Widget? child;
if (widget.itemBuilder != null) {
- child = widget.itemBuilder(context, renderIndex);
+ child = widget.itemBuilder!(context, renderIndex);
}
if (child == null) {
child = new Container();
}
if (_size == null) {
- return child ?? new Container();
+ return child;
}
double position;
double page = _pageController.realPage;
- if (_transformer.reverse) {
+ if (_transformer?.reverse ?? false) {
position = page - index;
} else {
position = index - page;
@@ -385,8 +389,8 @@ class _TransformerPageViewState extends State {
TransformInfo info = new TransformInfo(
index: renderIndex,
- width: _size.width,
- height: _size.height,
+ width: _size?.width ?? 0,
+ height: _size?.height ?? 0,
position: position.clamp(-1.0, 1.0),
activeIndex:
_pageController.getRenderIndexFromRealIndex(_activeIndex),
@@ -395,7 +399,7 @@ class _TransformerPageViewState extends State {
done: _done,
scrollDirection: widget.scrollDirection,
viewportFraction: widget.viewportFraction);
- return _transformer.transform(child, info);
+ return _transformer!.transform(child, info);
});
}
@@ -446,56 +450,59 @@ class _TransformerPageViewState extends State {
void _onIndexChanged(int index) {
_activeIndex = index;
if (widget.onPageChanged != null) {
- widget.onPageChanged(_pageController.getRenderIndexFromRealIndex(index));
+ widget.onPageChanged!(_pageController.getRenderIndexFromRealIndex(index));
}
}
void _onGetSize(_) {
- Size size;
- if (context == null) {
- onGetSize(size);
- return;
- }
- RenderObject renderObject = context.findRenderObject();
+ Size? size;
+ // if (context == null) {
+ // onGetSize(size);
+ // return;
+ // }
+ RenderObject? renderObject = context.findRenderObject();
if (renderObject != null) {
Rect bounds = renderObject.paintBounds;
- if (bounds != null) {
- size = bounds.size;
- }
+ //if (bounds != null) {
+ size = bounds.size;
+ //}
+ } else {
+ onGetSize(size);
+ return;
}
_calcCurrentPixels();
onGetSize(size);
}
- void onGetSize(Size size) {
- if(mounted){
+ void onGetSize(Size? size) {
+ if (mounted) {
setState(() {
_size = size;
});
}
-
}
@override
void initState() {
_transformer = widget.transformer;
// int index = widget.index ?? 0;
- _pageController = widget.pageController;
- if (_pageController == null) {
+
+ if (widget.pageController == null) {
_pageController = new TransformerPageController(
initialPage: widget.index,
itemCount: widget.itemCount,
loop: widget.loop,
- reverse:
- widget.transformer == null ? false : widget.transformer.reverse);
- }
+ reverse: widget.transformer?.reverse ?? false);
+ } else
+ _pageController = widget.pageController!;
+
// int initPage = _getRealIndexFromRenderIndex(index);
// _pageController = new PageController(initialPage: initPage,viewportFraction: widget.viewportFraction);
_fromIndex = _activeIndex = _pageController.initialPage;
_controller = getNotifier();
if (_controller != null) {
- _controller.addListener(onChangeNotifier);
+ _controller?.addListener(onChangeNotifier);
}
super.initState();
}
@@ -503,20 +510,18 @@ class _TransformerPageViewState extends State {
@override
void didUpdateWidget(TransformerPageView oldWidget) {
_transformer = widget.transformer;
- int index = widget.index ?? 0;
+ int index = widget.index;
bool created = false;
if (_pageController != widget.pageController) {
if (widget.pageController != null) {
- _pageController = widget.pageController;
+ _pageController = widget.pageController!;
} else {
created = true;
_pageController = new TransformerPageController(
initialPage: widget.index,
itemCount: widget.itemCount,
loop: widget.loop,
- reverse: widget.transformer == null
- ? false
- : widget.transformer.reverse);
+ reverse: widget.transformer?.reverse ?? false);
}
}
@@ -529,15 +534,15 @@ class _TransformerPageViewState extends State {
}
}
if (_transformer != null)
- WidgetsBinding.instance.addPostFrameCallback(_onGetSize);
+ WidgetsBinding.instance?.addPostFrameCallback(_onGetSize);
if (_controller != getNotifier()) {
if (_controller != null) {
- _controller.removeListener(onChangeNotifier);
+ _controller?.removeListener(onChangeNotifier);
}
_controller = getNotifier();
if (_controller != null) {
- _controller.addListener(onChangeNotifier);
+ _controller?.addListener(onChangeNotifier);
}
}
super.didUpdateWidget(oldWidget);
@@ -546,11 +551,11 @@ class _TransformerPageViewState extends State {
@override
void didChangeDependencies() {
if (_transformer != null)
- WidgetsBinding.instance.addPostFrameCallback(_onGetSize);
+ WidgetsBinding.instance?.addPostFrameCallback(_onGetSize);
super.didChangeDependencies();
}
- ChangeNotifier getNotifier() {
+ ChangeNotifier? getNotifier() {
return widget.controller;
}
@@ -582,13 +587,13 @@ class _TransformerPageViewState extends State {
}
void onChangeNotifier() {
- int event = widget.controller.event;
+ int event = widget.controller!.event;
int index;
switch (event) {
case IndexController.MOVE:
{
index = _pageController
- .getRealIndexFromRenderIndex(widget.controller.index);
+ .getRealIndexFromRenderIndex(widget.controller!.index);
}
break;
case IndexController.PREVIOUS:
@@ -601,23 +606,372 @@ class _TransformerPageViewState extends State {
//ignore this event
return;
}
- if (widget.controller.animation) {
+ if (widget.controller!.animation) {
_pageController
- .animateToPage(index,
- duration: widget.duration, curve: widget.curve ?? Curves.ease)
- .whenComplete(widget.controller.complete);
+ .animateToPage(index, duration: widget.duration, curve: widget.curve)
+ .whenComplete(widget.controller!.complete);
} else {
_pageController.jumpToPage(index);
- widget.controller.complete();
+ widget.controller?.complete();
}
}
- ChangeNotifier _controller;
+ ChangeNotifier? _controller;
void dispose() {
super.dispose();
if (_controller != null) {
- _controller.removeListener(onChangeNotifier);
+ _controller?.removeListener(onChangeNotifier);
+ }
+ }
+}
+
+class WarmPainter extends BasePainter {
+ WarmPainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ void draw(Canvas canvas, double space, double size, double radius) {
+ double progress = page - index;
+ double distance = size + space;
+ double start = index * (size + space);
+
+ if (progress > 0.5) {
+ double right = start + size + distance;
+ //progress=>0.5-1.0
+ //left:0.0=>distance
+
+ double left = index * distance + distance * (progress - 0.5) * 2;
+ canvas.drawRRect(
+ new RRect.fromLTRBR(
+ left, 0.0, right, size, new Radius.circular(radius)),
+ _paint);
+ } else {
+ double right = start + size + distance * progress * 2;
+
+ canvas.drawRRect(
+ new RRect.fromLTRBR(
+ start, 0.0, right, size, new Radius.circular(radius)),
+ _paint);
+ }
+ }
+}
+
+class DropPainter extends BasePainter {
+ DropPainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ @override
+ void draw(Canvas canvas, double space, double size, double radius) {
+ double progress = page - index;
+ double dropHeight = widget.dropHeight;
+ double rate = (0.5 - progress).abs() * 2;
+ double scale = widget.scale;
+
+ //lerp(begin, end, progress)
+
+ canvas.drawCircle(
+ new Offset(radius + ((page) * (size + space)),
+ radius - dropHeight * (1 - rate)),
+ radius * (scale + rate * (1.0 - scale)),
+ _paint);
+ }
+}
+
+class NonePainter extends BasePainter {
+ NonePainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ @override
+ void draw(Canvas canvas, double space, double size, double radius) {
+ double progress = page - index;
+ double secondOffset = index == widget.count - 1
+ ? radius
+ : radius + ((index + 1) * (size + space));
+
+ if (progress > 0.5) {
+ canvas.drawCircle(new Offset(secondOffset, radius), radius, _paint);
+ } else {
+ canvas.drawCircle(new Offset(radius + (index * (size + space)), radius),
+ radius, _paint);
+ }
+ }
+}
+
+class SlidePainter extends BasePainter {
+ SlidePainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ @override
+ void draw(Canvas canvas, double space, double size, double radius) {
+ canvas.drawCircle(
+ new Offset(radius + (page * (size + space)), radius), radius, _paint);
+ }
+}
+
+class ScalePainter extends BasePainter {
+ ScalePainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ // 连续的两个点,含有最后一个和第一个
+ @override
+ bool _shouldSkip(int i) {
+ if (index == widget.count - 1) {
+ return i == 0 || i == index;
+ }
+ return (i == index || i == index + 1);
+ }
+
+ @override
+ void paint(Canvas canvas, Size size) {
+ _paint.color = widget.color;
+ double space = widget.space;
+ double size = widget.size;
+ double radius = size / 2;
+ for (int i = 0, c = widget.count; i < c; ++i) {
+ if (_shouldSkip(i)) {
+ continue;
+ }
+ canvas.drawCircle(new Offset(i * (size + space) + radius, radius),
+ radius * widget.scale, _paint);
}
+
+ _paint.color = widget.activeColor;
+ draw(canvas, space, size, radius);
+ }
+
+ @override
+ void draw(Canvas canvas, double space, double size, double radius) {
+ double secondOffset = index == widget.count - 1
+ ? radius
+ : radius + ((index + 1) * (size + space));
+
+ double progress = page - index;
+ _paint.color = Color.lerp(widget.activeColor, widget.color, progress) ??
+ Colors.transparent;
+ //last
+ canvas.drawCircle(new Offset(radius + (index * (size + space)), radius),
+ lerp(radius, radius * widget.scale, progress), _paint);
+ //first
+ _paint.color = Color.lerp(widget.color, widget.activeColor, progress) ??
+ Colors.transparent;
+ canvas.drawCircle(new Offset(secondOffset, radius),
+ lerp(radius * widget.scale, radius, progress), _paint);
+ }
+}
+
+class ColorPainter extends BasePainter {
+ ColorPainter(PageIndicator widget, double page, int index, Paint paint)
+ : super(widget, page, index, paint);
+
+ // 连续的两个点,含有最后一个和第一个
+ @override
+ bool _shouldSkip(int i) {
+ if (index == widget.count - 1) {
+ return i == 0 || i == index;
+ }
+ return (i == index || i == index + 1);
+ }
+
+ @override
+ void draw(Canvas canvas, double space, double size, double radius) {
+ double progress = page - index;
+ double secondOffset = index == widget.count - 1
+ ? radius
+ : radius + ((index + 1) * (size + space));
+
+ _paint.color = Color.lerp(widget.activeColor, widget.color, progress) ??
+ Colors.transparent;
+ //left
+ canvas.drawCircle(
+ new Offset(radius + (index * (size + space)), radius), radius, _paint);
+ //right
+ _paint.color = Color.lerp(widget.color, widget.activeColor, progress) ??
+ Colors.transparent;
+ canvas.drawCircle(new Offset(secondOffset, radius), radius, _paint);
+ }
+}
+
+abstract class BasePainter extends CustomPainter {
+ final PageIndicator widget;
+ final double page;
+ final int index;
+ final Paint _paint;
+
+ double lerp(double begin, double end, double progress) {
+ return begin + (end - begin) * progress;
+ }
+
+ BasePainter(this.widget, this.page, this.index, this._paint);
+
+ void draw(Canvas canvas, double space, double size, double radius);
+
+ bool _shouldSkip(int index) {
+ return false;
+ }
+ //double secondOffset = index == widget.count-1 ? radius : radius + ((index + 1) * (size + space));
+
+ @override
+ void paint(Canvas canvas, Size size) {
+ _paint.color = widget.color;
+ double space = widget.space;
+ double size = widget.size;
+ double radius = size / 2;
+ for (int i = 0, c = widget.count; i < c; ++i) {
+ if (_shouldSkip(i)) {
+ continue;
+ }
+ canvas.drawCircle(
+ new Offset(i * (size + space) + radius, radius), radius, _paint);
+ }
+
+ double page = this.page;
+ if (page < index) {
+ page = 0.0;
+ }
+ _paint.color = widget.activeColor;
+ draw(canvas, space, size, radius);
+ }
+
+ @override
+ bool shouldRepaint(BasePainter oldDelegate) {
+ return oldDelegate.page != page;
+ }
+}
+
+class _PageIndicatorState extends State {
+ int index = 0;
+ Paint _paint = new Paint();
+
+ BasePainter _createPainer() {
+ switch (widget.layout) {
+ case PageIndicatorLayout.NONE:
+ return new NonePainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ case PageIndicatorLayout.SLIDE:
+ return new SlidePainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ case PageIndicatorLayout.WARM:
+ return new WarmPainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ case PageIndicatorLayout.COLOR:
+ return new ColorPainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ case PageIndicatorLayout.SCALE:
+ return new ScalePainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ case PageIndicatorLayout.DROP:
+ return new DropPainter(
+ widget, widget.controller.page ?? 0.0, index, _paint);
+ default:
+ throw new Exception("Not a valid layout");
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ Widget child = new SizedBox(
+ width: widget.count * widget.size + (widget.count - 1) * widget.space,
+ height: widget.size,
+ child: new CustomPaint(
+ painter: _createPainer(),
+ ),
+ );
+
+ if (widget.layout == PageIndicatorLayout.SCALE ||
+ widget.layout == PageIndicatorLayout.COLOR) {
+ child = new ClipRect(
+ child: child,
+ );
+ }
+
+ return new IgnorePointer(
+ child: child,
+ );
+ }
+
+ void _onController() {
+ double page = widget.controller.page ?? 0.0;
+ index = page.floor();
+
+ setState(() {});
+ }
+
+ @override
+ void initState() {
+ widget.controller.addListener(_onController);
+ super.initState();
+ }
+
+ @override
+ void didUpdateWidget(PageIndicator oldWidget) {
+ if (widget.controller != oldWidget.controller) {
+ oldWidget.controller.removeListener(_onController);
+ widget.controller.addListener(_onController);
+ }
+ super.didUpdateWidget(oldWidget);
+ }
+
+ @override
+ void dispose() {
+ widget.controller.removeListener(_onController);
+ super.dispose();
+ }
+}
+
+enum PageIndicatorLayout {
+ NONE,
+ SLIDE,
+ WARM,
+ COLOR,
+ SCALE,
+ DROP,
+}
+
+class PageIndicator extends StatefulWidget {
+ /// size of the dots
+ final double size;
+
+ /// space between dots.
+ final double space;
+
+ /// count of dots
+ final int count;
+
+ /// active color
+ final Color activeColor;
+
+ /// normal color
+ final Color color;
+
+ /// layout of the dots,default is [PageIndicatorLayout.SLIDE]
+ final PageIndicatorLayout layout;
+
+ // Only valid when layout==PageIndicatorLayout.scale
+ final double scale;
+
+ // Only valid when layout==PageIndicatorLayout.drop
+ final double dropHeight;
+
+ final PageController controller;
+
+ final double activeSize;
+
+ PageIndicator(
+ {Key? key,
+ this.size: 20.0,
+ this.space: 5.0,
+ required this.count,
+ this.activeSize: 20.0,
+ required this.controller,
+ this.color: Colors.white30,
+ this.layout: PageIndicatorLayout.SLIDE,
+ this.activeColor: Colors.white,
+ this.scale: 0.6,
+ this.dropHeight: 20.0})
+ : super(key: key);
+
+ @override
+ State createState() {
+ return new _PageIndicatorState();
}
}
diff --git a/pubspec.lock b/pubspec.lock
index 331b288..c258d09 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -1,55 +1,90 @@
# Generated by pub
-# See https://www.dartlang.org/tools/pub/glossary#lockfile
+# See https://dart.dev/tools/pub/glossary#lockfile
packages:
+ archive:
+ dependency: transitive
+ description:
+ name: archive
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "2.0.13"
+ args:
+ dependency: transitive
+ description:
+ name: args
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.6.0"
async:
dependency: transitive
description:
name: async
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.8"
+ version: "2.5.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.4"
+ version: "2.1.0"
+ characters:
+ dependency: transitive
+ description:
+ name: characters
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
charcode:
dependency: transitive
description:
name: charcode
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.2"
+ version: "1.2.0"
+ clock:
+ dependency: transitive
+ description:
+ name: clock
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.1.0"
collection:
dependency: transitive
description:
name: collection
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.14.11"
+ version: "1.15.0"
convert:
dependency: transitive
description:
name: convert
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.6"
+ version: "2.1.5"
+ fake_async:
+ dependency: transitive
+ description:
+ name: fake_async
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.2.0"
file:
dependency: transitive
description:
name: file
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "5.0.7"
+ version: "6.0.0"
flutter:
dependency: "direct main"
description: flutter
@@ -70,76 +105,41 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
- intl:
- dependency: transitive
- description:
- name: intl
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "0.15.7"
- json_rpc_2:
- dependency: transitive
- description:
- name: json_rpc_2
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "2.0.9"
matcher:
dependency: transitive
description:
name: matcher
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.3+1"
+ version: "0.12.10"
meta:
dependency: transitive
description:
name: meta
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.6"
+ version: "1.3.0"
path:
dependency: transitive
description:
name: path
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.2"
- pedantic:
- dependency: transitive
- description:
- name: pedantic
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "1.4.0"
+ version: "1.8.0"
platform:
dependency: transitive
description:
name: platform
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.0"
+ version: "3.0.0"
process:
dependency: transitive
description:
name: process
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "3.0.9"
- pub_semver:
- dependency: transitive
- description:
- name: pub_semver
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.4.2"
- quiver:
- dependency: transitive
- description:
- name: quiver
- url: "https://pub.flutter-io.cn"
- source: hosted
- version: "2.0.1"
+ version: "4.0.0"
sky_engine:
dependency: transitive
description: flutter
@@ -149,71 +149,79 @@ packages:
dependency: transitive
description:
name: source_span
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.5.4"
+ version: "1.8.0"
stack_trace:
dependency: transitive
description:
name: stack_trace
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.9.3"
+ version: "1.10.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.8"
+ version: "2.1.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.4"
+ version: "1.1.0"
+ sync_http:
+ dependency: transitive
+ description:
+ name: sync_http
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.2.0"
term_glyph:
dependency: transitive
description:
name: term_glyph
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.2.0"
test_api:
dependency: transitive
description:
name: test_api
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.2"
+ version: "0.2.19"
typed_data:
dependency: transitive
description:
name: typed_data
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.6"
+ version: "1.3.0"
vector_math:
dependency: transitive
description:
name: vector_math
- url: "https://pub.flutter-io.cn"
+ url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.8"
- vm_service_client:
+ version: "2.1.0"
+ vm_service:
dependency: transitive
description:
- name: vm_service_client
- url: "https://pub.flutter-io.cn"
+ name: vm_service
+ url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.6"
- web_socket_channel:
+ version: "5.5.0"
+ webdriver:
dependency: transitive
description:
- name: web_socket_channel
- url: "https://pub.flutter-io.cn"
+ name: webdriver
+ url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.9"
+ version: "2.1.2"
sdks:
- dart: ">=2.1.0 <3.0.0"
+ dart: ">=2.12.0 <3.0.0"
+ flutter: ">=1.17.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 02e5bea..f294de3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,11 @@
name: transformer_page_view
description: PageTransformer for flutter
-version: 0.1.6
-author: JZoom
+version: 0.2.0
homepage: https://github.com/jzoom/transformer_page_view
environment:
- sdk: ">=2.0.0-dev.50.0 <3.0.0"
+ sdk: ">=2.12.0 <3.0.0"
+ flutter: ">=1.17.0"
dependencies:
flutter:
@@ -17,4 +17,4 @@ dev_dependencies:
flutter_driver:
sdk: flutter
-flutter:
+flutter:
\ No newline at end of file
diff --git a/transformer_page_view.iml b/transformer_page_view.iml
index 77dcfac..6048a33 100644
--- a/transformer_page_view.iml
+++ b/transformer_page_view.iml
@@ -9,15 +9,11 @@
-
-
-
-
-
+
+
-
\ No newline at end of file