import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import '/views/authentication/unauthenticated_landing.dart'; class ConversationsList extends StatefulWidget { const ConversationsList({Key? key}) : super(key: key); @override State createState() => _ConversationsListState(); } class _ConversationsListState extends State { @override void initState() { checkLogin(); super.initState(); } final _suggestions = []; final _biggerFont = const TextStyle(fontSize: 18); Future checkLogin() async { SharedPreferences preferences = await SharedPreferences.getInstance(); print(preferences.getBool('islogin')); if (preferences.getBool('islogin') != true) { setState(() { Navigator.of(context).push(MaterialPageRoute( builder: (context) => const UnauthenticatedLandingWidget(), )); }); } } Widget list() { if (_suggestions.isEmpty) { return const Center( child: Text('No Conversations'), ); } return ListView.builder( itemCount: _suggestions.length, padding: const EdgeInsets.all(16.0), itemBuilder: /*1*/ (context, i) { //if (i >= _suggestions.length) { // TODO: Check for more conversations here. Remove the itemCount to use this section //_suggestions.addAll(generateWordPairs().take(10)); /*4*/ //} return Column( children: [ ListTile( title: Text( _suggestions[i], style: _biggerFont, ), ), const Divider(), ] ); }, ); } @override Widget build(BuildContext context) { return WillPopScope( onWillPop: () async => false, child: Scaffold( appBar: AppBar( title: Text('Envelope'), actions: [ PopupMenuButton( icon: const FaIcon(FontAwesomeIcons.ellipsisVertical, color: Colors.white, size: 40), itemBuilder: (context) => [ const PopupMenuItem( value: 0, child: Text("Settings"), ), const PopupMenuItem( value: 1, child: Text("Logout"), ), ], onSelected: (item) => selectedMenuItem(context, item), ), ], ), body: list(), ), ); } void selectedMenuItem(BuildContext context, item) async { switch (item) { case 0: print("Settings"); break; case 1: SharedPreferences preferences = await SharedPreferences.getInstance(); preferences.setBool('islogin', false); Navigator.of(context).push(MaterialPageRoute( builder: (context) => const UnauthenticatedLandingWidget(), )); break; } } }