sort camera preview sizes differently

This commit is contained in:
tibbi 2017-03-20 19:48:37 +01:00
parent 0eed22d749
commit 2e43f53af2

View File

@ -24,7 +24,6 @@ import com.simplemobiletools.commons.extensions.scanPath
import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.toast
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
import java.io.Serializable
import java.util.* import java.util.*
class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScanCompletedListener { class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScanCompletedListener {
@ -134,7 +133,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
mMaxZoom = mParameters!!.maxZoom mMaxZoom = mParameters!!.maxZoom
mZoomRatios = mParameters!!.zoomRatios mZoomRatios = mParameters!!.zoomRatios
mSupportedPreviewSizes = mParameters!!.supportedPreviewSizes mSupportedPreviewSizes = mParameters!!.supportedPreviewSizes
Collections.sort<Camera.Size>(mSupportedPreviewSizes!!, SizesComparator()) storePreviewSizes()
requestLayout() requestLayout()
invalidate() invalidate()
mSetupPreviewAfterMeasure = true mSetupPreviewAfterMeasure = true
@ -165,6 +164,10 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
return true return true
} }
private fun storePreviewSizes() {
mSupportedPreviewSizes = mSupportedPreviewSizes!!.sortedByDescending { it.width * it.height }
}
fun setTargetUri(uri: Uri) { fun setTargetUri(uri: Uri) {
mTargetUri = uri mTargetUri = uri
} }
@ -455,9 +458,7 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
return false return false
mSwitchToVideoAsap = false mSwitchToVideoAsap = false
val previewSizes = mParameters!!.supportedPreviewSizes val preferred = mSupportedPreviewSizes!![0]
Collections.sort<Camera.Size>(previewSizes, SizesComparator())
val preferred = previewSizes[0]
mParameters!!.setPreviewSize(preferred.width, preferred.height) mParameters!!.setPreviewSize(preferred.width, preferred.height)
mCamera!!.parameters = mParameters mCamera!!.parameters = mParameters
@ -618,17 +619,6 @@ class Preview : ViewGroup, SurfaceHolder.Callback, MediaScannerConnection.OnScan
return size return size
} }
private class SizesComparator : Comparator<Camera.Size>, Serializable {
override fun compare(a: Camera.Size, b: Camera.Size): Int {
return b.width * b.height - a.width * a.height
}
companion object {
private const val serialVersionUID = 5431278455314658485L
}
}
interface PreviewListener { interface PreviewListener {
fun setFlashAvailable(available: Boolean) fun setFlashAvailable(available: Boolean)