JavascriptProva

venerdì 15 aprile 2016

Riscrittura del Listener che regola il settingMode nella mia app.

Il meccanismo del DragDrop nella mia applicazione si è rivelato fallimentare, perché l'immagine da "draggare" è troppo piccola... meglio semplificare!

Innanzitutto, ripeschiamo le due variabili:
        boolean padLockLeft=false;
 boolean padLockRight=false;
mi sono scocciato con questa esterofilia! Semplifichiamone il nome.
 boolean lucchettoSin=false;
 boolean lucchettoDx=false;
Quindi lasciando sempre le immagini dei lucchetti creerò un onLongClickListener per ognuno...
Ci provo...

  luccListener = new View.OnLongClickListener() {
   
   @Override
   public boolean onLongClick(View v) {
    if(v==leftBottom){
     if(lucchettoSin==false){
      leftBottom.setImageResource(R.drawable.lucaperto);
      lucchettoSin=true;
     }else{
      leftBottom.setImageResource(R.drawable.lucchiuso);
      lucchettoSin=false;
     }
    }
    
    if(v==rightBottom){
     if(lucchettoDx==false){
      rightBottom.setImageResource(R.drawable.lucaperto);
      lucchettoDx=true;
     }else{
      rightBottom.setImageResource(R.drawable.lucchiuso);
      lucchettoDx=false;
     }
    }
    if(lucchettoSin==true && lucchettoDx==true){
     settingMode=true;
     mainLayout.setBackgroundColor(Color.GRAY);
    }
    if(lucchettoSin==false && lucchettoDx==false){
     settingMode=false;
     mainLayout.setBackgroundColor(Color.BLACK);
    }
    return true;
   }
  };
  
  leftBottom.setOnLongClickListener(luccListener);
  rightBottom.setOnLongClickListener(luccListener);
Ecco, finalmente funziona.

Ci vorrei aggiungere una vibrazione...

Da quello che ho capito, basta istanziare il vibratore (l'ho già fatto una volta ma con poca attenzione, quasi copiando)

Si deve andare a getSystemService.
Ecco il codice completo di vibrazione (da sperimentare):
  luccListener = new View.OnLongClickListener() {
   
   @Override
   public boolean onLongClick(View v) {
    if(v==leftBottom){
     if(lucchettoSin==false){
      leftBottom.setImageResource(R.drawable.lucaperto);
      lucchettoSin=true;
     }else{
      leftBottom.setImageResource(R.drawable.lucchiuso);
      lucchettoSin=false;
     }
    }
    
    if(v==rightBottom){
     if(lucchettoDx==false){
      rightBottom.setImageResource(R.drawable.lucaperto);
      lucchettoDx=true;
     }else{
      rightBottom.setImageResource(R.drawable.lucchiuso);
      lucchettoDx=false;
     }
    }
    
    Vibrator vibrator =(Vibrator)getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
    vibrator.vibrate(500);
    
    if(lucchettoSin==true && lucchettoDx==true){
     settingMode=true;
     mainLayout.setBackgroundColor(Color.GRAY);
    }
    if(lucchettoSin==false && lucchettoDx==false){
     settingMode=false;
     mainLayout.setBackgroundColor(Color.BLACK);
    }
    return true;
   }
  };
  
  leftBottom.setOnLongClickListener(luccListener);
  rightBottom.setOnLongClickListener(luccListener);
Da provare su cellulare...

Funziona, anche con la vibrazione.

Nessun commento:

Posta un commento