Revision 7205c655
Added by Leszek Koltunski over 1 year ago
src/main/java/org/distorted/objectlib/helpers/BlockController.java | ||
---|---|---|
21 | 21 |
|
22 | 22 |
public class BlockController |
23 | 23 |
{ |
24 |
public static final int TYPE_UI = 0;
|
|
25 |
public static final int TYPE_TOUCH = 1;
|
|
26 |
public static final int TYPE_THREAD = 2; |
|
24 |
public static final int TYPE_SCRAMBLING = 0;
|
|
25 |
public static final int TYPE_ROTATION = 1;
|
|
26 |
public static final int TYPE_THREAD = 2;
|
|
27 | 27 |
|
28 | 28 |
public static final int PLACE_0 =0; |
29 | 29 |
public static final int PLACE_1 =1; |
... | ... | |
41 | 41 |
|
42 | 42 |
private static long mPauseTime, mResumeTime; |
43 | 43 |
|
44 |
private long mTouchBlockTime, mUIBlockTime;
|
|
45 |
private int mLastTouchPlace, mLastUIPlace;
|
|
44 |
private long mRotationBlockTime, mScramblingAndSolvingBlockTime;
|
|
45 |
private int mLastRotationPlace, mLastScramblingAndSolvingPlace;
|
|
46 | 46 |
|
47 | 47 |
private final ObjectPreRender mPre; |
48 | 48 |
|
... | ... | |
107 | 107 |
private void checkingThread() |
108 | 108 |
{ |
109 | 109 |
long now = System.currentTimeMillis(); |
110 |
long touchThreshhold = getThreshhold(mLastTouchPlace);
|
|
111 |
long touchBlocked = now-mTouchBlockTime;
|
|
110 |
long rotationThreshhold = getThreshhold(mLastRotationPlace);
|
|
111 |
long rotationBlocked = now- mRotationBlockTime;
|
|
112 | 112 |
|
113 |
if( mTouchBlockTime>mPauseTime && touchBlocked>touchThreshhold )
|
|
113 |
if( mRotationBlockTime >mPauseTime && rotationBlocked>rotationThreshhold )
|
|
114 | 114 |
{ |
115 | 115 |
boolean running = EffectMessageSender.isRunning(); |
116 | 116 |
ObjectLibInterface libInterface = mPre.getInterface(); |
... | ... | |
122 | 122 |
} |
123 | 123 |
else |
124 | 124 |
{ |
125 |
mPre.unblockTouch();
|
|
126 |
libInterface.reportBlockProblem(TYPE_TOUCH,mLastTouchPlace,mPauseTime,mResumeTime,mTouchBlockTime);
|
|
125 |
mPre.unblockRotation();
|
|
126 |
libInterface.reportBlockProblem(TYPE_ROTATION, mLastRotationPlace,mPauseTime,mResumeTime, mRotationBlockTime);
|
|
127 | 127 |
} |
128 | 128 |
} |
129 | 129 |
|
130 |
long uiThreshhold = getThreshhold(mLastUIPlace);
|
|
131 |
long uiBlocked = now-mUIBlockTime;
|
|
130 |
long uiThreshhold = getThreshhold(mLastScramblingAndSolvingPlace);
|
|
131 |
long scramblingAndSolvingBlocked = now- mScramblingAndSolvingBlockTime;
|
|
132 | 132 |
|
133 |
if( mUIBlockTime>mPauseTime && uiBlocked>uiThreshhold )
|
|
133 |
if( mScramblingAndSolvingBlockTime >mPauseTime && scramblingAndSolvingBlocked>uiThreshhold )
|
|
134 | 134 |
{ |
135 | 135 |
boolean running = EffectMessageSender.isRunning(); |
136 | 136 |
ObjectLibInterface libInterface = mPre.getInterface(); |
... | ... | |
142 | 142 |
} |
143 | 143 |
else |
144 | 144 |
{ |
145 |
mPre.unblockUI();
|
|
146 |
libInterface.reportBlockProblem(TYPE_UI,mLastUIPlace,mPauseTime,mResumeTime,mUIBlockTime);
|
|
145 |
mPre.unblockScramblingAndSolving();
|
|
146 |
libInterface.reportBlockProblem(TYPE_SCRAMBLING, mLastScramblingAndSolvingPlace,mPauseTime,mResumeTime, mScramblingAndSolvingBlockTime);
|
|
147 | 147 |
} |
148 | 148 |
} |
149 | 149 |
} |
150 | 150 |
|
151 | 151 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
152 | 152 |
|
153 |
public void touchBlocked(int place)
|
|
153 |
public void rotationBlocked(int place)
|
|
154 | 154 |
{ |
155 |
mTouchBlockTime = System.currentTimeMillis();
|
|
156 |
mLastTouchPlace = place;
|
|
155 |
mRotationBlockTime = System.currentTimeMillis();
|
|
156 |
mLastRotationPlace = place;
|
|
157 | 157 |
} |
158 | 158 |
|
159 | 159 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
160 | 160 |
|
161 |
public void uiBlocked(int place)
|
|
161 |
public void scramblingAndSolvingBlocked(int place)
|
|
162 | 162 |
{ |
163 |
mUIBlockTime = System.currentTimeMillis();
|
|
164 |
mLastUIPlace = place;
|
|
163 |
mScramblingAndSolvingBlockTime = System.currentTimeMillis();
|
|
164 |
mLastScramblingAndSolvingPlace = place;
|
|
165 | 165 |
} |
166 | 166 |
|
167 | 167 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
168 | 168 |
|
169 |
public void touchUnblocked()
|
|
169 |
public void rotationUnblocked()
|
|
170 | 170 |
{ |
171 |
mTouchBlockTime = 0;
|
|
171 |
mRotationBlockTime = 0;
|
|
172 | 172 |
} |
173 | 173 |
|
174 | 174 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
175 | 175 |
|
176 |
public void uiUnblocked()
|
|
176 |
public void scramblingAndSolvingUnblocked()
|
|
177 | 177 |
{ |
178 |
mUIBlockTime = 0;
|
|
178 |
mScramblingAndSolvingBlockTime = 0;
|
|
179 | 179 |
} |
180 | 180 |
} |
src/main/java/org/distorted/objectlib/main/ObjectControl.java | ||
---|---|---|
173 | 173 |
mDragging = false; |
174 | 174 |
mContinuingRotation = false; |
175 | 175 |
|
176 |
if( mLastMode==MODE_ROTATE ) mBeginningRotation = !mPreRender.isTouchBlocked();
|
|
176 |
if( mLastMode==MODE_ROTATE ) mBeginningRotation = !mPreRender.isRotationBlocked();
|
|
177 | 177 |
else if( mLastMode==MODE_REPLACE ) replaceMode(down); |
178 | 178 |
} |
179 | 179 |
else |
... | ... | |
722 | 722 |
public void blockTouch(int place) |
723 | 723 |
{ |
724 | 724 |
setLock(true); |
725 |
mPreRender.blockTouch(place);
|
|
725 |
mPreRender.blockRotation(place);
|
|
726 | 726 |
} |
727 | 727 |
|
728 | 728 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
729 | 729 |
|
730 |
public void unblockTouch()
|
|
730 |
public void unblockRotation()
|
|
731 | 731 |
{ |
732 | 732 |
unsetLock(); |
733 |
mPreRender.unblockTouch();
|
|
733 |
mPreRender.unblockRotation();
|
|
734 | 734 |
} |
735 | 735 |
|
736 | 736 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
737 | 737 |
|
738 |
public boolean isUINotBlocked()
|
|
738 |
public boolean isScramblingAndSolvingNotBlocked()
|
|
739 | 739 |
{ |
740 |
return mPreRender.isUINotBlocked();
|
|
740 |
return mPreRender.isScramblingAndSolvingNotBlocked();
|
|
741 | 741 |
} |
742 | 742 |
|
743 | 743 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/objectlib/main/ObjectPreRender.java | ||
---|---|---|
47 | 47 |
private boolean mFinishRotation, mRemoveRotation, mRemovePatternRotation, mAddRotation, |
48 | 48 |
mSetQuat, mChangeObject, mSolveObject, mScrambleObject, mFastScrambleObject, mPresentObject, |
49 | 49 |
mInitializeObject, mSetTextureMap, mResetAllTextureMaps, mSolve, mApplyScrambles; |
50 |
private boolean mUIBlocked, mTouchBlocked, mIsSolved;
|
|
50 |
private boolean mScramblingAndSolvingBlocked, mRotationBlocked, mIsSolved;
|
|
51 | 51 |
private long mRotationFinishedID; |
52 | 52 |
private final long[] mEffectID; |
53 | 53 |
private int[][] mNextMoves; |
... | ... | |
374 | 374 |
|
375 | 375 |
private void blockEverything(int place) |
376 | 376 |
{ |
377 |
mUIBlocked = true;
|
|
378 |
mTouchBlocked= true;
|
|
379 |
mBlockController.touchBlocked(place);
|
|
380 |
mBlockController.uiBlocked(place);
|
|
377 |
mScramblingAndSolvingBlocked = true;
|
|
378 |
mRotationBlocked = true;
|
|
379 |
mBlockController.rotationBlocked(place);
|
|
380 |
mBlockController.scramblingAndSolvingBlocked(place);
|
|
381 | 381 |
} |
382 | 382 |
|
383 | 383 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
384 | 384 |
|
385 | 385 |
private void unblockEverything() |
386 | 386 |
{ |
387 |
mUIBlocked = false;
|
|
388 |
mTouchBlocked= false;
|
|
389 |
mBlockController.touchUnblocked();
|
|
390 |
mBlockController.uiUnblocked();
|
|
387 |
mScramblingAndSolvingBlocked = false;
|
|
388 |
mRotationBlocked = false;
|
|
389 |
mBlockController.rotationUnblocked();
|
|
390 |
mBlockController.scramblingAndSolvingUnblocked();
|
|
391 | 391 |
} |
392 | 392 |
|
393 | 393 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
525 | 525 |
|
526 | 526 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
527 | 527 |
|
528 |
public boolean isTouchBlocked()
|
|
528 |
public boolean isRotationBlocked()
|
|
529 | 529 |
{ |
530 |
return mTouchBlocked;
|
|
530 |
return mRotationBlocked;
|
|
531 | 531 |
} |
532 | 532 |
|
533 | 533 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
534 | 534 |
|
535 |
public boolean isUINotBlocked()
|
|
535 |
public boolean isScramblingAndSolvingNotBlocked()
|
|
536 | 536 |
{ |
537 |
return !mUIBlocked;
|
|
537 |
return !mScramblingAndSolvingBlocked;
|
|
538 | 538 |
} |
539 | 539 |
|
540 | 540 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
541 | 541 |
|
542 |
public void blockTouch(int place)
|
|
542 |
public void blockRotation(int place)
|
|
543 | 543 |
{ |
544 |
mTouchBlocked= true;
|
|
545 |
mBlockController.touchBlocked(place);
|
|
544 |
mRotationBlocked = true;
|
|
545 |
mBlockController.rotationBlocked(place);
|
|
546 | 546 |
} |
547 | 547 |
|
548 | 548 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
549 | 549 |
|
550 |
public void unblockTouch()
|
|
550 |
public void unblockRotation()
|
|
551 | 551 |
{ |
552 |
mTouchBlocked= false;
|
|
553 |
mBlockController.touchUnblocked();
|
|
552 |
mRotationBlocked = false;
|
|
553 |
mBlockController.rotationUnblocked();
|
|
554 | 554 |
} |
555 | 555 |
|
556 | 556 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
557 | 557 |
|
558 |
public void unblockUI()
|
|
558 |
public void unblockScramblingAndSolving()
|
|
559 | 559 |
{ |
560 |
mUIBlocked= false;
|
|
561 |
mBlockController.uiUnblocked();
|
|
560 |
mScramblingAndSolvingBlocked = false;
|
|
561 |
mBlockController.scramblingAndSolvingUnblocked();
|
|
562 | 562 |
} |
563 | 563 |
|
564 | 564 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
636 | 636 |
|
637 | 637 |
public void scrambleObject(int num) |
638 | 638 |
{ |
639 |
if( !mUIBlocked )
|
|
639 |
if( !mScramblingAndSolvingBlocked )
|
|
640 | 640 |
{ |
641 | 641 |
mScrambleObject = true; |
642 | 642 |
mScrambleObjectNum = num; |
... | ... | |
649 | 649 |
|
650 | 650 |
public void fastScrambleObject(int duration, int num) |
651 | 651 |
{ |
652 |
if( !mUIBlocked )
|
|
652 |
if( !mScramblingAndSolvingBlocked )
|
|
653 | 653 |
{ |
654 | 654 |
mFastScrambleObject = true; |
655 | 655 |
mScrambleObjectNum = num; |
... | ... | |
673 | 673 |
|
674 | 674 |
public void solveObject() |
675 | 675 |
{ |
676 |
if( !mUIBlocked )
|
|
676 |
if( !mScramblingAndSolvingBlocked )
|
|
677 | 677 |
{ |
678 | 678 |
mSolveObject = true; |
679 | 679 |
} |
Also available in: Unified diff
Some improvements to blocking, mostly to the names of variables.