diff --git a/app/src/main/java/com/simplemobiletools/filemanager/Utils.java b/app/src/main/java/com/simplemobiletools/filemanager/Utils.java index 37dcb40a..2e1148fa 100644 --- a/app/src/main/java/com/simplemobiletools/filemanager/Utils.java +++ b/app/src/main/java/com/simplemobiletools/filemanager/Utils.java @@ -6,7 +6,6 @@ import android.content.pm.PackageManager; import android.support.v4.content.ContextCompat; import android.widget.Toast; -import java.text.DecimalFormat; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -32,13 +31,4 @@ public class Utils { final Matcher matcher = pattern.matcher(name); return matcher.matches(); } - - public static String formatSize(long size) { - if (size <= 0) - return "0 B"; - - final String[] units = {"B", "kB", "MB", "GB", "TB"}; - final int digitGroups = (int) (Math.log10(size) / Math.log10(1024)); - return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups]; - } } diff --git a/app/src/main/java/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.java b/app/src/main/java/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.java deleted file mode 100644 index 6093259c..00000000 --- a/app/src/main/java/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.java +++ /dev/null @@ -1,90 +0,0 @@ -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 android.widget.TextView; - -import com.simplemobiletools.filemanager.Config; -import com.simplemobiletools.filemanager.R; -import com.simplemobiletools.filemanager.Utils; -import com.simplemobiletools.filepicker.models.FileDirItem; - -import java.io.File; -import java.util.Calendar; -import java.util.Locale; - -public class PropertiesDialog extends DialogFragment { - private static FileDirItem mItem; - private static int mFilesCnt; - private static boolean mShowHidden; - - public static PropertiesDialog newInstance(FileDirItem item) { - mItem = item; - mFilesCnt = 0; - return new PropertiesDialog(); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - mShowHidden = Config.newInstance(getContext()).getShowHidden(); - final int title = (mItem.isDirectory()) ? R.string.directory_properties : R.string.file_properties; - - final View infoView = getActivity().getLayoutInflater().inflate(R.layout.item_properties, null); - ((TextView) infoView.findViewById(R.id.properties_name)).setText(mItem.getName()); - ((TextView) infoView.findViewById(R.id.properties_path)).setText(mItem.getPath()); - ((TextView) infoView.findViewById(R.id.properties_size)).setText(getItemSize()); - - if (mItem.isDirectory()) { - infoView.findViewById(R.id.properties_files_count_label).setVisibility(View.VISIBLE); - infoView.findViewById(R.id.properties_files_count).setVisibility(View.VISIBLE); - ((TextView) infoView.findViewById(R.id.properties_files_count)).setText(String.valueOf(mFilesCnt)); - } - - final File file = new File(mItem.getPath()); - ((TextView) infoView.findViewById(R.id.properties_last_modified)).setText(formatLastModified(file.lastModified())); - - final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); - builder.setTitle(getResources().getString(title)); - builder.setView(infoView); - builder.setPositiveButton(R.string.smtfp_ok, null); - - return builder.create(); - } - - private String getItemSize() { - if (mItem.isDirectory()) { - return Utils.formatSize(getDirectorySize(new File(mItem.getPath()))); - } - - return ""; - //return Utils.getFormattedSize(mItem); - } - - private String formatLastModified(long ts) { - Calendar cal = Calendar.getInstance(Locale.ENGLISH); - cal.setTimeInMillis(ts); - return DateFormat.format("dd/MM/yyyy HH:mm", cal).toString(); - } - - private long getDirectorySize(File dir) { - if (dir.exists()) { - long size = 0; - File[] files = dir.listFiles(); - for (int i = 0; i < files.length; i++) { - 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; - } -} diff --git a/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java b/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java index af6e0f9a..e32865be 100644 --- a/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java +++ b/app/src/main/java/com/simplemobiletools/filemanager/fragments/ItemsFragment.java @@ -377,7 +377,7 @@ public class ItemsFragment extends android.support.v4.app.Fragment if (item == null) return; - PropertiesDialog dialog = PropertiesDialog.newInstance(item); + PropertiesDialog dialog = PropertiesDialog.Companion.newInstance(item); dialog.show(getFragmentManager(), "properties"); } diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt index 1d67d40a..f753ec03 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt @@ -13,7 +13,7 @@ import com.simplemobiletools.filemanager.R import com.simplemobiletools.filemanager.extensions.formatSize import com.simplemobiletools.filemanager.extensions.getColoredIcon import com.simplemobiletools.filepicker.models.FileDirItem -import kotlinx.android.synthetic.main.smtfp_list_item.view.* +import kotlinx.android.synthetic.main.list_item.view.* class ItemsAdapter(context: Context, private val mItems: List) : BaseAdapter() { private val mInflater: LayoutInflater @@ -33,7 +33,7 @@ class ItemsAdapter(context: Context, private val mItems: List) : Ba var view = convertView val viewHolder: ViewHolder if (view == null) { - view = mInflater.inflate(R.layout.smtfp_list_item, parent, false) + view = mInflater.inflate(R.layout.list_item, parent, false) viewHolder = ViewHolder(view) view!!.tag = viewHolder } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.kt new file mode 100644 index 00000000..2e47ec6b --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/PropertiesDialog.kt @@ -0,0 +1,88 @@ +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 android.widget.TextView +import com.simplemobiletools.filemanager.Config +import com.simplemobiletools.filemanager.R +import com.simplemobiletools.filemanager.extensions.formatSize +import com.simplemobiletools.filepicker.models.FileDirItem +import java.io.File +import java.util.* + +class PropertiesDialog : DialogFragment() { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + mShowHidden = Config.newInstance(context).showHidden + 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.findViewById(R.id.properties_name) as TextView).text = mItem!!.name + (infoView.findViewById(R.id.properties_path) as TextView).text = mItem!!.path + (infoView.findViewById(R.id.properties_size) as TextView).text = getItemSize() + + if (mItem!!.isDirectory) { + infoView.findViewById(R.id.properties_files_count_label).visibility = View.VISIBLE + infoView.findViewById(R.id.properties_files_count).visibility = View.VISIBLE + (infoView.findViewById(R.id.properties_files_count) as TextView).text = mFilesCnt.toString() + } + + val file = File(mItem!!.path) + (infoView.findViewById(R.id.properties_last_modified) as TextView).text = formatLastModified(file.lastModified()) + + val builder = AlertDialog.Builder(context) + builder.setTitle(resources.getString(title)) + builder.setView(infoView) + builder.setPositiveButton(R.string.smtfp_ok, null) + + return builder.create() + } + + fun getItemSize(): String { + if (mItem!!.isDirectory) { + return getDirectorySize(File(mItem!!.path)).formatSize() + } + + return "" + } + + 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 + } + + companion object { + private var mItem: FileDirItem? = null + private var mFilesCnt: Int = 0 + private var mShowHidden: Boolean = false + + fun newInstance(item: FileDirItem): PropertiesDialog { + mItem = item + mFilesCnt = 0 + return PropertiesDialog() + } + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/SelectFolderDialog.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/SelectFolderDialog.kt index aa7018e9..5fb226a3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/SelectFolderDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/SelectFolderDialog.kt @@ -13,7 +13,7 @@ import com.simplemobiletools.filemanager.Utils import com.simplemobiletools.filemanager.adapters.ItemsAdapter import com.simplemobiletools.filemanager.fragments.ItemsFragment import com.simplemobiletools.filepicker.models.FileDirItem -import kotlinx.android.synthetic.main.smtfp_directory_picker.view.* +import kotlinx.android.synthetic.main.directory_picker.view.* import java.io.File import java.util.* import kotlin.comparisons.compareBy diff --git a/library/src/main/kotlin/com/simplemobiletools/filepicker/adapters/ItemsAdapter.kt b/library/src/main/kotlin/com/simplemobiletools/filepicker/adapters/ItemsAdapter.kt index c066e63c..301076fc 100644 --- a/library/src/main/kotlin/com/simplemobiletools/filepicker/adapters/ItemsAdapter.kt +++ b/library/src/main/kotlin/com/simplemobiletools/filepicker/adapters/ItemsAdapter.kt @@ -25,8 +25,8 @@ class ItemsAdapter(context: Context, private val mItems: List) : Ba mInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater mRes = context.resources - mDirectoryBmp = mRes.getColoredIcon(R.color.smtfp_thumbnail_grey, R.mipmap.directory) - mFileBmp = mRes.getColoredIcon(R.color.smtfp_thumbnail_grey, R.mipmap.file) + mDirectoryBmp = mRes.getColoredIcon(R.color.smtfp_thumbnail_grey, R.mipmap.smtfp_directory) + mFileBmp = mRes.getColoredIcon(R.color.smtfp_thumbnail_grey, R.mipmap.smtfp_file) } override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { diff --git a/library/src/main/res/values/dimens.xml b/library/src/main/res/values/dimens.xml index a37d74c9..4e300dcd 100644 --- a/library/src/main/res/values/dimens.xml +++ b/library/src/main/res/values/dimens.xml @@ -2,7 +2,7 @@ 16dp 6dp 10dp - 48dp + 48dp 12sp 14sp