diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java index d04206467..20cb90980 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java @@ -1076,7 +1076,8 @@ public class BTService extends XWService { long[] rowids = DBUtils.getRowIDsFor( BTService.this, nli.gameID() ); if ( null == rowids || 0 == rowids.length ) { CommsAddrRec addr = nli.makeAddrRec( BTService.this ); - long rowid = GameUtils.makeNewMultiGame( BTService.this, nli, m_btMsgSink ); + long rowid = GameUtils.makeNewMultiGame( BTService.this, nli, + m_btMsgSink, null ); if ( DBUtils.ROWID_NOTFOUND == rowid ) { result = BTCmd.INVITE_FAILED; } else { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java index f17a8a766..171a6486a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java @@ -463,18 +463,20 @@ public class GameUtils { public static long makeNewMultiGame( Context context, NetLaunchInfo nli ) { - return makeNewMultiGame( context, nli, null ); + return makeNewMultiGame( context, nli, (MultiMsgSink)null, + (UtilCtxt)null ); } public static long makeNewMultiGame( Context context, NetLaunchInfo nli, - MultiMsgSink sink ) + MultiMsgSink sink, UtilCtxt util ) { DbgUtils.logf( "makeNewMultiGame(nli=%s)", nli.toString() ); CommsAddrRec addr = nli.makeAddrRec( context ); - return makeNewMultiGame( context, sink, DBUtils.GROUPID_UNSPEC, addr, - new int[] {nli.lang}, new String[] { nli.dict }, - nli.nPlayersT, nli.nPlayersH, nli.forceChannel, + return makeNewMultiGame( context, sink, util, DBUtils.GROUPID_UNSPEC, + addr, new int[] {nli.lang}, + new String[] { nli.dict }, nli.nPlayersT, + nli.nPlayersH, nli.forceChannel, nli.inviteID(), nli.gameID(), nli.gameName, false ); } @@ -505,12 +507,14 @@ public class GameUtils { CommsAddrRec addr = new CommsAddrRec( addrSet ); addr.populate( context ); int forceChannel = 0; - return makeNewMultiGame( context, null, groupID, addr, lang, dict, 2, 1, + return makeNewMultiGame( context, (MultiMsgSink)null, (UtilCtxt)null, + groupID, addr, lang, dict, 2, 1, forceChannel, inviteID, 0, gameName, true ); } private static long makeNewMultiGame( Context context, MultiMsgSink sink, - long groupID, CommsAddrRec addr, + UtilCtxt util, long groupID, + CommsAddrRec addr, int[] lang, String[] dict, int nPlayersT, int nPlayersH, int forceChannel, String inviteID, @@ -543,7 +547,7 @@ public class GameUtils { if ( DBUtils.ROWID_NOTFOUND != rowid ) { GameLock lock = new GameLock( rowid, true ).lock(); - applyChanges( context, sink, gi, addr, inviteID, lock, false ); + applyChanges( context, sink, gi, util, addr, inviteID, lock, false ); lock.unlock(); } @@ -595,9 +599,10 @@ public class GameUtils { addr = new CommsAddrRec( null, null ); } String inviteID = GameUtils.formatGameID( gameID ); - return makeNewMultiGame( context, sink, groupID, addr, langa, dicta, - nPlayersT, nPlayersH, forceChannel, - inviteID, gameID, gameName, isHost ); + return makeNewMultiGame( context, sink, (UtilCtxt)null, groupID, addr, + langa, dicta, nPlayersT, nPlayersH, + forceChannel, inviteID, gameID, gameName, + isHost ); } public static void launchEmailInviteActivity( Activity activity, NetLaunchInfo nli ) @@ -955,13 +960,14 @@ public class GameUtils { CommsAddrRec car, String inviteID, GameLock lock, boolean forceNew ) { - applyChanges( context, null, gi, car, inviteID, lock, forceNew ); + applyChanges( context, (MultiMsgSink)null, gi, (UtilCtxt)null, car, + inviteID, lock, forceNew ); } public static void applyChanges( Context context, MultiMsgSink sink, - CurGameInfo gi, CommsAddrRec car, - String inviteID, GameLock lock, - boolean forceNew ) + CurGameInfo gi, UtilCtxt util, + CommsAddrRec car, String inviteID, + GameLock lock, boolean forceNew ) { // This should be a separate function, commitChanges() or // somesuch. But: do we have a way to save changes to a gi @@ -988,7 +994,9 @@ public class GameUtils { } if ( forceNew || !madeGame ) { - XwJNI.game_makeNewGame( gamePtr, gi, JNIUtilsImpl.get(context), + XwJNI.game_makeNewGame( gamePtr, gi, util, + JNIUtilsImpl.get(context), + (DrawCtx)null, cp, sink, dictNames, pairs.m_bytes, pairs.m_paths, langName ); } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java index 40d78301d..ccbfb481d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java @@ -1,6 +1,6 @@ /* -*- compile-command: "find-and-ant.sh debug install"; -*- */ /* - * Copyright 2010 - 2012 by Eric House (xwords@eehouse.org). All + * Copyright 2010 - 2015 by Eric House (xwords@eehouse.org). All * rights reserved. * * This program is free software; you can redistribute it and/or @@ -251,8 +251,9 @@ public class RelayService extends XWService // connect to the inviting game, because it needs to be open to // make the initial connection -- needs access to util. That // should be fixable -- eventually. - RelayMsgSink sink = null; // new RelayMsgSink(); - long rowid = GameUtils.makeNewMultiGame( this, nli, sink ); + RelayMsgSink sink = new RelayMsgSink(); + UtilCtxt util = new UtilCtxtImpl( this ); + long rowid = GameUtils.makeNewMultiGame( this, nli, sink, util ); if ( DBUtils.ROWID_NOTFOUND != rowid ) { if ( null != nli.gameName && 0 < nli.gameName.length() ) { DBUtils.setName( this, rowid, nli.gameName ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java index 923d36078..fd8435fc1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java @@ -630,7 +630,7 @@ public class SMSService extends XWService { private void makeForInvite( String phone, NetLaunchInfo nli ) { SMSMsgSink sink = new SMSMsgSink( this ); - long rowid = GameUtils.makeNewMultiGame( this, nli, sink ); + long rowid = GameUtils.makeNewMultiGame( this, nli, sink, null ); postNotification( phone, nli.gameID() ); ackInvite( phone, nli.gameID() ); }