update filepicker to 1.5.0 + minor cleanup

This commit is contained in:
tibbi 2016-11-20 16:45:38 +01:00
parent 5a76dd5db2
commit 9d9b987abf
4 changed files with 12 additions and 95 deletions

View File

@ -41,7 +41,7 @@ dependencies {
compile 'com.android.support:design:23.4.0' compile 'com.android.support:design:23.4.0'
compile 'com.jakewharton:butterknife:8.0.1' compile 'com.jakewharton:butterknife:8.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.simplemobiletools:filepicker:1.4.4@aar' compile 'com.simplemobiletools:filepicker:1.5.0@aar'
compile 'com.simplemobiletools:fileproperties:1.0.5@aar' compile 'com.simplemobiletools:fileproperties:1.0.5@aar'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

View File

@ -23,6 +23,13 @@ import java.io.File
class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener { class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
var mBasePath = getInternalStoragePath() var mBasePath = getInternalStoragePath()
companion object {
private val STORAGE_PERMISSION = 1
private val BACK_PRESS_TIMEOUT = 5000
private var mWasBackJustPressed: Boolean = false
}
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
@ -97,7 +104,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
super.onRequestPermissionsResult(requestCode, permissions, grantResults) super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == STORAGE_PERMISSION) { if (requestCode == STORAGE_PERMISSION) {
if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
initRootFileManager() initRootFileManager()
} else { } else {
toast(R.string.no_permissions) toast(R.string.no_permissions)
@ -129,11 +136,4 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
openPath(pickedPath) openPath(pickedPath)
} }
} }
companion object {
private val STORAGE_PERMISSION = 1
private val BACK_PRESS_TIMEOUT = 5000
private var mWasBackJustPressed: Boolean = false
}
} }

View File

@ -12,8 +12,10 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.simplemobiletools.filemanager.R import com.simplemobiletools.filemanager.R
import com.simplemobiletools.filemanager.extensions.formatSize import com.simplemobiletools.filemanager.extensions.formatSize
import com.simplemobiletools.filepicker.extensions.isGif
import com.simplemobiletools.filepicker.models.FileDirItem import com.simplemobiletools.filepicker.models.FileDirItem
import kotlinx.android.synthetic.main.list_item.view.* import kotlinx.android.synthetic.main.list_item.view.*
import java.io.File
class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : BaseAdapter() { class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : BaseAdapter() {
private val mInflater: LayoutInflater private val mInflater: LayoutInflater
@ -51,7 +53,7 @@ class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : Ba
return view return view
} }
private fun getCacheStrategy(item: FileDirItem) = if (item.isGif()) DiskCacheStrategy.NONE else DiskCacheStrategy.RESULT private fun getCacheStrategy(item: FileDirItem) = if (File(item.path).isGif()) DiskCacheStrategy.NONE else DiskCacheStrategy.RESULT
private fun getChildrenCnt(item: FileDirItem): String { private fun getChildrenCnt(item: FileDirItem): String {
val children = item.children val children = item.children

View File

@ -1,85 +0,0 @@
package com.simplemobiletools.filemanager.extensions
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.media.MediaMetadataRetriever
import java.io.File
import java.util.*
fun File.isGif() = name.toLowerCase().endsWith(".gif")
fun File.isVideo() = getMimeType().startsWith("video")
fun File.isAudio() = getMimeType().startsWith("audio")
fun File.isImage(): Boolean {
val options = BitmapFactory.Options()
options.inJustDecodeBounds = true
BitmapFactory.decodeFile(path, options)
return options.outWidth != -1 && options.outHeight != -1
}
fun File.getMimeType(): String {
try {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(path)
return retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE)
} catch (ignored: Exception) {
}
return ""
}
fun File.getDuration(): String {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(path)
val time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)
val timeInMillisec = java.lang.Long.parseLong(time)
return getFormattedDuration((timeInMillisec / 1000).toInt())
}
fun File.getArtist(): String? {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(path)
return retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)
}
fun File.getAlbum(): String? {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(path)
return retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)
}
fun File.getVideoResolution(): String {
try {
val retriever = MediaMetadataRetriever()
retriever.setDataSource(path)
val width = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)
val height = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)
return "$width x $height"
} catch (ignored: Exception) {
}
return ""
}
fun File.getImageResolution(): String {
val bitmap: Bitmap? = BitmapFactory.decodeFile(path)
if (bitmap == null)
return ""
return "${bitmap.width} x ${bitmap.height}"
}
private fun getFormattedDuration(duration: Int): String {
val sb = StringBuilder(8)
val hours = duration / (60 * 60)
val minutes = duration % (60 * 60) / 60
val seconds = duration % (60 * 60) % 60
if (duration > 3600) {
sb.append(String.format(Locale.getDefault(), "%02d", hours)).append(":")
}
sb.append(String.format(Locale.getDefault(), "%02d", minutes))
sb.append(":").append(String.format(Locale.getDefault(), "%02d", seconds))
return sb.toString()
}