Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

VC 18 saved a ⪆ 5400 s M4A with a purported duration of 0 s, despite its ⋛ 102.1 MiB size, due to an `ACTION_REQUEST_SHUTDOWN` having occurred during recording.

Open
#429 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
49/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
android, kotlin
Domain
backend, mobile

Research direction

Start by tracing how recording is saved and recovered when Android shuts down the process, focusing on the recorder’s recording lifecycle and M4A finalization. Reproduce the reported low-battery shutdown if possible and inspect the resulting audio file and duration; done means the recording is saved with its expected playable duration after shutdown and restart.

Written by the indexing model from the issue text.

Description

bug needs triage
Checklist
  • I can reproduce the bug with the latest version given here.
  • I made sure that there are no existing issues - open or closed - to which I could contribute my information.
  • I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
  • I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • This issue contains only one bug.
  • I have read and understood the contribution guidelines.
Affected app version
  1. #!/usr/bin/env -S pwsh -File
    $Package = 'org.fossify.voicerecorder'
    $DumpSys = adb shell "dumpsys package $Package"
    $Object = [Ordered]@{}
    @{
    	versionCode = 'versionCode=(\d+)'
    	versionName = 'versionName=([^\s]+)'
    }.GetEnumerator() | ForEach-Object {
    	$Match = [RegEx]::Match(
    		$DumpSys,
    		$_.Value,
    		[System.Text.RegularExpressions.RegexOptions]::Multiline
    	)
    	If ($Match.Success) {
    		$Value = $Match.Groups[1].Value
    		$Int64 = 0L
    		$Object[$_.Key] =
    			If ([Long]::TryParse($Value, [Ref]$Int64)) {
    				$Int64
    			} Else {
    				$Value
    			}
    	}
    }
    $Object.installer = (
    	adb shell 'pm list packages -i' |
    		Select-String "^package:$([RegEx]::Escape($Package)) " |
    		ForEach-Object {
    			$_ -replace '^.*installer='
    		}
    )
    $Object |
    	ConvertTo-JSON -Compress |
    	yq -P
    

  2. versionCode: 18
    versionName: 1.7.1
    installer: com.machiav3lli.fdroid
    
Affected Android/Custom ROM version
  1. #!/usr/bin/env -S pwsh -File
    $Object = [Ordered]@{}
    @(
    	'ro.build.display.id'
    	'ro.build.fingerprint'
    	'ro.build.version.sdk'
    	'ro.build.version.sdk_full'
    ) | ForEach-Object {
    	$Value = (adb shell "getprop $_").Trim()
    	If ($Value) {
    		$Int64 = 0L
    		$Object[$_] =
    			If ([Long]::TryParse($Value, [Ref]$Int64)) {
    				$Int64
    			} Else {
    				$Value
    			}
    	}
    }
    $Object |
    	ConvertTo-Json -Compress |
    	yq -P
    

  2. ro.build.display.id: FP5.VT32.C.116.20260903
    ro.build.fingerprint: Fairphone/FP5/FP5:15/AQ3A.240912.001/VT32:user/release-keys
    ro.build.version.sdk: 35
    
Affected device model
  1. #!/usr/bin/env -S pwsh -File
    $Object = [Ordered]@{}
    @(
    	'ro.product.brand'
    	'ro.build.product'
    ) | ForEach-Object {
    	$Value = (adb shell "getprop $_").Trim()
    	If ($Value) {
    		$Int64 = 0L
    		$Object[$_] =
    			If ([Long]::TryParse($Value, [Ref]$Int64)) {
    				$Int64
    			} Else {
    				$Value
    			}
    	}
    }
    $Object |
    	ConvertTo-Json -Compress |
    	yq -P
    

  2. ro.product.brand: Fairphone
    ro.build.product: FP5
    
How did you install the app?

F-Droid / IzzyOnDroid (〃)

Steps to reproduce the bug
  1. I recorded an M4A for ⪆ PT1.5H.

  2. My device reached BatteryCapacityLevel.CRITICAL, so PowerManager.SHUTDOWN_LOW_BATTERY occurred.

  3. I charged its battery.

  4. I re-initialised the OS.

  5. #!/system/bin/sh
    cmd activity start --user 0 -a android.intent.action.VIEW -n org.fossify.voicerecorder/org.fossify.voicerecorder.activities.MainActivity -f 0 org.fossify.voicerecorder
    

    Though, for anyone else, the equivalent is adb monkey -p org.fossify.voicerecorder 1.

Expected behavior

I expected the audio file to be saved, during that process.

Actual behavior

It is ⋛ 102.1 MiB in size, yet purportedly PT0S in duration.

Screenshots/Screen recordings
ignoreImageMinify
Dominant language
Kotlin
Stars
1k
Forks
98
Avg merge
2d 2h
Merged PRs (30d)
14

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from FossifyOrg/Voice-Recorder

All issues in FossifyOrg/Voice-Recorder

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.