11import 'package:flutter/material.dart' ;
2-
3- void main () => runApp (MyApp ());
2+ import 'package:rsa_key_generator/ui/home_page.dart' ;
3+ import 'package:rsa_key_generator/utils/dependency_provider.dart' ;
4+
5+ void main () {
6+ // We need to encapsulate `MyApp` with the DependencyProvider in order
7+ // to be able to access the RSA KeyHelper
8+ runApp (
9+ DependencyProvider (child: MyApp (),)
10+ );
11+ }
412
513class MyApp extends StatelessWidget {
614 // This widget is the root of your application.
@@ -9,103 +17,9 @@ class MyApp extends StatelessWidget {
917 return MaterialApp (
1018 title: 'Flutter Demo' ,
1119 theme: ThemeData (
12- // This is the theme of your application.
13- //
14- // Try running your application with "flutter run". You'll see the
15- // application has a blue toolbar. Then, without quitting the app, try
16- // changing the primarySwatch below to Colors.green and then invoke
17- // "hot reload" (press "r" in the console where you ran "flutter run",
18- // or simply save your changes to "hot reload" in a Flutter IDE).
19- // Notice that the counter didn't reset back to zero; the application
20- // is not restarted.
2120 primarySwatch: Colors .blue,
2221 ),
23- home: MyHomePage (title: 'Flutter Demo Home Page' ),
24- );
25- }
26- }
27-
28- class MyHomePage extends StatefulWidget {
29- MyHomePage ({Key key, this .title}) : super (key: key);
30-
31- // This widget is the home page of your application. It is stateful, meaning
32- // that it has a State object (defined below) that contains fields that affect
33- // how it looks.
34-
35- // This class is the configuration for the state. It holds the values (in this
36- // case the title) provided by the parent (in this case the App widget) and
37- // used by the build method of the State. Fields in a Widget subclass are
38- // always marked "final".
39-
40- final String title;
41-
42- @override
43- _MyHomePageState createState () => _MyHomePageState ();
44- }
45-
46- class _MyHomePageState extends State <MyHomePage > {
47- int _counter = 0 ;
48-
49- void _incrementCounter () {
50- setState (() {
51- // This call to setState tells the Flutter framework that something has
52- // changed in this State, which causes it to rerun the build method below
53- // so that the display can reflect the updated values. If we changed
54- // _counter without calling setState(), then the build method would not be
55- // called again, and so nothing would appear to happen.
56- _counter++ ;
57- });
58- }
59-
60- @override
61- Widget build (BuildContext context) {
62- // This method is rerun every time setState is called, for instance as done
63- // by the _incrementCounter method above.
64- //
65- // The Flutter framework has been optimized to make rerunning build methods
66- // fast, so that you can just rebuild anything that needs updating rather
67- // than having to individually change instances of widgets.
68- return Scaffold (
69- appBar: AppBar (
70- // Here we take the value from the MyHomePage object that was created by
71- // the App.build method, and use it to set our appbar title.
72- title: Text (widget.title),
73- ),
74- body: Center (
75- // Center is a layout widget. It takes a single child and positions it
76- // in the middle of the parent.
77- child: Column (
78- // Column is also layout widget. It takes a list of children and
79- // arranges them vertically. By default, it sizes itself to fit its
80- // children horizontally, and tries to be as tall as its parent.
81- //
82- // Invoke "debug painting" (press "p" in the console, choose the
83- // "Toggle Debug Paint" action from the Flutter Inspector in Android
84- // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
85- // to see the wireframe for each widget.
86- //
87- // Column has various properties to control how it sizes itself and
88- // how it positions its children. Here we use mainAxisAlignment to
89- // center the children vertically; the main axis here is the vertical
90- // axis because Columns are vertical (the cross axis would be
91- // horizontal).
92- mainAxisAlignment: MainAxisAlignment .center,
93- children: < Widget > [
94- Text (
95- 'You have pushed the button this many times:' ,
96- ),
97- Text (
98- '$_counter ' ,
99- style: Theme .of (context).textTheme.display1,
100- ),
101- ],
102- ),
103- ),
104- floatingActionButton: FloatingActionButton (
105- onPressed: _incrementCounter,
106- tooltip: 'Increment' ,
107- child: Icon (Icons .add),
108- ), // This trailing comma makes auto-formatting nicer for build methods.
22+ home: MyHomePage (title: 'RSA Key Generator' ),
10923 );
11024 }
11125}
0 commit comments