Project

General

Profile

« Previous | Next » 

Revision 15e5214c

Added by Leszek Koltunski over 2 years ago

Simplifications

View differences:

src/main/java/org/distorted/objectlib/helpers/ObjectSurfaceView.java
19 19

  
20 20
package org.distorted.objectlib.helpers;
21 21

  
22
import org.distorted.library.main.DistortedScreen;
23
import org.distorted.library.type.Static4D;
24
import org.distorted.objectlib.main.Movement;
25

  
26 22
///////////////////////////////////////////////////////////////////////////////////////////////////
27 23

  
28 24
public interface ObjectSurfaceView
29 25
  {
30
  TwistyActivity getActivity();
31
  void setMovement(Movement move);
32
  Static4D getQuat();
33
  void setQuat();
34
  DistortedScreen getScreen();
26

  
35 27
  }
src/main/java/org/distorted/objectlib/helpers/TwistyActivity.java
21 21

  
22 22
import androidx.appcompat.app.AppCompatActivity;
23 23

  
24
import org.distorted.library.main.DistortedScreen;
24 25
import org.distorted.objectlib.main.ObjectPreRender;
25 26

  
26 27
///////////////////////////////////////////////////////////////////////////////////////////////////
......
33 34

  
34 35
  public abstract ObjectPreRender getPreRender();
35 36
  public abstract boolean isLocked();
37
  public abstract DistortedScreen getScreen();
36 38

  
37 39
///////////////////////////////////////////////////////////////////////////////////////////////////
38 40

  
src/main/java/org/distorted/objectlib/main/ObjectControl.java
509 509

  
510 510
      mDensity = dm.densityDpi;
511 511

  
512
      mPreRender = new ObjectPreRender(view,actioner);
512
      mPreRender = new ObjectPreRender(act,this,actioner);
513 513
      mAct = new WeakReference<>(act);
514 514
      mActioner = actioner;
515 515
      }
......
560 560
      return mPreRender;
561 561
      }
562 562

  
563
///////////////////////////////////////////////////////////////////////////////////////////////////
564

  
565
    public void prepareDown()
566
      {
567
      mIsAutomatic = true;
568
      mPointer1 = 0;
569
      mPointer2 = INVALID_POINTER_ID;
570
      }
571

  
572
///////////////////////////////////////////////////////////////////////////////////////////////////
573

  
574
    public void prepareDown2()
575
      {
576
      mPointer2 = 0;
577
      }
578

  
579
///////////////////////////////////////////////////////////////////////////////////////////////////
580

  
581
    public void prepareUp()
582
      {
583
      mIsAutomatic = false;
584
      mPointer1 = INVALID_POINTER_ID;
585
      mPointer2 = INVALID_POINTER_ID;
586
      }
587

  
588
///////////////////////////////////////////////////////////////////////////////////////////////////
589

  
590
    public void prepareMove(float x1, float y1, float x2, float y2)
591
      {
592
      mX1 = x1;
593
      mY1 = y1;
594
      mX2 = x2;
595
      mY2 = y2;
596
      }
