Your comments

Hi, I try to delete password, re-set password, re-save and re-upload again

now it working as expect

Im not sure why it not working on my previous project file


here are step:





http://www.iridiummobile.net/my-account/cloud/






Next download i3 app...


Hi,

I already try that 

but it look like password still not apply to 

client that download via cloud 

for Dev panel I have to set it in iRidium Transfer

EDIT: I misunderstand the topic


code below is just password length of what user input


#####################################


I solve it this way:

var GUI_PG_PASS = IR.GetPopup("pop_Security"); //password page
//clear button
IR.AddListener(IR.EVENT_ITEM_PRESS,GUI_PG_PASS.GetItem("passClear"),function()
{
      IR.SetVariable("Global.tmp_password", "" );
      IR.SetVariable("Global.tmp_access_level",0);
});
//number button 1
IR.AddListener(IR.EVENT_ITEM_PRESS,GUI_PG_PASS.GetItem("pass1"),function()
{
        IR.SetVariable("Global.tmp_password", String(IR.GetVariable("Global.tmp_password"))+"1" );
});
// same as this for number 2-9
function onPasswordChange()
{
     var thisVal = IR.GetVariable("Global.tmp_password");
     var passLen = thisVal.length;  //  character count using standard Java script
     //IR.GetPopup("pop_Security").GetItem("pass_led1");
     var GUI_PASS_LED1 = IR.GetPopup("pop_Security").GetItem("pass_led1");
     var GUI_PASS_LED2 = IR.GetPopup("pop_Security").GetItem("pass_led2");
     var GUI_PASS_LED3 = IR.GetPopup("pop_Security").GetItem("pass_led3");
     var GUI_PASS_LED4 = IR.GetPopup("pop_Security").GetItem("pass_led4");
     
     IR.Log("passLen!"+passLen);
     if(passLen>=4)
     {
        GUI_PASS_LED1.Value = 1;
        GUI_PASS_LED2.Value = 1;
        GUI_PASS_LED3.Value = 1;
        GUI_PASS_LED4.Value = 1;
     }
     else if(passLen==3)
     {
         GUI_PASS_LED1.Value = 1;
         GUI_PASS_LED2.Value = 1;
         GUI_PASS_LED3.Value = 1;
         GUI_PASS_LED4.Value = 0;
     }
     else if(passLen==2)
     {
         GUI_PASS_LED1.Value = 1;
         GUI_PASS_LED2.Value = 1;
         GUI_PASS_LED3.Value = 0;
         GUI_PASS_LED4.Value = 0;
     }
     else if(passLen==1)
     {
         GUI_PASS_LED1.Value = 1;
         GUI_PASS_LED2.Value = 0;
         GUI_PASS_LED3.Value = 0;
         GUI_PASS_LED4.Value = 0;
     }
     else
     {
         GUI_PASS_LED1.Value = 0;
         GUI_PASS_LED2.Value = 0;
         GUI_PASS_LED3.Value = 0;
         GUI_PASS_LED4.Value = 0;
     }
     
    
      if (IR.ValidatePassword(4, thisVal)) {
          IR.Log("Access confirmed 4!");
          IR.SetVariable("Global.tmp_access_level",4);
          
      } else if (IR.ValidatePassword(3, thisVal)) {    
          IR.Log("Access confirmed 3!");
          IR.SetVariable("Global.tmp_access_level",3);
          
      } else if (IR.ValidatePassword(2, thisVal)) {    
          IR.Log("Access confirmed 2!");
          IR.SetVariable("Global.tmp_access_level",2);
          
      } else if (IR.ValidatePassword(1, thisVal)) {    
          IR.Log("Access confirmed 1!");
          IR.SetVariable("Global.tmp_access_level",1);
          
      } else {
          IR.Log("Access denied!");
      }
      
      if(passLen >= PASS_MAX_LEN)
      {
         IR.SetVariable("Global.tmp_password", "" );
      }
     
}

I think you can use

IR.AddListener and IR.RemoveListener


when you want to change just remove old listener and add a new one
http://dev.iridiummobile.net/Systems_API/en#IR.RemoveListener

Thanks for example scripts,

BTW, what  "Waiting" state is use for?

Please note that state is OK to use with device that always have adapter plug in

but for mobile phone if user forgot to close i3 app before turn off phone screen

i3 will continue running in that background


(I also do some additional test by let i3 send some feedback by using IR.SetInterval 

to see if i3 still running JS script in this state or not,

result : i3 will not run any JS nor sending anything in this state)

Hi,

I test on 

Google Nexus 6P - 7.1.2

and

Samsung Note 5 - 7.0

same problem.


I notice this problem on 6P first because  
normally 
when I press device power button, 6P will play some "turn off sound" and screen will be off

and when I press device power again 6P will play some "turn on sound" and screen will be on then showing lock screen


but when i3 is running and I press power button i can hear "turn off sound" then "turn on sound" but screen remain off

if I press device power button again screen will show i3 without any lock screen

(I think this state in Android called WAKE_LOCK,screen off but some app still running )


The problem is in this state i3 continue drain my phone battery

this can easily test by 100% charge your phone, unplug, open i3 app,  power button, then phone screen will off

then just let phone remain in that state for a few hour without using


when you turn on you phone again battery will be very low

if you check which app is draining battery in Setting->Battery> Use since last full charge 

I3 Pro will be in top of the list,

if you click in i3 Pro, see "Keep awake" time you will see that i3 Pro keep device awake all the time 

even if screen is remain off.

It would be nice to support APNG too
https://en.wikipedia.org/wiki/APNG


 Now i use this one:

is there anyway to AddListener directly to token?


IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value) 

 //Do stuff<

});

IR.SubscribeTagChange("System.Battery.Level");

It just won't run
root@pine64:~# /iridiumserver/iridium
bash: /iridiumserver/iridium: No such file or director


evenif "/iridiumserver/iridium" was there


now i just switch to other arm hardware it just work fine with RPi version