This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sample_code:introspector [2014/10/10 09:29] 95.237.10.124 [The code] |
sample_code:introspector [2015/03/29 05:06] (current) |
||
---|---|---|---|
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 **" | ||
===== Acknowledgements ===== | ===== 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. | Thanks also to Salvatore Fusto for finding a bug in the app. | ||
Line 14: | Line 14: | ||
// 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 | ||
+ | |||
//Global variables | //Global variables | ||
var myobj = app; | var myobj = app; | ||
Line 21: | Line 21: | ||
var lastMenu = " | var lastMenu = " | ||
var pasteable = " | var pasteable = " | ||
- | var vers = Math.floor((app.GetVersion() | + | var vers = Math.floor((app.GetVersion()+.0005) * 100); |
- | | + | |
var docfold = "/ | var docfold = "/ | ||
var docfile = docfold + "/ | var docfile = docfold + "/ | ||
+ | var evalsfile = docfold + "/ | ||
+ | |||
//Called when application is started. | //Called when application is started. | ||
function OnStart(){ | function OnStart(){ | ||
Line 37: | Line 37: | ||
var PageArea = app.CreateLayout(' | var PageArea = app.CreateLayout(' | ||
lay.AddChild(PageArea); | lay.AddChild(PageArea); | ||
- | + | ||
- | var control_list = " | + | var control_list = " |
- | +", | + | +", |
- | +", | + | +", |
- | +",WebServer, | + | +", |
+ | | ||
menuView = app.CreateList( control_list, | menuView = app.CreateList( control_list, | ||
menuView.SetOnTouch(menuView_OnTouch); | menuView.SetOnTouch(menuView_OnTouch); | ||
PageArea.AddChild(menuView); | PageArea.AddChild(menuView); | ||
menuView.SetVisibility(' | menuView.SetVisibility(' | ||
+ | |||
ListView = app.CreateList("", | ListView = app.CreateList("", | ||
prepareFunctionList(); | prepareFunctionList(); | ||
+ | |||
ListView.SetOnTouch(showAppFunction); | ListView.SetOnTouch(showAppFunction); | ||
PageArea.AddChild(ListView); | PageArea.AddChild(ListView); | ||
+ | |||
/**** prepare detail view ****/ | /**** prepare detail view ****/ | ||
- | + | ||
- | FunctionView = app.CreateTextEdit('' | + | FunctionView = app.CreateTextEdit('' |
+ | // | ||
PageArea.AddChild(FunctionView); | PageArea.AddChild(FunctionView); | ||
FunctionView.SetVisibility(' | FunctionView.SetVisibility(' | ||
Line 63: | Line 65: | ||
showMenuView(); | showMenuView(); | ||
}//OnStart | }//OnStart | ||
+ | |||
function add_top_bar (lyout, opts){ | function add_top_bar (lyout, opts){ | ||
//basic top bar layout | //basic top bar layout | ||
var lay_bar = app.CreateLayout( " | var lay_bar = app.CreateLayout( " | ||
lay_bar.SetBackGradient( "# | lay_bar.SetBackGradient( "# | ||
+ | |||
//add app name if required - stolen for object/ | //add app name if required - stolen for object/ | ||
main_header_txt = app.CreateText( lastMenu , -1, -1 ); | main_header_txt = app.CreateText( lastMenu , -1, -1 ); | ||
Line 74: | Line 76: | ||
main_header_txt.SetPadding( 0.01, 0, 0.01, 0 ); | main_header_txt.SetPadding( 0.01, 0, 0.01, 0 ); | ||
lay_bar.AddChild( main_header_txt ); | lay_bar.AddChild( main_header_txt ); | ||
+ | |||
var filterlabel = app.CreateText(" | var filterlabel = app.CreateText(" | ||
filterlabel.SetTextSize(18); | filterlabel.SetTextSize(18); | ||
Line 85: | Line 87: | ||
edtFilter.SetOnChange(edtFilterOnChange); | edtFilter.SetOnChange(edtFilterOnChange); | ||
lay_bar.AddChild(edtFilter); | lay_bar.AddChild(edtFilter); | ||
+ | |||
lyout.AddChild( lay_bar ); | lyout.AddChild( lay_bar ); | ||
}// | }// | ||
+ | |||
function menuView_OnTouch(name){ | function menuView_OnTouch(name){ | ||
lastMenu = name; | lastMenu = name; | ||
switch(name) { | switch(name) { | ||
case " | case " | ||
- | myobj = app.CreateLayout( " | + | myobj = app.CreateLayout( " |
break; | break; | ||
+ | case " | ||
+ | myobj = app.CreateBluetoothList(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateBluetoothSerial(); | ||
+ | break; | ||
case " | case " | ||
myobj = app.CreateButton(" | myobj = app.CreateButton(" | ||
break; | break; | ||
- | case "Text": | + | case "CameraView": |
- | myobj = main_header_txt; | + | myobj = app.CreateCameraView( 0.8,0.8 ); |
- | break; | + | |
- | case "Image": | + | |
- | myobj = app.CreateImage( "/ | + | |
- | break; | + | |
- | case " | + | |
- | myobj = app.CreateNotification() ; | + | |
break; | break; | ||
case " | case " | ||
Line 112: | Line 114: | ||
case " | case " | ||
myobj = app.CreateCrypt(); | myobj = app.CreateCrypt(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.OpenDatabase(" | ||
break; | break; | ||
case " | case " | ||
myobj = app.CreateDialog("" | myobj = app.CreateDialog("" | ||
break; | break; | ||
- | case "ToggleButton": | + | case "Email": |
- | myobj = app.CreateToggle( "x" ); | + | myobj = app.CreateEmail( " |
+ | break; | ||
+ | case "Image": | ||
+ | myobj = app.CreateImage( "/ | ||
+ | break; | ||
+ | case " | ||
+ | myobj = ListView; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateLocator( " | ||
+ | | ||
+ | case " | ||
+ | myobj = app.CreateNotification() ; | ||
break; | break; | ||
+ | case " | ||
+ | myobj = app.CreateNxt(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateNxtRemote(); | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.Odroid( " | ||
+ | break; | ||
case " | case " | ||
myobj = app.CreateSeekBar( " | myobj = app.CreateSeekBar( " | ||
break; | break; | ||
- | case "List": | + | case "Sensor": |
- | myobj = ListView; | + | myobj = app.CreateSensor( " |
+ | | ||
+ | case " | ||
+ | myobj = app.CreateSMS(); | ||
+ | | ||
+ | case " | ||
+ | | ||
+ | | ||
+ | case " | ||
+ | myobj = app.CreateTabs( " | ||
+ | break; | ||
+ | case "Text": | ||
+ | myobj = main_header_txt; | ||
break; | break; | ||
case " | case " | ||
myobj = FunctionView; | myobj = FunctionView; | ||
+ | break; | ||
+ | case " | ||
+ | myobj = app.CreateToggle( " | ||
break; | break; | ||
case " | case " | ||
Line 134: | Line 175: | ||
myobj = app.CreateWebServer( 8080, " | myobj = app.CreateWebServer( 8080, " | ||
break; | break; | ||
- | case " | ||
- | myobj = app.CreateCameraView( 0.8,0.8 ); | ||
- | break; | ||
- | case " | ||
- | myobj = app.CreateSensor( " | ||
- | | ||
- | case " | ||
- | myobj = app.CreateEmail( " | ||
- | break; | ||
- | case " | ||
- | myobj = app.CreateLocator( " | ||
- | | ||
- | case " | ||
- | | ||
- | | ||
- | case " | ||
- | myobj = app.CreateSMS(); | ||
- | | ||
case " | case " | ||
myobj = app.CreateYesNoDialog("" | myobj = app.CreateYesNoDialog("" | ||
Line 161: | Line 184: | ||
myobj=app; | myobj=app; | ||
lastMenu = " | lastMenu = " | ||
- | } | + | } |
prepareFunctionList(); | prepareFunctionList(); | ||
showOverview(); | showOverview(); | ||
main_header_txt.SetText( lastMenu ); | main_header_txt.SetText( lastMenu ); | ||
}// | }// | ||
+ | |||
function prepareFunctionList(){ | function prepareFunctionList(){ | ||
/**** prepare list view ****/ | /**** prepare list view ****/ | ||
+ | |||
var objFunctionList; | var objFunctionList; | ||
objFunctionList = []; | objFunctionList = []; | ||
Line 195: | Line 218: | ||
main_header_txt.SetText( " | main_header_txt.SetText( " | ||
}// | }// | ||
+ | |||
function showAppFunction (Name) { | function showAppFunction (Name) { | ||
FunctionView.SetText(String(myobj[Name])); | FunctionView.SetText(String(myobj[Name])); | ||
Line 203: | Line 226: | ||
FunctionView.SetVisibility(' | FunctionView.SetVisibility(' | ||
}// | }// | ||
+ | |||
function showOverview () { | function showOverview () { | ||
ListView.SetVisibility(' | ListView.SetVisibility(' | ||
Line 215: | Line 238: | ||
} | } | ||
}// | }// | ||
+ | |||
function OnBack(){ | function OnBack(){ | ||
if (menuView.GetVisibility() == " | if (menuView.GetVisibility() == " | ||
Line 224: | Line 247: | ||
else showOverview(); | else showOverview(); | ||
}//OnBack | }//OnBack | ||
+ | |||
function pasteOnExit_OnTouch( result ){ | function pasteOnExit_OnTouch( result ){ | ||
if( result==" | if( result==" | ||
Line 238: | Line 261: | ||
var layDlg = app.CreateLayout( " | var layDlg = app.CreateLayout( " | ||
layDlg.SetPadding( 0.02, 0, 0.02, 0.02 ); | layDlg.SetPadding( 0.02, 0, 0.02, 0.02 ); | ||
- | edtDlg = app.CreateTextEdit(' | + | edtDlg = app.CreateTextEdit(' |
edtDlg.SetCursorPos(edtDlg.GetText().length); | edtDlg.SetCursorPos(edtDlg.GetText().length); | ||
layDlg.AddChild(edtDlg); | layDlg.AddChild(edtDlg); | ||
Line 257: | Line 280: | ||
dlg.Dismiss(); | dlg.Dismiss(); | ||
myobj = eval(edtDlg.GetText()); | myobj = eval(edtDlg.GetText()); | ||
- | | + | if ((myobj != null) && (myobj.hasOwnProperty(" |
- | showOverview(); | + | |
- | | + | |
lastMenu = myobj.GetType(); | lastMenu = myobj.GetType(); | ||
- | | + | app.WriteFile(evalsfile, |
+ | } | ||
+ | | ||
lastMenu = " | lastMenu = " | ||
+ | } | ||
main_header_txt.SetText( lastMenu ); | main_header_txt.SetText( lastMenu ); | ||
+ | prepareFunctionList(); | ||
+ | showOverview(); | ||
}//dlg_ok | }//dlg_ok | ||
function dlg_canc(){ | function dlg_canc(){ | ||
Line 269: | Line 295: | ||
dlg.Dismiss(); | dlg.Dismiss(); | ||
}//dlg_canc | }//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, |