import 'dart:convert'; import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_provisioning_for_iot/objects/cloud_service_api.dart'; import 'package:flutter_provisioning_for_iot/widgets/sidebar.dart'; import 'package:shared_preferences/shared_preferences.dart'; class CloudService extends StatefulWidget { const CloudService({Key? key}) : super(key: key); @override State createState() => _CloudService(); } class _CloudService extends State{ late final Map credentials; CloudServiceAPI cloudServiceAPI = CloudServiceAPI(); int _selectedIndex = 0; void _onItemTapped(int index){ setState(() { _selectedIndex = index; if(_selectedIndex == 0){ cloudServiceAPI.updateDeviceList(); } if(_selectedIndex == 1){ // implementation missing } }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("Cloud Service"), ), body: Column( children: [ Expanded(child: ListView.separated( itemCount: cloudServiceAPI.getLoadedDevices().length, itemBuilder: (BuildContext context, int index) { return Container( height: 100, color: Colors.lightBlueAccent[100], child: Center(child: Text("Id: ${cloudServiceAPI.getLoadedDevices()[index]['id']} \n" "endpoint: ${cloudServiceAPI.getLoadedDevices()[index]['endpoint']} \n" "status: ${cloudServiceAPI.getLoadedDevices()[index]['endpoint']} \n" "connectionState: ${cloudServiceAPI.getLoadedDevices()[index]['connectionState']} \n" "lastActivityTime: ${cloudServiceAPI.getLoadedDevices()[index]['lastActivityTime']}"),), ); }, separatorBuilder: (BuildContext context, int index) => const Divider( thickness: 0, indent: 0, height: 5, color: Colors.white, ),) ) ], ), bottomNavigationBar: BottomNavigationBar( type: BottomNavigationBarType.fixed, items: const[ BottomNavigationBarItem( icon: Icon(Icons.refresh), label: 'Reload', ), BottomNavigationBarItem( icon: Icon(Icons.search), label: 'Search', ), ], currentIndex: _selectedIndex, selectedItemColor: Colors.lightBlueAccent, onTap: _onItemTapped, ), drawer: const Sidebar(), ); } }