android: Adds dialogs and improves the error handling

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1825 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2011-08-22 14:53:18 +00:00
parent 9300c23a79
commit f92b46fd23
6 changed files with 322 additions and 129 deletions

View File

@ -39,7 +39,7 @@
<PackageName Value="LCL"/> <PackageName Value="LCL"/>
</Item2> </Item2>
</RequiredPackages> </RequiredPackages>
<Units Count="26"> <Units Count="32">
<Unit0> <Unit0>
<Filename Value="android_bindings_generator.pas"/> <Filename Value="android_bindings_generator.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -48,7 +48,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="15" Y="14"/> <CursorPos X="15" Y="14"/>
<UsageCount Value="42"/> <UsageCount Value="47"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
@ -61,7 +61,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="3" Y="39"/> <CursorPos X="3" Y="39"/>
<UsageCount Value="42"/> <UsageCount Value="47"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -117,12 +117,11 @@
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="android_sdk_bindings_gen.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="android_sdk_bindings_gen"/> <UnitName Value="android_sdk_bindings_gen"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/> <EditorIndex Value="3"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="159"/> <TopLine Value="528"/>
<CursorPos X="18" Y="188"/> <CursorPos X="132" Y="552"/>
<UsageCount Value="42"/> <UsageCount Value="47"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@ -201,9 +200,9 @@
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="sdk_level_7/android_all.txt"/>
<EditorIndex Value="4"/> <EditorIndex Value="4"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="71"/> <TopLine Value="14"/>
<CursorPos X="1" Y="83"/> <CursorPos X="28" Y="51"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="None"/> <DefaultSyntaxHighlighter Value="None"/>
</Unit18> </Unit18>
@ -230,7 +229,7 @@
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="1"/> <TopLine Value="1"/>
<CursorPos X="26" Y="9"/> <CursorPos X="26" Y="9"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit21> </Unit21>
<Unit22> <Unit22>
@ -244,21 +243,22 @@
<Unit23> <Unit23>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/> <Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<UnitName Value="android_all"/> <UnitName Value="android_all"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="5"/> <EditorIndex Value="5"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="467"/> <TopLine Value="1"/>
<CursorPos X="3" Y="467"/> <CursorPos X="1" Y="13"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit23> </Unit23>
<Unit24> <Unit24>
<Filename Value="../../../lazarus/lcl/interfaces/android/androidpipescomm.pas"/> <Filename Value="../../../lazarus/lcl/interfaces/android/androidpipescomm.pas"/>
<UnitName Value="androidpipescomm"/> <UnitName Value="androidpipescomm"/>
<EditorIndex Value="6"/> <EditorIndex Value="12"/>
<WindowIndex Value="0"/> <WindowIndex Value="0"/>
<TopLine Value="38"/> <TopLine Value="38"/>
<CursorPos X="15" Y="62"/> <CursorPos X="15" Y="62"/>
<UsageCount Value="14"/> <UsageCount Value="16"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit24> </Unit24>
<Unit25> <Unit25>
@ -269,127 +269,187 @@
<CursorPos X="1" Y="1"/> <CursorPos X="1" Y="1"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit25> </Unit25>
<Unit26>
<Filename Value="../../../lazarus/lcl/arrow.pp"/>
<UnitName Value="Arrow"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="21"/>
<CursorPos X="3" Y="45"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit26>
<Unit27>
<Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<UnitName Value="ExtCtrls"/>
<EditorIndex Value="7"/>
<WindowIndex Value="0"/>
<TopLine Value="388"/>
<CursorPos X="3" Y="412"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit27>
<Unit28>
<Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<UnitName Value="ComCtrls"/>
<EditorIndex Value="10"/>
<WindowIndex Value="0"/>
<TopLine Value="1952"/>
<CursorPos X="26" Y="1976"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit28>
<Unit29>
<Filename Value="../../../lazarus/lcl/stdctrls.pp"/>
<UnitName Value="StdCtrls"/>
<EditorIndex Value="9"/>
<WindowIndex Value="0"/>
<TopLine Value="1025"/>
<CursorPos X="32" Y="1049"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit29>
<Unit30>
<Filename Value="../../../lazarus/lcl/grids.pas"/>
<UnitName Value="Grids"/>
<EditorIndex Value="8"/>
<WindowIndex Value="0"/>
<TopLine Value="606"/>
<CursorPos X="3" Y="630"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
<Filename Value="../../../lazarus/lcl/toolwin.pp"/>
<UnitName Value="Toolwin"/>
<EditorIndex Value="11"/>
<WindowIndex Value="0"/>
<TopLine Value="31"/>
<CursorPos X="3" Y="56"/>
<UsageCount Value="12"/>
<Loaded Value="True"/>
</Unit31>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="131" Column="29" TopLine="91"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="143" Column="21" TopLine="99"/> <Caret Line="280" Column="1" TopLine="258"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/>
<Caret Line="145" Column="23" TopLine="99"/> <Caret Line="854" Column="5" TopLine="815"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/arrow.pp"/>
<Caret Line="42" Column="20" TopLine="3"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../../lazarus/lcl/interfaces/android/android_all.pas"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="666" Column="17" TopLine="653"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<Caret Line="864" Column="22" TopLine="858"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="150" Column="1" TopLine="103"/> <Caret Line="555" Column="3" TopLine="531"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="42" Column="1" TopLine="1"/> <Caret Line="252" Column="3" TopLine="228"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="151" Column="1" TopLine="108"/> <Caret Line="710" Column="31" TopLine="686"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="653" Column="30" TopLine="629"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/extctrls.pp"/>
<Caret Line="37" Column="1" TopLine="14"/> <Caret Line="595" Column="32" TopLine="571"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="267" Column="1" TopLine="220"/> <Caret Line="1" Column="1" TopLine="1"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="797" Column="48" TopLine="781"/> <Caret Line="1335" Column="26" TopLine="1311"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="1" Column="1" TopLine="1"/> <Caret Line="1150" Column="30" TopLine="1126"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="33" Column="29" TopLine="1"/> <Caret Line="630" Column="31" TopLine="606"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="410" Column="23" TopLine="396"/> <Caret Line="1531" Column="33" TopLine="1507"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="552" Column="23" TopLine="512"/> <Caret Line="1465" Column="33" TopLine="1441"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="mainform.pas"/> <Filename Value="../../../lazarus/lcl/grids.pas"/>
<Caret Line="15" Column="80" TopLine="6"/> <Caret Line="1150" Column="32" TopLine="1126"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<Caret Line="486" Column="65" TopLine="468"/> <Caret Line="1764" Column="3" TopLine="1688"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<Caret Line="847" Column="64" TopLine="832"/> <Caret Line="121" Column="3" TopLine="97"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/comctrls.pp"/>
<Caret Line="38" Column="66" TopLine="38"/> <Caret Line="1976" Column="26" TopLine="1952"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/stdctrls.pp"/>
<Caret Line="506" Column="11" TopLine="476"/> <Caret Line="165" Column="3" TopLine="141"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/stdctrls.pp"/>
<Caret Line="38" Column="45" TopLine="1"/> <Caret Line="1290" Column="29" TopLine="1266"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="../../../lazarus/lcl/stdctrls.pp"/>
<Caret Line="760" Column="1" TopLine="727"/> <Caret Line="1194" Column="31" TopLine="1170"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="26" Column="75" TopLine="1"/> <Caret Line="39" Column="16" TopLine="14"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="android_sdk_bindings_gen.pas"/> <Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="306" Column="94" TopLine="293"/> <Caret Line="51" Column="12" TopLine="14"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="22" Column="14" TopLine="1"/> <Caret Line="89" Column="12" TopLine="49"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="sdk_level_7/android_all.txt"/>
<Caret Line="123" Column="10" TopLine="83"/> <Caret Line="109" Column="20" TopLine="69"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="124" Column="8" TopLine="84"/> <Caret Line="552" Column="1" TopLine="525"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="sdk_level_7/android_all.txt"/> <Filename Value="android_sdk_bindings_gen.pas"/>
<Caret Line="131" Column="29" TopLine="91"/> <Caret Line="402" Column="39" TopLine="379"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>

View File

@ -186,6 +186,7 @@ begin
ADest.Add(' AbsSpinner param_self_AbsSpinner;'); ADest.Add(' AbsSpinner param_self_AbsSpinner;');
ADest.Add(' ArrayAdapter<String> param_self_ArrayAdapter_String_;'); ADest.Add(' ArrayAdapter<String> param_self_ArrayAdapter_String_;');
ADest.Add(' AdapterView param_self_AdapterView;'); ADest.Add(' AdapterView param_self_AdapterView;');
ADest.Add(' AlertDialog.Builder param_self_AlertDialog_Builder;');
ADest.Add(' //'); ADest.Add(' //');
ADest.Add(' // Params'); ADest.Add(' // Params');
ADest.Add(' //'); ADest.Add(' //');
@ -206,6 +207,8 @@ begin
ADest.Add(' boolean lResult_boolean;'); ADest.Add(' boolean lResult_boolean;');
ADest.Add(' CharSequence lResult_CharSequence;'); ADest.Add(' CharSequence lResult_CharSequence;');
ADest.Add(' Display lResult_Display;'); ADest.Add(' Display lResult_Display;');
ADest.Add(' AlertDialog.Builder lResult_AlertDialog_Builder;');
ADest.Add(' AlertDialog lResult_AlertDialog;');
ADest.Add(''); ADest.Add('');
ADest.Add(' switch (Buffer)'); ADest.Add(' switch (Buffer)');
ADest.Add(' {'); ADest.Add(' {');
@ -396,6 +399,7 @@ var
lParamNum: Integer = 1; lParamNum: Integer = 1;
lCurWord, lParentClassName: string; lCurWord, lParentClassName: string;
lMethodReturn, lMethodReturnPas, lMethodName, lParamType, lParamTypePas, lParamName, lParamPrefix: string; lMethodReturn, lMethodReturnPas, lMethodName, lParamType, lParamTypePas, lParamName, lParamPrefix: string;
lMethodReturnJavaIdentifier: string;
DeclarationBase, TmpStr, lIDString: string; DeclarationBase, TmpStr, lIDString: string;
FPasOutputImplCurLine: Integer; FPasOutputImplCurLine: Integer;
lJavaParamVar, lJavaParams, lJavaParamSelf: string; lJavaParamVar, lJavaParams, lJavaParamSelf: string;
@ -428,7 +432,7 @@ begin
if not FIsGlobalObject then if not FIsGlobalObject then
FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Index); // Self, Java Pointer'); FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Index); // Self, Java Pointer');
lJavaParamSelf := 'param_self_' + JavaRemoveGeneric(FClassName); lJavaParamSelf := 'param_self_' + JavaRemoveGeneric(ConvertPointToUnderline(FClassName));
FJavaOutputMethods.Add(' // ' + ASourceLine); FJavaOutputMethods.Add(' // ' + ASourceLine);
FJavaOutputMethods.Add(' case ' + lIDString + ':'); FJavaOutputMethods.Add(' case ' + lIDString + ':');
FJavaOutputMethods.Add(' DebugOut("' + lIDString + '");'); FJavaOutputMethods.Add(' DebugOut("' + lIDString + '");');
@ -498,7 +502,7 @@ begin
// And for Java params too // And for Java params too
lJavaParams := System.Copy(lJavaParams, 0, Length(lJavaParams)-2); lJavaParams := System.Copy(lJavaParams, 0, Length(lJavaParams)-2);
// Add the return // Add the Pascal return
if lMethodReturn = 'void' then if lMethodReturn = 'void' then
begin begin
TmpStr := TmpStr + ');'; TmpStr := TmpStr + ');';
@ -530,25 +534,27 @@ begin
FPasOutputImpl.Add('end;'); FPasOutputImpl.Add('end;');
FPasOutputImpl.Add(''); FPasOutputImpl.Add('');
// Java Return
FJavaOutputMethods.Add(' //'); FJavaOutputMethods.Add(' //');
lMethodReturnJavaIdentifier := 'lResult_' + ConvertPointToUnderline(lMethodReturn);
if AIsField then if AIsField then
begin begin
FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' = ' + lJavaParamSelf + '.' + lMethodName + ';'); FJavaOutputMethods.Add(Format(' %s = %s.%s;', [lMethodReturnJavaIdentifier, lJavaParamSelf, lMethodName]));
FJavaOutputMethods.Add(' MyAndroidPipesComm.' + GetJavaResultFunction(lMethodReturn) + '(lResult_' + lMethodReturn + ');'); FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.%s(%s);', [GetJavaResultFunction(lMethodReturn), lMethodReturnJavaIdentifier]));
end end
else if lMethodReturn = 'void' then else if lMethodReturn = 'void' then
begin begin
FJavaOutputMethods.Add(' ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');'); FJavaOutputMethods.Add(Format(' %s.%s(%s);', [lJavaParamSelf, lMethodName, lJavaParams]));
FJavaOutputMethods.Add(' MyAndroidPipesComm.SendResult();'); FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.SendResult();', []));
end end
else else
begin begin
FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' = ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');'); FJavaOutputMethods.Add(Format(' %s = %s.%s(%s);', [lMethodReturnJavaIdentifier, lJavaParamSelf, lMethodName, lJavaParams]));
if IsBasicJavaType(lMethodReturn) or (lMethodReturn = 'CharSequence') or (lMethodReturn = 'String') then if IsBasicJavaType(lMethodReturn) or (lMethodReturn = 'CharSequence') or (lMethodReturn = 'String') then
FJavaOutputMethods.Add(' MyAndroidPipesComm.' + GetJavaResultFunction(lMethodReturn) + '(lResult_' + lMethodReturn + ');') FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.%s(%s);', [GetJavaResultFunction(lMethodReturn), lMethodReturnJavaIdentifier]))
else else
begin begin
FJavaOutputMethods.Add(Format(' ViewElements.add(lResult_%s);', [lMethodReturn])); FJavaOutputMethods.Add(Format(' ViewElements.add(%s);', [lMethodReturnJavaIdentifier]));
FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.%s(ViewElements.size() - 1);', [GetJavaResultFunction(lMethodReturn)])) FJavaOutputMethods.Add(Format(' MyAndroidPipesComm.%s(ViewElements.size() - 1);', [GetJavaResultFunction(lMethodReturn)]))
end; end;
end; end;

View File

@ -43,6 +43,45 @@ method void getMetrics(DisplayMetrics outMetrics)
[WindowManager] TJavaObject [WindowManager] TJavaObject
method Display getDefaultDisplay() method Display getDefaultDisplay()
[Dialog] TJavaObject
[AlertDialog] Dialog
[AlertDialog.Builder] TJavaObject
constructor Create(Activity)
#public AlertDialog create ()
#public Context getContext ()
#public AlertDialog.Builder setAdapter (ListAdapter adapter, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setCancelable (boolean cancelable)
#public AlertDialog.Builder setCursor (Cursor cursor, DialogInterface.OnClickListener listener, String labelColumn)
#public AlertDialog.Builder setCustomTitle (View customTitleView)
#public AlertDialog.Builder setIcon (Drawable icon)
#public AlertDialog.Builder setIcon (int iconId)
#public AlertDialog.Builder setIconAttribute (int attrId)
#public AlertDialog.Builder setInverseBackgroundForced (boolean useInverseBackground)
#public AlertDialog.Builder setItems (int itemsId, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setItems (CharSequence[] items, DialogInterface.OnClickListener listener)
method AlertDialog.Builder setMessage (CharSequence message)
#public AlertDialog.Builder setMessage (int messageId)
#public AlertDialog.Builder setMultiChoiceItems (CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)
#public AlertDialog.Builder setMultiChoiceItems (Cursor cursor, String isCheckedColumn, String labelColumn, DialogInterface.OnMultiChoiceClickListener listener)
#public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setNeutralButton (int textId, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setOnCancelListener (DialogInterface.OnCancelListener onCancelListener)
#public AlertDialog.Builder setOnItemSelectedListener (AdapterView.OnItemSelectedListener listener)
#public AlertDialog.Builder setOnKeyListener (DialogInterface.OnKeyListener onKeyListener)
#public AlertDialog.Builder setPositiveButton (int textId, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (ListAdapter adapter, int checkedItem, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (int itemsId, int checkedItem, DialogInterface.OnClickListener listener)
#public AlertDialog.Builder setSingleChoiceItems (Cursor cursor, int checkedItem, String labelColumn, DialogInterface.OnClickListener listener)
method AlertDialog.Builder setTitle (CharSequence title)
#public AlertDialog.Builder setTitle (int titleId)
method AlertDialog.Builder setView (View view)
method AlertDialog show ()
# #
# android.view # android.view
# #

View File

@ -49,73 +49,81 @@ public class AndroidAll
static final int amkUI_TDisplay_getMetrics_0 = 0x00103000; static final int amkUI_TDisplay_getMetrics_0 = 0x00103000;
// WindowManager // WindowManager
static final int amkUI_TWindowManager_getDefaultDisplay_0 = 0x00104000; static final int amkUI_TWindowManager_getDefaultDisplay_0 = 0x00104000;
// Dialog
// AlertDialog
// AlertDialog.Builder
static final int amkUI_TAlertDialog_Builder_Create_0 = 0x00107000;
static final int amkUI_TAlertDialog_Builder_setMessage_1 = 0x00107001;
static final int amkUI_TAlertDialog_Builder_setTitle_2 = 0x00107002;
static final int amkUI_TAlertDialog_Builder_setView_3 = 0x00107003;
static final int amkUI_TAlertDialog_Builder_show_4 = 0x00107004;
// ViewGroup.LayoutParams // ViewGroup.LayoutParams
static final int amkUI_TViewGroup_LayoutParams_Create_0 = 0x00105000; static final int amkUI_TViewGroup_LayoutParams_Create_0 = 0x00108000;
// View // View
static final int amkUI_TView_setLayoutParams_0 = 0x00106000; static final int amkUI_TView_setLayoutParams_0 = 0x00109000;
static final int amkUI_TView_setVisibility_1 = 0x00106001; static final int amkUI_TView_setVisibility_1 = 0x00109001;
// ViewGroup // ViewGroup
static final int amkUI_TViewGroup_addView_0 = 0x00107000; static final int amkUI_TViewGroup_addView_0 = 0x0010A000;
static final int amkUI_TViewGroup_addView_1 = 0x00107001; static final int amkUI_TViewGroup_addView_1 = 0x0010A001;
static final int amkUI_TViewGroup_addView_2 = 0x00107002; static final int amkUI_TViewGroup_addView_2 = 0x0010A002;
static final int amkUI_TViewGroup_addView_3 = 0x00107003; static final int amkUI_TViewGroup_addView_3 = 0x0010A003;
static final int amkUI_TViewGroup_addView_4 = 0x00107004; static final int amkUI_TViewGroup_addView_4 = 0x0010A004;
// LinearLayout // LinearLayout
static final int amkUI_TLinearLayout_Create_0 = 0x00108000; static final int amkUI_TLinearLayout_Create_0 = 0x0010B000;
static final int amkUI_TLinearLayout_setOrientation_1 = 0x00108001; static final int amkUI_TLinearLayout_setOrientation_1 = 0x0010B001;
// AbsoluteLayout // AbsoluteLayout
static final int amkUI_TAbsoluteLayout_Create_0 = 0x00109000; static final int amkUI_TAbsoluteLayout_Create_0 = 0x0010C000;
// AbsoluteLayout.LayoutParams // AbsoluteLayout.LayoutParams
static final int amkUI_TAbsoluteLayout_LayoutParams_Create_0 = 0x0010A000; static final int amkUI_TAbsoluteLayout_LayoutParams_Create_0 = 0x0010D000;
// TextView // TextView
static final int amkUI_TTextView_Create_0 = 0x0010B000; static final int amkUI_TTextView_Create_0 = 0x0010E000;
static final int amkUI_TTextView_setText_1 = 0x0010B001; static final int amkUI_TTextView_setText_1 = 0x0010E001;
static final int amkUI_TTextView_setOnClickListener_2 = 0x0010B002; static final int amkUI_TTextView_setOnClickListener_2 = 0x0010E002;
static final int amkUI_TTextView_OnClickListener_Start_3 = 0x0010B003; static final int amkUI_TTextView_OnClickListener_Start_3 = 0x0010E003;
static final int amkUI_TTextView_OnClickListener_Finished_4 = 0x0010B004; static final int amkUI_TTextView_OnClickListener_Finished_4 = 0x0010E004;
static final int amkUI_TTextView_setTextSize_5 = 0x0010B005; static final int amkUI_TTextView_setTextSize_5 = 0x0010E005;
static final int amkUI_TTextView_getText_6 = 0x0010B006; static final int amkUI_TTextView_getText_6 = 0x0010E006;
// EditText // EditText
static final int amkUI_TEditText_Create_0 = 0x0010C000; static final int amkUI_TEditText_Create_0 = 0x0010F000;
// Button // Button
static final int amkUI_TButton_Create_0 = 0x0010D000; static final int amkUI_TButton_Create_0 = 0x00110000;
// FrameLayout // FrameLayout
// TimePicker // TimePicker
static final int amkUI_TTimePicker_Create_0 = 0x0010F000; static final int amkUI_TTimePicker_Create_0 = 0x00112000;
static final int amkUI_TTimePicker_getCurrentHour_1 = 0x0010F001; static final int amkUI_TTimePicker_getCurrentHour_1 = 0x00112001;
static final int amkUI_TTimePicker_setCurrentHour_2 = 0x0010F002; static final int amkUI_TTimePicker_setCurrentHour_2 = 0x00112002;
static final int amkUI_TTimePicker_getCurrentMinute_3 = 0x0010F003; static final int amkUI_TTimePicker_getCurrentMinute_3 = 0x00112003;
static final int amkUI_TTimePicker_setCurrentMinute_4 = 0x0010F004; static final int amkUI_TTimePicker_setCurrentMinute_4 = 0x00112004;
static final int amkUI_TTimePicker_is24HourView_5 = 0x0010F005; static final int amkUI_TTimePicker_is24HourView_5 = 0x00112005;
static final int amkUI_TTimePicker_setIs24HourView_6 = 0x0010F006; static final int amkUI_TTimePicker_setIs24HourView_6 = 0x00112006;
// ScrollView // ScrollView
static final int amkUI_TScrollView_Create_0 = 0x00110000; static final int amkUI_TScrollView_Create_0 = 0x00113000;
// CompoundButton // CompoundButton
static final int amkUI_TCompoundButton_isChecked_0 = 0x00111000; static final int amkUI_TCompoundButton_isChecked_0 = 0x00114000;
static final int amkUI_TCompoundButton_performClick_1 = 0x00111001; static final int amkUI_TCompoundButton_performClick_1 = 0x00114001;
static final int amkUI_TCompoundButton_setChecked_2 = 0x00111002; static final int amkUI_TCompoundButton_setChecked_2 = 0x00114002;
static final int amkUI_TCompoundButton_toggle_3 = 0x00111003; static final int amkUI_TCompoundButton_toggle_3 = 0x00114003;
// CheckBox // CheckBox
static final int amkUI_TCheckBox_Create_0 = 0x00112000; static final int amkUI_TCheckBox_Create_0 = 0x00115000;
// AdapterView // AdapterView
static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00113000; static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00116000;
// AbsSpinner // AbsSpinner
static final int amkUI_TAbsSpinner_getCount_0 = 0x00114000; static final int amkUI_TAbsSpinner_getCount_0 = 0x00117000;
static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00114001; static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00117001;
static final int amkUI_TAbsSpinner_setSelection_2 = 0x00114002; static final int amkUI_TAbsSpinner_setSelection_2 = 0x00117002;
// Spinner // Spinner
static final int amkUI_TSpinner_Create_0 = 0x00115000; static final int amkUI_TSpinner_Create_0 = 0x00118000;
// Filterable // Filterable
// Adapter // Adapter
// ListAdapter // ListAdapter
// SpinnerAdapter // SpinnerAdapter
// BaseAdapter // BaseAdapter
// ArrayAdapter<String> // ArrayAdapter<String>
static final int amkUI_TArrayAdapter_String__Create_0 = 0x0011B000; static final int amkUI_TArrayAdapter_String__Create_0 = 0x0011E000;
static final int amkUI_TArrayAdapter_String__add_1 = 0x0011B001; static final int amkUI_TArrayAdapter_String__add_1 = 0x0011E001;
static final int amkUI_TArrayAdapter_String__clear_2 = 0x0011B002; static final int amkUI_TArrayAdapter_String__clear_2 = 0x0011E002;
static final int amkUI_TArrayAdapter_String__insert_3 = 0x0011B003; static final int amkUI_TArrayAdapter_String__insert_3 = 0x0011E003;
static final int amkUI_TArrayAdapter_String__remove_4 = 0x0011B004; static final int amkUI_TArrayAdapter_String__remove_4 = 0x0011E004;
// layout // layout
public boolean ProcessCommand(int Buffer) public boolean ProcessCommand(int Buffer)
@ -144,6 +152,7 @@ public class AndroidAll
AbsSpinner param_self_AbsSpinner; AbsSpinner param_self_AbsSpinner;
ArrayAdapter<String> param_self_ArrayAdapter_String_; ArrayAdapter<String> param_self_ArrayAdapter_String_;
AdapterView param_self_AdapterView; AdapterView param_self_AdapterView;
AlertDialog.Builder param_self_AlertDialog_Builder;
// //
// Params // Params
// //
@ -164,6 +173,8 @@ public class AndroidAll
boolean lResult_boolean; boolean lResult_boolean;
CharSequence lResult_CharSequence; CharSequence lResult_CharSequence;
Display lResult_Display; Display lResult_Display;
AlertDialog.Builder lResult_AlertDialog_Builder;
AlertDialog lResult_AlertDialog;
switch (Buffer) switch (Buffer)
{ {
@ -293,6 +304,65 @@ public class AndroidAll
ViewElements.add(lResult_Display); ViewElements.add(lResult_Display);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1); MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break; break;
case amkUI_TAlertDialog_Builder_Create_0:
DebugOut("amkUI_TAlertDialog_Builder_Create_0");
ViewElements.add(new AlertDialog.Builder(activity));
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setMessage (CharSequence message)
case amkUI_TAlertDialog_Builder_setMessage_1:
DebugOut("amkUI_TAlertDialog_Builder_setMessage_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setMessage(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setTitle (CharSequence title)
case amkUI_TAlertDialog_Builder_setTitle_2:
DebugOut("amkUI_TAlertDialog_Builder_setTitle_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setTitle(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setView (View view)
case amkUI_TAlertDialog_Builder_setView_3:
DebugOut("amkUI_TAlertDialog_Builder_setView_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setView(lView_1);
ViewElements.add(lResult_AlertDialog_Builder);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog show ()
case amkUI_TAlertDialog_Builder_show_4:
DebugOut("amkUI_TAlertDialog_Builder_show_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
//
lResult_AlertDialog = param_self_AlertDialog_Builder.show();
ViewElements.add(lResult_AlertDialog);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TViewGroup_LayoutParams_Create_0: case amkUI_TViewGroup_LayoutParams_Create_0:
DebugOut("amkUI_TViewGroup_LayoutParams_Create_0"); DebugOut("amkUI_TViewGroup_LayoutParams_Create_0");
lint_1 = MyAndroidPipesComm.GetInt(); lint_1 = MyAndroidPipesComm.GetInt();

View File

@ -64,15 +64,27 @@ public class AndroidPipesComm
public void PrintPascalException(byte Buffer) public void PrintPascalException(byte Buffer)
{ {
String PascalMessage = "" + (char) Buffer; String PascalMessage = "" + (char) Buffer;
byte curChar;
try try
{ {
while (true) while (true)
{ {
PascalMessage = PascalMessage + (char) reader.readByte(); curChar = reader.readByte();
// Output line by line
if (curChar == 0x10)
{
ErrorOut(PascalMessage);
PascalMessage = "";
}
else
{
PascalMessage = PascalMessage + (char) curChar;
}
} }
} }
catch (IOException e) catch (IOException e)
{ {
ErrorOut("[PrintPascalException] Exception while obtaining the Pascal Exception, printing the rest of the buffer");
ErrorOut(PascalMessage); ErrorOut(PascalMessage);
} }
} }
@ -122,7 +134,7 @@ public class AndroidPipesComm
else if (MyAndroidApp.ProcessCommand(lSubtype) == true) ; else if (MyAndroidApp.ProcessCommand(lSubtype) == true) ;
else else
{ {
ErrorOut("Unknown UI Command!!!" + java.lang.Integer.toHexString(lSubtype)); ErrorOut("Unknown UI Command!!! This is normal in the end of a callback" + java.lang.Integer.toHexString(lSubtype));
}; };
} }
else if (Buffer == amkJavaLangCall) else if (Buffer == amkJavaLangCall)
@ -139,7 +151,7 @@ public class AndroidPipesComm
// } // }
else else
{ {
ErrorOut("Unknown Pascal message!!! " + java.lang.Integer.toHexString(Buffer)); ErrorOut("[WaitAndProcessPascalMessage] Unknown Pascal message!!! " + java.lang.Integer.toHexString(Buffer));
// If we get an Unknown Pascal message, it might be an error printed to the console, so lets print it and quit // If we get an Unknown Pascal message, it might be an error printed to the console, so lets print it and quit
PrintPascalException(Buffer); PrintPascalException(Buffer);

View File

@ -72,7 +72,13 @@ end;
procedure TForm2.Button2Click(Sender: TObject); procedure TForm2.Button2Click(Sender: TObject);
begin begin
{$ifdef LCLAndroid}
vAndroidPipesComm.Log('TForm2.Button2Click');
{$endif}
InputBox('Caption', 'Prompt', 'Default'); InputBox('Caption', 'Prompt', 'Default');
{$ifdef LCLAndroid}
vAndroidPipesComm.Log('TForm2.Button2Click');
{$endif}
end; end;
initialization initialization