Skip to content
This repository was archived by the owner on Oct 3, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ EasyPermissions is installed by adding the following dependency to your `build.g

```groovy
dependencies {
   implementation 'pub.devrel:easypermissions:1.3.0'
   implementation 'pub.devrel:easypermissions:2.0.0'
}
```

Expand Down
12 changes: 6 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.android.tools.build:gradle:3.2.0-rc03'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.3'
}
Expand All @@ -30,12 +30,12 @@ ext {

mavenGroup = 'pub.devrel'
mavenArtifactId = 'easypermissions'
mavenVersion = '1.3.0'
mavenVersion = '2.0.0'

bintrayOrg = 'easygoogle'

support_library_version = '27.1.1'
support_library_version = '28.0.0'

compileSdk = 27
targetSdk = 27
}
compileSdk = 28
targetSdk = 28
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,6 @@ private void setActivityOrFragment(Object activityOrFragment) {
mContext = (Activity) activityOrFragment;
} else if (activityOrFragment instanceof Fragment) {
mContext = ((Fragment) activityOrFragment).getContext();
} else if (activityOrFragment instanceof android.app.Fragment) {
mContext = ((android.app.Fragment) activityOrFragment).getActivity();
} else {
throw new IllegalStateException("Unknown object: " + activityOrFragment);
}
Expand All @@ -105,9 +103,6 @@ private void startForResult(Intent intent) {
((Activity) mActivityOrFragment).startActivityForResult(intent, mRequestCode);
} else if (mActivityOrFragment instanceof Fragment) {
((Fragment) mActivityOrFragment).startActivityForResult(intent, mRequestCode);
} else if (mActivityOrFragment instanceof android.app.Fragment) {
((android.app.Fragment) mActivityOrFragment).startActivityForResult(intent,
mRequestCode);
}
}

Expand Down Expand Up @@ -194,16 +189,6 @@ public Builder(@NonNull Fragment fragment) {
mContext = fragment.getContext();
}

/**
* Create a new Builder for an {@link AppSettingsDialog}.
*
* @param fragment the {@link android.app.Fragment} in which to display the dialog.
*/
public Builder(@NonNull android.app.Fragment fragment) {
mActivityOrFragment = fragment;
mContext = fragment.getActivity();
}

/**
* Set the dialog theme.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,11 @@

import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Size;
import android.support.annotation.StringRes;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
Expand Down Expand Up @@ -132,82 +129,6 @@ public static void requestPermissions(
.build());
}

/**
* Request permissions from a standard Fragment with standard OK/Cancel buttons.
*
* @see #requestPermissions(Activity, String, int, String...)
*/
public static void requestPermissions(
@NonNull android.app.Fragment host, @NonNull String rationale,
int requestCode, @Size(min = 1) @NonNull String... perms) {
requestPermissions(
new PermissionRequest.Builder(host, requestCode, perms)
.setRationale(rationale)
.build());
}

/**
* Request a set of permissions, showing rationale if the system requests it.
*
* @param host requesting context.
* @param rationale a message explaining why the application needs this set of permissions,
* will be displayed if the user rejects the request the first time.
* @param positiveButton custom text for positive button
* @param negativeButton custom text for negative button
* @param requestCode request code to track this request, must be < 256.
* @param perms a set of permissions to be requested.
* @see Manifest.permission
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
*/
@Deprecated
public static void requestPermissions(
@NonNull Activity host, @NonNull String rationale,
@StringRes int positiveButton, @StringRes int negativeButton,
int requestCode, @Size(min = 1) @NonNull String... perms) {
requestPermissions(
new PermissionRequest.Builder(host, requestCode, perms)
.setRationale(rationale)
.setPositiveButtonText(positiveButton)
.setNegativeButtonText(negativeButton)
.build());
}

/**
* Request permissions from a Support Fragment.
*
* @see #requestPermissions(Activity, String, int, int, int, String...)
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
*/
@Deprecated
public static void requestPermissions(
@NonNull Fragment host, @NonNull String rationale,
@StringRes int positiveButton, @StringRes int negativeButton,
int requestCode, @Size(min = 1) @NonNull String... perms) {
requestPermissions(
new PermissionRequest.Builder(host, requestCode, perms)
.setRationale(rationale)
.setPositiveButtonText(positiveButton)
.setNegativeButtonText(negativeButton)
.build());
}

/**
* @see #requestPermissions(Activity, String, int, int, int, String...)
* @deprecated use {@link #requestPermissions(PermissionRequest)} instead
*/
@Deprecated
public static void requestPermissions(
@NonNull android.app.Fragment host, @NonNull String rationale,
@StringRes int positiveButton, @StringRes int negativeButton,
int requestCode, @Size(min = 1) @NonNull String... perms) {
requestPermissions(
new PermissionRequest.Builder(host, requestCode, perms)
.setRationale(rationale)
.setPositiveButtonText(positiveButton)
.setNegativeButtonText(negativeButton)
.build());
}

/**
* Request a set of permissions.
*
Expand Down Expand Up @@ -317,15 +238,6 @@ public static boolean somePermissionPermanentlyDenied(@NonNull Fragment host,
.somePermissionPermanentlyDenied(deniedPermissions);
}

/**
* @see #somePermissionPermanentlyDenied(Activity, List).
*/
public static boolean somePermissionPermanentlyDenied(@NonNull android.app.Fragment host,
@NonNull List<String> deniedPermissions) {
return PermissionHelper.newInstance(host)
.somePermissionPermanentlyDenied(deniedPermissions);
}

/**
* Check if a permission has been permanently denied (user clicked "Never ask again").
*
Expand All @@ -346,14 +258,6 @@ public static boolean permissionPermanentlyDenied(@NonNull Fragment host,
return PermissionHelper.newInstance(host).permissionPermanentlyDenied(deniedPermission);
}

/**
* @see #permissionPermanentlyDenied(Activity, String).
*/
public static boolean permissionPermanentlyDenied(@NonNull android.app.Fragment host,
@NonNull String deniedPermission) {
return PermissionHelper.newInstance(host).permissionPermanentlyDenied(deniedPermission);
}

/**
* See if some denied permission has been permanently denied.
*
Expand All @@ -375,14 +279,6 @@ public static boolean somePermissionDenied(@NonNull Fragment host,
return PermissionHelper.newInstance(host).somePermissionDenied(perms);
}

/**
* @see #somePermissionDenied(Activity, String...)
*/
public static boolean somePermissionDenied(@NonNull android.app.Fragment host,
@NonNull String... perms) {
return PermissionHelper.newInstance(host).somePermissionDenied(perms);
}

/**
* Run permission callbacks on an object that requested permissions but already has them by
* simulating {@link PackageManager#PERMISSION_GRANTED}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,16 +150,6 @@ public Builder(@NonNull Fragment fragment, int requestCode,
mPerms = perms;
}

/**
* @see #Builder(Activity, int, String...)
*/
public Builder(@NonNull android.app.Fragment fragment, int requestCode,
@NonNull @Size(min = 1) String... perms) {
mHelper = PermissionHelper.newInstance(fragment);
mRequestCode = requestCode;
mPerms = perms;
}

/**
* Set the rationale to display to the user if they don't allow your permissions on the
* first try. This rationale will be shown as long as the user has denied your permissions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Build;
import android.support.v4.app.Fragment;

import java.util.Arrays;
Expand Down Expand Up @@ -40,13 +39,7 @@ class RationaleDialogClickListener implements Dialog.OnClickListener {
EasyPermissions.PermissionCallbacks callbacks,
EasyPermissions.RationaleCallbacks dialogCallback) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
mHost = dialogFragment.getParentFragment() != null ?
dialogFragment.getParentFragment() :
dialogFragment.getActivity();
} else {
mHost = dialogFragment.getActivity();
}
mHost = dialogFragment.getActivity();

mConfig = config;
mCallbacks = callbacks;
Expand All @@ -63,8 +56,6 @@ public void onClick(DialogInterface dialog, int which) {
}
if (mHost instanceof Fragment) {
PermissionHelper.newInstance((Fragment) mHost).directRequestPermissions(requestCode, permissions);
} else if (mHost instanceof android.app.Fragment) {
PermissionHelper.newInstance((android.app.Fragment) mHost).directRequestPermissions(requestCode, permissions);
} else if (mHost instanceof Activity) {
PermissionHelper.newInstance((Activity) mHost).directRequestPermissions(requestCode, permissions);
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
package pub.devrel.easypermissions.helper;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.StyleRes;
import android.support.v4.app.ActivityCompat;
import android.util.Log;

import pub.devrel.easypermissions.RationaleDialogFragment;

/**
* Permissions helper for {@link Activity}.
*/
class ActivityPermissionHelper extends BaseFrameworkPermissionsHelper<Activity> {
class ActivityPermissionHelper extends PermissionHelper<Activity> {
private static final String TAG = "ActPermissionHelper";

public ActivityPermissionHelper(Activity host) {
super(host);
}

@Override
public FragmentManager getFragmentManager() {
return getHost().getFragmentManager();
}

@Override
public void directRequestPermissions(int requestCode, @NonNull String... perms) {
ActivityCompat.requestPermissions(getHost(), perms, requestCode);
Expand All @@ -34,4 +35,25 @@ public boolean shouldShowRequestPermissionRationale(@NonNull String perm) {
public Context getContext() {
return getHost();
}

@Override
public void showRequestPermissionRationale(@NonNull String rationale,
@NonNull String positiveButton,
@NonNull String negativeButton,
@StyleRes int theme,
int requestCode,
@NonNull String... perms) {
FragmentManager fm = getHost().getFragmentManager();

// Check if fragment is already showing
Fragment fragment = fm.findFragmentByTag(RationaleDialogFragment.TAG);
if (fragment instanceof RationaleDialogFragment) {
Log.d(TAG, "Found existing fragment, not showing rationale.");
return;
}

RationaleDialogFragment
.newInstance(positiveButton, negativeButton, rationale, theme, requestCode, perms)
.showAllowingStateLoss(fm, RationaleDialogFragment.TAG);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;

/**
* Permissions helper for {@link AppCompatActivity}.
*/
class AppCompatActivityPermissionHelper extends BaseSupportPermissionsHelper<AppCompatActivity> {
class FragmentActivityPermissionHelper extends BaseSupportPermissionsHelper<FragmentActivity> {

public AppCompatActivityPermissionHelper(AppCompatActivity host) {
public FragmentActivityPermissionHelper(FragmentActivity host) {
super(host);
}

Expand Down
Loading