flutter_resu 0.0.1
flutter_resu: ^0.0.1 copied to clipboard
A new Resu Flutter plugin project.
example/lib/main.dart
import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_resu/flutter_resu.dart';
import 'component.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _i = '-';
String _callbackLog = '';
final _flutterResuPlugin = FlutterResu();
final LabelTextField _aTextField = LabelTextField("a", "Input a");
final LabelCheckbox _ucCheckbox = LabelCheckbox("uc");
final LabelCheckbox _uaCheckbox = LabelCheckbox("ua");
final LabelTextField _uTextField = LabelTextField("u", "Input u");
final LabelTextField _eTextField = LabelTextField("e", "Input e");
@override
void initState() {
super.initState();
initPlatformState();
_flutterResuPlugin.callbackStream().listen((event) {
debugPrint('event: $event');
if (defaultTargetPlatform == TargetPlatform.android ) {
Codec<String, String> base64Codec = utf8.fuse(base64);
String decoded = base64Codec.decode(event);
event = decoded;
debugPrint('event (decoded): $event');
}
setState(() {
_callbackLog = event;
});
});
}
Future<void> initPlatformState() async {
_aTextField.textEditingController.text = "dYZuBEsrdZoekA9z";
_uTextField.textEditingController.text = "flutter_user";
_eTextField.textEditingController.text = "Test String";
if (!mounted) return;
setState(() {
});
}
void _dCall() {
String a = _aTextField.textEditingController.text;
debugPrint("_a.textEditingController.text : $a");
_flutterResuPlugin.D(a);
}
void _oCall() {
bool uc = _ucCheckbox.isChecked;
bool ua = _uaCheckbox.isChecked;
debugPrint("_ucCheckbox.isChecked; $uc");
debugPrint("_uaCheckbox.isChecked; $ua");
_flutterResuPlugin.O(uc, ua);
}
void _sCall() {
String u = _uTextField.textEditingController.text;
_flutterResuPlugin.S(u);
}
Future<String> _iCall() async {
String i;
try {
i = await _flutterResuPlugin.I() ?? 'Unknown I';
} on PlatformException {
i = 'Failed to get i.';
}
setState(() {
_i = i;
});
return i;
}
void _eCall() {
String eStr = _eTextField.textEditingController.text;
List<int> data = utf8.encode(eStr);
debugPrint("_eCall: $data");
_flutterResuPlugin.E(data);
}
void _csCall() {
_flutterResuPlugin.cs();
}
void _ccCall() {
_flutterResuPlugin.cc();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: SingleChildScrollView (
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
const SplitLine(),
// D
if (isIOS) _aTextField,
if (isIOS) CustomButton("D", Colors.black, Colors.white, _dCall),
if (isIOS) const SplitLine(),
// O
_ucCheckbox,
_uaCheckbox,
CustomButton("O", Colors.black, Colors.white, _oCall),
const SplitLine(),
// S
// userId
_uTextField,
CustomButton("S", Colors.black, Colors.white, _sCall),
const SplitLine(),
// I
CustomButton("I", Colors.black, Colors.white, _iCall),
Text(
_i,
style: const TextStyle(fontSize: 10, color: Colors.blue)
),
const SplitLine(),
// E
if (isAndroid) _eTextField,
if (isAndroid) CustomButton("E", Colors.black, Colors.white, _eCall),
if (isAndroid) const SplitLine(),
// cs
if (isIOS) CustomButton("cs", Colors.black, Colors.white, _csCall),
if (isIOS) const SplitLine(),
// cc
if (isIOS) CustomButton("cc", Colors.black, Colors.white, _ccCall),
if (isIOS) const SplitLine(),
// O - result
const Text(
'Callback',
style: TextStyle(fontSize: 12, color: Colors.red),
textAlign: TextAlign.center,
),
TextView(_callbackLog),
const SplitLine(),
]
)
),
),
);
}
}