From 8833ca643c1f24143d617d21617be448435105c3 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Mon, 8 Jun 2026 10:47:06 +0200 Subject: [PATCH] fix(file-utils): get available space on device Signed-off-by: alperozturk96 --- .../android/ui/helpers/FileOperationsHelper.java | 13 +++++++------ .../owncloud/android/utils/FileStorageUtils.java | 3 +-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java b/app/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java index a1b22caa96e5..30c5bf6ef8e7 100755 --- a/app/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java +++ b/app/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java @@ -1135,15 +1135,16 @@ public static String getTimestampedFileName(final String extension) { /** * @return -1 if no space could computed, otherwise available space in bytes */ - public static Long getAvailableSpaceOnDevice() { - StatFs stat; + public static long getAvailableSpaceOnDevice() { try { - stat = new StatFs(MainApp.getStoragePath()); - } catch (NullPointerException | IllegalArgumentException e) { + StatFs statFs = new StatFs(Environment.getDataDirectory().getPath()); + long availableBlocks = statFs.getAvailableBlocksLong(); + long blockSize = statFs.getBlockSizeLong(); + return availableBlocks * blockSize; + } catch (Exception e) { + Log_OC.e(TAG, "getAvailableSpaceOnDevice: " + e); return -1L; } - - return stat.getBlockSizeLong() * stat.getAvailableBlocksLong(); } public static boolean isEndToEndEncryptionSetup(Context context, User user) { diff --git a/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java b/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java index 014f4e12d64e..b074c149f1cb 100644 --- a/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java +++ b/app/src/main/java/com/owncloud/android/utils/FileStorageUtils.java @@ -787,14 +787,13 @@ private static boolean canListFiles(File f) { * * @param file @link{OCFile} * @return boolean: true if there is enough space left - * @throws RuntimeException */ public static boolean checkIfEnoughSpace(OCFile file) { // Get the remaining space on device long availableSpaceOnDevice = FileOperationsHelper.getAvailableSpaceOnDevice(); if (availableSpaceOnDevice == -1) { - throw new RuntimeException("Error while computing available space"); + return false; } return checkIfEnoughSpace(availableSpaceOnDevice, file);