Merge branch 'master' into add-ogg-support

This commit is contained in:
Tibor Kaputa 2021-10-17 17:27:17 +02:00 committed by GitHub
commit 9c31c85db9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 82 additions and 7 deletions

View File

@ -56,10 +56,10 @@ android {
}
dependencies {
implementation 'com.github.SimpleMobileTools:Simple-Commons:99a97f2e16'
implementation 'com.github.SimpleMobileTools:Simple-Commons:0c302e84d4'
implementation 'org.greenrobot:eventbus:3.2.0'
implementation 'com.github.Armen101:AudioRecordView:1.0.2'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
}

View File

@ -31,6 +31,7 @@ class SettingsActivity : SimpleActivity() {
setupHideNotification()
setupSaveRecordingsFolder()
setupExtension()
setupBitrate()
updateTextColors(settings_scrollview)
}
@ -98,7 +99,8 @@ class SettingsActivity : SimpleActivity() {
settings_extension_holder.setOnClickListener {
val items = arrayListOf(
RadioItem(EXTENSION_M4A, getString(R.string.m4a)),
RadioItem(EXTENSION_MP3, getString(R.string.mp3)))
RadioItem(EXTENSION_MP3, getString(R.string.mp3))
)
if (isQPlus()) {
items.add(RadioItem(EXTENSION_OGG, getString(R.string.ogg)))
@ -110,4 +112,18 @@ class SettingsActivity : SimpleActivity() {
}
}
}
private fun setupBitrate() {
settings_bitrate.text = getBitrateText(config.bitrate)
settings_bitrate_holder.setOnClickListener {
val items = BITRATES.map { RadioItem(it, getBitrateText(it)) } as ArrayList
RadioGroupDialog(this@SettingsActivity, items, config.bitrate) {
config.bitrate = it as Int
settings_bitrate.text = getBitrateText(config.bitrate)
}
}
}
private fun getBitrateText(value: Int): String = getString(R.string.bitrate_value).format(value / 1000)
}

View File

@ -22,6 +22,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getInt(EXTENSION, EXTENSION_M4A)
set(extension) = prefs.edit().putInt(EXTENSION, extension).apply()
var bitrate: Int
get() = prefs.getInt(BITRATE, DEFAULT_BITRATE)
set(bitrate) = prefs.edit().putInt(BITRATE, bitrate).apply()
fun getExtensionText() = context.getString(when (extension) {
EXTENSION_M4A -> R.string.m4a
EXTENSION_OGG -> R.string.ogg

View File

@ -18,6 +18,9 @@ const val EXTENSION_M4A = 0
const val EXTENSION_MP3 = 1
const val EXTENSION_OGG = 2
val BITRATES = arrayListOf(32000, 64000, 96000, 128000, 160000, 192000, 256000, 320000)
const val DEFAULT_BITRATE = 128000
const val RECORDING_RUNNING = 0
const val RECORDING_STOPPED = 1
const val RECORDING_PAUSED = 2
@ -26,6 +29,7 @@ const val RECORDING_PAUSED = 2
const val HIDE_NOTIFICATION = "hide_notification"
const val SAVE_RECORDINGS = "save_recordings"
const val EXTENSION = "extension"
const val BITRATE = "bitrate"
@SuppressLint("InlinedApi")
fun getAudioFileContentUri(id: Long): Uri {

View File

@ -76,7 +76,7 @@ class RecorderService : Service() {
setAudioSource(MediaRecorder.AudioSource.CAMCORDER)
setOutputFormat(config.getOutputFormat())
setAudioEncoder(config.getAudioEncoder())
setAudioEncodingBitRate(128000)
setAudioEncodingBitRate(config.bitrate)
setAudioSamplingRate(44100)
try {

View File

@ -186,5 +186,37 @@
android:clickable="false" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_bitrate_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_bitrate_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/settings_bitrate"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/bitrate" />
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_bitrate"
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>
</ScrollView>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Forsøg at skjule notifikation under optagelse</string>
<string name="save_recordings_in">Gem optagelser i</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Kan jeg skjule notifikationsikonet under optagelse?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Versuche die Aufnahmebenachrichtigung auszublenden</string>
<string name="save_recordings_in">Speichere Aufnahme in</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Kann ich das Benachrichtigungssymbol während der Aufnahme ausblenden?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Δοκιμάστε να αποκρύψετε την ειδοποίηση εγγραφής</string>
<string name="save_recordings_in">Αποθήκευση εγγραφών σε</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Μπορώ να αποκρύψω το εικονίδιο ειδοποίησης κατά την εγγραφή;</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Tratar de ocultar la notificación de grabación</string>
<string name="save_recordings_in">Guardar grabaciones en</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">¿Puedo ocultar el ícono de notificación durante la grabación?</string>

View File

@ -18,6 +18,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Yritä piilottaa tallennusilmoitus</string>
<string name="save_recordings_in">Tallenna tallenteet</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Voinko piilottaa ilmoituskuvakkeen tallennuksen aikana?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Coba sembunyikan pemberitahuan rekaman</string>
<string name="save_recordings_in">Simpan rekaman di</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Bisakah saya menyembunyikan ikon notifikasi selama merekam?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Prova a nascondere la notifica di registrazione</string>
<string name="save_recordings_in">Salva le registrazioni in</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Posso nascondere la notifica durante la registrazione?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">録音通知を隠す</string>
<string name="save_recordings_in">録音を保存する</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">録音中に通知を非表示にすることは出来ますか?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Pabandyti paslėpti įrašymo pranešimą</string>
<string name="save_recordings_in">Išsaugoti įrašus</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Ar galiu paslėpti pranešimo ikonėlę įrašinėjant?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Tijdens de opname proberen de notificatie te verbergen</string>
<string name="save_recordings_in">Opnames opslaan in</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Kan ik de notificatie tijdens het opnemen verbergen?</string>

View File

@ -18,6 +18,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Spróbuj ukrywać powiadomienie o nagrywaniu</string>
<string name="save_recordings_in">Zapisuj nagrania w</string>
<string name="bitrate">Przepływność</string>
<!-- FAQ -->
<string name="faq_1_title">Czy mogę ukryć ikonę powiadomienia podczas nagrywania?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Tentar ocultar a notificação da gravação</string>
<string name="save_recordings_in">Guardar gravações em</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Can I hide the notification icon during recording?</string>

View File

@ -18,6 +18,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Пытаться скрыть уведомление о записи</string>
<string name="save_recordings_in">Место хранения записей</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Можно ли скрыть значок уведомления во время записи?</string>

View File

@ -18,6 +18,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Skúsiť ukryť nahrávaciu notifikáciu</string>
<string name="save_recordings_in">Ukladať nahrávky do</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Viem nejakým spôsobom ukryť notifikačnú ikonku počas nahrávania?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Kayıt bildirimini gizlemeyi dene</string>
<string name="save_recordings_in">Kayıt klasörü:</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Kayıt sırasında bildirim simgesini gizleyebilir miyim?</string>

View File

@ -18,6 +18,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Намагатися приховати сповіщення про запис</string>
<string name="save_recordings_in">Місце зберігання записів</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Чи можна приховати значок сповіщення під час запису?</string>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">尝试隐藏录音通知提示</string>
<string name="save_recordings_in">保存录音至</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">在录音过程中我可以隐藏通知提示图标么?</string>

View File

@ -4,5 +4,6 @@
<string name="m4a">m4a</string>
<string name="mp3">mp3</string>
<string name="ogg">ogg</string>
<string name="bitrate_value">%d kbps</string>
</resources>

View File

@ -17,6 +17,7 @@
<!-- Settings -->
<string name="try_hiding_notification">Try hiding the recording notification</string>
<string name="save_recordings_in">Save recordings in</string>
<string name="bitrate">Bitrate</string>
<!-- FAQ -->
<string name="faq_1_title">Can I hide the notification icon during recording?</string>

View File

@ -1,14 +1,14 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.4.32'
ext.kotlin_version = '1.5.31'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.3'
classpath 'com.android.tools.build:gradle:7.0.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong

View File

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip