fix: refresh bugs

This commit is contained in:
poka 2022-05-28 21:15:47 +02:00
parent f535bea932
commit f5c14e8924
8 changed files with 71 additions and 77 deletions

View File

@ -13,7 +13,7 @@ import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/search.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter/foundation.dart' show kDebugMode, kIsWeb;
import 'package:path_provider/path_provider.dart' as pp;
import 'package:package_info_plus/package_info_plus.dart';
import 'package:path_provider/path_provider.dart';
@ -63,7 +63,9 @@ class HomeProvider with ChangeNotifier {
String buildNumber;
PackageInfo packageInfo = await PackageInfo.fromPlatform();
version = packageInfo.version;
buildNumber = packageInfo.buildNumber;
buildNumber = kDebugMode
? packageInfo.buildNumber
: (int.parse(packageInfo.buildNumber) - 1000).toString();
notifyListeners();
return version + '+' + buildNumber;

View File

@ -3,6 +3,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:polkawallet_sdk/api/apiKeyring.dart';
import 'package:polkawallet_sdk/api/types/networkParams.dart';
import 'package:polkawallet_sdk/api/types/txInfoData.dart';
@ -205,6 +207,18 @@ class SubstrateSdk with ChangeNotifier {
return balance;
}
Future<double> subscribeBalance(String address, {bool isUd = false}) async {
double balance = 0.0;
if (nodeConnected) {
await sdk.api.account.subscribeBalance(address, (_balance) {
balance = int.parse(_balance.freeBalance) / 100;
notifyListeners();
});
}
return balance;
}
KeyPairData getKeypair(String address) {
return keyring.keyPairs.firstWhere((kp) => kp.address == address,
orElse: (() => KeyPairData()));
@ -251,9 +265,14 @@ class SubstrateSdk with ChangeNotifier {
return gen.mnemonic!;
}
String setCurrentWallet(String address) {
Future<String> setCurrentWallet(WalletData _wallet) async {
final currentChestNumber = configBox.get('currentChest');
ChestData _newChestData = chestBox.get(currentChestNumber)!;
_newChestData.defaultWallet = _wallet.number;
await chestBox.put(currentChestNumber, _newChestData);
try {
final acc = getKeypair(address);
final acc = getKeypair(_wallet.address!);
keyring.setCurrent(acc);
return acc.address!;
} catch (e) {
@ -277,7 +296,7 @@ class SubstrateSdk with ChangeNotifier {
required String password}) async {
transactionStatus = '';
setCurrentWallet(fromAddress);
// setCurrentWallet(fromAddress);
log.d(keyring.current.address);
log.d(fromAddress);
@ -327,7 +346,7 @@ class SubstrateSdk with ChangeNotifier {
String fromAddress, String password, String toAddress) async {
transactionStatus = '';
setCurrentWallet(fromAddress);
// setCurrentWallet(fromAddress);
log.d('me: ' + fromAddress);
log.d('to: ' + toAddress);
@ -425,7 +444,7 @@ class SubstrateSdk with ChangeNotifier {
Future<String> confirmIdentity(
String fromAddress, String name, String password) async {
// Confirm identity
setCurrentWallet(fromAddress);
// setCurrentWallet(fromAddress);
log.d('me: ' + keyring.current.address!);
final sender = TxSenderData(

View File

@ -15,7 +15,6 @@ class WalletsProfilesProvider with ChangeNotifier {
String? pubkey = '';
String pubkeyShort = '';
final TextEditingController outputPubkey = TextEditingController();
List? transBC;
String? fetchMoreCursor;
Map? pageInfo;
@ -40,7 +39,6 @@ class WalletsProfilesProvider with ChangeNotifier {
return 'false';
}
if (barcode != null && isPubkey(barcode)) {
outputPubkey.text = barcode;
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
@ -85,17 +83,6 @@ class WalletsProfilesProvider with ChangeNotifier {
log.d("C'est une pubkey !");
this.pubkey = pubkey;
// getShortPubkey(pubkey);
// outputPubkey.text = pubkey;
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) {
// return const WalletViewScreen();
// }),
// );
// notifyListeners();
return true;
} else {
@ -212,7 +199,6 @@ class WalletsProfilesProvider with ChangeNotifier {
}
void resetdHistory() {
outputPubkey.text = '';
notifyListeners();
}

View File

@ -1,11 +1,11 @@
import 'dart:io';
import 'package:flutter/services.dart';
import 'package:gecko/globals.dart';
import 'package:flutter/material.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/substrate_sdk.dart';
import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/screens/myWallets/wallets_home.dart';
import 'package:provider/provider.dart';
// import 'package:gecko/models/home.dart';
@ -17,14 +17,13 @@ class ChooseWalletScreen extends StatelessWidget {
: super(key: key);
final int chest;
final String pin;
int? _derivation;
List<int?>? _selectedId;
WalletData? selectedWallet;
@override
Widget build(BuildContext context) {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
// HomeProvider _homeProvider = Provider.of<HomeProvider>(context);
return Scaffold(
appBar: AppBar(
toolbarHeight: 60 * ratio,
@ -49,6 +48,11 @@ class ChooseWalletScreen extends StatelessWidget {
onPrimary: Colors.white, // foreground
),
onPressed: () async {
await _sub.setCurrentWallet(selectedWallet!);
// _walletViewProvider.reload();
_sub.reload();
Navigator.pop(context);
Navigator.pop(context);
Navigator.pop(context);
@ -62,7 +66,6 @@ class ChooseWalletScreen extends StatelessWidget {
),
),
),
// const SizedBox(height: 160),
]),
));
}
@ -70,16 +73,12 @@ class ChooseWalletScreen extends StatelessWidget {
Widget myWalletsTiles(BuildContext context, int? currentChest) {
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context);
final bool isWalletsExists = _myWalletProvider.checkIfWalletExist();
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
WalletsProfilesProvider _walletViewProvider =
Provider.of<WalletsProfilesProvider>(context, listen: false);
// SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
final bool isWalletsExists = _myWalletProvider.checkIfWalletExist();
WalletData? defaultWallet = _myWalletProvider.getDefaultWallet();
_selectedId ??= defaultWallet!.id();
_derivation ??= defaultWallet!.derivation!;
_sub.setCurrentWallet(defaultWallet!.address!);
selectedWallet ??= defaultWallet!;
_myWalletProvider.readAllWallets(currentChest);
if (!isWalletsExists) {
@ -120,14 +119,8 @@ class ChooseWalletScreen extends StatelessWidget {
padding: const EdgeInsets.all(16),
child: GestureDetector(
onTap: () {
_derivation = _repository.derivation!;
_selectedId = _repository.id();
chestBox.get(currentChest)!.defaultWallet =
_repository.number;
_sub.setCurrentWallet(_repository.address!);
selectedWallet = _repository;
_myWalletProvider.rebuildWidget();
_walletViewProvider.reload();
},
child: ClipOvalShadow(
shadow: const Shadow(
@ -158,10 +151,19 @@ class ChooseWalletScreen extends StatelessWidget {
alignment: Alignment.bottomCenter,
scale: 0.5,
)
: Image.asset(
_repository.imageCustomPath!,
alignment: Alignment.bottomCenter,
scale: 0.5,
: Container(
width: 120,
height: 120,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.transparent,
image: DecorationImage(
fit: BoxFit.contain,
image: FileImage(
File(_repository.imageCustomPath!),
),
),
),
),
)),
ListTile(
@ -170,9 +172,10 @@ class ChooseWalletScreen extends StatelessWidget {
bottom: Radius.circular(12),
),
),
tileColor: _repository.id()[1] == _selectedId![1]
? orangeC
: const Color(0xffFFD58D),
tileColor:
_repository.address == selectedWallet!.address
? orangeC
: const Color(0xffFFD58D),
title: Center(
child: Padding(
padding:
@ -182,27 +185,17 @@ class ChooseWalletScreen extends StatelessWidget {
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 17.0,
color:
_repository.id()[1] == _selectedId![1]
? const Color(0xffF9F9F1)
: Colors.black,
color: _repository.address ==
selectedWallet!.address
? const Color(0xffF9F9F1)
: Colors.black,
fontStyle: FontStyle.italic),
),
),
),
onTap: () async {
_derivation = _repository.derivation!;
_selectedId = _repository.id();
ChestData _newChestData =
chestBox.get(currentChest)!;
_newChestData.defaultWallet = _repository.number;
await chestBox.put(currentChest, _newChestData);
_sub.setCurrentWallet(_repository.address!);
selectedWallet = _repository;
_myWalletProvider.rebuildWidget();
_walletViewProvider.reload();
_sub.reload();
},
)
]),

View File

@ -2,7 +2,6 @@ import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/providers/home.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/models/wallet_data.dart';
@ -365,10 +364,7 @@ class WalletOptions extends StatelessWidget {
onTap: !walletProvider.isDefaultWallet
? () async {
defaultWallet = wallet;
ChestData _newChestData = chestBox.get(_currentChest)!;
_newChestData.defaultWallet = wallet.number;
await chestBox.put(_currentChest, _newChestData);
_sub.setCurrentWallet(wallet.address!);
await _sub.setCurrentWallet(wallet);
_myWalletProvider.readAllWallets(_currentChest);
_myWalletProvider.rebuildWidget();
}

View File

@ -5,7 +5,6 @@ import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart';
import 'package:gecko/providers/home.dart';
import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/models/queries.dart';
import 'package:gecko/models/wallet_data.dart';
import 'package:flutter/material.dart';
import 'package:gecko/providers/wallet_options.dart';
@ -13,7 +12,6 @@ import 'package:gecko/screens/common_elements.dart';
import 'package:gecko/screens/myWallets/chest_options.dart';
import 'package:gecko/screens/myWallets/choose_chest.dart';
import 'package:gecko/screens/myWallets/wallet_options.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:provider/provider.dart';
class WalletsHome extends StatelessWidget {
@ -253,7 +251,7 @@ class WalletsHome extends StatelessWidget {
bottom: Radius.circular(12))),
// contentPadding: const EdgeInsets.only(left: 7.0),
tileColor:
_repository.id()[1] == defaultWallet!.id()[1]
_repository.id()[1] == defaultWallet.id()[1]
? orangeC
: const Color(0xffFFD58D),
// leading: Text('IMAGE'),

View File

@ -37,7 +37,7 @@ class WalletViewScreen extends StatelessWidget {
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context, listen: false);
WalletData? defaultWallet = _myWalletProvider.getDefaultWallet();
_sub.setCurrentWallet(defaultWallet!.address!);
_sub.setCurrentWallet(defaultWallet!);
return Scaffold(
resizeToAvoidBottomInset: true,
@ -102,8 +102,10 @@ class WalletViewScreen extends StatelessWidget {
),
]),
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
WalletData? _defaultWallet =
_myWalletProvider.getDefaultWallet();
return FutureBuilder(
future: _sub.isMember(defaultWallet.address!),
future: _sub.isMember(_defaultWallet!.address!),
builder: (context, AsyncSnapshot<bool?> snapshot) {
return Visibility(
visible: (snapshot.data ?? false),
@ -128,7 +130,7 @@ class WalletViewScreen extends StatelessWidget {
MaterialPageRoute(
builder: (context) {
return UnlockingWallet(
wallet: defaultWallet,
wallet: _defaultWallet,
action: "cert");
},
),
@ -259,8 +261,6 @@ class WalletViewScreen extends StatelessWidget {
bool canValidate = false;
_walletViewProvider.outputPubkey.text = pubkey!;
showModalBottomSheet<void>(
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only(

View File

@ -5,7 +5,7 @@ description: Pay with G1.
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 0.0.7+1
version: 0.0.7+2
environment:
sdk: '>=2.12.0 <3.0.0'