Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. package com.example.sean.asnsmsapp;
  2. import android.Manifest;
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.content.pm.PackageManager;
  6. import android.database.Cursor;
  7. import android.os.Build;
  8. import android.provider.ContactsContract;
  9. import android.support.v4.app.ActivityCompat;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.AdapterView;
  14. import android.widget.ArrayAdapter;
  15. import android.widget.ListView;
  16. import android.widget.Toast;
  17. import java.util.ArrayList;
  18. import java.util.Collections;
  19. import java.util.Comparator;
  20. import java.util.List;
  21.  
  22. public class MainActivity extends AppCompatActivity {
  23.  
  24. ListView listView ;
  25. List<Contact> contactList = new ArrayList<Contact>();
  26. ArrayAdapter<String> arrayAdapter ;
  27. Cursor cursor ;
  28. String name, phonenumber ;
  29. public static final int RequestPermissionCode = 1 ;
  30.  
  31. @Override
  32. protected void onCreate(Bundle savedInstanceState) {
  33. super.onCreate(savedInstanceState);
  34.  
  35. setContentView(R.layout.activity_main);
  36.  
  37. listView = (ListView)findViewById(R.id.lvContacts);
  38.  
  39. EnableRuntimePermission();
  40.  
  41. listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  42. @Override
  43. public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
  44. Intent intent = new Intent(MainActivity.this,SMSActivity.class);
  45. //intent.putExtra("CONTACT", contactList.get(position));
  46. startActivity(intent);
  47. }
  48. });
  49. }
  50.  
  51. public void GetContactsIntoArrayList(){
  52.  
  53. cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);
  54.  
  55. while (cursor.moveToNext()) {
  56.  
  57. name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
  58. phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
  59.  
  60. String contactName = name;
  61. String contactNum = phonenumber;
  62. contactNum = contactNum.replaceAll("\\s+","");
  63. contactNum = contactNum.replace("-", "");
  64. boolean contactExists = false;
  65. for(int i = 0; i<contactList.size(); i++)
  66. {
  67. Contact objContact = contactList.get(i);
  68. String contactNumber = objContact.getContactNum();
  69. contactNumber = contactNumber.replaceAll("\\s+","");
  70. contactNumber = contactNumber.replace("-", "");
  71. if(contactNumber.equals(contactNum))
  72. {
  73. contactExists = true;
  74. break;
  75. }
  76. }
  77. if(!contactExists) {
  78. contactList.add(new Contact(contactName, contactNum));
  79. }
  80. }
  81. cursor.close();
  82. }
  83.  
  84. public void EnableRuntimePermission(){
  85. if (ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.READ_CONTACTS)
  86. != PackageManager.PERMISSION_GRANTED
  87. || ActivityCompat.checkSelfPermission(getBaseContext(), Manifest.permission.READ_SMS)
  88. != PackageManager.PERMISSION_GRANTED) {
  89.  
  90. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
  91. //ask user for permission if Android Os is newer than Lollipop
  92. requestPermissions(new String[]{Manifest.permission.READ_CONTACTS,
  93. Manifest.permission.READ_SMS}, RequestPermissionCode);
  94. } else {
  95. Toast.makeText(MainActivity.this,"Permission denied. Change settings manually", Toast.LENGTH_LONG).show();
  96. }
  97. }
  98. else{
  99. setContactList(contactList);
  100. }
  101. }
  102.  
  103. protected void setContactList(List<Contact> contacts) {
  104. GetContactsIntoArrayList();
  105. Collections.sort(contactList, new Comparator<Contact>() {
  106. @Override
  107. public int compare(Contact contact, Contact t1) {
  108. return contact.getContactName().compareToIgnoreCase(t1.getContactName());
  109. }
  110. });
  111. ListView listView = (ListView)findViewById(R.id.lvContacts);
  112. listView.setAdapter(new ContactListAdapter(this, R.layout.listviewtemplate, contacts));
  113. }
  114.  
  115. @Override
  116. public void onRequestPermissionsResult(int RC, String permissions[], int[] PResult) {
  117. switch (RC) {
  118. case RequestPermissionCode:
  119. if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {
  120. setContactList(contactList);
  121. } else {
  122. Toast.makeText(MainActivity.this,"Permission denied. Change settings manually", Toast.LENGTH_LONG).show();
  123. }
  124. break;
  125. }
  126. }
  127.  
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement