Skip to content

Commit

Permalink
Merge pull request #342 from vicolo-dev/release/0.6.0
Browse files Browse the repository at this point in the history
Release/0.6.0
  • Loading branch information
azeem-io authored Sep 22, 2024
2 parents 74b30f0 + 662c329 commit 83146ab
Show file tree
Hide file tree
Showing 24 changed files with 1,320 additions and 85 deletions.
Binary file added assets/contributors/avatars/170783727?v=4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions assets/contributors/git.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,11 @@
"avatar_url": "assets/contributors/avatars/65340361?v=4.jpg",
"profile_url": "https://github.com/iBabu007"
},
{
"username": "Wopgang215",
"avatar_url": "assets/contributors/avatars/170783727?v=4.jpg",
"profile_url": "https://github.com/Wopgang215"
},
{
"username": "Stzyxh",
"avatar_url": "assets/contributors/avatars/137100988?v=4.jpg",
Expand Down
32 changes: 32 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/261.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
This is a beta release. Please report any issues via GitHub or email.

🚀 Features

* Added option to select directory for ringtones (random ringtone will be selected from the directory each time)
* Added multiselect for lists
* Added option to shuffle alarm ringtone
* Added backup and restore for alarms, timers, themes etc.
* Added numpad input for timers
* Added option to reduce volume while solving alarm tasks
* Added quick home screen actions for alarms and timers
* Added option to start ringtone at random position
* Added background service to keep app alive
* Added analog clock to clock tab

✨ Enhancements

* Made alarm tasks reorderable
* Added better logging system
* Added alarm labels to alarm notifications

🐛 Fixes

* Fixed non-deletable items getting deleted by list actions
* Fixed range weekly schedule not working
* Fixed system navigation bar color
* Fixed database for cities
* Fixed skipped alarms being visible to the system
* Fixed foreground notification foreground type
* Fixed date picker being stuck in the past for range alarms


32 changes: 32 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/262.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
This is a beta release. Please report any issues via GitHub or email.

🚀 Features

* Added option to select directory for ringtones (random ringtone will be selected from the directory each time)
* Added multiselect for lists
* Added option to shuffle alarm ringtone
* Added backup and restore for alarms, timers, themes etc.
* Added numpad input for timers
* Added option to reduce volume while solving alarm tasks
* Added quick home screen actions for alarms and timers
* Added option to start ringtone at random position
* Added background service to keep app alive
* Added analog clock to clock tab

✨ Enhancements

* Made alarm tasks reorderable
* Added better logging system
* Added alarm labels to alarm notifications

🐛 Fixes

* Fixed non-deletable items getting deleted by list actions
* Fixed range weekly schedule not working
* Fixed system navigation bar color
* Fixed database for cities
* Fixed skipped alarms being visible to the system
* Fixed foreground notification foreground type
* Fixed date picker being stuck in the past for range alarms


33 changes: 33 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/263.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
This is a beta release. Please report any issues via GitHub or email.

🚀 Features

* Added option to select directory for ringtones (random ringtone will be selected from the directory each time)
* Added multiselect for lists
* Added option to shuffle alarm ringtone
* Added backup and restore for alarms, timers, themes etc.
* Added numpad input for timers
* Added option to reduce volume while solving alarm tasks
* Added quick home screen actions for alarms and timers
* Added option to start ringtone at random position
* Added background service to keep app alive
* Added analog clock to clock tab

✨ Enhancements

* Made alarm tasks reorderable
* Added better logging system
* Added alarm labels to alarm notifications
* Updated translations

🐛 Fixes

* Fixed non-deletable items getting deleted by list actions
* Fixed range weekly schedule not working
* Fixed system navigation bar color
* Fixed database for cities
* Fixed skipped alarms being visible to the system
* Fixed foreground notification foreground type
* Fixed date picker being stuck in the past for range alarms


58 changes: 32 additions & 26 deletions lib/alarm/screens/alarm_notification_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ class _AlarmNotificationScreenState extends State<AlarmNotificationScreen> {
widget.onPop!();
Navigator.of(context).pop(true);
} else {
dismissAlarmNotification(widget.scheduleId,
widget.dismissType, ScheduledNotificationType.alarm);
dismissAlarmNotification(widget.scheduleId, widget.dismissType,
ScheduledNotificationType.alarm);
}
} else {
IsolateNameServer.lookupPortByName(setAlarmVolumePortName)
Expand All @@ -68,8 +68,8 @@ class _AlarmNotificationScreenState extends State<AlarmNotificationScreen> {

Alarm? currentAlarm = getAlarmById(widget.scheduleId);
if (currentAlarm == null) {
dismissAlarmNotification(widget.scheduleId,
widget.dismissType, ScheduledNotificationType.alarm);
dismissAlarmNotification(widget.scheduleId, widget.dismissType,
ScheduledNotificationType.alarm);
return;
}
alarm = currentAlarm;
Expand All @@ -96,8 +96,8 @@ class _AlarmNotificationScreenState extends State<AlarmNotificationScreen> {
}

void _snoozeAlarm() {
snoozeAlarm(
widget.scheduleId, ScheduledNotificationType.alarm);
dismissAlarmNotification(widget.scheduleId, AlarmDismissType.snooze,
ScheduledNotificationType.alarm);
}

@override
Expand All @@ -117,28 +117,34 @@ class _AlarmNotificationScreenState extends State<AlarmNotificationScreen> {
children: [
if (_currentIndex <= 0)
Expanded(
flex: 1,
child: Column(
children: [
const Spacer(),
if (alarm.label.isNotEmpty)
flex: 2,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: Column(
children: [
const Spacer(),
if (alarm.label.isNotEmpty)
Text(
alarm.label,
style: Theme.of(context).textTheme.displayMedium,
textAlign: TextAlign.center,
maxLines: 3,
overflow: TextOverflow.ellipsis,
),
const SizedBox(height: 8),
const DigitalClock(
// dateTime: Date,
horizontalAlignment: ElementAlignment.center,
shouldShowDate: false,
shouldShowSeconds: false,
),
const SizedBox(height: 8),
Text(
alarm.label,
style: Theme.of(context).textTheme.titleMedium,
"Alarm",
style: Theme.of(context).textTheme.headlineMedium,
),
const SizedBox(height: 8),
const DigitalClock(
// dateTime: Date,
horizontalAlignment: ElementAlignment.center,
shouldShowDate: false,
shouldShowSeconds: false,
),
const SizedBox(height: 8),
Text(
"Alarm",
style: Theme.of(context).textTheme.headlineMedium,
),
],
],
),
),
),
Expanded(
Expand Down
4 changes: 4 additions & 0 deletions lib/alarm/types/alarm.dart
Original file line number Diff line number Diff line change
Expand Up @@ -450,4 +450,8 @@ class Alarm extends CustomizableListItem {
'settings': _settings.valueToJson(),
'skippedTime': _skippedTime?.millisecondsSinceEpoch,
};

bool isEqualTo(Alarm other) {
return _time == other._time && _settings.isEqualTo(other._settings);
}
}
19 changes: 11 additions & 8 deletions lib/audio/screens/ringtones_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'dart:io';
import 'package:clock_app/audio/types/ringtone_player.dart';
import 'package:clock_app/common/types/file_item.dart';
import 'package:clock_app/common/utils/list_storage.dart';
import 'package:clock_app/common/utils/snackbar.dart';
import 'package:clock_app/common/widgets/fab.dart';
import 'package:clock_app/common/widgets/file_item_card.dart';
import 'package:clock_app/common/widgets/list/persistent_list_view.dart';
Expand Down Expand Up @@ -114,16 +115,18 @@ class _RingtonesScreenState extends State<RingtonesScreen> {
icon: Icons.create_new_folder_rounded,
bottomPadding: 8,
onPressed: () async {
if (androidInfo!.version.sdkInt >= 33) {
if (!await Permission.audio.isGranted) {
await Permission.audio.request();
}
} else {
if (!await Permission.storage.isGranted) {
await Permission.storage.request();
Permission permission = androidInfo!.version.sdkInt >= 33
? Permission.audio
: Permission.storage;
if (!await permission.isGranted) {
final result = await permission.request();
if (result != PermissionStatus.granted) {
if (context.mounted) {
showSnackBar(context, "You need to allow storage access");
}
return;
}
}

RingtonePlayer.stop();
try {
String? selectedDirectory =
Expand Down
6 changes: 6 additions & 0 deletions lib/common/types/tag.dart
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,10 @@ class Tag extends ListItem {
description = other.description;
color = other.color;
}

bool isEqualTo(Tag other) {
return name == other.name &&
description == other.description &&
color == other.color;
}
}
14 changes: 14 additions & 0 deletions lib/common/types/time.dart
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,18 @@ class Time extends JsonSerializable {
return time >= startTime || time <= endTime;
}
}

@override
bool operator ==(Object other) {
if (other is Time) {
return hour == other.hour &&
minute == other.minute &&
second == other.second;
}
return false;
}

@override
int get hashCode => Object.hash(hour, minute, second);

}
76 changes: 74 additions & 2 deletions lib/l10n/app_es.arb
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@
"@showIstantAlarmButtonSetting": {},
"showIstantTimerButtonSetting": "Mostrar botón de temporizador instantáneo",
"@showIstantTimerButtonSetting": {},
"maxLogsSetting": "Registros máximos",
"maxLogsSetting": "Registro máximo de alarmas",
"@maxLogsSetting": {},
"alarmLogSetting": "Registros de alarmas",
"@alarmLogSetting": {},
Expand Down Expand Up @@ -704,5 +704,77 @@
"showForegroundNotificationDescription": "Mostrar una notificación persistente para mantener activa la aplicación",
"@showForegroundNotificationDescription": {},
"extraAnimationSettingDescription": "Muestra animaciones que no están pulidas y que pueden provocar caídas de cuadros en dispositivos de gama baja",
"@extraAnimationSettingDescription": {}
"@extraAnimationSettingDescription": {},
"longPressActionSetting": "Acción de pulsación prolongada",
"@longPressActionSetting": {},
"longPressReorderAction": "Reordenar",
"@longPressReorderAction": {},
"longPressSelectAction": "Selección múltiple",
"@longPressSelectAction": {},
"saveLogs": "Guardar los registros",
"@saveLogs": {},
"clearLogs": "Borrar registros",
"@clearLogs": {},
"selectionStatus": "{n} seleccionado(s)",
"@selectionStatus": {},
"pickerNumpad": "Teclado numérico",
"@pickerNumpad": {},
"interactionsSettingGroup": "Interacciones",
"@interactionsSettingGroup": {},
"showErrorSnackbars": "Mostrar notificaciones con los errores",
"@showErrorSnackbars": {},
"volumeWhileTasks": "Volumen al resolver tareas",
"@volumeWhileTasks": {},
"selectAll": "Seleccionar todo",
"@selectAll": {},
"reorder": "Reordenar",
"@reorder": {},
"startMelodyAtRandomPos": "Posición aleatoria",
"@startMelodyAtRandomPos": {},
"startMelodyAtRandomPosDescription": "La melodía comenzará en una posición aleatoria",
"@startMelodyAtRandomPosDescription": {},
"shuffleAlarmMelodiesAction": "Melodías aleatorias para todas las alarmas filtradas",
"@shuffleAlarmMelodiesAction": {},
"resetAllFilteredTimersAction": "Reiniciar todos los temporizadores filtrados",
"@resetAllFilteredTimersAction": {},
"playAllFilteredTimersAction": "Reproducir todos los temporizadores filtrados",
"@playAllFilteredTimersAction": {},
"pauseAllFilteredTimersAction": "Pausar todos los temporizadores filtrados",
"@pauseAllFilteredTimersAction": {},
"appLogs": "Registros de aplicaciones",
"@appLogs": {},
"shuffleTimerMelodiesAction": "Melodías aleatorias para todos los temporizadores filtrados",
"@shuffleTimerMelodiesAction": {},
"showNumbersSetting": "Ver números",
"@showNumbersSetting": {},
"clockStyleSettingGroup": "Estilo reloj",
"@clockStyleSettingGroup": {},
"clockTypeSetting": "Tipo de reloj",
"@clockTypeSetting": {},
"analogClock": "Analógico",
"@analogClock": {},
"digitalClock": "Digital",
"@digitalClock": {},
"allNumbers": "Todos los números",
"@allNumbers": {},
"none": "Ninguno",
"@none": {},
"arabicNumeral": "Arábigas",
"@arabicNumeral": {},
"showDigitalClock": "Mostrar reloj digital",
"@showDigitalClock": {},
"numeralTypeSetting": "Tipo de numeral",
"@numeralTypeSetting": {},
"romanNumeral": "Romanos",
"@romanNumeral": {},
"backgroundServiceIntervalSettingDescription": "Un intervalo más bajo ayudará a mantener activa la aplicación, a costa de algo de duración en la batería",
"@backgroundServiceIntervalSettingDescription": {},
"showClockTicksSetting": "Mostrar marcas",
"@showClockTicksSetting": {},
"majorTicks": "Solo las mejores marcas",
"@majorTicks": {},
"allTicks": "Toda las marcas",
"@allTicks": {},
"backgroundServiceIntervalSetting": "Intervalo del servicio en segundo plano",
"@backgroundServiceIntervalSetting": {}
}
Loading

0 comments on commit 83146ab

Please sign in to comment.