Skip to content
Snippets Groups Projects
Commit 53df2b0e authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Merge branch '13-clean-code' into 'master'

Resolve "Clean code"

Closes #13

See merge request !14
parents b5d89b8c 2a9b9efa
No related branches found
No related tags found
1 merge request!14Resolve "Clean code"
Pipeline #2944 passed
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.benoitharrault.memory"> package="org.benoitharrault.memory">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application <application
android:name="io.flutter.app.FlutterApplication" android:name="${applicationName}"
android:label="memory" android:label="memory"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher">
<activity <activity
android:name=".MainActivity" android:name="io.flutter.embedding.android.FlutterActivity"
android:launchMode="singleTop" android:launchMode="singleTop"
android:theme="@style/LaunchTheme" android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
...@@ -21,8 +16,6 @@ ...@@ -21,8 +16,6 @@
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data <meta-data
android:name="flutterEmbedding" android:name="flutterEmbedding"
android:value="2" /> android:value="2" />
......
package org.benoitharrault.memory
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
}
...@@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx1536M ...@@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx1536M
android.enableR8=true android.enableR8=true
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=1.0.8 app.versionName=1.0.10
app.versionCode=9 app.versionCode=11
...@@ -5,15 +5,13 @@ int selectedIndex ; ...@@ -5,15 +5,13 @@ int selectedIndex ;
bool selected = true; bool selected = true;
int points = 0; int points = 0;
List<TileModel> myPairs = new List<TileModel>(); List<TileModel> myPairs = [];
List<bool> clicked = new List<bool>(); List<bool> clicked = [];
List<bool> getClicked() { List<bool> getClicked() {
List<bool> yoClicked = [];
List<bool> yoClicked = new List<bool>(); List<TileModel> myPairs = getPairs();
List<TileModel> myairs = new List<TileModel>(); for (int i = 0; i < myPairs.length; i++) {
myairs = getPairs();
for(int i=0;i<myairs.length;i++){
yoClicked[i] = false; yoClicked[i] = false;
} }
...@@ -21,9 +19,7 @@ List<bool> getClicked(){ ...@@ -21,9 +19,7 @@ List<bool> getClicked(){
} }
List<TileModel> getPairs() { List<TileModel> getPairs() {
List<TileModel> pairs = [];
List<TileModel> pairs = new List<TileModel>();
TileModel tileModel = new TileModel(); TileModel tileModel = new TileModel();
//1 //1
...@@ -53,6 +49,7 @@ List<TileModel> getPairs(){ ...@@ -53,6 +49,7 @@ List<TileModel> getPairs(){
pairs.add(tileModel); pairs.add(tileModel);
pairs.add(tileModel); pairs.add(tileModel);
tileModel = new TileModel(); tileModel = new TileModel();
//5 //5
tileModel.setImageAssetPath("assets/panda.png"); tileModel.setImageAssetPath("assets/panda.png");
tileModel.setIsSelected(false); tileModel.setIsSelected(false);
...@@ -79,15 +76,12 @@ List<TileModel> getPairs(){ ...@@ -79,15 +76,12 @@ List<TileModel> getPairs(){
tileModel.setIsSelected(false); tileModel.setIsSelected(false);
pairs.add(tileModel); pairs.add(tileModel);
pairs.add(tileModel); pairs.add(tileModel);
tileModel = new TileModel();
return pairs; return pairs;
} }
List<TileModel> getQuestionPairs() { List<TileModel> getQuestionPairs() {
List<TileModel> pairs = [];
List<TileModel> pairs = new List<TileModel>();
TileModel tileModel = new TileModel(); TileModel tileModel = new TileModel();
//1 //1
...@@ -117,6 +111,7 @@ List<TileModel> getQuestionPairs(){ ...@@ -117,6 +111,7 @@ List<TileModel> getQuestionPairs(){
pairs.add(tileModel); pairs.add(tileModel);
pairs.add(tileModel); pairs.add(tileModel);
tileModel = new TileModel(); tileModel = new TileModel();
//5 //5
tileModel.setImageAssetPath("assets/question.png"); tileModel.setImageAssetPath("assets/question.png");
tileModel.setIsSelected(false); tileModel.setIsSelected(false);
...@@ -143,7 +138,6 @@ List<TileModel> getQuestionPairs(){ ...@@ -143,7 +138,6 @@ List<TileModel> getQuestionPairs(){
tileModel.setIsSelected(false); tileModel.setIsSelected(false);
pairs.add(tileModel); pairs.add(tileModel);
pairs.add(tileModel); pairs.add(tileModel);
tileModel = new TileModel();
return pairs; return pairs;
} }
...@@ -7,7 +7,6 @@ import 'package:memory/models/TileModel.dart'; ...@@ -7,7 +7,6 @@ import 'package:memory/models/TileModel.dart';
void main() => runApp(MyApp()); void main() => runApp(MyApp());
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return MaterialApp( return MaterialApp(
...@@ -27,26 +26,22 @@ class Home extends StatefulWidget { ...@@ -27,26 +26,22 @@ class Home extends StatefulWidget {
} }
class _HomeState extends State<Home> { class _HomeState extends State<Home> {
List<TileModel> gridViewTiles = new List<TileModel>(); List<TileModel> gridViewTiles = [];
List<TileModel> questionPairs = new List<TileModel>(); List<TileModel> questionPairs = [];
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
reStart(); reStart();
} }
void reStart() {
void reStart() {
myPairs = getPairs(); myPairs = getPairs();
myPairs.shuffle(); myPairs.shuffle();
gridViewTiles = myPairs; gridViewTiles = myPairs;
Future.delayed(const Duration(seconds: 5), () { Future.delayed(const Duration(seconds: 3), () {
// Here you can write your code
setState(() { setState(() {
print("2 seconds done");
// Here you can write your code for open new view
questionPairs = getQuestionPairs(); questionPairs = getQuestionPairs();
gridViewTiles = questionPairs; gridViewTiles = questionPairs;
selected = false; selected = false;
...@@ -54,7 +49,6 @@ class _HomeState extends State<Home> { ...@@ -54,7 +49,6 @@ class _HomeState extends State<Home> {
}); });
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
...@@ -67,31 +61,40 @@ class _HomeState extends State<Home> { ...@@ -67,31 +61,40 @@ class _HomeState extends State<Home> {
SizedBox( SizedBox(
height: 40, height: 40,
), ),
points != 800 ? Column( points != 800
? Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Text( Text(
"$points/800", "$points/800",
style: TextStyle( style: TextStyle(
fontSize: 20, fontWeight: FontWeight.w500), fontSize: 20,
fontWeight: FontWeight.w500,
),
), ),
Text( Text(
"Points", "Points",
textAlign: TextAlign.start, textAlign: TextAlign.start,
style: TextStyle( style: TextStyle(
fontSize: 14, fontWeight: FontWeight.w300), fontSize: 14,
fontWeight: FontWeight.w300,
),
), ),
], ],
) : Container(), )
: Container(),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
points != 800 ? GridView( points != 800
? GridView(
shrinkWrap: true, shrinkWrap: true,
//physics: ClampingScrollPhysics(), //physics: ClampingScrollPhysics(),
scrollDirection: Axis.vertical, scrollDirection: Axis.vertical,
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent( gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
mainAxisSpacing: 0.0, maxCrossAxisExtent: 100.0), mainAxisSpacing: 0.0,
maxCrossAxisExtent: 100.0,
),
children: List.generate(gridViewTiles.length, (index) { children: List.generate(gridViewTiles.length, (index) {
return Tile( return Tile(
imagePathUrl: gridViewTiles[index].getImageAssetPath(), imagePathUrl: gridViewTiles[index].getImageAssetPath(),
...@@ -99,7 +102,8 @@ class _HomeState extends State<Home> { ...@@ -99,7 +102,8 @@ class _HomeState extends State<Home> {
parent: this, parent: this,
); );
}), }),
) : Container( )
: Container(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
GestureDetector( GestureDetector(
...@@ -117,16 +121,19 @@ class _HomeState extends State<Home> { ...@@ -117,16 +121,19 @@ class _HomeState extends State<Home> {
color: Colors.blue, color: Colors.blue,
borderRadius: BorderRadius.circular(24), borderRadius: BorderRadius.circular(24),
), ),
child: Text("Replay", style: TextStyle( child: Text(
"Replay",
style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 17, fontSize: 17,
fontWeight: FontWeight.w500 fontWeight: FontWeight.w500,
),), ),
),
), ),
), ),
], ],
) ),
) ),
], ],
), ),
), ),
...@@ -135,12 +142,10 @@ class _HomeState extends State<Home> { ...@@ -135,12 +142,10 @@ class _HomeState extends State<Home> {
} }
} }
class Tile extends StatefulWidget { class Tile extends StatefulWidget {
String imagePathUrl; final String imagePathUrl;
int tileIndex; final int tileIndex;
_HomeState parent; final _HomeState parent;
Tile({this.imagePathUrl, this.tileIndex, this.parent}); Tile({this.imagePathUrl, this.tileIndex, this.parent});
...@@ -162,7 +167,7 @@ class _TileState extends State<Tile> { ...@@ -162,7 +167,7 @@ class _TileState extends State<Tile> {
if (selectedTile == myPairs[widget.tileIndex].getImageAssetPath()) { if (selectedTile == myPairs[widget.tileIndex].getImageAssetPath()) {
print("add point"); print("add point");
points = points + 100; points = points + 100;
print(selectedTile + " thishis" + widget.imagePathUrl); print(selectedTile + " -> " + widget.imagePathUrl);
TileModel tileModel = new TileModel(); TileModel tileModel = new TileModel();
print(widget.tileIndex); print(widget.tileIndex);
...@@ -179,9 +184,7 @@ class _TileState extends State<Tile> { ...@@ -179,9 +184,7 @@ class _TileState extends State<Tile> {
selectedTile = ""; selectedTile = "";
}); });
} else { } else {
print(selectedTile + print(selectedTile + " -> " + myPairs[widget.tileIndex].getImageAssetPath());
" thishis " +
myPairs[widget.tileIndex].getImageAssetPath());
print("wrong choice"); print("wrong choice");
print(widget.tileIndex); print(widget.tileIndex);
print(selectedIndex); print(selectedIndex);
......
class TileModel { class TileModel {
String imageAssetPath; String imageAssetPath;
bool isSelected; bool isSelected;
......
...@@ -21,7 +21,7 @@ packages: ...@@ -21,7 +21,7 @@ packages:
name: characters name: characters
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.1.0" version: "1.2.0"
charcode: charcode:
dependency: transitive dependency: transitive
description: description:
...@@ -42,7 +42,7 @@ packages: ...@@ -42,7 +42,7 @@ packages:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -56,7 +56,7 @@ packages: ...@@ -56,7 +56,7 @@ packages:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.3.0"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
...@@ -74,6 +74,13 @@ packages: ...@@ -74,6 +74,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.12.11" version: "0.12.11"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.4"
meta: meta:
dependency: transitive dependency: transitive
description: description:
...@@ -87,7 +94,7 @@ packages: ...@@ -87,7 +94,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0" version: "1.8.1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -99,7 +106,7 @@ packages: ...@@ -99,7 +106,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.1" version: "1.8.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
...@@ -134,20 +141,13 @@ packages: ...@@ -134,20 +141,13 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.3" version: "0.4.9"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.1.2"
sdks: sdks:
dart: ">=2.12.0 <3.0.0" dart: ">=2.17.0-0 <3.0.0"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment