Project

General

Profile

« Previous | Next » 

Revision 42772cff

Added by Leszek Koltunski over 4 years ago

RubikCube: major progress with a separate RubikSettingsEnum enum - has been introduced into RubikActivity & RubikRenderer.

View differences:

src/main/java/org/distorted/magic/RubikActivity.java
30 30
import android.view.View;
31 31

  
32 32
import org.distorted.component.HorizontalNumberPicker;
33
import org.distorted.effect.ScrambleEffect;
34
import org.distorted.effect.SizeChangeEffect;
35
import org.distorted.effect.SolveEffect;
36 33
import org.distorted.library.main.DistortedLibrary;
37 34

  
38 35
///////////////////////////////////////////////////////////////////////////////////////////////////
......
43 40
    private static final int SMALLEST_SIZE = 2;
44 41
    private static final int[] button_ids  = {R.id.rubikSize2, R.id.rubikSize3, R.id.rubikSize4};
45 42

  
46
    public static final int DEFAULT_SIZECHANGE_POS = 20;
47
    public static final int DEFAULT_SOLVE_POS      = 20;
48
    public static final int DEFAULT_SCRAMBLE_POS   =100;
49
    public static final int DEFAULT_SIZECHANGE_TYPE= 1;
50
    public static final int DEFAULT_SOLVE_TYPE     = 1;
51
    public static final int DEFAULT_SCRAMBLE_TYPE  = 0;
52

  
53 43
    public static final int MIN_SCRAMBLE =  1;
54 44
    public static final int MAX_SCRAMBLE = 10;
55 45

  
56 46
    private static int mSize = DEFAULT_SIZE;
57 47

  
58
    private int mSizeChangePos, mSolvePos, mScramblePos;
59
    private int mSizeChangeType, mSolveType, mScrambleType;
48
    private int[] mPos;
49
    private int[] mType;
60 50

  
61 51
    private HorizontalNumberPicker mPicker;
62 52

  
......
70 60
      setContentView(R.layout.main);
71 61
      markButton(mSize);
72 62

  
63
      mPos = new int[RubikSettingsEnum.LENGTH];
64
      mType= new int[RubikSettingsEnum.LENGTH];
65

  
73 66
      mPicker = findViewById(R.id.rubikNumberPicker);
74 67
      mPicker.setMin(MIN_SCRAMBLE);
75 68
      mPicker.setMax(MAX_SCRAMBLE);
76 69

  
77 70
      restorePreferences();
78
      applyPreferences();
71

  
72
      for (int i=0; i<RubikSettingsEnum.LENGTH; i++)
73
       {
74
       applyPreferences(i);
75
       }
79 76
      }