597

  
598 563
///////////////////////////////////////////////////////////////////////////////////////////////////
599 564

  
600 565
    public boolean onTouchEvent(MotionEvent event, int mode)
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java
23 23
import android.content.res.Resources;
24 24

  
25 25
import org.distorted.objectlib.helpers.ObjectStateActioner;
26
import org.distorted.objectlib.helpers.ObjectSurfaceView;
27 26
import org.distorted.objectlib.effects.BaseEffect;
28 27
import org.distorted.objectlib.effects.EffectController;
29 28
import org.distorted.objectlib.effects.scramble.ScrambleEffect;
30 29
import org.distorted.objectlib.helpers.BlockController;
31 30
import org.distorted.objectlib.helpers.MovesFinished;
31
import org.distorted.objectlib.helpers.TwistyActivity;
32

  
33
import java.lang.ref.WeakReference;
32 34

  
33 35
///////////////////////////////////////////////////////////////////////////////////////////////////
34 36

  
35 37
public class ObjectPreRender implements EffectController
36 38
  {
37
  private final ObjectSurfaceView mView;
39
  private final WeakReference<TwistyActivity> mAct;
40
  private final ObjectControl mController;
38 41
  private ObjectType mNextObject;
39 42
  private TwistyObject mOldObject, mNewObject;
40 43
  private SharedPreferences mPreferences;
......
61 64

  
62 65
///////////////////////////////////////////////////////////////////////////////////////////////////
63 66

  
64
  public ObjectPreRender(ObjectSurfaceView view, ObjectStateActioner actioner)
67
  public ObjectPreRender(TwistyActivity act, ObjectControl controller, ObjectStateActioner actioner)
65 68
    {
66
    mView = view;
69
    mAct = new WeakReference<>(act);
67 70
    mActioner = actioner;
71
    mController = controller;
68 72

  
69 73
    mFinishRotation       = false;
70 74
    mRemoveRotation       = false;
......
87 91

  
88 92
    mEffectID = new long[BaseEffect.Type.LENGTH];
89 93

  
90
    mBlockController = new BlockController(mView.getActivity());
94
    mBlockController = new BlockController(act);
91 95
    unblockEverything();
92 96
    }
93 97

  
......
99 103

  
100 104
    if( mOldObject!=null ) mOldObject.releaseResources();
101 105
    mOldObject = mNewObject;
102
    Resources res = mView.getActivity().getResources();
103 106

  
104
    mNewObject = object.create(mView.getQuat(), moves, res, mScreenWidth);
107
    TwistyActivity tact = mAct.get();
108

  
109
    Resources res = tact.getResources();
110

  
111
    mNewObject = object.create( mController.getQuat(), moves, res, mScreenWidth);
105 112

  
106 113
    if( mNewObject!=null )
107 114
      {
108
      mView.setMovement(mNewObject.getMovement());
115
      mController.setMovement(mNewObject.getMovement());
109 116
      if( firstTime ) mNewObject.restorePreferences(mPreferences);
110 117
      mIsSolved = mNewObject.isSolved();
111 118
      }
......
119 126
    try
120 127
      {
121 128
      int index = type.ordinal();
122
      mEffectID[index] = type.startEffect(mView.getScreen(),this);
129
      mEffectID[index] = type.startEffect(mAct.get().getScreen(),this);
123 130
      }
124 131
    catch( Exception ex )
125 132
      {
......
291 298
  private void setQuatNow()
292 299
    {
293 300
    mSetQuat = false;
294
    mView.setQuat();
301
    mController.setQuat();
295 302
    }
296 303

  
297
///////////////////////////////////////////////////////////////////////////////////////////////////
298
// PUBLIC API
299 304
///////////////////////////////////////////////////////////////////////////////////////////////////
300 305

  
301
  public void rememberMove(int axis, int row, int angle)
306
  void rememberMove(int axis, int row, int angle)
302 307
    {
303 308
    mDebug += (" (m "+axis+" "+(1<<row)+" "+angle+" "+(System.currentTimeMillis()-mDebugStartTime)+")");
304 309
    }
305 310

  
311
///////////////////////////////////////////////////////////////////////////////////////////////////
312

  
313
  void finishRotation(int nearestAngle)
314
    {
315
    mNearestAngle   = nearestAngle;
316
    mFinishRotation = true;
317
    }
318

  
319
///////////////////////////////////////////////////////////////////////////////////////////////////
320

  
321
  void setTextureMap(int cubit, int face, int newColor)
322
    {
323
    mSetTextureMap = true;
324

  
325
    mCubit    = cubit;
326
    mFace     = face;
327
    mNewColor = newColor;
328
    }
329

  
330
///////////////////////////////////////////////////////////////////////////////////////////////////
331

  
332
  void setQuatOnNextRender()
333
    {
334
    mSetQuat = true;
335
    }
336

  
337
///////////////////////////////////////////////////////////////////////////////////////////////////
338
// INTERNAL API
339
///////////////////////////////////////////////////////////////////////////////////////////////////
340
// this only sets the cubits state to solved
341

  
342
  public void solve()
343
    {
344
    mSolve = true;
345
    }
346

  
347
///////////////////////////////////////////////////////////////////////////////////////////////////
348

  
349
  public int getNumScrambles()
350
    {
351
    return mScrambleObjectNum;
352
    }
353

  
354
///////////////////////////////////////////////////////////////////////////////////////////////////
355

  
356
  public TwistyObject getOldObject()
357
    {
358
    return mOldObject;
359
    }
360

  
361
///////////////////////////////////////////////////////////////////////////////////////////////////
362
// PUBLIC API
306 363
///////////////////////////////////////////////////////////////////////////////////////////////////
307 364

  
308 365
  public void setScreenSize(int width)
......
332 389
    mPreferences = preferences;
333 390
    }
334 391

  
335
///////////////////////////////////////////////////////////////////////////////////////////////////
336

  
337
  public void finishRotation(int nearestAngle)
338
    {
339
    mNearestAngle   = nearestAngle;
340
    mFinishRotation = true;
341
    }
342

  
343 392
///////////////////////////////////////////////////////////////////////////////////////////////////
344 393

  
345 394
  public void changeObject(ObjectType object)
......
357 406
    mNextMoves  = moves;
358 407
    }
