Project

General

Profile

« Previous | Next » 

Revision 46405bb4

Added by Leszek Koltunski over 3 years ago

Add lock button.

View differences:

src/main/java/org/distorted/states/RubikStateSolving.java
23 23
import android.util.TypedValue;
24 24
import android.view.LayoutInflater;
25 25
import android.view.View;
26
import android.widget.Button;
27 26
import android.widget.ImageButton;
28 27
import android.widget.LinearLayout;
29 28
import android.widget.TextView;
......
50 49
  private long mStartTime;
51 50
  private boolean mRunning;
52 51
  private RubikScores mScores;
53
  private ImageButton mPrevButton;
52
  private ImageButton mPrevButton, mLockButton, mBackButton;
54 53
  private boolean mCanPrevMove;
55 54
  private ArrayList<Move> mMoves;
56 55
  private long mElapsed;
......
86 85
  void enterState(final RubikActivity act)
87 86
    {
88 87
    float width = act.getScreenWidthInPixels();
89
    float buttonSize = width*RubikActivity.BUTTON_TEXT_SIZE;
90 88
    float titleSize  = width*RubikActivity.TITLE_TEXT_SIZE;
91 89

  
92 90
    mCanPrevMove = true;
......
120 118
    LinearLayout layoutRight = new LinearLayout(act);
121 119
    layoutRight.setLayoutParams(paramsL);
122 120

  
123
    setupPrevMoveButtom(act,width);
121
    setupPrevButtom(act,width);
124 122
    layoutLeft.addView(mPrevButton);
123
    setupLockButton(act,width);
124
    layoutMid.addView(mLockButton);
125
    setupBackButtom(act,width);
126
    layoutRight.addView(mBackButton);
125 127

  
128
    layoutBot.addView(layoutLeft);
129
    layoutBot.addView(layoutMid);
130
    layoutBot.addView(layoutRight);
131
    }
132

  
133

  
134
///////////////////////////////////////////////////////////////////////////////////////////////////
135

  
136
  private void setupBackButtom(final RubikActivity act, float width)
137
    {
126 138
    int padding = (int)(width*RubikActivity.PADDING);
127 139
    int margin  = (int)(width*RubikActivity.MARGIN);
140
    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
141

  
128 142
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
129 143
    params.topMargin    = margin;
130 144
    params.bottomMargin = margin;
131 145
    params.leftMargin   = margin;
132 146
    params.rightMargin  = margin;
133 147

  
134
    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
148
    mBackButton = new ImageButton(act);
149
    mBackButton.setLayoutParams(params);
150
    mBackButton.setPadding(padding,0,padding,0);
151
    mBackButton.setImageResource(icon);
135 152

  
136
    ImageButton back = new ImageButton(act);
137
    back.setLayoutParams(params);
138
    back.setPadding(padding,0,padding,0);
139
    back.setImageResource(icon);
140

  
141
    back.setOnClickListener( new View.OnClickListener()
153
    mBackButton.setOnClickListener( new View.OnClickListener()
142 154
      {
143 155
      @Override
144 156
      public void onClick(View v)
......
146 158
        RubikState.goBack(act);
147 159
        }
148 160
      });
161
    }
149 162

  
150
    layoutRight.addView(back);
163
///////////////////////////////////////////////////////////////////////////////////////////////////
151 164

  
152
    layoutBot.addView(layoutLeft);
153
    layoutBot.addView(layoutMid);
154
    layoutBot.addView(layoutRight);
165
  private void setupLockButton(final RubikActivity act, final float width)
166
    {
167
    int padding  = (int)(width*RubikActivity.PADDING);
168
    int margin   = (int)(width*RubikActivity.MARGIN);
169

  
170
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
171
    params.topMargin    = margin;
172
    params.bottomMargin = margin;
173
    params.leftMargin   = margin;
174
    params.rightMargin  = margin;
175

  
176
    mLockButton = new ImageButton(act);
177
    mLockButton.setLayoutParams(params);
178
    mLockButton.setPadding(padding,0,padding,0);
179
    mLockButton.setImageResource(getLockIcon(act));
180

  
181
    mLockButton.setOnClickListener( new View.OnClickListener()
182
      {
183
      @Override
184
      public void onClick(View v)
185
        {
186
        toggleLock(act);
187
        }
188
      });
155 189
    }
156 190

  
157 191
///////////////////////////////////////////////////////////////////////////////////////////////////
158 192

  
159
  private void setupPrevMoveButtom(final RubikActivity act, float width)
193
  private void setupPrevButtom(final RubikActivity act, float width)
160 194
    {
161 195
    int padding = (int)(width*RubikActivity.PADDING);
162 196
    int margin  = (int)(width*RubikActivity.MARGIN);
......
215 249
      }
216 250
    }
217 251

  
252
///////////////////////////////////////////////////////////////////////////////////////////////////
253

  
254
  private void toggleLock(RubikActivity act)
255
    {
256
    act.toggleLock();
257
    mLockButton.setImageResource(getLockIcon(act));
258
    }
259

  
260
///////////////////////////////////////////////////////////////////////////////////////////////////
261

  
262
  private int getLockIcon(RubikActivity act)
263
    {
264
    if( act.retLocked() )
265
      {
266
      return RubikActivity.getDrawable(R.drawable.ui_small_locked,R.drawable.ui_medium_locked, R.drawable.ui_big_locked, R.drawable.ui_huge_locked);
267
      }
268
    else
269
      {
270
      return RubikActivity.getDrawable(R.drawable.ui_small_unlocked,R.drawable.ui_medium_unlocked, R.drawable.ui_big_unlocked, R.drawable.ui_huge_unlocked);
271
      }
272
    }
273

  
218 274
///////////////////////////////////////////////////////////////////////////////////////////////////
219 275

  
220 276
  public void addMove(int axis, int row, int angle)

Also available in: Unified diff