Skip to content

Implement a graceful UI fallback when system ringtones are unavailable on iOS#903

Open
NihalDR wants to merge 1 commit intoCCExtractor:mainfrom
NihalDR:contribution_v1
Open

Implement a graceful UI fallback when system ringtones are unavailable on iOS#903
NihalDR wants to merge 1 commit intoCCExtractor:mainfrom
NihalDR:contribution_v1

Conversation

@NihalDR
Copy link

@NihalDR NihalDR commented Mar 14, 2026

Description
Fixes a UX issue where iOS users see a blank screen when opening the System Ringtones tab. Since iOS sandbox restrictions prevent third-party apps from accessing native system notification sounds, the ringtone provider returns an empty list.

This PR adds a graceful UI fallback that displays a clear message explaining the limitation instead of showing an empty screen.

Changes
Added GetPlatform.isIOS check in _buildSystemRingtonesTab() (ringtone_selection_page.dart)

Replaced empty list state with a centered explanatory Text widget

Styled the fallback message using themeController to support both Light and Dark modes

Checklist:
Tests added or updated

Documentation updated

Code follows project style guidelines

All tests passing

Copilot AI review requested due to automatic review settings March 14, 2026 17:14
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a UI fallback in the ringtone selection flow to avoid presenting the system-ringtone picker on iOS, where system ringtones aren’t available.

Changes:

  • Adds an iOS-specific fallback message in the “System Ringtones” tab instead of rendering the system ringtone picker.
  • Leaves the Android flow unchanged by continuing to render SystemRingtonePicker on non-iOS platforms.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +162 to +166
// Widget _buildSystemRingtonesTab() {
// return SystemRingtonePicker(
// isFullScreen: true,
// );
// }
Comment on lines +168 to 186
if (GetPlatform.isIOS) {
return Center(
child: Padding(
padding: const EdgeInsets.all(32.0),
child: Text(
'System ringtones are currently only supported on Android.\n\nPlease upload a custom ringtone to use this feature.',
textAlign: TextAlign.center,
style: TextStyle(
color: themeController.primaryTextColor.value.withOpacity(0.7),
fontSize: 16,
height: 1.5,
),
),
),
);
}

return SystemRingtonePicker(
isFullScreen: true,
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.

2 participants