forked from firka/flutter
Make --androidx flag a noop in flutter create (#52340)
This commit is contained in:
@@ -34,7 +34,6 @@ Future<void> main() async {
|
||||
'create',
|
||||
options: <String>[
|
||||
'--org', 'io.flutter.devicelab',
|
||||
'--androidx',
|
||||
'hello',
|
||||
],
|
||||
);
|
||||
|
||||
@@ -35,7 +35,6 @@ Future<void> main() async {
|
||||
'create',
|
||||
options: <String>[
|
||||
'--org', 'io.flutter.devicelab',
|
||||
'--androidx',
|
||||
'hello',
|
||||
],
|
||||
);
|
||||
|
||||
@@ -139,11 +139,12 @@ class CreateCommand extends FlutterCommand {
|
||||
defaultsTo: 'kotlin',
|
||||
allowed: <String>['java', 'kotlin'],
|
||||
);
|
||||
// TODO(egarciad): Remove this flag. https://github.com/flutter/flutter/issues/52363
|
||||
argParser.addFlag(
|
||||
'androidx',
|
||||
hide: true,
|
||||
negatable: true,
|
||||
defaultsTo: true,
|
||||
help: 'Generate a project using the AndroidX support libraries',
|
||||
help: 'Deprecated. Setting this flag has no effect.',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -401,7 +402,6 @@ class CreateCommand extends FlutterCommand {
|
||||
flutterRoot: flutterRoot,
|
||||
renderDriverTest: boolArg('with-driver-test'),
|
||||
withPluginHook: generatePlugin,
|
||||
androidX: boolArg('androidx'),
|
||||
androidLanguage: stringArg('android-language'),
|
||||
iosLanguage: stringArg('ios-language'),
|
||||
web: featureFlags.isWebEnabled,
|
||||
@@ -411,7 +411,7 @@ class CreateCommand extends FlutterCommand {
|
||||
|
||||
final String relativeDirPath = globals.fs.path.relative(projectDirPath);
|
||||
if (!projectDir.existsSync() || projectDir.listSync().isEmpty) {
|
||||
globals.printStatus('Creating project $relativeDirPath... androidx: ${boolArg('androidx')}');
|
||||
globals.printStatus('Creating project $relativeDirPath...');
|
||||
} else {
|
||||
if (sampleCode != null && !overwrite) {
|
||||
throwToolExit('Will not overwrite existing project in $relativeDirPath: '
|
||||
@@ -619,7 +619,6 @@ To edit platform code in an IDE see https://flutter.dev/developing-packages/#edi
|
||||
String projectName,
|
||||
String projectDescription,
|
||||
String androidLanguage,
|
||||
bool androidX,
|
||||
String iosLanguage,
|
||||
String flutterRoot,
|
||||
bool renderDriverTest = false,
|
||||
@@ -644,7 +643,6 @@ To edit platform code in an IDE see https://flutter.dev/developing-packages/#edi
|
||||
'macosIdentifier': appleIdentifier,
|
||||
'description': projectDescription,
|
||||
'dartSdk': '$flutterRoot/bin/cache/dart-sdk',
|
||||
'androidX': androidX,
|
||||
'useAndroidEmbeddingV2': featureFlags.isAndroidEmbeddingV2Enabled,
|
||||
'androidMinApiLevel': android.minApiLevel,
|
||||
'androidSdkVersion': android_sdk.minimumAndroidSdkVersion,
|
||||
|
||||
@@ -527,14 +527,9 @@ public final class GeneratedPluginRegistrant {
|
||||
const String _androidPluginRegistryTemplateNewEmbedding = '''
|
||||
package io.flutter.plugins;
|
||||
|
||||
{{#androidX}}
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
import android.support.annotation.Keep;
|
||||
import android.support.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
{{#needsShim}}
|
||||
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.enableR8=true
|
||||
{{#androidX}}
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
{{/androidX}}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.enableR8=true
|
||||
{{#androidX}}
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
{{/androidX}}
|
||||
|
||||
@@ -34,13 +34,6 @@ buildDir = new File(rootProject.projectDir, "../build/host")
|
||||
dependencies {
|
||||
implementation project(':flutter')
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
{{#androidX}}
|
||||
implementation 'androidx.appcompat:appcompat:1.0.2'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
|
||||
implementation 'com.android.support:design:28.0.0'
|
||||
{{/androidX}}
|
||||
}
|
||||
|
||||
@@ -45,11 +45,5 @@ flutter {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
{{#androidX}}
|
||||
implementation 'androidx.appcompat:appcompat:1.0.2'
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
implementation 'com.android.support:support-v13:27.1.1'
|
||||
implementation 'com.android.support:support-annotations:27.1.1'
|
||||
{{/androidX}}
|
||||
}
|
||||
|
||||
@@ -4,18 +4,11 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
|
||||
{{#androidX}}
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
import android.arch.lifecycle.Lifecycle;
|
||||
import android.arch.lifecycle.LifecycleObserver;
|
||||
import android.arch.lifecycle.OnLifecycleEvent;
|
||||
import android.support.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
|
||||
import io.flutter.plugin.common.BasicMessageChannel;
|
||||
import io.flutter.plugin.common.StringCodec;
|
||||
import io.flutter.plugins.GeneratedPluginRegistrant;
|
||||
|
||||
@@ -6,14 +6,9 @@ import android.util.AttributeSet;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
{{#androidX}}
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.Fragment;
|
||||
{{/androidX}}
|
||||
|
||||
import io.flutter.view.FlutterView;
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,6 @@ flutter:
|
||||
# They also do not have any bearing on your native host application's
|
||||
# identifiers, which may be completely independent or the same as these.
|
||||
module:
|
||||
androidX: {{androidX}}
|
||||
androidX: true
|
||||
androidPackage: {{androidIdentifier}}
|
||||
iosBundleIdentifier: {{iosIdentifier}}
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
package {{androidIdentifier}};
|
||||
|
||||
{{#useAndroidEmbeddingV2}}
|
||||
{{#androidX}}
|
||||
import androidx.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
import android.support.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
|
||||
import io.flutter.embedding.engine.plugins.FlutterPlugin;
|
||||
import io.flutter.plugin.common.MethodCall;
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
package {{androidIdentifier}}
|
||||
|
||||
{{#useAndroidEmbeddingV2}}
|
||||
{{#androidX}}
|
||||
import androidx.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
{{^androidX}}
|
||||
import android.support.annotation.NonNull;
|
||||
{{/androidX}}
|
||||
|
||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||
import io.flutter.plugin.common.MethodCall
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
org.gradle.jvmargs=-Xmx1536M
|
||||
android.enableR8=true
|
||||
{{#androidX}}
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
{{/androidX}}
|
||||
|
||||
@@ -488,27 +488,6 @@ void main() {
|
||||
expect(actualContents.contains('useAndroidX'), true);
|
||||
});
|
||||
|
||||
testUsingContext('non androidx app project', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
when(mockFlutterVersion.channel).thenReturn(frameworkChannel);
|
||||
|
||||
final CreateCommand command = CreateCommand();
|
||||
final CommandRunner<void> runner = createTestCommandRunner(command);
|
||||
|
||||
await runner.run(<String>['create', '--no-pub', '--no-androidx', projectDir.path]);
|
||||
|
||||
void expectExists(String relPath) {
|
||||
expect(globals.fs.isFileSync('${projectDir.path}/$relPath'), true);
|
||||
}
|
||||
|
||||
expectExists('android/gradle.properties');
|
||||
|
||||
final String actualContents = await globals.fs.file(projectDir.path + '/android/gradle.properties').readAsString();
|
||||
|
||||
expect(actualContents.contains('useAndroidX'), false);
|
||||
});
|
||||
|
||||
testUsingContext('androidx is used by default in a module project', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
@@ -526,23 +505,6 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
testUsingContext('non androidx module', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
when(mockFlutterVersion.channel).thenReturn(frameworkChannel);
|
||||
|
||||
final CreateCommand command = CreateCommand();
|
||||
final CommandRunner<void> runner = createTestCommandRunner(command);
|
||||
|
||||
await runner.run(<String>['create', '--template=module', '--no-pub', '--no-androidx', projectDir.path]);
|
||||
|
||||
final FlutterProject project = FlutterProject.fromDirectory(projectDir);
|
||||
expect(
|
||||
project.usesAndroidX,
|
||||
false,
|
||||
);
|
||||
});
|
||||
|
||||
testUsingContext('androidx is used by default in a plugin project', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
@@ -564,27 +526,6 @@ void main() {
|
||||
expect(actualContents.contains('useAndroidX'), true);
|
||||
});
|
||||
|
||||
testUsingContext('non androidx plugin project', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
when(mockFlutterVersion.channel).thenReturn(frameworkChannel);
|
||||
|
||||
final CreateCommand command = CreateCommand();
|
||||
final CommandRunner<void> runner = createTestCommandRunner(command);
|
||||
|
||||
await runner.run(<String>['create', '--no-pub', '--template=plugin', '--no-androidx', projectDir.path]);
|
||||
|
||||
void expectExists(String relPath) {
|
||||
expect(globals.fs.isFileSync('${projectDir.path}/$relPath'), true);
|
||||
}
|
||||
|
||||
expectExists('android/gradle.properties');
|
||||
|
||||
final String actualContents = await globals.fs.file(projectDir.path + '/android/gradle.properties').readAsString();
|
||||
|
||||
expect(actualContents.contains('useAndroidX'), false);
|
||||
});
|
||||
|
||||
testUsingContext('app supports Linux if requested', () async {
|
||||
Cache.flutterRoot = '../..';
|
||||
when(mockFlutterVersion.frameworkRevision).thenReturn(frameworkRevision);
|
||||
|
||||
@@ -366,7 +366,13 @@ void main() {
|
||||
|
||||
testUsingContext("reports when the app isn't using AndroidX", () async {
|
||||
final String projectPath = await createProject(tempDir,
|
||||
arguments: <String>['--no-pub', '--no-androidx', '--template=app']);
|
||||
arguments: <String>['--no-pub', '--template=app']);
|
||||
// Simulate a non-androidx project.
|
||||
tempDir
|
||||
.childDirectory('flutter_project')
|
||||
.childDirectory('android')
|
||||
.childFile('gradle.properties')
|
||||
.writeAsStringSync('android.useAndroidX=false');
|
||||
|
||||
when(mockProcessManager.start(
|
||||
<String>[
|
||||
|
||||
@@ -324,7 +324,13 @@ void main() {
|
||||
|
||||
testUsingContext("reports when the app isn't using AndroidX", () async {
|
||||
final String projectPath = await createProject(tempDir,
|
||||
arguments: <String>['--no-pub', '--no-androidx', '--template=app']);
|
||||
arguments: <String>['--no-pub', '--template=app']);
|
||||
// Simulate a non-androidx project.
|
||||
tempDir
|
||||
.childDirectory('flutter_project')
|
||||
.childDirectory('android')
|
||||
.childFile('gradle.properties')
|
||||
.writeAsStringSync('android.useAndroidX=false');
|
||||
|
||||
when(mockProcessManager.start(
|
||||
<String>[
|
||||
|
||||
Reference in New Issue
Block a user