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" /> +