80 77

  
81 78
///////////////////////////////////////////////////////////////////////////////////////////////////
......
122 119
      {
123 120
      Bundle args = new Bundle();
124 121

  
125
      args.putInt("SIZECHANGE_Pos" , mSizeChangePos );
126
      args.putInt("SOLVE_Pos"      , mSolvePos      );
127
      args.putInt("SCRAMBLE_Pos"   , mScramblePos   );
128
      args.putInt("SIZECHANGE_Type", mSizeChangeType);
129
      args.putInt("SOLVE_Type"     , mSolveType     );
130
      args.putInt("SCRAMBLE_Type"  , mScrambleType  );
122
      String name;
123

  
124
      for (int i=0; i<RubikSettingsEnum.LENGTH; i++)
125
        {
126
        RubikSettingsEnum rse = RubikSettingsEnum.getEnum(i);
127
        name = rse.name();
128

  
129
        args.putInt(name+"_Pos" , mPos[i]);
130
        args.putInt(name+"_Type", mType[i]);
131
        }
131 132

  
132 133
      RubikSettings settings = new RubikSettings();
133 134
      settings.setArguments(args);
......
162 163

  
163 164
///////////////////////////////////////////////////////////////////////////////////////////////////
164 165

  
165
    public void onComplete(int sizeP, int solvP, int scraP, int sizeT, int solvT, int scraT )
166
    public void onComplete(int index, int position, int type )
166 167
      {
167
      mSizeChangePos = sizeP;
168
      mSolvePos      = solvP;
169
      mScramblePos   = scraP;
170
      mSizeChangeType= sizeT;
171
      mSolveType     = solvT;
172
      mScrambleType  = scraT;
173

  
174
      applyPreferences();
168
      if( index>=0 && index<RubikSettingsEnum.LENGTH )
169
        {
170
        mPos[index] = position;
171
        mType[index]= type;
172

  
173
        applyPreferences(index);
174
        }
175 175
      }
176 176

  
177 177
///////////////////////////////////////////////////////////////////////////////////////////////////
......
223 223
     {
224 224
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
225 225
     SharedPreferences.Editor editor = preferences.edit();
226
     String name;
227

  
228
     for (int i=0; i<RubikSettingsEnum.LENGTH; i++)
229
       {
230
       RubikSettingsEnum rse = RubikSettingsEnum.getEnum(i);
231
       name = rse.name();
232

  
233
       editor.putInt(name+"_Pos" , mPos[i]);
234
       editor.putInt(name+"_Type", mType[i]);
235
       }
226 236

  
227
     editor.putInt("SIZECHANGE_Pos" , mSizeChangePos );
228
     editor.putInt("SOLVE_Pos"      , mSolvePos      );
229
     editor.putInt("SCRAMBLE_Pos"   , mScramblePos   );
230
     editor.putInt("SIZECHANGE_Type", mSizeChangeType);
231
     editor.putInt("SOLVE_Type"     , mSolveType     );
232
     editor.putInt("SCRAMBLE_Type"  , mScrambleType  );
233
     editor.putInt("scramble"       , mPicker.getValue() );
237
     editor.putInt("scramble", mPicker.getValue() );
234 238

  
235 239
     editor.apply();
236 240
     }
......
241 245
     {
242 246
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
243 247

  
244
     mSizeChangePos = preferences.getInt("SIZECHANGE_Pos" , DEFAULT_SIZECHANGE_POS );
245
     mSolvePos      = preferences.getInt("SOLVE_Pos"      , DEFAULT_SOLVE_POS      );
246
     mScramblePos   = preferences.getInt("SCRAMBLE_Pos"   , DEFAULT_SCRAMBLE_POS   );
247
     mSizeChangeType= preferences.getInt("SIZECHANGE_Type", DEFAULT_SIZECHANGE_TYPE);
248
     mSolveType     = preferences.getInt("SOLVE_Type"     , DEFAULT_SOLVE_TYPE     );
249
     mScrambleType  = preferences.getInt("SCRAMBLE_Type"  , DEFAULT_SCRAMBLE_TYPE  );
250
     int scramble   = preferences.getInt("scramble"       , MIN_SCRAMBLE           );
248
     String name;
249

  
250
     for (int i=0; i<RubikSettingsEnum.LENGTH; i++)
251
       {
252
       RubikSettingsEnum rse = RubikSettingsEnum.getEnum(i);
253
       name = rse.name();
254

  
255
       mPos[i]  = preferences.getInt(name+"_Pos" , rse.getDefaultPos() );
256
       mType[i] = preferences.getInt(name+"_Type", rse.getDefaultType());
257
       }
258

  
259
     int scramble= preferences.getInt("scramble", MIN_SCRAMBLE);
251 260

  
252 261
     mPicker.setValue(scramble);
253 262
     }
254 263

  
255 264
///////////////////////////////////////////////////////////////////////////////////////////////////
256 265

  
257
   private void applyPreferences()
266
   private void applyPreferences(int index)
258 267
     {
259 268
     RubikSurfaceView view = findViewById(R.id.rubikSurfaceView);
260 269
     RubikRenderer renderer = view.getRenderer();
261 270

  
262
     renderer.setSizeChangeDuration(translateDuration(mSizeChangePos)+1);
263
     renderer.setSolveDuration(translateDuration(mSolvePos)+1);
264
     renderer.setScrambleDuration(translateDuration(mScramblePos)+1);
265
     renderer.setSizeChangeType(SizeChangeEffect.getType(mSizeChangeType));
266
     renderer.setSolveType(SolveEffect.getType(mSolveType));
267
     renderer.setScrambleType(ScrambleEffect.getType(mScrambleType));
271
     renderer.setPos (index, translateDuration(mPos[index])+1);
272
     renderer.setType(index, mType[index] );
268 273
     }
269 274

  
270 275
///////////////////////////////////////////////////////////////////////////////////////////////////

Also available in: Unified diff