Fix bugs with incall functionality around statusbar showing call duration
This commit is contained in:
		
							parent
							
								
									c5b665ca4f
								
							
						
					
					
						commit
						5f8aad0386
					
				
					 4 changed files with 11 additions and 16 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue