add fullscree toggle to home page
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_fullscreen/flutter_fullscreen.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:sheetless/login_page.dart';
|
import 'package:sheetless/login_page.dart';
|
||||||
import 'package:sheetless/sheet_viewer_page.dart';
|
import 'package:sheetless/sheet_viewer_page.dart';
|
||||||
@@ -17,7 +19,7 @@ class MyHomePage extends StatefulWidget {
|
|||||||
State<MyHomePage> createState() => _MyHomePageState();
|
State<MyHomePage> createState() => _MyHomePageState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _MyHomePageState extends State<MyHomePage> {
|
class _MyHomePageState extends State<MyHomePage> with FullScreenListener {
|
||||||
ApiClient? apiClient;
|
ApiClient? apiClient;
|
||||||
Future<bool> apiLoggedIn = Future.value(false);
|
Future<bool> apiLoggedIn = Future.value(false);
|
||||||
final StorageHelper _storageHelper = StorageHelper();
|
final StorageHelper _storageHelper = StorageHelper();
|
||||||
@@ -29,11 +31,22 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
FullScreen.addListener(this);
|
||||||
|
|
||||||
|
// Load saved fullscreen
|
||||||
|
FullScreen.setFullScreen(widget.config.fullscreen);
|
||||||
|
|
||||||
super.initState();
|
super.initState();
|
||||||
_loadAppInfo();
|
_loadAppInfo();
|
||||||
sheets = acquireSheets();
|
sheets = acquireSheets();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
FullScreen.removeListener(this);
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _loadAppInfo() async {
|
Future<void> _loadAppInfo() async {
|
||||||
final info = await PackageInfo.fromPlatform();
|
final info = await PackageInfo.fromPlatform();
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -120,13 +133,17 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
switchShufflingState(!shuffling);
|
switchShufflingState(!shuffling);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
// ListTile(
|
ListTile(
|
||||||
// leading: const Icon(Icons.sync),
|
leading: Icon(
|
||||||
// title: const Text('Sync Mode'),
|
widget.config.fullscreen
|
||||||
// onTap: () {
|
? Icons.fullscreen_exit
|
||||||
// // TODO
|
: Icons.fullscreen,
|
||||||
// },
|
),
|
||||||
// ),
|
title: widget.config.fullscreen
|
||||||
|
? const Text('Exit Fullscreen')
|
||||||
|
: const Text('Enter Fullscreen'),
|
||||||
|
onTap: toggleFullscreen,
|
||||||
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
leading: const Icon(Icons.logout),
|
leading: const Icon(Icons.logout),
|
||||||
title: const Text('Logout'),
|
title: const Text('Logout'),
|
||||||
@@ -150,6 +167,18 @@ class _MyHomePageState extends State<MyHomePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onFullScreenChanged(bool enabled, SystemUiMode? systemUiMode) {
|
||||||
|
setState(() {
|
||||||
|
widget.config.fullscreen = enabled;
|
||||||
|
_storageHelper.writeConfig(widget.config);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleFullscreen() {
|
||||||
|
FullScreen.setFullScreen(!widget.config.fullscreen);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ class _SheetViewerPageState extends State<SheetViewerPage>
|
|||||||
|
|
||||||
document = await PdfDocument.openFile(file.path);
|
document = await PdfDocument.openFile(file.path);
|
||||||
}
|
}
|
||||||
|
setState(() {
|
||||||
|
// document changed
|
||||||
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,6 +100,17 @@ class _SheetViewerPageState extends State<SheetViewerPage>
|
|||||||
return AppBar(
|
return AppBar(
|
||||||
title: Text(widget.sheet.name),
|
title: Text(widget.sheet.name),
|
||||||
actions: [
|
actions: [
|
||||||
|
IconButton(
|
||||||
|
icon: Icon(
|
||||||
|
widget.config.fullscreen ? Icons.fullscreen_exit : Icons.fullscreen,
|
||||||
|
),
|
||||||
|
tooltip: widget.config.fullscreen
|
||||||
|
? 'Exit Fullscreen'
|
||||||
|
: 'Enter Fullscreen',
|
||||||
|
onPressed: () {
|
||||||
|
toggleFullscreen();
|
||||||
|
},
|
||||||
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
Reference in New Issue
Block a user