public void getNumPuzzles() { _cursor = _parent.managedQuery( MyPuzzleProvider.CONTENT_URI_PUZZLES, MyPuzzleProvider.COLUMNS, null, null, ""); if (_cursor != null) { _num = _cursor.getCount(); } else { _num = 0; } // Cursor countCursor = _cr.query(MyPuzzleProvider.CONTENT_URI_PUZZLES, new String[] {"count(*) // AS count"}, null, null, null); // countCursor.moveToFirst(); // _num = countCursor.getInt(0); }
// @Override public void handleMessage(Message msg) { if (msg.what == 1) { _progressDlg.hide(); getNumPuzzles(); if (_seekBar != null) { _seekBar.setMax(_num); } play(); } else if (msg.what == 2) { _progressDlg.setMessage( _parent.getString(R.string.msg_progress) + String.format(" %d", (_cnt * 100) / _num) + " %"); } else if (msg.what == 3) { _progressDlg.hide(); _tvPuzzleText.setText("An error occured during install"); } }
@Override public boolean handleClick(int index) { final int iTo = _view.getFieldIndex(index); if (m_iFrom != -1) { if (_jni.pieceAt(BoardConstants.WHITE, m_iFrom) == BoardConstants.PAWN && BoardMembers.ROW_TURN[BoardConstants.WHITE][m_iFrom] == 6 && BoardMembers.ROW_TURN[BoardConstants.WHITE][iTo] == 7 || _jni.pieceAt(BoardConstants.BLACK, m_iFrom) == BoardConstants.PAWN && BoardMembers.ROW_TURN[BoardConstants.BLACK][m_iFrom] == 6 && BoardMembers.ROW_TURN[BoardConstants.BLACK][iTo] == 7) { final String[] items = _parent.getResources().getStringArray(R.array.promotionpieces); AlertDialog.Builder builder = new AlertDialog.Builder(_parent); builder.setTitle("Pick promotion piece"); builder.setSingleChoiceItems( items, 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { dialog.dismiss(); _jni.setPromo(4 - item); boolean bValid = requestMove(m_iFrom, iTo); m_iFrom = -1; if (false == bValid) paintBoard(); } }); AlertDialog alert = builder.create(); alert.show(); return true; } } return super.handleClick(iTo); }
public ChessViewPuzzle(final Activity activity) { super(); _parent = (puzzle) activity; _view = new ChessViewBase(activity); _cr = activity.getContentResolver(); _tvPuzzleText = (TextView) _parent.findViewById(R.id.TextViewPuzzleText); _imgTurn = (ImageView) _parent.findViewById(R.id.ImageTurn); _imgStatus = (ImageView) _parent.findViewById(R.id.ImageStatus); _cnt = 0; // _num = 500; getNumPuzzles(); _seekBar = (SeekBar) _parent.findViewById(R.id.SeekBarPuzzle); if (_seekBar != null) { _seekBar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { _iPos = progress - 1; play(); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } }); _seekBar.setMax(_num); } _iPos = 0; OnClickListener ocl = new OnClickListener() { public void onClick(View arg0) { handleClick(_view.getIndexOfButton(arg0)); } }; _view.init(ocl); _butPuzzle = (Button) _parent.findViewById(R.id.ButtonPuzzle); _butPuzzle.setOnClickListener( new OnClickListener() { public void onClick(View arg0) { jumptoMove(_jni.getNumBoard()); updateState(); // if(_arrPGN.size() == m_game.getBoard().getNumBoard()-1) // _butPuzzle.setText("Next"); } }); _butJump = (Button) _parent.findViewById(R.id.ButtonPuzzleJump); _butJump.setOnClickListener( new OnClickListener() { public void onClick(View arg0) { AlertDialog.Builder builder = new AlertDialog.Builder(_parent); builder.setTitle(_parent.getString(R.string.title_puzzle_jump)); final EditText input = new EditText(_parent); input.setInputType(InputType.TYPE_CLASS_PHONE); builder.setView(input); builder.setPositiveButton( _parent.getString(R.string.button_ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { try { int num = Integer.parseInt(input.getText().toString()); if (num > 0 && num <= _num) { _iPos = num - 1; play(); return; } } catch (Exception ex) { } _parent.doToast(_parent.getString(R.string.err_puzzle_jump)); } }); AlertDialog alert = builder.create(); alert.show(); } }); _butPrev = (ImageButton) _parent.findViewById(R.id.ButtonPuzzlePrevious); _butPrev.setOnClickListener( new OnClickListener() { public void onClick(View arg0) { if (_iPos > 1) _iPos -= 2; play(); } }); _butNext = (ImageButton) _parent.findViewById(R.id.ButtonPuzzleNext); _butNext.setOnClickListener( new OnClickListener() { public void onClick(View arg0) { play(); } }); _butHelp = (ImageButton) _parent.findViewById(R.id.ButtonPuzzleHelp); _butHelp.setOnClickListener( new OnClickListener() { public void onClick(View arg0) { Intent i = new Intent(); i.setClass(_parent, HtmlActivity.class); i.putExtra(HtmlActivity.HELP_MODE, "help_puzzle"); _parent.startActivity(i); } }); }
public void OnResume(final SharedPreferences prefs) { super.OnResume(); if (_seekBar != null) { if (prefs.getBoolean("PuzzleShowSeekBar", true)) { _seekBar.setVisibility(View.VISIBLE); } else { _seekBar.setVisibility(View.GONE); } } ChessImageView._colorScheme = prefs.getInt("ColorScheme", 0); _view.setFlippedBoard(prefs.getBoolean("flippedBoard", false)); _iPos = prefs.getInt("puzzlePos", 0); getNumPuzzles(); if (_num == 0) { _num = 500; // first puzzle set has fixed amount _progressDlg = ProgressDialog.show( _parent, _parent.getString(R.string.title_installing), _parent.getString(R.string.msg_wait), false, false); // if(iTmp > 0) // _cr.delete(MyPuzzleProvider.CONTENT_URI_PUZZLES, "1=1", null); _thread = new Thread( new Runnable() { public void run() { try { InputStream is = _parent.getAssets().open("puzzles.pgn"); StringBuffer sb = new StringBuffer(); String s = "", data; int pos1 = 0, pos2 = 0, len; byte[] buffer = new byte[2048]; while ((len = is.read(buffer, 0, buffer.length)) != -1) { data = new String(buffer, 0, len); sb.append(data); pos1 = sb.indexOf("[Event \""); while (pos1 >= 0) { pos2 = sb.indexOf("[Event \"", pos1 + 10); if (pos2 == -1) break; s = sb.substring(pos1, pos2); processPGN(s); sb.delete(0, pos2); pos1 = sb.indexOf("[Event \""); } // break; // Log.i("run", "left: " + sb); // break; } processPGN(sb.toString()); Log.i("run", "Count " + _cnt); Message msg = new Message(); msg.what = 1; m_threadHandler.sendMessage(msg); is.close(); } catch (Exception ex) { Log.e("Install", ex.toString()); } } }); _thread.start(); return; } play(); }