diff --git a/README.md b/README.md
index 9ecc472..bc7c93d 100644
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@ Gradle
------
```java
dependencies {
- compile 'com.greysonparrelli.permiso:permiso:0.1.0'
+ compile 'com.greysonparrelli.permiso:permiso:0.1.1'
}
```
@@ -71,7 +71,7 @@ FAQ
Of course not! Permiso requires very little boilerplate, and therefore ```PermisoActivity``` does very little. If you don't want to subclass ```PermisoActivity```, all you have to do is make sure you do the two following things:
-* In ```onCreate()```, invoke ```Permiso.getInstance().setActivity(this)```.
+* In ```onCreate()``` and ```onResume()```, invoke ```Permiso.getInstance().setActivity(this)```.
* Forward the results of ```Activity.onRequestPermissionsResult()``` to ```Permiso.getInstance().onRequestPermissionResult()```.
Here's an example:
@@ -83,6 +83,12 @@ protected void onCreate(Bundle savedInstanceState) {
Permiso.getInstance().setActivity(this);
}
+@Override
+protected void onResume() {
+ super.onResume();
+ Permiso.getInstance().setActivity(this);
+}
+
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 97b9b04..c985d64 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,6 +23,11 @@
+
+
diff --git a/app/src/main/java/com/greysonparrelli/permisodemo/MainActivity.java b/app/src/main/java/com/greysonparrelli/permisodemo/MainActivity.java
index a2feef4..dfad5f1 100644
--- a/app/src/main/java/com/greysonparrelli/permisodemo/MainActivity.java
+++ b/app/src/main/java/com/greysonparrelli/permisodemo/MainActivity.java
@@ -1,9 +1,8 @@
package com.greysonparrelli.permisodemo;
import android.Manifest;
+import android.content.Intent;
import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
@@ -11,11 +10,12 @@
import com.greysonparrelli.permiso.PermisoActivity;
/**
- * An activity that demonstrates the features of {@link Permiso}.
+ * An activity that demonstrates the features of {@link Permiso}. This activity extends {@link PermisoActivity} in order
+ * to handle some boilerplate. If you don't want to extend {@link PermisoActivity}, check out
+ * {@link NonPermisoActivity}.
*/
public class MainActivity extends PermisoActivity {
-
// =====================================================================
// Overrides
// =====================================================================
@@ -44,6 +44,12 @@ public void onClick(View v) {
onDuplicateClick();
}
});
+ findViewById(R.id.btn_non_permiso).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onNonPermisoClick();
+ }
+ });
}
@@ -137,4 +143,11 @@ public void onRationaleRequested(Permiso.IOnRationaleProvided callback, String..
}
}, Manifest.permission.CAMERA);
}
+
+ /**
+ * Starts {@link NonPermisoActivity}.
+ */
+ private void onNonPermisoClick() {
+ startActivity(new Intent(this, NonPermisoActivity.class));
+ }
}
diff --git a/app/src/main/java/com/greysonparrelli/permisodemo/NonPermisoActivity.java b/app/src/main/java/com/greysonparrelli/permisodemo/NonPermisoActivity.java
new file mode 100644
index 0000000..9db92ba
--- /dev/null
+++ b/app/src/main/java/com/greysonparrelli/permisodemo/NonPermisoActivity.java
@@ -0,0 +1,76 @@
+package com.greysonparrelli.permisodemo;
+
+import android.Manifest;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.view.View;
+import android.widget.Toast;
+
+import com.greysonparrelli.permiso.Permiso;
+
+/**
+ * Created to demonstrate how to use Permiso without extending PermisoActivity.
+ */
+public class NonPermisoActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_non_permiso);
+
+ //
+ // First, tell Permiso that you're using this activity
+ //
+ Permiso.getInstance().setActivity(this);
+
+ findViewById(R.id.btn_request).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ onRequestClick();
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
+ //
+ // Second, we also have to set the activity here to handle transitioning between activities
+ //
+ Permiso.getInstance().setActivity(this);
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ //
+ // Third, forward the results of this method to Permiso
+ //
+ Permiso.getInstance().onRequestPermissionResult(requestCode, permissions, grantResults);
+ }
+
+ private void onRequestClick() {
+ //
+ // And that's it! Now you can make permission requests as usual
+ //
+ Permiso.getInstance().requestPermissions(new Permiso.IOnPermissionResult() {
+ @Override
+ public void onPermissionResult(Permiso.ResultSet resultSet) {
+ if (resultSet.areAllPermissionsGranted()) {
+ Toast.makeText(NonPermisoActivity.this, "Permission Granted!", Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(NonPermisoActivity.this, "Permission Denied.", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onRationaleRequested(Permiso.IOnRationaleProvided callback, String... permissions) {
+ Permiso.getInstance().showRationaleInDialog("Permission Rationale", "Needed for demo purposes.", null, callback);
+ }
+ }, Manifest.permission.READ_EXTERNAL_STORAGE);
+ }
+
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 18aad76..ae580eb 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -26,4 +26,10 @@
android:layout_height="wrap_content"
android:text="Request Duplicate Permissions"/>
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_non_permiso.xml b/app/src/main/res/layout/activity_non_permiso.xml
new file mode 100644
index 0000000..fd1bdc4
--- /dev/null
+++ b/app/src/main/res/layout/activity_non_permiso.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
deleted file mode 100644
index 9204601..0000000
--- a/app/src/main/res/layout/content_main.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
diff --git a/permiso/build.gradle b/permiso/build.gradle
index dc337fe..52b8f45 100644
--- a/permiso/build.gradle
+++ b/permiso/build.gradle
@@ -8,12 +8,12 @@ ext {
libraryName = 'Permiso'
artifact = 'permiso'
- libraryDescription = 'An Android library that makes dealing with the Android Marshmallow permission system a bit easier.'
+ libraryDescription = 'An Android library to make handling runtime permissions a whole lot easier.'
siteUrl = 'https://github.com/greysonp/permiso'
gitUrl = 'https://github.com/greysonp/permiso.git'
- libraryVersion = '0.1.0'
+ libraryVersion = '0.1.1'
developerId = 'greysonp'
developerName = 'Greyson Parrelli'
@@ -45,7 +45,7 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:23.1.0'
+ compile 'com.android.support:appcompat-v7:23.1.1'
}
// Only add in the bintray stuff if we're building locally
diff --git a/permiso/src/main/java/com/greysonparrelli/permiso/PermisoActivity.java b/permiso/src/main/java/com/greysonparrelli/permiso/PermisoActivity.java
index 93d12c6..32a417b 100644
--- a/permiso/src/main/java/com/greysonparrelli/permiso/PermisoActivity.java
+++ b/permiso/src/main/java/com/greysonparrelli/permiso/PermisoActivity.java
@@ -2,13 +2,14 @@
import android.app.Activity;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
/**
* An Activity that handles the small amount of boilerplate that {@link Permiso} requires to run. If you'd rather not
* use this as your base activity class, simply remember to do the following in each of your activities:
*
- * - Call {@link Permiso#setActivity(Activity)} in {@link Activity#onCreate(Bundle)}
+ * - Call {@link Permiso#setActivity(Activity)} in {@link Activity#onCreate(Bundle)} and {@link Activity#onResume()}
* - Call {@link Permiso#onRequestPermissionResult(int, String[], int[])} in
* {@link Activity#onRequestPermissionsResult(int, String[], int[])}
*
@@ -22,7 +23,13 @@ protected void onCreate(Bundle savedInstanceState) {
}
@Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ protected void onResume() {
+ super.onResume();
+ Permiso.getInstance().setActivity(this);
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Permiso.getInstance().onRequestPermissionResult(requestCode, permissions, grantResults);
}