Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ltd.benoa.contactlister;
- import android.Manifest;
- import android.content.ContentResolver;
- import android.database.Cursor;
- import android.provider.ContactsContract;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.method.ScrollingMovementMethod;
- import android.util.Log;
- import android.widget.TextView;
- import com.vistrav.ask.Ask;
- import com.vistrav.ask.annotations.AskDenied;
- import com.vistrav.ask.annotations.AskGranted;
- public class MainActivity extends AppCompatActivity {
- private TextView listContacts;
- private static final String TAG = MainActivity.class.getSimpleName();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //askForPermissions;
- Ask.on(this)
- .forPermissions(Manifest.permission.READ_CONTACTS)
- .go();
- listContacts = findViewById(R.id.listContacts);
- listContacts.setMovementMethod(new ScrollingMovementMethod());
- listContacts.setText(loadContacts());
- }
- //optional
- @AskGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- public void fileAccessGranted(int id) {
- Log.i(TAG, "FILE GRANTED");
- }
- //optional
- @AskDenied(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- public void fileAccessDenied(int id) {
- Log.i(TAG, "FILE DENiED");
- }
- //optional
- @AskGranted(Manifest.permission.ACCESS_COARSE_LOCATION)
- public void mapAccessGranted(int id) {
- Log.i(TAG, "MAP GRANTED");
- }
- //optional
- @AskDenied(Manifest.permission.ACCESS_COARSE_LOCATION)
- public void mapAccessDenied(int id) {
- Log.i(TAG, "MAP DENIED");
- }
- private String loadContacts()
- {
- StringBuilder builder = new StringBuilder();
- ContentResolver cr = getContentResolver();
- Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
- null, null,
- null, null);
- if (cursor.getCount() > 0){
- while (cursor.moveToNext()){
- String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
- String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
- String columns[] = {
- ContactsContract.CommonDataKinds.Event.START_DATE,
- ContactsContract.CommonDataKinds.Event.TYPE,
- ContactsContract.CommonDataKinds.Event.MIMETYPE,
- };
- String where = ContactsContract.CommonDataKinds.Event.TYPE + "=" +
- ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY +
- " and " + ContactsContract.CommonDataKinds.Event.MIMETYPE +
- " = '" + ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE +
- "' and " + ContactsContract.Data.CONTACT_ID + " = " + id;
- String sortOrder = ContactsContract.CommonDataKinds.Event.START_DATE + " DESC ";
- // Log.i("msg ", sortOrder + "n");
- Cursor birthdayCur = cr.query(ContactsContract.Data.CONTENT_URI, columns, where,
- null, sortOrder);
- if (birthdayCur.getCount() > 0) {
- while (birthdayCur.moveToNext()) {
- String birthday = birthdayCur.getString(birthdayCur.
- getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
- // Log.i("INSIDE THE SEC CURSOR" +
- // " ", birthday + "n");
- builder.append("Contact: ").append(name).append(" ").append(birthday).append("nn");
- }
- }
- birthdayCur.close();
- }
- }
- cursor.close();
- return builder.toString();
- }
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //askForPermissions;
- Ask.on(this)
- .forPermissions(Manifest.permission.READ_CONTACTS)
- .go();
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 26
- defaultConfig {
- applicationId "com.ltd.benoa.contactlister"
- minSdkVersion 19
- targetSdkVersion 26
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- }
- dependencies {
- compile 'com.vistrav:ask:2.5'
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.android.support:appcompat-v7:26.1.0'
- implementation 'com.android.support.constraint:constraint-layout:1.0.2'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.1'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
- }
- <?xml version="1.0" encoding="utf-8"?>
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- String sortOrder = ContactsContract.CommonDataKinds.Event.START_DATE + " DESC ";
Add Comment
Please, Sign In to add comment