mirror of
https://github.com/flutter/samples.git
synced 2025-11-08 13:58:47 +00:00
Enforce use_key_in_widget_constructors and file_names lints (#913)
* Start enforcing use_key_in_widget_constructors and file_names lints * dart format * analysis fixes * analysis fixes, pt2 * analysis fixes, part 3 * Revert platform_design (test failure) * More reverts * Notate why we aren't enforcing a lint
This commit is contained in:
@@ -12,10 +12,8 @@ linter:
|
||||
cancel_subscriptions: true
|
||||
close_sinks: true
|
||||
directives_ordering: true
|
||||
file_names: false
|
||||
package_api_docs: true
|
||||
package_prefixed_library_names: true
|
||||
test_types_in_equals: true
|
||||
throw_in_finally: true
|
||||
unnecessary_statements: true
|
||||
use_key_in_widget_constructors: false
|
||||
|
||||
@@ -10,19 +10,21 @@ import 'package:platform_channels/src/pet_list_screen.dart';
|
||||
import 'package:platform_channels/src/platform_image_demo.dart';
|
||||
|
||||
void main() {
|
||||
runApp(PlatformChannelSample());
|
||||
runApp(const PlatformChannelSample());
|
||||
}
|
||||
|
||||
class PlatformChannelSample extends StatelessWidget {
|
||||
const PlatformChannelSample({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
routes: {
|
||||
'/methodChannelDemo': (context) => MethodChannelDemo(),
|
||||
'/eventChannelDemo': (context) => EventChannelDemo(),
|
||||
'/platformImageDemo': (context) => PlatformImageDemo(),
|
||||
'/petListScreen': (context) => PetListScreen(),
|
||||
'/addPetDetails': (context) => AddPetDetails(),
|
||||
'/methodChannelDemo': (context) => const MethodChannelDemo(),
|
||||
'/eventChannelDemo': (context) => const EventChannelDemo(),
|
||||
'/platformImageDemo': (context) => const PlatformImageDemo(),
|
||||
'/petListScreen': (context) => const PetListScreen(),
|
||||
'/addPetDetails': (context) => const AddPetDetails(),
|
||||
},
|
||||
title: 'Platform Channel Sample',
|
||||
theme: ThemeData(
|
||||
@@ -30,7 +32,7 @@ class PlatformChannelSample extends StatelessWidget {
|
||||
backgroundColor: Colors.blue[500],
|
||||
),
|
||||
),
|
||||
home: HomePage(),
|
||||
home: const HomePage(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -62,6 +64,8 @@ List<DemoInfo> demoList = [
|
||||
];
|
||||
|
||||
class HomePage extends StatelessWidget {
|
||||
const HomePage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
@@ -79,7 +83,7 @@ class HomePage extends StatelessWidget {
|
||||
class DemoTile extends StatelessWidget {
|
||||
final DemoInfo demoInfo;
|
||||
|
||||
const DemoTile(this.demoInfo);
|
||||
const DemoTile(this.demoInfo, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -10,6 +10,8 @@ import 'package:platform_channels/src/pet_list_message_channel.dart';
|
||||
/// The widget uses [TextField] and [RadioListTile] to take the [PetDetails.breed] and
|
||||
/// [PetDetails.petType] from the user respectively.
|
||||
class AddPetDetails extends StatefulWidget {
|
||||
const AddPetDetails({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_AddPetDetailsState createState() => _AddPetDetailsState();
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ import 'package:platform_channels/src/accelerometer_event_channel.dart';
|
||||
/// [Text] widgets to display the value of [AccelerometerReadings.x],
|
||||
/// [AccelerometerReadings.y], and [AccelerometerReadings.z] respectively.
|
||||
class EventChannelDemo extends StatelessWidget {
|
||||
const EventChannelDemo({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final textStyle = Theme.of(context).textTheme.headline5;
|
||||
|
||||
@@ -10,6 +10,8 @@ import 'package:platform_channels/src/counter_method_channel.dart';
|
||||
/// It has two [ElevatedButton]s to increment and decrement the value of
|
||||
/// [count], and a [Text] widget to display its value.
|
||||
class MethodChannelDemo extends StatefulWidget {
|
||||
const MethodChannelDemo({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MethodChannelDemoState createState() => _MethodChannelDemoState();
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import 'package:platform_channels/src/pet_list_message_channel.dart';
|
||||
/// Demonstrates how to use [BasicMessageChannel] to send & receive the platform
|
||||
/// Message.
|
||||
class PetListScreen extends StatefulWidget {
|
||||
const PetListScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_PetListScreenState createState() => _PetListScreenState();
|
||||
}
|
||||
@@ -59,7 +61,7 @@ class _PetListScreenState extends State<PetListScreen> {
|
||||
class BuildPetList extends StatelessWidget {
|
||||
final List<PetDetails> petList;
|
||||
|
||||
const BuildPetList(this.petList);
|
||||
const BuildPetList(this.petList, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -13,6 +13,8 @@ import 'package:platform_channels/src/image_basic_message_channel.dart';
|
||||
/// The widget uses [Image.memory] to display the image obtained from the
|
||||
/// platform.
|
||||
class PlatformImageDemo extends StatefulWidget {
|
||||
const PlatformImageDemo({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_PlatformImageDemoState createState() => _PlatformImageDemoState();
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import 'package:platform_channels/main.dart';
|
||||
void main() {
|
||||
group('HomePage tests', () {
|
||||
testWidgets('HomePage has multiple Text widgets', (tester) async {
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
await tester.pumpWidget(const MaterialApp(
|
||||
home: HomePage(),
|
||||
));
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ void main() {
|
||||
});
|
||||
|
||||
testWidgets('Enter pet details', (tester) async {
|
||||
await tester.pumpWidget(MaterialApp(home: AddPetDetails()));
|
||||
await tester.pumpWidget(const MaterialApp(home: AddPetDetails()));
|
||||
|
||||
// Enter the breed of cat.
|
||||
await tester.enterText(find.byType(TextField), 'Persian');
|
||||
|
||||
@@ -49,7 +49,7 @@ void main() {
|
||||
|
||||
testWidgets('EventChannel AccelerometerReadings Stream test',
|
||||
(tester) async {
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
await tester.pumpWidget(const MaterialApp(
|
||||
home: EventChannelDemo(),
|
||||
));
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ void main() {
|
||||
});
|
||||
|
||||
testWidgets('MethodChannelDemo count test', (tester) async {
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
await tester.pumpWidget(const MaterialApp(
|
||||
home: MethodChannelDemo(),
|
||||
));
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ void main() {
|
||||
});
|
||||
|
||||
testWidgets('Platform Image test', (tester) async {
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
await tester.pumpWidget(const MaterialApp(
|
||||
home: PlatformImageDemo(),
|
||||
));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user