Skip to content

Commit aeb29a7

Browse files
committed
bug fix, created script for generating android sdk 21 to 24 defs
1 parent 9d4ba6c commit aeb29a7

File tree

3 files changed

+51
-9
lines changed

3 files changed

+51
-9
lines changed

dts-generator/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ local.properties
33
.idea/gradle.xml
44
.idea/modules.xml
55
/out
6-
*.jar
6+
*.jar
7+
/**/*.d.ts
8+
/jars/**/*.jar

dts-generator/generate.win.bat

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
rmdir /s /q output
2+
3+
mkdir output\android-21
4+
mkdir output\android-22
5+
mkdir output\android-23
6+
mkdir output\android-24
7+
8+
java -jar build\libs\dts-generator.jar -input %ANDROID_HOME%\platforms\android-21\android.jar jars\21.0.3\internal-v4.jar jars\21.0.3\v4.jar jars\21.0.3\v7.jar -output output\android-21
9+
10+
java -jar build\libs\dts-generator.jar -input %ANDROID_HOME%\platforms\android-22\android.jar jars\22.2.0\internal-v4.jar jars\22.2.0\v4.jar jars\22.2.0\v7.jar -output output\android-22
11+
12+
java -jar build\libs\dts-generator.jar -input %ANDROID_HOME%\platforms\android-23\android.jar jars\23.3.0\internal-v4.jar jars\23.3.0\v4.jar jars\23.3.0\v7.jar -output output\android-23
13+
14+
java -jar build\libs\dts-generator.jar -input %ANDROID_HOME%\platforms\android-24\android.jar jars\24.1.0\internal-v4.jar jars\24.1.0\v4.jar jars\24.1.0\v7.jar -output output\android-24
15+
16+
xcopy /f /y _helpers.d.ts output\android-21
17+
xcopy /f /y _helpers.d.ts output\android-22
18+
xcopy /f /y _helpers.d.ts output\android-23
19+
xcopy /f /y _helpers.d.ts output\android-24

dts-generator/src/main/java/com/telerik/dts/DtsApi.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public String generateDtsContent(List<JavaClass> javaClasses) {
9999
processField(f, currClass);
100100
}
101101
} else {
102-
List<FieldOrMethod> foms = getMembers(currClass);
102+
List<FieldOrMethod> foms = getMembers(currClass, getAllInterfaces(currClass));
103103
for (FieldOrMethod fom : foms) {
104104
if (fom instanceof Field) {
105105
processField((Field) fom, currClass);
@@ -320,7 +320,8 @@ private List<JavaClass> getInterfaces(JavaClass classInterface) {
320320
// TODO: Pete: Hardcoded until we figure out how to go around the 'type incompatible with Object' issue
321321
if (className.equals("java.util.Iterator") ||
322322
className.equals("android.animation.TypeEvaluator") ||
323-
className.equals("java.lang.Comparable")) {
323+
className.equals("java.lang.Comparable") ||
324+
className.startsWith("java.util.function")) {
324325
continue;
325326
}
326327

@@ -491,9 +492,16 @@ private String getMethodParamSignature(JavaClass clazz, Method m) {
491492
sb.append("param");
492493
sb.append(idx++);
493494
sb.append(": ");
494-
addReference(type);
495+
495496
String paramTypeName = getTypeScriptTypeFromJavaType(clazz, type);
496-
sb.append(paramTypeName);
497+
498+
// TODO: Pete:
499+
if(paramTypeName.startsWith("java.util.function")) {
500+
sb.append("any /* " + paramTypeName + "*/");
501+
} else {
502+
addReference(type);
503+
sb.append(paramTypeName);
504+
}
497505
}
498506
sb.append(")");
499507
String sig = sb.toString();
@@ -590,8 +598,14 @@ else if (isObjectType)
590598
{
591599
typeName = typeName.replaceAll("\\$", "\\.");
592600
}
593-
tsType.append(typeName);
594-
addReference(type);
601+
602+
// TODO: Pete:
603+
if(typeName.startsWith("java.util.function")) {
604+
tsType.append("any /*" + typeName + "*/");
605+
} else {
606+
tsType.append(typeName);
607+
addReference(type);
608+
}
595609
}
596610
else
597611
{
@@ -613,10 +627,16 @@ private void addReference(Type type) {
613627
}
614628
}
615629

616-
private List<FieldOrMethod> getMembers(JavaClass javaClass) {
630+
private List<FieldOrMethod> getMembers(JavaClass javaClass, List<JavaClass> interfaces) {
617631
Set<String> methodNames = new HashSet<String>();
618632
ArrayList<FieldOrMethod> members = new ArrayList<FieldOrMethod>();
619-
for (Method m: javaClass.getMethods()) {
633+
634+
List<Method> allInterfacesMethods = getAllInterfacesMethods(interfaces);
635+
List<Method> methods = new ArrayList<>();
636+
methods.addAll(Arrays.asList(javaClass.getMethods()));
637+
methods.addAll(allInterfacesMethods);
638+
639+
for (Method m: methods) {
620640
if ((m.isPublic() || m.isProtected()) && !m.isSynthetic()) {
621641
members.add(m);
622642
methodNames.add(m.getName());
@@ -627,6 +647,7 @@ private List<FieldOrMethod> getMembers(JavaClass javaClass) {
627647
members.add(f);
628648
}
629649
}
650+
630651
return members;
631652
}
632653

0 commit comments

Comments
 (0)