diff --git a/app/build.gradle b/app/build.gradle
index 731b6762..7d3712a0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,7 +6,7 @@ android {
defaultConfig {
applicationId "pub.devrel.easypermissions.sample"
- minSdkVersion 14
+ minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
@@ -32,4 +32,6 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation "androidx.annotation:annotation:1.1.0"
implementation project(':easypermissions')
+ implementation 'com.google.android.material:material:1.4.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 88db6b13..ef51fe7e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,25 +1,24 @@
-
-
-
-
+
@@ -27,7 +26,6 @@
-
-
+
\ No newline at end of file
diff --git a/app/src/main/java/pub/devrel/easypermissions/sample/ContactsActivity.java b/app/src/main/java/pub/devrel/easypermissions/sample/ContactsActivity.java
new file mode 100644
index 00000000..c43caa82
--- /dev/null
+++ b/app/src/main/java/pub/devrel/easypermissions/sample/ContactsActivity.java
@@ -0,0 +1,114 @@
+package pub.devrel.easypermissions.sample;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.Manifest;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.List;
+
+import pub.devrel.easypermissions.AfterPermissionGranted;
+import pub.devrel.easypermissions.AppSettingsDialog;
+import pub.devrel.easypermissions.EasyPermissions;
+
+public class ContactsActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,
+ EasyPermissions.RationaleCallbacks {
+
+ private static final int RC_CONTACTS_PERM = 126;
+ TextView message;
+ private static final String TAG = "ContactsActivity";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_contacts);
+ message = findViewById(R.id.textPermission);
+ contactsTask();
+ contactsMessage();
+ }
+
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ contactsMessage();
+
+
+ }
+
+ public void contactsMessage(){
+ if(hasContactsPermission()){
+ message.setText(getString(R.string.permission_accepted));
+ }else{
+ message.setText(getString(R.string.permission_denied));
+ }
+ }
+
+
+ private boolean hasContactsPermission() {
+ return EasyPermissions.hasPermissions(this, Manifest.permission.READ_CONTACTS);
+ }
+
+ @AfterPermissionGranted(RC_CONTACTS_PERM)
+ public void contactsTask() {
+ if (hasContactsPermission()) {
+ // Have permissions, do the thing!
+ Toast.makeText(this, "TODO: Contacts things", Toast.LENGTH_LONG).show();
+ } else {
+ // Ask for both permissions
+ EasyPermissions.requestPermissions(
+ this,
+ getString(R.string.rationale_contacts),
+ RC_CONTACTS_PERM,
+ Manifest.permission.READ_CONTACTS);
+ }
+ }
+
+ /*@Override
+ public void onRequestPermissionsResult(int requestCode,
+ @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ // EasyPermissions handles the request result.
+ EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
+ }*/
+
+ @Override
+ public void onPermissionsGranted(int requestCode, @NonNull List perms) {
+ Log.d(TAG, "onPermissionsGranted:" + requestCode + ":" + perms.size());
+ /* if(requestCode == RC_CONTACTS_PERM){
+ contactsMessage();
+ }*/
+ }
+
+ @Override
+ public void onPermissionsDenied(int requestCode, @NonNull List perms) {
+ Log.d(TAG, "onPermissionsDenied:" + requestCode + ":" + perms.size());
+
+ // (Optional) Check whether the user denied any permissions and checked "NEVER ASK AGAIN."
+ // This will display a dialog directing them to enable the permission in app settings.
+ if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
+ new AppSettingsDialog.Builder(this).build().show();
+ }
+
+ /*if(requestCode == RC_CONTACTS_PERM){
+ contactsMessage(getString(R.string.permission_denied));
+ }*/
+ }
+
+
+ @Override
+ public void onRationaleAccepted(int requestCode) {
+ Log.d(TAG, "onRationaleAccepted:" + requestCode);
+ }
+
+ @Override
+ public void onRationaleDenied(int requestCode) {
+ Log.d(TAG, "onRationaleDenied:" + requestCode);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/pub/devrel/easypermissions/sample/MainActivity.java b/app/src/main/java/pub/devrel/easypermissions/sample/MainActivity.java
index 2c82a9f4..126f4398 100644
--- a/app/src/main/java/pub/devrel/easypermissions/sample/MainActivity.java
+++ b/app/src/main/java/pub/devrel/easypermissions/sample/MainActivity.java
@@ -19,6 +19,8 @@
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
+import android.view.View;
+import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -33,6 +35,8 @@
public class MainActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,
EasyPermissions.RationaleCallbacks{
+ Button boton;
+
private static final String TAG = "MainActivity";
private static final String[] LOCATION_AND_CONTACTS =
{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_CONTACTS};
@@ -50,6 +54,15 @@ protected void onCreate(Bundle savedInstanceState) {
// Button click listener that will request two permissions.
findViewById(R.id.button_location_and_contacts).setOnClickListener(v -> locationAndContactsTask());
+ boton= (Button) findViewById(R.id.contacts_id);
+ boton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ startActivity(new Intent(MainActivity.this, ContactsActivity.class));
+
+ }
+ });
}
private boolean hasCameraPermission() {
@@ -68,6 +81,10 @@ private boolean hasStoragePermission() {
return EasyPermissions.hasPermissions(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
+ private boolean hasContactsPermission() {
+ return EasyPermissions.hasPermissions(this, Manifest.permission.READ_CONTACTS);
+ }
+
@AfterPermissionGranted(RC_CAMERA_PERM)
public void cameraTask() {
if (hasCameraPermission()) {
diff --git a/app/src/main/res/layout/activity_contacts.xml b/app/src/main/res/layout/activity_contacts.xml
new file mode 100644
index 00000000..2db67c6b
--- /dev/null
+++ b/app/src/main/res/layout/activity_contacts.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index b93dcf2b..d88d49ff 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -29,4 +29,10 @@
android:layout_height="wrap_content"
tools:layout="@layout/fragment_main" />
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 072190e2..05d9db89 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,6 +6,7 @@
This app needs access to your camera so you can take pictures.
This app needs access to your location and contacts to know where and who you are.
This app needs access to your sms to read all your great messages.
+ This app needs access to your contacts.
Returned from app settings to MainActivity with the following permissions:
\n\nCamera: %s
@@ -15,4 +16,7 @@
Camera
Location and Contacts
SMS
+ CONTACTS
+ Se pudo obtener el permiso para acceder a los contactos.
+ Se denego el permiso para acceder a los contactos.