mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-04-06 22:51:03 +02:00
89 lines
2.9 KiB
Kotlin
89 lines
2.9 KiB
Kotlin
package com.simplemobiletools.filemanager.dialogs
|
|
|
|
import android.app.Dialog
|
|
import android.os.Bundle
|
|
import android.support.v4.app.DialogFragment
|
|
import android.support.v7.app.AlertDialog
|
|
import android.text.format.DateFormat
|
|
import android.view.View
|
|
import com.simplemobiletools.filemanager.Config
|
|
import com.simplemobiletools.filemanager.R
|
|
import com.simplemobiletools.filemanager.extensions.formatSize
|
|
import com.simplemobiletools.filepicker.models.FileDirItem
|
|
import kotlinx.android.synthetic.main.item_properties.view.*
|
|
import java.io.File
|
|
import java.util.*
|
|
|
|
class PropertiesDialog : DialogFragment() {
|
|
companion object {
|
|
lateinit var mItem: FileDirItem
|
|
private var mFilesCnt: Int = 0
|
|
private var mShowHidden: Boolean = false
|
|
|
|
fun newInstance(item: FileDirItem): PropertiesDialog {
|
|
mItem = item
|
|
mFilesCnt = 0
|
|
return PropertiesDialog()
|
|
}
|
|
}
|
|
|
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
val title = if (mItem.isDirectory) R.string.directory_properties else R.string.file_properties
|
|
val infoView = activity.layoutInflater.inflate(R.layout.item_properties, null)
|
|
|
|
infoView.apply {
|
|
properties_name.text = mItem.name
|
|
properties_path.text = mItem.path
|
|
properties_size.text = getItemSize()
|
|
|
|
if (mItem.isDirectory) {
|
|
properties_files_count_label.visibility = View.VISIBLE
|
|
properties_files_count.visibility = View.VISIBLE
|
|
properties_files_count.text = mFilesCnt.toString()
|
|
}
|
|
|
|
val file = File(mItem.path)
|
|
properties_last_modified.text = formatLastModified(file.lastModified())
|
|
}
|
|
|
|
return AlertDialog.Builder(context)
|
|
.setTitle(resources.getString(title))
|
|
.setView(infoView)
|
|
.setPositiveButton(R.string.ok, null)
|
|
.create()
|
|
}
|
|
|
|
fun getItemSize(): String {
|
|
if (mItem.isDirectory) {
|
|
mShowHidden = Config.newInstance(context).showHidden
|
|
return getDirectorySize(File(mItem.path)).formatSize()
|
|
}
|
|
|
|
return mItem.size.formatSize()
|
|
}
|
|
|
|
private fun formatLastModified(ts: Long): String {
|
|
val cal = Calendar.getInstance(Locale.ENGLISH)
|
|
cal.timeInMillis = ts
|
|
return DateFormat.format("dd/MM/yyyy HH:mm", cal).toString()
|
|
}
|
|
|
|
private fun getDirectorySize(dir: File): Long {
|
|
if (dir.exists()) {
|
|
var size: Long = 0
|
|
val files = dir.listFiles()
|
|
for (i in files.indices) {
|
|
if (files[i].isDirectory) {
|
|
size += getDirectorySize(files[i])
|
|
} else {
|
|
size += files[i].length()
|
|
if (!files[i].isHidden && !dir.isHidden || mShowHidden)
|
|
mFilesCnt++
|
|
}
|
|
}
|
|
return size
|
|
}
|
|
return 0
|
|
}
|
|
}
|