From 67be4f2938d9fc372943ec1028d8e5122f8a703e Mon Sep 17 00:00:00 2001 From: evermind Date: Sun, 5 May 2024 07:09:35 +0200 Subject: [PATCH] BraveNewPipeLegacy: (Kitkat) use OsExt:osext-stat library within getFreeStorageSpace() use OsExt:osext-stat which implements the missing (f)statvfs() methods on Kitkat --- app/build.gradle | 1 + .../io/BraveStoredDirectoryHelper.java | 33 +++++++++---------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e605e3c3e..954523970 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -115,6 +115,7 @@ android { dependencies { implementation 'androidx.multidex:multidex:2.0.1' implementation 'org.conscrypt:conscrypt-android:2.5.2' + implementation "com.github.evermind-zz.OsExt:osext-stat:1.0.1" } } } diff --git a/app/src/braveLegacy/java/org/schabi/newpipe/streams/io/BraveStoredDirectoryHelper.java b/app/src/braveLegacy/java/org/schabi/newpipe/streams/io/BraveStoredDirectoryHelper.java index d4d98b78c..071f37f5d 100644 --- a/app/src/braveLegacy/java/org/schabi/newpipe/streams/io/BraveStoredDirectoryHelper.java +++ b/app/src/braveLegacy/java/org/schabi/newpipe/streams/io/BraveStoredDirectoryHelper.java @@ -1,13 +1,13 @@ package org.schabi.newpipe.streams.io; import android.os.Build; -import android.os.StatFs; import android.system.ErrnoException; import android.system.Os; -import android.system.StructStatVfs; import java.io.FileDescriptor; +import androidx.annotation.RequiresApi; + public final class BraveStoredDirectoryHelper { private BraveStoredDirectoryHelper() { @@ -16,25 +16,17 @@ public final class BraveStoredDirectoryHelper { public static BraveStructStatVfs statvfs(final String path) throws ErrnoException { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - final StructStatVfs stat = Os.statvfs(path); - return new BraveStructStatVfs(stat.f_bavail, stat.f_frsize); + return new BraveStructStatVfs(Os.statvfs(path)); } else { - final StatFs stat = new StatFs(path); - return new BraveStructStatVfs(stat.getAvailableBlocksLong(), - stat.getBlockSizeLong() - ); + return new BraveStructStatVfs(com.github.evermindzz.osext.system.Os.statvfs(path)); } } public static BraveStructStatVfs fstatvfs(final FileDescriptor fd) throws ErrnoException { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - final StructStatVfs stat = Os.fstatvfs(fd); - return new BraveStructStatVfs(stat.f_bavail, stat.f_frsize); + return new BraveStructStatVfs(Os.fstatvfs(fd)); } else { - // TODO find a real solution for KitKat to determine the free fs on FileDescriptor - // return just a fake value. '1' is just used to not exceed Long.MAX_VALUE as both - // values are multiplied by the caller - return new BraveStructStatVfs(Long.MAX_VALUE, 1); + return new BraveStructStatVfs(com.github.evermindzz.osext.system.Os.fstatvfs(fd)); } } @@ -51,10 +43,15 @@ public final class BraveStoredDirectoryHelper { /** * @noinspection checkstyle:ParameterName */ - BraveStructStatVfs(final long f_bavail, - final long f_frsize) { - this.f_bavail = f_bavail; - this.f_frsize = f_frsize; + BraveStructStatVfs(final com.github.evermindzz.osext.system.StructStatVfs stat) { + this.f_bavail = stat.f_bavail; + this.f_frsize = stat.f_frsize; + } + + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) + BraveStructStatVfs(final android.system.StructStatVfs stat) { + this.f_bavail = stat.f_bavail; + this.f_frsize = stat.f_frsize; } } }