How to use TouchListener to react to movement across button

Hi Below is the code to perform swipe over button and click all button as finger moves over
and also user can click multiple button same time


public boolean onTouchEvent(MotionEvent event) {
  int buttonIndex = -1;
  int pointerIndex,pointerId;
  
  
  for (int i = 0; i < event.getPointerCount(); i++) {
  switch (event.getAction() & MotionEvent.ACTION_MASK) {
  case MotionEvent.ACTION_DOWN:
   buttonIndex = getButtonByCoords(event.getX(i), event.getY(i));
   //Toast.makeText(getContext(), "buttonIndex  :"+buttonIndex, Toast.LENGTH_LONG).show();
   if (buttonIndex != -1) {
    
    model.pressButton(buttonIndex);
   }
   return true;
  case MotionEvent.ACTION_UP:
   buttonIndex = getButtonByCoords(event.getX(i), event.getY(i));
   if (buttonIndex != -1) {
    model.releaseButton(buttonIndex);
   }
   model.releaseAllButtons();
   return true;
  case MotionEvent.ACTION_MOVE:
   for(int j = 0; j < event.getPointerCount(); ++j)
         {
    buttonIndex = getButtonByCoords(event.getX(j), event.getY(j));
    //Toast.makeText(getContext(), "buttonIndex  :"+buttonIndex, Toast.LENGTH_LONG).show();
    if (buttonIndex != -1) {
     
     model.pressButton(buttonIndex);     
    }
         }
   
   return true;
  
  case MotionEvent.ACTION_POINTER_DOWN:
   
         for(int j = 0; j < event.getPointerCount(); ++j)
         {
          //pointerIndex = j;
          //pointerId = event.getPointerId(1); 
          buttonIndex = getButtonByCoords(event.getX(j), event.getY(j));
          if (buttonIndex != -1) {
           
           model.pressButton(buttonIndex);
             }
            
          
         }
         
  
   return true;
  case MotionEvent.ACTION_POINTER_UP:
   
   
   for(int j = 0; j < event.getPointerCount(); ++j)
         {
          
          if (buttonIndex != -1) {
           buttonIndex = getButtonByCoords(event.getX(j), event.getY(j));
           model.releaseButton(buttonIndex);
             }
            
            
         }
   return true;
  
   
  }
  }
  return false;
  
 }