Guest User

Untitled

a guest
Nov 22nd, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. package com.ltd.benoa.contactlister;
  2.  
  3. import android.Manifest;
  4. import android.content.ContentResolver;
  5. import android.database.Cursor;
  6. import android.provider.ContactsContract;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.text.method.ScrollingMovementMethod;
  10. import android.util.Log;
  11. import android.widget.TextView;
  12.  
  13. import com.vistrav.ask.Ask;
  14. import com.vistrav.ask.annotations.AskDenied;
  15. import com.vistrav.ask.annotations.AskGranted;
  16.  
  17. public class MainActivity extends AppCompatActivity {
  18.  
  19. private TextView listContacts;
  20.  
  21. private static final String TAG = MainActivity.class.getSimpleName();
  22.  
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_main);
  27. //askForPermissions;
  28. Ask.on(this)
  29. .forPermissions(Manifest.permission.READ_CONTACTS)
  30. .go();
  31.  
  32. listContacts = findViewById(R.id.listContacts);
  33. listContacts.setMovementMethod(new ScrollingMovementMethod());
  34. listContacts.setText(loadContacts());
  35. }
  36.  
  37. //optional
  38. @AskGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)
  39. public void fileAccessGranted(int id) {
  40. Log.i(TAG, "FILE GRANTED");
  41. }
  42.  
  43. //optional
  44. @AskDenied(Manifest.permission.WRITE_EXTERNAL_STORAGE)
  45. public void fileAccessDenied(int id) {
  46. Log.i(TAG, "FILE DENiED");
  47. }
  48.  
  49. //optional
  50. @AskGranted(Manifest.permission.ACCESS_COARSE_LOCATION)
  51. public void mapAccessGranted(int id) {
  52. Log.i(TAG, "MAP GRANTED");
  53. }
  54.  
  55. //optional
  56. @AskDenied(Manifest.permission.ACCESS_COARSE_LOCATION)
  57. public void mapAccessDenied(int id) {
  58. Log.i(TAG, "MAP DENIED");
  59. }
  60.  
  61. private String loadContacts()
  62. {
  63. StringBuilder builder = new StringBuilder();
  64. ContentResolver cr = getContentResolver();
  65. Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
  66. null, null,
  67. null, null);
  68.  
  69. if (cursor.getCount() > 0){
  70. while (cursor.moveToNext()){
  71. String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
  72. String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
  73.  
  74. String columns[] = {
  75. ContactsContract.CommonDataKinds.Event.START_DATE,
  76. ContactsContract.CommonDataKinds.Event.TYPE,
  77. ContactsContract.CommonDataKinds.Event.MIMETYPE,
  78. };
  79.  
  80. String where = ContactsContract.CommonDataKinds.Event.TYPE + "=" +
  81. ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY +
  82. " and " + ContactsContract.CommonDataKinds.Event.MIMETYPE +
  83. " = '" + ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE +
  84. "' and " + ContactsContract.Data.CONTACT_ID + " = " + id;
  85.  
  86. String sortOrder = ContactsContract.CommonDataKinds.Event.START_DATE + " DESC ";
  87.  
  88. // Log.i("msg ", sortOrder + "n");
  89.  
  90. Cursor birthdayCur = cr.query(ContactsContract.Data.CONTENT_URI, columns, where,
  91. null, sortOrder);
  92.  
  93. if (birthdayCur.getCount() > 0) {
  94. while (birthdayCur.moveToNext()) {
  95. String birthday = birthdayCur.getString(birthdayCur.
  96. getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
  97. // Log.i("INSIDE THE SEC CURSOR" +
  98. // " ", birthday + "n");
  99. builder.append("Contact: ").append(name).append(" ").append(birthday).append("nn");
  100. }
  101. }
  102. birthdayCur.close();
  103. }
  104. }
  105. cursor.close();
  106.  
  107. return builder.toString();
  108. }
  109.  
  110. }
  111.  
  112. @Override
  113. protected void onCreate(Bundle savedInstanceState) {
  114. super.onCreate(savedInstanceState);
  115. setContentView(R.layout.activity_main);
  116. //askForPermissions;
  117. Ask.on(this)
  118. .forPermissions(Manifest.permission.READ_CONTACTS)
  119. .go();
  120.  
  121. apply plugin: 'com.android.application'
  122.  
  123. android {
  124. compileSdkVersion 26
  125. defaultConfig {
  126. applicationId "com.ltd.benoa.contactlister"
  127. minSdkVersion 19
  128. targetSdkVersion 26
  129. versionCode 1
  130. versionName "1.0"
  131. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  132. }
  133. buildTypes {
  134. release {
  135. minifyEnabled false
  136. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  137. }
  138. }
  139. }
  140.  
  141. dependencies {
  142. compile 'com.vistrav:ask:2.5'
  143. implementation fileTree(dir: 'libs', include: ['*.jar'])
  144. implementation 'com.android.support:appcompat-v7:26.1.0'
  145. implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  146. testImplementation 'junit:junit:4.12'
  147. androidTestImplementation 'com.android.support.test:runner:1.0.1'
  148. androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
  149. }
  150.  
  151. <?xml version="1.0" encoding="utf-8"?>
  152.  
  153. <uses-permission android:name="android.permission.READ_CONTACTS" />
  154.  
  155. String sortOrder = ContactsContract.CommonDataKinds.Event.START_DATE + " DESC ";
Add Comment
Please, Sign In to add comment