mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-19 07:15:25 +02:00
feat: Show address for hidden microphones
This commit is contained in:
parent
c15c4b59fa
commit
38df00898d
@ -1,7 +1,11 @@
|
|||||||
package app.myzel394.alibi.ui.components.AudioRecorder.atoms
|
package app.myzel394.alibi.ui.components.AudioRecorder.atoms
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
@ -13,12 +17,16 @@ import androidx.compose.material3.ButtonDefaults
|
|||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import app.myzel394.alibi.ui.utils.MicrophoneInfo
|
import app.myzel394.alibi.ui.utils.MicrophoneInfo
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import app.myzel394.alibi.R
|
import app.myzel394.alibi.R
|
||||||
|
import app.myzel394.alibi.dataStore
|
||||||
|
import app.myzel394.alibi.db.AppSettings
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun MicrophoneSelectionButton(
|
fun MicrophoneSelectionButton(
|
||||||
@ -26,6 +34,12 @@ fun MicrophoneSelectionButton(
|
|||||||
selected: Boolean = false,
|
selected: Boolean = false,
|
||||||
onSelect: () -> Unit,
|
onSelect: () -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val dataStore = LocalContext.current.dataStore
|
||||||
|
val settings = dataStore
|
||||||
|
.data
|
||||||
|
.collectAsState(initial = AppSettings.getDefaultInstance())
|
||||||
|
.value
|
||||||
|
|
||||||
Button(
|
Button(
|
||||||
onClick = onSelect,
|
onClick = onSelect,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
@ -33,16 +47,28 @@ fun MicrophoneSelectionButton(
|
|||||||
.height(64.dp),
|
.height(64.dp),
|
||||||
colors = if (selected) ButtonDefaults.buttonColors(
|
colors = if (selected) ButtonDefaults.buttonColors(
|
||||||
) else ButtonDefaults.textButtonColors(),
|
) else ButtonDefaults.textButtonColors(),
|
||||||
|
) {
|
||||||
|
Row(
|
||||||
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
horizontalArrangement = Arrangement.spacedBy(ButtonDefaults.IconSpacing),
|
||||||
) {
|
) {
|
||||||
MicrophoneTypeInfo(
|
MicrophoneTypeInfo(
|
||||||
type = microphone?.type ?: MicrophoneInfo.MicrophoneType.PHONE,
|
type = microphone?.type ?: MicrophoneInfo.MicrophoneType.PHONE,
|
||||||
modifier = Modifier.size(ButtonDefaults.IconSize),
|
modifier = Modifier.size(ButtonDefaults.IconSize),
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.width(ButtonDefaults.IconSpacing))
|
Column {
|
||||||
Text(
|
Text(
|
||||||
text = microphone?.name
|
text = microphone?.name
|
||||||
?: stringResource(R.string.ui_audioRecorder_info_microphone_deviceMicrophone),
|
?: stringResource(R.string.ui_audioRecorder_info_microphone_deviceMicrophone),
|
||||||
fontSize = MaterialTheme.typography.bodyLarge.fontSize,
|
fontSize = MaterialTheme.typography.bodyLarge.fontSize,
|
||||||
)
|
)
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && settings.audioRecorderSettings.showAllMicrophones && microphone?.deviceInfo?.address?.isNotBlank() == true)
|
||||||
|
Text(
|
||||||
|
microphone.deviceInfo.address.toString(),
|
||||||
|
fontSize = MaterialTheme.typography.bodySmall.toSpanStyle().fontSize,
|
||||||
|
color = if (selected) MaterialTheme.colorScheme.onPrimary else MaterialTheme.colorScheme.secondary,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user