Loading AndroidManifest.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -33,3 +33,4 @@ android:targetSdkVersion="19" /> android:targetSdkVersion="19" /> </manifest> </manifest> src/com/owncloud/android/lib/common/OwnCloudClient.java +17 −18 Original line number Original line Diff line number Diff line Loading @@ -43,14 +43,13 @@ import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.http.HttpStatus; import org.apache.http.HttpStatus; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.params.CoreProtocolPNames; import android.net.Uri; import android.util.Log; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.network.WebdavUtils; import android.net.Uri; import android.util.Log; public class OwnCloudClient extends HttpClient { public class OwnCloudClient extends HttpClient { private static final String TAG = OwnCloudClient.class.getSimpleName(); private static final String TAG = OwnCloudClient.class.getSimpleName(); Loading Loading @@ -88,7 +87,7 @@ public class OwnCloudClient extends HttpClient { HttpVersion.HTTP_1_1); HttpVersion.HTTP_1_1); getParams().setCookiePolicy( getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); // to keep sessions CookiePolicy.IGNORE_COOKIES); getParams().setParameter( getParams().setParameter( PARAM_SINGLE_COOKIE_HEADER, // to avoid problems with some web servers PARAM_SINGLE_COOKIE_HEADER, // to avoid problems with some web servers PARAM_SINGLE_COOKIE_HEADER_VALUE); PARAM_SINGLE_COOKIE_HEADER_VALUE); Loading Loading @@ -189,8 +188,8 @@ public class OwnCloudClient extends HttpClient { Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + method.getName() + " " + method.getPath()); method.getName() + " " + method.getPath()); logCookiesAtRequest(method.getRequestHeaders(), "before"); // logCookiesAtRequest(method.getRequestHeaders(), "before"); logCookiesAtState("before"); // logCookiesAtState("before"); int status = super.executeMethod(method); int status = super.executeMethod(method); Loading @@ -198,9 +197,9 @@ public class OwnCloudClient extends HttpClient { status = patchRedirection(status, method); status = patchRedirection(status, method); } } logCookiesAtRequest(method.getRequestHeaders(), "after"); // logCookiesAtRequest(method.getRequestHeaders(), "after"); logCookiesAtState("after"); // logCookiesAtState("after"); logSetCookiesAtResponse(method.getResponseHeaders()); // logSetCookiesAtResponse(method.getResponseHeaders()); return status; return status; Loading Loading @@ -354,7 +353,7 @@ public class OwnCloudClient extends HttpClient { for (Cookie cookie : cookies) { for (Cookie cookie : cookies) { cookiesString = cookiesString + cookie.toString() + ";"; cookiesString = cookiesString + cookie.toString() + ";"; logCookie(cookie); // logCookie(cookie); } } return cookiesString; return cookiesString; Loading src/com/owncloud/android/lib/common/SingleSessionManager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Iterator; import java.util.Map; import java.util.Map; import org.apache.commons.httpclient.cookie.CookiePolicy; import android.accounts.Account; import android.accounts.Account; import android.accounts.AuthenticatorException; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.accounts.OperationCanceledException; Loading Loading @@ -102,6 +104,9 @@ public class SingleSessionManager implements OwnCloudClientManager { account.getBaseUri(), account.getBaseUri(), context.getApplicationContext(), context.getApplicationContext(), true); // TODO remove dependency on OwnCloudClientFactory true); // TODO remove dependency on OwnCloudClientFactory client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); // enable cookie tracking // Restore Cookies ?? // Restore Cookies ?? AccountUtils.restoreCookies(accountName, client, context); AccountUtils.restoreCookies(accountName, client, context); Loading src/com/owncloud/android/lib/common/accounts/AccountUtils.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -29,11 +29,6 @@ import java.io.IOException; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Cookie; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; import com.owncloud.android.lib.resources.status.OwnCloudVersion; import android.accounts.Account; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManager; import android.accounts.AccountsException; import android.accounts.AccountsException; Loading @@ -43,6 +38,11 @@ import android.content.Context; import android.net.Uri; import android.net.Uri; import android.util.Log; import android.util.Log; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; import com.owncloud.android.lib.resources.status.OwnCloudVersion; public class AccountUtils { public class AccountUtils { private static final String TAG = AccountUtils.class.getSimpleName(); private static final String TAG = AccountUtils.class.getSimpleName(); Loading Loading @@ -220,7 +220,7 @@ public class AccountUtils { String cookiesString = client.getCookiesString(); String cookiesString = client.getCookiesString(); if (cookiesString != "") { if (cookiesString != "") { ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); Log.d(TAG, "Saving Cookies: "+ cookiesString ); // Log.d(TAG, "Saving Cookies: "+ cookiesString ); } } } } Loading src/com/owncloud/android/lib/common/network/WebdavUtils.java +17 −19 Original line number Original line Diff line number Diff line Loading @@ -35,32 +35,30 @@ import android.net.Uri; public class WebdavUtils { public class WebdavUtils { public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( "dd.MM.yyyy hh:mm"); "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" }; public static String prepareXmlForPropFind() { private static final SimpleDateFormat DATETIME_FORMATS[] = { String ret = "<?xml version=\"1.0\" ?><D:propfind xmlns:D=\"DAV:\"><D:allprop/></D:propfind>"; new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US), return ret; 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), public static String prepareXmlForPatch() { new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US), return "<?xml version=\"1.0\" ?><D:propertyupdate xmlns:D=\"DAV:\"></D:propertyupdate>"; 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 Date parseResponseDate(String date) { public static Date parseResponseDate(String date) { Date returnDate = null; Date returnDate = null; SimpleDateFormat format = null; for (int i = 0; i < DATETIME_FORMATS.length; ++i) { for (int i = 0; i < DATETIME_FORMATS.length; ++i) { try { try { returnDate = new SimpleDateFormat (DATETIME_FORMATS[i], Locale.US).parse(date); format = DATETIME_FORMATS[i]; synchronized(format) { returnDate = format.parse(date); } return returnDate; return returnDate; } catch (ParseException e) { } catch (ParseException e) { // this is not the format } } } } return null; return null; Loading Loading
AndroidManifest.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -33,3 +33,4 @@ android:targetSdkVersion="19" /> android:targetSdkVersion="19" /> </manifest> </manifest>
src/com/owncloud/android/lib/common/OwnCloudClient.java +17 −18 Original line number Original line Diff line number Diff line Loading @@ -43,14 +43,13 @@ import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.http.HttpStatus; import org.apache.http.HttpStatus; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.params.CoreProtocolPNames; import android.net.Uri; import android.util.Log; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory.OwnCloudAnonymousCredentials; import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.network.WebdavUtils; import android.net.Uri; import android.util.Log; public class OwnCloudClient extends HttpClient { public class OwnCloudClient extends HttpClient { private static final String TAG = OwnCloudClient.class.getSimpleName(); private static final String TAG = OwnCloudClient.class.getSimpleName(); Loading Loading @@ -88,7 +87,7 @@ public class OwnCloudClient extends HttpClient { HttpVersion.HTTP_1_1); HttpVersion.HTTP_1_1); getParams().setCookiePolicy( getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); // to keep sessions CookiePolicy.IGNORE_COOKIES); getParams().setParameter( getParams().setParameter( PARAM_SINGLE_COOKIE_HEADER, // to avoid problems with some web servers PARAM_SINGLE_COOKIE_HEADER, // to avoid problems with some web servers PARAM_SINGLE_COOKIE_HEADER_VALUE); PARAM_SINGLE_COOKIE_HEADER_VALUE); Loading Loading @@ -189,8 +188,8 @@ public class OwnCloudClient extends HttpClient { Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + Log.d(TAG + " #" + mInstanceNumber, "REQUEST " + method.getName() + " " + method.getPath()); method.getName() + " " + method.getPath()); logCookiesAtRequest(method.getRequestHeaders(), "before"); // logCookiesAtRequest(method.getRequestHeaders(), "before"); logCookiesAtState("before"); // logCookiesAtState("before"); int status = super.executeMethod(method); int status = super.executeMethod(method); Loading @@ -198,9 +197,9 @@ public class OwnCloudClient extends HttpClient { status = patchRedirection(status, method); status = patchRedirection(status, method); } } logCookiesAtRequest(method.getRequestHeaders(), "after"); // logCookiesAtRequest(method.getRequestHeaders(), "after"); logCookiesAtState("after"); // logCookiesAtState("after"); logSetCookiesAtResponse(method.getResponseHeaders()); // logSetCookiesAtResponse(method.getResponseHeaders()); return status; return status; Loading Loading @@ -354,7 +353,7 @@ public class OwnCloudClient extends HttpClient { for (Cookie cookie : cookies) { for (Cookie cookie : cookies) { cookiesString = cookiesString + cookie.toString() + ";"; cookiesString = cookiesString + cookie.toString() + ";"; logCookie(cookie); // logCookie(cookie); } } return cookiesString; return cookiesString; Loading
src/com/owncloud/android/lib/common/SingleSessionManager.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Iterator; import java.util.Map; import java.util.Map; import org.apache.commons.httpclient.cookie.CookiePolicy; import android.accounts.Account; import android.accounts.Account; import android.accounts.AuthenticatorException; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.accounts.OperationCanceledException; Loading Loading @@ -102,6 +104,9 @@ public class SingleSessionManager implements OwnCloudClientManager { account.getBaseUri(), account.getBaseUri(), context.getApplicationContext(), context.getApplicationContext(), true); // TODO remove dependency on OwnCloudClientFactory true); // TODO remove dependency on OwnCloudClientFactory client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY); // enable cookie tracking // Restore Cookies ?? // Restore Cookies ?? AccountUtils.restoreCookies(accountName, client, context); AccountUtils.restoreCookies(accountName, client, context); Loading
src/com/owncloud/android/lib/common/accounts/AccountUtils.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -29,11 +29,6 @@ import java.io.IOException; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Cookie; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; import com.owncloud.android.lib.resources.status.OwnCloudVersion; import android.accounts.Account; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManager; import android.accounts.AccountsException; import android.accounts.AccountsException; Loading @@ -43,6 +38,11 @@ import android.content.Context; import android.net.Uri; import android.net.Uri; import android.util.Log; import android.util.Log; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.OwnCloudCredentialsFactory; import com.owncloud.android.lib.resources.status.OwnCloudVersion; public class AccountUtils { public class AccountUtils { private static final String TAG = AccountUtils.class.getSimpleName(); private static final String TAG = AccountUtils.class.getSimpleName(); Loading Loading @@ -220,7 +220,7 @@ public class AccountUtils { String cookiesString = client.getCookiesString(); String cookiesString = client.getCookiesString(); if (cookiesString != "") { if (cookiesString != "") { ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); ac.setUserData(savedAccount, Constants.KEY_COOKIES, cookiesString); Log.d(TAG, "Saving Cookies: "+ cookiesString ); // Log.d(TAG, "Saving Cookies: "+ cookiesString ); } } } } Loading
src/com/owncloud/android/lib/common/network/WebdavUtils.java +17 −19 Original line number Original line Diff line number Diff line Loading @@ -35,32 +35,30 @@ import android.net.Uri; public class WebdavUtils { public class WebdavUtils { public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( "dd.MM.yyyy hh:mm"); "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" }; public static String prepareXmlForPropFind() { private static final SimpleDateFormat DATETIME_FORMATS[] = { String ret = "<?xml version=\"1.0\" ?><D:propfind xmlns:D=\"DAV:\"><D:allprop/></D:propfind>"; new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US), return ret; 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), public static String prepareXmlForPatch() { new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US), return "<?xml version=\"1.0\" ?><D:propertyupdate xmlns:D=\"DAV:\"></D:propertyupdate>"; 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 Date parseResponseDate(String date) { public static Date parseResponseDate(String date) { Date returnDate = null; Date returnDate = null; SimpleDateFormat format = null; for (int i = 0; i < DATETIME_FORMATS.length; ++i) { for (int i = 0; i < DATETIME_FORMATS.length; ++i) { try { try { returnDate = new SimpleDateFormat (DATETIME_FORMATS[i], Locale.US).parse(date); format = DATETIME_FORMATS[i]; synchronized(format) { returnDate = format.parse(date); } return returnDate; return returnDate; } catch (ParseException e) { } catch (ParseException e) { // this is not the format } } } } return null; return null; Loading