Sitelet https://github.com/nextcloud/talk-android/pull/6800
Skip to content

refactor(conversationinfo): replace material-dialogs with Compose lobby timer picker - #6800

Open
rapterjet2004 wants to merge 1 commit into
masterfrom
remove-afollestad-material-dialogs
Open

rapterjet2004 wants to merge 1 commit into
masterfrom
remove-afollestad-material-dialogs

Conversation

@rapterjet2004

@rapterjet2004 rapterjet2004 commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

This removes

  • com.afollestad.material-dialogs:core:3.3.0
  • com.afollestad.material-dialogs:datetime:3.3.0
  • com.afollestad.material-dialogs:bottomsheets:3.3.0
  • com.afollestad.material-dialogs:lifecycle:3.3.0

as a dependency. Tbh we should have removed it a while ago

The unmaintained com.afollestad.material-dialogs library was only used for the lobby timer date/time pickers. Replace them with a Material3 Compose LobbyTimerPickerDialog, which also preselects the current timer, follows the system 12/24h setting and disallows past dates.

Remove the unused bottomsheet list helpers and their layout, replace the leaked md_title_textsize dimen with an own dialog_title_text_size, and drop the dependency and its verification metadata.

Assisted-by: Claude Code:claude-opus-5

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not needed
  • 🔖 Capability is checked or not needed
  • 🔙 Backport requests are created or not needed: /backport to stable-xx.x
  • 📅 Milestone is set
  • 🌸 PR title is meaningful (if it should be in the changelog: is it meaningful to users?)

🤖 AI (if applicable)

  • The content of this PR was partly or fully generated using AI

The unmaintained com.afollestad.material-dialogs library was only used
for the lobby timer date/time pickers. Replace them with a Material3
Compose LobbyTimerPickerDialog, which also preselects the current
timer, follows the system 12/24h setting and disallows past dates.

Remove the unused bottomsheet list helpers and their layout, replace
the leaked md_title_textsize dimen with an own dialog_title_text_size,
and drop the dependency and its verification metadata.

Assisted-by: Claude Code:claude-opus-5

Signed-off-by: rapterjet2004 <juliuslinus1@gmail.com>
@rapterjet2004 rapterjet2004 changed the title chore(deps): replace material-dialogs with Compose lobby timer picker refactor(conversationinfo): replace material-dialogs with Compose lobby timer picker Oct 1, 2026
@rapterjet2004
rapterjet2004 requested a review from mahibi October 1, 2026 18:49
@rapterjet2004 rapterjet2004 added the 3. to review Waiting for reviews label Oct 1, 2026
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 2acb456a-d6e1-4ed0-8050-13a5b8558d54

📥 Commits

Reviewing files that changed from the base of the PR and between 2930cee and 4186321.

📒 Files selected for processing (12)
  • app/build.gradle.kts
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/BasicListItemWithImage.kt
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/BottomSheets.kt
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/ListIconDialogAdapter.kt
  • app/src/main/java/com/nextcloud/talk/conversationinfo/ConversationInfoActivity.kt
  • app/src/main/java/com/nextcloud/talk/conversationinfo/ui/LobbyTimerPickerDialog.kt
  • app/src/main/res/layout/dialog_ban_participant.xml
  • app/src/main/res/layout/dialog_filter_conversation.xml
  • app/src/main/res/layout/fragment_dialog_ban_list.xml
  • app/src/main/res/layout/menu_item_sheet.xml
  • app/src/main/res/values/dimens.xml
  • gradle/verification-metadata.xml
💤 Files with no reviewable changes (6)
  • app/src/main/res/layout/menu_item_sheet.xml
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/BasicListItemWithImage.kt
  • gradle/verification-metadata.xml
  • app/build.gradle.kts
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/ListIconDialogAdapter.kt
  • app/src/main/java/com/nextcloud/talk/bottomsheet/items/BottomSheets.kt

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

ConversationInfoActivity replaces the MaterialDialogs lobby timer flow with a Compose date-and-time picker. Confirming submits the selected epoch seconds; dismissal closes the picker without submission. The change also removes Material Dialogs dependencies and image-list dialog support, updates dialog title dimensions, and deletes the old menu-item sheet layout.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 41863

The Compose picker preserves timer submission and dismissal behavior, and dependency cleanup leaves no identified unresolved references. The change is mergeable subject to normal build and test checks.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 41863

The new picker continues to update the same room using the existing account and submission path. No introduced access-control weakness was identified. Risk is limited, but server-side authorization and concurrent-update behavior could not be verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — Each confirmed submission targets the existing Activity-selected room on the bound account’s server. The picker supplies only a timestamp, not credentials, a server address or a room identifier; no broader independently attackable scope was established by this replacement.

Trust Boundaries and Controls

  • observed — The existing timer-row visibility condition remains in place, and confirmation retains the credentialed room-update boundary. UI visibility and past-time validation are not substitutes for server authorization; the server’s moderator and ownership enforcement was unavailable for inspection.

Resilience and Maintainability Implications

  • observed — Partial selections remain local until confirmation. The shared submission path issues independent asynchronous updates without visible serialization or deduplication, as before this PR. Client evidence does not establish server ordering, atomicity or recovery after concurrent requests or interruption.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 2 files. (4 skipped: 4… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the primary change: replacing Material Dialogs with a Compose lobby timer picker.
Description check ✅ Passed The description explains the dependency removal, Compose replacement, behavior changes, cleanup, and AI assistance. It includes the checklist and AI section. The screenshots and TODO sections are miss…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 13 functions across 2 files. (4 skipped: 4 unsupported.)

  • Fix all pre-merge checks with AI
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Codacy

Lint

TypemasterPR
Warnings138136
Errors1815

SpotBugs

CategoryBaseNew
Bad practice77
Correctness1111
Dodgy code4040
Internationalization33
Malicious code vulnerability33
Performance88
Security1111
Total8383

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

📱 QA build

Download app-qa-debug.apk
QR code Open the QR code for this download
Commit 4186321
Version 6800
Available until 7 days after this build

The QA build installs alongside a released Nextcloud app, so you can keep
using your existing install while testing.

Downloading the file requires a GitHub account, so open this link on the
device you want to test on, or transfer the APK to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review Waiting for reviews AI assisted

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant