mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-04 20:46:28 +01:00
fix problems with params[] serialization
Was passing through DlgState params a number of classes that weren't serializable or that didn't have equals() methods required for DEBUG assertions to pass. Added versions of equals() that just call super in non-DEBUG case since it's a lot of code and isn't required except for testing. (Serialization of course is.)
This commit is contained in:
parent
d55d9573e4
commit
101c2ff8f2
7 changed files with 228 additions and 42 deletions
|
@ -73,21 +73,27 @@ public class DlgState implements Parcelable {
|
||||||
public DlgState setTitle( int id )
|
public DlgState setTitle( int id )
|
||||||
{ m_titleId = id; return this; }
|
{ m_titleId = id; return this; }
|
||||||
|
|
||||||
// @Override
|
@Override
|
||||||
// public String toString()
|
public String toString()
|
||||||
// {
|
{
|
||||||
// String params = "";
|
if ( BuildConfig.DEBUG) {
|
||||||
// if ( null != m_params ) {
|
String params = "";
|
||||||
// List<String> strs = new ArrayList<>();
|
if ( null != m_params ) {
|
||||||
// for (Object obj : m_params) {
|
List<String> strs = new ArrayList<>();
|
||||||
// strs.add(String.format("%s", obj));
|
for (Object obj : m_params) {
|
||||||
// }
|
strs.add(String.format("%s", obj));
|
||||||
// params = TextUtils.join( ",", strs );
|
}
|
||||||
// }
|
params = TextUtils.join( ",", strs );
|
||||||
// return String.format("[msg: %s; key: %s; action: %s; pair %s: na: %s; pos: %d; neg: %d; title: %d; params: %s]",
|
}
|
||||||
// m_msg, m_prefsKey, m_action, m_pair, m_onNAChecked,
|
return String.format("[id: %s; msg: %s; key: %s; action: %s; pair %s; "
|
||||||
// m_posButton, m_negButton, m_titleId, params );
|
+ "na: %s; pos: %d; neg: %d; title: %d; "
|
||||||
// }
|
+ "params: %s]",
|
||||||
|
m_id, m_msg, m_prefsKey, m_action, m_pair, m_onNAChecked,
|
||||||
|
m_posButton, m_negButton, m_titleId, params );
|
||||||
|
} else {
|
||||||
|
return super.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// I only need this if BuildConfig.DEBUG is true...
|
// I only need this if BuildConfig.DEBUG is true...
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -862,7 +862,8 @@ public class GamesListDelegate extends ListDelegateBase
|
||||||
|
|
||||||
lstnr = new OnClickListener() {
|
lstnr = new OnClickListener() {
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
curThis().makeThenLaunchOrConfigure( edit, true, false );
|
String name = edit.getText().toString();
|
||||||
|
curThis().makeThenLaunchOrConfigure( name, true, false );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -874,7 +875,8 @@ public class GamesListDelegate extends ListDelegateBase
|
||||||
if ( canDoDefaults ) {
|
if ( canDoDefaults ) {
|
||||||
lstnr2 = new OnClickListener() {
|
lstnr2 = new OnClickListener() {
|
||||||
public void onClick( DialogInterface dlg, int item ) {
|
public void onClick( DialogInterface dlg, int item ) {
|
||||||
curThis().makeThenLaunchOrConfigure( edit, false, false );
|
String name = edit.getText().toString();
|
||||||
|
curThis().makeThenLaunchOrConfigure( name, false, false );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ab.setNegativeButton( R.string.use_defaults, lstnr2 );
|
ab.setNegativeButton( R.string.use_defaults, lstnr2 );
|
||||||
|
@ -2543,7 +2545,7 @@ public class GamesListDelegate extends ListDelegateBase
|
||||||
|
|
||||||
// Returns true if user has what looks like a default name and has not
|
// Returns true if user has what looks like a default name and has not
|
||||||
// said he wants us to stop bugging him about it.
|
// said he wants us to stop bugging him about it.
|
||||||
private boolean askingChangeName( EditText edit, boolean doConfigure )
|
private boolean askingChangeName( String name, boolean doConfigure )
|
||||||
{
|
{
|
||||||
boolean asking = false;
|
boolean asking = false;
|
||||||
boolean skipAsk = XWPrefs
|
boolean skipAsk = XWPrefs
|
||||||
|
@ -2563,7 +2565,7 @@ public class GamesListDelegate extends ListDelegateBase
|
||||||
makeConfirmThenBuilder( msg, Action.NEW_GAME_DFLT_NAME )
|
makeConfirmThenBuilder( msg, Action.NEW_GAME_DFLT_NAME )
|
||||||
.setOnNA( Action.SET_NA_DEFAULTNAME )
|
.setOnNA( Action.SET_NA_DEFAULTNAME )
|
||||||
.setNegButton( R.string.button_later )
|
.setNegButton( R.string.button_later )
|
||||||
.setParams( edit, doConfigure )
|
.setParams( name, doConfigure )
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2574,19 +2576,18 @@ public class GamesListDelegate extends ListDelegateBase
|
||||||
{
|
{
|
||||||
boolean handled = null != m_newGameParams;
|
boolean handled = null != m_newGameParams;
|
||||||
if ( handled ) {
|
if ( handled ) {
|
||||||
EditText edit = (EditText)m_newGameParams[0];
|
String name = (String)m_newGameParams[0];
|
||||||
boolean doConfigure = (Boolean)m_newGameParams[1];
|
boolean doConfigure = (Boolean)m_newGameParams[1];
|
||||||
m_newGameParams = null;
|
m_newGameParams = null;
|
||||||
makeThenLaunchOrConfigure( edit, doConfigure, true );
|
makeThenLaunchOrConfigure( name, doConfigure, true );
|
||||||
}
|
}
|
||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void makeThenLaunchOrConfigure( EditText edit, boolean doConfigure,
|
private void makeThenLaunchOrConfigure( String name, boolean doConfigure,
|
||||||
boolean skipAsk )
|
boolean skipAsk )
|
||||||
{
|
{
|
||||||
if ( skipAsk || !askingChangeName( edit, doConfigure ) ) {
|
if ( skipAsk || !askingChangeName( name, doConfigure ) ) {
|
||||||
String name = edit.getText().toString();
|
|
||||||
long rowID;
|
long rowID;
|
||||||
long groupID = 1 == m_mySIS.selGroupIDs.size()
|
long groupID = 1 == m_mySIS.selGroupIDs.size()
|
||||||
? m_mySIS.selGroupIDs.iterator().next() : DBUtils.GROUPID_UNSPEC;
|
? m_mySIS.selGroupIDs.iterator().next() : DBUtils.GROUPID_UNSPEC;
|
||||||
|
|
|
@ -26,21 +26,23 @@ import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import java.io.InputStream;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import org.eehouse.android.xw4.jni.CommsAddrRec;
|
|
||||||
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType;
|
|
||||||
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet;
|
|
||||||
import org.eehouse.android.xw4.jni.CurGameInfo;
|
|
||||||
import org.eehouse.android.xw4.jni.GameSummary;
|
|
||||||
import org.eehouse.android.xw4.loc.LocUtils;
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import junit.framework.Assert;
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
public class NetLaunchInfo {
|
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType;
|
||||||
|
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet;
|
||||||
|
import org.eehouse.android.xw4.jni.CommsAddrRec;
|
||||||
|
import org.eehouse.android.xw4.jni.CurGameInfo;
|
||||||
|
import org.eehouse.android.xw4.jni.GameSummary;
|
||||||
|
import org.eehouse.android.xw4.loc.LocUtils;
|
||||||
|
|
||||||
|
public class NetLaunchInfo implements Serializable {
|
||||||
private static final String TAG = NetLaunchInfo.class.getSimpleName();
|
private static final String TAG = NetLaunchInfo.class.getSimpleName();
|
||||||
private static final String ADDRS_KEY = "ad";
|
private static final String ADDRS_KEY = "ad";
|
||||||
private static final String PHONE_KEY = "phn";
|
private static final String PHONE_KEY = "phn";
|
||||||
|
@ -108,6 +110,8 @@ public class NetLaunchInfo {
|
||||||
p2pMacAddress = bundle.getString( MultiService.P2P_MAC_ADDRESS );
|
p2pMacAddress = bundle.getString( MultiService.P2P_MAC_ADDRESS );
|
||||||
|
|
||||||
m_addrs = new CommsConnTypeSet( bundle.getInt( ADDRS_KEY ) );
|
m_addrs = new CommsConnTypeSet( bundle.getInt( ADDRS_KEY ) );
|
||||||
|
|
||||||
|
Utils.testSerialization( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static NetLaunchInfo makeFrom( Bundle bundle )
|
public static NetLaunchInfo makeFrom( Bundle bundle )
|
||||||
|
@ -317,6 +321,45 @@ public class NetLaunchInfo {
|
||||||
bundle.putInt( ADDRS_KEY, flags );
|
bundle.putInt( ADDRS_KEY, flags );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
NetLaunchInfo other = null;
|
||||||
|
boolean result = null != obj && obj instanceof NetLaunchInfo;
|
||||||
|
if ( result ) {
|
||||||
|
other = (NetLaunchInfo)obj;
|
||||||
|
result = ((null == gameName) ? (null == other.gameName)
|
||||||
|
: gameName.equals(other.gameName))
|
||||||
|
&& ((null == dict) ? (null == other.dict)
|
||||||
|
: dict.equals(other.dict))
|
||||||
|
&& lang == other.lang
|
||||||
|
&& forceChannel == other.forceChannel
|
||||||
|
&& nPlayersT == other.nPlayersT
|
||||||
|
&& nPlayersH == other.nPlayersH
|
||||||
|
&& ((null == room) ? (null == other.room)
|
||||||
|
: room.equals(other.room))
|
||||||
|
&& ((null == btName) ? (null == other.btName)
|
||||||
|
: btName.equals(other.btName))
|
||||||
|
&& ((null == btAddress) ? (null == other.btAddress)
|
||||||
|
: btAddress.equals(other.btAddress))
|
||||||
|
&& ((null == p2pMacAddress) ? (null == other.p2pMacAddress)
|
||||||
|
: p2pMacAddress.equals(other.p2pMacAddress))
|
||||||
|
&& ((null == phone) ? (null == other.phone)
|
||||||
|
: phone.equals(other.phone))
|
||||||
|
&& isGSM == other. isGSM
|
||||||
|
&& osVers == other.osVers
|
||||||
|
&& _conTypes == other._conTypes
|
||||||
|
&& gameID == other.gameID
|
||||||
|
&& ((null == m_addrs ? (null == other.m_addrs)
|
||||||
|
: m_addrs.equals(other.m_addrs)))
|
||||||
|
&& m_valid == other.m_valid
|
||||||
|
&& ((null == inviteID ? (null == other.inviteID)
|
||||||
|
: inviteID.equals(other.inviteID)))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public String makeLaunchJSON()
|
public String makeLaunchJSON()
|
||||||
{
|
{
|
||||||
String result = null;
|
String result = null;
|
||||||
|
@ -608,5 +651,7 @@ public class NetLaunchInfo {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_valid = valid;
|
m_valid = valid;
|
||||||
|
|
||||||
|
Utils.testSerialization( this );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -533,6 +533,16 @@ public class Utils {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void testSerialization( Serializable obj )
|
||||||
|
{
|
||||||
|
if ( BuildConfig.DEBUG ) {
|
||||||
|
String as64 = serializableToString64( obj );
|
||||||
|
Object other = string64ToSerializable( as64 );
|
||||||
|
Assert.assertTrue( other.equals( obj ) );
|
||||||
|
Log.d( TAG, "testSerialization(%s) worked!!!", obj );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void setFirstBootStatics( Context context )
|
private static void setFirstBootStatics( Context context )
|
||||||
{
|
{
|
||||||
if ( null == s_isFirstBootThisVersion ) {
|
if ( null == s_isFirstBootThisVersion ) {
|
||||||
|
|
|
@ -22,20 +22,21 @@ package org.eehouse.android.xw4.jni;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Random;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.eehouse.android.xw4.BuildConfig;
|
||||||
import org.eehouse.android.xw4.DictLangCache;
|
import org.eehouse.android.xw4.DictLangCache;
|
||||||
import org.eehouse.android.xw4.DictUtils;
|
import org.eehouse.android.xw4.DictUtils;
|
||||||
import org.eehouse.android.xw4.Log;
|
import org.eehouse.android.xw4.Log;
|
||||||
import org.eehouse.android.xw4.R;
|
import org.eehouse.android.xw4.R;
|
||||||
|
import org.eehouse.android.xw4.Utils;
|
||||||
import org.eehouse.android.xw4.loc.LocUtils;
|
import org.eehouse.android.xw4.loc.LocUtils;
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class CurGameInfo implements Serializable {
|
public class CurGameInfo implements Serializable {
|
||||||
private static final String TAG = CurGameInfo.class.getSimpleName();
|
private static final String TAG = CurGameInfo.class.getSimpleName();
|
||||||
|
@ -149,6 +150,8 @@ public class CurGameInfo implements Serializable {
|
||||||
for ( ii = 0; ii < MAX_NUM_PLAYERS; ++ii ) {
|
for ( ii = 0; ii < MAX_NUM_PLAYERS; ++ii ) {
|
||||||
players[ii] = new LocalPlayer( src.players[ii] );
|
players[ii] = new LocalPlayer( src.players[ii] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Utils.testSerialization( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getJSONData()
|
public String getJSONData()
|
||||||
|
@ -270,6 +273,43 @@ public class CurGameInfo implements Serializable {
|
||||||
return matter;
|
return matter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
if ( BuildConfig.DEBUG ) {
|
||||||
|
CurGameInfo other = null;
|
||||||
|
result = null != obj && obj instanceof CurGameInfo;
|
||||||
|
if ( result ) {
|
||||||
|
other = (CurGameInfo)obj;
|
||||||
|
result = dictLang == other.dictLang
|
||||||
|
&& gameID == other.gameID
|
||||||
|
&& gameSeconds == other.gameSeconds
|
||||||
|
&& nPlayers == other.nPlayers
|
||||||
|
&& boardSize == other.boardSize
|
||||||
|
&& forceChannel == other.forceChannel
|
||||||
|
&& hintsNotAllowed == other.hintsNotAllowed
|
||||||
|
&& timerEnabled == other.timerEnabled
|
||||||
|
&& allowPickTiles == other.allowPickTiles
|
||||||
|
&& allowHintRect == other.allowHintRect
|
||||||
|
&& m_smartness == other.m_smartness
|
||||||
|
&& Arrays.deepEquals( players, other.players )
|
||||||
|
&& ((null == dictName) ? (null == other.dictName)
|
||||||
|
: dictName.equals(other.dictName))
|
||||||
|
&& ((null == serverRole) ? (null == other.serverRole)
|
||||||
|
: serverRole.equals(other.serverRole))
|
||||||
|
&& ((null == phoniesAction) ? (null == other.phoniesAction)
|
||||||
|
: phoniesAction.equals(other.phoniesAction))
|
||||||
|
&& ((null == m_name) ? (null == other.m_name)
|
||||||
|
: m_name.equals(other.m_name))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result = super.equals( obj );
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public int remoteCount()
|
public int remoteCount()
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
|
@ -24,9 +24,13 @@ import android.content.Context;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.eehouse.android.xw4.BuildConfig;
|
||||||
import org.eehouse.android.xw4.DBUtils;
|
import org.eehouse.android.xw4.DBUtils;
|
||||||
import org.eehouse.android.xw4.Log;
|
import org.eehouse.android.xw4.Log;
|
||||||
import org.eehouse.android.xw4.R;
|
import org.eehouse.android.xw4.R;
|
||||||
|
@ -36,7 +40,6 @@ import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType;
|
||||||
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet;
|
import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet;
|
||||||
import org.eehouse.android.xw4.jni.CurGameInfo.DeviceRole;
|
import org.eehouse.android.xw4.jni.CurGameInfo.DeviceRole;
|
||||||
import org.eehouse.android.xw4.loc.LocUtils;
|
import org.eehouse.android.xw4.loc.LocUtils;
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
/** Info we want to access when the game's closed that's not available
|
/** Info we want to access when the game's closed that's not available
|
||||||
* in CurGameInfo
|
* in CurGameInfo
|
||||||
|
@ -98,6 +101,55 @@ public class GameSummary implements Serializable {
|
||||||
return null != relayID;
|
return null != relayID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
if ( BuildConfig.DEBUG ) {
|
||||||
|
result = null != obj && obj instanceof GameSummary;
|
||||||
|
if ( result ) {
|
||||||
|
GameSummary other = (GameSummary)obj;
|
||||||
|
result = lastMoveTime == other.lastMoveTime
|
||||||
|
&& nMoves == other.nMoves
|
||||||
|
&& turn == other.turn
|
||||||
|
&& turnIsLocal == other.turnIsLocal
|
||||||
|
&& nPlayers == other.nPlayers
|
||||||
|
&& missingPlayers == other.missingPlayers
|
||||||
|
&& gameOver == other.gameOver
|
||||||
|
&& seed == other.seed
|
||||||
|
&& modtime == other.modtime
|
||||||
|
&& gameID == other.gameID
|
||||||
|
&& dictLang == other.dictLang
|
||||||
|
&& nPacketsPending == other.nPacketsPending
|
||||||
|
&& ((null == scores) ? (null == other.scores)
|
||||||
|
: scores.equals(other.scores))
|
||||||
|
&& Arrays.deepEquals( m_players, other.m_players )
|
||||||
|
&& ((null == conTypes) ? (null == other.conTypes)
|
||||||
|
: conTypes.equals(other.conTypes))
|
||||||
|
&& ((null == roomName) ? (null == other.roomName)
|
||||||
|
: roomName.equals(other.roomName))
|
||||||
|
&& ((null == relayID) ? (null == other.relayID)
|
||||||
|
: relayID.equals(other.relayID))
|
||||||
|
&& Arrays.deepEquals( remoteDevs, other.remoteDevs )
|
||||||
|
&& ((null == serverRole) ? (null == other.serverRole)
|
||||||
|
: serverRole.equals(other.serverRole))
|
||||||
|
&& ((null == m_giFlags) ? (null == other.m_giFlags)
|
||||||
|
: m_giFlags.equals(other.m_giFlags))
|
||||||
|
&& ((null == m_playersSummary) ? (null == other.m_playersSummary)
|
||||||
|
: m_playersSummary.equals(other.m_playersSummary))
|
||||||
|
&& ((null == m_gi) ? (null == other.m_gi)
|
||||||
|
: m_gi.equals(other.m_gi))
|
||||||
|
&& Arrays.deepEquals( m_remotePhones, other.m_remotePhones )
|
||||||
|
&& ((null == m_extras) ? (null == other.m_extras)
|
||||||
|
: m_extras.equals(other.m_extras))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result = super.equals( obj );
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public String summarizePlayers()
|
public String summarizePlayers()
|
||||||
{
|
{
|
||||||
String result;
|
String result;
|
||||||
|
|
|
@ -26,7 +26,9 @@ import java.io.Serializable;
|
||||||
|
|
||||||
import junit.framework.Assert;
|
import junit.framework.Assert;
|
||||||
|
|
||||||
|
import org.eehouse.android.xw4.BuildConfig;
|
||||||
import org.eehouse.android.xw4.R;
|
import org.eehouse.android.xw4.R;
|
||||||
|
import org.eehouse.android.xw4.Utils;
|
||||||
|
|
||||||
public class LocalPlayer implements Serializable {
|
public class LocalPlayer implements Serializable {
|
||||||
public String name;
|
public String name;
|
||||||
|
@ -43,6 +45,8 @@ public class LocalPlayer implements Serializable {
|
||||||
String fmt = context.getString( R.string.player_fmt);
|
String fmt = context.getString( R.string.player_fmt);
|
||||||
name = String.format( fmt, num + 1 );
|
name = String.format( fmt, num + 1 );
|
||||||
password = "";
|
password = "";
|
||||||
|
|
||||||
|
// Utils.testSerialization( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
public LocalPlayer( final LocalPlayer src )
|
public LocalPlayer( final LocalPlayer src )
|
||||||
|
@ -53,6 +57,34 @@ public class LocalPlayer implements Serializable {
|
||||||
password = src.password;
|
password = src.password;
|
||||||
dictName = src.dictName;
|
dictName = src.dictName;
|
||||||
secondsUsed = src.secondsUsed;
|
secondsUsed = src.secondsUsed;
|
||||||
|
|
||||||
|
// Utils.testSerialization( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals( Object obj )
|
||||||
|
{
|
||||||
|
boolean result;
|
||||||
|
if ( BuildConfig.DEBUG ) {
|
||||||
|
LocalPlayer other = null;
|
||||||
|
result = null != obj && obj instanceof LocalPlayer;
|
||||||
|
if ( result ) {
|
||||||
|
other = (LocalPlayer)obj;
|
||||||
|
result = secondsUsed == other.secondsUsed
|
||||||
|
&& robotIQ == other.robotIQ
|
||||||
|
&& isLocal == other.isLocal
|
||||||
|
&& ((null == name) ? (null == other.name)
|
||||||
|
: name.equals(other.name))
|
||||||
|
&& ((null == password) ? (null == other.password)
|
||||||
|
: password.equals(other.password))
|
||||||
|
&& ((null == dictName) ? (null == other.dictName)
|
||||||
|
: dictName.equals(other.dictName))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result = super.equals( obj );
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRobot()
|
public boolean isRobot()
|
||||||
|
|
Loading…
Add table
Reference in a new issue