diff --git a/plugins/radar-android-phone-audio-input/README.md b/plugins/radar-android-phone-audio-input/README.md
index 05f20def0..2b4319700 100644
--- a/plugins/radar-android-phone-audio-input/README.md
+++ b/plugins/radar-android-phone-audio-input/README.md
@@ -57,11 +57,42 @@ This plugin provides an interactive UI for recording and managing audio data. Be
5. **Device Selection Mechanism**:
- The device selection mechanism automatically prioritizes the USB audio device if connected. If no USB device is found, the plugin selects external devices in the following order of precedence:
- `TYPE_USB_DEVICE`
- - `TYPE_BLUETOOTH`
- `TYPE_WIRED_HEADSET`
- - If no external device is found, the plugin defaults to using the smartphone's built-in microphone.
+ - `TYPE_BLUETOOTH`
+ - If no external device is found, the plugin defaults to using the smartphone's built-in microphone.
6. **Fragment Integration**:
- `PhoneAudioInputActivity` opens a fragment that provides additional capabilities, including:
- **Audio Playback**: Users can playback the recorded audio to review it before sending.
- **Data Sending**: Users can send the recorded audio data for storing to s3.
+
+### Guide for Using the PhoneAudioInput Plugin
+
+
+
+
+1. In the main activity, where plugins are visible along with their actions (if any), click on the specific action for the **Phone Audio Input** plugin.
+ - This will redirect you to the first activity of the Phone Audio Input plugin.
+
+
+
+
+2. At the top of this activity, there is a dropdown menu for selecting microphones.
+ - The current input routing microphone is shown by default in the dropdown menu when it is collapsed.
+ - Click on the refresh button near dropdown menu to refresh microphones.
+ - Select your preferred microphone from the dropdown menu. If no preferred microphone is selected, the automatic device selection logic will take place.
+
+
+
+
+3. Click **Start Recording** to begin recording audio.
+ - While recording, you can pause or resume the recording.
+ - Do not quit the recording activity while recording is in progress or paused, as this may cause the application to misbehave. An alert will also be shown if you attempt to quit the activity in a recording or paused state. You can safely quit the activity after stopping the recording.
+
+
+
+
+4. After stopping the recording, an alert dialog will appear with three options: play the recorded audio, send it directly without playing, or discard it.
+ - If you click **Play**, you will be redirected to a new fragment for listening to the last recorded audio. Here, you can review the recording and send it after listening.
+
+
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/action_devices.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/action_devices.jpg
new file mode 100644
index 000000000..889fc78c6
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/action_devices.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_ongoing.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_ongoing.jpg
new file mode 100644
index 000000000..37bbdc60b
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_ongoing.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_stopped.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_stopped.jpg
new file mode 100644
index 000000000..a96a0bb40
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/alert_rec_stopped.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_exit_alert.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_exit_alert.jpg
new file mode 100644
index 000000000..c7d6989c4
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_exit_alert.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_frag.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_frag.jpg
new file mode 100644
index 000000000..8b71c15aa
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/playback_frag.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity.jpg
new file mode 100644
index 000000000..35e4fb833
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_devices.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_devices.jpg
new file mode 100644
index 000000000..837988f17
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_devices.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_paused.jpg b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_paused.jpg
new file mode 100644
index 000000000..912bcccff
Binary files /dev/null and b/plugins/radar-android-phone-audio-input/assets/images/audio_input_plugin/recording_activity_paused.jpg differ
diff --git a/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/PhoneAudioInputManager.kt b/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/PhoneAudioInputManager.kt
index a0fe3781a..9d8cb2d40 100644
--- a/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/PhoneAudioInputManager.kt
+++ b/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/PhoneAudioInputManager.kt
@@ -265,10 +265,10 @@ class PhoneAudioInputManager(service: PhoneAudioInputService) : AbstractSourceMa
logger.info("Running device selection logic")
(arrayOf(TYPE_USB_DEVICE, TYPE_USB_HEADSET).let { deviceTypes ->
connectedMicrophones.run { preferByDeviceType(deviceTypes) }
+ }?: arrayOf(TYPE_WIRED_HEADSET).let { deviceTypes ->
+ connectedMicrophones.run { preferByDeviceType(deviceTypes) }
} ?: arrayOf(TYPE_BLUETOOTH_A2DP, TYPE_BLUETOOTH_SCO).let { deviceTypes ->
connectedMicrophones.run { preferByDeviceType(deviceTypes) }
- } ?: arrayOf(TYPE_WIRED_HEADSET).let { deviceTypes ->
- connectedMicrophones.run { preferByDeviceType(deviceTypes) }
} ?: connectedMicrophones.firstOrNull())?.also(setPreferredDeviceAndUpdate)
}
@@ -278,6 +278,7 @@ class PhoneAudioInputManager(service: PhoneAudioInputService) : AbstractSourceMa
}
private fun clearAudioDirectory() {
+ payloadSize = 0
audioDir?.let { audioDir ->
audioDir.parentFile
?.list { _, name -> name.startsWith("phone_audio_input") && name.endsWith(".wav") }
diff --git a/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/ui/PhoneAudioInputActivity.kt b/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/ui/PhoneAudioInputActivity.kt
index a13459bf2..7d9f80513 100644
--- a/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/ui/PhoneAudioInputActivity.kt
+++ b/plugins/radar-android-phone-audio-input/src/main/java/org/radarbase/passive/phone/audio/input/ui/PhoneAudioInputActivity.kt
@@ -425,6 +425,9 @@ class PhoneAudioInputActivity : AppCompatActivity() {
override fun onStop() {
super.onStop()
state?.apply{
+ isRecording.value?.let {
+ audioRecordManager?.stopRecording()
+ }
microphonePrioritized = false
isRecording.postValue(null)
}