Clean up code

This commit is contained in:
2024-12-21 22:09:13 +01:00
parent ba83b5ebf8
commit 95d50cd108
6 changed files with 18 additions and 112 deletions

View File

@@ -14,7 +14,6 @@ class ApiClient {
ApiClient({required this.baseUrl, this.token});
/// Login and store the JWT token
Future<bool> login(String username, String password) async {
log.info("Logging in...");
try {
@@ -41,13 +40,11 @@ class ApiClient {
return false;
}
/// Logout and clear the token
void logout() {
token = null;
log.info('Logged out successfully.');
}
/// Make a GET request
Future<http.Response?> get(String endpoint, {bool isBinary = false}) async {
try {
final url = '$baseUrl$endpoint';
@@ -70,7 +67,6 @@ class ApiClient {
return null;
}
/// Make a POST request
Future<http.Response?> post(
String endpoint, Map<String, dynamic> body) async {
try {
@@ -98,7 +94,6 @@ class ApiClient {
return null;
}
/// Make a POST request with form data
Future<http.Response?> postFormData(String endpoint, String body) async {
try {
final url = '$baseUrl$endpoint';
@@ -152,29 +147,18 @@ class ApiClient {
Future<File?> getPdfFileCached(String sheetUuid) async {
try {
// Get the cache directory
// final cacheDir = kIsWeb
// ? await MemoryFileSystem().systemTempDirectory.createTemp('cache')
// : await getTemporaryDirectory();
final cacheDir = await getTemporaryDirectory();
final cachedPdfPath = '${cacheDir.path}/$sheetUuid.pdf';
// Check if the file already exists in the cache
final cachedFile = File(cachedPdfPath);
if (await cachedFile.exists()) {
log.info("PDF found in cache: $cachedPdfPath");
return cachedFile;
}
// Make the authenticated API call
final response = await this.get('/sheet/pdf/$sheetUuid', isBinary: true);
final response = await get('/sheet/pdf/$sheetUuid', isBinary: true);
if (response != null && response.statusCode == 200) {
// Save the fetched file to the cache
//
await cachedFile.writeAsBytes(response.bodyBytes);
log.info("PDF downloaded and cached at: $cachedPdfPath");
return cachedFile;

View File

@@ -24,16 +24,6 @@ class _MyHomePageState extends State<MyHomePage> {
super.initState();
}
// Future<String?> getSafPickedSheetsDirectory() async {
// await Permission.storage.request();
// await Permission.manageExternalStorage.request();
// var pickedDirectories = await Saf.getPersistedPermissionDirectories();
// if (pickedDirectories == null || pickedDirectories.isEmpty) {
// return null;
// }
// return pickedDirectories.last;
// }
Future<List<Sheet>> acquireSheets() async {
final url = await _storageHelper.read(StorageKey.url);
final jwt = await _storageHelper.read(StorageKey.jwt);
@@ -42,27 +32,6 @@ class _MyHomePageState extends State<MyHomePage> {
final sheets = await apiClient!.fetchSheets();
log.info("${sheets.length} sheets fetched");
return sheets;
// return api.main();
// final directory = await getApplicationDocumentsDirectory();
// print("Directory is: $directory");
// String? sheetsDirectory = "/home/julian/Klavier";
// if (sheetsDirectory == null || sheetsDirectory.isEmpty) {
// await Saf.getDynamicDirectoryPermission(grantWritePermission: false);
// sheetsDirectory = "/home/julian/Klavier";
// if (sheetsDirectory == null || sheetsDirectory.isEmpty) {
// throw Exception("No Directory selected");
// }
// }
// return List.empty();
// var sheetsDirectoryFiles = await Saf.getFilesPathFor(sheetsDirectory);
// if (sheetsDirectoryFiles == null) {
// await Saf.releasePersistedPermissions();
// throw Exception(
// "Permissions for directory no longer valid or Directory deleted. Please restart app.");
// }
// return loadSheetsSorted(sheetsDirectoryFiles);
}
@override

View File

@@ -1,8 +1,4 @@
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:jwt_decoder/jwt_decoder.dart';
import 'package:sheetless/api.dart';
import 'package:sheetless/home_page.dart';
@@ -12,7 +8,7 @@ class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
_LoginPageState createState() => _LoginPageState();
State<LoginPage> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {

View File

@@ -31,7 +31,7 @@ class SheetsWidget extends StatefulWidget {
const SheetsWidget({super.key, required this.sheets, required this.callback});
@override
_SheetsWidgetState createState() => _SheetsWidgetState();
State<SheetsWidget> createState() => _SheetsWidgetState();
}
class _SheetsWidgetState extends State<SheetsWidget> {

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:logging/logging.dart';
import 'package:pdfrx/pdfrx.dart';
import 'package:sheetless/api.dart';
import 'package:sheetless/sheet.dart';
@@ -16,6 +17,7 @@ class SheetViewerPage extends StatefulWidget {
}
class _SheetViewerPageState extends State<SheetViewerPage> {
final log = Logger("SheetViewerPage");
int page = 1;
int numPages = 1;
bool isFullscreen = false;
@@ -39,13 +41,13 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
void toggleFullscreen() {
isFullscreen = !isFullscreen;
if (isFullscreen) {
print("enter fullscreen");
log.info("enter fullscreen");
// enter fullscreen
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky,
overlays: []);
} else {
// exit fullscreen
print("exit fullscreen");
log.info("exit fullscreen");
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge,
overlays: SystemUiOverlay.values);
}
@@ -70,16 +72,16 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
// Get the size of the screen
final screenWidth = MediaQuery.of(context).size.width;
print("Touch at y = ${details.localPosition.dy}");
print("Touch at x = ${details.localPosition.dx}");
print("Screenwidth = ${screenWidth}");
// print("Touch at y = ${details.localPosition.dy}");
// print("Touch at x = ${details.localPosition.dx}");
// print("Screenwidth = ${screenWidth}");
// Check where the user tapped
if (details.localPosition.dy < 100) {
// TODO
// setState(() {
// toggleFullscreen();
// });
} else if (details.localPosition.dx < screenWidth / 2) {
// if (details.localPosition.dy < 100) {
// TODO
// setState(() {
// toggleFullscreen();
// });
if (details.localPosition.dx < screenWidth / 2) {
// Left half of the screen
setState(() {
page = page > 1 ? page - 1 : 1;
@@ -100,9 +102,9 @@ class _SheetViewerPageState extends State<SheetViewerPage> {
alignment: Alignment.center,
),
Container(
child: Text('$page / $numPages'),
alignment: Alignment.bottomCenter,
padding: EdgeInsets.only(bottom: 5),
child: Text('$page / $numPages'),
),
],
),