Add debugging info around used disk space.

This commit is contained in:
Greyson Parrelli
2025-11-06 12:32:36 -05:00
committed by Michelle Tang
parent 2fad52abdc
commit 72206b9523
5 changed files with 91 additions and 2 deletions

View File

@@ -30,6 +30,7 @@ import com.google.android.gms.security.ProviderInstaller;
import org.conscrypt.ConscryptSignal;
import org.greenrobot.eventbus.EventBus;
import org.signal.aesgcmprovider.AesGcmProvider;
import org.signal.core.util.DiskUtil;
import org.signal.core.util.MemoryTracker;
import org.signal.core.util.concurrent.AnrDetector;
import org.signal.core.util.concurrent.SignalExecutors;
@@ -299,7 +300,7 @@ public class ApplicationContext extends Application implements AppForegroundObse
}
public void checkFreeDiskSpace() {
long availableBytes = BackupRepository.INSTANCE.getFreeStorageSpace().getBytes();
long availableBytes = DiskUtil.getAvailableSpace(getApplicationContext()).getBytes();
SignalStore.backup().setSpaceAvailableOnDiskBytes(availableBytes);
}

View File

@@ -24,6 +24,7 @@ import org.signal.core.util.Base64
import org.signal.core.util.Base64.decodeBase64OrThrow
import org.signal.core.util.ByteSize
import org.signal.core.util.CursorUtil
import org.signal.core.util.DiskUtil
import org.signal.core.util.EventTimer
import org.signal.core.util.PendingIntentFlags.cancelCurrent
import org.signal.core.util.Stopwatch
@@ -375,7 +376,7 @@ object BackupRepository {
* Caller from the attachment / thumbnail download jobs.
*/
fun checkForOutOfStorageError(tag: String): Boolean {
val availableSpace = getFreeStorageSpace()
val availableSpace = DiskUtil.getAvailableSpace(AppDependencies.application)
val remainingAttachmentSize = SignalDatabase.attachments.getRemainingRestorableAttachmentSize().bytes
return if (availableSpace < remainingAttachmentSize) {

View File

@@ -7,6 +7,8 @@ import android.provider.Settings
import android.util.DisplayMetrics
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.GoogleApiAvailability
import org.signal.core.util.BidiUtil
import org.signal.core.util.DiskUtil
import org.signal.core.util.FontUtil.canRenderEmojiAtFontSize
import org.signal.core.util.bytes
import org.signal.core.util.roundedString
@@ -55,6 +57,7 @@ class LogSectionSystemInfo : LogSection {
Memory : ${getMemoryUsage()}
Memclass : ${getMemoryClass(context)}
MemInfo : ${getMemoryInfo(context)}
Disk Space : ${getDiskSpaceInfo(context)}
OS Host : ${Build.HOST}
RecipientId : ${if (SignalStore.registration.isRegistrationComplete) self().id else "N/A"}
ACI : ${getCensoredAci()}
@@ -128,6 +131,14 @@ class LogSectionSystemInfo : LogSection {
return "availMem: ${info.availMem.bytes.inMebiBytes.roundedString(2)} MiB, totalMem: ${info.totalMem.bytes.inMebiBytes.roundedString(2)} MiB, threshold: ${info.threshold.bytes.inMebiBytes.roundedString(2)} MiB, lowMemory: ${info.lowMemory}"
}
private fun getDiskSpaceInfo(context: Context): String {
val totalSpace = DiskUtil.getTotalDiskSize(context)
val freeSpace = DiskUtil.getAvailableSpace(context)
val usedSpace = totalSpace - freeSpace
return BidiUtil.stripAllDirectionalCharacters("${usedSpace.toUnitString()} / ${totalSpace.toUnitString()} (${freeSpace.toUnitString()} free)")
}
private fun getScreenResolution(context: Context): String {
val displayMetrics = DisplayMetrics()
val windowManager = ServiceUtil.getWindowManager(context)