Skip to content
This repository was archived by the owner on Oct 3, 2024. It is now read-only.

Commit 1cad4c5

Browse files
authored
Version 2.0
2 parents 09232df + 488e3ed commit 1cad4c5

20 files changed

+92
-671
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ EasyPermissions is installed by adding the following dependency to your `build.g
99

1010
```groovy
1111
dependencies {
12-
   implementation 'pub.devrel:easypermissions:1.3.0'
12+
   implementation 'pub.devrel:easypermissions:2.0.0'
1313
}
1414
```
1515

build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
}
66

77
dependencies {
8-
classpath 'com.android.tools.build:gradle:3.0.1'
8+
classpath 'com.android.tools.build:gradle:3.2.0-rc03'
99
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
1010
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.3'
1111
}
@@ -30,12 +30,12 @@ ext {
3030

3131
mavenGroup = 'pub.devrel'
3232
mavenArtifactId = 'easypermissions'
33-
mavenVersion = '1.3.0'
33+
mavenVersion = '2.0.0'
3434

3535
bintrayOrg = 'easygoogle'
3636

37-
support_library_version = '27.1.1'
37+
support_library_version = '28.0.0'
3838

39-
compileSdk = 27
40-
targetSdk = 27
41-
}
39+
compileSdk = 28
40+
targetSdk = 28
41+
}

easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,6 @@ private void setActivityOrFragment(Object activityOrFragment) {
9393
mContext = (Activity) activityOrFragment;
9494
} else if (activityOrFragment instanceof Fragment) {
9595
mContext = ((Fragment) activityOrFragment).getContext();
96-
} else if (activityOrFragment instanceof android.app.Fragment) {
97-
mContext = ((android.app.Fragment) activityOrFragment).getActivity();
9896
} else {
9997
throw new IllegalStateException("Unknown object: " + activityOrFragment);
10098
}
@@ -105,9 +103,6 @@ private void startForResult(Intent intent) {
105103
((Activity) mActivityOrFragment).startActivityForResult(intent, mRequestCode);
106104
} else if (mActivityOrFragment instanceof Fragment) {
107105
((Fragment) mActivityOrFragment).startActivityForResult(intent, mRequestCode);
108-
} else if (mActivityOrFragment instanceof android.app.Fragment) {
109-
((android.app.Fragment) mActivityOrFragment).startActivityForResult(intent,
110-
mRequestCode);
111106
}
112107
}
113108

@@ -194,16 +189,6 @@ public Builder(@NonNull Fragment fragment) {
194189
mContext = fragment.getContext();
195190
}
196191

197-
/**
198-
* Create a new Builder for an {@link AppSettingsDialog}.
199-
*
200-
* @param fragment the {@link android.app.Fragment} in which to display the dialog.
201-
*/
202-
public Builder(@NonNull android.app.Fragment fragment) {
203-
mActivityOrFragment = fragment;
204-
mContext = fragment.getActivity();
205-
}
206-
207192
/**
208193
* Set the dialog theme.
209194
*/

easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java

Lines changed: 0 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,11 @@
1717

1818
import android.Manifest;
1919
import android.app.Activity;
20-
import android.app.Dialog;
2120
import android.content.Context;
22-
import android.content.DialogInterface;
2321
import android.content.pm.PackageManager;
2422
import android.os.Build;
2523
import android.support.annotation.NonNull;
2624
import android.support.annotation.Size;
27-
import android.support.annotation.StringRes;
2825
import android.support.v4.app.ActivityCompat;
2926
import android.support.v4.app.Fragment;
3027
import android.support.v4.content.ContextCompat;
@@ -132,82 +129,6 @@ public static void requestPermissions(
132129
.build());
133130
}
134131

135-
/**
136-
* Request permissions from a standard Fragment with standard OK/Cancel buttons.
137-
*
138-
* @see #requestPermissions(Activity, String, int, String...)
139-
*/
140-
public static void requestPermissions(
141-
@NonNull android.app.Fragment host, @NonNull String rationale,
142-
int requestCode, @Size(min = 1) @NonNull String... perms) {
143-
requestPermissions(
144-
new PermissionRequest.Builder(host, requestCode, perms)
145-
.setRationale(rationale)
146-
.build());
147-
}
148-
149-
/**
150-
* Request a set of permissions, showing rationale if the system requests it.
151-
*
152-
* @param host requesting context.
153-
* @param rationale a message explaining why the application needs this set of permissions,
154-
* will be displayed if the user rejects the request the first time.
155-
* @param positiveButton custom text for positive button
156-
* @param negativeButton custom text for negative button
157-
* @param requestCode request code to track this request, must be < 256.
158-
* @param perms a set of permissions to be requested.
159-
* @see Manifest.permission
160-
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
161-
*/
162-
@Deprecated
163-
public static void requestPermissions(
164-
@NonNull Activity host, @NonNull String rationale,
165-
@StringRes int positiveButton, @StringRes int negativeButton,
166-
int requestCode, @Size(min = 1) @NonNull String... perms) {
167-
requestPermissions(
168-
new PermissionRequest.Builder(host, requestCode, perms)
169-
.setRationale(rationale)
170-
.setPositiveButtonText(positiveButton)
171-
.setNegativeButtonText(negativeButton)
172-
.build());
173-
}
174-
175-
/**
176-
* Request permissions from a Support Fragment.
177-
*
178-
* @see #requestPermissions(Activity, String, int, int, int, String...)
179-
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
180-
*/
181-
@Deprecated
182-
public static void requestPermissions(
183-
@NonNull Fragment host, @NonNull String rationale,
184-
@StringRes int positiveButton, @StringRes int negativeButton,
185-
int requestCode, @Size(min = 1) @NonNull String... perms) {
186-
requestPermissions(
187-
new PermissionRequest.Builder(host, requestCode, perms)
188-
.setRationale(rationale)
189-
.setPositiveButtonText(positiveButton)
190-
.setNegativeButtonText(negativeButton)
191-
.build());
192-
}
193-
194-
/**
195-
* @see #requestPermissions(Activity, String, int, int, int, String...)
196-
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
197-
*/
198-
@Deprecated
199-
public static void requestPermissions(
200-
@NonNull android.app.Fragment host, @NonNull String rationale,
201-
@StringRes int positiveButton, @StringRes int negativeButton,
202-
int requestCode, @Size(min = 1) @NonNull String... perms) {
203-
requestPermissions(
204-
new PermissionRequest.Builder(host, requestCode, perms)
205-
.setRationale(rationale)
206-
.setPositiveButtonText(positiveButton)
207-
.setNegativeButtonText(negativeButton)
208-
.build());
209-
}
210-
211132
/**
212133
* Request a set of permissions.
213134
*
@@ -317,15 +238,6 @@ public static boolean somePermissionPermanentlyDenied(@NonNull Fragment host,
317238
.somePermissionPermanentlyDenied(deniedPermissions);
318239
}
319240

320-
/**
321-
* @see #somePermissionPermanentlyDenied(Activity, List).
322-
*/
323-
public static boolean somePermissionPermanentlyDenied(@NonNull android.app.Fragment host,
324-
@NonNull List<String> deniedPermissions) {
325-
return PermissionHelper.newInstance(host)
326-
.somePermissionPermanentlyDenied(deniedPermissions);
327-
}
328-
329241
/**
330242
* Check if a permission has been permanently denied (user clicked "Never ask again").
331243
*
@@ -346,14 +258,6 @@ public static boolean permissionPermanentlyDenied(@NonNull Fragment host,
346258
return PermissionHelper.newInstance(host).permissionPermanentlyDenied(deniedPermission);
347259
}
348260

349-
/**
350-
* @see #permissionPermanentlyDenied(Activity, String).
351-
*/
352-
public static boolean permissionPermanentlyDenied(@NonNull android.app.Fragment host,
353-
@NonNull String deniedPermission) {
354-
return PermissionHelper.newInstance(host).permissionPermanentlyDenied(deniedPermission);
355-
}
356-
357261
/**
358262
* See if some denied permission has been permanently denied.
359263
*
@@ -375,14 +279,6 @@ public static boolean somePermissionDenied(@NonNull Fragment host,
375279
return PermissionHelper.newInstance(host).somePermissionDenied(perms);
376280
}
377281

378-
/**
379-
* @see #somePermissionDenied(Activity, String...)
380-
*/
381-
public static boolean somePermissionDenied(@NonNull android.app.Fragment host,
382-
@NonNull String... perms) {
383-
return PermissionHelper.newInstance(host).somePermissionDenied(perms);
384-
}
385-
386282
/**
387283
* Run permission callbacks on an object that requested permissions but already has them by
388284
* simulating {@link PackageManager#PERMISSION_GRANTED}.

easypermissions/src/main/java/pub/devrel/easypermissions/PermissionRequest.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -150,16 +150,6 @@ public Builder(@NonNull Fragment fragment, int requestCode,
150150
mPerms = perms;
151151
}
152152

153-
/**
154-
* @see #Builder(Activity, int, String...)
155-
*/
156-
public Builder(@NonNull android.app.Fragment fragment, int requestCode,
157-
@NonNull @Size(min = 1) String... perms) {
158-
mHelper = PermissionHelper.newInstance(fragment);
159-
mRequestCode = requestCode;
160-
mPerms = perms;
161-
}
162-
163153
/**
164154
* Set the rationale to display to the user if they don't allow your permissions on the
165155
* first try. This rationale will be shown as long as the user has denied your permissions

easypermissions/src/main/java/pub/devrel/easypermissions/RationaleDialogClickListener.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.app.Activity;
44
import android.app.Dialog;
55
import android.content.DialogInterface;
6-
import android.os.Build;
76
import android.support.v4.app.Fragment;
87

98
import java.util.Arrays;
@@ -40,13 +39,7 @@ class RationaleDialogClickListener implements Dialog.OnClickListener {
4039
EasyPermissions.PermissionCallbacks callbacks,
4140
EasyPermissions.RationaleCallbacks dialogCallback) {
4241

43-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
44-
mHost = dialogFragment.getParentFragment() != null ?
45-
dialogFragment.getParentFragment() :
46-
dialogFragment.getActivity();
47-
} else {
48-
mHost = dialogFragment.getActivity();
49-
}
42+
mHost = dialogFragment.getActivity();
5043

5144
mConfig = config;
5245
mCallbacks = callbacks;
@@ -63,8 +56,6 @@ public void onClick(DialogInterface dialog, int which) {
6356
}
6457
if (mHost instanceof Fragment) {
6558
PermissionHelper.newInstance((Fragment) mHost).directRequestPermissions(requestCode, permissions);
66-
} else if (mHost instanceof android.app.Fragment) {
67-
PermissionHelper.newInstance((android.app.Fragment) mHost).directRequestPermissions(requestCode, permissions);
6859
} else if (mHost instanceof Activity) {
6960
PermissionHelper.newInstance((Activity) mHost).directRequestPermissions(requestCode, permissions);
7061
} else {

easypermissions/src/main/java/pub/devrel/easypermissions/helper/ActivityPermissionHelper.java

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
package pub.devrel.easypermissions.helper;
22

33
import android.app.Activity;
4+
import android.app.Fragment;
45
import android.app.FragmentManager;
56
import android.content.Context;
67
import android.support.annotation.NonNull;
8+
import android.support.annotation.StyleRes;
79
import android.support.v4.app.ActivityCompat;
10+
import android.util.Log;
11+
12+
import pub.devrel.easypermissions.RationaleDialogFragment;
813

914
/**
1015
* Permissions helper for {@link Activity}.
1116
*/
12-
class ActivityPermissionHelper extends BaseFrameworkPermissionsHelper<Activity> {
17+
class ActivityPermissionHelper extends PermissionHelper<Activity> {
18+
private static final String TAG = "ActPermissionHelper";
1319

1420
public ActivityPermissionHelper(Activity host) {
1521
super(host);
1622
}
1723

18-
@Override
19-
public FragmentManager getFragmentManager() {
20-
return getHost().getFragmentManager();
21-
}
22-
2324
@Override
2425
public void directRequestPermissions(int requestCode, @NonNull String... perms) {
2526
ActivityCompat.requestPermissions(getHost(), perms, requestCode);
@@ -34,4 +35,25 @@ public boolean shouldShowRequestPermissionRationale(@NonNull String perm) {
3435
public Context getContext() {
3536
return getHost();
3637
}
38+
39+
@Override
40+
public void showRequestPermissionRationale(@NonNull String rationale,
41+
@NonNull String positiveButton,
42+
@NonNull String negativeButton,
43+
@StyleRes int theme,
44+
int requestCode,
45+
@NonNull String... perms) {
46+
FragmentManager fm = getHost().getFragmentManager();
47+
48+
// Check if fragment is already showing
49+
Fragment fragment = fm.findFragmentByTag(RationaleDialogFragment.TAG);
50+
if (fragment instanceof RationaleDialogFragment) {
51+
Log.d(TAG, "Found existing fragment, not showing rationale.");
52+
return;
53+
}
54+
55+
RationaleDialogFragment
56+
.newInstance(positiveButton, negativeButton, rationale, theme, requestCode, perms)
57+
.showAllowingStateLoss(fm, RationaleDialogFragment.TAG);
58+
}
3759
}

easypermissions/src/main/java/pub/devrel/easypermissions/helper/BaseFrameworkPermissionsHelper.java

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
import android.content.Context;
44
import android.support.annotation.NonNull;
55
import android.support.v4.app.ActivityCompat;
6+
import android.support.v4.app.FragmentActivity;
67
import android.support.v4.app.FragmentManager;
78
import android.support.v7.app.AppCompatActivity;
89

910
/**
1011
* Permissions helper for {@link AppCompatActivity}.
1112
*/
12-
class AppCompatActivityPermissionHelper extends BaseSupportPermissionsHelper<AppCompatActivity> {
13+
class FragmentActivityPermissionHelper extends BaseSupportPermissionsHelper<FragmentActivity> {
1314

14-
public AppCompatActivityPermissionHelper(AppCompatActivity host) {
15+
public FragmentActivityPermissionHelper(FragmentActivity host) {
1516
super(host);
1617
}
1718

0 commit comments

Comments
 (0)