From ee9484c6b9f1a15314f087ba67122cea75cf852d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr> Date: Fri, 15 Apr 2022 18:11:28 +0200 Subject: [PATCH] Add keyboard with 4 arrows --- android/gradle.properties | 4 +- .../metadata/android/en-US/changelogs/7.txt | 1 + .../metadata/android/fr-FR/changelogs/7.txt | 1 + lib/layout/keyboard.dart | 88 +++++++++++++++++++ lib/screens/home.dart | 3 + lib/utils/api.dart | 15 ++++ 6 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/7.txt create mode 100644 fastlane/metadata/android/fr-FR/changelogs/7.txt create mode 100644 lib/layout/keyboard.dart diff --git a/android/gradle.properties b/android/gradle.properties index 135006f..85b94f8 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 0000000..a345447 --- /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 0000000..e01a3eb --- /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 0000000..a8b7a69 --- /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 15439f7..325686a 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 043e76e..1971612 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']); + } + } -- GitLab