diff --git a/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt b/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt index e73fdb6..6e90804 100644 --- a/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt +++ b/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt @@ -149,11 +149,6 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa } tvTitle.text = getString(R.string.edit_note) - etNoteTitle.apply { -// inputType = InputType.TYPE_NULL - keyListener = null - setOnClickListener { showToast(requireContext().getString(R.string.cant_edit_note_title)) } - } btnRecord.setImageDrawable( ResourcesCompat.getDrawable( resources, @@ -257,30 +252,26 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa } private fun onClickWhenIdIsZero(p0: View?) { + val context = requireContext() binding.apply { when (p0) { btnRecord -> { if (!isRecording) { - if (hasPermission(requireContext(), Manifest.permission.RECORD_AUDIO)) - if (etNoteTitle.text.toString().isNotBlank()) - btnRecord.setImageDrawable( - ResourcesCompat.getDrawable( - resources, - R.drawable.ic_mic_recording, - null - ) - ).run { - isRecording = true - startRecording() - } - else { - showToast(requireContext().getString(R.string.title_required)) - etNoteTitle.requestFocus() + if (hasPermission(context, Manifest.permission.RECORD_AUDIO)) + btnRecord.setImageDrawable( + ResourcesCompat.getDrawable( + resources, + R.drawable.ic_mic_recording, + null + ) + ).run { + isRecording = true + startRecording() } else requestPermission( requireActivity(), - requireContext().getString(R.string.permission_required), + context.getString(R.string.permission_required), MainActivity.RECORD_AUDIO_PERMISSION_CODE, Manifest.permission.RECORD_AUDIO ) @@ -299,17 +290,21 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa fabSaveNote -> { if (etNoteTitle.text.toString().isNotBlank()) { stopRecording() + if (_note.audioLength <= 0) { + showToast(context.getString(R.string.record_note_before_saving)) + return + } val note = _note.copy( title = etNoteTitle.text.toString().trim(), description = etNoteDescription.text.toString().trim() ) viewModel.insertNote(note) - showToast(requireContext().getString(R.string.note_saved)) + showToast(context.getString(R.string.note_saved)) if (pickedDateTime?.timeInMillis != null && pickedDateTime!!.timeInMillis <= currentDateTime.timeInMillis) - startAlarm(requireContext(), pickedDateTime!!.timeInMillis, note) + startAlarm(context, pickedDateTime!!.timeInMillis, note) navController.navigate(R.id.action_editNoteFragment_to_homeFragment) } else { - showToast(requireContext().getString(R.string.title_required)) + showToast(context.getString(R.string.title_required)) etNoteTitle.requestFocus() } } @@ -374,7 +369,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa } private fun launchDeleteNoteDialog(context: Context) { - val materialDialog = MaterialAlertDialogBuilder(requireContext()) + val materialDialog = MaterialAlertDialogBuilder(context) materialDialog.apply { setTitle(context.getString(R.string.delete_note)) setMessage("${context.getString(R.string.confirm_deletion)} ${_note.title}?") @@ -390,7 +385,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa private fun startRecording() { val filePath = filePath(requireActivity()) - val fileName = "${binding.etNoteTitle.text.toString().trim()}.3gp" + val fileName = "${System.currentTimeMillis()}.3gp" _note.filePath = "$filePath/$fileName" showToast(requireContext().getString(R.string.started_recording)) @@ -410,7 +405,6 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa prepare() start() stopWatch!!.start() - disableNoteTitleEdit() } catch (e: IOException) { showToast(requireContext().getString(R.string.error_occurred)) } @@ -429,9 +423,11 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa reset() } stopWatch = null + if (_note.audioLength <= 0) + return val file = File(_note.filePath) val fileByte = (file.readBytes().size.toDouble() / 1048576.00) - val fileSize = roundOffDecimal(fileByte).toString() + val fileSize = roundOffDecimal(fileByte) _note.size = fileSize showToast(requireContext().getString(R.string.stopped_recording)) } @@ -470,13 +466,6 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa } } - private fun disableNoteTitleEdit() { - binding.etNoteTitle.apply { - keyListener = null - setOnClickListener { showToast(requireContext().getString(R.string.cant_edit_note_title)) } - } - } - private fun pausePlayingRecording() { mediaPlayer?.pause() timer?.stop() diff --git a/app/src/main/java/com/certified/audionote/utils/Util.kt b/app/src/main/java/com/certified/audionote/utils/Util.kt index 7062404..f247b58 100644 --- a/app/src/main/java/com/certified/audionote/utils/Util.kt +++ b/app/src/main/java/com/certified/audionote/utils/Util.kt @@ -27,8 +27,6 @@ import com.certified.audionote.R import com.certified.audionote.model.Note import com.certified.audionote.ui.AlertReceiver import com.vmadalin.easypermissions.EasyPermissions -import java.math.RoundingMode -import java.text.DecimalFormat import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.TimeUnit @@ -116,8 +114,6 @@ fun cancelAlarm(context: Context, noteId: Int) { Log.d("TAG", "cancelAlarm: Alarm canceled") } -fun roundOffDecimal(number: Double): Double { - val df = DecimalFormat("#.##") - df.roundingMode = RoundingMode.CEILING - return df.format(number).toDouble() +fun roundOffDecimal(number: Double): String { + return "%.2f".format(number) } \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index e3d2c7d..c33cd76 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -27,7 +27,7 @@ Pulsante Indietro Pulsante Elimina Pulsante Condividi - Clicca per aggiungere un promemoria a questa nota + Aggiungi un promemoria a questa nota Registra Pulsante Promemoria Bentornato @@ -66,7 +66,6 @@ Chiaro Scuro In riproduzione - Non puoi modificare il titolo della nota Il titolo della nota è obbligatorio Questa autorizzazione è richiesta per abilitare le registrazioni audio Nota salvata @@ -83,4 +82,5 @@ Oggi Imminenti Completate + Registra la tua nota audio prima di salvare \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 904b1eb..3975755 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,7 +71,6 @@ Light Dark Now playing - You can\'t edit the note title The note title is required This permission is required to enable audio recording Note saved @@ -88,4 +87,5 @@ Today Upcoming Completed + Please record your audio note before saving \ No newline at end of file