Fix bugs with incall functionality around statusbar showing call duration

master
Miles Alan 4 years ago
parent c5b665ca4f
commit 5f8aad0386
  1. 2
      scripts/core/sxmo_statusbar.sh
  2. 2
      scripts/modem/sxmo_modemcall.sh
  3. 21
      scripts/notifications/sxmo_notificationmonitor.sh
  4. 2
      scripts/notifications/sxmo_notificationsmenu.sh

@ -8,7 +8,7 @@ update() {
if pgrep -f sxmo_modemcall.sh; then if pgrep -f sxmo_modemcall.sh; then
NOWS="$(date +"%s")" NOWS="$(date +"%s")"
CALLSTARTS="$(date +"%s" -d "$( CALLSTARTS="$(date +"%s" -d "$(
grep call_start ~/.config/sxmo/modem/modemlog.tsv | grep -aE 'call_start|call_pickup' "$XDG_CONFIG_HOME"/sxmo/modem/modemlog.tsv |
tail -n1 | tail -n1 |
cut -f1 cut -f1
)")" )")"

@ -9,7 +9,7 @@ fatalerr() {
mmcli -m "$(mmcli -L | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2)" --voice-hangup-all mmcli -m "$(mmcli -L | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2)" --voice-hangup-all
alsactl --file /usr/share/sxmo/alsa/default_alsa_sound.conf restore alsactl --file /usr/share/sxmo/alsa/default_alsa_sound.conf restore
notify-send "$1" notify-send "$1"
setsid -f sh -c 'sleep 2; smxo_statusbarupdate.sh' setsid -f sh -c 'sleep 2; sxmo_statusbarupdate.sh'
kill -9 0 kill -9 0
} }

@ -23,7 +23,7 @@ handlenewnotiffile(){
if [ "$(wc -l "$NOTIFFILE" | cut -d' ' -f1)" -lt 3 ]; then if [ "$(wc -l "$NOTIFFILE" | cut -d' ' -f1)" -lt 3 ]; then
echo "Invalid notification file $NOTIFFILE found (<3 lines -- see notif spec in sxmo_notifwrite.sh), deleting!" >&2 echo "Invalid notification file $NOTIFFILE found (<3 lines -- see notif spec in sxmo_notifwrite.sh), deleting!" >&2
rm "$NOTIFFILE" rm -f "$NOTIFFILE"
else else
sxmo_setpineled green 1; sxmo_setpineled green 1;
notificationhook & notificationhook &
@ -32,9 +32,9 @@ handlenewnotiffile(){
NOTIFMSG="$(tail -n+3 "$NOTIFFILE" | cut -c1-70)" NOTIFMSG="$(tail -n+3 "$NOTIFFILE" | cut -c1-70)"
if dunstify --action="2,open" "$NOTIFMSG" | grep 2; then if dunstify --action="2,open" "$NOTIFMSG" | grep 2; then
eval "$NOTIFACTION" setsid -f sh -c "$NOTIFACTION" &
elif [ -e "$NOTIFWATCHFILE" ]; then elif [ -e "$NOTIFWATCHFILE" ]; then
inotifywait "$NOTIFWATCHFILE" && rm -f "$NOTIFFILE" & (inotifywait "$NOTIFWATCHFILE" && rm -f "$NOTIFFILE") &
fi fi
fi fi
} }
@ -48,24 +48,19 @@ recreateexistingnotifs() {
monitorforaddordelnotifs() { monitorforaddordelnotifs() {
while true; do while true; do
find "$NOTIFDIR"/ -type f -mindepth 1 | read -r || sxmo_setpineled green 0
inotifywait -e create,attrib,moved_to,delete,delete_self,moved_from "$NOTIFDIR"/ | ( inotifywait -e create,attrib,moved_to,delete,delete_self,moved_from "$NOTIFDIR"/ | (
INOTIFYOUTPUT="$(cat)" INOTIFYOUTPUT="$(cat)"
INOTIFYEVENTTYPE="$(echo "$INOTIFYOUTPUT" | cut -d" " -f2)" INOTIFYEVENTTYPE="$(echo "$INOTIFYOUTPUT" | cut -d" " -f2)"
case "$INOTIFYEVENTTYPE" in echo "$INOTIFYEVENTTYPE" | grep -E "CREATE|MOVED_TO|ATTRIB" || continue
"CREATE"|"MOVED_TO","ATTRIB") NOTIFFILE="$NOTIFDIR/$(echo "$INOTIFYOUTPUT" | cut -d" " -f3)"
NOTIFFILE="$NOTIFDIR/$(echo "$INOTIFYOUTPUT" | cut -d" " -f3)" handlenewnotiffile "$NOTIFFILE"
handlenewnotiffile "$NOTIFFILE"
;;
"DELETE"|"DELETE_SELF"|"MOVED_FROM")
# E.g. if no more notifications unset LED
find "$NOTIFDIR"/ -type f -mindepth 1 | read -r || sxmo_setpineled green 0
;;
esac
) & wait ) & wait
done done
} }
pgrep -f "$(command -v sxmo_notificationmonitor.sh)" | grep -Ev "^${$}$" | xargs kill pgrep -f "$(command -v sxmo_notificationmonitor.sh)" | grep -Ev "^${$}$" | xargs kill
rm -f $NOTIFDIR/incomingcall
sxmo_setpineled green 0 sxmo_setpineled green 0
recreateexistingnotifs recreateexistingnotifs
monitorforaddordelnotifs monitorforaddordelnotifs

@ -25,7 +25,7 @@ notificationmenu() {
PICKEDNOTIFFILE="$(echo "$CHOICES" | grep "$PICKEDCONTENT" | cut -d^ -f2 | tr -d ' ')" PICKEDNOTIFFILE="$(echo "$CHOICES" | grep "$PICKEDCONTENT" | cut -d^ -f2 | tr -d ' ')"
NOTIFACTION="$(head -n1 "$PICKEDNOTIFFILE")" NOTIFACTION="$(head -n1 "$PICKEDNOTIFFILE")"
eval "$NOTIFACTION" & setsid -f sh -c "$NOTIFACTION" &
rm "$PICKEDNOTIFFILE" rm "$PICKEDNOTIFFILE"
} }

Loading…
Cancel
Save