From 95d50cd1081f1e7486f5c4559fd321f6540b000b Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Sat, 21 Dec 2024 22:09:13 +0100 Subject: [PATCH] Clean up code --- flake.nix | 47 +------------------------------------- lib/api.dart | 18 +-------------- lib/home_page.dart | 31 ------------------------- lib/login_page.dart | 6 +---- lib/sheet.dart | 2 +- lib/sheet_viewer_page.dart | 26 +++++++++++---------- 6 files changed, 18 insertions(+), 112 deletions(-) diff --git a/flake.nix b/flake.nix index 339f5f2..eb5c5c5 100644 --- a/flake.nix +++ b/flake.nix @@ -42,61 +42,16 @@ includeNDK = true; ndkVersions = [ "25.1.8937393" ]; }; - # androidComposition = pkgs.androidenv.composeAndroidPackages { - # toolsVersion = "26.1.1"; - # platformToolsVersion = "34.0.5"; - # buildToolsVersions = [ "30.0.3" ]; - # includeEmulator = false; - # emulatorVersion = "34.1.9"; - # platformVersions = [ - # "28" - # "29" - # "30" - # "31" - # "32" - # "33" - # "34" - # ]; - # includeSources = false; - # includeSystemImages = false; - # systemImageTypes = [ "google_apis_playstore" ]; - # abiVersions = [ - # "armeabi-v7a" - # "arm64-v8a" - # ]; - # cmakeVersions = [ "3.10.2" ]; - # includeNDK = true; - # ndkVersions = [ "21.4.7075529" ]; - # useGoogleAPIs = false; - # useGoogleTVAddOns = false; - # # buildToolsVersions = [ buildToolsVersion ]; - # # platformVersions = [ - # # "29" - # # "30" - # # "31" - # # "32" - # # "33" - # # "34" - # # "28" - # # ]; - # # abiVersions = [ - # # "armeabi-v7a" - # # "arm64-v8a" - # # ]; - # }; androidSdk = androidComposition.androidsdk; - platformTools = androidComposition.platform-tools; in { devShell = with pkgs; - mkShell rec { + mkShell { ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; - # JAVA_HOME = pkgs.jdk17; buildInputs = [ flutter androidSdk - # platformTools jdk17 # Needed by flutter_secure_storage diff --git a/lib/api.dart b/lib/api.dart index fb7fc96..768f1c6 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -14,7 +14,6 @@ class ApiClient { ApiClient({required this.baseUrl, this.token}); - /// Login and store the JWT token Future 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 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 post( String endpoint, Map body) async { try { @@ -98,7 +94,6 @@ class ApiClient { return null; } - /// Make a POST request with form data Future postFormData(String endpoint, String body) async { try { final url = '$baseUrl$endpoint'; @@ -152,29 +147,18 @@ class ApiClient { Future 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; diff --git a/lib/home_page.dart b/lib/home_page.dart index 0082cf4..d3c4ac8 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -24,16 +24,6 @@ class _MyHomePageState extends State { super.initState(); } - // Future 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> acquireSheets() async { final url = await _storageHelper.read(StorageKey.url); final jwt = await _storageHelper.read(StorageKey.jwt); @@ -42,27 +32,6 @@ class _MyHomePageState extends State { 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 diff --git a/lib/login_page.dart b/lib/login_page.dart index 51b310b..dd5a073 100644 --- a/lib/login_page.dart +++ b/lib/login_page.dart @@ -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 createState() => _LoginPageState(); } class _LoginPageState extends State { diff --git a/lib/sheet.dart b/lib/sheet.dart index 91246bb..4448d3d 100644 --- a/lib/sheet.dart +++ b/lib/sheet.dart @@ -31,7 +31,7 @@ class SheetsWidget extends StatefulWidget { const SheetsWidget({super.key, required this.sheets, required this.callback}); @override - _SheetsWidgetState createState() => _SheetsWidgetState(); + State createState() => _SheetsWidgetState(); } class _SheetsWidgetState extends State { diff --git a/lib/sheet_viewer_page.dart b/lib/sheet_viewer_page.dart index 4fecefe..cf9fdf5 100644 --- a/lib/sheet_viewer_page.dart +++ b/lib/sheet_viewer_page.dart @@ -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 { + final log = Logger("SheetViewerPage"); int page = 1; int numPages = 1; bool isFullscreen = false; @@ -39,13 +41,13 @@ class _SheetViewerPageState extends State { 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 { // 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 { alignment: Alignment.center, ), Container( - child: Text('$page / $numPages'), alignment: Alignment.bottomCenter, padding: EdgeInsets.only(bottom: 5), + child: Text('$page / $numPages'), ), ], ),