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

[Bug] File action sheet shows no actions at all for locked files

Open Beginner friendly
#17,845 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
86/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
android, kotlin
Domain
mobile

Research direction

Start in FileActionsBottomSheet.handleState() and inspect how displayActions() and displayLockInfo() append rows to the sheet. The issue identifies the call order causing the actions to be skipped and suggests rendering actions before lock information. Done when a locked file shows its regular actions alongside the lock information; the payload names no test file.

Written by the indexing model from the issue text.

Description

Steps to reproduce

  1. Lock a file (e.g. open a document in the Text or OnlyOffice app, or use "Lock file" from another client).
  2. In the Android app, open the folder that contains the locked file.
  3. Tap the three-dot menu of that file.

Actual behaviour

The bottom sheet shows the file name and a "Locked by the app …" row, but no actions at all — not even edit, rename, download or delete. The sheet is short and cannot be expanded by dragging.

Expected behaviour

The regular action list is shown, plus the lock information row.

Cause

FileActionsBottomSheet.handleState() calls displayLockInfo() before displayActions():

if (state.lockInfo != null) {
    displayLockInfo(state.lockInfo)
}
displayActions(state.titleFile, state.actions)

displayActions() starts with if (binding.fileActionsList.isNotEmpty()) return, so as soon as the lock row has been appended, every action is skipped. Only the lock row ends up in the sheet.

Suggested fix

Render the actions first and append the lock info afterwards:

displayActions(state.titleFile, state.actions)
if (state.lockInfo != null) {
    displayLockInfo(state.lockInfo)
}

This is also what makes the unlock action reachable — see #17838.

Environment

  • Nextcloud Android 35.0.1 (Play) and current master, Android 16, Pixel 9 Pro
  • Server: Nextcloud 34 (AIO), files_lock 34.0.1

🤖 Generated with Claude Code

Dominant language
Kotlin
Stars
5.6k
Forks
2k
Avg merge
2d 4h
Merged PRs (30d)
92

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

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 nextcloud/android

All issues in nextcloud/android

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.