enh: improve routes to safe home

This commit is contained in:
poka 2023-11-24 22:48:24 +01:00
parent db5358ace8
commit 6d16b99cbf
5 changed files with 25 additions and 33 deletions

View File

@ -166,9 +166,9 @@ class Gecko extends StatelessWidget {
colorScheme: colorScheme:
ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]), ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]),
), ),
home: const HomeScreen(),
initialRoute: "/", initialRoute: "/",
routes: { routes: {
'/': (context) => const HomeScreen(),
'/mywallets': (context) => const WalletsHome(), '/mywallets': (context) => const WalletsHome(),
'/search': (context) => const SearchScreen(), '/search': (context) => const SearchScreen(),
'/searchResult': (context) => const SearchResultScreen(), '/searchResult': (context) => const SearchResultScreen(),

View File

@ -10,7 +10,6 @@ import 'package:flutter/material.dart';
import 'package:gecko/screens/myWallets/restore_chest.dart'; import 'package:gecko/screens/myWallets/restore_chest.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:carousel_slider/carousel_slider.dart'; import 'package:carousel_slider/carousel_slider.dart';
import 'package:gecko/screens/myWallets/wallets_home.dart';
import 'package:gecko/screens/onBoarding/5.dart'; import 'package:gecko/screens/onBoarding/5.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -132,12 +131,7 @@ class _ChooseChestState extends State<ChooseChest> {
ModalRoute.withName('/'), ModalRoute.withName('/'),
); );
if (myWalletProvider.pinCode != '') { if (myWalletProvider.pinCode != '') {
Navigator.push( Navigator.pushNamed(context, '/mywallets');
context,
MaterialPageRoute(builder: (context) {
return const WalletsHome();
}),
);
} }
}, },
child: Text( child: Text(

View File

@ -137,12 +137,6 @@ class _CustomDerivationState extends State<CustomDerivation> {
} }
Navigator.pop(context); Navigator.pop(context);
Navigator.pop(context); Navigator.pop(context);
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) {
// return const WalletsHome();
// }),
// );
} }
}, },
child: Text( child: Text(

View File

@ -1,5 +1,7 @@
// ignore_for_file: use_build_context_synchronously // ignore_for_file: use_build_context_synchronously
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/models/wallet_data.dart';
@ -8,7 +10,6 @@ import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/search.dart'; import 'package:gecko/providers/search.dart';
import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/myWallets/wallets_home.dart';
import 'package:gecko/screens/search.dart'; import 'package:gecko/screens/search.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -111,18 +112,15 @@ class GeckoBottomAppBar extends StatelessWidget {
), ),
); );
} }
if (pin != null || myWalletProvider.pinCode != '') { if (pin != null || myWalletProvider.pinCode != '') {
Navigator.popUntil( // log.d(
context, // isRoutePresentInNavigator(context, '/mywallets'));
ModalRoute.withName('/'), Navigator.popUntil(context, ModalRoute.withName('/'));
); //FIXME: Should not have to wait 300 milliseconds when /mywallets exist in navigator...
Navigator.push( sleep(const Duration(milliseconds: 300));
context, Navigator.pushNamed(context, '/mywallets');
MaterialPageRoute(builder: (context) { // Navigator.pushNamedAndRemoveUntil(
return const WalletsHome(); // context, '/mywallets', ModalRoute.withName('/'));
}),
);
} }
}, },
), ),
@ -134,3 +132,15 @@ class GeckoBottomAppBar extends StatelessWidget {
); );
} }
} }
bool isRoutePresentInNavigator(BuildContext context, String routeName) {
bool isPresent = false;
Navigator.popUntil(context, (route) {
log.d(route.settings.name);
if (route.settings.name == routeName) {
isPresent = true;
}
return true;
});
return isPresent;
}

View File

@ -9,7 +9,6 @@ import 'package:gecko/providers/home.dart';
import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/my_wallets.dart';
import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/providers/wallets_profiles.dart';
import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/myWallets/unlocking_wallet.dart';
import 'package:gecko/screens/myWallets/wallets_home.dart';
import 'package:gecko/screens/search.dart'; import 'package:gecko/screens/search.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -105,12 +104,7 @@ class HomeButtons extends StatelessWidget {
); );
} }
if (pin != null || myWalletProvider.pinCode != '') { if (pin != null || myWalletProvider.pinCode != '') {
Navigator.push( Navigator.pushNamed(context, '/mywallets');
context,
MaterialPageRoute(builder: (context) {
return const WalletsHome();
}),
);
} }
}, },
child: Padding( child: Padding(