diff --git a/README.md b/README.md index e4dbbcf..8cfa352 100644 --- a/README.md +++ b/README.md @@ -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' } ``` diff --git a/build.gradle b/build.gradle index 7a4cb42..17067c8 100644 --- a/build.gradle +++ b/build.gradle @@ -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' } @@ -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 -} \ No newline at end of file + compileSdk = 28 + targetSdk = 28 +} diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java b/easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java index 3749145..985f5b2 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/AppSettingsDialog.java @@ -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); } @@ -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); } } @@ -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. */ diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java b/easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java index b9885ab..26fb945 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/EasyPermissions.java @@ -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; @@ -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. * @@ -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 deniedPermissions) { - return PermissionHelper.newInstance(host) - .somePermissionPermanentlyDenied(deniedPermissions); - } - /** * Check if a permission has been permanently denied (user clicked "Never ask again"). * @@ -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. * @@ -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}. diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/PermissionRequest.java b/easypermissions/src/main/java/pub/devrel/easypermissions/PermissionRequest.java index a9e4b1a..343d7c6 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/PermissionRequest.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/PermissionRequest.java @@ -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 diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/RationaleDialogClickListener.java b/easypermissions/src/main/java/pub/devrel/easypermissions/RationaleDialogClickListener.java index aadb56e..831f3fa 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/RationaleDialogClickListener.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/RationaleDialogClickListener.java @@ -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; @@ -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; @@ -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 { diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/ActivityPermissionHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/ActivityPermissionHelper.java index 7be70ff..82442ca 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/ActivityPermissionHelper.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/ActivityPermissionHelper.java @@ -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 { +class ActivityPermissionHelper extends PermissionHelper { + 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); @@ -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); + } } diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/BaseFrameworkPermissionsHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/BaseFrameworkPermissionsHelper.java deleted file mode 100644 index 243bb74..0000000 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/BaseFrameworkPermissionsHelper.java +++ /dev/null @@ -1,44 +0,0 @@ -package pub.devrel.easypermissions.helper; - -import android.app.FragmentManager; -import android.support.annotation.NonNull; -import android.support.annotation.StyleRes; -import android.app.Fragment; -import android.util.Log; - -import pub.devrel.easypermissions.RationaleDialogFragment; - -/** - * Implementation of {@link PermissionHelper} for framework host classes. - */ -public abstract class BaseFrameworkPermissionsHelper extends PermissionHelper { - - private static final String TAG = "BFPermissionsHelper"; - - public BaseFrameworkPermissionsHelper(@NonNull T host) { - super(host); - } - - public abstract FragmentManager getFragmentManager(); - - @Override - public void showRequestPermissionRationale(@NonNull String rationale, - @NonNull String positiveButton, - @NonNull String negativeButton, - @StyleRes int theme, - int requestCode, - @NonNull String... perms) { - FragmentManager fm = 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); - } -} diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/AppCompatActivityPermissionHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/FragmentActivityPermissionHelper.java similarity index 81% rename from easypermissions/src/main/java/pub/devrel/easypermissions/helper/AppCompatActivityPermissionHelper.java rename to easypermissions/src/main/java/pub/devrel/easypermissions/helper/FragmentActivityPermissionHelper.java index f0a4c62..eb8f4a5 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/AppCompatActivityPermissionHelper.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/FragmentActivityPermissionHelper.java @@ -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 { +class FragmentActivityPermissionHelper extends BaseSupportPermissionsHelper { - public AppCompatActivityPermissionHelper(AppCompatActivity host) { + public FragmentActivityPermissionHelper(FragmentActivity host) { super(host); } diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/FrameworkFragmentPermissionHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/FrameworkFragmentPermissionHelper.java deleted file mode 100644 index 501a2e9..0000000 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/FrameworkFragmentPermissionHelper.java +++ /dev/null @@ -1,42 +0,0 @@ -package pub.devrel.easypermissions.helper; - -import android.annotation.SuppressLint; -import android.app.Fragment; -import android.app.FragmentManager; -import android.content.Context; -import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.RequiresApi; - -/** - * Permissions helper for {@link Fragment} from the framework. - */ -class FrameworkFragmentPermissionHelper extends BaseFrameworkPermissionsHelper { - - public FrameworkFragmentPermissionHelper(@NonNull Fragment host) { - super(host); - } - - @Override - @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1) - public FragmentManager getFragmentManager() { - return getHost().getChildFragmentManager(); - } - - @Override - @SuppressLint("NewApi") - public void directRequestPermissions(int requestCode, @NonNull String... perms) { - getHost().requestPermissions(perms, requestCode); - } - - @Override - @SuppressLint("NewApi") - public boolean shouldShowRequestPermissionRationale(@NonNull String perm) { - return getHost().shouldShowRequestPermissionRationale(perm); - } - - @Override - public Context getContext() { - return getHost().getActivity(); - } -} diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/LowApiPermissionsHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/LowApiPermissionsHelper.java index c76ff9f..4d44835 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/LowApiPermissionsHelper.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/LowApiPermissionsHelper.java @@ -40,8 +40,6 @@ public Context getContext() { return (Context) getHost(); } else if (getHost() instanceof Fragment) { return ((Fragment) getHost()).getContext(); - } else if (getHost() instanceof android.app.Fragment) { - return ((android.app.Fragment) getHost()).getActivity(); } else { throw new IllegalStateException("Unknown host: " + getHost()); } diff --git a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/PermissionHelper.java b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/PermissionHelper.java index e278120..36875d1 100644 --- a/easypermissions/src/main/java/pub/devrel/easypermissions/helper/PermissionHelper.java +++ b/easypermissions/src/main/java/pub/devrel/easypermissions/helper/PermissionHelper.java @@ -6,7 +6,7 @@ import android.support.annotation.NonNull; import android.support.annotation.StyleRes; import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; +import android.support.v4.app.FragmentActivity; import java.util.List; @@ -23,8 +23,8 @@ public static PermissionHelper newInstance(Activity host) { return new LowApiPermissionsHelper(host); } - if (host instanceof AppCompatActivity) - return new AppCompatActivityPermissionHelper((AppCompatActivity) host); + if (host instanceof FragmentActivity) + return new FragmentActivityPermissionHelper((FragmentActivity) host); else { return new ActivityPermissionHelper(host); } @@ -39,15 +39,6 @@ public static PermissionHelper newInstance(Fragment host) { return new SupportFragmentPermissionHelper(host); } - @NonNull - public static PermissionHelper newInstance(android.app.Fragment host) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - return new LowApiPermissionsHelper(host); - } - - return new FrameworkFragmentPermissionHelper(host); - } - // ============================================================================ // Public concrete methods // ============================================================================ diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/AppSettingsDialogTest.java b/easypermissions/src/test/java/pub/devrel/easypermissions/AppSettingsDialogTest.java index 6d78add..d36a2b3 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/AppSettingsDialogTest.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/AppSettingsDialogTest.java @@ -18,7 +18,6 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; -import org.robolectric.android.controller.FragmentController; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.ShadowIntent; @@ -28,7 +27,6 @@ import pub.devrel.easypermissions.testhelper.TestActivity; import pub.devrel.easypermissions.testhelper.TestFragment; -import pub.devrel.easypermissions.testhelper.TestSupportFragment; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -49,10 +47,8 @@ public class AppSettingsDialogTest { private ShadowApplication shadowApp; private TestActivity spyActivity; private TestFragment spyFragment; - private TestSupportFragment spySupportFragment; private ActivityController activityController; - private FragmentController fragmentController; - private SupportFragmentController supportFragmentController; + private SupportFragmentController fragmentController; @Mock private DialogInterface.OnClickListener positiveListener; @Mock @@ -132,10 +128,8 @@ public void shouldNegativeListener_whenClickingPositiveButtonFromActivity() { .onClick(any(DialogInterface.class), anyInt()); } - // ------ From Fragment ------ - @Test - public void shouldShowExpectedSettingsDialog_whenBuildingFromFragment() { + public void shouldShowExpectedSettingsDialog_whenBuildingFromSupportFragment() { new AppSettingsDialog.Builder(spyFragment) .setTitle(android.R.string.dialog_alert_title) .setRationale(android.R.string.unknownName) @@ -156,67 +150,9 @@ public void shouldShowExpectedSettingsDialog_whenBuildingFromFragment() { assertThat(shadowIntent.getIntentClass()).isEqualTo(AppSettingsDialogHolderActivity.class); } - @Test - public void shouldPositiveListener_whenClickingPositiveButtonFromFragment() { - AlertDialog alertDialog = new AppSettingsDialog.Builder(spyFragment) - .setTitle(TITLE) - .setRationale(RATIONALE) - .setPositiveButton(POSITIVE) - .setNegativeButton(NEGATIVE) - .setThemeResId(R.style.Theme_AppCompat) - .build() - .showDialog(positiveListener, negativeListener); - Button positive = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); - positive.performClick(); - - verify(positiveListener, times(1)) - .onClick(any(DialogInterface.class), anyInt()); - } - - @Test - public void shouldNegativeListener_whenClickingPositiveButtonFromFragment() { - AlertDialog alertDialog = new AppSettingsDialog.Builder(spyFragment) - .setTitle(TITLE) - .setRationale(RATIONALE) - .setPositiveButton(POSITIVE) - .setNegativeButton(NEGATIVE) - .setThemeResId(R.style.Theme_AppCompat) - .build() - .showDialog(positiveListener, negativeListener); - Button positive = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE); - positive.performClick(); - - verify(negativeListener, times(1)) - .onClick(any(DialogInterface.class), anyInt()); - } - - // ------ From Support Fragment ------ - - @Test - public void shouldShowExpectedSettingsDialog_whenBuildingFromSupportFragment() { - new AppSettingsDialog.Builder(spySupportFragment) - .setTitle(android.R.string.dialog_alert_title) - .setRationale(android.R.string.unknownName) - .setPositiveButton(android.R.string.ok) - .setNegativeButton(android.R.string.cancel) - .setThemeResId(R.style.Theme_AppCompat) - .build() - .show(); - - verify(spySupportFragment, times(1)) - .startActivityForResult(intentCaptor.capture(), integerCaptor.capture()); - assertThat(integerCaptor.getValue()).isEqualTo(DEFAULT_SETTINGS_REQ_CODE); - assertThat(Objects.requireNonNull(intentCaptor.getValue().getComponent()).getClassName()) - .isEqualTo(AppSettingsDialogHolderActivity.class.getName()); - - Intent startedIntent = shadowApp.getNextStartedActivity(); - ShadowIntent shadowIntent = shadowOf(startedIntent); - assertThat(shadowIntent.getIntentClass()).isEqualTo(AppSettingsDialogHolderActivity.class); - } - @Test public void shouldPositiveListener_whenClickingPositiveButtonFromSupportFragment() { - AlertDialog alertDialog = new AppSettingsDialog.Builder(spySupportFragment) + AlertDialog alertDialog = new AppSettingsDialog.Builder(spyFragment) .setTitle(TITLE) .setRationale(RATIONALE) .setPositiveButton(POSITIVE) @@ -233,7 +169,7 @@ public void shouldPositiveListener_whenClickingPositiveButtonFromSupportFragment @Test public void shouldNegativeListener_whenClickingPositiveButtonFromSupportFragment() { - AlertDialog alertDialog = new AppSettingsDialog.Builder(spySupportFragment) + AlertDialog alertDialog = new AppSettingsDialog.Builder(spyFragment) .setTitle(TITLE) .setRationale(RATIONALE) .setPositiveButton(POSITIVE) @@ -251,19 +187,15 @@ public void shouldNegativeListener_whenClickingPositiveButtonFromSupportFragment private void setUpActivityAndFragment() { activityController = Robolectric.buildActivity(TestActivity.class) .create().start().resume(); - fragmentController = Robolectric.buildFragment(TestFragment.class) - .create().start().resume(); - supportFragmentController = SupportFragmentController.of(new TestSupportFragment()) + fragmentController = SupportFragmentController.of(new TestFragment()) .create().start().resume(); spyActivity = Mockito.spy(activityController.get()); spyFragment = Mockito.spy(fragmentController.get()); - spySupportFragment = Mockito.spy(supportFragmentController.get()); } private void tearDownActivityAndFragment() { activityController.pause().stop().destroy(); fragmentController.pause().stop().destroy(); - supportFragmentController.pause().stop().destroy(); } } diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java index 6d161a3..7fd93c4 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java @@ -14,7 +14,6 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; -import org.robolectric.android.controller.FragmentController; import org.robolectric.annotation.Config; import org.robolectric.shadows.support.v4.SupportFragmentController; @@ -23,7 +22,6 @@ import pub.devrel.easypermissions.testhelper.TestActivity; import pub.devrel.easypermissions.testhelper.TestFragment; import pub.devrel.easypermissions.testhelper.TestSupportActivity; -import pub.devrel.easypermissions.testhelper.TestSupportFragment; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.times; @@ -43,11 +41,9 @@ public class EasyPermissionsLowApiTest { private TestActivity spyActivity; private TestSupportActivity spySupportActivity; private TestFragment spyFragment; - private TestSupportFragment spySupportFragment; private ActivityController activityController; private ActivityController supportActivityController; - private FragmentController fragmentController; - private SupportFragmentController supportFragmentController; + private SupportFragmentController supportController; @Captor private ArgumentCaptor integerCaptor; @Captor @@ -96,8 +92,6 @@ public void shouldCallbackOnPermissionGranted_whenRequestFromSupportActivity() { assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS); } - // ------ From Fragment ------ - @Test public void shouldCallbackOnPermissionGranted_whenRequestFromFragment() { EasyPermissions.requestPermissions(spyFragment, RATIONALE, TestFragment.REQUEST_CODE, ALL_PERMS); @@ -108,38 +102,22 @@ public void shouldCallbackOnPermissionGranted_whenRequestFromFragment() { assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS); } - // ------ From Support Fragment ------ - - @Test - public void shouldCallbackOnPermissionGranted_whenRequestFromSupportedFragment() { - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - verify(spySupportFragment, times(1)) - .onPermissionsGranted(integerCaptor.capture(), listCaptor.capture()); - assertThat(integerCaptor.getValue()).isEqualTo(TestSupportFragment.REQUEST_CODE); - assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS); - } - private void setUpActivityAndFragment() { activityController = Robolectric.buildActivity(TestActivity.class) .create().start().resume(); supportActivityController = Robolectric.buildActivity(TestSupportActivity.class) .create().start().resume(); - fragmentController = Robolectric.buildFragment(TestFragment.class) - .create().start().resume(); - supportFragmentController = SupportFragmentController.of(new TestSupportFragment()) + supportController = SupportFragmentController.of(new TestFragment()) .create().start().resume(); spyActivity = Mockito.spy(activityController.get()); spySupportActivity = Mockito.spy(supportActivityController.get()); - spyFragment = Mockito.spy(fragmentController.get()); - spySupportFragment = Mockito.spy(supportFragmentController.get()); + spyFragment = Mockito.spy(supportController.get()); } private void tearDownActivityAndFragment() { activityController.pause().stop().destroy(); supportActivityController.pause().stop().destroy(); - fragmentController.pause().stop().destroy(); - supportFragmentController.pause().stop().destroy(); + supportController.pause().stop().destroy(); } } diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java index e610e00..342f2a5 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java @@ -19,7 +19,6 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.android.controller.ActivityController; -import org.robolectric.android.controller.FragmentController; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import org.robolectric.shadows.support.v4.SupportFragmentController; @@ -31,7 +30,6 @@ import pub.devrel.easypermissions.testhelper.TestActivity; import pub.devrel.easypermissions.testhelper.TestFragment; import pub.devrel.easypermissions.testhelper.TestSupportActivity; -import pub.devrel.easypermissions.testhelper.TestSupportFragment; import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.fail; @@ -61,11 +59,9 @@ public class EasyPermissionsTest { private TestActivity spyActivity; private TestSupportActivity spySupportActivity; private TestFragment spyFragment; - private TestSupportFragment spySupportFragment; private ActivityController activityController; private ActivityController supportActivityController; - private FragmentController fragmentController; - private SupportFragmentController supportFragmentController; + private SupportFragmentController fragmentController; @Captor private ArgumentCaptor integerCaptor; @Captor @@ -193,24 +189,6 @@ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromAc assertThatHasExpectedRationale(dialog, RATIONALE); } - @SuppressWarnings("deprecation") - @Test - public void shouldShowCorrectDialogUsingDeprecated_whenMissingPermissionsAndShowRationaleFromActivity() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - EasyPermissions.requestPermissions(spyActivity, RATIONALE, android.R.string.ok, - android.R.string.cancel, TestActivity.REQUEST_CODE, ALL_PERMS); - - Fragment dialogFragment = spyActivity.getFragmentManager() - .findFragmentByTag(RationaleDialogFragment.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragment.class); - - Dialog dialog = ((RationaleDialogFragment) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, - android.R.string.ok, android.R.string.cancel); - } - @Test public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromActivity() { grantPermissions(ONE_PERM); @@ -352,24 +330,6 @@ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSu assertThatHasExpectedRationale(dialog, RATIONALE); } - @SuppressWarnings("deprecation") - @Test - public void shouldShowCorrectDialogUsingDeprecated_whenMissingPermissionsAndShowRationaleFromSupportActivity() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportActivity, RATIONALE, android.R.string.ok, - android.R.string.cancel, TestSupportActivity.REQUEST_CODE, ALL_PERMS); - - android.support.v4.app.Fragment dialogFragment = spySupportActivity.getSupportFragmentManager() - .findFragmentByTag(RationaleDialogFragmentCompat.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - - Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, - android.R.string.ok, android.R.string.cancel); - } - @Test public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromSupportActivity() { grantPermissions(ONE_PERM); @@ -434,11 +394,10 @@ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromSuppor assertThat(EasyPermissions.permissionPermanentlyDenied(spySupportActivity, Manifest.permission.READ_SMS)).isFalse(); } - // ------ From Fragment ------ - @Test public void shouldCorrectlyCallback_whenOnRequestPermissionResultCalledFromFragment() { - EasyPermissions.onRequestPermissionsResult(TestFragment.REQUEST_CODE, ALL_PERMS, SMS_DENIED_RESULT, spyFragment); + EasyPermissions.onRequestPermissionsResult(TestFragment.REQUEST_CODE, ALL_PERMS, SMS_DENIED_RESULT, + spyFragment); verify(spyFragment, times(1)) .onPermissionsGranted(integerCaptor.capture(), listCaptor.capture()); @@ -459,7 +418,8 @@ public void shouldCorrectlyCallback_whenOnRequestPermissionResultCalledFromFragm public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromFragment() { grantPermissions(ALL_PERMS); - EasyPermissions.requestPermissions(spyFragment, RATIONALE, TestFragment.REQUEST_CODE, ALL_PERMS); + EasyPermissions.requestPermissions(spyFragment, RATIONALE, + TestFragment.REQUEST_CODE, ALL_PERMS); verify(spyFragment, times(1)) .onPermissionsGranted(integerCaptor.capture(), listCaptor.capture()); @@ -469,7 +429,7 @@ public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissio } @Test - public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFromFragment() { + public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFragment() { grantPermissions(ALL_PERMS); EasyPermissions.requestPermissions(spyFragment, RATIONALE, TestFragment.REQUEST_CODE, ALL_PERMS); @@ -505,52 +465,33 @@ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromFr EasyPermissions.requestPermissions(spyFragment, RATIONALE, TestFragment.REQUEST_CODE, ALL_PERMS); - Fragment dialogFragment = spyFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragment.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragment.class); + android.support.v4.app.Fragment dialogFragment = spyFragment.getChildFragmentManager() + .findFragmentByTag(RationaleDialogFragmentCompat.TAG); + assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - Dialog dialog = ((RationaleDialogFragment) dialogFragment).getDialog(); + Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); assertThatHasExpectedRationale(dialog, RATIONALE); } - @SuppressWarnings("deprecation") - @Test - public void shouldShowCorrectDialogUsingDeprecated_whenMissingPermissionsAndShowRationaleFromFragment() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - EasyPermissions.requestPermissions(spyFragment, RATIONALE, android.R.string.ok, - android.R.string.cancel, TestFragment.REQUEST_CODE, ALL_PERMS); - - Fragment dialogFragment = spyFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragment.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragment.class); - - Dialog dialog = ((RationaleDialogFragment) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, - android.R.string.ok, android.R.string.cancel); - } - @Test public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromFragment() { grantPermissions(ONE_PERM); showRationale(true, ALL_PERMS); PermissionRequest request = new PermissionRequest.Builder(spyFragment, TestFragment.REQUEST_CODE, ALL_PERMS) - .setPositiveButtonText(android.R.string.ok) - .setNegativeButtonText(android.R.string.cancel) - .setRationale(android.R.string.unknownName) + .setPositiveButtonText(POSITIVE) + .setNegativeButtonText(NEGATIVE) + .setRationale(RATIONALE) .setTheme(R.style.Theme_AppCompat) .build(); EasyPermissions.requestPermissions(request); - Fragment dialogFragment = spyFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragment.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragment.class); + android.support.v4.app.Fragment dialogFragment = spyFragment.getChildFragmentManager() + .findFragmentByTag(RationaleDialogFragmentCompat.TAG); + assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - Dialog dialog = ((RationaleDialogFragment) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, android.R.string.unknownName, - android.R.string.ok, android.R.string.cancel); + Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); + assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, POSITIVE, NEGATIVE); } @Test @@ -581,6 +522,7 @@ public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromFr assertThat(EasyPermissions.somePermissionPermanentlyDenied(spyFragment, Arrays.asList(ALL_PERMS))).isFalse(); } + @Test public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromFragment() { showRationale(false, Manifest.permission.READ_SMS); @@ -595,168 +537,6 @@ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromFragme assertThat(EasyPermissions.permissionPermanentlyDenied(spyFragment, Manifest.permission.READ_SMS)).isFalse(); } - // ------ From Support Fragment ------ - - @Test - public void shouldCorrectlyCallback_whenOnRequestPermissionResultCalledFromSupportFragment() { - EasyPermissions.onRequestPermissionsResult(TestSupportFragment.REQUEST_CODE, ALL_PERMS, SMS_DENIED_RESULT, spySupportFragment); - - verify(spySupportFragment, times(1)) - .onPermissionsGranted(integerCaptor.capture(), listCaptor.capture()); - assertThat(integerCaptor.getValue()).isEqualTo(TestSupportFragment.REQUEST_CODE); - assertThat(listCaptor.getValue()) - .containsAllIn(new ArrayList(Collections.singletonList(Manifest.permission.ACCESS_FINE_LOCATION))); - - verify(spySupportFragment, times(1)) - .onPermissionsDenied(integerCaptor.capture(), listCaptor.capture()); - assertThat(integerCaptor.getValue()).isEqualTo(TestSupportFragment.REQUEST_CODE); - assertThat(listCaptor.getValue()) - .containsAllIn(new ArrayList(Collections.singletonList(Manifest.permission.READ_SMS))); - - verify(spySupportFragment, never()).afterPermissionGranted(); - } - - @Test - public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromSupportFragment() { - grantPermissions(ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, - TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - verify(spySupportFragment, times(1)) - .onPermissionsGranted(integerCaptor.capture(), listCaptor.capture()); - verify(spySupportFragment, never()).requestPermissions(any(String[].class), anyInt()); - assertThat(integerCaptor.getValue()).isEqualTo(TestSupportFragment.REQUEST_CODE); - assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS); - } - - @Test - public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsSupportFragment() { - grantPermissions(ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - // Called 2 times because this is a spy and library implementation invokes super classes annotated methods as well - verify(spySupportFragment, times(2)).afterPermissionGranted(); - } - - @Test - public void shouldNotCallbackAfterPermissionGranted_whenRequestNotGrantedPermissionsFromSupportFragment() { - grantPermissions(ONE_PERM); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - verify(spySupportFragment, never()).afterPermissionGranted(); - } - - @Test - public void shouldRequestPermissions_whenMissingPermissionsAndNotShowRationaleFromSupportFragment() { - grantPermissions(ONE_PERM); - showRationale(false, ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - verify(spySupportFragment, times(1)) - .requestPermissions(ALL_PERMS, TestSupportFragment.REQUEST_CODE); - } - - @SuppressWarnings("deprecation") - @Test - public void shouldShowCorrectDialogUsingDeprecated_whenMissingPermissionsAndShowRationaleFromSupportFragment() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, android.R.string.ok, - android.R.string.cancel, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - android.support.v4.app.Fragment dialogFragment = spySupportFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragmentCompat.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - - Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, - android.R.string.ok, android.R.string.cancel); - } - - @Test - public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSupportFragment() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - EasyPermissions.requestPermissions(spySupportFragment, RATIONALE, TestSupportFragment.REQUEST_CODE, ALL_PERMS); - - android.support.v4.app.Fragment dialogFragment = spySupportFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragmentCompat.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - - Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); - assertThatHasExpectedRationale(dialog, RATIONALE); - } - - @Test - public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromSupportFragment() { - grantPermissions(ONE_PERM); - showRationale(true, ALL_PERMS); - - PermissionRequest request = new PermissionRequest.Builder(spySupportFragment, TestSupportFragment.REQUEST_CODE, ALL_PERMS) - .setPositiveButtonText(POSITIVE) - .setNegativeButtonText(NEGATIVE) - .setRationale(RATIONALE) - .setTheme(R.style.Theme_AppCompat) - .build(); - EasyPermissions.requestPermissions(request); - - android.support.v4.app.Fragment dialogFragment = spySupportFragment.getChildFragmentManager() - .findFragmentByTag(RationaleDialogFragmentCompat.TAG); - assertThat(dialogFragment).isInstanceOf(RationaleDialogFragmentCompat.class); - - Dialog dialog = ((RationaleDialogFragmentCompat) dialogFragment).getDialog(); - assertThatHasExpectedButtonsAndRationale(dialog, RATIONALE, POSITIVE, NEGATIVE); - } - - @Test - public void shouldHaveSomePermissionDenied_whenShowRationaleFromSupportFragment() { - showRationale(true, ALL_PERMS); - - assertThat(EasyPermissions.somePermissionDenied(spySupportFragment, ALL_PERMS)).isTrue(); - } - - @Test - public void shouldNotHaveSomePermissionDenied_whenNotShowRationaleFromSupportFragment() { - showRationale(false, ALL_PERMS); - - assertThat(EasyPermissions.somePermissionDenied(spySupportFragment, ALL_PERMS)).isFalse(); - } - - @Test - public void shouldHaveSomePermissionPermanentlyDenied_whenNotShowRationaleFromSupportFragment() { - showRationale(false, ALL_PERMS); - - assertThat(EasyPermissions.somePermissionPermanentlyDenied(spySupportFragment, Arrays.asList(ALL_PERMS))).isTrue(); - } - - @Test - public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromSupportFragment() { - showRationale(true, ALL_PERMS); - - assertThat(EasyPermissions.somePermissionPermanentlyDenied(spySupportFragment, Arrays.asList(ALL_PERMS))).isFalse(); - } - - - @Test - public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromSupportFragment() { - showRationale(false, Manifest.permission.READ_SMS); - - assertThat(EasyPermissions.permissionPermanentlyDenied(spySupportFragment, Manifest.permission.READ_SMS)).isTrue(); - } - - @Test - public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromSupportFragment() { - showRationale(true, Manifest.permission.READ_SMS); - - assertThat(EasyPermissions.permissionPermanentlyDenied(spySupportFragment, Manifest.permission.READ_SMS)).isFalse(); - } - private void assertThatHasExpectedButtonsAndRationale(Dialog dialog, int rationale, int positive, int negative) { TextView dialogMessage = dialog.findViewById(android.R.id.message); @@ -797,22 +577,18 @@ private void setUpActivityAndFragment() { .create().start().resume(); supportActivityController = Robolectric.buildActivity(TestSupportActivity.class) .create().start().resume(); - fragmentController = Robolectric.buildFragment(TestFragment.class) - .create().start().resume(); - supportFragmentController = SupportFragmentController.of(new TestSupportFragment()) + fragmentController = SupportFragmentController.of(new TestFragment()) .create().start().resume(); spyActivity = Mockito.spy(activityController.get()); spySupportActivity = Mockito.spy(supportActivityController.get()); spyFragment = Mockito.spy(fragmentController.get()); - spySupportFragment = Mockito.spy(supportFragmentController.get()); } private void tearDownActivityAndFragment() { activityController.pause().stop().destroy(); supportActivityController.pause().stop().destroy(); fragmentController.pause().stop().destroy(); - supportFragmentController.pause().stop().destroy(); } private void grantPermissions(String[] perms) { @@ -824,7 +600,6 @@ private void showRationale(boolean show, String... perms) { when(spyActivity.shouldShowRequestPermissionRationale(perm)).thenReturn(show); when(spySupportActivity.shouldShowRequestPermissionRationale(perm)).thenReturn(show); when(spyFragment.shouldShowRequestPermissionRationale(perm)).thenReturn(show); - when(spySupportFragment.shouldShowRequestPermissionRationale(perm)).thenReturn(show); } } } diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/RationaleDialogClickListenerTest.java b/easypermissions/src/test/java/pub/devrel/easypermissions/RationaleDialogClickListenerTest.java index a6f1b1c..4eadd9f 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/RationaleDialogClickListenerTest.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/RationaleDialogClickListenerTest.java @@ -3,8 +3,8 @@ import android.Manifest; import android.app.Activity; import android.app.Dialog; -import android.app.Fragment; import android.content.DialogInterface; +import android.support.v4.app.Fragment; import org.junit.Before; import org.junit.Test; @@ -46,8 +46,6 @@ public class RationaleDialogClickListenerTest { private Activity activity; @Mock private Fragment fragment; - @Mock - private android.support.v4.app.Fragment supportFragment; @Before public void setUp() { @@ -87,24 +85,13 @@ public void shouldRequestPermissions_whenPositiveButtonFromActivity() { @Test public void shouldRequestPermissions_whenPositiveButtonFromFragment() { - when(dialogFragment.getParentFragment()).thenReturn(fragment); - - RationaleDialogClickListener listener = new RationaleDialogClickListener(dialogFragment, dialogConfig, - permissionCallbacks, rationaleCallbacks); - listener.onClick(dialogInterface, Dialog.BUTTON_POSITIVE); - - verify(fragment, times(1)).requestPermissions(PERMS, REQUEST_CODE); - } - - @Test - public void shouldRequestPermissions_whenPositiveButtonFromSupportFragment() { - when(dialogFragmentCompat.getParentFragment()).thenReturn(supportFragment); + when(dialogFragmentCompat.getParentFragment()).thenReturn(fragment); RationaleDialogClickListener listener = new RationaleDialogClickListener(dialogFragmentCompat, dialogConfig, permissionCallbacks, rationaleCallbacks); listener.onClick(dialogInterface, Dialog.BUTTON_POSITIVE); - verify(supportFragment, times(1)).requestPermissions(PERMS, REQUEST_CODE); + verify(fragment, times(1)).requestPermissions(PERMS, REQUEST_CODE); } @Test diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestFragment.java b/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestFragment.java index 4953c0b..e6bfed7 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestFragment.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestFragment.java @@ -1,17 +1,32 @@ package pub.devrel.easypermissions.testhelper; -import android.app.Fragment; +import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import java.util.List; import pub.devrel.easypermissions.AfterPermissionGranted; import pub.devrel.easypermissions.EasyPermissions; +import pub.devrel.easypermissions.R; public class TestFragment extends Fragment implements EasyPermissions.PermissionCallbacks, EasyPermissions.RationaleCallbacks { - public static final int REQUEST_CODE = 2; + public static final int REQUEST_CODE = 4; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + getContext().getTheme().applyStyle(R.style.Theme_AppCompat, true); + return super.onCreateView(inflater, container, savedInstanceState); + } @Override public void onPermissionsGranted(int requestCode, @NonNull List perms) { diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestSupportFragment.java b/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestSupportFragment.java deleted file mode 100644 index a9d9633..0000000 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/testhelper/TestSupportFragment.java +++ /dev/null @@ -1,54 +0,0 @@ -package pub.devrel.easypermissions.testhelper; - - -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import java.util.List; - -import pub.devrel.easypermissions.AfterPermissionGranted; -import pub.devrel.easypermissions.EasyPermissions; -import pub.devrel.easypermissions.R; - -public class TestSupportFragment extends Fragment - implements EasyPermissions.PermissionCallbacks, EasyPermissions.RationaleCallbacks { - - public static final int REQUEST_CODE = 4; - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getContext().getTheme().applyStyle(R.style.Theme_AppCompat, true); - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - public void onPermissionsGranted(int requestCode, @NonNull List perms) { - - } - - @Override - public void onPermissionsDenied(int requestCode, @NonNull List perms) { - - } - - @AfterPermissionGranted(REQUEST_CODE) - public void afterPermissionGranted() { - - } - - @Override - public void onRationaleAccepted(int requestCode) { - - } - - @Override - public void onRationaleDenied(int requestCode) { - - } -} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 6b6ea3a..0d4a951 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 702c4b6..7dc503f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip

AltStyle によって変換されたページ (->オリジナル) /