Revision b3a907f1
Added by Leszek Koltunski over 2 years ago
| src/main/java/org/distorted/screens/RubikScreenSolver.java | ||
|---|---|---|
| 48 | 48 |
public class RubikScreenSolver extends RubikScreenAbstract |
| 49 | 49 |
{
|
| 50 | 50 |
private static final int RESET_DURATION = 1000; |
| 51 |
private static final int MODE_NORMAL = 0; |
|
| 52 |
private static final int MODE_DINO_4 = 1; |
|
| 51 | 53 |
|
| 52 | 54 |
private static Bitmap[] mBitmap; |
| 53 | 55 |
private ImageButton[] mColorButton; |
| 54 | 56 |
private TransparentImageButton mResetButton,mBackButton, mSolveButton; |
| 55 | 57 |
private boolean mSolving; |
| 56 |
private int mCurrentColor; |
|
| 58 |
private int mCurrentColor, mCurrentButton;
|
|
| 57 | 59 |
private int[] mFaceColors; |
| 60 |
private int mColorMode; |
|
| 58 | 61 |
private int mNumColors; |
| 59 | 62 |
private float mBitmapSize; |
| 60 | 63 |
private WeakReference<RubikActivity> mWeakAct; |
| ... | ... | |
| 139 | 142 |
|
| 140 | 143 |
public void generateFaceColors(int object) |
| 141 | 144 |
{
|
| 145 |
mColorMode = MODE_NORMAL; |
|
| 146 |
|
|
| 142 | 147 |
if( object== ObjectSignatures.PYRA_3 || |
| 143 | 148 |
object== ObjectSignatures.PYRA_4 || |
| 144 | 149 |
object== ObjectSignatures.PYRA_5 || |
| ... | ... | |
| 186 | 191 |
{
|
| 187 | 192 |
mNumColors = 4; |
| 188 | 193 |
mFaceColors = new int[] { COLOR_YELLOW, COLOR_RED, COLOR_BLUE, COLOR_WHITE };
|
| 194 |
mColorMode = MODE_DINO_4; |
|
| 189 | 195 |
} |
| 190 | 196 |
else |
| 191 | 197 |
{
|
| ... | ... | |
| 225 | 231 |
} |
| 226 | 232 |
} |
| 227 | 233 |
|
| 234 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 235 |
|
|
| 236 |
private int translateColor(int color) |
|
| 237 |
{
|
|
| 238 |
if( mColorMode==MODE_DINO_4 ) |
|
| 239 |
{
|
|
| 240 |
int realColor = mFaceColors[color]; |
|
| 241 |
int[] hexColors = ShapeHexahedron.FACE_COLORS; |
|
| 242 |
|
|
| 243 |
for(int i=0; i<6; i++) |
|
| 244 |
if( hexColors[i]==realColor ) return i; |
|
| 245 |
} |
|
| 246 |
|
|
| 247 |
return color; |
|
| 248 |
} |
|
| 249 |
|
|
| 228 | 250 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 229 | 251 |
|
| 230 | 252 |
private void setupColorButtons(final RubikActivity act, final float width) |
| ... | ... | |
| 252 | 274 |
@Override |
| 253 | 275 |
public void onClick(View view) |
| 254 | 276 |
{
|
| 255 |
mCurrentColor = ii; |
|
| 277 |
mCurrentColor = translateColor(ii); |
|
| 278 |
mCurrentButton= ii; |
|
| 256 | 279 |
markButton(act); |
| 257 | 280 |
} |
| 258 | 281 |
}); |
| ... | ... | |
| 330 | 353 |
{
|
| 331 | 354 |
Drawable d = mColorButton[b].getBackground(); |
| 332 | 355 |
|
| 333 |
if( b==mCurrentColor )
|
|
| 356 |
if( b==mCurrentButton )
|
|
| 334 | 357 |
{
|
| 335 | 358 |
d.setColorFilter(ContextCompat.getColor(act,R.color.red), PorterDuff.Mode.MULTIPLY); |
| 336 | 359 |
} |
| ... | ... | |
| 345 | 368 |
|
| 346 | 369 |
public void savePreferences(SharedPreferences.Editor editor) |
| 347 | 370 |
{
|
| 348 |
editor.putInt("stateSolver_color", mCurrentColor);
|
|
| 371 |
editor.putInt("stateSolver_color" , mCurrentColor );
|
|
| 372 |
editor.putInt("stateSolver_button", mCurrentButton);
|
|
| 349 | 373 |
} |
| 350 | 374 |
|
| 351 | 375 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 352 | 376 |
|
| 353 | 377 |
public void restorePreferences(SharedPreferences preferences) |
| 354 | 378 |
{
|
| 355 |
mCurrentColor = preferences.getInt("stateSolver_color", 0);
|
|
| 379 |
mCurrentColor = preferences.getInt("stateSolver_color" , 0);
|
|
| 380 |
mCurrentButton= preferences.getInt("stateSolver_button", 0);
|
|
| 356 | 381 |
} |
| 357 | 382 |
|
| 358 | 383 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Dino4 solver: progress.