Skip to content

Commit

Permalink
fix:duplicate ringtone (#449)
Browse files Browse the repository at this point in the history
Co-authored-by: Sagar Raj <[email protected]>
  • Loading branch information
sagarrajgit and Sagar Raj authored Feb 25, 2024
1 parent 31906f3 commit 6bdc6d3
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -819,10 +819,24 @@ class AddOrUpdateAlarmController extends GetxController {

if (result != null) {
customRingtoneName.value = result.files.single.name;
customRingtoneNames.add(customRingtoneName.value);
return result;
if (customRingtoneNames.contains(customRingtoneName.value)) {
Get.snackbar(
'Duplicate Ringtone'.tr,
'Choosen ringtone is already present'.tr,
duration: const Duration(seconds: 2),
snackPosition: SnackPosition.BOTTOM,
barBlur: 15,
colorText: kprimaryTextColor,
margin: const EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
);
} else {
customRingtoneNames.add(customRingtoneName.value);
return result;
}
}

return null;
} catch (e) {
debugPrint(e.toString());
Expand Down
4 changes: 3 additions & 1 deletion lib/app/utils/language.dart
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ class AppTranslations extends Translations {
'Default': 'Default',
'Upload Ringtone': 'Upload Ringtone',
'Done': 'Done',
'Duplicate Ringtone': 'Duplicate Ringtone',
'Choosen ringtone is already present':
'Choosen ringtone is already present',
//label_tile.dart
'Label': 'Label',
'Add a label': 'Add a label',
Expand Down Expand Up @@ -239,4 +242,3 @@ class AppTranslations extends Translations {
'es_ES': SpanishTranslations().keys['es_ES']!,
};
}

71 changes: 39 additions & 32 deletions lib/app/utils/languages/french_translations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,39 +41,43 @@ class FrenchTranslations extends Translations {
'French': 'Français',
'Russian': 'Russe',

'No upcoming alarms!': 'Pas d\'alarmes à venir !',
'Next alarm': 'Prochain réveil',
'Show Motivational Quote': 'Afficher une citation motivante',
//home_view.dart
'About': 'À propos',
'Settings': 'Paramètres',
'v0.5.0': 'v0.5.0',
'Ultimate Alarm Clock': 'Réveil Ultime',
'Create alarm': 'Créer un réveil',
'Join alarm': 'Rejoindre un réveil',
'Okay': 'D\'accord',
'You cannot join your own alarm!':
'Vous ne pouvez pas rejoindre votre propre réveil !',
'An alarm with this ID doesn\'t exist!':
'Un réveil avec cet identifiant n\'existe pas !',
'Error!': 'Erreur !',
'Join': 'Rejoindre',
'Enter Alarm ID': 'Entrer l\'identifiant du réveil',
'Join an alarm': 'Rejoindre un réveil',
'Select alarms to delete': 'Sélectionnez les réveils à supprimer',
'No alarm selected': 'Aucun réveil sélectionné',
'1 alarm selected': '1 réveil sélectionné',
' alarms selected': ' réveils sélectionnés',
'Add an alarm to get started!': 'Ajoutez un réveil pour commencer !',
'Never': 'Jamais',
'One Time': 'Une fois',
'Preview Alarm': 'Aperçu du réveil',
'Delete Alarm': 'Supprimer le réveil',
'Are you sure you want to delete these alarms?':
'Êtes-vous sûr(e) de vouloir supprimer ces alarmes ?',
'This action will permanently delete these alarms from your device.':
'Cette action supprimera définitivement ces alarmes de votre appareil.',

'No upcoming alarms!' : 'Pas d\'alarmes à venir !',
'Next alarm' : 'Prochain réveil',
'Show Motivational Quote' : 'Afficher une citation motivante',
//home_view.dart
'About' : 'À propos',
'Settings' : 'Paramètres',
'v0.5.0' : 'v0.5.0',
'Ultimate Alarm Clock' : 'Réveil Ultime',
'Create alarm' : 'Créer un réveil',
'Join alarm' : 'Rejoindre un réveil',
'Okay' : 'D\'accord',
'You cannot join your own alarm!' : 'Vous ne pouvez pas rejoindre votre propre réveil !',
'An alarm with this ID doesn\'t exist!' : 'Un réveil avec cet identifiant n\'existe pas !',
'Error!' : 'Erreur !',
'Join' : 'Rejoindre',
'Enter Alarm ID' : 'Entrer l\'identifiant du réveil',
'Join an alarm' : 'Rejoindre un réveil',
'Select alarms to delete' : 'Sélectionnez les réveils à supprimer',
'No alarm selected' : 'Aucun réveil sélectionné',
'1 alarm selected' : '1 réveil sélectionné',
' alarms selected' : ' réveils sélectionnés',
'Add an alarm to get started!' : 'Ajoutez un réveil pour commencer !',
'Never' : 'Jamais',
'One Time' : 'Une fois',
'Preview Alarm' : 'Aperçu du réveil',
'Delete Alarm' : 'Supprimer le réveil',
'Are you sure you want to delete these alarms?': 'Êtes-vous sûr(e) de vouloir supprimer ces alarmes ?',
'This action will permanently delete these alarms from your device.': 'Cette action supprimera définitivement ces alarmes de votre appareil.',

//about_view.dart texts
'This project was originally developed as part of Google Summer of code under the CCExtractor organization. It\'s free, the source code is available, and we encourage programmers to contribute' : 'Ce projet a été initialement développé dans le cadre du Google Summer of Code sous l\'organisation CCExtractor. Il est gratuit, le code source est disponible et nous encourageons les programmeurs à contribuer.',
'Could not launch' : 'Impossible de lancer',
//about_view.dart texts
'This project was originally developed as part of Google Summer of code under the CCExtractor organization. It\'s free, the source code is available, and we encourage programmers to contribute':
'Ce projet a été initialement développé dans le cadre du Google Summer of Code sous l\'organisation CCExtractor. Il est gratuit, le code source est disponible et nous encourageons les programmeurs à contribuer.',
'Could not launch': 'Impossible de lancer',
//add_or_update_alarm_view.dart
'Discard Changes?': 'Ignorer les modifications ?',
'unsavedChanges':
Expand Down Expand Up @@ -113,6 +117,9 @@ class FrenchTranslations extends Translations {
'Default': 'Par défaut',
'Upload Ringtone': 'Télécharger une sonnerie',
'Done': 'Terminé',
'Duplicate Ringtone': 'Sonnerie en double',
'Choosen ringtone is already present':
'La sonnerie choisie est déjà présente',
//delete_tile.dart
'Delete After Goes Off': 'Supprimer après la fin',

Expand Down
116 changes: 65 additions & 51 deletions lib/app/utils/languages/german_translations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,57 +8,69 @@ class GermanTranslations extends Translations {
'Timer': 'Schaltuhr',
'StopWatch': 'Stoppuhr',

'Enable 24 Hour Format' : '24-Stunden-Format aktivieren',
'Enable Haptic Feedback' : 'Haptisches Feedback aktivieren',
'Enable Sorted Alarm List' : 'Sortierte Weckerliste aktivieren',
// google_sign_in.dart
'Your account is now linked!' : 'Ihr Konto ist jetzt verknüpft!',
'Are you sure?' : 'Sind Sie sicher?',
'unlinkAccount' : 'Möchten Sie Ihr Google-Konto wirklich entknüpfen?',
'Unlink' : 'Entknüpfen',
'Sign-In with Google' : 'Mit Google anmelden',
'Unlink @usermail' : 'Entknüpfen von @usermail',
'Why do I have to sign in with Google?' : 'Warum muss ich mich bei Google anmelden?',
'Sign-inDescription' : 'Die Anmeldung ist optional. Sie ist nur erforderlich für Funktionen, die Cloud-Dienste nutzen, wie zum Beispiel:',
'CollabDescription' : 'Zusammenarbeit mit Freunden, Familienmitgliedern oder Kollegen, um sicherzustellen, dass sie rechtzeitig aufwachen, indem geteilte Wecker verwendet werden.',
'Syncing Across Devices' : 'Synchronisation über Geräte hinweg',
'AccessMultiple' : 'Greifen Sie auf Ihre Wecker von mehreren Geräten aus zu, wo die Wecker in Echtzeit aktualisiert werden.',
'Your privacy' : 'Ihre Privatsphäre',
'NoAccessInfo' : 'Wir greifen nicht auf Informationen zu, verwenden sie nicht und verkaufen sie nicht, was Sie durch Überprüfen des Quellcodes überprüfen können.',
'LimitedAccess' : 'Alle Zugriffe sind ausschließlich darauf beschränkt, die oben beschriebenen Funktionen bereitzustellen.',
'Enable Light Mode' : 'Lichtmodus aktivieren',
'Enable 24 Hour Format': '24-Stunden-Format aktivieren',
'Enable Haptic Feedback': 'Haptisches Feedback aktivieren',
'Enable Sorted Alarm List': 'Sortierte Weckerliste aktivieren',
// google_sign_in.dart
'Your account is now linked!': 'Ihr Konto ist jetzt verknüpft!',
'Are you sure?': 'Sind Sie sicher?',
'unlinkAccount': 'Möchten Sie Ihr Google-Konto wirklich entknüpfen?',
'Unlink': 'Entknüpfen',
'Sign-In with Google': 'Mit Google anmelden',
'Unlink @usermail': 'Entknüpfen von @usermail',
'Why do I have to sign in with Google?':
'Warum muss ich mich bei Google anmelden?',
'Sign-inDescription':
'Die Anmeldung ist optional. Sie ist nur erforderlich für Funktionen, die Cloud-Dienste nutzen, wie zum Beispiel:',
'CollabDescription':
'Zusammenarbeit mit Freunden, Familienmitgliedern oder Kollegen, um sicherzustellen, dass sie rechtzeitig aufwachen, indem geteilte Wecker verwendet werden.',
'Syncing Across Devices': 'Synchronisation über Geräte hinweg',
'AccessMultiple':
'Greifen Sie auf Ihre Wecker von mehreren Geräten aus zu, wo die Wecker in Echtzeit aktualisiert werden.',
'Your privacy': 'Ihre Privatsphäre',
'NoAccessInfo':
'Wir greifen nicht auf Informationen zu, verwenden sie nicht und verkaufen sie nicht, was Sie durch Überprüfen des Quellcodes überprüfen können.',
'LimitedAccess':
'Alle Zugriffe sind ausschließlich darauf beschränkt, die oben beschriebenen Funktionen bereitzustellen.',
'Enable Light Mode': 'Lichtmodus aktivieren',

'No upcoming alarms!' : 'Keine bevorstehenden Alarme',
'Next alarm' : 'Nächster Alarm',
'Show Motivational Quote' : 'Zeige motivierendes Zitat',
//home_view.dart
'About' : 'Um',
'Settings' : 'Einstellungen',
'v0.5.0' : 'v0.5.0',
'Ultimate Alarm Clock' : 'Ultimativer Wecker',
'Create alarm' : 'Alarm erstellen',
'Join alarm' : 'Alarm beitreten',
'Okay' : 'Okay',
'You cannot join your own alarm!' : 'Sie können Ihrem eigenen Alarm nicht beitreten!',
'An alarm with this ID doesn\'t exist!' : 'Ein Alarm mit dieser ID existiert nicht!',
'Error!' : 'Fehler!',
'Join' : 'Verbinden',
'Enter Alarm ID' : 'Alarm-ID eingeben.',
'Join an alarm' : 'Alarm beitreten',
'Select alarms to delete' : 'Wählen Sie zu löschende Wecker aus',
'No alarm selected' : 'Kein Alarm ausgewählt',
'1 alarm selected' : '1 Alarm ausgewählt',
' alarms selected' : 'Alarm ausgewählt',
'Add an alarm to get started!' : 'Fügen Sie einen Alarm hinzu, um loszulegen!',
'Never' : 'Niemals',
'One Time' : 'Einmal',
'Preview Alarm' : 'Vorschaualarm',
'Delete Alarm' : 'Alarm löschen',
'Are you sure you want to delete these alarms?' : 'Sind Sie sicher, dass Sie diese Wecker löschen möchten?',
'This action will permanently delete these alarms from your device.': 'Diese Aktion wird diese Wecker dauerhaft von Ihrem Gerät löschen.',
//about_view.dart texts
'This project was originally developed as part of Google Summer of code under the CCExtractor organization. It\'s free, the source code is available, and we encourage programmers to contribute' : 'Dieses Projekt wurde ursprünglich im Rahmen des Google Summer of Code unter der Organisation CCExtractor entwickelt. Es ist kostenlos, der Quellcode ist verfügbar, und wir ermutigen Programmierer zur Mitarbeit.',
'Could not launch' : 'Konnte nicht starten',
'No upcoming alarms!': 'Keine bevorstehenden Alarme',
'Next alarm': 'Nächster Alarm',
'Show Motivational Quote': 'Zeige motivierendes Zitat',
//home_view.dart
'About': 'Um',
'Settings': 'Einstellungen',
'v0.5.0': 'v0.5.0',
'Ultimate Alarm Clock': 'Ultimativer Wecker',
'Create alarm': 'Alarm erstellen',
'Join alarm': 'Alarm beitreten',
'Okay': 'Okay',
'You cannot join your own alarm!':
'Sie können Ihrem eigenen Alarm nicht beitreten!',
'An alarm with this ID doesn\'t exist!':
'Ein Alarm mit dieser ID existiert nicht!',
'Error!': 'Fehler!',
'Join': 'Verbinden',
'Enter Alarm ID': 'Alarm-ID eingeben.',
'Join an alarm': 'Alarm beitreten',
'Select alarms to delete': 'Wählen Sie zu löschende Wecker aus',
'No alarm selected': 'Kein Alarm ausgewählt',
'1 alarm selected': '1 Alarm ausgewählt',
' alarms selected': 'Alarm ausgewählt',
'Add an alarm to get started!':
'Fügen Sie einen Alarm hinzu, um loszulegen!',
'Never': 'Niemals',
'One Time': 'Einmal',
'Preview Alarm': 'Vorschaualarm',
'Delete Alarm': 'Alarm löschen',
'Are you sure you want to delete these alarms?':
'Sind Sie sicher, dass Sie diese Wecker löschen möchten?',
'This action will permanently delete these alarms from your device.':
'Diese Aktion wird diese Wecker dauerhaft von Ihrem Gerät löschen.',
//about_view.dart texts
'This project was originally developed as part of Google Summer of code under the CCExtractor organization. It\'s free, the source code is available, and we encourage programmers to contribute':
'Dieses Projekt wurde ursprünglich im Rahmen des Google Summer of Code unter der Organisation CCExtractor entwickelt. Es ist kostenlos, der Quellcode ist verfügbar, und wir ermutigen Programmierer zur Mitarbeit.',
'Could not launch': 'Konnte nicht starten',
//add_or_update_alarm_view.dart
'Discard Changes?': 'Änderungen verwerfen?',
'unsavedChanges':
Expand Down Expand Up @@ -100,7 +112,9 @@ class GermanTranslations extends Translations {
'Default': 'Standard',
'Upload Ringtone': 'Klingelton hochladen',
'Done': 'Fertig',

'Duplicate Ringtone': 'Ringtone duplizieren',
'Choosen ringtone is already present':
'Der gewählte Klingelton ist bereits vorhanden',
//delete_tile.dart
'Delete After Goes Off': 'Nach dem Ablauf löschen',
//label_tile.dart
Expand Down
3 changes: 3 additions & 0 deletions lib/app/utils/languages/russian_translations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ class RussianTranslations extends Translations {
'Default': 'По умолчанию',
'Upload Ringtone': 'Загрузить мелодию',
'Done': 'Готово',
'Duplicate Ringtone': 'Дублировать рингтон',
'Choosen ringtone is already present':
'Выбранный рингтон уже присутствует.',
//delete_tile.dart
'Delete After Goes Off': 'Удалить после срабатывания',

Expand Down
4 changes: 3 additions & 1 deletion lib/app/utils/languages/spanish_translations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ class SpanishTranslations extends Translations {
'Default': 'Predeterminado',
'Upload Ringtone': 'Subir tono de llamada',
'Done': 'Hecho',

'Duplicate Ringtone': 'Tono duplicado',
'Choosen ringtone is already present':
'El tono de llamada elegido ya está presente',
//delete_tile.dart
'Delete After Goes Off': 'Eliminar después de que expire',

Expand Down

0 comments on commit 6bdc6d3

Please sign in to comment.