20
20
import java .util .Collection ;
21
21
import java .util .HashMap ;
22
22
import java .util .HashSet ;
23
+ import java .util .Iterator ;
23
24
import java .util .LinkedList ;
24
25
import java .util .List ;
25
26
import java .util .Map ;
31
32
import java .util .stream .Stream ;
32
33
33
34
import edu .umd .cs .findbugs .ba .generic .GenericObjectType ;
35
+ import edu .umd .cs .findbugs .ba .generic .GenericSignatureParser ;
34
36
import edu .umd .cs .findbugs .ba .generic .GenericUtilities ;
35
37
36
38
/**
@@ -214,6 +216,7 @@ private String replaceIgnoredNamespaces(String content) {
214
216
215
217
public static String serializeGenerics () {
216
218
StringBuilder sb = new StringBuilder ();
219
+ sb .append ("//Generics information:\n " );
217
220
for (Tuple <String , Integer > generic : generics ) {
218
221
sb .append (String .format ("//%s:%s\n " , generic .x , generic .y ));
219
222
}
@@ -378,7 +381,7 @@ private String mangleRootClassname(String className) {
378
381
String [] parts = className .split ("\\ ." );
379
382
String rootNamespace = parts [0 ];
380
383
if (globalAliases .containsKey (parts [0 ])) {
381
- String aliasedNamespace = this .globalAliases .get (rootNamespace );
384
+ String aliasedNamespace = DtsApi .globalAliases .get (rootNamespace );
382
385
String aliasedType = aliasedTypes .get (rootNamespace );
383
386
if (aliasedType == null ) {
384
387
aliasedTypes .put (rootNamespace , aliasedNamespace );
@@ -698,7 +701,7 @@ private Type[] getArgumentTypes(Method m) {
698
701
return m .getArgumentTypes ();
699
702
}
700
703
try {
701
- List <ReferenceType > referenceTypes = GenericUtilities .getTypeParameters (argumentsSignature );
704
+ List <Type > referenceTypes = DtsApi .getTypeParameters (argumentsSignature );
702
705
Type [] types = new Type [referenceTypes .size ()];
703
706
types = referenceTypes .toArray (types );
704
707
return types ;
@@ -710,6 +713,24 @@ private Type[] getArgumentTypes(Method m) {
710
713
return m .getArgumentTypes ();
711
714
}
712
715
716
+ private static List <Type > getTypeParameters (String signature ) {
717
+ GenericSignatureParser parser = new GenericSignatureParser ("(" + signature + ")V" );
718
+ List <Type > types = new ArrayList <>();
719
+ Iterator <String > iter = parser .parameterSignatureIterator ();
720
+
721
+ while (iter .hasNext ()) {
722
+ String parameterString = iter .next ();
723
+ Type t = GenericUtilities .getType (parameterString );
724
+ if (t == null ) {
725
+ return null ;
726
+ }
727
+
728
+ types .add (t );
729
+ }
730
+
731
+ return types ;
732
+ }
733
+
713
734
// gets the full field type including generic types
714
735
private Type getFieldType (Field f ) {
715
736
Signature signature = this .getSignature (f );
@@ -1135,9 +1156,9 @@ private void setOverrides() {
1135
1156
1136
1157
private void setExtendsOverrides () {
1137
1158
// here we put extends overrides to avoid manual work to fix the generated .d.ts file
1138
- // this.extendsOverrides.put("android.renderscript.ProgramFragmentFixedFunction$Builder", "android.renderscript.Program.BaseProgramBuilder"); // android-17
1139
- // this.extendsOverrides.put("android.renderscript.ProgramVertexFixedFunction$Builder", "android.renderscript.ProgramVertex.Builder"); // android-17
1140
- // this.extendsOverrides.put("android.support.v4.app.JobIntentService$JobServiceEngineImpl", "android.support.v4.app.JobIntentService.CompatJobEngine"); // android-support
1159
+ this .extendsOverrides .put ("android.renderscript.ProgramFragmentFixedFunction$Builder" , "android.renderscript.Program.BaseProgramBuilder" ); // android-17
1160
+ this .extendsOverrides .put ("android.renderscript.ProgramVertexFixedFunction$Builder" , "android.renderscript.ProgramVertex.Builder" ); // android-17
1161
+ this .extendsOverrides .put ("android.support.v4.app.JobIntentService$JobServiceEngineImpl" , "android.support.v4.app.JobIntentService.CompatJobEngine" ); // android-support
1141
1162
}
1142
1163
1143
1164
private void setTypeOverrides () {
@@ -1162,6 +1183,7 @@ private List<String> getIgnoredNamespaces(){
1162
1183
result .add ("android.graphics.drawable.Icon" );
1163
1184
result .add ("android.graphics.Outline" );
1164
1185
result .add ("android.view.SearchEvent" );
1186
+ result .add ("android.view.KeyboardShortcutGroup" );
1165
1187
result .add ("android.view.ViewStructure" );
1166
1188
result .add ("android.media.browse" );
1167
1189
result .add ("android.media.session" );
0 commit comments