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 92514ec..e73fdb6 100644 --- a/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt +++ b/app/src/main/java/com/certified/audionote/ui/EditNoteFragment.kt @@ -19,6 +19,7 @@ package com.certified.audionote.ui import android.Manifest import android.app.DatePickerDialog import android.app.TimePickerDialog +import android.content.Context import android.media.MediaPlayer import android.media.MediaRecorder import android.os.Bundle @@ -75,7 +76,6 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa private var mediaRecorder: MediaRecorder? = null private var mediaPlayer: MediaPlayer? = null private var file: File? = null - private val noteIsRequired = "The note title is required" private var stopWatch: Stopwatch? = null private var timer: Timer? = null @@ -113,7 +113,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa openEditReminderDialog() } btnShare.setOnClickListener { shareNote(_note) } - btnDelete.setOnClickListener { launchDeleteNoteDialog() } + btnDelete.setOnClickListener { launchDeleteNoteDialog(requireContext()) } btnRecord.setOnClickListener(this@EditNoteFragment) fabSaveNote.setOnClickListener(this@EditNoteFragment) @@ -152,7 +152,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa etNoteTitle.apply { // inputType = InputType.TYPE_NULL keyListener = null - setOnClickListener { showToast("You can't edit the note title") } + setOnClickListener { showToast(requireContext().getString(R.string.cant_edit_note_title)) } } btnRecord.setImageDrawable( ResourcesCompat.getDrawable( @@ -248,7 +248,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa startAlarm(requireContext(), pickedDateTime!!.timeInMillis, note) navController.navigate(R.id.action_editNoteFragment_to_homeFragment) } else { - showToast(noteIsRequired) + showToast(requireContext().getString(R.string.title_required)) etNoteTitle.requestFocus() } } @@ -274,13 +274,13 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa startRecording() } else { - showToast(noteIsRequired) + showToast(requireContext().getString(R.string.title_required)) etNoteTitle.requestFocus() } else requestPermission( requireActivity(), - "This permission is required to enable audio recording", + requireContext().getString(R.string.permission_required), MainActivity.RECORD_AUDIO_PERMISSION_CODE, Manifest.permission.RECORD_AUDIO ) @@ -304,12 +304,12 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa description = etNoteDescription.text.toString().trim() ) viewModel.insertNote(note) - showToast("Note saved") + showToast(requireContext().getString(R.string.note_saved)) if (pickedDateTime?.timeInMillis != null && pickedDateTime!!.timeInMillis <= currentDateTime.timeInMillis) startAlarm(requireContext(), pickedDateTime!!.timeInMillis, note) navController.navigate(R.id.action_editNoteFragment_to_homeFragment) } else { - showToast(noteIsRequired) + showToast(requireContext().getString(R.string.title_required)) etNoteTitle.requestFocus() } } @@ -373,13 +373,13 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa bottomSheetDialog.show() } - private fun launchDeleteNoteDialog() { + private fun launchDeleteNoteDialog(context: Context) { val materialDialog = MaterialAlertDialogBuilder(requireContext()) materialDialog.apply { - setTitle("Delete Note") - setMessage("Are you sure you want to delete ${_note.title}?") - setNegativeButton("No") { dialog, _ -> dialog?.dismiss() } - setPositiveButton("Yes") { _, _ -> + setTitle(context.getString(R.string.delete_note)) + setMessage("${context.getString(R.string.confirm_deletion)} ${_note.title}?") + setNegativeButton(context.getString(R.string.no)) { dialog, _ -> dialog?.dismiss() } + setPositiveButton(context.getString(R.string.yes)) { _, _ -> viewModel.deleteNote(_note) lifecycleScope.launch(Dispatchers.IO) { file?.delete() } navController.navigate(R.id.action_editNoteFragment_to_homeFragment) @@ -392,7 +392,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa val filePath = filePath(requireActivity()) val fileName = "${binding.etNoteTitle.text.toString().trim()}.3gp" _note.filePath = "$filePath/$fileName" - showToast("Started recording") + showToast(requireContext().getString(R.string.started_recording)) stopWatch = StopwatchBuilder() .startFormat("MM:SS") @@ -412,7 +412,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa stopWatch!!.start() disableNoteTitleEdit() } catch (e: IOException) { - showToast("An error occurred") + showToast(requireContext().getString(R.string.error_occurred)) } } } @@ -433,7 +433,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa val fileByte = (file.readBytes().size.toDouble() / 1048576.00) val fileSize = roundOffDecimal(fileByte).toString() _note.size = fileSize - showToast("Stopped recording") + showToast(requireContext().getString(R.string.stopped_recording)) } private fun startPlayingRecording() { @@ -462,18 +462,18 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa start() } timer!!.start() - showToast("Started playing recording") + showToast(requireContext().getString(R.string.started_playing_recording)) } catch (e: IOException) { e.printStackTrace() Log.d("TAG", "startPlayingRecording: ${e.localizedMessage}") - showToast("An error occurred") + showToast(requireContext().getString(R.string.error_occurred)) } } private fun disableNoteTitleEdit() { binding.etNoteTitle.apply { keyListener = null - setOnClickListener { showToast("You can't edit the note title") } + setOnClickListener { showToast(requireContext().getString(R.string.cant_edit_note_title)) } } } @@ -497,7 +497,7 @@ class EditNoteFragment : Fragment(), View.OnClickListener, DatePickerDialog.OnDa stop() } timer = null - showToast("Stopped playing recording") + showToast(requireContext().getString(R.string.stopped_playing_recording)) } private fun shareNote(note: Note) { diff --git a/app/src/main/res/layout/bottom_sheet_dialog.xml b/app/src/main/res/layout/bottom_sheet_dialog.xml index 8ae0540..f8d36b4 100644 --- a/app/src/main/res/layout/bottom_sheet_dialog.xml +++ b/app/src/main/res/layout/bottom_sheet_dialog.xml @@ -64,7 +64,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="3" - android:text="Now playing" + android:text="@string/now_playing" android:textSize="@dimen/_12ssp" android:textColor="@color/black_day_white_night" android:fontFamily="@font/open_sans_regular" diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml new file mode 100644 index 0000000..e3d2c7d --- /dev/null +++ b/app/src/main/res/values-it/strings.xml @@ -0,0 +1,86 @@ + + + + Audio Notes + Visualizzazione + Tema + Scegli tema + Descrizione + Titolo della nota (obbligatorio) + Nuova Nota + Salva + Pulsante Aggiungi nota + Pulsante Indietro + Pulsante Elimina + Pulsante Condividi + Clicca per aggiungere un promemoria a questa nota + Registra + Pulsante Promemoria + Bentornato + Ehilà, + L\'elenco delle registrazioni è vuoto. Clicca sul pulsante in basso per iniziare + Informazioni + Attribuzioni e Licenze + Rilasciato sotto Licenza Apache, Versione 2.0 + Versione dell\'app, licenza e altro + Impostazioni + Modifica Nota + Icona Sveglia + Modifica + Elimina + Nessun promemoria + Notifica di Audio Notes + Registra audio facilmente + Prendere appunti non dovrebbe riguardare la digitazione o la scrittura da sole. Usa la funzione di registrazione vocale per registrare la tua nota in modo facile e veloce per migliorare la tua produttività + Notifiche Personalizzate + Imposta un promemoria per le tue note e ricevi una notifica all\'ora esatta per cui hai impostato il promemoria. Non devi più preoccuparti di dimenticare di controllare una nota. + Progettato per te + Prendere appunti non dovrebbe essere fantascienza. L\'app è stata progettata pensando a te per facilitare il modo in cui prendi appunti e anche per migliorare la tua produttività + Registratore + Sviluppatore + Contribuisci + Visualizza il progetto su GitHub + Contatto e Feedback + Iniziamo + Proprio ora + un minuto fa + minuti fa + un\'ora fa + ore fa + un giorno fa + Predefinito di sistema + 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 + Registrazione avviata + Registrazione terminata + Riproduzione della registrazione avviata + Riproduzione della registrazione terminata + Si è verificato un errore + + No + Elimina Nota + Sei sicuro di voler eliminare + Tutte + Oggi + Imminenti + Completate + \ No newline at end of file diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 4a3174e..da124b6 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -17,9 +17,9 @@ - System default - Light - Dark + @string/theme_system_default + @string/theme_light + @string/theme_dark @@ -29,9 +29,9 @@ - All - Today - Upcoming - Completed + @string/all + @string/today + @string/upcoming + @string/completed \ 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 7038782..904b1eb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,4 +67,25 @@ an hour ago hours ago a day ago + System default + 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 + Started recording + Stopped recording + Started playing recording + Stopped playing recording + An error occurred + Yes + No + Delete Note + Are you sure you want to delete + All + Today + Upcoming + Completed \ No newline at end of file