From b6eed39268d0688807a4520fb3357725f84df590 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Tue, 28 Jan 2020 15:16:13 -0800 Subject: [PATCH 01/29] In progress --- .../.gradle/4.10.3/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/4.10.3/fileHashes/fileHashes.bin | Bin 0 -> 18547 bytes .../.gradle/4.10.3/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes add_to_app/.gradle/4.10.3/gc.properties | 0 add_to_app/.gradle/vcs-1/gc.properties | 0 .../android_fullscreen/app/build.gradle | 3 ++ .../app/src/androidTest/AndroidManifest.xml | 30 ++++++++++++ .../ExampleInstrumentedTest.kt | 44 ++++++++++++------ add_to_app/android_fullscreen/build.gradle | 2 +- add_to_app/flutter_module/pubspec.lock | 8 ++++ add_to_app/flutter_module/pubspec.yaml | 3 +- 11 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 add_to_app/.gradle/4.10.3/fileChanges/last-build.bin create mode 100644 add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin create mode 100644 add_to_app/.gradle/4.10.3/fileHashes/fileHashes.lock create mode 100644 add_to_app/.gradle/4.10.3/gc.properties create mode 100644 add_to_app/.gradle/vcs-1/gc.properties create mode 100644 add_to_app/android_fullscreen/app/src/androidTest/AndroidManifest.xml diff --git a/add_to_app/.gradle/4.10.3/fileChanges/last-build.bin b/add_to_app/.gradle/4.10.3/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin b/add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..9a17ef3a50365dbb21d6533be1d708cb74783de4 GIT binary patch literal 18547 zcmeI(K?;FE6ae61DaD3lXC);mC(y4@HWsq6WNqmN&cF>6J0AbnFa z?=`b|@7vDIAcR`^`5xgrD&JH_fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF{ENUWHd4r% zskQTIQrd*jEyg5wS|o?0xgBN4qyFdq;1lD1D?76iAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009EOAkd3Nq>ud@=`8Q3 + + + + + + + + + + + + + + + + + + + + + + + /> + + + \ No newline at end of file diff --git a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt index 49be549e831..4b94d30c701 100644 --- a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt +++ b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt @@ -4,25 +4,39 @@ package dev.flutter.example.androidfullscreen -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.espresso.flutter.EspressoFlutter.onFlutterWidget +import androidx.test.espresso.flutter.action.FlutterActions.click +import androidx.test.espresso.flutter.action.FlutterActions.syntheticClick +import androidx.test.espresso.flutter.assertion.FlutterAssertions.matches +import androidx.test.espresso.flutter.matcher.FlutterMatchers.isDescendantOf +import androidx.test.espresso.flutter.matcher.FlutterMatchers.withText +import androidx.test.espresso.flutter.matcher.FlutterMatchers.withTooltip +import androidx.test.espresso.flutter.matcher.FlutterMatchers.withType +import androidx.test.espresso.flutter.matcher.FlutterMatchers.withValueKey +import com.google.common.truth.Truth.assertThat +import org.junit.Assert.fail +import androidx.test.core.app.ActivityScenario; +import androidx.test.espresso.flutter.EspressoFlutter.WidgetInteraction +import androidx.test.espresso.flutter.assertion.FlutterAssertions +import androidx.test.espresso.flutter.matcher.FlutterMatchers +import androidx.test.ext.junit.runners.AndroidJUnit4 +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* +/** Unit tests for {@link EspressoFlutter}. */ + +@RunWith(AndroidJUnit4.class) +class MainActivityTest { + @Before + fun setUp() { + ActivityScenario.launch(MainActivity.class) + } -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("dev.flutter.example.androidfullscreen", appContext.packageName) + fun performClick() { + onFlutterWidget(withTooltip("Increment")).perform(click()) + onFlutterWidget(withValueKey("CountText")).check(matches(withText("Button tapped 1 time."))) } -} +} \ No newline at end of file diff --git a/add_to_app/android_fullscreen/build.gradle b/add_to_app/android_fullscreen/build.gradle index e796b11e6ce..c9ca0d53f99 100644 --- a/add_to_app/android_fullscreen/build.gradle +++ b/add_to_app/android_fullscreen/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.1' + classpath 'com.android.tools.build:gradle:3.5.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/add_to_app/flutter_module/pubspec.lock b/add_to_app/flutter_module/pubspec.lock index 839a266d1cc..64c514f7a4f 100644 --- a/add_to_app/flutter_module/pubspec.lock +++ b/add_to_app/flutter_module/pubspec.lock @@ -57,6 +57,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.3" + espresso: + dependency: "direct dev" + description: + name: espresso + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+2" flutter: dependency: "direct main" description: flutter @@ -193,3 +200,4 @@ packages: version: "3.5.0" sdks: dart: ">=2.6.0-dev <3.0.0" + flutter: ">=1.10.0 <2.0.0" diff --git a/add_to_app/flutter_module/pubspec.yaml b/add_to_app/flutter_module/pubspec.yaml index 3d27384969d..2bde86f13c9 100644 --- a/add_to_app/flutter_module/pubspec.yaml +++ b/add_to_app/flutter_module/pubspec.yaml @@ -9,11 +9,12 @@ environment: dependencies: flutter: sdk: flutter - provider: ^3.1.0 + provider: ^4.0.2 dev_dependencies: flutter_test: sdk: flutter + espresso: ^0.0.1+2 flutter: uses-material-design: true From 303b0555c29fbf9633803c485882f04bb5520fd4 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Mon, 3 Feb 2020 10:37:39 -0800 Subject: [PATCH 02/29] In progress --- .../.gradle/4.10.3/fileChanges/last-build.bin | Bin 1 -> 0 bytes .../.gradle/4.10.3/fileHashes/fileHashes.bin | Bin 18547 -> 0 bytes .../.gradle/4.10.3/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes add_to_app/.gradle/4.10.3/gc.properties | 0 add_to_app/.gradle/vcs-1/gc.properties | 0 .../android_fullscreen/app/build.gradle | 4 +- .../app/src/androidTest/AndroidManifest.xml | 5 +- add_to_app/flutter_module/pubspec.lock | 91 +++++++++++++++++- add_to_app/flutter_module/pubspec.yaml | 2 + .../flutter_module/test_driver/example.dart | 7 ++ 10 files changed, 102 insertions(+), 7 deletions(-) delete mode 100644 add_to_app/.gradle/4.10.3/fileChanges/last-build.bin delete mode 100644 add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin delete mode 100644 add_to_app/.gradle/4.10.3/fileHashes/fileHashes.lock delete mode 100644 add_to_app/.gradle/4.10.3/gc.properties delete mode 100644 add_to_app/.gradle/vcs-1/gc.properties create mode 100644 add_to_app/flutter_module/test_driver/example.dart diff --git a/add_to_app/.gradle/4.10.3/fileChanges/last-build.bin b/add_to_app/.gradle/4.10.3/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin b/add_to_app/.gradle/4.10.3/fileHashes/fileHashes.bin deleted file mode 100644 index 9a17ef3a50365dbb21d6533be1d708cb74783de4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18547 zcmeI(K?;FE6ae61DaD3lXC);mC(y4@HWsq6WNqmN&cF>6J0AbnFa z?=`b|@7vDIAcR`^`5xgrD&JH_fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF{ENUWHd4r% zskQTIQrd*jEyg5wS|o?0xgBN4qyFdq;1lD1D?76iAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009EOAkd3Nq>ud@=`8Q3 @@ -24,7 +24,6 @@ - /> - + \ No newline at end of file diff --git a/add_to_app/flutter_module/pubspec.lock b/add_to_app/flutter_module/pubspec.lock index 64c514f7a4f..38e580d4904 100644 --- a/add_to_app/flutter_module/pubspec.lock +++ b/add_to_app/flutter_module/pubspec.lock @@ -64,16 +64,33 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.0.1+2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" + flutter_driver: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + fuchsia_remote_debug_protocol: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" image: dependency: transitive description: @@ -81,6 +98,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.4" + intl: + dependency: transitive + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" + json_rpc_2: + dependency: transitive + description: + name: json_rpc_2 + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" matcher: dependency: transitive description: @@ -95,6 +126,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.8" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" path: dependency: transitive description: @@ -116,13 +154,34 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.4.0" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.12" provider: dependency: "direct main" description: name: provider url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "4.0.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.2" quiver: dependency: transitive description: @@ -163,6 +222,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.5" + sync_http: + dependency: transitive + description: + name: sync_http + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" term_glyph: dependency: transitive description: @@ -191,6 +257,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.8" + vm_service_client: + dependency: transitive + description: + name: vm_service_client + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.6+2" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + webdriver: + dependency: transitive + description: + name: webdriver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" xml: dependency: transitive description: @@ -200,4 +287,4 @@ packages: version: "3.5.0" sdks: dart: ">=2.6.0-dev <3.0.0" - flutter: ">=1.10.0 <2.0.0" + flutter: ">=1.12.1 <2.0.0" diff --git a/add_to_app/flutter_module/pubspec.yaml b/add_to_app/flutter_module/pubspec.yaml index 2bde86f13c9..b3b327b3ab3 100644 --- a/add_to_app/flutter_module/pubspec.yaml +++ b/add_to_app/flutter_module/pubspec.yaml @@ -14,6 +14,8 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter + flutter_driver: + sdk: flutter espresso: ^0.0.1+2 flutter: diff --git a/add_to_app/flutter_module/test_driver/example.dart b/add_to_app/flutter_module/test_driver/example.dart new file mode 100644 index 00000000000..b84cbd1576f --- /dev/null +++ b/add_to_app/flutter_module/test_driver/example.dart @@ -0,0 +1,7 @@ +import 'package:flutter_driver/driver_extension.dart'; +import 'package:flutter_module/main.dart' as app; + +void main() { + enableFlutterDriverExtension(); + app.main(); +} \ No newline at end of file From baed76144de3d866d44fc7096d5d25e856bbc9d7 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Mon, 10 Feb 2020 13:36:57 -0800 Subject: [PATCH 03/29] Working tests in android_fullscreen. --- .../android_fullscreen/app/build.gradle | 6 +- .../app/src/androidTest/AndroidManifest.xml | 29 -------- .../ExampleInstrumentedTest.kt | 67 +++++++++++++------ .../app/src/debug/AndroidManifest.xml | 10 +++ .../app/src/main/AndroidManifest.xml | 46 ++++++------- .../flutter_module/test/widget_test.dart | 12 ++-- .../flutter_module/test_driver/example.dart | 8 ++- 7 files changed, 95 insertions(+), 83 deletions(-) delete mode 100644 add_to_app/android_fullscreen/app/src/androidTest/AndroidManifest.xml create mode 100644 add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml diff --git a/add_to_app/android_fullscreen/app/build.gradle b/add_to_app/android_fullscreen/app/build.gradle index 7b63cf030db..f5b5afc73f6 100644 --- a/add_to_app/android_fullscreen/app/build.gradle +++ b/add_to_app/android_fullscreen/app/build.gradle @@ -8,7 +8,7 @@ android { compileSdkVersion 28 defaultConfig { applicationId "dev.flutter.example.androidfullscreen" - minSdkVersion 19 + minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" @@ -33,9 +33,9 @@ dependencies { implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' - testImplementation "com.google.truth:truth:1.0" + androidTestImplementation project(':espresso') + androidTestImplementation "com.google.truth:truth:0.42" androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' api 'androidx.test:core:1.2.0' - } diff --git a/add_to_app/android_fullscreen/app/src/androidTest/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/androidTest/AndroidManifest.xml deleted file mode 100644 index a927ae7a70c..00000000000 --- a/add_to_app/android_fullscreen/app/src/androidTest/AndroidManifest.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt index 4b94d30c701..7ad22664ac2 100644 --- a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt +++ b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt @@ -4,39 +4,68 @@ package dev.flutter.example.androidfullscreen +import androidx.test.core.app.ActivityScenario +import androidx.test.espresso.Espresso.onView import androidx.test.espresso.flutter.EspressoFlutter.onFlutterWidget import androidx.test.espresso.flutter.action.FlutterActions.click -import androidx.test.espresso.flutter.action.FlutterActions.syntheticClick import androidx.test.espresso.flutter.assertion.FlutterAssertions.matches -import androidx.test.espresso.flutter.matcher.FlutterMatchers.isDescendantOf -import androidx.test.espresso.flutter.matcher.FlutterMatchers.withText -import androidx.test.espresso.flutter.matcher.FlutterMatchers.withTooltip -import androidx.test.espresso.flutter.matcher.FlutterMatchers.withType -import androidx.test.espresso.flutter.matcher.FlutterMatchers.withValueKey -import com.google.common.truth.Truth.assertThat -import org.junit.Assert.fail - -import androidx.test.core.app.ActivityScenario; -import androidx.test.espresso.flutter.EspressoFlutter.WidgetInteraction -import androidx.test.espresso.flutter.assertion.FlutterAssertions import androidx.test.espresso.flutter.matcher.FlutterMatchers +import androidx.test.espresso.flutter.matcher.FlutterMatchers.withText +import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.ext.junit.runners.AndroidJUnit4 import org.junit.Before import org.junit.Test import org.junit.runner.RunWith -/** Unit tests for {@link EspressoFlutter}. */ - -@RunWith(AndroidJUnit4.class) +@RunWith(AndroidJUnit4::class) class MainActivityTest { @Before fun setUp() { - ActivityScenario.launch(MainActivity.class) + ActivityScenario.launch(MainActivity::class.java) } @Test - fun performClick() { - onFlutterWidget(withTooltip("Increment")).perform(click()) - onFlutterWidget(withValueKey("CountText")).check(matches(withText("Button tapped 1 time."))) + fun flutterTextUpdatesOnClick() { + // Launch Flutter module. + onView(withId(R.id.launch_button)).perform(androidx.test.espresso.action.ViewActions.click()) + + // Verify state is inited correctly. + onFlutterWidget(withText("Taps: 0")) + .check(matches(FlutterMatchers.isExisting())) + + // Verify the increment button works. + onFlutterWidget(withText("Tap me!")).perform(click()) + onFlutterWidget(withText("Taps: 1")) + .check(matches(FlutterMatchers.isExisting())) + } + + @Test + fun nativeTextViewUpdatesOnClick() { + // Verify Android TextView is inited correctly. + onView(withId(R.id.counter_label)).check( + androidx.test.espresso.assertion.ViewAssertions.matches( + // TODO(redbrogdon): This should be a check for 0 rather than 1. Because our state + // management is hardcoded into the Application object, though, and that object is + // reused across tests, this test begins with a counter already incremented by the + // previous one. This situation can be corrected via DI or a number of other + // approaches. + androidx.test.espresso.matcher.ViewMatchers.withText("Current count: 1") + ) + ) + + // Launch Flutter module. + onView(withId(R.id.launch_button)).perform(androidx.test.espresso.action.ViewActions.click()) + + // Increment count. + onFlutterWidget(withText("Tap me!")).perform(click()) + + // Exit Flutter module and verify that the Android TextView is updated correctly. + onFlutterWidget(withText("Exit this screen")).perform(click()) + onView(withId(R.id.counter_label)).check( + androidx.test.espresso.assertion.ViewAssertions.matches( + // TODO(redbrogdon): s/2/1 + androidx.test.espresso.matcher.ViewMatchers.withText("Current count: 2") + ) + ) } } \ No newline at end of file diff --git a/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000000..738fd801dce --- /dev/null +++ b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml index bd2b7ff9eb6..89d222aba5e 100644 --- a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml @@ -1,29 +1,29 @@ +package="dev.flutter.example.androidfullscreen"> - - - - + + + + - - - - - + + + + + \ No newline at end of file diff --git a/add_to_app/flutter_module/test/widget_test.dart b/add_to_app/flutter_module/test/widget_test.dart index 5aae2e4b29e..43ba66ba424 100644 --- a/add_to_app/flutter_module/test/widget_test.dart +++ b/add_to_app/flutter_module/test/widget_test.dart @@ -1,14 +1,10 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility that Flutter provides. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. +// Copyright 2019 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - import 'package:flutter_module/main.dart'; +import 'package:flutter_test/flutter_test.dart'; import 'package:provider/provider.dart'; class MockCounterModel extends ChangeNotifier implements CounterModel { diff --git a/add_to_app/flutter_module/test_driver/example.dart b/add_to_app/flutter_module/test_driver/example.dart index b84cbd1576f..5f1e453151a 100644 --- a/add_to_app/flutter_module/test_driver/example.dart +++ b/add_to_app/flutter_module/test_driver/example.dart @@ -1,7 +1,13 @@ +// Copyright 2020 The Flutter team. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_module/main.dart' as app; +// This alternate entrypoint is used for espresso testing. See +// https://pub.dev/packages/espresso for details. void main() { enableFlutterDriverExtension(); app.main(); -} \ No newline at end of file +} From 91b20a0165ef74030c1888d7e8517d11a3f2f7f2 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Mon, 10 Feb 2020 13:54:56 -0800 Subject: [PATCH 04/29] Formatting/lints. --- .../app/src/debug/AndroidManifest.xml | 3 +- .../app/src/main/AndroidManifest.xml | 45 +++++++++---------- 2 files changed, 23 insertions(+), 25 deletions(-) diff --git a/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml index 738fd801dce..59f48327382 100644 --- a/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml @@ -4,7 +4,6 @@ - + \ No newline at end of file diff --git a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml index 89d222aba5e..69ad6f5f094 100644 --- a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml @@ -1,29 +1,28 @@ + package="dev.flutter.example.androidfullscreen"> - - - - + + + + - - - - - + + + + + \ No newline at end of file From 58c4611b209789fe9831fcb7d393a53dafe55268 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Tue, 11 Feb 2020 14:47:07 -0800 Subject: [PATCH 05/29] Added travis script changes --- tool/travis_android_script.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index c52851b42ae..e3ab4f918d3 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -53,4 +53,12 @@ do popd done +# At this time, espresso tests only exist for android_fullscreen. These will +# eventually be rolled out to each Android project and included in the loop +# above. +echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" +pushd "add_to_app/android_fullscreen" +./gradlew app:connectedAndroidTest -Ptarget=../flutter_module/test_driver/example.dart +popd + echo "-- Success --" From e262c9fc83e6f06a2f828223d20af0de801fbf52 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Tue, 11 Feb 2020 14:52:46 -0800 Subject: [PATCH 06/29] Newlines --- .../example/androidfullscreen/ExampleInstrumentedTest.kt | 2 +- add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml | 2 +- add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt index 7ad22664ac2..74383f889ff 100644 --- a/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt +++ b/add_to_app/android_fullscreen/app/src/androidTest/java/dev/flutter/example/androidfullscreen/ExampleInstrumentedTest.kt @@ -68,4 +68,4 @@ class MainActivityTest { ) ) } -} \ No newline at end of file +} diff --git a/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml index 59f48327382..7121739cc12 100644 --- a/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/debug/AndroidManifest.xml @@ -6,4 +6,4 @@ - \ No newline at end of file + diff --git a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml index 69ad6f5f094..359af69a8d9 100644 --- a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml @@ -25,4 +25,4 @@ android:windowSoftInputMode="adjustResize" /> - \ No newline at end of file + From a824d62b9899ecb8a1e1ec72e69656d19dcc539f Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Tue, 11 Feb 2020 17:04:14 -0800 Subject: [PATCH 07/29] Altering API level --- add_to_app/android_using_prebuilt_module/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/add_to_app/android_using_prebuilt_module/app/build.gradle b/add_to_app/android_using_prebuilt_module/app/build.gradle index 4ce85081da9..9dfe7928fc2 100644 --- a/add_to_app/android_using_prebuilt_module/app/build.gradle +++ b/add_to_app/android_using_prebuilt_module/app/build.gradle @@ -8,7 +8,7 @@ android { compileSdkVersion 28 defaultConfig { applicationId "dev.flutter.example.androidusingprebuiltmodule" - minSdkVersion 19 + minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" From af8f8b299da242610c73759e1a0d405fe1f769ec Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Tue, 11 Feb 2020 17:55:32 -0800 Subject: [PATCH 08/29] Reworking travis config --- .travis.yml | 39 ++++++++++++++++--- .../android_fullscreen/app/build.gradle | 1 - .../android_using_plugin/app/build.gradle | 1 - .../app/build.gradle | 7 ++-- add_to_app/flutter_module/pubspec.lock | 16 +------- 5 files changed, 39 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22558495e78..806233a62c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,10 @@ jobs: os: osx osx_image: xcode11.2 language: objective-c + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh script: ./tool/travis_ios_script.sh env: FLUTTER_VERSION=stable @@ -18,6 +22,15 @@ jobs: components: - build-tools-28.0.3 - android-28 + - sys-img-armeabi-v7a-android-22 + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh + - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a + - emulator -avd test -no-skin -no-audio -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & script: ./tool/travis_android_script.sh env: FLUTTER_VERSION=stable @@ -25,6 +38,10 @@ jobs: os: linux dist: trusty language: ruby + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh script: ./tool/travis_flutter_script.sh env: FLUTTER_VERSION=stable @@ -32,6 +49,10 @@ jobs: os: osx osx_image: xcode11.2 language: objective-c + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh script: ./tool/travis_ios_script.sh env: FLUTTER_VERSION=beta @@ -43,6 +64,15 @@ jobs: components: - build-tools-28.0.3 - android-28 + - sys-img-armeabi-v7a-android-22 + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh + - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a + - emulator -avd test -no-skin -no-audio -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & script: ./tool/travis_android_script.sh env: FLUTTER_VERSION=beta @@ -50,17 +80,16 @@ jobs: os: linux dist: trusty language: ruby + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - ./flutter/bin/flutter doctor + - chmod +x tool/travis_*_script.sh script: ./tool/travis_flutter_script.sh env: FLUTTER_VERSION=beta allow_failures: - env: FLUTTER_VERSION=beta -before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - cache: cocoapods: true directories: diff --git a/add_to_app/android_fullscreen/app/build.gradle b/add_to_app/android_fullscreen/app/build.gradle index f5b5afc73f6..c5ba1651ca2 100644 --- a/add_to_app/android_fullscreen/app/build.gradle +++ b/add_to_app/android_fullscreen/app/build.gradle @@ -27,7 +27,6 @@ android { dependencies { implementation project(':flutter') - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' diff --git a/add_to_app/android_using_plugin/app/build.gradle b/add_to_app/android_using_plugin/app/build.gradle index bd1535e8721..98e2b93b73c 100644 --- a/add_to_app/android_using_plugin/app/build.gradle +++ b/add_to_app/android_using_plugin/app/build.gradle @@ -27,7 +27,6 @@ android { dependencies { implementation project(':flutter') - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' diff --git a/add_to_app/android_using_prebuilt_module/app/build.gradle b/add_to_app/android_using_prebuilt_module/app/build.gradle index 9dfe7928fc2..e0ee4ad4496 100644 --- a/add_to_app/android_using_prebuilt_module/app/build.gradle +++ b/add_to_app/android_using_prebuilt_module/app/build.gradle @@ -46,12 +46,13 @@ dependencies { transitive = true } - implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation "com.google.truth:truth:0.42" + androidTestImplementation 'androidx.test:runner:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' + api 'androidx.test:core:1.2.0' } diff --git a/add_to_app/flutter_module/pubspec.lock b/add_to_app/flutter_module/pubspec.lock index 38e580d4904..5be070c3cd2 100644 --- a/add_to_app/flutter_module/pubspec.lock +++ b/add_to_app/flutter_module/pubspec.lock @@ -104,7 +104,7 @@ packages: name: intl url: "https://pub.dartlang.org" source: hosted - version: "0.16.1" + version: "0.16.0" json_rpc_2: dependency: transitive description: @@ -222,13 +222,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.5" - sync_http: - dependency: transitive - description: - name: sync_http - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.4" term_glyph: dependency: transitive description: @@ -271,13 +264,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.0" - webdriver: - dependency: transitive - description: - name: webdriver - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.1" xml: dependency: transitive description: From 85538519de3262e125dd039600fc5784cc241177 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 19 Feb 2020 08:59:44 -0800 Subject: [PATCH 09/29] Rerunning travis config --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 806233a62c4..d7e8c432511 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,12 +22,12 @@ jobs: components: - build-tools-28.0.3 - android-28 - - sys-img-armeabi-v7a-android-22 + - sys-img-armeabi-v7a-android-28 before_script: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - ./flutter/bin/flutter doctor - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a + - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a - emulator -avd test -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & @@ -64,12 +64,12 @@ jobs: components: - build-tools-28.0.3 - android-28 - - sys-img-armeabi-v7a-android-22 + - sys-img-armeabi-v7a-android-28 before_script: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - ./flutter/bin/flutter doctor - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a + - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a - emulator -avd test -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & From 05a10ebee12942891ca687000a90b77cfdbfd2de Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 13:16:46 -0800 Subject: [PATCH 10/29] More travis-ing. --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index d7e8c432511..fc4645474df 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,8 @@ jobs: language: android android: components: + - tools + - platform-tools - build-tools-28.0.3 - android-28 - sys-img-armeabi-v7a-android-28 From 88b0baec1d0f24d39cb73964735c94971c3d7152 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 13:26:58 -0800 Subject: [PATCH 11/29] travis again. --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index fc4645474df..1db4ec85c1b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,13 +23,14 @@ jobs: - tools - platform-tools - build-tools-28.0.3 + - android-24 - android-28 - - sys-img-armeabi-v7a-android-28 + - sys-img-armeabi-v7a-android-24 before_script: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - ./flutter/bin/flutter doctor - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a + - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a - emulator -avd test -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & From 57f2fa6896893aab85a61cea263efa8b8f42cc81 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 13:48:02 -0800 Subject: [PATCH 12/29] travis again. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1db4ec85c1b..08ca981293a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,8 +30,8 @@ jobs: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - ./flutter/bin/flutter doctor - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a - - emulator -avd test -no-skin -no-audio -no-window & + - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a -c 100M + - emulator -avd test -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & script: ./tool/travis_android_script.sh From 45e66b474bd1aaffaabea673ad741d875aa3aeeb Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 14:28:40 -0800 Subject: [PATCH 13/29] Catting results --- tool/travis_android_script.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index e3ab4f918d3..8ee75e7fd79 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -59,6 +59,7 @@ done echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" pushd "add_to_app/android_fullscreen" ./gradlew app:connectedAndroidTest -Ptarget=../flutter_module/test_driver/example.dart +cat app/build/reports/androidTests/connected/index.html popd echo "-- Success --" From 15004abba67551b79aeaab4d9321f7a976bd9fb9 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 15:06:38 -0800 Subject: [PATCH 14/29] Catting results --- tool/travis_android_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index 8ee75e7fd79..abec5683726 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -58,7 +58,7 @@ done # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" pushd "add_to_app/android_fullscreen" -./gradlew app:connectedAndroidTest -Ptarget=../flutter_module/test_driver/example.dart +./gradlew app:connectedAndroidTest -Ptarget=../flutter_module/test_driver/example.dart || \ cat app/build/reports/androidTests/connected/index.html popd From 3d3d2064667af2d402e691137af392a3f18daaef Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 15:36:44 -0800 Subject: [PATCH 15/29] Adding gradle debug flags --- tool/travis_android_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index abec5683726..a410888ea05 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -58,7 +58,7 @@ done # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" pushd "add_to_app/android_fullscreen" -./gradlew app:connectedAndroidTest -Ptarget=../flutter_module/test_driver/example.dart || \ +./gradlew app:connectedAndroidTest --stacktrace --info -Ptarget=../flutter_module/test_driver/example.dart || \ cat app/build/reports/androidTests/connected/index.html popd From 619cd8941d74aba3b0327dd87b5cb98ca0a87983 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 4 Mar 2020 16:07:46 -0800 Subject: [PATCH 16/29] Logcat --- tool/travis_android_script.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index a410888ea05..ca1210acb82 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -58,8 +58,9 @@ done # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" pushd "add_to_app/android_fullscreen" +adb logcat > logcat.log & ./gradlew app:connectedAndroidTest --stacktrace --info -Ptarget=../flutter_module/test_driver/example.dart || \ -cat app/build/reports/androidTests/connected/index.html +cat logcat.log popd echo "-- Success --" From a093123fbbf9dbab5fd304e0a9943209c6d6cdfb Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 10:59:58 -0700 Subject: [PATCH 17/29] Everything but the keyfile --- .gitignore | 3 +++ .../app/src/main/AndroidManifest.xml | 1 - add_to_app/android_fullscreen/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 4 ++-- tool/travis_android_script.sh | 11 ++++++++--- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 345b5e305c9..3a68b78a22b 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,9 @@ # Web related **/web/**/lib/generated_plugin_registrant.dart +# Service account files +svc-keyfile.json + # Exceptions to above rules. !**/ios/**/default.mode1v3 !**/ios/**/default.mode2v3 diff --git a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml index 359af69a8d9..1be18756763 100644 --- a/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml +++ b/add_to_app/android_fullscreen/app/src/main/AndroidManifest.xml @@ -13,7 +13,6 @@ - diff --git a/add_to_app/android_fullscreen/build.gradle b/add_to_app/android_fullscreen/build.gradle index c9ca0d53f99..d35e43dc9e8 100644 --- a/add_to_app/android_fullscreen/build.gradle +++ b/add_to_app/android_fullscreen/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.3' + classpath 'com.android.tools.build:gradle:3.6.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/add_to_app/android_fullscreen/gradle/wrapper/gradle-wrapper.properties b/add_to_app/android_fullscreen/gradle/wrapper/gradle-wrapper.properties index ec11f69a236..9833519b254 100644 --- a/add_to_app/android_fullscreen/gradle/wrapper/gradle-wrapper.properties +++ b/add_to_app/android_fullscreen/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Sep 17 09:33:13 PDT 2019 +#Wed Mar 11 09:25:37 PDT 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index ca1210acb82..00bc6e72ad9 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -58,9 +58,14 @@ done # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" pushd "add_to_app/android_fullscreen" -adb logcat > logcat.log & -./gradlew app:connectedAndroidTest --stacktrace --info -Ptarget=../flutter_module/test_driver/example.dart || \ -cat logcat.log +./gradlew app:assembleAndroidTest +./gradlew app:assembleDebug -Ptarget=../flutter_module/test_driver/example.dart +gcloud auth activate-service-account --key-file=../../svc-keyfile.json +gcloud --quiet config set project test-lab-project-ccbec +gcloud firebase test android run --type instrumentation \ + --app app/build/outputs/apk/debug/app-debug.apk \ + --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk\ + --timeout 5m popd echo "-- Success --" From 76179d8a95153b42ff50fa7d5336ad8958de5d8c Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 11:05:41 -0700 Subject: [PATCH 18/29] Adding travis var setup --- .travis.yml | 188 +++++++++++++++++++++---------------------- svc-keyfile.json.enc | Bin 0 -> 2384 bytes 2 files changed, 90 insertions(+), 98 deletions(-) create mode 100644 svc-keyfile.json.enc diff --git a/.travis.yml b/.travis.yml index 08ca981293a..3b6b23a834e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,108 +1,100 @@ git: depth: 3 - jobs: include: - - name: "iOS tests, stable channel" - os: osx - osx_image: xcode11.2 - language: objective-c - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - script: ./tool/travis_ios_script.sh - env: FLUTTER_VERSION=stable - - - name: "Android tests, stable channel" - os: linux - dist: trusty - language: android - android: - components: - - tools - - platform-tools - - build-tools-28.0.3 - - android-24 - - android-28 - - sys-img-armeabi-v7a-android-24 - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a -c 100M - - emulator -avd test -no-window & - - android-wait-for-emulator - - adb shell input keyevent 82 & - script: ./tool/travis_android_script.sh - env: FLUTTER_VERSION=stable - - - name: "Flutter tests, stable channel" - os: linux - dist: trusty - language: ruby - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - script: ./tool/travis_flutter_script.sh - env: FLUTTER_VERSION=stable - - - name: "iOS tests, beta channel" - os: osx - osx_image: xcode11.2 - language: objective-c - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - script: ./tool/travis_ios_script.sh - env: FLUTTER_VERSION=beta - - - name: "Android tests, beta channel" - os: linux - dist: trusty - language: android - android: - components: - - build-tools-28.0.3 - - android-28 - - sys-img-armeabi-v7a-android-28 - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a - - emulator -avd test -no-skin -no-audio -no-window & - - android-wait-for-emulator - - adb shell input keyevent 82 & - script: ./tool/travis_android_script.sh - env: FLUTTER_VERSION=beta - - - name: "Flutter tests, beta channel" - os: linux - dist: trusty - language: ruby - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - ./flutter/bin/flutter doctor - - chmod +x tool/travis_*_script.sh - script: ./tool/travis_flutter_script.sh - env: FLUTTER_VERSION=beta - + - name: iOS tests, stable channel + os: osx + osx_image: xcode11.2 + language: objective-c + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + script: "./tool/travis_ios_script.sh" + env: FLUTTER_VERSION=stable + - name: Android tests, stable channel + os: linux + dist: trusty + language: android + android: + components: + - tools + - platform-tools + - build-tools-28.0.3 + - android-24 + - android-28 + - sys-img-armeabi-v7a-android-24 + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a + -c 100M + - emulator -avd test -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & + script: "./tool/travis_android_script.sh" + env: FLUTTER_VERSION=stable + - name: Flutter tests, stable channel + os: linux + dist: trusty + language: ruby + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + script: "./tool/travis_flutter_script.sh" + env: FLUTTER_VERSION=stable + - name: iOS tests, beta channel + os: osx + osx_image: xcode11.2 + language: objective-c + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + script: "./tool/travis_ios_script.sh" + env: FLUTTER_VERSION=beta + - name: Android tests, beta channel + os: linux + dist: trusty + language: android + android: + components: + - build-tools-28.0.3 + - android-28 + - sys-img-armeabi-v7a-android-28 + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a + - emulator -avd test -no-skin -no-audio -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & + script: "./tool/travis_android_script.sh" + env: FLUTTER_VERSION=beta + - name: Flutter tests, beta channel + os: linux + dist: trusty + language: ruby + before_script: + - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION + - "./flutter/bin/flutter doctor" + - chmod +x tool/travis_*_script.sh + script: "./tool/travis_flutter_script.sh" + env: FLUTTER_VERSION=beta allow_failures: - - env: FLUTTER_VERSION=beta - + - env: FLUTTER_VERSION=beta cache: cocoapods: true directories: - - $HOME/shared/.pub-cache - + - "$HOME/shared/.pub-cache" notifications: - email: - brogdon+github@gmail.com - -# Building master alone means that we don't run two builds for -# each pull request. + email: brogdon+github@gmail.com branches: - only: [master] + only: + - master +before_install: +- openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv + -in svc-keyfile.json.enc -out svc-keyfile.json -d diff --git a/svc-keyfile.json.enc b/svc-keyfile.json.enc new file mode 100644 index 0000000000000000000000000000000000000000..49a9062b65e939224d4a1147016847079949737e GIT binary patch literal 2384 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 C>yHxv literal 0 HcmV?d00001 From 11c67d8189acd16bbaa9d536521eb91a71cf505c Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 12:26:53 -0700 Subject: [PATCH 19/29] Removing emulator setup --- .travis.yml | 26 ++++++++++++-------------- tool/travis_android_script.sh | 17 +++++++++-------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3b6b23a834e..65a06308a1d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ git: depth: 3 + jobs: include: + - name: iOS tests, stable channel os: osx osx_image: xcode11.2 @@ -12,29 +14,22 @@ jobs: - chmod +x tool/travis_*_script.sh script: "./tool/travis_ios_script.sh" env: FLUTTER_VERSION=stable + - name: Android tests, stable channel os: linux dist: trusty language: android android: components: - - tools - - platform-tools - build-tools-28.0.3 - - android-24 - android-28 - - sys-img-armeabi-v7a-android-24 before_script: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - "./flutter/bin/flutter doctor" - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-24 --abi armeabi-v7a - -c 100M - - emulator -avd test -no-window & - - android-wait-for-emulator - - adb shell input keyevent 82 & script: "./tool/travis_android_script.sh" env: FLUTTER_VERSION=stable + - name: Flutter tests, stable channel os: linux dist: trusty @@ -45,6 +40,7 @@ jobs: - chmod +x tool/travis_*_script.sh script: "./tool/travis_flutter_script.sh" env: FLUTTER_VERSION=stable + - name: iOS tests, beta channel os: osx osx_image: xcode11.2 @@ -55,6 +51,7 @@ jobs: - chmod +x tool/travis_*_script.sh script: "./tool/travis_ios_script.sh" env: FLUTTER_VERSION=beta + - name: Android tests, beta channel os: linux dist: trusty @@ -63,17 +60,13 @@ jobs: components: - build-tools-28.0.3 - android-28 - - sys-img-armeabi-v7a-android-28 before_script: - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - "./flutter/bin/flutter doctor" - chmod +x tool/travis_*_script.sh - - echo no | android create avd --force -n test -t android-28 --abi armeabi-v7a - - emulator -avd test -no-skin -no-audio -no-window & - - android-wait-for-emulator - - adb shell input keyevent 82 & script: "./tool/travis_android_script.sh" env: FLUTTER_VERSION=beta + - name: Flutter tests, beta channel os: linux dist: trusty @@ -84,17 +77,22 @@ jobs: - chmod +x tool/travis_*_script.sh script: "./tool/travis_flutter_script.sh" env: FLUTTER_VERSION=beta + allow_failures: - env: FLUTTER_VERSION=beta + cache: cocoapods: true directories: - "$HOME/shared/.pub-cache" + notifications: email: brogdon+github@gmail.com + branches: only: - master + before_install: - openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv -in svc-keyfile.json.enc -out svc-keyfile.json -d diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index 00bc6e72ad9..680de68f12f 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -42,21 +42,22 @@ declare -ar ANDROID_PROJECT_NAMES=( "add_to_app/android_using_prebuilt_module" \ ) -for PROJECT_NAME in "${ANDROID_PROJECT_NAMES[@]}" -do - echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel ==" - pushd "${PROJECT_NAME}" +# for PROJECT_NAME in "${ANDROID_PROJECT_NAMES[@]}" +# do +# echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel ==" +# pushd "${PROJECT_NAME}" - ./gradlew --stacktrace assembleDebug - ./gradlew --stacktrace assembleRelease +# ./gradlew --stacktrace assembleDebug +# ./gradlew --stacktrace assembleRelease - popd -done +# popd +# done # At this time, espresso tests only exist for android_fullscreen. These will # eventually be rolled out to each Android project and included in the loop # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" +gcloud --version pushd "add_to_app/android_fullscreen" ./gradlew app:assembleAndroidTest ./gradlew app:assembleDebug -Ptarget=../flutter_module/test_driver/example.dart From 5f0130389f8e796b0e904692a285dc2b6863bcba Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 12:42:41 -0700 Subject: [PATCH 20/29] Updating gcloud setup --- .travis.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.travis.yml b/.travis.yml index 65a06308a1d..bf184c9a71a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,10 +81,15 @@ jobs: allow_failures: - env: FLUTTER_VERSION=beta +env: + global: + - CLOUDSDK_CORE_DISABLE_PROMPTS=1 + cache: cocoapods: true directories: - "$HOME/shared/.pub-cache" + - "$HOME/google-cloud-sdk" notifications: email: brogdon+github@gmail.com @@ -96,3 +101,7 @@ branches: before_install: - openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv -in svc-keyfile.json.enc -out svc-keyfile.json -d +- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; curl https://sdk.cloud.google.com | bash > /dev/null; fi +- source $HOME/google-cloud-sdk/path.bash.inc +- gcloud components update kubectl +- gcloud version \ No newline at end of file From ff7eccf89922afb7eb1725d5a4888273a361c7ad Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 13:15:08 -0700 Subject: [PATCH 21/29] Re-enabling android builds --- tool/travis_android_script.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index 680de68f12f..9872e8f45bc 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -42,16 +42,16 @@ declare -ar ANDROID_PROJECT_NAMES=( "add_to_app/android_using_prebuilt_module" \ ) -# for PROJECT_NAME in "${ANDROID_PROJECT_NAMES[@]}" -# do -# echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel ==" -# pushd "${PROJECT_NAME}" +for PROJECT_NAME in "${ANDROID_PROJECT_NAMES[@]}" +do + echo "== Testing '${PROJECT_NAME}' on Flutter's ${FLUTTER_VERSION} channel ==" + pushd "${PROJECT_NAME}" -# ./gradlew --stacktrace assembleDebug -# ./gradlew --stacktrace assembleRelease + ./gradlew --stacktrace assembleDebug + ./gradlew --stacktrace assembleRelease -# popd -# done + popd +done # At this time, espresso tests only exist for android_fullscreen. These will # eventually be rolled out to each Android project and included in the loop From fb138ded92e25b12d1fbca52aa4298cfcc392a9c Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 13:31:34 -0700 Subject: [PATCH 22/29] Changing creds for flutter repo --- .travis.yml | 11 +++++++---- svc-keyfile.json.enc | Bin 2384 -> 2384 bytes tool/travis_android_script.sh | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf184c9a71a..957cd6e5818 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ git: jobs: include: - - name: iOS tests, stable channel os: osx osx_image: xcode11.2 @@ -83,7 +82,8 @@ jobs: env: global: - - CLOUDSDK_CORE_DISABLE_PROMPTS=1 + # Disabling this makes it easier to install our own copy of gcloud + - CLOUDSDK_CORE_DISABLE_PROMPTS=1 cache: cocoapods: true @@ -99,9 +99,12 @@ branches: - master before_install: +# Decrypt credentials for Firebase Test Lab service account - openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv -in svc-keyfile.json.enc -out svc-keyfile.json -d +# Install our own copy of gcloud. This is necessary because the default copy is +# so old it doesn't offer a firebase component. - if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; curl https://sdk.cloud.google.com | bash > /dev/null; fi - source $HOME/google-cloud-sdk/path.bash.inc -- gcloud components update kubectl -- gcloud version \ No newline at end of file +- gcloud components update firebase +- gcloud version diff --git a/svc-keyfile.json.enc b/svc-keyfile.json.enc index 49a9062b65e939224d4a1147016847079949737e..dd1c114d7b95907b685d62cacc51df785cd19928 100644 GIT binary patch literal 2384 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 C>yHxv diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index 9872e8f45bc..00bc6e72ad9 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -57,7 +57,6 @@ done # eventually be rolled out to each Android project and included in the loop # above. echo "== Espresso testing 'android_fullscreen' on Flutter's ${FLUTTER_VERSION} channel ==" -gcloud --version pushd "add_to_app/android_fullscreen" ./gradlew app:assembleAndroidTest ./gradlew app:assembleDebug -Ptarget=../flutter_module/test_driver/example.dart From 96c4b806fcf3f28395b8046e8ca2d606b3583f9b Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 14:17:41 -0700 Subject: [PATCH 23/29] Escape hatch --- .travis.yml | 11 ++++++++--- tool/travis_android_script.sh | 9 +++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 957cd6e5818..caa95ff12fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -99,12 +99,17 @@ branches: - master before_install: -# Decrypt credentials for Firebase Test Lab service account +# Decrypt credentials for Firebase Test Lab service account. This key will only +# decrypt properly when run from within the flutter/samples repo (not a PR from +# a fork, for example), so failure is expected in some cases. The Android test +# script is the only one that uses this value, and will account for a lack of +# credentials. - openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv - -in svc-keyfile.json.enc -out svc-keyfile.json -d + -in svc-keyfile.json.enc -out svc-keyfile.json -d || true # Install our own copy of gcloud. This is necessary because the default copy is # so old it doesn't offer a firebase component. -- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; curl https://sdk.cloud.google.com | bash > /dev/null; fi +- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; + curl https://sdk.cloud.google.com | bash > /dev/null; fi - source $HOME/google-cloud-sdk/path.bash.inc - gcloud components update firebase - gcloud version diff --git a/tool/travis_android_script.sh b/tool/travis_android_script.sh index 00bc6e72ad9..53fdcbec39a 100755 --- a/tool/travis_android_script.sh +++ b/tool/travis_android_script.sh @@ -53,6 +53,15 @@ do popd done +# If the credentials don't exist, this script isn't being run from within the +# flutter/samples repo. Rather than throw an error, allow the test to pass +# successfully. +if [ ! -f "svc-keyfile.json" ] +then + echo "Keyfile for Firebase Test Lab not found. Skipping integration tests." + exit 0 +fi + # At this time, espresso tests only exist for android_fullscreen. These will # eventually be rolled out to each Android project and included in the loop # above. From 8267d913999df09b7aafa5872ac77f535f805999 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 14:22:37 -0700 Subject: [PATCH 24/29] Removing specific component update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index caa95ff12fb..0c4c4537e72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -111,5 +111,5 @@ before_install: - if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; curl https://sdk.cloud.google.com | bash > /dev/null; fi - source $HOME/google-cloud-sdk/path.bash.inc -- gcloud components update firebase +- gcloud components update - gcloud version From 7293c085a3080b38134b93405dd860ef4a6ae0c6 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 15:01:09 -0700 Subject: [PATCH 25/29] Checking on json file --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0c4c4537e72..f6e4b06b906 100644 --- a/.travis.yml +++ b/.travis.yml @@ -105,7 +105,8 @@ before_install: # script is the only one that uses this value, and will account for a lack of # credentials. - openssl aes-256-cbc -K $encrypted_ccb0f43ba178_key -iv $encrypted_ccb0f43ba178_iv - -in svc-keyfile.json.enc -out svc-keyfile.json -d || true + -in svc-keyfile.json.enc -out svc-keyfile.json -d || rm svc-keyfile.json || true +- ls -la # Install our own copy of gcloud. This is necessary because the default copy is # so old it doesn't offer a firebase component. - if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf "$HOME/google-cloud-sdk"; From eb09840492bceb1a11171647b2159e0832bb7740 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Wed, 11 Mar 2020 16:16:26 -0700 Subject: [PATCH 26/29] Fixing multidex --- add_to_app/android_fullscreen/app/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/add_to_app/android_fullscreen/app/build.gradle b/add_to_app/android_fullscreen/app/build.gradle index c5ba1651ca2..cfe7ee04e05 100644 --- a/add_to_app/android_fullscreen/app/build.gradle +++ b/add_to_app/android_fullscreen/app/build.gradle @@ -8,7 +8,7 @@ android { compileSdkVersion 28 defaultConfig { applicationId "dev.flutter.example.androidfullscreen" - minSdkVersion 21 + minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" @@ -26,6 +26,8 @@ android { } dependencies { + def multidex_version = "2.0.1" + implementation 'androidx.multidex:multidex:$multidex_version' implementation project(':flutter') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' From e2b41eb3616d3c1a727871071ebd21d956c7c911 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Thu, 12 Mar 2020 10:08:36 -0700 Subject: [PATCH 27/29] Redoing multidex --- add_to_app/android_fullscreen/app/build.gradle | 4 ++-- .../dev/flutter/example/androidfullscreen/MyApplication.kt | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/add_to_app/android_fullscreen/app/build.gradle b/add_to_app/android_fullscreen/app/build.gradle index cfe7ee04e05..cb26dce65bd 100644 --- a/add_to_app/android_fullscreen/app/build.gradle +++ b/add_to_app/android_fullscreen/app/build.gradle @@ -13,6 +13,7 @@ android { versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + multiDexEnabled true } buildTypes { release { @@ -26,8 +27,7 @@ android { } dependencies { - def multidex_version = "2.0.1" - implementation 'androidx.multidex:multidex:$multidex_version' + implementation 'androidx.multidex:multidex:2.0.1' implementation project(':flutter') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' diff --git a/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt b/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt index bf65b3f68eb..29d1077e2b5 100644 --- a/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt +++ b/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt @@ -5,6 +5,7 @@ package dev.flutter.example.androidfullscreen import android.app.Application +import androidx.multidex.MultiDexApplication import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngineCache import io.flutter.embedding.engine.dart.DartExecutor @@ -12,7 +13,7 @@ import io.flutter.plugin.common.MethodChannel const val ENGINE_ID = "1" -class MyApplication : Application() { +class MyApplication : MultiDexApplication() { var count = 0 private lateinit var channel: MethodChannel From 60c4b738e6e247ac7957821079daae3ce76b2373 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Thu, 12 Mar 2020 10:39:45 -0700 Subject: [PATCH 28/29] Cleaning up travis.yml --- .travis.yml | 29 +++++------------------------ 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/.travis.yml b/.travis.yml index f6e4b06b906..06b88f11c5f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,10 +7,6 @@ jobs: os: osx osx_image: xcode11.2 language: objective-c - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_ios_script.sh" env: FLUTTER_VERSION=stable @@ -22,10 +18,6 @@ jobs: components: - build-tools-28.0.3 - android-28 - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_android_script.sh" env: FLUTTER_VERSION=stable @@ -33,10 +25,6 @@ jobs: os: linux dist: trusty language: ruby - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_flutter_script.sh" env: FLUTTER_VERSION=stable @@ -44,10 +32,6 @@ jobs: os: osx osx_image: xcode11.2 language: objective-c - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_ios_script.sh" env: FLUTTER_VERSION=beta @@ -59,10 +43,6 @@ jobs: components: - build-tools-28.0.3 - android-28 - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_android_script.sh" env: FLUTTER_VERSION=beta @@ -70,10 +50,6 @@ jobs: os: linux dist: trusty language: ruby - before_script: - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION - - "./flutter/bin/flutter doctor" - - chmod +x tool/travis_*_script.sh script: "./tool/travis_flutter_script.sh" env: FLUTTER_VERSION=beta @@ -85,6 +61,11 @@ env: # Disabling this makes it easier to install our own copy of gcloud - CLOUDSDK_CORE_DISABLE_PROMPTS=1 +before_script: +- git clone https://github.com/flutter/flutter.git -b $FLUTTER_VERSION +- "./flutter/bin/flutter doctor" +- chmod +x tool/travis_*_script.sh + cache: cocoapods: true directories: From 92c5d399489c309200c4a0ae88041b827df0ded7 Mon Sep 17 00:00:00 2001 From: Andrew Brogdon Date: Thu, 12 Mar 2020 14:15:28 -0700 Subject: [PATCH 29/29] Fixing multidex for prebuilt sample --- .../dev/flutter/example/androidfullscreen/MyApplication.kt | 1 - add_to_app/android_using_prebuilt_module/app/build.gradle | 4 +++- .../example/androidusingprebuiltmodule/MyApplication.kt | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt b/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt index 29d1077e2b5..cc79fb209cb 100644 --- a/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt +++ b/add_to_app/android_fullscreen/app/src/main/java/dev/flutter/example/androidfullscreen/MyApplication.kt @@ -4,7 +4,6 @@ package dev.flutter.example.androidfullscreen -import android.app.Application import androidx.multidex.MultiDexApplication import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngineCache diff --git a/add_to_app/android_using_prebuilt_module/app/build.gradle b/add_to_app/android_using_prebuilt_module/app/build.gradle index e0ee4ad4496..775822943e1 100644 --- a/add_to_app/android_using_prebuilt_module/app/build.gradle +++ b/add_to_app/android_using_prebuilt_module/app/build.gradle @@ -8,11 +8,12 @@ android { compileSdkVersion 28 defaultConfig { applicationId "dev.flutter.example.androidusingprebuiltmodule" - minSdkVersion 21 + minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + multiDexEnabled true } buildTypes { release { @@ -46,6 +47,7 @@ dependencies { transitive = true } + implementation 'androidx.multidex:multidex:2.0.1' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.core:core-ktx:1.1.0' diff --git a/add_to_app/android_using_prebuilt_module/app/src/main/java/dev/flutter/example/androidusingprebuiltmodule/MyApplication.kt b/add_to_app/android_using_prebuilt_module/app/src/main/java/dev/flutter/example/androidusingprebuiltmodule/MyApplication.kt index 2bca6f53661..de97dc6bd5c 100644 --- a/add_to_app/android_using_prebuilt_module/app/src/main/java/dev/flutter/example/androidusingprebuiltmodule/MyApplication.kt +++ b/add_to_app/android_using_prebuilt_module/app/src/main/java/dev/flutter/example/androidusingprebuiltmodule/MyApplication.kt @@ -4,7 +4,7 @@ package dev.flutter.example.androidusingprebuiltmodule -import android.app.Application +import androidx.multidex.MultiDexApplication import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngineCache import io.flutter.embedding.engine.dart.DartExecutor @@ -12,7 +12,7 @@ import io.flutter.plugin.common.MethodChannel const val ENGINE_ID = "1" -class MyApplication : Application() { +class MyApplication : MultiDexApplication() { var count = 0 private lateinit var channel: MethodChannel