summaryrefslogtreecommitdiffstats
path: root/core/java/android/util
diff options
context:
space:
mode:
authorErik <roboerik@android.com>2010-09-15 12:32:46 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-15 12:32:46 -0700
commitac212158f078dc259c70710cfad04dddacf90366 (patch)
tree2a30243f7b6ebbcea09c225125a347c348e94224 /core/java/android/util
parent49478536b6b8b28f33398393bed5e939085af7af (diff)
parent0b46070d8878a8791f343cbbe720388e7dfe4e6f (diff)
downloadframeworks_base-ac212158f078dc259c70710cfad04dddacf90366.zip
frameworks_base-ac212158f078dc259c70710cfad04dddacf90366.tar.gz
frameworks_base-ac212158f078dc259c70710cfad04dddacf90366.tar.bz2
am 0b46070d: am 426ee7f2: Fixes some bugs in TimeZoneUtils
Merge commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f' * commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f': Fixes some bugs in TimeZoneUtils
Diffstat (limited to 'core/java/android/util')
-rw-r--r--core/java/android/util/CalendarUtils.java37
1 files changed, 30 insertions, 7 deletions
diff --git a/core/java/android/util/CalendarUtils.java b/core/java/android/util/CalendarUtils.java
index 81709d7..9a4a67d 100644
--- a/core/java/android/util/CalendarUtils.java
+++ b/core/java/android/util/CalendarUtils.java
@@ -45,6 +45,10 @@ public class CalendarUtils {
* values.
*/
public static class TimeZoneUtils {
+ private static final String[] TIMEZONE_TYPE_ARGS = { CalendarCache.TIMEZONE_KEY_TYPE };
+ private static final String[] TIMEZONE_INSTANCES_ARGS =
+ { CalendarCache.TIMEZONE_KEY_INSTANCES };
+
private static StringBuilder mSB = new StringBuilder(50);
private static Formatter mF = new Formatter(mSB, Locale.getDefault());
private volatile static boolean mFirstTZRequest = true;
@@ -213,19 +217,17 @@ public class CalendarUtils {
}
// Write the use home tz setting
- String[] selArgs = new String[] { CalendarCache.TIMEZONE_KEY_TYPE };
values.put(CalendarCache.VALUE, mUseHomeTZ ? CalendarCache.TIMEZONE_TYPE_HOME
: CalendarCache.TIMEZONE_TYPE_AUTO);
mHandler.startUpdate(mToken, null, CalendarCache.URI, values, CalendarCache.WHERE,
- selArgs);
+ TIMEZONE_TYPE_ARGS);
// If using a home tz write it to the db
if (mUseHomeTZ) {
- selArgs[0] = CalendarCache.TIMEZONE_KEY_INSTANCES;
- values.clear();
- values.put(CalendarCache.VALUE, mHomeTZ);
- mHandler.startUpdate(
- mToken, null, CalendarCache.URI, values, CalendarCache.WHERE, selArgs);
+ ContentValues values2 = new ContentValues();
+ values2.put(CalendarCache.VALUE, mHomeTZ);
+ mHandler.startUpdate(mToken, null, CalendarCache.URI, values2,
+ CalendarCache.WHERE, TIMEZONE_INSTANCES_ARGS);
}
}
}
@@ -270,6 +272,27 @@ public class CalendarUtils {
}
return mUseHomeTZ ? mHomeTZ : Time.getCurrentTimezone();
}
+
+ /**
+ * Forces a query of the database to check for changes to the time zone.
+ * This should be called if another app may have modified the db. If a
+ * query is already in progress the callback will be added to the list
+ * of callbacks to be called when it returns.
+ *
+ * @param context The calling activity
+ * @param callback The runnable that should execute if a query returns
+ * new values
+ */
+ public void forceDBRequery(Context context, Runnable callback) {
+ synchronized (mTZCallbacks){
+ if (mTZQueryInProgress) {
+ mTZCallbacks.add(callback);
+ return;
+ }
+ mFirstTZRequest = true;
+ getTimeZone(context, callback);
+ }
+ }
}
/**