mirror of
https://github.com/etesync/android
synced 2024-11-25 17:38:13 +00:00
TLS/SNI support, proxy support
* SNI now works for proxied connections, too * "Cannot verify hostname" message removed and split into two localized messages: one for unknown certificates, the other for hostname mismatch
This commit is contained in:
parent
6f5748c464
commit
897ede7582
@ -1,79 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="at.bitfire.davdroid"
|
||||
android:versionCode="47"
|
||||
android:versionName="0.6.8" android:installLocation="internalOnly">
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="14"
|
||||
android:targetSdkVersion="21" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.READ_CALENDAR" />
|
||||
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
|
||||
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/AppTheme"
|
||||
android:process=":sync" >
|
||||
<service
|
||||
android:name=".syncadapter.AccountAuthenticatorService"
|
||||
android:exported="false" >
|
||||
<intent-filter>
|
||||
<action android:name="android.accounts.AccountAuthenticator" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.accounts.AccountAuthenticator"
|
||||
android:resource="@xml/account_authenticator" />
|
||||
</service>
|
||||
<service
|
||||
android:name=".syncadapter.ContactsSyncAdapterService"
|
||||
android:exported="true" >
|
||||
<intent-filter>
|
||||
<action android:name="android.content.SyncAdapter" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.content.SyncAdapter"
|
||||
android:resource="@xml/sync_contacts" />
|
||||
<meta-data
|
||||
android:name="android.provider.CONTACTS_STRUCTURE"
|
||||
android:resource="@xml/contacts" />
|
||||
</service>
|
||||
<service
|
||||
android:name=".syncadapter.CalendarsSyncAdapterService"
|
||||
android:exported="true" >
|
||||
<intent-filter>
|
||||
<action android:name="android.content.SyncAdapter" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.content.SyncAdapter"
|
||||
android:resource="@xml/sync_calendars" />
|
||||
</service>
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".syncadapter.AddAccountActivity"
|
||||
android:excludeFromRecents="true" >
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".syncadapter.GeneralSettingsActivity" >
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -20,11 +20,17 @@ import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.apache.commons.lang.exception.ExceptionUtils;
|
||||
import org.apache.http.HttpException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.security.cert.CertPathValidatorException;
|
||||
import java.security.cert.CertificateException;
|
||||
|
||||
import javax.net.ssl.SSLHandshakeException;
|
||||
import javax.net.ssl.SSLPeerUnverifiedException;
|
||||
|
||||
import at.bitfire.davdroid.R;
|
||||
import at.bitfire.davdroid.resource.DavResourceFinder;
|
||||
@ -114,7 +120,13 @@ public class QueryServerDialogFragment extends DialogFragment implements LoaderC
|
||||
} catch (URISyntaxException e) {
|
||||
serverInfo.setErrorMessage(getContext().getString(R.string.exception_uri_syntax, e.getMessage()));
|
||||
} catch (IOException e) {
|
||||
// general message
|
||||
serverInfo.setErrorMessage(getContext().getString(R.string.exception_io, e.getLocalizedMessage()));
|
||||
// overwrite by more specific message, if possible
|
||||
if (ExceptionUtils.indexOfType(e, CertPathValidatorException.class) != -1)
|
||||
serverInfo.setErrorMessage(getContext().getString(R.string.exception_cert_path_validation, e.getMessage()));
|
||||
else if (ExceptionUtils.indexOfType(e, SSLPeerUnverifiedException.class) != -1)
|
||||
serverInfo.setErrorMessage(getContext().getString(R.string.exception_peer_unverified, e.getMessage()));
|
||||
} catch (HttpException e) {
|
||||
Log.e(TAG, "HTTP error while querying server info", e);
|
||||
serverInfo.setErrorMessage(getContext().getString(R.string.exception_http, e.getLocalizedMessage()));
|
||||
|
@ -13,6 +13,7 @@ import android.net.SSLCertificateSocketFactory;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.http.HttpHost;
|
||||
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
|
||||
@ -23,129 +24,128 @@ import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.UnknownHostException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.cert.CertPathValidatorException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.net.ssl.HandshakeCompletedEvent;
|
||||
import javax.net.ssl.HandshakeCompletedListener;
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLPeerUnverifiedException;
|
||||
import javax.net.ssl.SSLSession;
|
||||
import javax.net.ssl.SSLSocket;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.TrustManagerFactory;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
public class TlsSniSocketFactory implements LayeredConnectionSocketFactory {
|
||||
private static final String TAG = "davdroid.SNISocketFactory";
|
||||
|
||||
public final static TlsSniSocketFactory INSTANCE = new TlsSniSocketFactory();
|
||||
|
||||
private final static SSLCertificateSocketFactory sslSocketFactory =
|
||||
(SSLCertificateSocketFactory)SSLCertificateSocketFactory.getDefault(0);
|
||||
private final static HostnameVerifier hostnameVerifier = new BrowserCompatHostnameVerifierHC4();
|
||||
private final static SSLSocketFactory sslSocketFactory = (SSLSocketFactory)SSLSocketFactory.getDefault();
|
||||
private final static HostnameVerifier hostnameVerifier = HttpsURLConnection.getDefaultHostnameVerifier();
|
||||
|
||||
|
||||
/*
|
||||
For SSL connections without HTTP(S) proxy:
|
||||
1) createSocket() is called
|
||||
2) connectSocket() is called which creates a new SSL connection
|
||||
2a) SNI is set up, and then
|
||||
2b) the connection is established, hands are shaken and certificate/host name are verified
|
||||
For TLS connections without HTTPS (CONNECT) proxy:
|
||||
1) socket = createSocket() is called
|
||||
2) connectSocket(socket) is called which creates a new TLS connection (but no handshake yet)
|
||||
3) reasonable encryption settings are applied to socket
|
||||
4) SNI is set up for socket
|
||||
5) handshake and certificate/host name verification
|
||||
|
||||
Layered sockets are used with HTTP(S) proxies:
|
||||
1) a new plain socket is created by the HTTP library
|
||||
Layered sockets are used with HTTPS (CONNECT) proxies:
|
||||
1) plain = createSocket() is called
|
||||
2) the plain socket is connected to http://proxy:8080
|
||||
3) a CONNECT request is sent to the proxy and the response is parsed
|
||||
4) now, createLayeredSocket() is called which wraps an SSL socket around the proxy connection,
|
||||
doing all the set-up and verfication
|
||||
4a) Because SSLSocket.createSocket(socket, ...) always does a handshake without allowing
|
||||
to set up SNI before, *** SNI is not available for layered connections *** (unless
|
||||
active by Android's defaults, which it isn't at the moment).
|
||||
4) socket = createLayeredSocket(plain) is called to "upgrade" the plain connection to a TLS connection (but no handshake yet)
|
||||
5) SNI is set up for socket
|
||||
6) handshake and certificate/host name verification
|
||||
*/
|
||||
|
||||
|
||||
@Override
|
||||
public Socket createSocket(HttpContext context) throws IOException {
|
||||
SSLSocket ssl = (SSLSocket)sslSocketFactory.createSocket();
|
||||
setReasonableEncryption(ssl);
|
||||
return ssl;
|
||||
return sslSocketFactory.createSocket();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket connectSocket(int timeout, Socket plain, HttpHost host, InetSocketAddress remoteAddr, InetSocketAddress localAddr, HttpContext context) throws IOException {
|
||||
Log.d(TAG, "Preparing direct SSL connection (without proxy) to " + host);
|
||||
|
||||
// we'll rather use an SSLSocket directly
|
||||
plain.close();
|
||||
|
||||
// create a plain SSL socket, but don't do hostname/certificate verification yet
|
||||
SSLSocket ssl = (SSLSocket)sslSocketFactory.createSocket(remoteAddr.getAddress(), host.getPort());
|
||||
setReasonableEncryption(ssl);
|
||||
|
||||
// connect, set SNI, shake hands, verify, print connection info
|
||||
connectWithSNI(ssl, host.getHostName());
|
||||
|
||||
return ssl;
|
||||
public Socket connectSocket(int timeout, Socket sock, HttpHost host, InetSocketAddress remoteAddr, InetSocketAddress localAddr, HttpContext context) throws IOException {
|
||||
Log.d(TAG, "Preparing direct TLS connection to " + host);
|
||||
final SSLSocket socket = (SSLSocket)((sock != null) ? sock : createSocket(context));
|
||||
connectAndVerify(socket, host.getHostName());
|
||||
return socket;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createLayeredSocket(Socket plain, String host, int port, HttpContext context) throws IOException, UnknownHostException {
|
||||
Log.d(TAG, "Preparing layered SSL connection (over proxy) to " + host);
|
||||
|
||||
// create a layered SSL socket, but don't do hostname/certificate verification yet
|
||||
SSLSocket ssl = (SSLSocket)sslSocketFactory.createSocket(plain, host, port, true);
|
||||
setReasonableEncryption(ssl);
|
||||
|
||||
// already connected, but verify host name again and print some connection info
|
||||
Log.w(TAG, "Setting SNI/TLSv1.2 will silently fail because the handshake is already done");
|
||||
connectWithSNI(ssl, host);
|
||||
|
||||
return ssl;
|
||||
public Socket createLayeredSocket(Socket plain, String host, int port, HttpContext context) throws IOException {
|
||||
Log.d(TAG, "Preparing proxied TLS connection to " + host);
|
||||
final SSLSocket socket = (SSLSocket)sslSocketFactory.createSocket(plain, host, port, true);
|
||||
connectAndVerify(socket, host);
|
||||
return socket;
|
||||
}
|
||||
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
private void connectWithSNI(SSLSocket ssl, String host) throws SSLPeerUnverifiedException {
|
||||
// - set SNI host name
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
Log.d(TAG, "Using documented SNI with host name " + host);
|
||||
sslSocketFactory.setHostname(ssl, host);
|
||||
} else {
|
||||
Log.d(TAG, "No documented SNI support on Android <4.2, trying with reflection");
|
||||
try {
|
||||
java.lang.reflect.Method setHostnameMethod = ssl.getClass().getMethod("setHostname", String.class);
|
||||
setHostnameMethod.invoke(ssl, host);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "SNI not useable", e);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Establishes a connection to an unconnected SSLSocket:
|
||||
* - prepare socket
|
||||
* - set SNI host name
|
||||
* - verify host name
|
||||
* - verify certificate
|
||||
* @param socket unconnected SSLSocket
|
||||
* @param host host name for SNI
|
||||
* @throws SSLPeerUnverifiedException
|
||||
*/
|
||||
private void connectAndVerify(SSLSocket socket, String host) throws IOException, SSLPeerUnverifiedException {
|
||||
// prepare socket (set encryption etc.)
|
||||
prepareSSLSocket(socket);
|
||||
|
||||
// set SNI hostname
|
||||
setSniHostname(socket, host);
|
||||
|
||||
// TLS handshake
|
||||
socket.startHandshake();
|
||||
|
||||
// verify hostname and certificate
|
||||
SSLSession session = ssl.getSession();
|
||||
SSLSession session = socket.getSession();
|
||||
if (!hostnameVerifier.verify(host, session))
|
||||
throw new SSLPeerUnverifiedException("Cannot verify hostname: " + host);
|
||||
throw new SSLPeerUnverifiedException(host);
|
||||
|
||||
Log.d(TAG, "Established " + session.getProtocol() + " connection with " + session.getPeerHost() +
|
||||
" using " + session.getCipherSuite());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prepares a TLS/SSL connetion socket by:
|
||||
* - setting the default TrustManager (as we have created an "insecure" connection to avoid handshake problems before)
|
||||
* - setting reasonable TLS protocol versions
|
||||
* - setting reasonable cipher suites (if required)
|
||||
* @param socket unconnected SSLSocket to prepare
|
||||
*/
|
||||
@SuppressLint("DefaultLocale")
|
||||
private void setReasonableEncryption(SSLSocket ssl) {
|
||||
// set reasonable SSL/TLS settings before the handshake
|
||||
|
||||
private void prepareSSLSocket(SSLSocket socket) {
|
||||
// Android 5.0+ (API level21) provides reasonable default settings
|
||||
// but it still allows SSLv3
|
||||
// https://developer.android.com/about/versions/android-5.0-changes.html#ssl
|
||||
|
||||
// - enable all supported protocols (enables TLSv1.1 and TLSv1.2 on Android <5.0, if available)
|
||||
/* set reasonable protocol versions */
|
||||
// - enable all supported protocols (enables TLSv1.1 and TLSv1.2 on Android <5.0)
|
||||
// - remove all SSL versions (especially SSLv3) because they're insecure now
|
||||
List<String> protocols = new LinkedList<String>();
|
||||
for (String protocol : ssl.getSupportedProtocols())
|
||||
for (String protocol : socket.getSupportedProtocols())
|
||||
if (!protocol.toUpperCase().contains("SSL"))
|
||||
protocols.add(protocol);
|
||||
Log.v(TAG, "Setting allowed TLS protocols: " + StringUtils.join(protocols, ", "));
|
||||
ssl.setEnabledProtocols(protocols.toArray(new String[0]));
|
||||
socket.setEnabledProtocols(protocols.toArray(new String[0]));
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT < 21) {
|
||||
/* set reasonable cipher suites */
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
|
||||
// choose secure cipher suites
|
||||
List<String> allowedCiphers = Arrays.asList(new String[] {
|
||||
// allowed secure ciphers according to NIST.SP.800-52r1.pdf Section 3.3.1 (see docs directory)
|
||||
@ -168,7 +168,7 @@ public class TlsSniSocketFactory implements LayeredConnectionSocketFactory {
|
||||
"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
|
||||
});
|
||||
|
||||
List<String> availableCiphers = Arrays.asList(ssl.getSupportedCipherSuites());
|
||||
List<String> availableCiphers = Arrays.asList(socket.getSupportedCipherSuites());
|
||||
|
||||
// preferred ciphers = allowed Ciphers \ availableCiphers
|
||||
HashSet<String> preferredCiphers = new HashSet<String>(allowedCiphers);
|
||||
@ -179,10 +179,27 @@ public class TlsSniSocketFactory implements LayeredConnectionSocketFactory {
|
||||
// but I guess for the security level of DAVdroid, disabling of insecure
|
||||
// ciphers should be a server-side task
|
||||
HashSet<String> enabledCiphers = preferredCiphers;
|
||||
enabledCiphers.addAll(new HashSet<String>(Arrays.asList(ssl.getEnabledCipherSuites())));
|
||||
enabledCiphers.addAll(new HashSet<String>(Arrays.asList(socket.getEnabledCipherSuites())));
|
||||
|
||||
Log.v(TAG, "Setting allowed TLS ciphers: " + StringUtils.join(enabledCiphers, ", "));
|
||||
ssl.setEnabledCipherSuites(enabledCiphers.toArray(new String[0]));
|
||||
socket.setEnabledCipherSuites(enabledCiphers.toArray(new String[0]));
|
||||
}
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
private void setSniHostname(SSLSocket socket, String hostName) {
|
||||
// set SNI host name
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && sslSocketFactory instanceof SSLCertificateSocketFactory) {
|
||||
Log.d(TAG, "Using documented SNI with host name " + hostName);
|
||||
((SSLCertificateSocketFactory)sslSocketFactory).setHostname(socket, hostName);
|
||||
} else {
|
||||
Log.d(TAG, "No documented SNI support on Android <4.2, trying reflection method with host name " + hostName);
|
||||
try {
|
||||
java.lang.reflect.Method setHostnameMethod = socket.getClass().getMethod("setHostname", String.class);
|
||||
setHostnameMethod.invoke(socket, hostName);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "SNI not useable", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,9 +6,11 @@
|
||||
<string name="next">Weiter</string>
|
||||
<string name="help">Hilfe</string>
|
||||
|
||||
<string name="exception_cert_path_validation">Nicht vertrauenswürdiges Zertifikat in der Zertifikatskette (siehe FAQ)</string>
|
||||
<string name="exception_http">HTTP-Fehler: %s</string>
|
||||
<string name="exception_incapable_resource">Fehlende Server-Unterstützung: %s</string>
|
||||
<string name="exception_io">E/A-Fehler: %s</string>
|
||||
<string name="exception_peer_unverified">Zertifikat ist nicht für \"%s\" ausgestellt</string>
|
||||
<string name="exception_uri_syntax">URI ungültig: %s</string>
|
||||
|
||||
<!-- MainActivity -->
|
||||
|
@ -8,9 +8,11 @@
|
||||
<string name="next">Next</string>
|
||||
<string name="help">Help</string>
|
||||
|
||||
<string name="exception_cert_path_validation">Untrusted certificate in certificate path. See FAQ for more info.</string>
|
||||
<string name="exception_http">HTTP error: %s</string>
|
||||
<string name="exception_incapable_resource">Missing capabilities: %s</string>
|
||||
<string name="exception_io">I/O error: %s</string>
|
||||
<string name="exception_peer_unverified">Certificate not issued for \"%s\"</string>
|
||||
<string name="exception_uri_syntax">Invalid URI: %s</string>
|
||||
|
||||
<!-- MainActivity -->
|
||||
|
@ -1,741 +0,0 @@
|
||||
ECLIPSE ANDROID PROJECT IMPORT SUMMARY
|
||||
======================================
|
||||
|
||||
Ignored Files:
|
||||
--------------
|
||||
The following files were *not* copied into the new Gradle project; you
|
||||
should evaluate whether these are still needed in your project and if
|
||||
so manually move them:
|
||||
|
||||
* .gitignore
|
||||
* .idea/
|
||||
* .idea/.name
|
||||
* .idea/compiler.xml
|
||||
* .idea/copyright/
|
||||
* .idea/copyright/profiles_settings.xml
|
||||
* .idea/davdroid.iml
|
||||
* .idea/encodings.xml
|
||||
* .idea/misc.xml
|
||||
* .idea/modules.xml
|
||||
* .idea/scopes/
|
||||
* .idea/scopes/scope_settings.xml
|
||||
* .idea/vcs.xml
|
||||
* .idea/workspace.xml
|
||||
* CONTRIBUTING.md
|
||||
* COPYING
|
||||
* README.md
|
||||
* build.xml
|
||||
* compile-libs/
|
||||
* compile-libs/lombok.jar
|
||||
* doc/
|
||||
* doc/NIST.SP.800-52r1.pdf
|
||||
* doc/how_davdroid_works.svgz
|
||||
* doc/javadoc/
|
||||
* doc/javadoc/allclasses-frame.html
|
||||
* doc/javadoc/allclasses-noframe.html
|
||||
* doc/javadoc/at/
|
||||
* doc/javadoc/at/bitfire/
|
||||
* doc/javadoc/at/bitfire/davdroid/
|
||||
* doc/javadoc/at/bitfire/davdroid/ArrayUtils.html
|
||||
* doc/javadoc/at/bitfire/davdroid/Constants.html
|
||||
* doc/javadoc/at/bitfire/davdroid/MainActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/URIUtils.html
|
||||
* doc/javadoc/at/bitfire/davdroid/class-use/
|
||||
* doc/javadoc/at/bitfire/davdroid/class-use/ArrayUtils.html
|
||||
* doc/javadoc/at/bitfire/davdroid/class-use/Constants.html
|
||||
* doc/javadoc/at/bitfire/davdroid/class-use/MainActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/class-use/URIUtils.html
|
||||
* doc/javadoc/at/bitfire/davdroid/package-frame.html
|
||||
* doc/javadoc/at/bitfire/davdroid/package-summary.html
|
||||
* doc/javadoc/at/bitfire/davdroid/package-tree.html
|
||||
* doc/javadoc/at/bitfire/davdroid/package-use.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/CalDavCalendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/CardDavAddressBook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/Contact.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/Event.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/InvalidResourceException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/LocalAddressBook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/LocalCalendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/LocalCollection.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/LocalStorageException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/RecordNotFoundException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/RemoteCollection.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/Resource.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/CalDavCalendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/CardDavAddressBook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/Contact.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/Event.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/InvalidResourceException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/LocalAddressBook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/LocalCalendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/LocalCollection.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/LocalStorageException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/RecordNotFoundException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/RemoteCollection.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/class-use/Resource.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/package-frame.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/package-summary.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/package-tree.html
|
||||
* doc/javadoc/at/bitfire/davdroid/resource/package-use.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.AccountAuthenticator.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/AccountAuthenticatorService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/AccountDetailsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/AccountSettings.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/AddAccountActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/CalendarsSyncAdapterService.SyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/CalendarsSyncAdapterService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/ContactsSyncAdapterService.ContactsSyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/ContactsSyncAdapterService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/DavSyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/EnterCredentialsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/GeneralSettingsActivity.GeneralSettingsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/GeneralSettingsActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/QueryServerDialogFragment.ServerInfoLoader.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/QueryServerDialogFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/SelectCollectionsAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/SelectCollectionsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/ServerInfo.ResourceInfo.Type.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/ServerInfo.ResourceInfo.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/ServerInfo.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/SyncManager.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/WebDavResourceAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/AccountAuthenticatorService.AccountAuthenticator.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/AccountAuthenticatorService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/AccountDetailsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/AccountSettings.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/AddAccountActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/CalendarsSyncAdapterService.SyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/CalendarsSyncAdapterService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/ContactsSyncAdapterService.ContactsSyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/ContactsSyncAdapterService.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/DavSyncAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/EnterCredentialsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/GeneralSettingsActivity.GeneralSettingsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/GeneralSettingsActivity.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/QueryServerDialogFragment.ServerInfoLoader.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/QueryServerDialogFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/SelectCollectionsAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/SelectCollectionsFragment.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/ServerInfo.ResourceInfo.Type.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/ServerInfo.ResourceInfo.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/ServerInfo.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/SyncManager.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/class-use/WebDavResourceAdapter.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/package-frame.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/package-summary.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/package-tree.html
|
||||
* doc/javadoc/at/bitfire/davdroid/syncadapter/package-use.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavAddressbookMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavCalendarMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavHref.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavHttpClient.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavHttpRequestRetryHandler.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavIncapableException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavMultiget.Type.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavMultistatus.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavNoContentException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavNoMultiStatusException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavAddressbookHomeSet.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavCalendarHomeSet.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavCurrentUserPrincipal.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropAddressData.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropAddressbookDescription.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropCalendarColor.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropCalendarData.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropCalendarDescription.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropCalendarTimezone.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropComp.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropDisplayName.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropGetCTag.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropGetETag.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.PrivAll.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.PrivBind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.PrivUnbind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.PrivWrite.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.PrivWriteContent.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropPrivilege.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropResourceType.Addressbook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropResourceType.Calendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.DavPropResourceType.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavProp.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavPropfind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavPropstat.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/DavResponse.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/HttpException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/HttpPropfind.Mode.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/HttpPropfind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/HttpReport.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/NotFoundException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/PreconditionFailedException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/TlsSniSocketFactory.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/WebDavResource.Property.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/WebDavResource.PutMode.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/WebDavResource.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavAddressbookMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavCalendarMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavHref.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavHttpClient.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavHttpRequestRetryHandler.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavIncapableException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavMultiget.Type.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavMultiget.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavMultistatus.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavNoContentException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavNoMultiStatusException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavAddressbookHomeSet.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavCalendarHomeSet.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavCurrentUserPrincipal.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropAddressData.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropAddressbookDescription.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropCalendarColor.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropCalendarData.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropCalendarDescription.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropCalendarTimezone.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropComp.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropDisplayName.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropGetCTag.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropGetETag.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.PrivAll.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.PrivBind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.PrivUnbind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.PrivWrite.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.PrivWriteContent.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropPrivilege.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropResourceType.Addressbook.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropResourceType.Calendar.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.DavPropResourceType.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavProp.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavPropfind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavPropstat.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/DavResponse.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/HttpException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/HttpPropfind.Mode.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/HttpPropfind.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/HttpReport.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/NotFoundException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/PreconditionFailedException.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/TlsSniSocketFactory.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/WebDavResource.Property.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/WebDavResource.PutMode.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/class-use/WebDavResource.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/package-frame.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/package-summary.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/package-tree.html
|
||||
* doc/javadoc/at/bitfire/davdroid/webdav/package-use.html
|
||||
* doc/javadoc/constant-values.html
|
||||
* doc/javadoc/deprecated-list.html
|
||||
* doc/javadoc/help-doc.html
|
||||
* doc/javadoc/index-files/
|
||||
* doc/javadoc/index-files/index-1.html
|
||||
* doc/javadoc/index-files/index-10.html
|
||||
* doc/javadoc/index-files/index-11.html
|
||||
* doc/javadoc/index-files/index-12.html
|
||||
* doc/javadoc/index-files/index-13.html
|
||||
* doc/javadoc/index-files/index-14.html
|
||||
* doc/javadoc/index-files/index-15.html
|
||||
* doc/javadoc/index-files/index-16.html
|
||||
* doc/javadoc/index-files/index-17.html
|
||||
* doc/javadoc/index-files/index-18.html
|
||||
* doc/javadoc/index-files/index-19.html
|
||||
* doc/javadoc/index-files/index-2.html
|
||||
* doc/javadoc/index-files/index-20.html
|
||||
* doc/javadoc/index-files/index-21.html
|
||||
* doc/javadoc/index-files/index-22.html
|
||||
* doc/javadoc/index-files/index-23.html
|
||||
* doc/javadoc/index-files/index-24.html
|
||||
* doc/javadoc/index-files/index-3.html
|
||||
* doc/javadoc/index-files/index-4.html
|
||||
* doc/javadoc/index-files/index-5.html
|
||||
* doc/javadoc/index-files/index-6.html
|
||||
* doc/javadoc/index-files/index-7.html
|
||||
* doc/javadoc/index-files/index-8.html
|
||||
* doc/javadoc/index-files/index-9.html
|
||||
* doc/javadoc/index.html
|
||||
* doc/javadoc/overview-frame.html
|
||||
* doc/javadoc/overview-summary.html
|
||||
* doc/javadoc/overview-tree.html
|
||||
* doc/javadoc/package-list
|
||||
* doc/javadoc/resources/
|
||||
* doc/javadoc/resources/background.gif
|
||||
* doc/javadoc/resources/tab.gif
|
||||
* doc/javadoc/resources/titlebar.gif
|
||||
* doc/javadoc/resources/titlebar_end.gif
|
||||
* doc/javadoc/serialized-form.html
|
||||
* doc/javadoc/stylesheet.css
|
||||
* doc/rfc3744-webdav-access-control-protocol.txt
|
||||
* doc/rfc4791-caldav.txt
|
||||
* doc/rfc4918-webdav.txt
|
||||
* doc/rfc5397-webdav-current-principal-extension.txt
|
||||
* doc/rfc5785-well-known-uris.txt
|
||||
* doc/rfc6352-carddav.txt
|
||||
* doc/rfc6764-caldav-carddav-service-discovery.txt
|
||||
* eclipse-libs/
|
||||
* eclipse-libs/lombok-api.jar
|
||||
* private/
|
||||
* private/contacts2.db
|
||||
* proguard-project.txt
|
||||
* proguard/
|
||||
* proguard/dump.txt
|
||||
* proguard/mapping.txt
|
||||
* proguard/seeds.txt
|
||||
* proguard/usage.txt
|
||||
* target/
|
||||
* target/davdroid-0.1.apk
|
||||
* target/davdroid-0.2-alpha.apk
|
||||
* target/davdroid-0.3-alpha.apk
|
||||
* target/davdroid_0_3_3_alpha.apk
|
||||
* target/davdroid_0_3_4_alpha.apk
|
||||
* target/davdroid_0_3_5_alpha.apk
|
||||
* target/davdroid_0_3_6_alpha.apk
|
||||
* target/davdroid_0_3_7_alpha.apk
|
||||
* target/davdroid_0_3_8_alpha.apk
|
||||
* target/davdroid_0_4_1_alpha.apk
|
||||
* target/davdroid_0_4_2_alpha.apk
|
||||
* target/davdroid_0_4_3_alpha.apk
|
||||
* target/davdroid_0_4_4_alpha.apk
|
||||
* target/davdroid_0_4_alpha.apk
|
||||
* target/davdroid_0_5_10.apk
|
||||
* target/davdroid_0_5_10_1.apk
|
||||
* target/davdroid_0_5_10_2.apk
|
||||
* target/davdroid_0_5_11.apk
|
||||
* target/davdroid_0_5_12.apk
|
||||
* target/davdroid_0_5_13.apk
|
||||
* target/davdroid_0_5_14.apk
|
||||
* target/davdroid_0_5_1_alpha.apk
|
||||
* target/davdroid_0_5_2_alpha.apk
|
||||
* target/davdroid_0_5_3_alpha.apk
|
||||
* target/davdroid_0_5_4_alpha.apk
|
||||
* target/davdroid_0_5_5_alpha.apk
|
||||
* target/davdroid_0_5_6_alpha.apk
|
||||
* target/davdroid_0_5_7_alpha.apk
|
||||
* target/davdroid_0_5_8.apk
|
||||
* target/davdroid_0_5_8_1.apk
|
||||
* target/davdroid_0_5_9.apk
|
||||
* target/davdroid_0_5_alpha.apk
|
||||
* target/davdroid_0_6.apk
|
||||
* target/davdroid_0_6_1.apk
|
||||
* target/davdroid_0_6_2.apk
|
||||
* target/davdroid_0_6_3.apk
|
||||
* target/davdroid_0_6_4.apk
|
||||
* target/davdroid_0_6_5.apk
|
||||
* target/davdroid_0_6_6.apk
|
||||
* target/davdroid_0_6_7.apk
|
||||
* target/davdroid_0_6_7_1.apk
|
||||
* target/davdroid_0_6_8.apk
|
||||
* test/
|
||||
* test/.classpath
|
||||
* test/.project
|
||||
* test/.settings/
|
||||
* test/.settings/org.eclipse.jdt.core.prefs
|
||||
* test/assets/
|
||||
* test/assets/all-day-0sec.ics
|
||||
* test/assets/all-day-10days.ics
|
||||
* test/assets/all-day-1day.ics
|
||||
* test/assets/event-on-that-day.ics
|
||||
* test/assets/impp.vcf
|
||||
* test/assets/invalid-unknown-properties.vcf
|
||||
* test/assets/reference.vcf
|
||||
* test/assets/test.random
|
||||
* test/assets/vcard3-sample1.vcf
|
||||
* test/assets/vienna-evolution.ics
|
||||
* test/bin/
|
||||
* test/bin/AndroidManifest.xml
|
||||
* test/bin/classes.dex
|
||||
* test/bin/classes/
|
||||
* test/bin/classes/at/
|
||||
* test/bin/classes/at/bitfire/
|
||||
* test/bin/classes/at/bitfire/davdroid/
|
||||
* test/bin/classes/at/bitfire/davdroid/resource/
|
||||
* test/bin/classes/at/bitfire/davdroid/resource/test/
|
||||
* test/bin/classes/at/bitfire/davdroid/resource/test/ContactTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/resource/test/EventTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/resource/test/LocalCalendarTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/syncadapter/
|
||||
* test/bin/classes/at/bitfire/davdroid/syncadapter/DavResourceFinderTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/
|
||||
* test/bin/classes/at/bitfire/davdroid/test/ArrayUtilsTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/BuildConfig.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/Constants.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/ContactTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/R$attr.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/R$drawable.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/R$string.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/R.class
|
||||
* test/bin/classes/at/bitfire/davdroid/test/URLUtilsTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/webdav/
|
||||
* test/bin/classes/at/bitfire/davdroid/webdav/DavRedirectStrategyTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/webdav/TlsSniSocketFactoryTest.class
|
||||
* test/bin/classes/at/bitfire/davdroid/webdav/WebDavResourceTest.class
|
||||
* test/bin/davdroidTest.apk
|
||||
* test/bin/res/
|
||||
* test/bin/res/crunch/
|
||||
* test/bin/res/crunch/drawable-hdpi/
|
||||
* test/bin/res/crunch/drawable-hdpi/ic_launcher.png
|
||||
* test/bin/res/crunch/drawable-ldpi/
|
||||
* test/bin/res/crunch/drawable-ldpi/ic_launcher.png
|
||||
* test/bin/res/crunch/drawable-mdpi/
|
||||
* test/bin/res/crunch/drawable-mdpi/ic_launcher.png
|
||||
* test/bin/res/crunch/drawable-xhdpi/
|
||||
* test/bin/res/crunch/drawable-xhdpi/ic_launcher.png
|
||||
* test/bin/resources.ap_
|
||||
* test/gen/
|
||||
* test/gen/at/
|
||||
* test/gen/at/bitfire/
|
||||
* test/gen/at/bitfire/davdroid/
|
||||
* test/gen/at/bitfire/davdroid/test/
|
||||
* test/gen/at/bitfire/davdroid/test/BuildConfig.java
|
||||
* test/gen/at/bitfire/davdroid/test/R.java
|
||||
* test/proguard-project.txt
|
||||
* test/project.properties
|
||||
* test/robohydra/
|
||||
* test/robohydra/.gitignore
|
||||
* test/robohydra/davdroid.conf
|
||||
* test/robohydra/node_modules/
|
||||
* test/robohydra/node_modules/.bin/
|
||||
* test/robohydra/node_modules/robohydra/
|
||||
* test/robohydra/node_modules/robohydra/.npmignore
|
||||
* test/robohydra/node_modules/robohydra/ChangeLog
|
||||
* test/robohydra/node_modules/robohydra/LICENSE
|
||||
* test/robohydra/node_modules/robohydra/README.md
|
||||
* test/robohydra/node_modules/robohydra/bin/
|
||||
* test/robohydra/node_modules/robohydra/bin/robohydra.js
|
||||
* test/robohydra/node_modules/robohydra/bin/robohydra.js
|
||||
* test/robohydra/node_modules/robohydra/examples/
|
||||
* test/robohydra/node_modules/robohydra/examples/README.md
|
||||
* test/robohydra/node_modules/robohydra/examples/custom-types.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/delayed-proxy.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/empty-https.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/empty.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/external-scenarios.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/just-scenarios.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/basic-scenario/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/basic-scenario/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/custom-types/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/custom-types/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/delayed-proxy/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/delayed-proxy/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/fixtures/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/fixtures/etc/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/fixtures/etc/passwd
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/fixtures/tada.png
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/external-scenarios/scenarios/externalScenarioExample.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/request-finder/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/request-finder/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-filtering/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-filtering/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-i18n/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-i18n/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-streaming/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-streaming/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-summoner/
|
||||
* test/robohydra/node_modules/robohydra/examples/plugins/simple-summoner/index.js
|
||||
* test/robohydra/node_modules/robohydra/examples/request-finder.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-filtering.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n/
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n/foo.en.html
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n/foo.es.html
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n/foo.html
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-i18n/just-french.fr.html
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-streaming.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/simple-summoner.conf
|
||||
* test/robohydra/node_modules/robohydra/examples/test-cert.pem
|
||||
* test/robohydra/node_modules/robohydra/examples/test-key.pem
|
||||
* test/robohydra/node_modules/robohydra/lib/
|
||||
* test/robohydra/node_modules/robohydra/lib/exceptions.js
|
||||
* test/robohydra/node_modules/robohydra/lib/heads.js
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/admin.js
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/css/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/css/lipstick.css
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/css/robohydra.css
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/favicon.ico
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/img/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/img/glyphicons-halflings-white.png
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/img/glyphicons-halflings.png
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/img/robohydra.png
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/js/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/static/js/robohydra.js
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/_header.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/_scenario-result.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/index.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/layout-main.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/scenario-instructions.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/plugins/templates/scenarios.ejs
|
||||
* test/robohydra/node_modules/robohydra/lib/robohydra.js
|
||||
* test/robohydra/node_modules/robohydra/lib/robohydrasummoner.js
|
||||
* test/robohydra/node_modules/robohydra/lib/utils.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/.bin/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/commander/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/commander/Readme.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/commander/index.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/commander/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/.gitmodules
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/.npmignore
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/.travis.yml
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/History.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/Makefile
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/Readme.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/benchmark.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/ejs.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/ejs.min.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/client.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/functions.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/functions.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/list.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/examples/list.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/index.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/lib/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/lib/ejs.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/lib/filters.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/lib/utils.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/support/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/support/compile.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/ejs.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/backslash.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/backslash.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/comments.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/comments.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/double-quote.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/double-quote.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/error.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/error.out
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/fail.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/include.css.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/include.css.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/include.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/include.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/includes/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/includes/menu-item.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/includes/menu/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/includes/menu/item.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/menu.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/menu.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/messed.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/messed.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/newlines.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/newlines.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/no.newlines.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/no.newlines.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/para.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/pet.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/single-quote.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/single-quote.html
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/style.css
|
||||
* test/robohydra/node_modules/robohydra/node_modules/ejs/test/fixtures/user.ejs
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/.npmignore
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/.travis.yml
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/Changes.markdown
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/README.markdown
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/bin/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/bin/md2html.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/bin/md2html.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/lib/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/lib/index.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/lib/markdown.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/markdown-js.sublime-project
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/markdown-js.sublime-workspace
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/.bin/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/.npmignore
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/LICENSE
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/README.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/bin/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/bin/nopt.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/bin/nopt.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/examples/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/examples/my-program.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/lib/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/lib/nopt.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/LICENSE
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/README.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/lib/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/lib/abbrev.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/node_modules/abbrev/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/node_modules/nopt/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/markdown/seed.yml
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/LICENSE
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/README.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/mime.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/package.json
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/test.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/types/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/types/mime.types
|
||||
* test/robohydra/node_modules/robohydra/node_modules/mime/types/node.types
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/.gitmodules
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/.npmignore
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/Readme.md
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/index.js
|
||||
* test/robohydra/node_modules/robohydra/node_modules/qs/package.json
|
||||
* test/robohydra/node_modules/robohydra/package.json
|
||||
* test/robohydra/node_modules/robohydra/plugins/
|
||||
* test/robohydra/node_modules/robohydra/plugins/README.md
|
||||
* test/robohydra/node_modules/robohydra/plugins/frontend-dev-proxy/
|
||||
* test/robohydra/node_modules/robohydra/plugins/frontend-dev-proxy/index.js
|
||||
* test/robohydra/node_modules/robohydra/plugins/logger/
|
||||
* test/robohydra/node_modules/robohydra/plugins/logger/index.js
|
||||
* test/robohydra/node_modules/robohydra/plugins/no-caching/
|
||||
* test/robohydra/node_modules/robohydra/plugins/no-caching/index.js
|
||||
* test/robohydra/node_modules/robohydra/plugins/replayer/
|
||||
* test/robohydra/node_modules/robohydra/plugins/replayer/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/
|
||||
* test/robohydra/node_modules/robohydra/test/adminhead-test.js
|
||||
* test/robohydra/node_modules/robohydra/test/buster.js
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/fixtures/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/fixtures/basic.txt
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/fixtures/etc/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/fixtures/etc/passwd
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/fixtures/non-ascii.txt
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/tests/
|
||||
* test/robohydra/node_modules/robohydra/test/fixture-module-fs/usr/local/share/robohydra/plugins/simple-fixtures/tests/fixtureLoader.js
|
||||
* test/robohydra/node_modules/robohydra/test/head-test.js
|
||||
* test/robohydra/node_modules/robohydra/test/helpers.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/project/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/project/robohydra-plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/project/robohydra-plugins/definedtwice/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/project/robohydra-plugins/definedtwice/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/plugins/customloadpath/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/plugins/customloadpath/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/plugins/definedtwice/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/opt/robohydra/plugins/definedtwice/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/share/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/share/robohydra/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/share/robohydra/plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/share/robohydra/plugins/definedtwice/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/local/share/robohydra/plugins/definedtwice/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/definedtwice/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/definedtwice/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/right-robohydra-test/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/right-robohydra-test/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/simple-authenticator/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/simple-authenticator/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/simple/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/simple/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/url-query-authenticator/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/url-query-authenticator/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/wrong-fixed-picker/
|
||||
* test/robohydra/node_modules/robohydra/test/plugin-fs/usr/share/robohydra/plugins/wrong-fixed-picker/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-conflicting-names/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-conflicting-names/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-conflicting-names/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-conflicting-names/scenarios/duplicateTestName.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-headless/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-headless/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-headless/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-headless/scenarios/firstTest.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-headless/scenarios/secondTest.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-mixed/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-mixed/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-mixed/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-mixed/scenarios/external.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-simple/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-simple/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-simple/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/external-scenarios-simple/scenarios/firstScenario.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/fixtures/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/fixtures/basic.txt
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/fixtures/etc/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/fixtures/etc/passwd
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/fixtures/non-ascii.txt
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/index.js
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/scenarios/
|
||||
* test/robohydra/node_modules/robohydra/test/plugins/simple-fixtures/scenarios/fixtureLoader.js
|
||||
* test/robohydra/node_modules/robohydra/test/robohydra-test.js
|
||||
* test/robohydra/node_modules/robohydra/test/robohydrasummoner-test.js
|
||||
* test/robohydra/plugins/
|
||||
* test/robohydra/plugins/assets/
|
||||
* test/robohydra/plugins/assets/index.js
|
||||
* test/robohydra/plugins/dav-invalid/
|
||||
* test/robohydra/plugins/dav-invalid/index.js
|
||||
* test/robohydra/plugins/dav/
|
||||
* test/robohydra/plugins/dav/index.js
|
||||
* test/robohydra/plugins/headdav.js
|
||||
* test/robohydra/plugins/redirect/
|
||||
* test/robohydra/plugins/redirect/index.js
|
||||
* test/robohydra/plugins/simple.js
|
||||
* test/robohydra/run.sh
|
||||
|
||||
Moved Files:
|
||||
------------
|
||||
Android Gradle projects use a different directory structure than ADT
|
||||
Eclipse projects. Here's how the projects were restructured:
|
||||
|
||||
* AndroidManifest.xml => app/src/main/AndroidManifest.xml
|
||||
* assets/ => app/src/main/assets/
|
||||
* libs/backport-util-concurrent-3.1.jar => app/libs/backport-util-concurrent-3.1.jar
|
||||
* libs/commons-codec-1.8.jar => app/libs/commons-codec-1.8.jar
|
||||
* libs/commons-io-2.4.jar => app/libs/commons-io-2.4.jar
|
||||
* libs/commons-lang-2.6.jar => app/libs/commons-lang-2.6.jar
|
||||
* libs/commons-logging-1.1.3.jar => app/libs/commons-logging-1.1.3.jar
|
||||
* libs/ez-vcard-0.9.6.jar => app/libs/ez-vcard-0.9.6.jar
|
||||
* libs/httpclientandroidlib-1.2.1.jar => app/libs/httpclientandroidlib-1.2.1.jar
|
||||
* libs/ical4j-1.0.6-davdroid141027.jar => app/libs/ical4j-1.0.6-davdroid141027.jar
|
||||
* libs/org.xbill.dns_2.1.6.jar => app/libs/org.xbill.dns_2.1.6.jar
|
||||
* libs/simple-xml-2.7.jar => app/libs/simple-xml-2.7.jar
|
||||
* lint.xml => app/lint.xml
|
||||
* res/ => app/src/main/res/
|
||||
* src/ => app/src/main/java/
|
||||
* test/res/ => app/src/androidTest/res/
|
||||
* test/src/ => app/src/androidTest/java/
|
||||
|
||||
Next Steps:
|
||||
-----------
|
||||
You can now build the project. The Gradle project needs network
|
||||
connectivity to download dependencies.
|
||||
|
||||
Bugs:
|
||||
-----
|
||||
If for some reason your project does not build, and you determine that
|
||||
it is due to a bug or limitation of the Eclipse to Gradle importer,
|
||||
please file a bug at http://b.android.com with category
|
||||
Component-Tools.
|
||||
|
||||
(This import summary is for your information only, and can be deleted
|
||||
after import once you are satisfied with the results.)
|
Loading…
Reference in New Issue
Block a user