diff --git a/bindings/android-sdk/android_bindings_generator.lpi b/bindings/android-sdk/android_bindings_generator.lpi index 0c54a69ff..746e836ed 100644 --- a/bindings/android-sdk/android_bindings_generator.lpi +++ b/bindings/android-sdk/android_bindings_generator.lpi @@ -130,8 +130,8 @@ - - + + @@ -165,7 +165,7 @@ - + @@ -175,123 +175,123 @@ - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/bindings/android-sdk/android_sdk_bindings_gen.pas b/bindings/android-sdk/android_sdk_bindings_gen.pas index 87dfa2e9b..9492fd5d9 100644 --- a/bindings/android-sdk/android_sdk_bindings_gen.pas +++ b/bindings/android-sdk/android_sdk_bindings_gen.pas @@ -15,7 +15,7 @@ type private FSourceFile, FPasOutputClasses, FPasOutputIDs, FPasOutputImpl: TStringList; FJavaOutputIDs, FJavaOutputMethods: TStringList; - FClassName: string; // Class name of the class currently being parsed + FClassName, FClassNamePas: string; // Class name of the class currently being parsed FClassNum, FMethodNum: Integer; procedure ProcessModelFile(ASourceFile, APasOutputFile, AJavaOutputFile: string); procedure ProcessModelLine(ASourceLine: string); @@ -132,16 +132,17 @@ begin FPasOutputClasses.Add(''); end; - FClassName := GetPascalTypeName(lCurWord); + FClassNamePas := GetPascalTypeName(lCurWord); + FClassName := lCurWord; lParentClassName := GetNextWord(ASourceLine, lReaderPos); lParentClassName := GetPascalTypeName(lParentClassName); - FPasOutputClasses.Add(Format(' %s = class(%s)', [FClassName, lParentClassName])); + FPasOutputClasses.Add(Format(' %s = class(%s)', [FClassNamePas, lParentClassName])); FPasOutputClasses.Add(' public'); lCurWord := GetNextWord(ASourceLine, lReaderPos); Inc(FClassNum); FMethodNum := 0; - FPasOutputIDs.Add(' // ' + FClassName); + FPasOutputIDs.Add(' // ' + FClassNamePas); FJavaOutputIDs.Add(' // ' + FClassName); end; @@ -151,7 +152,7 @@ var lReaderPos: Integer = 1; lParamNum: Integer = 1; lCurWord, lParentClassName: string; - lMethodReturn, lMethodName, lParamType, lParamName: string; + lMethodReturn, lMethodReturnPas, lMethodName, lParamType, lParamTypePas, lParamName: string; DeclarationBase, TmpStr, lIDString: string; FPasOutputImplCurLine: Integer; lJavaParamVar, lJavaParams, lJavaParamSelf: string; @@ -162,7 +163,7 @@ begin // Method type and name lMethodReturn := GetNextWord(ASourceLine, lReaderPos); - lMethodReturn := GetPascalTypeName(lMethodReturn); + lMethodReturnPas := GetPascalTypeName(lMethodReturn); lMethodName := GetNextWord(ASourceLine, lReaderPos); if lMethodReturn = 'void' then DeclarationBase := 'procedure ' @@ -170,7 +171,7 @@ begin // Beginning of the implementation part FPasOutputImplCurLine := FPasOutputImpl.Count; - lIDString := 'amkUI_' + FClassName + '_' + lMethodName; + lIDString := 'amkUI_' + FClassNamePas + '_' + lMethodName; FPasOutputImpl.Add('begin'); FPasOutputImpl.Add(' vAndroidPipesComm.SendByte(ShortInt(amkUICommand));'); @@ -195,12 +196,12 @@ begin repeat lParamType := GetNextWord(ASourceLine, lReaderPos); - lParamType := GetPascalTypeName(lParamType); + lParamTypePas := GetPascalTypeName(lParamType); lParamName := GetNextWord(ASourceLine, lReaderPos); if lParamName = '' then Break; - TmpStr := TmpStr + lParamName + ': ' + lParamType + '; '; + TmpStr := TmpStr + lParamName + ': ' + lParamTypePas + '; '; // Pascal parameter sending FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Integer(' + lParamName + '));'); @@ -226,12 +227,12 @@ begin end else begin - TmpStr := TmpStr + '): ' + lMethodReturn + ';'; + TmpStr := TmpStr + '): ' + lMethodReturnPas + ';'; FPasOutputImpl.Add(' Result := Boolean(vAndroidPipesComm.WaitForIntReturn());'); end; FPasOutputClasses.Add(' ' + DeclarationBase + TmpStr); - FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassName + '.' + TmpStr); + FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassNamePas + '.' + TmpStr); FPasOutputImpl.Add('end;'); FPasOutputImpl.Add(''); @@ -243,7 +244,7 @@ begin end else begin - FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');'); + FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' = ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');'); FJavaOutputMethods.Add(' MyAndroidPipesComm.SendIntResult(lResult_' + lMethodReturn + ');'); end; FJavaOutputMethods.Add(' break;'); @@ -329,9 +330,9 @@ end; procedure TAndroidSDKBindingsGen.GenerateAllBindings(AInputDir, APasOutputDir, AJavaOutputDir: string); begin - ProcessModelFile(IncludeTrailingPathDelimiter(AInputDir) + 'android_view.txt', - IncludeTrailingPathDelimiter(APasOutputDir) + 'android_view.pas', - IncludeTrailingPathDelimiter(AJavaOutputDir) + 'android_view.java'); + ProcessModelFile(IncludeTrailingPathDelimiter(AInputDir) + 'android_all.txt', + IncludeTrailingPathDelimiter(APasOutputDir) + 'android_all.pas', + IncludeTrailingPathDelimiter(AJavaOutputDir) + 'android_all.java'); end; initialization