#!/system/bin/sh
#
# Script to c$set the WIFI switch off time when the
# display goes off.
#
# Usage: WIFIofftime <time in ms>
# time must be betwen 30 and 900 seconds
#
#
# Author: Michelasso @ androidiani.com
#
# Version: 1.0

if [ $# != 1 ]; then 
	echo "Usage: $(basename $0) <time in ms>"
	echo "time must be betwen 30 and 900 seconds" 
	exit 2
fi

case "$1" in
	*[!0-9]* | "") 
		echo "time must be an integer betwen 30 and 900 seconds"
		exit 2;;	
	*)
		if [ $1 -lt 30 ] || [ $1 -gt 900 ]; then
			echo "time must be betwen 30 and 900 seconds"
			exit 2
		fi
		;;
esac
#
# The swtch off time is in ms
#
TIME=$(($1 * 1000))
SETTINGDB="/data/data/com.android.providers.settings/databases/settings.db"
#

######################################################################
# DEBUG ONLY!!!!!
# Uncomment it if necessary for testing
#
# sqlite3 $SETTINGDB "delete from secure where name = 'wifi_idle_ms'"
#
######################################################################

OLDTIME=$(sqlite3 $SETTINGDB "select value from secure where name = 'wifi_idle_ms'")
if [ -z $OLDTIME ]; then
	echo "No previously switch off policy defined. Default is 900s (15m)"
	OLDTIME="NONE"
fi
#
echo Changing switch off policy from ${OLDTIME}ms to ${TIME}ms
echo Old switch off setting: $(sqlite3 $SETTINGDB "select * from secure where name = 'wifi_idle_ms'")
#
# Update the db entry for the switch off policy
#
if [ $OLDTIME = "NONE" ]; then
	sqlite3 $SETTINGDB "insert into secure(name,value) values ('wifi_idle_ms',$TIME)"
else
	sqlite3 $SETTINGDB "update secure set value = $TIME where name = 'wifi_idle_ms'"
fi
#
echo New switch off setting: $(sqlite3 $SETTINGDB "select * from secure where name = 'wifi_idle_ms'")
