CCExtractor / CCExtractor/ultimate_alarm_clock

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

Aperta
#899 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Dart
Stelle
112
Fork
227
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### 📱 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.