From c84cc4f183cb18f299bed237235fa64e013d0fca Mon Sep 17 00:00:00 2001 From: Lavettacn Xiao Date: Mon, 30 Aug 2010 12:47:23 +0200 Subject: [PATCH] Check if we are in daylight time when calculating timezone The code that calculates the Kernel TimeZone does not check if we are actually in daylite time prior updating the kernel time zone. Use TimeZone.getOffset which checks for daylight savings. Also updated setTimeZone for consistency. Change-Id: I44565bc8df48e81370ea3bfbb099a6a5675e343d --- .../java/com/android/server/AlarmManagerService.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java index 4931cc7bd98d9..cf3ecdcfc38cb 100644 --- a/services/java/com/android/server/AlarmManagerService.java +++ b/services/java/com/android/server/AlarmManagerService.java @@ -281,10 +281,7 @@ class AlarmManagerService extends IAlarmManager.Stub { // Update the kernel timezone information // Kernel tracks time offsets as 'minutes west of GMT' - int gmtOffset = zone.getRawOffset(); - if (zone.inDaylightTime(new Date(System.currentTimeMillis()))) { - gmtOffset += zone.getDSTSavings(); - } + int gmtOffset = zone.getOffset(System.currentTimeMillis()); setKernelTimezone(mDescriptor, -(gmtOffset / 60000)); } @@ -784,9 +781,8 @@ class AlarmManagerService extends IAlarmManager.Stub { // based off of the current Zone gmt offset + userspace tracked // daylight savings information. TimeZone zone = TimeZone.getTimeZone(SystemProperties.get(TIMEZONE_PROPERTY)); - int gmtOffset = (zone.getRawOffset() + zone.getDSTSavings()) / 60000; - - setKernelTimezone(mDescriptor, -(gmtOffset)); + int gmtOffset = zone.getOffset(System.currentTimeMillis()); + setKernelTimezone(mDescriptor, -(gmtOffset / 60000)); scheduleDateChangedEvent(); } }