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

Add keyboard with 4 arrows

parent d2f4ffa6
Branches
Tags Release_1.4.2_30
1 merge request!8Resolve "Add virtual keyboard"
Pipeline #2625 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.6 app.versionName=0.0.7
app.versionCode=6 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:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../layout/keyboard.dart';
import '../provider/data.dart'; import '../provider/data.dart';
import '../screens/settings.dart'; import '../screens/settings.dart';
import '../utils/api.dart'; import '../utils/api.dart';
...@@ -52,6 +53,7 @@ class _HomeState extends State<Home> { ...@@ -52,6 +53,7 @@ class _HomeState extends State<Home> {
child: Center( child: Center(
child: Column( child: Column(
children: [ children: [
Keyboard.buildWidget(myProvider),
FlatButton( FlatButton(
child: Container( child: Container(
child: Text('get API status'), child: Text('get API status'),
...@@ -59,6 +61,7 @@ class _HomeState extends State<Home> { ...@@ -59,6 +61,7 @@ class _HomeState extends State<Home> {
onPressed: () => Api.updateApiStatus(myProvider), onPressed: () => Api.updateApiStatus(myProvider),
), ),
Text(myProvider.apiStatus) Text(myProvider.apiStatus)
], ],
) )
), ),
......
...@@ -19,4 +19,19 @@ class Api { ...@@ -19,4 +19,19 @@ class Api {
myProvider.updateApiStatus(status['status']); 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