Skip to content

Bug: System Ringtones tab displays a confusing blank screen on iOS devices #899

@vibhutomer

Description

@vibhutomer

📱 Description & Context

Currently, navigating to the "System Ringtones" tab on an iOS device results in a completely blank screen. There is no loading indicator, no error message, and no UI feedback. To a user, this appears as a hard crash or a broken feature.

🔍 Root Cause Analysis

Unlike Android, which provides a public RingtoneManager API to easily fetch system notification sounds, iOS is highly sandboxed. Apple does not allow third-party applications to enumerate or access native system ringtones (e.g., "Radar", "Reflection").

Consequently, the native channel for system ringtones gracefully returns an empty list [] when executed on iOS. However, the UI layer in ringtone_selection_page.dart does not handle this expected empty state for iOS, causing it to render an empty view instead of a helpful fallback.

⚠️ Impact on User Experience

As the project pushes towards "iOS Readiness", silent UX failures like this break user trust. An alarm clock is mission-critical; a blank screen makes the app feel broken and unreliable.

✨ Expected Behavior

The UI should proactively check the platform. If the app is running on iOS, the _buildSystemRingtonesTab() should intercept the build and display a centralized, theme-aware message: "System ringtones are currently only supported on Android. Please upload a custom ringtone to use this feature."

🔄 Steps to Reproduce

  1. Run the application on an iOS simulator or physical device.
  2. Navigate to Add/Update Alarm.
  3. Tap on "Choose Ringtone".
  4. Select the "System Ringtones" tab.
  5. Observe the blank screen.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions