mirror of
https://github.com/SimpleMobileTools/Simple-Voice-Recorder.git
synced 2025-06-05 21:59:31 +02:00
fix #21, allow choosing between m4a and mp3 file extension
This commit is contained in:
@ -56,7 +56,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:5.30.12'
|
implementation 'com.simplemobiletools:commons:5.30.24'
|
||||||
implementation 'org.greenrobot:eventbus:3.2.0'
|
implementation 'org.greenrobot:eventbus:3.2.0'
|
||||||
implementation 'com.github.Armen101:AudioRecordView:1.0.2'
|
implementation 'com.github.Armen101:AudioRecordView:1.0.2'
|
||||||
implementation 'androidx.documentfile:documentfile:1.0.1'
|
implementation 'androidx.documentfile:documentfile:1.0.1'
|
||||||
|
@ -3,10 +3,14 @@ package com.simplemobiletools.voicerecorder.activities
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import com.simplemobiletools.commons.dialogs.ChangeDateTimeFormatDialog
|
import com.simplemobiletools.commons.dialogs.ChangeDateTimeFormatDialog
|
||||||
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
||||||
|
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.isQPlus
|
import com.simplemobiletools.commons.helpers.isQPlus
|
||||||
|
import com.simplemobiletools.commons.models.RadioItem
|
||||||
import com.simplemobiletools.voicerecorder.R
|
import com.simplemobiletools.voicerecorder.R
|
||||||
import com.simplemobiletools.voicerecorder.extensions.config
|
import com.simplemobiletools.voicerecorder.extensions.config
|
||||||
|
import com.simplemobiletools.voicerecorder.helpers.EXTENSION_M4A
|
||||||
|
import com.simplemobiletools.voicerecorder.helpers.EXTENSION_MP3
|
||||||
import kotlinx.android.synthetic.main.activity_settings.*
|
import kotlinx.android.synthetic.main.activity_settings.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@ -26,6 +30,7 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
setupChangeDateTimeFormat()
|
setupChangeDateTimeFormat()
|
||||||
setupHideNotification()
|
setupHideNotification()
|
||||||
setupSaveRecordingsFolder()
|
setupSaveRecordingsFolder()
|
||||||
|
setupExtension()
|
||||||
updateTextColors(settings_scrollview)
|
updateTextColors(settings_scrollview)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,4 +86,18 @@ class SettingsActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupExtension() {
|
||||||
|
settings_extension.text = config.getExtensionText()
|
||||||
|
settings_extension_holder.setOnClickListener {
|
||||||
|
val items = arrayListOf(
|
||||||
|
RadioItem(EXTENSION_M4A, getString(R.string.m4a)),
|
||||||
|
RadioItem(EXTENSION_MP3, getString(R.string.mp3)))
|
||||||
|
|
||||||
|
RadioGroupDialog(this@SettingsActivity, items, config.extension) {
|
||||||
|
config.extension = it as Int
|
||||||
|
settings_extension.text = config.getExtensionText()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,4 +16,13 @@ class Config(context: Context) : BaseConfig(context) {
|
|||||||
var saveRecordingsFolder: String
|
var saveRecordingsFolder: String
|
||||||
get() = prefs.getString(SAVE_RECORDINGS, "$internalStoragePath/${context.getString(R.string.app_name)}")!!
|
get() = prefs.getString(SAVE_RECORDINGS, "$internalStoragePath/${context.getString(R.string.app_name)}")!!
|
||||||
set(saveRecordingsFolder) = prefs.edit().putString(SAVE_RECORDINGS, saveRecordingsFolder).apply()
|
set(saveRecordingsFolder) = prefs.edit().putString(SAVE_RECORDINGS, saveRecordingsFolder).apply()
|
||||||
|
|
||||||
|
var extension: Int
|
||||||
|
get() = prefs.getInt(EXTENSION, EXTENSION_M4A)
|
||||||
|
set(extension) = prefs.edit().putInt(EXTENSION, extension).apply()
|
||||||
|
|
||||||
|
fun getExtensionText() = context.getString(when (extension) {
|
||||||
|
EXTENSION_M4A -> R.string.m4a
|
||||||
|
else -> R.string.mp3
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,13 @@ const val RECORDER_RUNNING_NOTIF_ID = 10000
|
|||||||
private const val PATH = "com.simplemobiletools.voicerecorder.action."
|
private const val PATH = "com.simplemobiletools.voicerecorder.action."
|
||||||
const val GET_RECORDER_INFO = PATH + "GET_RECORDER_INFO"
|
const val GET_RECORDER_INFO = PATH + "GET_RECORDER_INFO"
|
||||||
const val STOP_AMPLITUDE_UPDATE = PATH + "STOP_AMPLITUDE_UPDATE"
|
const val STOP_AMPLITUDE_UPDATE = PATH + "STOP_AMPLITUDE_UPDATE"
|
||||||
|
const val EXTENSION_M4A = 0
|
||||||
|
const val EXTENSION_MP3 = 1
|
||||||
|
|
||||||
// shared preferences
|
// shared preferences
|
||||||
const val HIDE_NOTIFICATION = "hide_notification"
|
const val HIDE_NOTIFICATION = "hide_notification"
|
||||||
const val SAVE_RECORDINGS = "save_recordings"
|
const val SAVE_RECORDINGS = "save_recordings"
|
||||||
|
const val EXTENSION = "extension"
|
||||||
|
|
||||||
@SuppressLint("InlinedApi")
|
@SuppressLint("InlinedApi")
|
||||||
fun getAudioFileContentUri(id: Long): Uri {
|
fun getAudioFileContentUri(id: Long): Uri {
|
||||||
|
@ -71,7 +71,7 @@ class RecorderService : Service() {
|
|||||||
defaultFolder.absolutePath
|
defaultFolder.absolutePath
|
||||||
}
|
}
|
||||||
|
|
||||||
currFilePath = "$baseFolder/${getCurrentFormattedDateTime()}.m4a"
|
currFilePath = "$baseFolder/${getCurrentFormattedDateTime()}.${config.getExtensionText()}"
|
||||||
recorder = MediaRecorder().apply {
|
recorder = MediaRecorder().apply {
|
||||||
setAudioSource(MediaRecorder.AudioSource.CAMCORDER)
|
setAudioSource(MediaRecorder.AudioSource.CAMCORDER)
|
||||||
setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
|
setOutputFormat(MediaRecorder.OutputFormat.MPEG_4)
|
||||||
|
@ -153,5 +153,37 @@
|
|||||||
android:maxLines="3" />
|
android:maxLines="3" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/settings_extension_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/medium_margin"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:paddingLeft="@dimen/normal_margin"
|
||||||
|
android:paddingTop="@dimen/bigger_margin"
|
||||||
|
android:paddingRight="@dimen/normal_margin"
|
||||||
|
android:paddingBottom="@dimen/bigger_margin">
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/settings_extension_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_toStartOf="@+id/settings_extension"
|
||||||
|
android:paddingLeft="@dimen/medium_margin"
|
||||||
|
android:paddingRight="@dimen/medium_margin"
|
||||||
|
android:text="@string/extension" />
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/settings_extension"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginEnd="@dimen/small_margin"
|
||||||
|
android:background="@null"
|
||||||
|
android:clickable="false" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
7
app/src/main/res/values/donottranslate.xml
Normal file
7
app/src/main/res/values/donottranslate.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<resources>
|
||||||
|
|
||||||
|
<string name="package_name">com.simplemobiletools.voicerecorder</string>
|
||||||
|
<string name="m4a">m4a</string>
|
||||||
|
<string name="mp3">mp3</string>
|
||||||
|
|
||||||
|
</resources>
|
Reference in New Issue
Block a user