Project

General

Profile

« Previous | Next » 

Revision 49595e4b

Added by Leszek Koltunski about 4 years ago

Fix for one bug seen in Firebase and additional debugging for another.

View differences:

src/main/java/org/distorted/main/RubikSurfaceView.java
389 389
        mInitDistance = distNow;
390 390

  
391 391
        RubikObject object = mPreRender.getObject();
392
        object.setObjectRatio(distQuot);
392
        if( object!=null ) object.setObjectRatio(distQuot);
393 393
        }
394 394
      else
395 395
        {
src/main/java/org/distorted/objects/RubikCube.java
23 23
import android.graphics.Canvas;
24 24
import android.graphics.Paint;
25 25

  
26
import com.google.firebase.crashlytics.FirebaseCrashlytics;
27

  
26 28
import org.distorted.library.effect.VertexEffectDeform;
27 29
import org.distorted.library.effect.VertexEffectMove;
28 30
import org.distorted.library.effect.VertexEffectRotate;
......
508 510
    StringBuilder objectString = new StringBuilder();
509 511
    int size = getSize();
510 512
    int len = size*size;
511
    int cubitIndex, row, col;
512
    int color;
513
    int cubitIndex=-1, row=-1, col=-1;
514
    int color=-1, face=-1;
513 515

  
514 516
    final int RIGHT= 0;
515 517
    final int LEFT = 1;
......
520 522

  
521 523
    final char[] FACE_NAMES = { 'R', 'L', 'U', 'D', 'F', 'B'};
522 524

  
525
/////////////////////
526
// LIVE DEBUGGING
527
/////////////////////
528
try
529
  {
530
/////////////////////
531

  
532
    face = UP;
533

  
523 534
    for(int i=0; i<len; i++)
524 535
      {
525 536
      row = i/size;
526 537
      col = i%size;
527 538

  
528 539
      cubitIndex = col<size-1 ? (size-1)*(size+4*col) + row : 6*size*size - 13*size + 8 + row;
529
      color = getCubitFaceColorIndex(cubitIndex,UP);
540
      color = getCubitFaceColorIndex(cubitIndex,face);
530 541
      objectString.append(FACE_NAMES[color]);
531 542
      }
532 543

  
544
    face = RIGHT;
545

  
533 546
    for(int i=0; i<len; i++)
534 547
      {
535 548
      cubitIndex = 6*size*size - 12*size +7 - i;
536
      color = getCubitFaceColorIndex(cubitIndex,RIGHT);
549
      color = getCubitFaceColorIndex(cubitIndex,face);
537 550
      objectString.append(FACE_NAMES[color]);
538 551
      }
539 552

  
553
     face = FRONT;
554

  
540 555
    for(int i=0; i<len; i++)
541 556
      {
542 557
      row = i/size;
......
550 565
        else         cubitIndex = size*size + size-1 + 4*(col-1)*(size-1) + 2*(size-1-row);
551 566
        }
552 567

  
553
      color = getCubitFaceColorIndex(cubitIndex,FRONT);
568
      color = getCubitFaceColorIndex(cubitIndex,face);
554 569
      objectString.append(FACE_NAMES[color]);
555 570
      }
556 571

  
572
    face = DOWN;
573

  
557 574
    for(int i=0; i<len; i++)
558 575
      {
559 576
      row = i/size;
560 577
      col = i%size;
561 578

  
562 579
      cubitIndex = col==0 ? size-1-row : size*size + size-1 + 4*(col-1)*(size-1) - row;
563
      color = getCubitFaceColorIndex(cubitIndex,DOWN);
580
      color = getCubitFaceColorIndex(cubitIndex,face);
564 581
      objectString.append(FACE_NAMES[color]);
565 582
      }
566 583

  
584
    face = LEFT;
585

  
567 586
    for(int i=0; i<len; i++)
568 587
      {
569 588
      row = i/size;
570 589
      col = i%size;
571 590

  
572 591
      cubitIndex = (size-1-row)*size + col;
573
      color = getCubitFaceColorIndex(cubitIndex,LEFT);
592
      color = getCubitFaceColorIndex(cubitIndex,face);
574 593
      objectString.append(FACE_NAMES[color]);
575 594
      }
576 595

  
596
    face = BACK;
597

  
577 598
    for(int i=0; i<len; i++)
578 599
      {
579 600
      row = i/size;
......
587 608
        else              cubitIndex = size*size + 4*(size-2-col)*(size-1) + size + 2*(size-2-row);
588 609
        }
589 610

  
590
      color = getCubitFaceColorIndex(cubitIndex,BACK);
611
      color = getCubitFaceColorIndex(cubitIndex,face);
591 612
      objectString.append(FACE_NAMES[color]);
592 613
      }
593 614

  
615
/////////////////////
616
  }
617
catch(java.lang.ArrayIndexOutOfBoundsException ex)
618
  {
619
  FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
620

  
621
  String str="";
622
  for(int i=0; i<NUM_CUBITS; i++)
623
    {
624
    str += (CUBITS[i].mQuatIndex+" ");
625
    }
626

  
627
  crashlytics.setCustomKey("ObjectString", "color="+color+" cubitIndex="+cubitIndex+" face="+face+" row="+row+" col="+col );
628
  crashlytics.setCustomKey("Quaternion", "NUM_CUBITS: "+NUM_CUBITS+" quats: "+str );
629
  crashlytics.recordException(ex);
630
  }
631
/////////////////////
632
// END LIVE DEBUGGING
633
/////////////////////
634

  
594 635
    return objectString.toString();
595 636
    }
596 637
}

Also available in: Unified diff