diff --git a/.idea/gradle.xml b/.idea/gradle.xml index c0e8397..89d61e9 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,8 +1,10 @@ + - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 8184a86..5321bd2 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,9 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index 157b9b0..f4244cf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,8 +27,8 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - implementation 'com.justadeveloper96.android:permissionhelper:1.1.2' + implementation project(':permissionhelper') } diff --git a/app/src/main/java/com/justadeveloper96/permissionmanager/MainActivity.java b/app/src/main/java/com/justadeveloper96/permissionmanager/MainActivity.java index ae1afa0..860eb37 100644 --- a/app/src/main/java/com/justadeveloper96/permissionmanager/MainActivity.java +++ b/app/src/main/java/com/justadeveloper96/permissionmanager/MainActivity.java @@ -2,8 +2,11 @@ import android.annotation.TargetApi; import android.content.Context; +import android.content.DialogInterface; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; + +import androidx.appcompat.app.AlertDialog; import androidx.databinding.DataBindingUtil; import androidx.databinding.ObservableField; import android.os.Build; @@ -86,7 +89,28 @@ public void onPermissionRejectedManyTimes(List rejectedPerms, int reques } Toast.makeText(MainActivity.this,"Rejected "+s.substring(1),Toast.LENGTH_SHORT).show(); } - }); + + @Override + public boolean interceptPermissionsRejected(@NonNull List rejectedPerms, final int request_code) { + new AlertDialog.Builder(MainActivity.this) + .setTitle("Permissions") + .setMessage("Please grant all the permissions") + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + permissionHelper.requestPermission(needed_permissions.toArray(new String[needed_permissions.size()]), request_code); + } + }) + .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.cancel(); + } + }) + .create().show(); + return true; + } + }); binding.get.setOnClickListener(new View.OnClickListener() { @Override diff --git a/build.gradle b/build.gradle index f654b7a..fb24f77 100644 --- a/build.gradle +++ b/build.gradle @@ -7,8 +7,8 @@ buildscript { } dependencies { classpath 'com.android.tools.build:gradle:3.4.1' - classpath 'com.novoda:bintray-release:0.9.1' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31" + classpath 'com.novoda:bintray-release:0.9.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/permissionhelper/build.gradle b/permissionhelper/build.gradle index 823ea98..3598c63 100644 --- a/permissionhelper/build.gradle +++ b/permissionhelper/build.gradle @@ -35,6 +35,6 @@ android { } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.0.2' + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'androidx.appcompat:appcompat:1.2.0' } diff --git a/permissionhelper/src/main/java/com/justadeveloper96/permissionhelper/PermissionHelper.java b/permissionhelper/src/main/java/com/justadeveloper96/permissionhelper/PermissionHelper.java index f67c810..4431d3b 100644 --- a/permissionhelper/src/main/java/com/justadeveloper96/permissionhelper/PermissionHelper.java +++ b/permissionhelper/src/main/java/com/justadeveloper96/permissionhelper/PermissionHelper.java @@ -36,6 +36,7 @@ public class PermissionHelper { public interface PermissionsListener { void onPermissionGranted(int request_code); void onPermissionRejectedManyTimes(@NonNull List rejectedPerms, int request_code); + boolean interceptPermissionsRejected(@NonNull List rejectedPerms, int request_code); } private WeakReference activity_view; @@ -142,7 +143,9 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis if (deniedpermissions.size() > 0) { res = res.substring(1); if (!never_ask_again) { - getRequestAgainAlertDialog(getActivity(), res,requestCode); + if(!getListener().interceptPermissionsRejected(deniedpermissions, requestCode)) { + getRequestAgainAlertDialog(getActivity(), res,requestCode); + } } else { goToSettingsAlertDialog(getActivity(), res,requestCode); } @@ -268,4 +271,4 @@ public void onDestroy() { frag_v4_view = null; } -} \ No newline at end of file +}