Skip to content

Commit

Permalink
Change how to create the generated class package name
Browse files Browse the repository at this point in the history
  • Loading branch information
shiraji committed Jan 9, 2017
1 parent 3cde540 commit 82b41dd
Show file tree
Hide file tree
Showing 5 changed files with 477 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,21 @@ import permissions.dispatcher.OnShowRationale
import permissions.dispatcher.processor.TYPE_UTILS
import javax.lang.model.element.Element
import javax.lang.model.element.ExecutableElement
import javax.lang.model.element.PackageElement
import javax.lang.model.element.TypeElement
import javax.lang.model.type.TypeMirror

/**
* Returns the package name of a TypeElement.
*/
fun TypeElement.packageName(): String {
val qn = this.qualifiedName.toString()
return qn.substring(0, qn.lastIndexOf('.'))
fun TypeElement.packageName() = enclosingElement.packageName()

private fun Element?.packageName(): String {
return when (this) {
is TypeElement -> packageName()
is PackageElement -> qualifiedName.toString()
else -> this?.enclosingElement?.packageName() ?: ""
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package permissions.dispatcher.processor;

import org.junit.Test;

import permissions.dispatcher.processor.base.TestSuite;
import permissions.dispatcher.processor.data.Source;

Expand Down Expand Up @@ -360,4 +359,27 @@ public class ProcessorTestSuite extends TestSuite {
assertJavaSource(Source.SystemAlertWindowSupportGenericsFragment);
}

@Test public void nestedActivity() {
assertJavaSource(Source.NestedActivity);
}

@Test
public void nestedStaticActivity() {
assertJavaSource(Source.NestedStaticActivity);
}

@Test
public void nestedActivityWithDefaultPackage() {
assertJavaSource(Source.NestedActivityWithDefaultPackage);
}

@Test
public void nestedFragment() {
assertJavaSource(Source.NestedFragment);
}

@Test
public void nestedStaticFragment() {
assertJavaSource(Source.NestedStaticFragment);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5887,4 +5887,319 @@ protected String[] getExpectSource() {
}
};

public static final BaseTest NestedActivity = new BaseTest() {
@Override
protected String getName() {
return "Foo";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.app.Activity;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"public class Foo {",
" public class Bar {",
" @RuntimePermissions",
" public class MyActivity extends Activity {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
" }",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package tests;",
"import android.support.v4.app.ActivityCompat;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"final class MyActivityPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyActivityPermissionsDispatcher() {",
" }",
" static void showCameraWithCheck(Foo.Bar.MyActivity target) {",
" if (PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" ActivityCompat.requestPermissions(target, PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(Foo.Bar.MyActivity target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.getTargetSdkVersion(target) < 23 && !PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" return;",
" }",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

public static final BaseTest NestedStaticActivity = new BaseTest() {
@Override
protected String getName() {
return "Foo";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.app.Activity;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"public class Foo {",
" @RuntimePermissions",
" public static class MyActivity extends Activity {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package tests;",
"import android.support.v4.app.ActivityCompat;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"final class MyActivityPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyActivityPermissionsDispatcher() {",
" }",
" static void showCameraWithCheck(Foo.MyActivity target) {",
" if (PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" ActivityCompat.requestPermissions(target, PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(Foo.MyActivity target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.getTargetSdkVersion(target) < 23 && !PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" return;",
" }",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

public static final BaseTest NestedActivityWithDefaultPackage = new BaseTest() {
@Override
protected String getName() {
return "Foo";
}

@Override
protected String[] getActualSource() {
return new String[]{
"import android.Manifest;",
"import android.app.Activity;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"public class Foo {",
" public class Bar {",
" @RuntimePermissions",
" public class MyActivity extends Activity {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
" }",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"import android.support.v4.app.ActivityCompat;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"final class MyActivityPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyActivityPermissionsDispatcher() {",
" }",
" static void showCameraWithCheck(Foo.Bar.MyActivity target) {",
" if (PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" ActivityCompat.requestPermissions(target, PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(Foo.Bar.MyActivity target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.getTargetSdkVersion(target) < 23 && !PermissionUtils.hasSelfPermissions(target, PERMISSION_SHOWCAMERA)) {",
" return;",
" }",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

public static final BaseTest NestedFragment = new BaseTest() {
@Override
protected String getName() {
return "Foo";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.support.v4.app.Fragment;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"public class Foo {",
" @RuntimePermissions",
" public class MyFragment extends Fragment {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package tests;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"final class MyFragmentPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyFragmentPermissionsDispatcher() {",
" }",
" static void showCameraWithCheck(Foo.MyFragment target) {",
" if (PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" target.requestPermissions(PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(Foo.MyFragment target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.getTargetSdkVersion(target.getActivity()) < 23 && !PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_SHOWCAMERA)) {",
" return;",
" }",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

public static final BaseTest NestedStaticFragment = new BaseTest() {
@Override
protected String getName() {
return "Foo";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.support.v4.app.Fragment;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"public class Foo {",
" @RuntimePermissions",
" public static class MyFragment extends Fragment {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package tests;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"final class MyFragmentPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyFragmentPermissionsDispatcher() {",
" }",
" static void showCameraWithCheck(Foo.MyFragment target) {",
" if (PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" target.requestPermissions(PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(Foo.MyFragment target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.getTargetSdkVersion(target.getActivity()) < 23 && !PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_SHOWCAMERA)) {",
" return;",
" }",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

}
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,14 @@ public class V13ProcessorTestSuite extends TestSuite {
@Test public void SystemAlertWindowFragment() {
assertJavaSource(V13Source.SystemAlertWindowFragment);
}

@Test
public void nestedFragment() {
assertJavaSource(V13Source.NestedFragment);
}

@Test
public void nestedStaticFragment() {
assertJavaSource(V13Source.NestedStaticFragment);
}
}
Loading

0 comments on commit 82b41dd

Please sign in to comment.