359 408

  
360
///////////////////////////////////////////////////////////////////////////////////////////////////
361

  
362
  public void setTextureMap(int cubit, int face, int newColor)
363
    {
364
    mSetTextureMap = true;
365

  
366
    mCubit    = cubit;
367
    mFace     = face;
368
    mNewColor = newColor;
369
    }
370

  
371 409
///////////////////////////////////////////////////////////////////////////////////////////////////
372 410

  
373 411
  public boolean isTouchBlocked()
......
426 464
    mBlockController.uiUnblocked();
427 465
    }
428 466

  
429
///////////////////////////////////////////////////////////////////////////////////////////////////
430

  
431
  public void setQuatOnNextRender()
432
    {
433
    mSetQuat = true;
434
    }
435

  
436 467
///////////////////////////////////////////////////////////////////////////////////////////////////
437 468

  
438 469
  public void preRender()
......
502 533
      }
503 534
    }
504 535

  
505
///////////////////////////////////////////////////////////////////////////////////////////////////
506
// this only sets the cubits state to solved
507

  
508
  public void solve()
509
    {
510
    mSolve = true;
511
    }
512

  
513 536
///////////////////////////////////////////////////////////////////////////////////////////////////
514 537

  
515 538
  public void resetAllTextureMaps()
......
524 547
    return mNewObject;
525 548
    }
526 549

  
527
///////////////////////////////////////////////////////////////////////////////////////////////////
528

  
529
  public TwistyObject getOldObject()
530
    {
531
    return mOldObject;
532
    }
533

  
534
///////////////////////////////////////////////////////////////////////////////////////////////////
535

  
536
  public int getNumScrambles()
537
    {
538
    return mScrambleObjectNum;
539
    }
540

  
541 550
///////////////////////////////////////////////////////////////////////////////////////////////////
542 551

  
543 552
  public void effectFinished(final long effectID)
......
560 569
        if( effectID == mEffectID[i] )
561 570
          {
562 571
          if( i!=BaseEffect.Type.WIN.ordinal() ) unblockEverything();
563
          if( i==BaseEffect.Type.SCRAMBLE.ordinal() ) mActioner.onScrambleEffectFinished(mView.getActivity());
564
          if( i==BaseEffect.Type.WIN.ordinal()      ) mActioner.onWinEffectFinished(mView.getActivity(),mDebug,mScrambleObjectNum);
572
          if( i==BaseEffect.Type.SCRAMBLE.ordinal() ) mActioner.onScrambleEffectFinished(mAct.get());
573
          if( i==BaseEffect.Type.WIN.ordinal()      ) mActioner.onWinEffectFinished(mAct.get(),mDebug,mScrambleObjectNum);
565 574
          break;
566 575
          }
567 576
        }

Also available in: Unified diff