Skip to content

Feature/v2 1#152

Open
Dimowner wants to merge 10 commits into
masterfrom
feature/v2_1
Open

Feature/v2 1#152
Dimowner wants to merge 10 commits into
masterfrom
feature/v2_1

Conversation

@Dimowner

Copy link
Copy Markdown
Owner

Address Crashlytics crashes:
Enhance thread-safety in RecordingWaveformBuffer with synchronized methods and add regression test for concurrent access

Enhance thread-safety in MediaRecorderBase and WavRecorderV2 by synchronizing access to amplitudesBuffer

Release media recorder when exception happens on start recording.

Also, this pull request introduces a new feature allowing users to add or edit audio record descriptions (notes) and choose whether to embed these descriptions as metadata in the audio file. It also includes UI improvements for the playback and time panels, and enforces portrait orientation on phones. The most significant changes are grouped below.

Feature: Description Editing and Metadata Embedding

  • Added a new EditDescriptionDialog composable for editing a record's description, with a checkbox to control saving the description as a COMMENT tag in the audio file. The dialog adapts based on file format support. (app/src/main/java/com/dimowner/audiorecorder/v2/app/AppComponents.kt)
  • Updated the info screen (RecordInfoScreen) to use the new dialog and pass the "save to file" flag through, including logic to determine if the file format supports embedding the description. (app/src/main/java/com/dimowner/audiorecorder/v2/app/info/RecordInfoScreen.kt, app/src/main/java/com/dimowner/audiorecorder/v2/app/AppExtensions.kt) [1] [2] [3] [4]
  • Introduced a new default value (IS_SAVE_DESCRIPTION_TO_FILE) and a new constant for the maximum description length (RECORD_DESCRIPTION_MAX_LENGTH). (app/src/main/java/com/dimowner/audiorecorder/v2/DefaultValues.kt, app/src/main/java/com/dimowner/audiorecorder/AppConstantsV2.kt) [1] [2]
  • Added tests to verify correct storage and default value of the "save description to file" preference. (app/src/androidTest/java/com/dimowner/audiorecorder/v2/data/PrefsV2ImplTest.kt)

UI/UX Improvements

  • Adjusted the height of the waveform in the playback panel and padding for better visual balance. (app/src/main/java/com/dimowner/audiorecorder/v2/app/components/RecordPlaybackPanel.kt) [1] [2]
  • Improved padding for the time panel's start and end time texts for better alignment. (app/src/main/java/com/dimowner/audiorecorder/v2/app/home/HomeComponents.kt) [1] [2]

Device Orientation Handling

  • Enforced portrait orientation on devices classified as phones (based on screen width), while allowing tablets and large screens to remain flexible. (app/src/main/java/com/dimowner/audiorecorder/v2/app/HomeActivity.kt) [1] [2]

These changes collectively enhance the app's usability by providing users with more control over record metadata, improving the visual design, and ensuring a consistent experience across device types.

Added Korean language support.

Dimowner added 10 commits June 12, 2026 20:05
…thods and add regression test for concurrent access
- Implement EditDescriptionDialog for adding/editing descriptions directly from the records list.
- Update RecordInfoScreen to include a description editor with a dialog for editing.
- Modify RecordsDataSource to persist descriptions in the database and audio file metadata.
- Enhance UI components to display descriptions and allow interaction for editing.
- Implement a checkbox in the EditDescriptionDialog to allow users to choose whether to embed the description as a COMMENT tag in the audio file.
- Update relevant functions and data models to handle the new writeToFile parameter.
- Ensure compatibility with formats that do not support comment metadata (e.g., 3GP).
- Persist the user's choice for future use.
… reflect character count. Fixed remove tag comment from audio file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant