#!/usr/bin/env sh # shellcheck source=scripts/core/sxmo_common.sh . "$(dirname "$0")/sxmo_common.sh" newcontact() { name="$(echo | sxmo_dmenu_with_kb.sh -c -l 2 -p "Name")" number="$(echo | sxmo_dmenu_with_kb.sh -c -l 2 -p "Number")" PICKED="$number $name" # now act like if we picked this new contact echo "$PICKED" >> "$CONTACTFILE" } editcontactname() { oldnumber="$(echo "$1" | cut -d" " -f1)" oldname="$(echo "$1" | cut -d" " -f2)" ENTRIES="$(printf %b "Old name: $oldname")" PICKED="$( echo "$ENTRIES" | sxmo_dmenu_with_kb.sh -c -l 3 -p "Edit Contact" )" if ! echo "$PICKED" | grep -q "^Old name: "; then newcontact="$oldnumber $PICKED" sed -i "s/^$1$/$newcontact/" "$CONTACTFILE" set -- "$newcontact" fi editcontact "$1" } editcontactnumber() { oldnumber="$(echo "$1" | cut -d" " -f1)" oldname="$(echo "$1" | cut -d" " -f2)" ENTRIES="$(printf %b "Old number: $oldnumber")" PICKED="$( echo "$ENTRIES" | sxmo_dmenu_with_kb.sh -c -l 3 -p "Edit Contact" )" if ! echo "$PICKED" | grep -q "^Old number: "; then newcontact="$PICKED $oldname" sed -i "s/^$1$/$newcontact/" "$CONTACTFILE" set -- "$newcontact" fi editcontact "$1" } deletecontact() { name="$(echo "$1" | cut -d" " -f2)" ENTRIES="$(printf "Yes\nNo")" PICKED="$( echo "$ENTRIES" | dmenu -c -l 3 -p "Delete $nameĀ ?" )" echo "$PICKED" | grep -q "^Yes" && sed -i "/^$1$/d" "$CONTACTFILE" } editcontact() { number="$(echo "$1" | cut -d" " -f1)" name="$(echo "$1" | cut -d" " -f2)" ENTRIES="$(printf %b "Cancel\nName: $name\nNumber: $number")" PICKED="$( echo "$ENTRIES" | dmenu -c -l 4 -p "Edit Contact" )" if echo "$PICKED" | grep -q "^Name: "; then editcontactname "$1" elif echo "$PICKED" | grep -q "^Number: "; then editcontactnumber "$1" else showcontact "$1" fi } showcontact() { number="$(echo "$1" | cut -d" " -f1)" name="$(echo "$1" | cut -d" " -f2)" ENTRIES="$(printf %b "Cancel\nSend a Message\nCall\nEdit\nDelete")" PICKED="$( echo "$ENTRIES" | dmenu -c -l 5 -p "$name" )" if echo "$PICKED" | grep -q "^Send a Message"; then sxmo_modemtext.sh sendtextmenu "$number" exit elif echo "$PICKED" | grep -q "^Call"; then sxmo_modemdial.sh "$number" exit elif echo "$PICKED" | grep -q "^Edit"; then editcontact "$1" elif echo "$PICKED" | grep -q "^Delete"; then deletecontact "$1" || showcontact "$1" fi } main() { while true; do CONTACTS="$(sed 's/\t/: /g' "$CONTACTFILE")" ENTRIES="$(echo "$CONTACTS" | xargs -0 printf "Close Menu\nNew Contact\n%s")" PICKED="$( echo "$ENTRIES" | sxmo_dmenu_with_kb.sh -i -c -l 10 -p "Contacts" )" echo "$PICKED" | grep -q "Close Menu" && exit echo "$PICKED" | grep -q "New Contact" && newcontact showcontact "$(echo "$PICKED" | sed 's/: /\t/g')" done } main