public int clearRows() {
        int rowsCleared = 0;
        int[] row;
        boolean isFilled;
        
        for (int i = 0; i < mGrid.length; i++) {
            row = mGrid[i];
            isFilled = true;
            
            for (int j = 0; j < row.length; j++) {
                if (row[j] == -1 || mLiveTetriminoCoordinates.containsKey(row[j])) {
                    isFilled = false;
                    break;
                }
            }
            
            if (isFilled) {
                dropDeadBlocks(i);
                rowsCleared++;
            }
        }
        
        repaint();
        return rowsCleared;
    }