fix initial load bug

This commit is contained in:
Mike Schwörer 2024-05-26 18:34:42 +02:00
parent dae5182f90
commit f9dbbf4638
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
4 changed files with 20 additions and 15 deletions

View File

@ -59,6 +59,7 @@ class SCNApp extends StatelessWidget {
builder: (context, appTheme, child) => MaterialApp(
title: 'SimpleCloudNotifier',
theme: ThemeData(
//TODO color settings
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue, brightness: appTheme.darkMode ? Brightness.dark : Brightness.light),
useMaterial3: true,
),

View File

@ -18,14 +18,6 @@ class SCNNavLayout extends StatefulWidget {
class _SCNNavLayoutState extends State<SCNNavLayout> {
int _selectedIndex = 0; // 4 == FAB
static const List<Widget> _subPages = <Widget>[
MessageListPage(),
ChannelRootPage(),
AccountRootPage(),
SettingsRootPage(),
SendRootPage(),
];
void _onItemTapped(int index) {
setState(() {
_selectedIndex = index;
@ -47,7 +39,16 @@ class _SCNNavLayoutState extends State<SCNNavLayout> {
showSearch: _selectedIndex == 0 || _selectedIndex == 1,
showThemeSwitch: true,
),
body: _subPages.elementAt(_selectedIndex),
body: IndexedStack(
children: [
MessageListPage(),
ChannelRootPage(),
AccountRootPage(),
SettingsRootPage(),
SendRootPage(),
],
index: _selectedIndex,
),
bottomNavigationBar: _buildNavBar(context),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
floatingActionButton: _buildFAB(context),
@ -57,7 +58,6 @@ class _SCNNavLayoutState extends State<SCNNavLayout> {
Widget _buildFAB(BuildContext context) {
return FloatingActionButton(
onPressed: _onFABTapped,
tooltip: 'Increment',
shape: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(17))),
elevation: 2.0,
child: const Icon(FontAwesomeIcons.solidPaperPlaneTop),

View File

@ -1,6 +1,7 @@
import 'dart:io';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Globals {
static final Globals _singleton = Globals._internal();
@ -18,6 +19,8 @@ class Globals {
String platform = '';
String hostname = '';
late SharedPreferences sharedPrefs;
Future<void> init() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
@ -27,5 +30,7 @@ class Globals {
this.buildNumber = packageInfo.buildNumber;
this.platform = Platform.operatingSystem;
this.hostname = Platform.localHostname;
this.sharedPrefs = await SharedPreferences.getInstance();
}
}

View File

@ -3,6 +3,7 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:simplecloudnotifier/api/api_client.dart';
import 'package:simplecloudnotifier/models/key_token_auth.dart';
import 'package:simplecloudnotifier/models/user.dart';
import 'package:simplecloudnotifier/state/globals.dart';
class UserAccount extends ChangeNotifier {
User? _user;
@ -37,11 +38,9 @@ class UserAccount extends ChangeNotifier {
notifyListeners();
}
void load() async {
final prefs = await SharedPreferences.getInstance();
final uid = prefs.getString('auth.userid');
final tok = prefs.getString('auth.token');
void load() {
final uid = Globals().sharedPrefs.getString('auth.userid');
final tok = Globals().sharedPrefs.getString('auth.token');
if (uid != null && tok != null) {
setToken(KeyTokenAuth(userId: uid, token: tok));