Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4cd3815 authored by tibbi's avatar tibbi
Browse files

calculate proper folder size only if it is needed

parent 3c096a90
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ open class BaseSimpleActivity : AppCompatActivity() {
            if (isCopyOperation) {
                startCopyMove(fileDirItems, FileDirItem(destination), isCopyOperation, copyPhotoVideoOnly, copyHidden)
            } else {
                if (isPathOnSD(source) || isPathOnSD(destination) || fileDirItems.first().isDirectory || isNougatPlus()) {
                if (isPathOnOTG(source) || isPathOnOTG(destination) || isPathOnSD(source) || isPathOnSD(destination) || fileDirItems.first().isDirectory || isNougatPlus()) {
                    handleSAFDialog(source) {
                        startCopyMove(fileDirItems, FileDirItem(destination), isCopyOperation, copyPhotoVideoOnly, copyHidden)
                    }
+2 −2
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ class CopyMoveTask(val activity: BaseSimpleActivity, val copyOnly: Boolean = fal
    private val PROGRESS_RECHECK_INTERVAL = 500L

    private var mListener: WeakReference<CopyMoveListener>? = null
    private var mMovedFiles: ArrayList<FileDirItem> = ArrayList()
    private var mMovedFiles = ArrayList<FileDirItem>()
    private var mDocuments = LinkedHashMap<String, DocumentFile?>()
    private lateinit var mFiles: ArrayList<FileDirItem>
    private var mFiles = ArrayList<FileDirItem>()
    private var mFileCountToCopy = 0

    // progress indication
+7 −6
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.adapters.FilepickerItemsAdapter
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.OTG_PATH
import com.simplemobiletools.commons.helpers.SORT_BY_SIZE
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.commons.views.Breadcrumbs
import kotlinx.android.synthetic.main.dialog_filepicker.view.*
@@ -100,7 +101,7 @@ class FilePickerDialog(val activity: BaseSimpleActivity,

    private fun tryUpdateItems() {
        Thread {
            getItems(currPath) {
            getItems(currPath, activity.baseConfig.sorting and SORT_BY_SIZE != 0) {
                activity.runOnUiThread {
                    updateItems(it)
                }
@@ -165,15 +166,15 @@ class FilePickerDialog(val activity: BaseSimpleActivity,
        mDialog.dismiss()
    }

    private fun getItems(path: String, callback: (List<FileDirItem>) -> Unit) {
    private fun getItems(path: String, getProperFileSize: Boolean, callback: (List<FileDirItem>) -> Unit) {
        if (path.startsWith(OTG_PATH)) {
            activity.getOTGItems(path, showHidden, callback)
            activity.getOTGItems(path, showHidden, getProperFileSize, callback)
        } else {
            getRegularItems(path, callback)
            getRegularItems(path, getProperFileSize, callback)
        }
    }

    private fun getRegularItems(path: String, callback: (List<FileDirItem>) -> Unit) {
    private fun getRegularItems(path: String, getProperFileSize: Boolean, callback: (List<FileDirItem>) -> Unit) {
        val items = ArrayList<FileDirItem>()
        val base = File(path)
        val files = base.listFiles()
@@ -189,7 +190,7 @@ class FilePickerDialog(val activity: BaseSimpleActivity,

            val curPath = file.absolutePath
            val curName = curPath.getFilenameFromPath()
            val size = file.length()
            val size = if (getProperFileSize) file.getProperSize(showHidden) else file.length()
            items.add(FileDirItem(curPath, curName, file.isDirectory, getChildren(file), size))
        }
        callback(items)
+3 −3
Original line number Diff line number Diff line
@@ -283,7 +283,7 @@ fun Context.updateLastModified(path: String, lastModified: Long) {
    }
}

fun Context.getOTGItems(path: String, countHiddenItems: Boolean, callback: (ArrayList<FileDirItem>) -> Unit) {
fun Context.getOTGItems(path: String, countHiddenItems: Boolean, getProperFileSize: Boolean, callback: (ArrayList<FileDirItem>) -> Unit) {
    val items = ArrayList<FileDirItem>()
    val OTGTreeUri = baseConfig.OTGTreeUri
    var rootUri = DocumentFile.fromTreeUri(applicationContext, Uri.parse(OTGTreeUri))
@@ -319,8 +319,8 @@ fun Context.getOTGItems(path: String, countHiddenItems: Boolean, callback: (Arra
        if (file.exists()) {
            val filePath = file.uri.toString().substring(basePath.length)
            val decodedPath = OTG_PATH + "/" + URLDecoder.decode(filePath, "UTF-8")
            items.add(FileDirItem(decodedPath, file.name, file.isDirectory, file.listFiles()?.size
                    ?: 0, file.getItemSize(countHiddenItems)))
            val fileSize = if (getProperFileSize) file.getItemSize(countHiddenItems) else file.length()
            items.add(FileDirItem(decodedPath, file.name, file.isDirectory, file.listFiles()?.size ?: 0, fileSize))
        }
    }
    callback(items)
+4 −0
Original line number Diff line number Diff line
@@ -151,4 +151,8 @@ open class BaseConfig(val context: Context) {
    var avoidWhatsNew: Boolean
        get() = prefs.getBoolean(AVOID_WHATS_NEW, false)
        set(avoidWhatsNew) = prefs.edit().putBoolean(AVOID_WHATS_NEW, avoidWhatsNew).apply()

    var sorting: Int
        get() = prefs.getInt(SORT_ORDER, context.resources.getInteger(R.integer.default_sorting))
        set(sorting) = prefs.edit().putInt(SORT_ORDER, sorting).apply()
}
Loading