#!/bin/bash
###############################################
# BreakTime                                   |
# Set periodical break times for your needs   |
# © 2024 WTFPL                                |
###############################################
TITLE='BreakTime'
VERSION='1.7'
ICON="/usr/share/breaktime/data/breaktime.png"
SICON="/usr/share/breaktime/data/stop.png"
SND="/usr/share/breaktime/data/preferred-sounds/default.mp3"
IMG="/usr/share/breaktime/data/break.png"

if ! test -d $HOME/.config/breaktime; then
mkdir -p $HOME/.config/breaktime
fi

ALARM_SET=$(yad \
--width=425 \
--height=100 \
--image=$ICON --on-top \
--button=Options!/usr/share/breaktime/data/add.svg:5 \
--button=Cancel!/usr/share/breaktime/data/cancel.svg:1 \
--button=Set!/usr/share/breaktime/data/ok.svg:0 \
--center \
--window-icon=$ICON \
--title="BreakTime $VERSION" \
--entry \
--column="Icon"  \
--column="Size" \
--text='\nSelect a Preferred Alarm Set Option' \
'1 Hour' '2 Hours' '3 Hours' '4 Hours' '5 Hours' '6 Hours' '7 Hours' '8 hours')
if [ -n "${ALARM_SET}" ];then
case $ALARM_SET in
'1 Hour')
COUNTDOWN="60"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 1 Hour" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
 ;;
'2 Hours')
COUNTDOWN="120"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 2 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
 ;;
'3 Hours')
COUNTDOWN="180"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 3 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
  ;;
'4 Hours')
COUNTDOWN="240"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 4 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
  ;;
'5 Hours')
COUNTDOWN="300"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 5 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
  ;;
'6 Hours')
COUNTDOWN="360"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 6 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
 ;;
'7 Hours')
COUNTDOWN="420"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 7 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
  ;;
'8 hours')
COUNTDOWN="480"
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
echo "Alarm set for 8 Hours" | awk '{print $0}' > ~/.config/breaktime/set 
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 
exit 0
 ;;
esac
fi |
if [ "$?" = "5" ]; then
function menu {
COUNTDOWN=$(yad --entry --text=$"\nEnter the <b>number</b> for preferred set time\n\nExample: 30 = 30 minutes" \
--title="$TITLE"" $VERSION" --window-icon="$ICON" \
                        --image="$ICON" \
                        --button=$"New!/usr/share/breaktime/data/add.svg:2" \
                        --button=$"Test!/usr/share/breaktime/data/resume.svg:3" \
                        --button="Cancel!/usr/share/breaktime/data/cancel.svg:1" \
                        --button="Set!/usr/share/breaktime/data/ok.svg:0" \
                   )
ret=$?

[[ $ret -eq 1 ]] && exit 0
# Choose preferred sound 
if [[ $ret -eq 2 ]]; then
    CHANGE=$(yad --title="$TITLE"" $VERSION" --window-icon="$ICON" \
                --file --filename=/usr/share/breaktime/data/preferred-sounds --width=600 --height=500 --center \
                --text=$"<b>Choose a preferred sound file:</b>
________________________________________________")
                if [ -z "$CHANGE" ];then 
                exec breaktime
                exit 0
                else
                rm -rf $HOME/.config/breaktime/preferred sleep 1
                ln -s "$CHANGE" $HOME/.config/breaktime/preferred
                yad --title $"$TITLE"" $VERSION" \
            --button="Ok!/usr/share/breaktime/data/ok.svg:0" \
            --width=425 height=100 --center --fixed \
            --window-icon="$ICON" \
            --text=$"\nYour preferred audio file is set!"
                fi
menu            
fi
if [[ $ret -eq 3 ]]; then
        if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
        fi
pw-play "$SOUND" | yad --title $"$TITLE"" $VERSION" \
                 --button="Ok!/usr/share/breaktime/data/ok.svg:0" \
                 --width=425 --height=100 --center --fixed \
                 --window-icon="$ICON" \
                 --text=$"\nPreferred sound file test complete!"
pkill -SIGKILL pw-play > /dev/null 2>&1
menu                 
fi
}
menu
if [ "$COUNTDOWN" = "" ];then
exit
else
echo Entered "$COUNTDOWN" minutes
TIMER=$(echo $(($COUNTDOWN*60)))
TASK1=$(date -s "+$TIMER seconds" 2>/dev/null | cut -d " " -f4)
exec 3> >(python3 "/usr/share/breaktime/data/notify/BreakTime")
if [ "$COUNTDOWN" -gt "1" ]; then
echo "Alarm set for $COUNTDOWN minutes" | awk '{print $0}' > ~/.config/breaktime/set 
else
echo "Alarm set for $COUNTDOWN minute" | awk '{print $0}' > ~/.config/breaktime/set
fi
sleep $TIMER
exec 3>&- 
if [ -f $HOME/.config/breaktime/preferred ]; then
        SOUND="$HOME/.config/breaktime/preferred"
        else
        SOUND="$SND"
fi
(pw-play "$SOUND") & python3 "/usr/share/breaktime/data/notify/Stop" \
& python3 "/usr/share/breaktime/data/notify/complete.py" \
& pkill -f "BreakTime" > /dev/null 2>&1 

   fi
fi
exit 0
