move interface; add some logging.

This commit is contained in:
Andy2 2010-10-16 10:49:25 -07:00
parent 91e95eb48b
commit a82051739b
3 changed files with 47 additions and 12 deletions

View file

@ -393,5 +393,6 @@
<string name="button_reply">Reply</string>
<string name="compose_chat">Message for all devices</string>
<string name="notify_title">notify_title</string>
<string name="notify_title">Crosswords data</string>
<string name="notify_body">New game data available on relay</string>
</resources>

View file

@ -32,32 +32,58 @@ import java.util.HashSet;
import org.eehouse.android.xw4.jni.CommonPrefs;
public class DispatchNotify extends Activity {
public interface HandleRelaysIface {
void HandleRelaysIDs( final String[] relayIDs );
}
private static HashSet<Activity> s_running = new HashSet<Activity>();
private static HandleRelaysIface s_handler;
@Override
protected void onCreate( Bundle savedInstanceState )
{
Utils.logf( "DispatchNotify.onCreate()" );
super.onCreate( savedInstanceState );
if ( s_running.isEmpty() ) {
Intent intent = getIntent();
String[] relayIDs =
intent.getStringArrayExtra( getString(R.string.relayids_extra) );
if ( null != s_handler ) {
Utils.logf( "calling s_handler" );
s_handler.HandleRelaysIDs( relayIDs );
} else if ( s_running.isEmpty() ) {
Utils.logf( "DispatchNotify: nothing running" );
startActivity( new Intent( this, GamesList.class ) );
} else {
Utils.logf( "DispatchNotify: something running" );
Intent intent = getIntent();
String[] relayIDs =
intent.getStringArrayExtra(getString(R.string.relayids_extra));
String ids = "new moves available; need to inval";
for ( String id : relayIDs ) {
ids += " " + id ;
}
Toast.makeText( this, ids, Toast.LENGTH_SHORT).show();
// Toast.makeText( this, ids, Toast.LENGTH_SHORT).show();
// for ( Activity activity : s_running ) {
// if ( activity instanceof DispatchNotify.HandleRelaysIface ) {
// DispatchNotify.HandleRelaysIface iface =
// (DispatchNotify.HandleRelaysIface)activity;
// iface.HandleRelaysIDs( relayIDs );
// }
// }
}
finish();
}
@Override
protected void onNewIntent( Intent intent )
{
Utils.logf( "DispatchNotify.onNewIntent() called" );
}
public static void SetRunning( Activity running )
{
s_running.add( running );
@ -68,4 +94,8 @@ public class DispatchNotify extends Activity {
s_running.remove( running );
}
public static void SetRelayIDsHandler( HandleRelaysIface iface )
{
s_handler = iface;
}
}

View file

@ -47,7 +47,7 @@ import junit.framework.Assert;
import org.eehouse.android.xw4.jni.*;
public class GamesList extends XWListActivity
implements RelayService.HandleRelaysIface {
implements DispatchNotify.HandleRelaysIface {
private static final int WARN_NODICT = Utils.DIALOG_LAST + 1;
private static final int CONFIRM_DELETE_ALL = Utils.DIALOG_LAST + 2;
@ -140,29 +140,33 @@ public class GamesList extends XWListActivity
FirstRunDialog.show( this, false );
RelayActivity.RestartTimer( this );
RelayReceiver.RestartTimer( this );
}
@Override
protected void onStart()
{
super.onStart();
RelayService.SetRelayIDsHandler( this );
DispatchNotify.SetRelayIDsHandler( this );
}
@Override
protected void onStop()
{
super.onStop();
RelayService.SetRelayIDsHandler( null );
DispatchNotify.SetRelayIDsHandler( null );
}
// RelayService.SetRelayIDsHandler interface
// DispatchNotify.HandleRelaysIface interface
public void HandleRelaysIDs( final String[] relayIDs )
{
m_handler.post( new Runnable() {
public void run() {
if ( null != relayIDs && relayIDs.length > 0 ) {
if ( null == relayIDs ) {
Utils.logf( "relayIDs null" );
} else if ( relayIDs.length == 0 ) {
Utils.logf( "relayIDs empty" );
} else {
for ( String relayID : relayIDs ) {
Utils.logf( "HandleRelaysIDs: got %s", relayID );
String path = DBUtils.getPathFor( GamesList.this,