package com.androidornekler.ornek23;
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
Button kontakGetirButton;
TextView kisiAdi;
TextView kisiTelefon;
Button kontakEkleButton;
EditText eklenecekIsim;
EditText eklenecekTelNo;
Button kontakSilButton;
Button kontakGuncelleButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
kisiAdi = (TextView) findViewById(R.id.kisiAdi);
kisiTelefon = (TextView) findViewById(R.id.kisiTelefon);
kontakGetirButton = (Button) findViewById(R.id.kontakGetirButton);
kontakGetirButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
}
});
eklenecekIsim = (EditText)findViewById(R.id.eklenecekIsim);
eklenecekTelNo = (EditText)findViewById(R.id.eklenecekTelNo);
kontakEkleButton = (Button)findViewById(R.id.kontakEkleButton);
kontakEkleButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(eklenecekIsim.getText()!=null && "".equals(eklenecekIsim.getText().toString())==false){
kontakEkle(eklenecekIsim.getText().toString(), eklenecekTelNo.getText().toString());
}
}
});
kontakSilButton = (Button)findViewById(R.id.kontakSilButton);
kontakSilButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(eklenecekIsim.getText()!=null && "".equals(eklenecekIsim.getText().toString())==false){
kontakSil(eklenecekIsim.getText().toString());
}
}
});
kontakGuncelleButton = (Button)findViewById(R.id.kontakGuncelleButton);
kontakGuncelleButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(eklenecekIsim.getText()!=null && "".equals(eklenecekIsim.getText().toString())==false){
kontakGuncelle(eklenecekIsim.getText().toString(), eklenecekTelNo.getText().toString());
}
}
});
}
public void kontakEkle(String isim, String telNo){
ContentResolver icerikCozumleyici = getContentResolver();
ArrayList<ContentProviderOperation> icerikCozumleyiciOperasyonu = new ArrayList<ContentProviderOperation>();
int rawIcerikIndeksi = icerikCozumleyiciOperasyonu.size();
icerikCozumleyiciOperasyonu.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME,null )
.build());
icerikCozumleyiciOperasyonu.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawIcerikIndeksi)
.withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, telNo)
.build());
icerikCozumleyiciOperasyonu.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawIcerikIndeksi)
.withValue(Data.MIMETYPE,
StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, isim)
.build());
try {
ContentProviderResult[] res = icerikCozumleyici.applyBatch(ContactsContract.AUTHORITY, icerikCozumleyiciOperasyonu);
} catch (Exception e) {
Log.e("MAIN", e.getMessage());
}
Toast.makeText(getApplicationContext(), "Yeni kayıt eklendi", Toast.LENGTH_LONG).show();
}
public void kontakSil(String isim){
ContentResolver icerikCozumleyici = getContentResolver();
ArrayList<ContentProviderOperation> icerikCozumleyiciOperasyonu = new ArrayList<ContentProviderOperation>();
icerikCozumleyiciOperasyonu.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI)
.withSelection(ContactsContract.Contacts.DISPLAY_NAME + "=?", new String[]{isim})
.build());
try {
icerikCozumleyici.applyBatch(ContactsContract.AUTHORITY, icerikCozumleyiciOperasyonu);
Toast.makeText(getApplicationContext(), "Kayıt silindi", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("Main",e.getMessage());
}
}
public void kontakGuncelle(String isim,String telNo){
ContentResolver icerikCozumleyici = getContentResolver();
ArrayList<ContentProviderOperation> icerikCozumleyiciOperasyonu = new ArrayList<ContentProviderOperation>();
icerikCozumleyiciOperasyonu.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Contacts.DISPLAY_NAME + "=?", new String[]{isim})
.withValue(Phone.NUMBER, telNo)
.build());
try {
icerikCozumleyici.applyBatch(ContactsContract.AUTHORITY, icerikCozumleyiciOperasyonu);
Toast.makeText(getApplicationContext(), "Kayıt güncellendi", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("Main",e.getMessage());
}
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK){
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String isim = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
String telno = "";
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
ContentResolver cr = getContentResolver();
Cursor phoneCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{id}, null);
while (phoneCursor.moveToNext()) {
telno = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if(telno!=null && "".equals(telno)!=false){
break;
}
}
phoneCursor.close();
}
kisiAdi.setText(isim);
kisiTelefon.setText(telno);
}
}
}
}