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 0e15960b..a6d76ad2 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 @@ -12,7 +12,12 @@ import androidx.appcompat.app.AppCompatActivity import com.simplemobiletools.commons.extensions.getLongValue import com.simplemobiletools.commons.extensions.getProperSize import com.simplemobiletools.commons.extensions.queryCursor +import com.simplemobiletools.commons.extensions.updateTextColors +import com.simplemobiletools.commons.helpers.ensureBackgroundThread +import com.simplemobiletools.filemanager.pro.R import com.simplemobiletools.filemanager.pro.activities.SimpleActivity +import com.simplemobiletools.filemanager.pro.extensions.formatSizeThousand +import kotlinx.android.synthetic.main.storage_fragment.view.* class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) { override fun setupFragment(activity: SimpleActivity) { @@ -21,11 +26,17 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage val audioSize = getMediaTypeSize(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI) val documents = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getProperSize(true) val downloads = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getProperSize(true) + + ensureBackgroundThread { + getStorageStats(activity) + } } override fun refreshFragment() {} - override fun setupColors(textColor: Int, primaryColor: Int) {} + override fun setupColors(textColor: Int, primaryColor: Int) { + context.updateTextColors(storage_fragment) + } private fun getMediaTypeSize(uri: Uri): Long { val projection = arrayOf( @@ -48,22 +59,23 @@ class StorageFragment(context: Context, attributeSet: AttributeSet) : MyViewPage } @SuppressLint("NewApi") - private fun getStorageStats() { - if (activity == null) { - return - } - - val externalDirs = activity!!.getExternalFilesDirs(null) - val storageManager = activity!!.getSystemService(AppCompatActivity.STORAGE_SERVICE) as StorageManager + private fun getStorageStats(activity: SimpleActivity) { + 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 storageStatsManager = activity.getSystemService(AppCompatActivity.STORAGE_STATS_SERVICE) as StorageStatsManager val uuid = StorageManager.UUID_DEFAULT val totalSpace = storageStatsManager.getTotalBytes(uuid) val freeSpace = storageStatsManager.getFreeBytes(uuid) + + activity.runOnUiThread { + free_space_value.text = freeSpace.formatSizeThousand() + total_space.text = String.format(context.getString(R.string.total_storage), totalSpace.formatSizeThousand()) + } } else { // sd card val totalSpace = file.totalSpace diff --git a/app/src/main/res/layout/storage_fragment.xml b/app/src/main/res/layout/storage_fragment.xml index f4393f42..1ffd50f2 100644 --- a/app/src/main/res/layout/storage_fragment.xml +++ b/app/src/main/res/layout/storage_fragment.xml @@ -1,7 +1,36 @@ + android:layout_height="match_parent" + android:padding="@dimen/activity_margin"> + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index d2443b57..bfda7798 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,3 +1,4 @@ 60dp + 46sp