From a246ca514f2b59e59aaa26477051b42e9c607a16 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 11 Oct 2021 17:55:11 +0200 Subject: [PATCH] adding some storage stat fetchers into the storage fragment --- .../pro/fragments/StorageFragment.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/StorageFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/StorageFragment.kt index 5e92089a..0e15960b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/StorageFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/StorageFragment.kt @@ -1,10 +1,14 @@ package com.simplemobiletools.filemanager.pro.fragments +import android.annotation.SuppressLint +import android.app.usage.StorageStatsManager import android.content.Context import android.net.Uri import android.os.Environment +import android.os.storage.StorageManager import android.provider.MediaStore import android.util.AttributeSet +import androidx.appcompat.app.AppCompatActivity import com.simplemobiletools.commons.extensions.getLongValue import com.simplemobiletools.commons.extensions.getProperSize import com.simplemobiletools.commons.extensions.queryCursor @@ -42,4 +46,29 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage return totalSize } + + @SuppressLint("NewApi") + private fun getStorageStats() { + if (activity == null) { + return + } + + val externalDirs = activity!!.getExternalFilesDirs(null) + val storageManager = activity!!.getSystemService(AppCompatActivity.STORAGE_SERVICE) as StorageManager + + externalDirs.forEach { file -> + val storageVolume = storageManager.getStorageVolume(file) ?: return + if (storageVolume.isPrimary) { + // internal storage + val storageStatsManager = activity!!.getSystemService(AppCompatActivity.STORAGE_STATS_SERVICE) as StorageStatsManager + val uuid = StorageManager.UUID_DEFAULT + val totalSpace = storageStatsManager.getTotalBytes(uuid) + val freeSpace = storageStatsManager.getFreeBytes(uuid) + } else { + // sd card + val totalSpace = file.totalSpace + val freeSpace = file.freeSpace + } + } + } }