From ba173944f7fa2edb7bdbfdaf45ad7d300e40450f Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 20 Mar 2017 23:23:30 +0100 Subject: [PATCH] fill in the values at resolution pickers --- .../camera/dialogs/ChangeResolutionDialog.kt | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt index 212ee8ee..239a4388 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/dialogs/ChangeResolutionDialog.kt @@ -3,21 +3,19 @@ package com.simplemobiletools.camera.dialogs import android.hardware.Camera import android.support.v7.app.AlertDialog import android.view.LayoutInflater +import com.simplemobiletools.camera.Preview.Companion.config import com.simplemobiletools.camera.R import com.simplemobiletools.camera.activities.SimpleActivity +import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.setupDialogStuff +import com.simplemobiletools.commons.models.RadioItem import kotlinx.android.synthetic.main.dialog_change_resolution.view.* class ChangeResolutionDialog(val activity: SimpleActivity, val isBackCamera: Boolean, val camera: Camera, val callback: () -> Unit) { init { val view = LayoutInflater.from(activity).inflate(R.layout.dialog_change_resolution, null).apply { - change_resolution_photo_holder.setOnClickListener { - - } - - change_resolution_video_holder.setOnClickListener { - - } + change_resolution_photo_holder.setOnClickListener { showPhotoResolutionPicker() } + change_resolution_video_holder.setOnClickListener { showVideoResolutionPicker() } } AlertDialog.Builder(activity) @@ -26,4 +24,29 @@ class ChangeResolutionDialog(val activity: SimpleActivity, val isBackCamera: Boo activity.setupDialogStuff(view, this, if (isBackCamera) R.string.back_camera else R.string.front_camera) } } + + private fun showPhotoResolutionPicker() { + val resolutions = camera.parameters.supportedPictureSizes.sortedByDescending { it.width * it.height } + val items = ArrayList(resolutions.size) + resolutions.forEachIndexed { index, size -> + items.add(RadioItem(index, "${size.width} x ${size.height}")) + } + + RadioGroupDialog(activity, items, if (isBackCamera) config.backPhotoResIndex else config.frontPhotoResIndex) { + if (isBackCamera) config.backPhotoResIndex else config.frontPhotoResIndex = it as Int + } + } + + private fun showVideoResolutionPicker() { + val sizes = camera.parameters.supportedVideoSizes ?: camera.parameters.supportedPreviewSizes + val resolutions = sizes.sortedByDescending { it.width * it.height } + val items = ArrayList(resolutions.size) + resolutions.forEachIndexed { index, size -> + items.add(RadioItem(index, "${size.width} x ${size.height}")) + } + + RadioGroupDialog(activity, items, if (isBackCamera) config.backVideoResIndex else config.frontVideoResIndex) { + if (isBackCamera) config.backVideoResIndex else config.frontVideoResIndex = it as Int + } + } }