Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. package com.example.sean.asnsmsapp;
  2. import android.Manifest;
  3. import android.content.pm.PackageManager;
  4. import android.database.Cursor;
  5. import android.provider.ContactsContract;
  6. import android.support.v4.app.ActivityCompat;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.ListView;
  11. import android.widget.Toast;
  12.  
  13. import java.util.ArrayList;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16.  
  17. ListView listView ;
  18. ArrayList<String> StoreContacts ;
  19. ArrayAdapter<String> arrayAdapter ;
  20. Cursor cursor ;
  21. String name, phonenumber ;
  22. public static final int RequestPermissionCode = 1 ;
  23.  
  24. @Override
  25. protected void onCreate(Bundle savedInstanceState) {
  26. super.onCreate(savedInstanceState);
  27.  
  28. setContentView(R.layout.activity_main);
  29.  
  30. listView = (ListView)findViewById(R.id.lvContacts);
  31.  
  32. StoreContacts = new ArrayList<String>();
  33.  
  34. EnableRuntimePermission();
  35.  
  36.  
  37. }
  38.  
  39. public void GetContactsIntoArrayList(){
  40.  
  41. cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null);
  42.  
  43. while (cursor.moveToNext()) {
  44.  
  45. name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
  46. boolean contactExists = false;
  47. for(int i = 0; i<StoreContacts.size(); i++)
  48. {
  49. if(StoreContacts.get(i).contains(phonenumber))
  50. {
  51. contactExists = true;
  52. break;
  53. }
  54. }
  55. phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
  56. if(!contactExists) {
  57. StoreContacts.add(name + " " + ":" + " " + phonenumber);
  58. }
  59. }
  60. cursor.close();
  61. }
  62.  
  63. public void EnableRuntimePermission(){
  64.  
  65. if (ActivityCompat.shouldShowRequestPermissionRationale(
  66. MainActivity.this,
  67. Manifest.permission.READ_CONTACTS))
  68. {
  69.  
  70. Toast.makeText(MainActivity.this,"CONTACTS permission allows us to Access CONTACTS app", Toast.LENGTH_LONG).show();
  71.  
  72. } else {
  73.  
  74. ActivityCompat.requestPermissions(MainActivity.this,new String[]{
  75. Manifest.permission.READ_CONTACTS}, RequestPermissionCode);
  76.  
  77. }
  78. }
  79.  
  80. public void fillContactList()
  81. {
  82. GetContactsIntoArrayList();
  83. arrayAdapter = new ArrayAdapter<String>(MainActivity.this, R.layout.listviewtemplate, R.id.txtContact, StoreContacts);
  84. listView.setAdapter(arrayAdapter);
  85. }
  86.  
  87. @Override
  88. public void onRequestPermissionsResult(int RC, String per[], int[] PResult) {
  89.  
  90. switch (RC) {
  91. case RequestPermissionCode:
  92. if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) {
  93. fillContactList();
  94. } else {
  95. Toast.makeText(MainActivity.this,"Permission Canceled, Now your application cannot access CONTACTS.", Toast.LENGTH_LONG).show();
  96. }
  97. break;
  98. }
  99. }
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement