function bluetoothStatus(e) {
    // Salvo la prossima data nella quale devo visualizzare la richiesta per abilitare il bluetooth.
    // La prima volta la visualizzo subito, dunque imposto un'orario precedente a quello attuale
    var nextRequestBluetoothStatusAlertDialog = new Date(
      new Date().getTime() - 20000
    );
    var iosBluetoothAD = Ti.UI.createAlertDialog({
      title: L("app_name"),
      message: L("abilita_bluetooth"),
      buttonNames: ["OK"]
    });
    iosBluetoothAD.addEventListener("click", function() {
      // Mostro di nuovo il messaggio solo fra altri 10 minuti, se nel frattempo non ho ancora abilitato il bluetooth
      nextRequestBluetoothStatusAlertDialog = new Date(
        new Date().getTime() + 1000 //1000 * 60 * 10
      ); //10m
      if (Alloy.Globals.debug_mode) {
        Ti.API.info(
          nextRequestBluetoothStatusAlertDialog +
          " ---> iosBluetoothAD click -- nextRequestBluetoothStatusAlertDialog"
        );
      }
    });

    if (e.status != "on") {
      if (Alloy.Globals.debug_mode) {
        Ti.API.info("bluetooth is not on");
        Ti.API.info(
          nextRequestBluetoothStatusAlertDialog +
          " --> nextRequestBluetoothStatusAlertDialog"
        );
        Ti.API.info(new Date() + " --> new Date()");
        Ti.API.info(
          "( new Date() > nextRequestBluetoothStatusAlertDialog ) ---> " +
          (new Date() > nextRequestBluetoothStatusAlertDialog)
        );
      }
      if (new Date() > nextRequestBluetoothStatusAlertDialog) {
        iosBluetoothAD.show();
        // Finchè non farò click sull'Alert Dialig, visualizzo il prossimo avviso solo se è trascorso almeno un giorno
        // Altrimenti, se ho ad esempio l'app in background, verrebbe creata una nuova alert dialog ogni 10 secondi,
        // ed al resume dell'app mi ritroverei tante alertdialog da chiudere
        // Se invece clicco su OK sull'alert dialog, aspetto altri 10 minuti per visualizzare il prossimo avviso,
        // (tramite iosBluetoothAD.addEventListener("click") ) a meno che nel frattempo non sia stato abilitato.
        nextRequestBluetoothStatusAlertDialog = new Date(
          new Date().getTime() + 1000 * 60 * 60 * 24
        ); // 24h
      }
      /*setTimeout(function() {
        // Se il bluetooth è disabilitato, ogni 10s verifico che sia stato abilitato.
        TiBeacons.requestBluetoothStatus();
      }, 10000); //10s*/
      if(logLbl){
        logLbl.text = "Il bluetooth non è abilitato.. :(";
      }
      setTimeout(function(){
        cb_stopMonitor();
      },2000);
    } else {
      if (Alloy.Globals.debug_mode) {
        Ti.API.info("bluetooth is on");
      }
      // Se il bluetooth è abilitato, inizio il monitoring dei beacons
      startMonitoring();
    }
  }
// Creo le funzioni per i listener dei beacon
Creo le funzioni per i listener dei beacon
Creo le funzioni per i listener dei beacon
function bluetoothStatus(e) {
    var nextRequestBluetoothStatusAlertDialog = new Date(
      new Date().getTime() - 20000
    );
    var iosBluetoothAD = Ti.UI.createAlertDialog({
      title: L("app_name"),
      message: L("abilita_bluetooth"),
      buttonNames: ["OK"]
    });
    iosBluetoothAD.addEventListener("click", function() {
      nextRequestBluetoothStatusAlertDialog = new Date(
        new Date().getTime() + 1000 
      ); 
      if (Alloy.Globals.debug_mode) {
        Ti.API.info(
          nextRequestBluetoothStatusAlertDialog +
          " ---> iosBluetoothAD click -- nextRequestBluetoothStatusAlertDialog"
        );
      }
    });
    if (e.status != "on") {
      if (Alloy.Globals.debug_mode) {
        Ti.API.info("bluetooth is not on");
        Ti.API.info(
          nextRequestBluetoothStatusAlertDialog +
          " --> nextRequestBluetoothStatusAlertDialog"
        );
        Ti.API.info(new Date() + " --> new Date()");
        Ti.API.info(
          "( new Date() > nextRequestBluetoothStatusAlertDialog ) ---> " +
          (new Date() > nextRequestBluetoothStatusAlertDialog)
        );
      }
      if (new Date() > nextRequestBluetoothStatusAlertDialog) {
        iosBluetoothAD.show();
        nextRequestBluetoothStatusAlertDialog = new Date(
          new Date().getTime() + 1000 * 60 * 60 * 24
        ); 
      }
      if(logLbl){
        logLbl.text = "Il bluetooth non è abilitato.. :(";
      }
      setTimeout(function(){
        cb_stopMonitor();
      },2000);
    } else {
      if (Alloy.Globals.debug_mode) {
        Ti.API.info("bluetooth is on");
      }
      startMonitoring();
    }
  }
function bluetoothStatus ( e ) { var nextRequestBluetoothStatusAlertDialog = new Date ( new Date ( ) . getTime ( ) - 20000 ) ; var iosBluetoothAD = Ti . UI . createAlertDialog ( { title : L ( "app_name" ) , message : L ( "abilita_bluetooth" ) , buttonNames : [ "OK" ] } ) ; iosBluetoothAD . addEventListener ( "click" , function ( ) { nextRequestBluetoothStatusAlertDialog = new Date ( new Date ( ) . getTime ( ) + 1000 ) ; if ( Alloy . Globals . debug_mode ) { Ti . API . info ( nextRequestBluetoothStatusAlertDialog + " ---> iosBluetoothAD click -- nextRequestBluetoothStatusAlertDialog" ) ; } } ) ; if ( e . status != "on" ) { if ( Alloy . Globals . debug_mode ) { Ti . API . info ( "bluetooth is not on" ) ; Ti . API . info ( nextRequestBluetoothStatusAlertDialog + " --> nextRequestBluetoothStatusAlertDialog" ) ; Ti . API . info ( new Date ( ) + " --> new Date()" ) ; Ti . API . info ( "( new Date() > nextRequestBluetoothStatusAlertDialog ) ---> " + ( new Date ( ) > nextRequestBluetoothStatusAlertDialog ) ) ; } if ( new Date ( ) > nextRequestBluetoothStatusAlertDialog ) { iosBluetoothAD . show ( ) ; nextRequestBluetoothStatusAlertDialog = new Date ( new Date ( ) . getTime ( ) + 1000 * 60 * 60 * 24 ) ; } if ( logLbl ) { logLbl . text = "Il bluetooth non è abilitato.. :("; } setTimeout ( function ( ) { cb_stopMonitor ( ) ; } , 2000 ) ; } else { if ( Alloy . Globals . debug_mode ) { Ti . API . info ( "bluetooth is on" ) ; } startMonitoring ( ) ; } }
Creo le funzioni per i listener dei beacon
Creo le funzioni per i listener dei beacon
// Salvo la prossima data nella quale devo visualizzare la richiesta per abilitare il bluetooth. // La prima volta la visualizzo subito, dunque imposto un'orario precedente a quello attuale // Mostro di nuovo il messaggio solo fra altri 10 minuti, se nel frattempo non ho ancora abilitato il bluetooth //1000 * 60 * 10 //10m // Finchè non farò click sull'Alert Dialig, visualizzo il prossimo avviso solo se è trascorso almeno un giorno // Altrimenti, se ho ad esempio l'app in background, verrebbe creata una nuova alert dialog ogni 10 secondi, // ed al resume dell'app mi ritroverei tante alertdialog da chiudere // Se invece clicco su OK sull'alert dialog, aspetto altri 10 minuti per visualizzare il prossimo avviso, // (tramite iosBluetoothAD.addEventListener("click") ) a meno che nel frattempo non sia stato abilitato. // 24h /*setTimeout(function() {
        // Se il bluetooth è disabilitato, ogni 10s verifico che sia stato abilitato.
        TiBeacons.requestBluetoothStatus();
      }, 10000); //10s*/ // Se il bluetooth è abilitato, inizio il monitoring dei beacons