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

Merge branch '7-add-virtual-keyboard' into 'master'

Resolve "Add virtual keyboard"

Closes #7

See merge request !8
parents d2f4ffa6 ee9484c6
No related branches found
No related tags found
1 merge request!8Resolve "Add virtual keyboard"
Pipeline #2847 passed
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
Add a "4 arrows" command keyboard
Ajout d'un clavier de commandes "4 flèches"
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('')),
]
),
],
)
);
}
}
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)
],
)
),
......
......@@ -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']);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment