This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sample_code:introspector [2014/10/09 19:12] 81.158.80.181 |
sample_code:introspector [2014/12/06 21:02] stevegarman |
||
---|---|---|---|
Line 4: | Line 4: | ||
It is incomplete as it does not drill down far enough but it is much better than nothing. | It is incomplete as it does not drill down far enough but it is much better than nothing. | ||
===== Warnings ===== | ===== Warnings ===== | ||
- | Please be aware that using undocumented functions is not recommended by the AndroidScript | + | Please be aware that using undocumented functions is not recommended by the DroidScript |
Please also be aware that the **" | Please also be aware that the **" | ||
- | ===== Acknowledgement | + | ===== Acknowledgements |
- | Andreas Rozek would recognize much oif the code as the heart of it is stolen from his post at [[https:// | + | Andreas Rozek would recognize much of the code as the heart of it is stolen from his post at [[https:// |
+ | |||
+ | Thanks also to Salvatore Fusto for finding a bug in the app. | ||
===== The code ===== | ===== The code ===== | ||
<code javascript introspector.js> | <code javascript introspector.js> | ||
- | // Introspection lite tool for home use by Steve Garman | + | // Introspection lite tool for home use by Steve Garman |
- | // Main code stolen from AppInspector by Andreas Rozek | + | // Main code stolen from AppInspector by Andreas Rozek |
+ | // | ||
+ | var myobj = app; | ||
+ | var ListView, menuView, FunctionView | ||
+ | var main_header_txt, | ||
+ | var lastMenu = " | ||
+ | var pasteable = " | ||
+ | var vers = Math.floor((app.GetVersion() + .0005) * 100); | ||
+ | var docfold = "/ | ||
+ | var docfile = docfold + "/ | ||
- | //Global variables | + | //Called when application is started. |
- | var myobj = app; | + | function |
- | var ListView, menuView, FunctionView | + | |
- | var main_header_txt, | + | app.EnableBackKey( false ); |
- | var lastMenu = " | + | |
- | var pasteable = " | + | |
- | var vers = Math.floor((app.GetVersion() | + | add_top_bar( lay ); |
- | | + | /**** prepare page area ****/ |
- | var docfold = "/ | + | |
- | var docfile = docfold + "/ | + | |
- | + | ||
- | //Called when application is started. | + | |
- | function | + | |
- | app.EnableBackKey( | + | |
- | + | ||
- | | + | |
- | | + | |
- | add_top_bar( | + | |
- | + | ||
- | /**** prepare page area ****/ | + | |
- | | + | |
lay.AddChild(PageArea); | lay.AddChild(PageArea); | ||
- | var control_list | + | |
- | | + | var control_list |
- | | + | |
- | | + | menuView.SetOnTouch(menuView_OnTouch); |
- | | + | PageArea.AddChild(menuView); |
- | menuView.SetOnTouch(menuView_OnTouch); | + | |
- | PageArea.AddChild(menuView); | + | |
menuView.SetVisibility(' | menuView.SetVisibility(' | ||
- | ListView | + | |
+ | ListView | ||
prepareFunctionList(); | prepareFunctionList(); | ||
- | | + | |
+ | | ||
PageArea.AddChild(ListView); | PageArea.AddChild(ListView); | ||
- | | + | /**** prepare detail view ****/ |
- | FunctionView | + | |
- | PageArea.AddChild(FunctionView); | + | FunctionView |
- | FunctionView.SetVisibility(' | + | PageArea.AddChild(FunctionView); |
- | + | FunctionView.SetVisibility(' | |
- | | + | |
- | app.AddLayout( | + | app.AddLayout( lay ); |
showMenuView(); | showMenuView(); | ||
- | }//OnStart | + | |
- | function add_top_bar | + | function add_top_bar (lyout, |
- | //basic top bar layout | + | |
- | var lay_bar | + | |
- | lay_bar.SetBackGradient( "# | + | var lay_bar |
+ | lay_bar.SetBackGradient( "# | ||
- | | + | //add app name if required - stolen for object/function name in this app |
- | | + | |
- | main_header_txt.SetTextSize( | + | main_header_txt |
- | main_header_txt.SetPadding( 0.01, 0, 0.01, 0 ); | + | main_header_txt.SetTextSize( 24 ); |
- | lay_bar.AddChild( | + | main_header_txt.SetPadding( 0.01, |
+ | lay_bar.AddChild( main_header_txt ); | ||
- | var filterlabel | + | |
- | filterlabel.SetTextSize(18); | + | var filterlabel |
- | filterlabel.SetTextColor("# | + | filterlabel.SetTextSize(18); |
- | lay_bar.AddChild( | + | filterlabel.SetTextColor("# |
- | | + | lay_bar.AddChild( filterlabel ); |
- | edtFilter.SetBackColor("# | + | |
- | edtFilter.SetTextSize(18); | + | edtFilter.SetBackColor("# |
- | edtFilter.SetPadding( 0.01, 0, 0, 0.001 ); | + | edtFilter.SetTextSize(18); |
- | edtFilter.SetOnChange(edtFilterOnChange); | + | edtFilter.SetPadding( 0.01, |
- | lay_bar.AddChild(edtFilter); | + | edtFilter.SetOnChange(edtFilterOnChange); |
+ | lay_bar.AddChild(edtFilter); | ||
- | | + | |
- | }// | + | |
+ | } // | ||
- | function | + | function |
- | | + | |
- | switch(name) { | + | lastMenu |
- | | + | switch (name) |
- | | + | |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | myobj = app.CreateSensor( " | + | break; |
- | | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | | + | |
- | myobj = app.CreateLocator( " | + | break; |
- | | + | |
- | | + | |
- | | + | break; |
- | | + | |
- | | + | |
- | myobj = app.CreateSMS(); | + | break; |
- | | + | |
- | | + | |
- | | + | break; |
- | break; | + | |
- | case("Manually entered code"): | + | |
- | showEval(); | + | break; |
- | return; | + | case ("Manually entered code"): |
- | default: | + | |
- | myobj=app; | + | return; |
- | | + | default: |
- | } | + | |
- | prepareFunctionList(); | + | |
- | showOverview(); | + | } |
- | main_header_txt.SetText( | + | prepareFunctionList(); |
- | }// | + | showOverview(); |
+ | main_header_txt.SetText( lastMenu ); | ||
+ | } // | ||
- | function | + | |
- | /**** prepare list view ****/ | + | function |
+ | | ||
+ | /**** prepare list view ****/ | ||
- | var objFunctionList; | + | |
- | | + | var objFunctionList; |
- | | + | |
- | for (var Key in myobj) { | + | |
- | | + | |
- | if ((filter | + | |
- | | + | |
- | objFunctionList.push(Key); | + | |
- | }; | + | |
- | } | + | objFunctionList.push(Key); |
- | }; | + | }; |
- | objFunctionList.sort(); | + | } |
- | ListView.SetList( objFunctionList.join(',' | + | }; |
- | | + | objFunctionList.sort(); |
- | | + | ListView.SetList( objFunctionList.join(',' |
- | | + | |
- | | + | |
- | docfile | + | |
- | }// | + | } // |
- | | + | |
- | ListView.SetVisibility(' | + | function |
- | FunctionView.SetVisibility(' | + | |
- | menuView.SetVisibility(' | + | ListView.SetVisibility(' |
- | main_header_txt.SetText( "Choose Control" ); | + | FunctionView.SetVisibility(' |
- | }// | + | menuView.SetVisibility(' |
+ | main_header_txt.SetText( " | ||
+ | } // | ||
- | function showAppFunction | + | |
- | FunctionView.SetText(String(myobj[Name])); | + | function showAppFunction (Name) |
- | main_header_txt.SetText( | + | |
- | ListView.SetVisibility(' | + | FunctionView.SetText(String(myobj[Name])); |
- | menuView.SetVisibility(' | + | main_header_txt.SetText( lastMenu |
- | FunctionView.SetVisibility(' | + | ListView.SetVisibility(' |
- | }// | + | menuView.SetVisibility(' |
+ | FunctionView.SetVisibility(' | ||
+ | } // | ||
- | function showOverview | + | |
- | ListView.SetVisibility(' | + | function showOverview () |
- | FunctionView.SetVisibility(' | + | |
- | menuView.SetVisibility(' | + | ListView.SetVisibility(' |
- | main_header_txt.SetText( | + | FunctionView.SetVisibility(' |
- | }// | + | menuView.SetVisibility(' |
- | | + | main_header_txt.SetText( lastMenu ); |
- | if( ListView.GetVisibility() == " | + | } // |
- | prepareFunctionList(); | + | |
- | } | + | function |
- | }// | + | |
+ | if ( ListView.GetVisibility() == " | ||
+ | | ||
+ | prepareFunctionList(); | ||
+ | } | ||
+ | } // | ||
- | function | + | |
- | | + | function |
- | | + | |
- | pasteOnExit.SetOnTouch( | + | |
- | } | + | |
- | | + | |
- | | + | pasteOnExit.SetOnTouch( pasteOnExit_OnTouch ); |
- | }//OnBack | + | } |
+ | | ||
+ | | ||
+ | } //OnBack | ||
- | function | + | |
- | if( result==" | + | function |
- | app.SetClipboardText( | + | |
- | if( ! app.FolderExists( | + | if ( result == " |
- | | + | |
- | app.WriteFile( docfile, | + | app.SetClipboardText( pasteable ); |
- | } | + | if ( ! app.FolderExists( docfold ) ) |
- | app.Exit(); | + | app.WriteFile( docfile, |
- | }// | + | } |
- | function | + | app.Exit(); |
- | | + | } // |
- | | + | function |
- | layDlg.SetPadding( 0.02, 0, 0.02, 0.02 ); | + | |
- | | + | |
- | edtDlg.SetCursorPos(edtDlg.GetText().length); | + | |
- | layDlg.AddChild(edtDlg); | + | layDlg.SetPadding( 0.02, |
- | dlg.AddLayout( | + | |
- | | + | edtDlg.SetCursorPos(edtDlg.GetText().length); |
- | horiz.SetPadding( 0.02, 0.02, 0.02, 0 ); | + | layDlg.AddChild(edtDlg); |
- | | + | dlg.AddLayout( layDlg ); |
- | btn.SetOnTouch(dlg_ok); | + | |
- | horiz.AddChild(btn); | + | horiz.SetPadding( 0.02, |
- | | + | |
- | btn.SetOnTouch(dlg_canc); | + | btn.SetOnTouch(dlg_ok); |
- | horiz.AddChild(btn); | + | horiz.AddChild(btn); |
- | layDlg.AddChild(horiz); | + | |
+ | btn.SetOnTouch(dlg_canc); | ||
+ | horiz.AddChild(btn); | ||
+ | layDlg.AddChild(horiz); | ||
dlg.Show(); | dlg.Show(); | ||
- | }// | + | |
- | function | + | function |
- | app.HideKeyboard(); | + | |
- | dlg.Dismiss(); | + | app.HideKeyboard(); |
- | | + | dlg.Dismiss(); |
- | prepareFunctionList(); | + | |
- | showOverview(); | + | prepareFunctionList(); |
- | | + | showOverview(); |
- | lastMenu | + | |
- | | + | |
- | lastMenu | + | main_header_txt.SetText( lastMenu ); |
- | main_header_txt.SetText( | + | } //dlg_ok |
- | }//dlg_ok | + | function |
- | function | + | |
- | app.HideKeyboard(); | + | app.HideKeyboard(); |
dlg.Dismiss(); | dlg.Dismiss(); | ||
- | }//dlg_canc | + | |
+ | | ||
</ | </ | ||
- | I have placed an spk of this app at [[http:// | + | I have placed an spk of this app at [[http:// |
And for the sake of completeness, | And for the sake of completeness, |