mirror of
https://github.com/zoriya/Aeris.git
synced 2026-08-16 02:45:10 +00:00
Merge pull request #117 from AnonymusRaccoon/mobile_client_setupaction_page_form
Mobile Client: fix state in action form
This commit is contained in:
@@ -21,9 +21,13 @@ class ServiceProvider extends ChangeNotifier {
|
||||
/// Adds a service into the Provider
|
||||
addService(Service service, String code) async {
|
||||
_connectedServices.add(service);
|
||||
GetIt.I<AerisAPI>()
|
||||
.connectService(service, code)
|
||||
.then((value) => notifyListeners());
|
||||
if (service != const Service.utils()) {
|
||||
GetIt.I<AerisAPI>()
|
||||
.connectService(service, code)
|
||||
.then((value) => notifyListeners());
|
||||
} else {
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
/// Refresh services from API
|
||||
|
||||
@@ -19,12 +19,12 @@ class AuthorizationPage extends StatelessWidget {
|
||||
|
||||
if (segments.removeLast() == 'signin') {
|
||||
GetIt.I<AerisAPI>().createConnectionFromService(service, code).then((value) => Navigator.pop(context));
|
||||
} else {
|
||||
Provider.of<ServiceProvider>(context, listen: false).addService(service, code).then((_) {
|
||||
Provider.of<ServiceProvider>(context, listen: false).notifyListeners();
|
||||
Navigator.pop(context);
|
||||
});
|
||||
}
|
||||
return Container();
|
||||
}
|
||||
Provider.of<ServiceProvider>(context, listen: false).addService(service, code).then((_) {
|
||||
Provider.of<ServiceProvider>(context, listen: false).notifyListeners();
|
||||
Navigator.pop(context);
|
||||
});
|
||||
return Container(
|
||||
alignment: Alignment.center,
|
||||
child: LoadingIndicator(
|
||||
|
||||
@@ -73,7 +73,9 @@ class LoginPage extends StatelessWidget {
|
||||
label: service.name,
|
||||
callback: () async {
|
||||
await launch(Uri.parse(service.authSignInUrl).toString(), forceSafariVC: false);
|
||||
return GetIt.I<AerisAPI>().isConnected ? null : AppLocalizations.of(context).cantSignInFromService;
|
||||
return Future.delayed(Duration(seconds: 3)).then((value) {
|
||||
return GetIt.I<AerisAPI>().isConnected ? null : AppLocalizations.of(context).cantSignInFromService;
|
||||
});
|
||||
}
|
||||
)
|
||||
],
|
||||
|
||||
@@ -71,7 +71,11 @@ class ServicePage extends StatelessWidget {
|
||||
AppLocalizations.of(context).available,
|
||||
const Icon(Icons.connect_without_contact, color: Colors.green),
|
||||
(Service service) {
|
||||
launch(Uri.parse(service.authUrl).toString(), forceSafariVC: false);
|
||||
if (service == const Service.utils()) {
|
||||
serviceProvider.addService(service, '');
|
||||
} else {
|
||||
launch(Uri.parse(service.authUrl).toString(), forceSafariVC: false);
|
||||
}
|
||||
},
|
||||
context),
|
||||
],
|
||||
|
||||
@@ -46,9 +46,11 @@ class _SetupActionPageState extends State<SetupActionPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
serviceState = widget.action.service;
|
||||
var services = Provider.of<ServiceProvider>(context, listen: false).connectedServices;
|
||||
availableActions = GetIt.I<AerisAPI>().getActionsFor(services.contains(serviceState) ? serviceState : services[0], widget.action);
|
||||
if (services.isNotEmpty) {
|
||||
serviceState = services.contains(widget.action.service) ? widget.action.service : services[0];
|
||||
availableActions = GetIt.I<AerisAPI>().getActionsFor(serviceState, widget.action);
|
||||
}
|
||||
}
|
||||
|
||||
Widget serviceDropdown(List<Service> services) {
|
||||
|
||||
Reference in New Issue
Block a user