DroidScript wiki

(was AndroidScript) unofficial documentation by the community

User Tools

Site Tools


sample_code:introspector

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
sample_code:introspector [2015/03/28 20:01]
octazid [The code] Change Database to Open
sample_code:introspector [2015/03/28 21:06]
madlyr [The code] Added some objects (BluetoothList, BluetoothSerial, NXT, NXT Remote, Odroid (not yet available), Tabs), sorted case
Line 12: Line 12:
 ===== 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  
- +  
-//Global variables +//Global variables 
-var myobj = app; +var myobj = app; 
-var ListView,​ menuView,​ FunctionView +var ListView, menuView, FunctionView 
-var main_header_txt,​ edtFilter,​ dlg,​ edtDlg;​ +var main_header_txt, edtFilter, dlg, edtDlg; 
-var lastMenu = "​app";​ +var lastMenu ​= "​app";​ 
-var pasteable = "​null";​ +var pasteable ​= "​null";​ 
-var vers = Math.floor((app.GetVersion() +var vers = Math.floor((app.GetVersion()+.0005) * 100); 
-      +.0005) * 100);​ +var docfold ​= "/​sdcard/​sjgDocs/​androidscript/"​+vers;​ 
-var docfold = "/​sdcard/​sjgDocs/​androidscript/"​+vers;​ +var docfile ​docfold ​+ "/​null.txt";​ 
-var docfile docfold + "/​null.txt";​ +var evalsfile ​docfold ​+ "/​evals.txt"​ 
-var evalsfile docfold + "/​evals.txt"​ +  
- +//Called when application is started
-//Called when application is started+function OnStart(){ 
-function OnStart(){ +    app.EnableBackKey( ​false ); 
-    app.EnableBackKey( false ); +     
-     +    //Create a layout with objects vertically centered
-    //Create a layout with objects vertically centered+    var lay = app.CreateLayout( "​linear",​ "​Vertical,​FillXY"​ );   
-    var lay = app.CreateLayout( "​linear",​ "​Vertical,​FillXY"​ );​   +    add_top_bar( ​lay ); 
-    add_top_bar( lay ); +  
-  +/**** prepare page area ****/ 
-/**** prepare page area ****/ +    var PageArea ​= app.CreateLayout('​frame','​fillxy'​);​ 
-    var PageArea = app.CreateLayout('​frame','​fillxy'​);​ +    lay.AddChild(PageArea);​ 
-    lay.AddChild(PageArea);​ +  
- +    var control_list ​= "​app,​layout,​Manually entered code,​BluetoothList,​BluetoothSerial,​Button,​CameraView,​CheckBox"​ 
-    var control_list = "​app,​layout,​Manually entered code,​Button,​CameraView,​CheckBox"​ +      +",​Crypt,​Database,​Dialog,​Email,​Image,​List,​Locator,​Notification,​NXT,​NxtRemote,​Odroid,​SeekBar"​ 
-      +",​Crypt,​Database,​Dialog,​Email,​Image,​List,​Locator,​Notification,​SeekBar"​ +      +",​Sensor,​SMS,​Spinner,Tabs,​Text,​TextEdit,​ToggleButton"​  
-      +",​Sensor,​SMS,​Spinner,​Text,​TextEdit,​ToggleButton"​ +      +",​WebView,WebServer,​YesNoDialog"​; 
-      +",WebServer,​WebView,​YesNoDialog"​ +       
-    menuView = app.CreateList( control_list,​ -1,​-1,​ '​fillxy'​);​ +    menuView ​= app.CreateList( control_list,​ -1,-1, '​fillxy'​);​ 
-    menuView.SetOnTouch(menuView_OnTouch);​ +    menuView.SetOnTouch(menuView_OnTouch);​ 
-    PageArea.AddChild(menuView);​ +    PageArea.AddChild(menuView);​ 
-    menuView.SetVisibility('​Hide'​);​ +    menuView.SetVisibility('​Hide'​);​ 
- +  
-    ListView = app.CreateList("",​ -1,​-1,​ '​fillxy'​);​ +    ​ListView ​= app.CreateList("",​ -1,-1, '​fillxy'​);​ 
-    prepareFunctionList();​ +    prepareFunctionList();​ 
- +  
-    ListView.SetOnTouch(showAppFunction);​ +    ListView.SetOnTouch(showAppFunction);​ 
-    PageArea.AddChild(ListView);​ +    PageArea.AddChild(ListView);​ 
- +  
-  /**** prepare detail view ****/ +  /**** prepare detail view ****/ 
- +  
-    FunctionView = app.CreateTextEdit('',​-1,​-1);​ +    ​FunctionView ​= app.CreateTextEdit('',​-1,​-1);​ 
-//FunctionView = app.CreateTextEdit('',​-1,​-1,"​nospell"​);​ +//FunctionView ​= app.CreateTextEdit('',​-1,​-1,"​nospell"​);​ 
-    PageArea.AddChild(FunctionView);​ +    PageArea.AddChild(FunctionView);​ 
-    FunctionView.SetVisibility('​Hide'​);​ +    FunctionView.SetVisibility('​Hide'​);​ 
-     +     
-    //Add layout to app    +    //Add layout to app    
-    app.AddLayout( lay ); +    app.AddLayout( ​lay ); 
-    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( "​Linear",​ "​Horizontal,​Left,​ FillX"​ );​ +  var lay_bar ​= app.CreateLayout( "​Linear",​ "​Horizontal,​Left,​ FillX" ); 
-  lay_bar.SetBackGradient( "#​444444",​ "#​888888"​ );​ +  lay_bar.SetBackGradient( "#​444444",​ "#​888888"​ ); 
- +  
-  //add app name if required stolen for object/function name in this app +  //add app name if required ​stolen for object/function name in this app 
-  main_header_txt = app.CreateText( lastMenu , -1, -); +  ​main_header_txt ​= app.CreateText( ​lastMenu ​, -1, -); 
-  main_header_txt.SetTextSize( 24 ); +  main_header_txt.SetTextSize( ​24 ); 
-  main_header_txt.SetPadding( 0.01,​ 0,​ 0.01,​ ); +  main_header_txt.SetPadding( 0.01, 0, 0.01, ); 
-  lay_bar.AddChild( main_header_txt ); +  lay_bar.AddChild( ​main_header_txt ​); 
- +  
-  var filterlabel = app.CreateText("​Func filter:"); +  var filterlabel ​= app.CreateText("​Func filter:"); 
-  filterlabel.SetTextSize(18);​ +  filterlabel.SetTextSize(18);​ 
-  filterlabel.SetTextColor("#​ff222222"​);​ +  filterlabel.SetTextColor("#​ff222222"​);​ 
-  lay_bar.AddChild( filterlabel ); +  lay_bar.AddChild( ​filterlabel ​); 
-  edtFilter = app.CreateTextEdit("",​0.3);​ +  ​edtFilter ​= app.CreateTextEdit("",​0.3);​ 
-  edtFilter.SetBackColor("#​ff222222"​);​ +  edtFilter.SetBackColor("#​ff222222"​);​ 
-  edtFilter.SetTextSize(18);​ +  edtFilter.SetTextSize(18);​ 
-  edtFilter.SetPadding( 0.01,​ 0,​ 0,​ 0.001 ); +  edtFilter.SetPadding( 0.01, 0, 0, 0.001 ); 
-  edtFilter.SetOnChange(edtFilterOnChange);​ +  edtFilter.SetOnChange(edtFilterOnChange);​ 
-  lay_bar.AddChild(edtFilter);​ +  lay_bar.AddChild(edtFilter);​ 
- +  
-  lyout.AddChild( lay_bar );+  lyout.AddChild( ​lay_bar ​);
 }//​add_top_bar }//​add_top_bar
- +  
-function menuView_OnTouch(name){ +function menuView_OnTouch(name){ 
-  lastMenu = name; +  ​lastMenu ​= name; 
-  switch(name) { +  switch(name) { 
-    case "​layout":​ +    ​case ​"​layout":​ 
-        myobj = app.CreateLayout( "​linear"​ ) ;​ +        ​myobj ​= app.CreateLayout( "​linear"​ ) ; 
-        break; +        break; 
-    case "Button": +    ​case  ​"BluetoothList": 
-        myobj = app.CreateButton("​x"​); +        ​myobj ​= app.CreateBluetoothList();         
-        break; +        break; ​    
-    case "Text": +    ​case  ​"BluetoothSerial": 
-        myobj main_header_txt+        ​myobj ​app.CreateBluetoothSerial()        
-        break; +        break; ​    
-    case "Image": +    ​case ​"Button": 
-        myobj = app.CreateImage( "/​Sys/​Img/​Hello.png"​ );​ +        ​myobj ​= app.CreateButton("x"); 
-        break; +        break; 
-    case "Notification": +    ​case ​"CameraView": 
-        myobj = app.CreateNotification() ; +        ​myobj ​= app.CreateCameraView0.8,​0.8 ​); 
-        break; +        break; 
-    case "​CheckBox":​ +    ​case ​"​CheckBox":​ 
-        myobj = app.CreateCheckBox( "​x"​ );​ +        ​myobj ​= app.CreateCheckBox( "​x"​ ); 
-        break; +        break; 
-    case "​Crypt":​ +    ​case ​"​Crypt":​ 
-        myobj = app.CreateCrypt();​ +        ​myobj ​= app.CreateCrypt();​ 
-        break; +        break; 
-    case "​Database":​ +    ​case ​"​Database":​ 
-        myobj = app.OpenDatabase("​MyData"​);​ +        ​myobj ​= app.OpenDatabase("​MyData"​);​ 
-        break; +        break; 
-    case "​Dialog":​ +    ​case ​"​Dialog":​ 
-        myobj = app.CreateDialog(""​);​ +        ​myobj ​= app.CreateDialog(""​);​ 
-        break; +        break; 
-    case "ToggleButton": +    ​case ​"Email": 
-        myobj = app.CreateToggle( "x"​ );​ +      ​myobj ​= app.CreateEmail( "mymail@gmail.com",​ "​MyPass" ); 
-        break; +      break; 
-    case "SeekBar": +    ​case ​"Image": 
-        myobj = app.CreateSeekBar( "x"​ );​ +        ​myobj ​= app.CreateImage( "/​Sys/​Img/​Hello.png" ); 
-        break; +        break; 
-    case "​List":​ +    ​case ​"​List":​ 
-        myobj = ListView;​ +        ​myobj ​= ListView; 
-        break; +        break; 
-    case "TextEdit": +    ​case ​"Locator": 
-        myobj FunctionView+       myobj app.CreateLocator( "​GPS,​Network"​ )
-        break; +       ​break; 
-    case "WebView": +    ​case ​"Notification": 
-        myobj = app.CreateWebView0.8,0.); +        ​myobj ​= app.CreateNotification() ; 
-        break; +        break; 
-    case "WebServer": +    case "​NXT":​ 
-        myobj = app.CreateWebServer8080, "Upload,ListDir"​ );​ +        myobj = app.CreateNxt();​ 
-        break; +        break; ​    
-    case "CameraView": +    case "​NxtRemote":​ 
-        myobj = app.CreateCameraView0.8,0.8 ); +        myobj  =  app.CreateNxtRemote(); 
-        break; +        break; ​    
-    case "​Sensor":​ +    ​case ​"Odroid": 
-       myobj = app.CreateSensor( "​Accelerometer"​ );​ +        ​myobj  ​ app.Odroid"​a"​, "b""c" ); 
-       break; +        break; ​    
-    case "Email": +    ​case ​"SeekBar": 
-      myobj = app.CreateEmail( "mymail@gmail.com", "​MyPass"​ );​ +        ​myobj ​= app.CreateSeekBar"​x" ​); 
-      break; +        break; 
-    case "Locator": +    ​case ​"​Sensor":​ 
-       myobj = app.CreateLocator( "GPS,Network"​ );​ +       myobj = app.CreateSensor( "​Accelerometer"​ ); 
-       break; +       ​break; 
-    case "Spinner": +    ​case ​"SMS": 
-       myobj= app.CreateSpinner("1,2"); +       myobj = app.CreateSMS(); 
-       break; +       ​break;​ 
-    case "SMS": +    case "Spinner":​ 
-       myobj = app.CreateSMS(); +       ​myobj= app.CreateSpinner("1,2"); 
-       break; +       ​break; 
-    case "​YesNoDialog":​ +    ​case ​"Tabs": 
-        myobj = app.CreateYesNoDialog(""​);​ +        ​myobj ​= app.CreateTabs( "tab1,tab2"); 
-        break; +        break; 
-    case("Manually entered code"): +    ​case ​"Text": 
-        showEval();​ +        myobj = main_header_txt;​ 
-        return; +        break; 
-    default: +    case "​TextEdit":​ 
-        myobj=app;​ +        myobj = FunctionView;​ 
-        lastMenu = "​app";​ +        break; 
-    +    case "​ToggleButton":​ 
-  prepareFunctionList();​ +        ​myobj = app.CreateToggle( "x" ); 
-  showOverview();​ +        break; 
-  main_header_txt.SetText( lastMenu );+    ​case ​"WebView": 
 +        ​myobj ​= app.CreateWebView0.8,​0.8 ​); 
 +        break; 
 +    case "​WebServer":​ 
 +        myobj = app.CreateWebServer( 8080, "​Upload,​ListDir"​ ); 
 +        break; 
 +    case "​YesNoDialog":​ 
 +        ​myobj ​= app.CreateYesNoDialog(""​);​ 
 +        break; 
 +    case("Manually entered code"): 
 +        showEval();​ 
 +        return; 
 +    default: 
 +        myobj=app;​ 
 +        ​lastMenu ​= "​app";​ 
 +    
 +  prepareFunctionList();​ 
 +  showOverview();​ 
 +  main_header_txt.SetText( ​lastMenu ​);
 }//​menuView_OnTouch }//​menuView_OnTouch
- +  
-  function prepareFunctionList(){ +  ​function prepareFunctionList(){ 
-/**** prepare list view ****/ +/**** prepare list view ****/ 
- +  
-    var objFunctionList+    var objFunctionList
-    objFunctionList = []; +    ​objFunctionList ​= []; 
-    var filter = edtFilter.GetText().trim().toLowerCase() +    var filter ​= edtFilter.GetText().trim().toLowerCase() 
-    for (var Key in myobj) { +    ​for ​(var Key in myobj) { 
-      var keyword= Key.toLowerCase() +      var keyword= Key.toLowerCase() 
-      if ((filter == ""​) || (keyword.indexOf(filter) >​ -1)){ +      ​if ​((filter ​== ""​) || (keyword.indexOf(filter) > -1)){ 
-        if (myobj.hasOwnProperty(Key) &&​ (typeof myobj[Key] === '​function'​)) { +        ​if ​(myobj.hasOwnProperty(Key) && (typeof myobj[Key] === '​function'​)) { 
-          objFunctionList.push(Key);​ +          objFunctionList.push(Key);​ 
-        }; +        }; 
-      +      
-    }; +    }; 
-    objFunctionList.sort();​ +    objFunctionList.sort();​ 
-    ListView.SetList( objFunctionList.join(','​),​ ","​) +    ListView.SetList( objFunctionList.join(','​),​ ","​) 
-    if(filter != ""​ ) filter = "Filtered ["​ + filter + "​]\n";​ +    if(filter ​!= ""​ ) filter ​= "Filtered ​[" + filter ​+ "​]\n";​ 
-    pasteable filter lastMenu + "​.";​ +    ​pasteable ​filter ​lastMenu ​+ "​.";​ 
-    var copyDelim = "​\n"​ + lastMenu + "​.";​ +    var copyDelim ​= "​\n"​ + lastMenu ​+ "​.";​ 
-    pasteable += objFunctionList.join( copyDelim +    ​pasteable ​+= objFunctionList.join( ​copyDelim ​
-    docfile docfold + "/"​ + lastMenu + "​.txt";​ +    ​docfile ​docfold ​+ "/"​ + lastMenu ​+ "​.txt";​ 
-  }//​prepareFunctionList +  }//​prepareFunctionList 
-  function showMenuView(){ +  ​function showMenuView(){ 
-    ListView.SetVisibility('​hide'​);​ +    ListView.SetVisibility('​hide'​);​ 
-    FunctionView.SetVisibility('​hide'​);​ +    FunctionView.SetVisibility('​hide'​);​ 
-    menuView.SetVisibility('​show'​);​ +    menuView.SetVisibility('​show'​);​ 
-    main_header_txt.SetText( "​Choose Control"​ );​ +    main_header_txt.SetText( "Choose Control" ); 
-  }//​showMenuView +  }//​showMenuView 
- +  
-  function showAppFunction (Name) { +  ​function showAppFunction ​(Name) { 
-    FunctionView.SetText(String(myobj[Name]));​ +    FunctionView.SetText(String(myobj[Name]));​ 
-    main_header_txt.SetText( lastMenu + "​."​ + Name ); +    main_header_txt.SetText( ​lastMenu ​+ "​."​ + Name ); 
-    ListView.SetVisibility('​hide'​);​ +    ListView.SetVisibility('​hide'​);​ 
-    menuView.SetVisibility('​hide'​);​ +    menuView.SetVisibility('​hide'​);​ 
-    FunctionView.SetVisibility('​show'​);​ +    FunctionView.SetVisibility('​show'​);​ 
-  }//​showAppFunction +  }//​showAppFunction 
- +  
-  function showOverview () { +  ​function showOverview ​() { 
-    ListView.SetVisibility('​show'​);​ +    ListView.SetVisibility('​show'​);​ 
-    FunctionView.SetVisibility('​hide'​);​ +    FunctionView.SetVisibility('​hide'​);​ 
-    menuView.SetVisibility('​hide'​);​ +    menuView.SetVisibility('​hide'​);​ 
-    main_header_txt.SetText( lastMenu ); +    main_header_txt.SetText( ​lastMenu ​); 
-  }//​showOverview +  }//​showOverview 
-  function edtFilterOnChange(){ +  ​function edtFilterOnChange(){ 
-    if( ListView.GetVisibility() == "​Show"​ ){ +    if( ListView.GetVisibility() == "​Show"​ ){ 
-      prepareFunctionList();​  +      prepareFunctionList();​  
-    +    
-  }//​edtFilterOnChange +  }//​edtFilterOnChange 
- +  
-  function OnBack(){ +  ​function OnBack(){ 
-    if (menuView.GetVisibility() == "​Show"​) { +    ​if ​(menuView.GetVisibility() == "​Show"​) { 
-      var pasteOnExit = app.CreateYesNoDialog( "​Copy to clipboard and create text file?"​ );​ +      var pasteOnExit ​= app.CreateYesNoDialog( "Copy to clipboard and create text file?" ); 
-      pasteOnExit.SetOnTouch( pasteOnExit_OnTouch ); +      pasteOnExit.SetOnTouch( ​pasteOnExit_OnTouch ​); 
-    +    
-    else if( ListView.GetVisibility() == "​Show"​ ) showMenuView();​ +    else if( ListView.GetVisibility() == "​Show"​ ) showMenuView();​ 
-    else showOverview(); +    else showOverview(); 
-  }//OnBack +  }//OnBack 
- +  
-  function pasteOnExit_OnTouchresult ){ +  ​function pasteOnExit_OnTouchresult ​){ 
-    if( result=="​Yes"​ ){ +    if( result=="​Yes"​ ){ 
-      app.SetClipboardText( pasteable ); +      app.SetClipboardText( ​pasteable ​); 
-      if( ! app.FolderExists( docfold ) ) +      if( ! app.FolderExists( ​docfold ​) ) 
-        app.MakeFolder docfold ); +        app.MakeFolder ​docfold ​); 
-      app.WriteFile( docfile,​ pasteable ); +      app.WriteFile( docfile, ​pasteable ​); 
-    +    
-    app.Exit();​  +    app.Exit();  
-  }//​pasteOnExit +  }//​pasteOnExit 
-function showEval(){ +function showEval(){ 
-    dlg = app.CreateDialog("​eval use with care"); +    ​dlg ​= app.CreateDialog("​eval use with care"); 
-    var layDlg = app.CreateLayout( "​linear",​ "​vertical,​fillxy,​left"​ );​ +    var layDlg ​= app.CreateLayout( "​linear",​ "​vertical,​fillxy,​left"​ ); 
-    layDlg.SetPadding( 0.02,​ 0,​ 0.02,​ 0.02 ); +    layDlg.SetPadding( 0.02, 0, 0.02, 0.02 ); 
-    edtDlg = app.CreateTextEdit('​app.CreateText( "​Hello"​ )',​-1,​-1,'​NoSpell'​);​ +    ​edtDlg ​= app.CreateTextEdit('​app.CreateText( "​Hello"​ )',​-1,​-1,'​NoSpell'​);​ 
-    edtDlg.SetCursorPos(edtDlg.GetText().length);​ +    edtDlg.SetCursorPos(edtDlg.GetText().length);​ 
-    layDlg.AddChild(edtDlg);​ +    layDlg.AddChild(edtDlg);​ 
-    dlg.AddLayout( layDlg ); +    dlg.AddLayout( ​layDlg ​); 
-    var horiz = app.CreateLayout("​linear",​ "​horizontal,​fillxy"​);​ +    var horiz = app.CreateLayout("​linear",​ "​horizontal,​fillxy"​);​ 
-    horiz.SetPadding( 0.02,​ 0.02,​ 0.02,​ ); +    horiz.SetPadding( 0.02, 0.02, 0.02, ); 
-    var btn = app.CreateButton("​Ok",​ 0.2);​ +    var btn = app.CreateButton("​Ok",​ 0.2); 
-    btn.SetOnTouch(dlg_ok);​ +    btn.SetOnTouch(dlg_ok);​ 
-    horiz.AddChild(btn);​ +    horiz.AddChild(btn);​ 
-    btn = app.CreateButton("​Cancel",​0.2);​ +    ​btn ​= app.CreateButton("​Cancel",​0.2);​ 
-    btn.SetOnTouch(dlg_canc);​ +    btn.SetOnTouch(dlg_canc);​ 
-    horiz.AddChild(btn);​ +    horiz.AddChild(btn);​ 
-    layDlg.AddChild(horiz);​ +    layDlg.AddChild(horiz);​ 
-    dlg.Show();+    dlg.Show();
 }//showEval }//showEval
-function dlg_ok(){ +function dlg_ok(){ 
-    app.HideKeyboard();​ +    app.HideKeyboard();​ 
-    dlg.Dismiss();​ +    dlg.Dismiss();​ 
-    myobj = eval(edtDlg.GetText());​ +    ​myobj ​= eval(edtDlg.GetText());​ 
-    if ((myobj != null) &&​ (myobj.hasOwnProperty("​GetType"​))){ +    ​if ​((myobj != null) && (myobj.hasOwnProperty("​GetType"​))){ 
-      lastMenu = myobj.GetType();​ +      ​lastMenu ​= myobj.GetType();​ 
-      app.WriteFile(evalsfile,​ edtDlg.GetText()+"​\n","​append"​);​ +      app.WriteFile(evalsfile,​ edtDlg.GetText()+"​\n","​append"​);​ 
-    +    
-    else{ +    else{ 
-      lastMenu = "​Eval";​ +      ​lastMenu ​= "​Eval";​ 
-    +    
-    main_header_txt.SetText( lastMenu ); +    main_header_txt.SetText( ​lastMenu ​); 
-    prepareFunctionList();​ +    prepareFunctionList();​ 
-    showOverview();​+    showOverview();​
 }//dlg_ok }//dlg_ok
-function dlg_canc(){ +function dlg_canc(){ 
-    app.HideKeyboard();​ +    app.HideKeyboard();​ 
-    dlg.Dismiss();​+    dlg.Dismiss();​
 }//dlg_canc }//dlg_canc
  
sample_code/introspector.txt · Last modified: 2015/03/28 21:06 by madlyr