diff --git a/android/gradle.properties b/android/gradle.properties index 135006f9c1386c8757595c43e890e911f732f5a3..85b94f88ee157e1d1b3cec184c8948902443d36f 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -app.versionName=0.0.6 -app.versionCode=6 +app.versionName=0.0.7 +app.versionCode=7 diff --git a/fastlane/metadata/android/en-US/changelogs/7.txt b/fastlane/metadata/android/en-US/changelogs/7.txt new file mode 100644 index 0000000000000000000000000000000000000000..a345447c07623ed595a7109163f79087d4773ae7 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/7.txt @@ -0,0 +1 @@ +Add a "4 arrows" command keyboard diff --git a/fastlane/metadata/android/fr-FR/changelogs/7.txt b/fastlane/metadata/android/fr-FR/changelogs/7.txt new file mode 100644 index 0000000000000000000000000000000000000000..e01a3eb8dee3efde0eac918ffc3871ab0411fb0c --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/7.txt @@ -0,0 +1 @@ +Ajout d'un clavier de commandes "4 flèches" diff --git a/lib/layout/keyboard.dart b/lib/layout/keyboard.dart new file mode 100644 index 0000000000000000000000000000000000000000..a8b7a69a9023f63bfc73fcc3d168078b82df1746 --- /dev/null +++ b/lib/layout/keyboard.dart @@ -0,0 +1,88 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +import '../provider/data.dart'; +import '../utils/api.dart'; + +class Keyboard { + + static Container buildWidget(Data myProvider) { + Widget buildKeyWidget(String direction) { + String keyText = ''; + + String north = '🔼'; + String south = '🔽'; + String west = '◀️'; + String east = '▶️'; + + if (direction == 'north') { + keyText = north; + } else { + if (direction == 'south') { + keyText = south; + } else { + if (direction == 'west') { + keyText = west; + } else { + if (direction == 'east') { + keyText = east; + } + } + } + } + + return TextButton( + style: TextButton.styleFrom( + padding: const EdgeInsets.all(0), + ), + child: Text( + keyText, + style: TextStyle( + fontSize: 60.0, + fontWeight: FontWeight.w800, + ), + textAlign: TextAlign.center + ), + onPressed: () { + if (keyText != '') { + Api.move(myProvider, direction); + } + }, + ); + } + + return Container( + margin: EdgeInsets.symmetric(horizontal: 2), + padding: EdgeInsets.all(2), + + child: Table( + defaultVerticalAlignment: TableCellVerticalAlignment.middle, + children: [ + TableRow( + children: [ + TableCell(child: buildKeyWidget('')), + TableCell(child: buildKeyWidget('north')), + TableCell(child: buildKeyWidget('')), + ] + ), + TableRow( + children: [ + TableCell(child: buildKeyWidget('west')), + TableCell(child: buildKeyWidget('')), + TableCell(child: buildKeyWidget('east')), + ] + ), + TableRow( + children: [ + TableCell(child: buildKeyWidget('')), + TableCell(child: buildKeyWidget('south')), + TableCell(child: buildKeyWidget('')), + ] + ), + ], + ) + ); + } + +} diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 15439f75078b5da02eec770e4886bec02b52a4c2..325686a3f0ecaeda5907e77b3f10d6658c3fb367 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import '../layout/keyboard.dart'; import '../provider/data.dart'; import '../screens/settings.dart'; import '../utils/api.dart'; @@ -52,6 +53,7 @@ class _HomeState extends State<Home> { child: Center( child: Column( children: [ + Keyboard.buildWidget(myProvider), FlatButton( child: Container( child: Text('get API status'), @@ -59,6 +61,7 @@ class _HomeState extends State<Home> { onPressed: () => Api.updateApiStatus(myProvider), ), Text(myProvider.apiStatus) + ], ) ), diff --git a/lib/utils/api.dart b/lib/utils/api.dart index 043e76e09abbdd973e16b1f58c94b6333903c0f6..19716120facf47cee1464c13c3da05ebc6317261 100644 --- a/lib/utils/api.dart +++ b/lib/utils/api.dart @@ -19,4 +19,19 @@ class Api { myProvider.updateApiStatus(status['status']); } + static Future<void> move(Data myProvider, String direction) async { + + final response = await http.get( + Uri.http( + myProvider.apiHost, + direction + ) + ); + + String responseData = utf8.decode(response.bodyBytes); + Map<String, dynamic> result = json.decode(responseData); + + myProvider.updateApiStatus(result['result']); + } + }