|
|
- 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<ConversationsList> createState() => _ConversationsListState();
- }
-
- class _ConversationsListState extends State<ConversationsList> {
- @override
- void initState() {
- checkLogin();
-
- super.initState();
- }
-
- final _suggestions = <String>[];
- 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: <Widget>[
- PopupMenuButton(
- icon: const FaIcon(FontAwesomeIcons.ellipsisVertical, color: Colors.white, size: 40),
- itemBuilder: (context) => [
- const PopupMenuItem<int>(
- value: 0,
- child: Text("Settings"),
- ),
- const PopupMenuItem<int>(
- 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;
- }
- }
- }
|