1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Back to save cached SimpleDateFormat instances to parse dates from server, to avoid huge performance problem in Android 2.x devices

This commit is contained in:
David A. Velasco 2014-07-10 12:24:31 +02:00
parent 0f23df1b7b
commit 9af57b477e

View File

@ -35,15 +35,17 @@ import android.net.Uri;
public class WebdavUtils {
public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat(
"dd.MM.yyyy hh:mm");
private static final String DATETIME_FORMATS[] = {
"yyyy-MM-dd'T'HH:mm:ss'Z'",
"EEE, dd MMM yyyy HH:mm:ss zzz",
"yyyy-MM-dd'T'HH:mm:ss.sss'Z'",
"yyyy-MM-dd'T'HH:mm:ssZ",
"EEE MMM dd HH:mm:ss zzz yyyy",
"EEEEEE, dd-MMM-yy HH:mm:ss zzz",
"EEE MMMM d HH:mm:ss yyyy",
"yyyy-MM-dd hh:mm:ss" };
private static final SimpleDateFormat DATETIME_FORMATS[] = {
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US),
new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", Locale.US),
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US),
new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US),
new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US),
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US)
};
public static String prepareXmlForPropFind() {
String ret = "<?xml version=\"1.0\" ?><D:propfind xmlns:D=\"DAV:\"><D:allprop/></D:propfind>";
@ -56,11 +58,16 @@ public class WebdavUtils {
public static Date parseResponseDate(String date) {
Date returnDate = null;
SimpleDateFormat format = null;
for (int i = 0; i < DATETIME_FORMATS.length; ++i) {
try {
returnDate = new SimpleDateFormat (DATETIME_FORMATS[i], Locale.US).parse(date);
format = DATETIME_FORMATS[i];
synchronized(format) {
returnDate = format.parse(date);
}
return returnDate;
} catch (ParseException e) {
// this is not the format
}
}
return null;