op_datetime.sh: fix various issues
authorGrazvydas Ignotas <notasas@gmail.com>
Sat, 12 May 2012 14:02:56 +0000 (17:02 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 12 May 2012 14:02:56 +0000 (17:02 +0300)
- allow to cancel dialogs
- remove duplicate time set loop
- disable screensaver when changing time
- write to hwclock

recipes/pandora-system/pandora-scripts.bb
recipes/pandora-system/pandora-scripts/op_datetime.sh

index fad59db..7de19c4 100644 (file)
@@ -6,7 +6,7 @@ COMPATIBLE_MACHINE = "omap3-pandora"
 DEPENDS = "zenity dbus"
 RDEPENDS = "zenity dbus"
 
 DEPENDS = "zenity dbus"
 RDEPENDS = "zenity dbus"
 
-PR = "r94"
+PR = "r95"
 
 SRC_URI = " \
           file://op_paths.sh \
 
 SRC_URI = " \
           file://op_paths.sh \
index 9983023..04aa5ed 100755 (executable)
@@ -28,8 +28,9 @@ case $mainsel in
   date_m=`date +%m | sed 's/^0//'`
   date_y=`date +%Y`
 
   date_m=`date +%m | sed 's/^0//'`
   date_y=`date +%Y`
 
-  while ! date=$(zenity --calendar --text="Please select the current date" --title "Please select the current date" --day=$date_d --month=$date_m --year=$date_y --date-format="%Y%m%d" --width=500) || [ "x$date" = "x" ] ; do
-         zenity --title="Error" --error --text="Please select the date." --timeout 6
+  date=""
+  while [ "x$date" = "x" ] ; do
+    date=$(zenity --calendar --text="Please select the current date" --title "Please select the current date" --day=$date_d --month=$date_m --year=$date_y --date-format="%Y%m%d" --width=500) || exit 1
   done
 
   echo $date
   done
 
   echo $date
@@ -37,16 +38,29 @@ case $mainsel in
   time_h=`date +%H`
   time_m=`date +%M`
 
   time_h=`date +%H`
   time_m=`date +%M`
 
-  while ! time=$(zenity --title="Enter actual time" --entry --text "Please enter the time in 24hour format (HH:MM).\n\nThe screen might blank out after you changed the time.\nDon't panic. Simply press a button on the keyboard.\n" --entry-text "$time_h:$time_m") || [ "x$time" = "x" ] ; do
-         zenity --title="Error" --error --text="Please input the time." --timeout 6
+  while true; do
+    time=$(zenity --title="Enter actual time" --entry --text "Please enter the time in 24hour format (HH:MM).\n\nThe screen might blank out after you changed the time.\nDon't panic. Simply press a button on the keyboard.\n" --entry-text "$time_h:$time_m") || exit 1
+    if test -n "$time" && date -d "$time"; then
+      break;
+    fi
+    zenity --title="Error" --error --text="Please input the time." --timeout 6
   done
 
   done
 
-  while ! date -d $time ; do
-         time=$(zenity --title="Enter actual time" --entry --text "Please enter the time in 24hour format (HH:MM).\n\nThe screen might blank out after you changed the time.\nDon't panic. Simply press a button on the keyboard.\n" --entry-text "$time_h:$time_m")
-  done
+  # take care of screensaver first
+  screensaver_enabled=true
+  if xset q | grep -A2 'Screen Saver' | grep -q 'timeout:.*\<0\>.*cycle'; then
+    screensaver_enabled=false
+  fi
+  xset s off
+
   date +%Y%m%d -s $date
   date +%H:%M -s $time
   date +%Y%m%d -s $date
   date +%H:%M -s $time
+  hwclock -u -w
+
+  if $screensaver_enabled; then
+    xset s on
+  fi
   ;;
 
 esac
   ;;
 
 esac
-done 
\ No newline at end of file
+done