Project

General

Profile

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

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

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 ab19c113 leszek
  private TransparentImageButton mDialogButton, 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 ab19c113 leszek
///////////////////////////////////////////////////////////////////////////////////////////////////
78
79
  private void setupDialogButton(final TutorialActivity act)
80
    {
81
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
82
    mDialogButton = new TransparentImageButton(act,R.drawable.ui_menu,params);
83
84
    mDialogButton.setOnClickListener( new View.OnClickListener()
85
      {
86
      @Override
87
      public void onClick(View v)
88
        {
89
        act.showDialog();
90
        }
91
      });
92
    }
93
94 344f290c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
95
96 dd874ae8 Leszek Koltunski
  private void setupSolveButton(final TutorialActivity act)
97 344f290c Leszek Koltunski
    {
98 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
99 70688a23 leszek
    mSolveButton = new TransparentImageButton(act,R.drawable.ui_cube_solve,params);
100 344f290c Leszek Koltunski
101
    mSolveButton.setOnClickListener( new View.OnClickListener()
102
      {
103
      @Override
104
      public void onClick(View v)
105
        {
106 2afc6754 Leszek Koltunski
        act.getControl().solveObject();
107 dd1a65c1 Leszek Koltunski
        mMovesController.clearMoves(act);
108 344f290c Leszek Koltunski
        }
109
      });
110
    }
111
112
///////////////////////////////////////////////////////////////////////////////////////////////////
113
114 dd874ae8 Leszek Koltunski
  private void setupScrambleButton(final TutorialActivity act)
115 344f290c Leszek Koltunski
    {
116 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
117 70688a23 leszek
    mScrambleButton = new TransparentImageButton(act,R.drawable.ui_cube_scramble,params);
118 344f290c Leszek Koltunski
119
    mScrambleButton.setOnClickListener( new View.OnClickListener()
120
      {
121
      @Override
122
      public void onClick(View v)
123
        {
124 b1629e16 Leszek Koltunski
        int duration = BaseEffect.Type.FAST_SCRAMBLE.getDuration();
125
        act.getControl().fastScrambleObject(duration,RubikObject.FAST_SCRAMBLES);
126 344f290c Leszek Koltunski
        }
127
      });
128
    }
129
130
///////////////////////////////////////////////////////////////////////////////////////////////////
131
132 dd874ae8 Leszek Koltunski
  private void setupBackButton(final TutorialActivity act)
133 344f290c Leszek Koltunski
    {
134 b600ccd9 Leszek Koltunski
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
135 70688a23 leszek
    mBackButton = new TransparentImageButton(act,R.drawable.ui_smallback,params);
136 344f290c Leszek Koltunski
137
    mBackButton.setOnClickListener( new View.OnClickListener()
138
      {
139
      @Override
140
      public void onClick(View v)
141
        {
142
        act.finish();
143
        }
144
      });
145
    }
146
147
///////////////////////////////////////////////////////////////////////////////////////////////////
148
149 dd874ae8 Leszek Koltunski
  void createRightPane(final TutorialActivity act)
150 344f290c Leszek Koltunski
    {
151 2971588c Leszek Koltunski
    LinearLayout layout = act.findViewById(R.id.tutorialRightBar);
152 344f290c Leszek Koltunski
    layout.removeAllViews();
153
154 ea036986 Leszek Koltunski
    if( mFree )
155
      {
156
      ObjectControl control = act.getControl();
157
      mMovesController.setupButton(act,control);
158
      mLockController.setupButton(act,control);
159 ab19c113 leszek
      setupDialogButton(act);
160 ea036986 Leszek Koltunski
      setupSolveButton(act);
161
      setupScrambleButton(act);
162 ab19c113 leszek
      layout.addView(mDialogButton);
163 ea036986 Leszek Koltunski
      layout.addView(mSolveButton);
164
      layout.addView(mScrambleButton);
165
      layout.addView(mMovesController.getButton());
166
      layout.addView(mLockController.getButton());
167
      }
168
    else
169
      {
170
      setupLockButton(act);
171
      setupEmptyButton1(act);
172
      setupEmptyButton2(act);
173
      setupEmptyButton3(act);
174
      layout.addView(mLockButton);
175
      layout.addView(mEmptyButton1);
176
      layout.addView(mEmptyButton2);
177
      layout.addView(mEmptyButton3);
178
      }
179 344f290c Leszek Koltunski
180 ea036986 Leszek Koltunski
    setupBackButton(act);
181 344f290c Leszek Koltunski
    layout.addView(mBackButton);
182
    }
183
184
///////////////////////////////////////////////////////////////////////////////////////////////////
185
186 e019c70b Leszek Koltunski
  void addMove(Activity act, int axis, int row, int angle)
187 146661ec Leszek Koltunski
    {
188 dd1a65c1 Leszek Koltunski
    mMovesController.addMove(act, axis,row,angle);
189 146661ec Leszek Koltunski
    }
190
191
///////////////////////////////////////////////////////////////////////////////////////////////////
192
// PUBLIC API
193
194 ea036986 Leszek Koltunski
  public TutorialScreen(boolean free)
195 344f290c Leszek Koltunski
    {
196 ea036986 Leszek Koltunski
    mFree = free;
197 dd1a65c1 Leszek Koltunski
    mLockController = new LockController();
198
    mMovesController = new MovesController();
199 344f290c Leszek Koltunski
    }
200 cc88f2fa Leszek Koltunski
201
///////////////////////////////////////////////////////////////////////////////////////////////////
202
203 e019c70b Leszek Koltunski
  public void reddenLock(final TutorialActivity act)
204 cc88f2fa Leszek Koltunski
    {
205 e019c70b Leszek Koltunski
    ObjectControl control = act.getControl();
206
    mLockController.reddenLock(act,control);
207 cc88f2fa Leszek Koltunski
    }
208 344f290c Leszek Koltunski
}