mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-04 23:02:02 +01:00
fix crash; use params
Pass blank-picking params through rather than using instance variables.
This commit is contained in:
parent
e631d57e9b
commit
c088e36113
2 changed files with 18 additions and 22 deletions
|
@ -114,14 +114,11 @@ public class BoardDelegate extends DelegateBase
|
|||
private ArrayList<String> m_pendingChats;
|
||||
|
||||
private EditText m_passwdEdit;
|
||||
private String[] m_texts;
|
||||
private CommsConnTypeSet m_connTypes = null;
|
||||
private String[] m_missingDevs;
|
||||
private int[] m_missingCounts;
|
||||
private InviteMeans m_missingMeans = null;
|
||||
private boolean m_progressShown = false;
|
||||
private String m_curTiles;
|
||||
private boolean m_canUndoTiles;
|
||||
private boolean m_firingPrefs;
|
||||
private JNIUtils m_jniu;
|
||||
private boolean m_inTrade; // save this in bundle?
|
||||
|
@ -335,7 +332,8 @@ public class BoardDelegate extends DelegateBase
|
|||
break;
|
||||
|
||||
case PICK_TILE_REQUESTBLANK_BLK:
|
||||
case PICK_TILE_REQUESTTRAY_BLK:
|
||||
case PICK_TILE_REQUESTTRAY_BLK: {
|
||||
String[] texts = (String[])params[0];
|
||||
checkBlocking();
|
||||
lstnr = new OnClickListener() {
|
||||
public void onClick( DialogInterface dialog,
|
||||
|
@ -343,13 +341,16 @@ public class BoardDelegate extends DelegateBase
|
|||
m_resultCode = item;
|
||||
}
|
||||
};
|
||||
ab.setItems( m_texts, lstnr );
|
||||
ab.setItems( texts, lstnr );
|
||||
|
||||
if ( DlgID.PICK_TILE_REQUESTBLANK_BLK == dlgID ) {
|
||||
ab.setTitle( R.string.title_tile_picker );
|
||||
} else {
|
||||
ab.setTitle( getString( R.string.cur_tiles_fmt, m_curTiles ) );
|
||||
if ( m_canUndoTiles ) {
|
||||
String curTiles = (String)params[1];
|
||||
boolean canUndoTiles = (Boolean)params[2];
|
||||
|
||||
ab.setTitle( getString( R.string.cur_tiles_fmt, curTiles ) );
|
||||
if ( canUndoTiles ) {
|
||||
OnClickListener undoClicked = new OnClickListener() {
|
||||
public void onClick( DialogInterface dialog,
|
||||
int whichButton ) {
|
||||
|
@ -372,6 +373,7 @@ public class BoardDelegate extends DelegateBase
|
|||
|
||||
dialog = ab.create();
|
||||
alert.setOnDismissListener( m_blockingODL );
|
||||
}
|
||||
break;
|
||||
|
||||
case ASK_PASSWORD_BLK:
|
||||
|
@ -1785,10 +1787,9 @@ public class BoardDelegate extends DelegateBase
|
|||
|
||||
// This is supposed to be called from the jni thread
|
||||
@Override
|
||||
public int userPickTileBlank( int playerNum, String[] texts)
|
||||
public int userPickTileBlank( int playerNum, String[] texts )
|
||||
{
|
||||
m_texts = texts;
|
||||
waitBlockingDialog( DlgID.PICK_TILE_REQUESTBLANK_BLK, 0 );
|
||||
waitBlockingDialog( DlgID.PICK_TILE_REQUESTBLANK_BLK, 0, (Object)texts );
|
||||
return m_resultCode;
|
||||
}
|
||||
|
||||
|
@ -1796,11 +1797,11 @@ public class BoardDelegate extends DelegateBase
|
|||
public int userPickTileTray( int playerNum, String[] texts,
|
||||
String[] curTiles, int nPicked )
|
||||
{
|
||||
m_texts = texts;
|
||||
m_curTiles = TextUtils.join( ", ", curTiles );
|
||||
m_canUndoTiles = 0 < nPicked;
|
||||
String curTilesStr = TextUtils.join( ", ", curTiles );
|
||||
boolean canUndoTiles = 0 < nPicked;
|
||||
waitBlockingDialog( DlgID.PICK_TILE_REQUESTTRAY_BLK,
|
||||
UtilCtxt.PICKER_PICKALL );
|
||||
UtilCtxt.PICKER_PICKALL, texts, curTilesStr,
|
||||
canUndoTiles );
|
||||
return m_resultCode;
|
||||
}
|
||||
|
||||
|
@ -2351,13 +2352,8 @@ public class BoardDelegate extends DelegateBase
|
|||
}
|
||||
} // populateToolbar
|
||||
|
||||
private int waitBlockingDialog( final DlgID dlgID, int cancelResult )
|
||||
{
|
||||
return waitBlockingDialog( dlgID, cancelResult, 0, null );
|
||||
}
|
||||
|
||||
private int waitBlockingDialog( final DlgID dlgID, int cancelResult,
|
||||
final int title, final String msg )
|
||||
final Object... params )
|
||||
{
|
||||
int result = cancelResult;
|
||||
// this has been true; dunno why
|
||||
|
@ -2371,7 +2367,7 @@ public class BoardDelegate extends DelegateBase
|
|||
if ( post( new Runnable() {
|
||||
public void run() {
|
||||
m_blockingDlgID = dlgID;
|
||||
showDialogFragment( dlgID, title, msg );
|
||||
showDialogFragment( dlgID, params );
|
||||
}
|
||||
} ) ) {
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ public class DBAlert extends DialogFragment {
|
|||
{
|
||||
if ( BuildConfig.DEBUG ) {
|
||||
for ( Object obj : params ) {
|
||||
if ( !(obj instanceof Serializable) ) {
|
||||
if ( null != obj && !(obj instanceof Serializable) ) {
|
||||
DbgUtils.logd( TAG, "OOPS: %s not Serializable",
|
||||
obj.getClass().getName() );
|
||||
// Assert.fail();
|
||||
|
|
Loading…
Reference in a new issue