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

Commit a88d501

Browse files
authored
Differentiate between FragmentActivity and AppCompatActivity (#268)
2 parents 0a0a46e + 97e1429 commit a88d501

File tree

7 files changed

+151
-65
lines changed

7 files changed

+151
-65
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ ext {
3131

3232
mavenGroup = 'pub.devrel'
3333
mavenArtifactId = 'easypermissions'
34-
mavenVersion = '2.0.0'
34+
mavenVersion = '2.0.1-SNAPSHOT'
3535

3636
bintrayOrg = 'easygoogle'
3737

easypermissions/src/main/java/pub/devrel/easypermissions/helper/FragmentActivityPermissionHelper.java renamed to easypermissions/src/main/java/pub/devrel/easypermissions/helper/AppCompatActivityPermissionsHelper.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
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;
76
import android.support.v4.app.FragmentManager;
87
import android.support.v7.app.AppCompatActivity;
98

109
/**
1110
* Permissions helper for {@link AppCompatActivity}.
1211
*/
13-
class FragmentActivityPermissionHelper extends BaseSupportPermissionsHelper<FragmentActivity> {
12+
class AppCompatActivityPermissionsHelper extends BaseSupportPermissionsHelper<AppCompatActivity> {
1413

15-
public FragmentActivityPermissionHelper(FragmentActivity host) {
14+
public AppCompatActivityPermissionsHelper(AppCompatActivity host) {
1615
super(host);
1716
}
1817

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import android.support.annotation.NonNull;
77
import android.support.annotation.StyleRes;
88
import android.support.v4.app.Fragment;
9-
import android.support.v4.app.FragmentActivity;
9+
import android.support.v7.app.AppCompatActivity;
1010

1111
import java.util.List;
1212

@@ -23,8 +23,8 @@ public static PermissionHelper<? extends Activity> newInstance(Activity host) {
2323
return new LowApiPermissionsHelper<>(host);
2424
}
2525

26-
if (host instanceof FragmentActivity)
27-
return new FragmentActivityPermissionHelper((FragmentActivity) host);
26+
if (host instanceof AppCompatActivity)
27+
return new AppCompatActivityPermissionsHelper((AppCompatActivity) host);
2828
else {
2929
return new ActivityPermissionHelper(host);
3030
}

easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java

+27-10
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121

2222
import pub.devrel.easypermissions.testhelper.TestActivity;
2323
import pub.devrel.easypermissions.testhelper.TestFragment;
24-
import pub.devrel.easypermissions.testhelper.TestSupportActivity;
24+
import pub.devrel.easypermissions.testhelper.TestAppCompatActivity;
25+
import pub.devrel.easypermissions.testhelper.TestSupportFragmentActivity;
2526

2627
import static com.google.common.truth.Truth.assertThat;
2728
import static org.mockito.Mockito.times;
@@ -39,10 +40,12 @@ public class EasyPermissionsLowApiTest {
3940
Manifest.permission.READ_SMS, Manifest.permission.ACCESS_FINE_LOCATION};
4041

4142
private TestActivity spyActivity;
42-
private TestSupportActivity spySupportActivity;
43+
private TestSupportFragmentActivity spySupportFragmentActivity;
44+
private TestAppCompatActivity spyAppCompatActivity;
4345
private TestFragment spyFragment;
4446
private ActivityController<TestActivity> activityController;
45-
private ActivityController<TestSupportActivity> supportActivityController;
47+
private ActivityController<TestSupportFragmentActivity> supportFragmentActivityController;
48+
private ActivityController<TestAppCompatActivity> appCompatActivityController;
4649
private SupportFragmentController<TestFragment> supportController;
4750
@Captor
4851
private ArgumentCaptor<Integer> integerCaptor;
@@ -83,12 +86,23 @@ public void shouldCallbackOnPermissionGranted_whenRequestFromActivity() {
8386
// ------ From Support Activity ------
8487

8588
@Test
86-
public void shouldCallbackOnPermissionGranted_whenRequestFromSupportActivity() {
87-
EasyPermissions.requestPermissions(spySupportActivity, RATIONALE, TestSupportActivity.REQUEST_CODE, ALL_PERMS);
89+
public void shouldCallbackOnPermissionGranted_whenRequestFromSupportFragmentActivity() {
90+
EasyPermissions.requestPermissions(spySupportFragmentActivity, RATIONALE, TestSupportFragmentActivity.REQUEST_CODE, ALL_PERMS);
8891

89-
verify(spySupportActivity, times(1))
92+
verify(spySupportFragmentActivity, times(1))
9093
.onPermissionsGranted(integerCaptor.capture(), listCaptor.capture());
91-
assertThat(integerCaptor.getValue()).isEqualTo(TestSupportActivity.REQUEST_CODE);
94+
assertThat(integerCaptor.getValue()).isEqualTo(TestSupportFragmentActivity.REQUEST_CODE);
95+
assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS);
96+
}
97+
98+
99+
@Test
100+
public void shouldCallbackOnPermissionGranted_whenRequestFromAppCompatActivity() {
101+
EasyPermissions.requestPermissions(spyAppCompatActivity, RATIONALE, TestAppCompatActivity.REQUEST_CODE, ALL_PERMS);
102+
103+
verify(spyAppCompatActivity, times(1))
104+
.onPermissionsGranted(integerCaptor.capture(), listCaptor.capture());
105+
assertThat(integerCaptor.getValue()).isEqualTo(TestAppCompatActivity.REQUEST_CODE);
92106
assertThat(listCaptor.getValue()).containsAllIn(ALL_PERMS);
93107
}
94108

@@ -105,19 +119,22 @@ public void shouldCallbackOnPermissionGranted_whenRequestFromFragment() {
105119
private void setUpActivityAndFragment() {
106120
activityController = Robolectric.buildActivity(TestActivity.class)
107121
.create().start().resume();
108-
supportActivityController = Robolectric.buildActivity(TestSupportActivity.class)
122+
supportFragmentActivityController = Robolectric.buildActivity(TestSupportFragmentActivity.class)
123+
.create().start().resume();
124+
appCompatActivityController = Robolectric.buildActivity(TestAppCompatActivity.class)
109125
.create().start().resume();
110126
supportController = SupportFragmentController.of(new TestFragment())
111127
.create().start().resume();
112128

113129
spyActivity = Mockito.spy(activityController.get());
114-
spySupportActivity = Mockito.spy(supportActivityController.get());
130+
spySupportFragmentActivity = Mockito.spy(supportFragmentActivityController.get());
131+
spyAppCompatActivity = Mockito.spy(appCompatActivityController.get());
115132
spyFragment = Mockito.spy(supportController.get());
116133
}
117134

118135
private void tearDownActivityAndFragment() {
119136
activityController.pause().stop().destroy();
120-
supportActivityController.pause().stop().destroy();
137+
appCompatActivityController.pause().stop().destroy();
121138
supportController.pause().stop().destroy();
122139
}
123140
}

0 commit comments

Comments
 (0)