send contacts to oc instance
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / fragment / FileList.java
index 6f3c4c5..c71d9bf 100644 (file)
  */\r
 package eu.alefzero.owncloud.ui.fragment;\r
 \r
+import java.util.ArrayList;\r
 import java.util.Stack;\r
 import java.util.Vector;\r
 \r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
 import android.app.Service;\r
+import android.content.ContentProviderOperation;\r
 import android.content.Intent;\r
 import android.os.Bundle;\r
+import android.provider.ContactsContract;\r
+import android.provider.ContactsContract.RawContacts;\r
+import android.util.Log;\r
 import android.view.View;\r
 import android.widget.AdapterView;\r
 import eu.alefzero.owncloud.R;\r
@@ -57,6 +62,7 @@ public class FileList extends FragmentListView {
     mAccountManager = (AccountManager)getActivity().getSystemService(Service.ACCOUNT_SERVICE);\r
     mAccount = mAccountManager.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE)[0];\r
     populateFileList();\r
+    //addContact(mAccount, "Bartek Przybylski", "czlowiek");\r
   }\r
   \r
   @Override\r
@@ -102,4 +108,40 @@ public class FileList extends FragmentListView {
     mFiles = file.getDirectoryContent();\r
     setListAdapter(new FileListListAdapter(file, getActivity()));\r
   }\r
+  \r
+  private  void addContact(Account account, String name, String username) {\r
+    Log.i("ASD", "Adding contact: " + name);\r
+    ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();\r
+    \r
+    //Create our RawContact\r
+    ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);\r
+    builder.withValue(RawContacts.ACCOUNT_NAME, account.name);\r
+    builder.withValue(RawContacts.ACCOUNT_TYPE, account.type);\r
+    builder.withValue(RawContacts.SYNC1, username);\r
+    operationList.add(builder.build());\r
+    \r
+    //Create a Data record of common type 'StructuredName' for our RawContact\r
+    builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);\r
+    builder.withValueBackReference(ContactsContract.CommonDataKinds.StructuredName.RAW_CONTACT_ID, 0);\r
+    builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);\r
+    builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);\r
+    operationList.add(builder.build());\r
+    \r
+    //Create a Data record of custom type "vnd.android.cursor.item/vnd.fm.last.android.profile" to display a link to the Last.fm profile\r
+    builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);\r
+    builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);\r
+    builder.withValue(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.owncloud.contact.profile");\r
+    builder.withValue(ContactsContract.Data.DATA1, username);\r
+    builder.withValue(ContactsContract.Data.DATA2, "Last.fm Profile");\r
+    builder.withValue(ContactsContract.Data.DATA3, "View profile");\r
+    operationList.add(builder.build());\r
+    \r
+    try {\r
+     getActivity().getContentResolver().applyBatch(ContactsContract.AUTHORITY, operationList);\r
+    } catch (Exception e) {\r
+     Log.e("ASD", "Something went wrong during creation! " + e);\r
+     e.printStackTrace();\r
+    }\r
+   }\r
+  \r
 }\r