Project

General

Profile

Download (6.93 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / tutorials / TutorialScreen.java @ b710a574

1 344f290c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4 bb62ca3f Leszek Koltunski
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
5
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
6 344f290c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
7
8 eaf87d1d Leszek Koltunski
package org.distorted.tutorials;
9 344f290c Leszek Koltunski
10 e019c70b Leszek Koltunski
import android.app.Activity;
11 344f290c Leszek Koltunski
import android.view.View;
12
import android.widget.LinearLayout;
13
14 dd1a65c1 Leszek Koltunski
import org.distorted.helpers.MovesController;
15 b1629e16 Leszek Koltunski
import org.distorted.objectlib.effects.BaseEffect;
16 2afc6754 Leszek Koltunski
import org.distorted.objectlib.main.ObjectControl;
17 3f7a4363 Leszek Koltunski
18 dd1a65c1 Leszek Koltunski
import org.distorted.helpers.LockController;
19 344f290c Leszek Koltunski
import org.distorted.main.R;
20 d433b50e Leszek Koltunski
import org.distorted.objects.RubikObject;
21 55e6be1d Leszek Koltunski
import org.distorted.helpers.TransparentImageButton;
22 344f290c Leszek Koltunski
23
///////////////////////////////////////////////////////////////////////////////////////////////////
24
25 dd1a65c1 Leszek Koltunski
public class TutorialScreen
26 344f290c Leszek Koltunski
{
27 dd874ae8 Leszek Koltunski
  private TransparentImageButton mSolveButton, mScrambleButton, mBackButton;
28 ea036986 Leszek Koltunski
  private TransparentImageButton mLockButton, mEmptyButton1, mEmptyButton2, mEmptyButton3;
29 dd1a65c1 Leszek Koltunski
  private final LockController mLockController;
30
  private final MovesController mMovesController;
31 ea036986 Leszek Koltunski
  private final boolean mFree;
32
33
///////////////////////////////////////////////////////////////////////////////////////////////////
34
35
  private void setupLockButton(final TutorialActivity act)
36
    {
37
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
38 70688a23 leszek
    mLockButton = new TransparentImageButton(act,R.drawable.ui_locked,params);
39 18d47965 Leszek Koltunski
40
    mLockButton.setOnClickListener( new View.OnClickListener()
41
      {
42
      @Override
43
      public void onClick(View v)
44
        {
45 b710a574 leszek
        //act.switchToPurchase();
46 18d47965 Leszek Koltunski
        }
47
      });
48 ea036986 Leszek Koltunski
    }
49
50
///////////////////////////////////////////////////////////////////////////////////////////////////
51
52
  private void setupEmptyButton1(final TutorialActivity act)
53
    {
54
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
55
    mEmptyButton1 = new TransparentImageButton(act, params);
56
    mEmptyButton1.setClickable(false);
57
    }
58
59
///////////////////////////////////////////////////////////////////////////////////////////////////
60
61
  private void setupEmptyButton2(final TutorialActivity act)
62
    {
63
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
64
    mEmptyButton2 = new TransparentImageButton(act, params);
65
    mEmptyButton2.setClickable(false);
66
    }
67
68
///////////////////////////////////////////////////////////////////////////////////////////////////
69
70
  private void setupEmptyButton3(final TutorialActivity act)
71
    {
72
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
73
    mEmptyButton3 = new TransparentImageButton(act, params);
74
    mEmptyButton3.setClickable(false);
75
    }
76 344f290c Leszek Koltunski
77
///////////////////////////////////////////////////////////////////////////////////////////////////
78
79 dd874ae8 Leszek Koltunski
  private void setupSolveButton(final TutorialActivity act)
80 344f290c Leszek Koltunski
    {
81 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
82 70688a23 leszek
    mSolveButton = new TransparentImageButton(act,R.drawable.ui_cube_solve,params);
83 344f290c Leszek Koltunski
84
    mSolveButton.setOnClickListener( new View.OnClickListener()
85
      {
86
      @Override
87
      public void onClick(View v)
88
        {
89 2afc6754 Leszek Koltunski
        act.getControl().solveObject();
90 dd1a65c1 Leszek Koltunski
        mMovesController.clearMoves(act);
91 344f290c Leszek Koltunski
        }
92
      });
93
    }
94
95
///////////////////////////////////////////////////////////////////////////////////////////////////
96
97 dd874ae8 Leszek Koltunski
  private void setupScrambleButton(final TutorialActivity act)
98 344f290c Leszek Koltunski
    {
99 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
100 70688a23 leszek
    mScrambleButton = new TransparentImageButton(act,R.drawable.ui_cube_scramble,params);
101 344f290c Leszek Koltunski
102
    mScrambleButton.setOnClickListener( new View.OnClickListener()
103
      {
104
      @Override
105
      public void onClick(View v)
106
        {
107 b1629e16 Leszek Koltunski
        int duration = BaseEffect.Type.FAST_SCRAMBLE.getDuration();
108
        act.getControl().fastScrambleObject(duration,RubikObject.FAST_SCRAMBLES);
109 344f290c Leszek Koltunski
        }
110
      });
111
    }
112
113
///////////////////////////////////////////////////////////////////////////////////////////////////
114
115 dd874ae8 Leszek Koltunski
  private void setupBackButton(final TutorialActivity act)
116 344f290c Leszek Koltunski
    {
117 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
118 70688a23 leszek
    mBackButton = new TransparentImageButton(act,R.drawable.ui_smallback,params);
119 344f290c Leszek Koltunski
120
    mBackButton.setOnClickListener( new View.OnClickListener()
121
      {
122
      @Override
123
      public void onClick(View v)
124
        {
125
        act.finish();
126
        }
127
      });
128
    }
129
130
///////////////////////////////////////////////////////////////////////////////////////////////////
131
132 dd874ae8 Leszek Koltunski
  void createRightPane(final TutorialActivity act)
133 344f290c Leszek Koltunski
    {
134 2971588c Leszek Koltunski
    LinearLayout layout = act.findViewById(R.id.tutorialRightBar);
135 344f290c Leszek Koltunski
    layout.removeAllViews();
136
137 ea036986 Leszek Koltunski
    if( mFree )
138
      {
139
      ObjectControl control = act.getControl();
140
      mMovesController.setupButton(act,control);
141
      mLockController.setupButton(act,control);
142
      setupSolveButton(act);
143
      setupScrambleButton(act);
144
      layout.addView(mSolveButton);
145
      layout.addView(mScrambleButton);
146
      layout.addView(mMovesController.getButton());
147
      layout.addView(mLockController.getButton());
148
      }
149
    else
150
      {
151
      setupLockButton(act);
152
      setupEmptyButton1(act);
153
      setupEmptyButton2(act);
154
      setupEmptyButton3(act);
155
      layout.addView(mLockButton);
156
      layout.addView(mEmptyButton1);
157
      layout.addView(mEmptyButton2);
158
      layout.addView(mEmptyButton3);
159
      }
160 344f290c Leszek Koltunski
161 ea036986 Leszek Koltunski
    setupBackButton(act);
162 344f290c Leszek Koltunski
    layout.addView(mBackButton);
163
    }
164
165
///////////////////////////////////////////////////////////////////////////////////////////////////
166
167 e019c70b Leszek Koltunski
  void addMove(Activity act, int axis, int row, int angle)
168 146661ec Leszek Koltunski
    {
169 dd1a65c1 Leszek Koltunski
    mMovesController.addMove(act, axis,row,angle);
170 146661ec Leszek Koltunski
    }
171
172
///////////////////////////////////////////////////////////////////////////////////////////////////
173
// PUBLIC API
174
175 ea036986 Leszek Koltunski
  public TutorialScreen(boolean free)
176 344f290c Leszek Koltunski
    {
177 ea036986 Leszek Koltunski
    mFree = free;
178 dd1a65c1 Leszek Koltunski
    mLockController = new LockController();
179
    mMovesController = new MovesController();
180 344f290c Leszek Koltunski
    }
181 cc88f2fa Leszek Koltunski
182
///////////////////////////////////////////////////////////////////////////////////////////////////
183
184 e019c70b Leszek Koltunski
  public void reddenLock(final TutorialActivity act)
185 cc88f2fa Leszek Koltunski
    {
186 e019c70b Leszek Koltunski
    ObjectControl control = act.getControl();
187
    mLockController.reddenLock(act,control);
188 cc88f2fa Leszek Koltunski
    }
189 344f290c Leszek Koltunski
}