setting.dart 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. import 'dart:convert';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:polkawallet_sdk/polkawallet_sdk.dart';
  5. import 'package:polkawallet_sdk/api/types/networkStateData.dart';
  6. import 'package:polkawallet_sdk_example/pages/keyring.dart';
  7. class SettingPage extends StatefulWidget {
  8. SettingPage(this.sdk, this.showResult);
  9. final WalletSDK sdk;
  10. final Function(BuildContext, String, String) showResult;
  11. static const String route = '/setting';
  12. @override
  13. _SettingPageState createState() => _SettingPageState();
  14. }
  15. class _SettingPageState extends State<SettingPage> {
  16. bool _submitting = false;
  17. BigInt _bestNumber;
  18. Future<void> _queryNetworkConst() async {
  19. setState(() {
  20. _submitting = true;
  21. });
  22. final Map res = await widget.sdk.api.setting.queryNetworkConst();
  23. widget.showResult(
  24. context,
  25. 'queryNetworkConst',
  26. JsonEncoder.withIndent(' ').convert(res),
  27. );
  28. setState(() {
  29. _submitting = false;
  30. });
  31. }
  32. Future<void> _queryNetworkProperties() async {
  33. setState(() {
  34. _submitting = true;
  35. });
  36. final NetworkStateData res =
  37. await widget.sdk.api.setting.queryNetworkProps();
  38. widget.showResult(
  39. context,
  40. 'queryNetworkProps',
  41. JsonEncoder.withIndent(' ').convert(res.toJson()),
  42. );
  43. setState(() {
  44. _submitting = false;
  45. });
  46. }
  47. Future<void> _subscribeBestNumber() async {
  48. widget.sdk.api.setting.subscribeBestNumber((res) {
  49. setState(() {
  50. _bestNumber = BigInt.parse(res.toString());
  51. });
  52. });
  53. }
  54. Future<void> _unsubscribeBestNumber() async {
  55. widget.sdk.api.setting.unsubscribeBestNumber();
  56. }
  57. @override
  58. void dispose() {
  59. _unsubscribeBestNumber();
  60. super.dispose();
  61. }
  62. @override
  63. Widget build(BuildContext context) {
  64. return Scaffold(
  65. appBar: AppBar(
  66. title: Text('setting API'),
  67. ),
  68. body: SafeArea(
  69. child: ListView(
  70. children: [
  71. Padding(
  72. padding: EdgeInsets.all(16),
  73. child: Text('bestNumber: #$_bestNumber'),
  74. ),
  75. Divider(),
  76. ListTile(
  77. title: Text('queryNetworkConst'),
  78. subtitle: Text('sdk.api.setting.queryNetworkConst()'),
  79. trailing: SubmitButton(
  80. submitting: _submitting,
  81. call: _queryNetworkConst,
  82. needConnect: widget.sdk.api.connectedNode == null,
  83. ),
  84. ),
  85. Divider(),
  86. ListTile(
  87. title: Text('queryNetworkProps'),
  88. subtitle: Text('sdk.api.setting.queryNetworkProps()'),
  89. trailing: SubmitButton(
  90. submitting: _submitting,
  91. call: _queryNetworkProperties,
  92. needConnect: widget.sdk.api.connectedNode == null,
  93. ),
  94. ),
  95. Divider(),
  96. ListTile(
  97. title: Text('subscribeBestNumber'),
  98. subtitle: Text('sdk.api.setting.subscribeBestNumber()'),
  99. trailing: SubmitButton(
  100. submitting: _submitting,
  101. call: _subscribeBestNumber,
  102. needConnect: widget.sdk.api.connectedNode == null,
  103. ),
  104. ),
  105. Divider(),
  106. ListTile(
  107. title: Text('unsubscribeBestNumber'),
  108. subtitle: Text('sdk.api.setting.unsubscribeBestNumber()'),
  109. trailing: SubmitButton(
  110. submitting: _submitting,
  111. call: _unsubscribeBestNumber,
  112. needConnect: widget.sdk.api.connectedNode == null,
  113. ),
  114. ),
  115. Divider(),
  116. ],
  117. ),
  118. ), // This trailing comma makes auto-formatting nicer for build methods.
  119. );
  120. }
  121. }