Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.sean.asnsmsapp;
- import android.Manifest;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.database.Cursor;
- import android.os.Build;
- import android.provider.ContactsContract;
- import android.support.v4.app.ActivityCompat;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- import android.widget.Toast;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class MainActivity extends AppCompatActivity {
- ListView listView ;
- List<Contact> contactList = new ArrayList<Contact>();
- ArrayAdapter<String> arrayAdapter ;
- Cursor cursor ;
- String name, phonenumber ;
- public static final int RequestPermissionCode = 1 ;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- listView = (ListView)findViewById(R.id.lvContacts);
- EnableRuntimePermission();
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
- Intent intent = new Intent(MainActivity.this,SMSActivity.class);
- //intent.putExtra("CONTACT", contactList.get(position));
- startActivity(intent);
- }
- });
- }
- public void GetContactsIntoArrayList(){
- cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);
- while (cursor.moveToNext()) {
- name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
- phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- String contactName = name;
- String contactNum = phonenumber;
- contactNum = contactNum.replaceAll("\\s+","");
- contactNum = contactNum.replace("-", "");
- boolean contactExists = false;
- for(int i = 0; i<contactList.size(); i++)
- {
- Contact objContact = contactList.get(i);
- String contactNumber = objContact.getContactNum();
- contactNumber = contactNumber.replaceAll("\\s+","");
- contactNumber = contactNumber.replace("-", "");
- if(contactNumber.equals(contactNum))
- {
- contactExists = true;
- break;
- }
- }
- if(!contactExists) {
- contactList.add(new Contact(contactName, contactNum));
- }
- }
- cursor.close();
- }
- public void EnableRuntimePermission(){
- if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.READ_CONTACTS)
- != PackageManager.PERMISSION_GRANTED
- || ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.READ_SMS)
- != PackageManager.PERMISSION_GRANTED) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- //ask user for permission if Android Os is newer than Lollipop
- requestPermissions(new String[]{Manifest.permission.READ_CONTACTS,
- Manifest.permission.READ_SMS}, RequestPermissionCode);
- } else {
- Toast.makeText(MainActivity.this,"Permission denied. Change settings manually", Toast.LENGTH_LONG).show();
- }
- }
- else{
- setContactList(contactList);
- }
- }
- protected void setContactList(List<Contact> contacts) {
- GetContactsIntoArrayList();
- Collections.sort(contactList, new Comparator<Contact>() {
- @Override
- public int compare(Contact contact, Contact t1) {
- return contact.getContactName().compareToIgnoreCase(t1.getContactName());
- }
- });
- ListView listView = (ListView)findViewById(R.id.lvContacts);
- listView.setAdapter(new ContactListAdapter(this, R.layout.listviewtemplate, contacts));
- }
- @Override
- public void onRequestPermissionsResult(int RC, String permissions[], int[] PResult) {
- switch (RC) {
- case RequestPermissionCode:
- if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {
- setContactList(contactList);
- } else {
- Toast.makeText(MainActivity.this,"Permission denied. Change settings manually", Toast.LENGTH_LONG).show();
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement