import 'package:flutter/material.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import '/views/main/conversation_list.dart';
|
|
import '/views/main/friend_list.dart';
|
|
import '/views/main/profile.dart';
|
|
import '/utils/storage/friends.dart';
|
|
import '/utils/storage/conversations.dart';
|
|
import '/utils/storage/messages.dart';
|
|
|
|
class Home extends StatefulWidget {
|
|
const Home({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<Home> createState() => _HomeState();
|
|
}
|
|
|
|
class _HomeState extends State<Home> {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
updateData();
|
|
}
|
|
|
|
void updateData() async {
|
|
await checkLogin();
|
|
await updateFriends();
|
|
await updateConversations();
|
|
await updateMessageThreads();
|
|
}
|
|
|
|
// TODO: Do server GET check here
|
|
Future checkLogin() async {
|
|
SharedPreferences preferences = await SharedPreferences.getInstance();
|
|
if (preferences.getBool('islogin') != true) {
|
|
Navigator.pushNamedAndRemoveUntil(context, '/landing', ModalRoute.withName('/landing'));
|
|
}
|
|
}
|
|
|
|
int _selectedIndex = 0;
|
|
static const List<Widget> _widgetOptions = <Widget>[
|
|
ConversationList(),
|
|
FriendList(),
|
|
Profile(),
|
|
];
|
|
|
|
void _onItemTapped(int index) {
|
|
setState(() {
|
|
_selectedIndex = index;
|
|
});
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return WillPopScope(
|
|
onWillPop: () async => false,
|
|
child: Scaffold(
|
|
body: _widgetOptions.elementAt(_selectedIndex),
|
|
bottomNavigationBar: BottomNavigationBar(
|
|
currentIndex: _selectedIndex,
|
|
onTap: _onItemTapped,
|
|
selectedItemColor: Colors.red,
|
|
unselectedItemColor: Colors.grey.shade600,
|
|
selectedLabelStyle: const TextStyle(fontWeight: FontWeight.w600),
|
|
unselectedLabelStyle: const TextStyle(fontWeight: FontWeight.w600),
|
|
type: BottomNavigationBarType.fixed,
|
|
items: const [
|
|
BottomNavigationBarItem(
|
|
icon: Icon(Icons.message),
|
|
label: "Chats",
|
|
),
|
|
BottomNavigationBarItem(
|
|
icon: Icon(Icons.group_work),
|
|
label: "Friends",
|
|
),
|
|
BottomNavigationBarItem(
|
|
icon: Icon(Icons.account_box),
|
|
label: "Profile",
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|