From 36b5c94eb9a1a73e109a93f7f410f73ade839131 Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Mon, 8 Aug 2011 14:48:15 +0000 Subject: [PATCH] android-sdk: Fixes string methods git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1787 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../android_bindings_generator.lpi | 24 ++++++++++++++----- .../android-sdk/android_sdk_bindings_gen.pas | 18 +++++++++++++- .../android-sdk/sdk_level_7/android_all.txt | 4 ++-- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/bindings/android-sdk/android_bindings_generator.lpi b/bindings/android-sdk/android_bindings_generator.lpi index 2d67ef079..d67705c05 100644 --- a/bindings/android-sdk/android_bindings_generator.lpi +++ b/bindings/android-sdk/android_bindings_generator.lpi @@ -39,7 +39,7 @@ - + @@ -117,11 +117,10 @@ - - - + + @@ -199,10 +198,13 @@ + + - - + + + @@ -213,6 +215,16 @@ + + + + + + + + + + diff --git a/bindings/android-sdk/android_sdk_bindings_gen.pas b/bindings/android-sdk/android_sdk_bindings_gen.pas index 2d0c98fa3..67b05e26e 100644 --- a/bindings/android-sdk/android_sdk_bindings_gen.pas +++ b/bindings/android-sdk/android_sdk_bindings_gen.pas @@ -320,6 +320,8 @@ var DeclarationBase, TmpStr, lIDString: string; FPasOutputImplCurLine: Integer; lJavaParamVar, lJavaParams, lJavaParamSelf: string; + // For adding the var for string params + HasStringParam: Boolean = False; begin if ASourceLine = '' then Exit; @@ -373,7 +375,15 @@ begin TmpStr := TmpStr + lParamPrefix + lParamName + ': ' + lParamTypePas + '; '; // Pascal parameter sending - FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Integer(' + lParamName + '));'); + if lParamTypePas = 'string' then + begin + FPasOutputImpl.Add(Format(' lString := TString.Create(%s);', [lParamName])); + FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(lString.Index); // text'); + FPasOutputImpl.Add(' lString.Free;'); + HasStringParam := True; + end + else + FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Integer(' + lParamName + '));'); // Java parameter reading lJavaParamVar := Format('l%s_%d', [ConvertPointToUnderline(lParamType), lParamNum]); @@ -404,8 +414,14 @@ begin FPasOutputImpl.Add(' Result := ' + lMethodReturnPas + '(vAndroidPipesComm.WaitForIntReturn());'); end; + // Insert the start FPasOutputClasses.Add(' ' + DeclarationBase + TmpStr); FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassNamePas + '.' + TmpStr); + if HasStringParam then + begin + FPasOutputImpl.Insert(FPasOutputImplCurLine+1, 'var'); + FPasOutputImpl.Insert(FPasOutputImplCurLine+2, ' lString: TString;'); + end; FPasOutputImpl.Add('end;'); FPasOutputImpl.Add(''); diff --git a/bindings/android-sdk/sdk_level_7/android_all.txt b/bindings/android-sdk/sdk_level_7/android_all.txt index 27976e1b2..ca0706a38 100644 --- a/bindings/android-sdk/sdk_level_7/android_all.txt +++ b/bindings/android-sdk/sdk_level_7/android_all.txt @@ -42,8 +42,8 @@ const INVISIBLE = 4; const GONE = 8; [ViewGroup] View -procedure addView(View child, LayoutParams params); -procedure addView(View child); +method void addView(View child, ViewGroup.LayoutParams params); +# method void addView(View child); [LinearLayout] ViewGroup constructor Create(Activity);