version bump
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / syncadapter / ContactSyncAdapter.java
index 8ddc414..b0ab956 100644 (file)
@@ -7,8 +7,8 @@ import org.apache.http.HttpResponse;
 import org.apache.http.client.methods.HttpPut;
 import org.apache.http.entity.ByteArrayEntity;
 
+import eu.alefzero.owncloud.AccountUtils;
 import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
-import eu.alefzero.owncloud.authenticator.AuthUtils;
 import eu.alefzero.owncloud.db.ProviderMeta;
 import eu.alefzero.owncloud.db.ProviderMeta.ProviderTableMeta;
 import android.accounts.Account;
@@ -26,73 +26,81 @@ import android.provider.ContactsContract;
 import android.util.Log;
 
 public class ContactSyncAdapter extends AbstractOwnCloudSyncAdapter {
-  private String mAddrBookUri;
-  
-  public ContactSyncAdapter(Context context, boolean autoInitialize) {
-    super(context, autoInitialize);
-    mAddrBookUri = null;
-  }
+    private String mAddrBookUri;
 
-  @Override
-  public void onPerformSync(Account account, Bundle extras, String authority,
-      ContentProviderClient provider, SyncResult syncResult) {
-    setAccount(account);
-    setContentProvider(provider);
-    Cursor c = getLocalContacts(false);
-    if (c.moveToFirst()) {
-      do {
-      String lookup = c.getString(c.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
-      String a = getAddressBookUri();
-      String uri = a + lookup + ".vcf";
-      FileInputStream f;
-      try {
-        f = getContactVcard(lookup);
-        HttpPut query = new HttpPut(uri);
-        byte[] b = new byte[f.available()];
-        f.read(b);
-        query.setEntity(new ByteArrayEntity(b));
-        HttpResponse response = fireRawRequest(query);
-      } catch (IOException e) {
-        e.printStackTrace();
-        return;
-      } catch (OperationCanceledException e) {
-        // TODO Auto-generated catch block
-        e.printStackTrace();
-      } catch (AuthenticatorException e) {
-        // TODO Auto-generated catch block
-        e.printStackTrace();
-      }
-      }while (c.moveToNext());
-      //} while (c.moveToNext());
+    public ContactSyncAdapter(Context context, boolean autoInitialize) {
+        super(context, autoInitialize);
+        mAddrBookUri = null;
     }
 
-  }
+    @Override
+    public void onPerformSync(Account account, Bundle extras, String authority,
+            ContentProviderClient provider, SyncResult syncResult) {
+        setAccount(account);
+        setContentProvider(provider);
+        Cursor c = getLocalContacts(false);
+        if (c.moveToFirst()) {
+            do {
+                String lookup = c.getString(c
+                        .getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
+                String a = getAddressBookUri();
+                String uri = a + lookup + ".vcf";
+                FileInputStream f;
+                try {
+                    f = getContactVcard(lookup);
+                    HttpPut query = new HttpPut(uri);
+                    byte[] b = new byte[f.available()];
+                    f.read(b);
+                    query.setEntity(new ByteArrayEntity(b));
+                    HttpResponse response = fireRawRequest(query);
+                } catch (IOException e) {
+                    e.printStackTrace();
+                    return;
+                } catch (OperationCanceledException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                } catch (AuthenticatorException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+            } while (c.moveToNext());
+            // } while (c.moveToNext());
+        }
 
-  private String getAddressBookUri() {
-    if (mAddrBookUri != null) return mAddrBookUri;
+    }
+
+    private String getAddressBookUri() {
+        if (mAddrBookUri != null)
+            return mAddrBookUri;
+
+        AccountManager am = getAccountManager();
+        String uri = am.getUserData(getAccount(),
+                AccountAuthenticator.KEY_OC_URL).replace(
+                AccountUtils.WEBDAV_PATH_2_0, AccountUtils.CARDDAV_PATH_2_0);
+        uri += "/addressbooks/"
+                + getAccount().name.substring(0,
+                        getAccount().name.lastIndexOf('@')) + "/default/";
+        mAddrBookUri = uri;
+        return uri;
+    }
+
+    private FileInputStream getContactVcard(String lookupKey)
+            throws IOException {
+        Uri uri = Uri.withAppendedPath(
+                ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
+        AssetFileDescriptor fd = getContext().getContentResolver()
+                .openAssetFileDescriptor(uri, "r");
+        return fd.createInputStream();
+    }
+
+    private Cursor getLocalContacts(boolean include_hidden_contacts) {
+        return getContext().getContentResolver().query(
+                ContactsContract.Contacts.CONTENT_URI,
+                new String[] { ContactsContract.Contacts._ID,
+                        ContactsContract.Contacts.LOOKUP_KEY },
+                ContactsContract.Contacts.IN_VISIBLE_GROUP + " = ?",
+                new String[] { (include_hidden_contacts ? "0" : "1") },
+                ContactsContract.Contacts._ID + " DESC");
+    }
 
-    AccountManager am = getAccountManager();
-    String uri = am.getUserData(getAccount(), AccountAuthenticator.KEY_OC_URL)
-                   .replace(AuthUtils.WEBDAV_PATH_2_0, AuthUtils.CARDDAV_PATH_2_0);
-    uri += "/addressbooks/" + getAccount().name.substring(0, getAccount().name.lastIndexOf('@'))
-        + "/default/";
-    mAddrBookUri = uri;
-    return uri;
-  }
-  
-  private FileInputStream getContactVcard(String lookupKey) throws IOException {
-    Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
-    AssetFileDescriptor fd = getContext().getContentResolver().openAssetFileDescriptor(uri, "r");
-    return fd.createInputStream();
-  }
-  
-  private Cursor getLocalContacts(boolean include_hidden_contacts) {
-    return getContext().getContentResolver().query(
-        ContactsContract.Contacts.CONTENT_URI,
-        new String[] {ContactsContract.Contacts._ID, ContactsContract.Contacts.LOOKUP_KEY},
-        ContactsContract.Contacts.IN_VISIBLE_GROUP + " = ?",
-        new String[]{ (include_hidden_contacts?"0":"1")},
-        ContactsContract.Contacts._ID + " DESC");
-  }
-  
 }