mirror of
https://github.com/etesync/android
synced 2025-05-21 16:28:52 +00:00
Version bump to 0.5.14-alpha
* added some documentation (JavaDoc) * CTags are not cached in LocalCollection anymore * added CTag test for LocalCalendar
This commit is contained in:
parent
3cab688782
commit
b7cd8baa05
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
# generated files
|
# generated files
|
||||||
bin/
|
bin/
|
||||||
|
doc/javadoc/
|
||||||
gen/
|
gen/
|
||||||
|
|
||||||
# Local configuration file (sdk path, etc)
|
# Local configuration file (sdk path, etc)
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="at.bitfire.davdroid"
|
package="at.bitfire.davdroid"
|
||||||
android:versionCode="36"
|
android:versionCode="37"
|
||||||
android:versionName="0.5.13-alpha" android:installLocation="internalOnly">
|
android:versionName="0.5.14-alpha" android:installLocation="internalOnly">
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
android:minSdkVersion="14"
|
android:minSdkVersion="14"
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid;
|
package at.bitfire.davdroid;
|
||||||
|
|
||||||
|
@ -1,18 +1,15 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid;
|
package at.bitfire.davdroid;
|
||||||
|
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public static final String
|
public static final String
|
||||||
APP_VERSION = "0.5.13-alpha",
|
APP_VERSION = "0.5.14-alpha",
|
||||||
ACCOUNT_TYPE = "bitfire.at.davdroid",
|
ACCOUNT_TYPE = "bitfire.at.davdroid",
|
||||||
WEB_URL_HELP = "http://davdroid.bitfire.at/configuration?pk_campaign=davdroid-app",
|
WEB_URL_HELP = "http://davdroid.bitfire.at/configuration?pk_campaign=davdroid-app",
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid;
|
package at.bitfire.davdroid;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid;
|
package at.bitfire.davdroid;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2013 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
@ -53,6 +53,10 @@ import ezvcard.property.Uid;
|
|||||||
import ezvcard.property.Url;
|
import ezvcard.property.Url;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a contact. Locally, this is a Contact in the Android
|
||||||
|
* device; remote, this is a VCard.
|
||||||
|
*/
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
public class Contact extends Resource {
|
public class Contact extends Resource {
|
||||||
private final static String TAG = "davdroid.Contact";
|
private final static String TAG = "davdroid.Contact";
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
public class InvalidResourceException extends Exception {
|
public class InvalidResourceException extends Exception {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2013 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
@ -65,11 +62,16 @@ import android.provider.ContactsContract;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import at.bitfire.davdroid.syncadapter.ServerInfo;
|
import at.bitfire.davdroid.syncadapter.ServerInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a locally stored calendar, containing Events.
|
||||||
|
* Communicates with the Android Contacts Provider which uses an SQLite
|
||||||
|
* database to store the contacts.
|
||||||
|
*/
|
||||||
public class LocalCalendar extends LocalCollection<Event> {
|
public class LocalCalendar extends LocalCollection<Event> {
|
||||||
private static final String TAG = "davdroid.LocalCalendar";
|
private static final String TAG = "davdroid.LocalCalendar";
|
||||||
|
|
||||||
@Getter protected long id;
|
@Getter protected long id;
|
||||||
@Getter protected String url, cTag;
|
@Getter protected String url;
|
||||||
|
|
||||||
protected static String COLLECTION_COLUMN_CTAG = Calendars.CAL_SYNC1;
|
protected static String COLLECTION_COLUMN_CTAG = Calendars.CAL_SYNC1;
|
||||||
|
|
||||||
@ -149,30 +151,47 @@ public class LocalCalendar extends LocalCollection<Event> {
|
|||||||
|
|
||||||
public static LocalCalendar[] findAll(Account account, ContentProviderClient providerClient) throws RemoteException {
|
public static LocalCalendar[] findAll(Account account, ContentProviderClient providerClient) throws RemoteException {
|
||||||
@Cleanup Cursor cursor = providerClient.query(calendarsURI(account),
|
@Cleanup Cursor cursor = providerClient.query(calendarsURI(account),
|
||||||
new String[] { Calendars._ID, Calendars.NAME, COLLECTION_COLUMN_CTAG },
|
new String[] { Calendars._ID, Calendars.NAME },
|
||||||
Calendars.DELETED + "=0 AND " + Calendars.SYNC_EVENTS + "=1", null, null);
|
Calendars.DELETED + "=0 AND " + Calendars.SYNC_EVENTS + "=1", null, null);
|
||||||
|
|
||||||
LinkedList<LocalCalendar> calendars = new LinkedList<LocalCalendar>();
|
LinkedList<LocalCalendar> calendars = new LinkedList<LocalCalendar>();
|
||||||
while (cursor != null && cursor.moveToNext())
|
while (cursor != null && cursor.moveToNext())
|
||||||
calendars.add(new LocalCalendar(account, providerClient, cursor.getInt(0), cursor.getString(1), cursor.getString(2)));
|
calendars.add(new LocalCalendar(account, providerClient, cursor.getInt(0), cursor.getString(1)));
|
||||||
return calendars.toArray(new LocalCalendar[0]);
|
return calendars.toArray(new LocalCalendar[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalCalendar(Account account, ContentProviderClient providerClient, long id, String url, String cTag) throws RemoteException {
|
public LocalCalendar(Account account, ContentProviderClient providerClient, long id, String url) throws RemoteException {
|
||||||
super(account, providerClient);
|
super(account, providerClient);
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.url = url;
|
this.url = url;
|
||||||
this.cTag = cTag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* collection operations */
|
/* collection operations */
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCTag(String cTag) {
|
public String getCTag() throws LocalStorageException {
|
||||||
pendingOperations.add(ContentProviderOperation.newUpdate(ContentUris.withAppendedId(calendarsURI(), id))
|
try {
|
||||||
.withValue(COLLECTION_COLUMN_CTAG, cTag)
|
@Cleanup Cursor c = providerClient.query(ContentUris.withAppendedId(calendarsURI(), id),
|
||||||
.build());
|
new String[] { COLLECTION_COLUMN_CTAG }, null, null, null);
|
||||||
|
if (c.moveToFirst()) {
|
||||||
|
return c.getString(0);
|
||||||
|
} else
|
||||||
|
throw new LocalStorageException("Couldn't query calendar CTag");
|
||||||
|
} catch(RemoteException e) {
|
||||||
|
throw new LocalStorageException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCTag(String cTag) throws LocalStorageException {
|
||||||
|
ContentValues values = new ContentValues(1);
|
||||||
|
values.put(COLLECTION_COLUMN_CTAG, cTag);
|
||||||
|
try {
|
||||||
|
providerClient.update(ContentUris.withAppendedId(calendarsURI(), id), values, null, null);
|
||||||
|
} catch(RemoteException e) {
|
||||||
|
throw new LocalStorageException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
@ -26,6 +23,13 @@ import android.os.RemoteException;
|
|||||||
import android.provider.CalendarContract;
|
import android.provider.CalendarContract;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a locally-stored synchronizable collection (for instance, the
|
||||||
|
* address book or a calendar). Manages a CTag that stores the last known
|
||||||
|
* remote CTag (the remote CTag changes whenever something in the remote collection changes).
|
||||||
|
*
|
||||||
|
* @param <T> Subtype of Resource that can be stored in the collection
|
||||||
|
*/
|
||||||
public abstract class LocalCollection<T extends Resource> {
|
public abstract class LocalCollection<T extends Resource> {
|
||||||
private static final String TAG = "davdroid.LocalCollection";
|
private static final String TAG = "davdroid.LocalCollection";
|
||||||
|
|
||||||
@ -36,19 +40,30 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
|
|
||||||
// database fields
|
// database fields
|
||||||
|
|
||||||
|
/** base Uri of the collection's entries (for instance, Events.CONTENT_URI);
|
||||||
|
* apply syncAdapterURI() before returning a value */
|
||||||
abstract protected Uri entriesURI();
|
abstract protected Uri entriesURI();
|
||||||
|
|
||||||
|
/** column name of the type of the account the entry belongs to */
|
||||||
abstract protected String entryColumnAccountType();
|
abstract protected String entryColumnAccountType();
|
||||||
|
/** column name of the name of the account the entry belongs to */
|
||||||
abstract protected String entryColumnAccountName();
|
abstract protected String entryColumnAccountName();
|
||||||
|
|
||||||
|
/** column name of the collection ID the entry belongs to */
|
||||||
abstract protected String entryColumnParentID();
|
abstract protected String entryColumnParentID();
|
||||||
|
/** column name of an entry's ID */
|
||||||
abstract protected String entryColumnID();
|
abstract protected String entryColumnID();
|
||||||
|
/** column name of an entry's file name on the WebDAV server */
|
||||||
abstract protected String entryColumnRemoteName();
|
abstract protected String entryColumnRemoteName();
|
||||||
|
/** column name of an entry's last ETag on the WebDAV server; null if entry hasn't been uploaded yet */
|
||||||
abstract protected String entryColumnETag();
|
abstract protected String entryColumnETag();
|
||||||
|
|
||||||
|
/** column name of an entry's "dirty" flag (managed by content provider) */
|
||||||
abstract protected String entryColumnDirty();
|
abstract protected String entryColumnDirty();
|
||||||
|
/** column name of an entry's "deleted" flag (managed by content provider) */
|
||||||
abstract protected String entryColumnDeleted();
|
abstract protected String entryColumnDeleted();
|
||||||
|
|
||||||
|
/** column name of an entry's UID */
|
||||||
abstract protected String entryColumnUID();
|
abstract protected String entryColumnUID();
|
||||||
|
|
||||||
|
|
||||||
@ -60,15 +75,24 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
|
|
||||||
// collection operations
|
// collection operations
|
||||||
|
|
||||||
|
/** gets the ID if the collection (for instance, ID of the Android calendar) */
|
||||||
abstract public long getId();
|
abstract public long getId();
|
||||||
abstract public String getCTag();
|
/** gets the CTag of the collection */
|
||||||
abstract public void setCTag(String cTag);
|
abstract public String getCTag() throws LocalStorageException;
|
||||||
|
/** sets the CTag of the collection */
|
||||||
|
abstract public void setCTag(String cTag) throws LocalStorageException;
|
||||||
|
|
||||||
|
|
||||||
// content provider (= database) querying
|
// content provider (= database) querying
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds new resources (resources which haven't been uploaded yet).
|
||||||
|
* New resources are 1) dirty, and 2) don't have an ETag yet.
|
||||||
|
*
|
||||||
|
* @return IDs of new resources
|
||||||
|
* @throws LocalStorageException when the content provider couldn't be queried
|
||||||
|
*/
|
||||||
public long[] findNew() throws LocalStorageException {
|
public long[] findNew() throws LocalStorageException {
|
||||||
// new records are 1) dirty, and 2) don't have an ETag yet
|
|
||||||
String where = entryColumnDirty() + "=1 AND " + entryColumnETag() + " IS NULL";
|
String where = entryColumnDirty() + "=1 AND " + entryColumnETag() + " IS NULL";
|
||||||
if (entryColumnParentID() != null)
|
if (entryColumnParentID() != null)
|
||||||
where += " AND " + entryColumnParentID() + "=" + String.valueOf(getId());
|
where += " AND " + entryColumnParentID() + "=" + String.valueOf(getId());
|
||||||
@ -100,8 +124,14 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds updated resources (resources which have already been uploaded, but have changed locally).
|
||||||
|
* Updated resources are 1) dirty, and 2) already have an ETag.
|
||||||
|
*
|
||||||
|
* @return IDs of updated resources
|
||||||
|
* @throws LocalStorageException when the content provider couldn't be queried
|
||||||
|
*/
|
||||||
public long[] findUpdated() throws LocalStorageException {
|
public long[] findUpdated() throws LocalStorageException {
|
||||||
// updated records are 1) dirty, and 2) already have an ETag
|
|
||||||
String where = entryColumnDirty() + "=1 AND " + entryColumnETag() + " IS NOT NULL";
|
String where = entryColumnDirty() + "=1 AND " + entryColumnETag() + " IS NOT NULL";
|
||||||
if (entryColumnParentID() != null)
|
if (entryColumnParentID() != null)
|
||||||
where += " AND " + entryColumnParentID() + "=" + String.valueOf(getId());
|
where += " AND " + entryColumnParentID() + "=" + String.valueOf(getId());
|
||||||
@ -121,6 +151,13 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds deleted resources (resources which have been marked for deletion).
|
||||||
|
* Deleted resources have the "deleted" flag set.
|
||||||
|
*
|
||||||
|
* @return IDs of deleted resources
|
||||||
|
* @throws LocalStorageException when the content provider couldn't be queried
|
||||||
|
*/
|
||||||
public long[] findDeleted() throws LocalStorageException {
|
public long[] findDeleted() throws LocalStorageException {
|
||||||
String where = entryColumnDeleted() + "=1";
|
String where = entryColumnDeleted() + "=1";
|
||||||
if (entryColumnParentID() != null)
|
if (entryColumnParentID() != null)
|
||||||
@ -141,6 +178,15 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a specific resource by ID.
|
||||||
|
* @param localID ID of the resource
|
||||||
|
* @param populate true: populates all data fields (for instance, contact or event details);
|
||||||
|
* false: only remote file name and ETag are populated
|
||||||
|
* @return resource with either ID/remote file/name/ETag or all fields populated
|
||||||
|
* @throws RecordNotFoundException when the resource couldn't be found
|
||||||
|
* @throws LocalStorageException when the content provider couldn't be queried
|
||||||
|
*/
|
||||||
public T findById(long localID, boolean populate) throws LocalStorageException {
|
public T findById(long localID, boolean populate) throws LocalStorageException {
|
||||||
try {
|
try {
|
||||||
@Cleanup Cursor cursor = providerClient.query(ContentUris.withAppendedId(entriesURI(), localID),
|
@Cleanup Cursor cursor = providerClient.query(ContentUris.withAppendedId(entriesURI(), localID),
|
||||||
@ -157,6 +203,15 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a specific resource by remote file name.
|
||||||
|
* @param localID remote file name of the resource
|
||||||
|
* @param populate true: populates all data fields (for instance, contact or event details);
|
||||||
|
* false: only remote file name and ETag are populated
|
||||||
|
* @return resource with either ID/remote file/name/ETag or all fields populated
|
||||||
|
* @throws RecordNotFoundException when the resource couldn't be found
|
||||||
|
* @throws LocalStorageException when the content provider couldn't be queried
|
||||||
|
*/
|
||||||
public T findByRemoteName(String remoteName, boolean populate) throws LocalStorageException {
|
public T findByRemoteName(String remoteName, boolean populate) throws LocalStorageException {
|
||||||
try {
|
try {
|
||||||
@Cleanup Cursor cursor = providerClient.query(entriesURI(),
|
@Cleanup Cursor cursor = providerClient.query(entriesURI(),
|
||||||
@ -174,19 +229,21 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** populates all data fields from the content provider */
|
||||||
public abstract void populate(Resource record) throws LocalStorageException;
|
public abstract void populate(Resource record) throws LocalStorageException;
|
||||||
|
|
||||||
protected void queueOperation(Builder builder) {
|
|
||||||
if (builder != null)
|
|
||||||
pendingOperations.add(builder.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// create/update/delete
|
// create/update/delete
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new resource object in memory. No content provider operations involved.
|
||||||
|
* @param localID the ID of the resource
|
||||||
|
* @param resourceName the (remote) file name of the resource
|
||||||
|
* @param ETag of the resource
|
||||||
|
* @return the new resource object */
|
||||||
abstract public T newResource(long localID, String resourceName, String eTag);
|
abstract public T newResource(long localID, String resourceName, String eTag);
|
||||||
|
|
||||||
|
/** Enqueues adding the resource (including all data) to the local collection. Requires commit(). */
|
||||||
public void add(Resource resource) {
|
public void add(Resource resource) {
|
||||||
int idx = pendingOperations.size();
|
int idx = pendingOperations.size();
|
||||||
pendingOperations.add(
|
pendingOperations.add(
|
||||||
@ -197,6 +254,8 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
addDataRows(resource, -1, idx);
|
addDataRows(resource, -1, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Enqueues updating an existing resource in the local collection. The resource will be found by
|
||||||
|
* the remote file name and all data will be updated. Requires commit(). */
|
||||||
public void updateByRemoteName(Resource remoteResource) throws LocalStorageException {
|
public void updateByRemoteName(Resource remoteResource) throws LocalStorageException {
|
||||||
T localResource = findByRemoteName(remoteResource.getName(), false);
|
T localResource = findByRemoteName(remoteResource.getName(), false);
|
||||||
pendingOperations.add(
|
pendingOperations.add(
|
||||||
@ -209,6 +268,7 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
addDataRows(remoteResource, localResource.getLocalID(), -1);
|
addDataRows(remoteResource, localResource.getLocalID(), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Enqueues deleting a resource from the local collection. Requires commit(). */
|
||||||
public void delete(Resource resource) {
|
public void delete(Resource resource) {
|
||||||
pendingOperations.add(ContentProviderOperation
|
pendingOperations.add(ContentProviderOperation
|
||||||
.newDelete(ContentUris.withAppendedId(entriesURI(), resource.getLocalID()))
|
.newDelete(ContentUris.withAppendedId(entriesURI(), resource.getLocalID()))
|
||||||
@ -216,8 +276,13 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enqueues deleting all resources except the give ones from the local collection. Requires commit().
|
||||||
|
* @param remoteResources resources with these remote file names will be kept
|
||||||
|
*/
|
||||||
public abstract void deleteAllExceptRemoteNames(Resource[] remoteResources);
|
public abstract void deleteAllExceptRemoteNames(Resource[] remoteResources);
|
||||||
|
|
||||||
|
/** Updates the locally-known ETag of a resource. */
|
||||||
public void updateETag(Resource res, String eTag) throws LocalStorageException {
|
public void updateETag(Resource res, String eTag) throws LocalStorageException {
|
||||||
Log.d(TAG, "Setting ETag of local resource " + res + " to " + eTag);
|
Log.d(TAG, "Setting ETag of local resource " + res + " to " + eTag);
|
||||||
|
|
||||||
@ -230,6 +295,7 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Enqueues removing the dirty flag from a locally-stored resource. Requires commit(). */
|
||||||
public void clearDirty(Resource resource) {
|
public void clearDirty(Resource resource) {
|
||||||
pendingOperations.add(ContentProviderOperation
|
pendingOperations.add(ContentProviderOperation
|
||||||
.newUpdate(ContentUris.withAppendedId(entriesURI(), resource.getLocalID()))
|
.newUpdate(ContentUris.withAppendedId(entriesURI(), resource.getLocalID()))
|
||||||
@ -237,6 +303,7 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Commits enqueued operations to the content provider (for batch operations). */
|
||||||
public void commit() throws LocalStorageException {
|
public void commit() throws LocalStorageException {
|
||||||
if (!pendingOperations.isEmpty())
|
if (!pendingOperations.isEmpty())
|
||||||
try {
|
try {
|
||||||
@ -253,6 +320,12 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
|
|
||||||
// helpers
|
// helpers
|
||||||
|
|
||||||
|
protected void queueOperation(Builder builder) {
|
||||||
|
if (builder != null)
|
||||||
|
pendingOperations.add(builder.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Appends account type, name and CALLER_IS_SYNCADAPTER to an Uri. */
|
||||||
protected Uri syncAdapterURI(Uri baseURI) {
|
protected Uri syncAdapterURI(Uri baseURI) {
|
||||||
return baseURI.buildUpon()
|
return baseURI.buildUpon()
|
||||||
.appendQueryParameter(entryColumnAccountType(), account.type)
|
.appendQueryParameter(entryColumnAccountType(), account.type)
|
||||||
@ -272,8 +345,17 @@ public abstract class LocalCollection<T extends Resource> {
|
|||||||
|
|
||||||
// content builders
|
// content builders
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the main entry (for instance, a ContactsContract.RawContacts row) from a resource.
|
||||||
|
* The entry is built for insertion to the location identified by entriesURI().
|
||||||
|
*
|
||||||
|
* @param builder Builder to be extended by all resource data that can be stored without extra data rows.
|
||||||
|
*/
|
||||||
protected abstract Builder buildEntry(Builder builder, Resource resource);
|
protected abstract Builder buildEntry(Builder builder, Resource resource);
|
||||||
|
|
||||||
|
/** Enqueues adding extra data rows of the resource to the local collection. */
|
||||||
protected abstract void addDataRows(Resource resource, long localID, int backrefIdx);
|
protected abstract void addDataRows(Resource resource, long localID, int backrefIdx);
|
||||||
|
|
||||||
|
/** Enqueues removing all extra data rows of the resource from the local collection. */
|
||||||
protected abstract void removeDataRows(Resource resource);
|
protected abstract void removeDataRows(Resource resource);
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thrown when a local record (for instance, Contact with ID 12345) should be read
|
||||||
|
* but could not be found.
|
||||||
|
*/
|
||||||
public class RecordNotFoundException extends LocalStorageException {
|
public class RecordNotFoundException extends LocalStorageException {
|
||||||
private static final long serialVersionUID = 4961024282198632578L;
|
private static final long serialVersionUID = 4961024282198632578L;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
@ -32,6 +29,12 @@ import at.bitfire.davdroid.webdav.WebDavResource;
|
|||||||
import at.bitfire.davdroid.webdav.WebDavResource.PutMode;
|
import at.bitfire.davdroid.webdav.WebDavResource.PutMode;
|
||||||
import ch.boye.httpclientandroidlib.impl.client.CloseableHttpClient;
|
import ch.boye.httpclientandroidlib.impl.client.CloseableHttpClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a remotely stored synchronizable collection (collection as in
|
||||||
|
* WebDAV terminology).
|
||||||
|
*
|
||||||
|
* @param <T> Subtype of Resource that can be stored in the collection
|
||||||
|
*/
|
||||||
public abstract class RemoteCollection<T extends Resource> {
|
public abstract class RemoteCollection<T extends Resource> {
|
||||||
private static final String TAG = "davdroid.RemoteCollection";
|
private static final String TAG = "davdroid.RemoteCollection";
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource;
|
package at.bitfire.davdroid.resource;
|
||||||
|
|
||||||
@ -18,6 +15,10 @@ import lombok.Getter;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a resource that can be contained in a LocalCollection or RemoteCollection
|
||||||
|
* for synchronization by WebDAV.
|
||||||
|
*/
|
||||||
@ToString
|
@ToString
|
||||||
public abstract class Resource {
|
public abstract class Resource {
|
||||||
@Getter @Setter protected String name, ETag;
|
@Getter @Setter protected String name, ETag;
|
||||||
@ -35,9 +36,11 @@ public abstract class Resource {
|
|||||||
this.localID = localID;
|
this.localID = localID;
|
||||||
}
|
}
|
||||||
|
|
||||||
// sets UID and resource name (= remote file name)
|
/** initializes UID and remote file name (required for first upload) */
|
||||||
public abstract void initialize();
|
public abstract void initialize();
|
||||||
|
|
||||||
|
/** fills the resource data from an input stream (for instance, .vcf file for Contact) */
|
||||||
public abstract void parseEntity(InputStream entity) throws IOException, InvalidResourceException;
|
public abstract void parseEntity(InputStream entity) throws IOException, InvalidResourceException;
|
||||||
|
/** writes the resource data to an output stream (for instance, .vcf file for Contact) */
|
||||||
public abstract ByteArrayOutputStream toEntity() throws IOException;
|
public abstract ByteArrayOutputStream toEntity() throws IOException;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2013 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
@ -95,7 +95,6 @@ public class SyncManager {
|
|||||||
// update collection CTag
|
// update collection CTag
|
||||||
Log.i(TAG, "Sync complete, fetching new CTag");
|
Log.i(TAG, "Sync complete, fetching new CTag");
|
||||||
local.setCTag(remote.getCTag());
|
local.setCTag(remote.getCTag());
|
||||||
local.commit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.syncadapter;
|
package at.bitfire.davdroid.syncadapter;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2014 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
* http://www.gnu.org/licenses/gpl.html
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
*
|
|
||||||
* Contributors:
|
|
||||||
* Richard Hirner (bitfire web engineering) - initial API and implementation
|
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav;
|
package at.bitfire.davdroid.webdav;
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource.test;
|
package at.bitfire.davdroid.resource.test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2013 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.resource.test;
|
package at.bitfire.davdroid.resource.test;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@ -34,9 +41,37 @@ public class LocalCalendarTest extends InstrumentationTestCase {
|
|||||||
LocalCalendar testCalendar;
|
LocalCalendar testCalendar;
|
||||||
|
|
||||||
|
|
||||||
|
// helpers
|
||||||
|
|
||||||
|
private Uri syncAdapterURI(Uri uri) {
|
||||||
|
return uri.buildUpon()
|
||||||
|
.appendQueryParameter(Calendars.ACCOUNT_NAME, calendarName)
|
||||||
|
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
|
||||||
|
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true").
|
||||||
|
build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private long insertNewEvent() throws LocalStorageException, RemoteException {
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
values.put(Events.CALENDAR_ID, testCalendar.getId());
|
||||||
|
values.put(Events.TITLE, "Test Event");
|
||||||
|
values.put(Events.ALL_DAY, 0);
|
||||||
|
values.put(Events.DTSTART, Calendar.getInstance().getTimeInMillis());
|
||||||
|
values.put(Events.DTEND, Calendar.getInstance().getTimeInMillis());
|
||||||
|
values.put(Events.EVENT_TIMEZONE, "UTC");
|
||||||
|
values.put(Events.DIRTY, 1);
|
||||||
|
return ContentUris.parseId(providerClient.insert(syncAdapterURI(Events.CONTENT_URI), values));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteEvent(long id) throws RemoteException {
|
||||||
|
providerClient.delete(syncAdapterURI(ContentUris.withAppendedId(Events.CONTENT_URI, id)), null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// initialization
|
||||||
|
|
||||||
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
|
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
// get content resolver
|
|
||||||
ContentResolver resolver = getInstrumentation().getContext().getContentResolver();
|
ContentResolver resolver = getInstrumentation().getContext().getContentResolver();
|
||||||
providerClient = resolver.acquireContentProviderClient(CalendarContract.AUTHORITY);
|
providerClient = resolver.acquireContentProviderClient(CalendarContract.AUTHORITY);
|
||||||
|
|
||||||
@ -50,7 +85,7 @@ public class LocalCalendarTest extends InstrumentationTestCase {
|
|||||||
if (cursor.moveToNext()) {
|
if (cursor.moveToNext()) {
|
||||||
// found local test calendar
|
// found local test calendar
|
||||||
id = cursor.getLong(0);
|
id = cursor.getLong(0);
|
||||||
Log.i(TAG, "Found test calendar with ID " + id);
|
Log.d(TAG, "Found test calendar with ID " + id);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// no local test calendar found, create
|
// no local test calendar found, create
|
||||||
@ -69,68 +104,51 @@ public class LocalCalendarTest extends InstrumentationTestCase {
|
|||||||
values.put(Calendars.ALLOWED_ATTENDEE_TYPES, Attendees.TYPE_NONE + "," + Attendees.TYPE_OPTIONAL + "," + Attendees.TYPE_REQUIRED + "," + Attendees.TYPE_RESOURCE);
|
values.put(Calendars.ALLOWED_ATTENDEE_TYPES, Attendees.TYPE_NONE + "," + Attendees.TYPE_OPTIONAL + "," + Attendees.TYPE_REQUIRED + "," + Attendees.TYPE_RESOURCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Uri calendarURI = providerClient.insert(calendarsURI(), values);
|
Uri calendarURI = providerClient.insert(syncAdapterURI(Calendars.CONTENT_URI), values);
|
||||||
|
|
||||||
id = ContentUris.parseId(calendarURI);
|
id = ContentUris.parseId(calendarURI);
|
||||||
Log.i(TAG, "Created test calendar with ID " + id);
|
Log.d(TAG, "Created test calendar with ID " + id);
|
||||||
}
|
}
|
||||||
|
|
||||||
testCalendar = new LocalCalendar(testAccount, providerClient, id, null, null);
|
testCalendar = new LocalCalendar(testAccount, providerClient, id, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
Uri uri = ContentUris.withAppendedId(calendarsURI(), testCalendar.getId());
|
Uri uri = ContentUris.withAppendedId(syncAdapterURI(Calendars.CONTENT_URI), testCalendar.getId());
|
||||||
providerClient.delete(uri, null, null);
|
providerClient.delete(uri, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// tests
|
// tests
|
||||||
|
|
||||||
|
public void testCTags() throws LocalStorageException {
|
||||||
|
assertNull(testCalendar.getCTag());
|
||||||
|
|
||||||
|
final String cTag = "just-modified";
|
||||||
|
testCalendar.setCTag(cTag);
|
||||||
|
|
||||||
|
assertEquals(cTag, testCalendar.getCTag());
|
||||||
|
}
|
||||||
|
|
||||||
public void testFindNew() throws LocalStorageException, RemoteException {
|
public void testFindNew() throws LocalStorageException, RemoteException {
|
||||||
// at the beginning, there are no dirty events
|
// at the beginning, there are no dirty events
|
||||||
assertTrue(testCalendar.findNew().length == 0);
|
assertTrue(testCalendar.findNew().length == 0);
|
||||||
assertTrue(testCalendar.findUpdated().length == 0);
|
assertTrue(testCalendar.findUpdated().length == 0);
|
||||||
|
|
||||||
// insert a "new" event
|
// insert a "new" event
|
||||||
insertNewEvent();
|
long id = insertNewEvent();
|
||||||
|
try {
|
||||||
|
// there must be one "new" event now
|
||||||
|
assertTrue(testCalendar.findNew().length == 1);
|
||||||
|
assertTrue(testCalendar.findUpdated().length == 0);
|
||||||
|
|
||||||
// there must be one "new" event now
|
// nothing has changed, the record must still be "new"
|
||||||
assertTrue(testCalendar.findNew().length == 1);
|
// see issue #233
|
||||||
assertTrue(testCalendar.findUpdated().length == 0);
|
assertTrue(testCalendar.findNew().length == 1);
|
||||||
|
assertTrue(testCalendar.findUpdated().length == 0);
|
||||||
// nothing has changed, the record must still be "new"
|
} finally {
|
||||||
// see issue #233
|
deleteEvent(id);
|
||||||
assertTrue(testCalendar.findNew().length == 1);
|
}
|
||||||
assertTrue(testCalendar.findUpdated().length == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// helpers
|
|
||||||
|
|
||||||
protected Uri calendarsURI() {
|
|
||||||
return Calendars.CONTENT_URI.buildUpon()
|
|
||||||
.appendQueryParameter(Calendars.ACCOUNT_NAME, calendarName)
|
|
||||||
.appendQueryParameter(Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL)
|
|
||||||
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true").
|
|
||||||
build();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected long insertNewEvent() throws LocalStorageException, RemoteException {
|
|
||||||
Uri uri = Events.CONTENT_URI.buildUpon()
|
|
||||||
.appendQueryParameter(Calendars.ACCOUNT_TYPE, testAccount.type)
|
|
||||||
.appendQueryParameter(Calendars.ACCOUNT_NAME, testAccount.name)
|
|
||||||
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
ContentValues values = new ContentValues();
|
|
||||||
values.put(Events.CALENDAR_ID, testCalendar.getId());
|
|
||||||
values.put(Events.TITLE, "Test Event");
|
|
||||||
values.put(Events.ALL_DAY, 0);
|
|
||||||
values.put(Events.DTSTART, Calendar.getInstance().getTimeInMillis());
|
|
||||||
values.put(Events.DTEND, Calendar.getInstance().getTimeInMillis());
|
|
||||||
values.put(Events.EVENT_TIMEZONE, "UTC");
|
|
||||||
values.put(Events.DIRTY, 1);
|
|
||||||
return ContentUris.parseId(providerClient.insert(uri, values));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.test;
|
package at.bitfire.davdroid.test;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Copyright (c) 2013 Richard Hirner (bitfire web engineering).
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
* All rights reserved. This program and the accompanying materials
|
* All rights reserved. This program and the accompanying materials
|
||||||
* are made available under the terms of the GNU Public License v3.0
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
* which accompanies this distribution, and is available at
|
* which accompanies this distribution, and is available at
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.test;
|
package at.bitfire.davdroid.test;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2014 Ricki Hirner (bitfire web engineering).
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the GNU Public License v3.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.gnu.org/licenses/gpl.html
|
||||||
|
******************************************************************************/
|
||||||
package at.bitfire.davdroid.webdav.test;
|
package at.bitfire.davdroid.webdav.test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
Loading…
Reference in New Issue
Block a user