mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
74 lines
2.0 KiB
Dart
74 lines
2.0 KiB
Dart
// Copyright 2014 The Flutter Authors. 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:file/file.dart';
|
|
import 'package:flutter_tools/src/base/io.dart';
|
|
|
|
import '../src/common.dart';
|
|
import 'test_utils.dart';
|
|
|
|
void main() {
|
|
late Directory tempDir;
|
|
|
|
setUp(() async {
|
|
tempDir = createResolvedTempDirectorySync('run_test.');
|
|
});
|
|
|
|
tearDown(() async {
|
|
tryToDelete(tempDir);
|
|
});
|
|
|
|
testWithoutContext('build succeeds with api 33 features', () async {
|
|
final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter');
|
|
ProcessResult result = await processManager.run(<String>[
|
|
flutterBin,
|
|
'create',
|
|
tempDir.path,
|
|
'--project-name=testapp',
|
|
], workingDirectory: tempDir.path);
|
|
expect(result, const ProcessResultMatcher());
|
|
|
|
final File api33File = tempDir
|
|
.childDirectory('android')
|
|
.childDirectory('app')
|
|
.childDirectory('src')
|
|
.childDirectory('main')
|
|
.childDirectory('java')
|
|
.childFile('Android33Api.java');
|
|
|
|
api33File.createSync(recursive: true);
|
|
// AccessibilityManager.isAudioDescriptionRequested() is an API 33 feature
|
|
api33File.writeAsStringSync('''
|
|
import android.app.Activity;
|
|
import android.view.accessibility.AccessibilityManager;
|
|
import androidx.annotation.Keep;
|
|
import io.flutter.Log;
|
|
|
|
@Keep
|
|
public final class Android33Api extends Activity {
|
|
private AccessibilityManager accessibilityManager;
|
|
|
|
public Android33Api() {
|
|
accessibilityManager = getSystemService(AccessibilityManager.class);
|
|
}
|
|
|
|
public void doSomething() {
|
|
if (accessibilityManager.isAudioDescriptionRequested()) {
|
|
Log.e("flutter", "User has requested to enable audio descriptions");
|
|
}
|
|
}
|
|
}
|
|
|
|
''');
|
|
|
|
result = await processManager.run(<String>[
|
|
flutterBin,
|
|
...getLocalEngineArguments(),
|
|
'build',
|
|
'apk',
|
|
], workingDirectory: tempDir.path);
|
|
expect(result, const ProcessResultMatcher(stdoutPattern: 'app-release.apk'));
|
|
});
|
|
}
|