add interface to ConnStatusHandler as part of moving UI-based response

into Activity.
This commit is contained in:
Eric House 2013-08-10 14:25:28 -07:00
parent dbc1bb1cd5
commit 758c6a6c5c
3 changed files with 41 additions and 14 deletions

View file

@ -57,7 +57,8 @@ import org.eehouse.android.xw4.jni.CurGameInfo.DeviceRole;
public class BoardActivity extends XWActivity public class BoardActivity extends XWActivity
implements TransportProcs.TPMsgHandler, View.OnClickListener, implements TransportProcs.TPMsgHandler, View.OnClickListener,
DictImportActivity.DownloadFinishedListener { DictImportActivity.DownloadFinishedListener,
ConnStatusHandler.ConnStatusCBacks {
public static final String INTENT_KEY_CHAT = "chat"; public static final String INTENT_KEY_CHAT = "chat";
@ -560,7 +561,7 @@ public class BoardActivity extends XWActivity
protected void onPause() protected void onPause()
{ {
m_handler = null; m_handler = null;
ConnStatusHandler.setHandler( null ); ConnStatusHandler.setHandler( null, null );
waitCloseGame( true ); waitCloseGame( true );
super.onPause(); super.onPause();
} }
@ -576,12 +577,7 @@ public class BoardActivity extends XWActivity
loadGame(); loadGame();
Handler handler = new Handler() { ConnStatusHandler.setHandler( m_handler, this );
public void handleMessage( Message msg ) {
m_view.invalidate();
}
};
ConnStatusHandler.setHandler( handler );
} }
@Override @Override
@ -1127,6 +1123,28 @@ public class BoardActivity extends XWActivity
} }
} }
//////////////////////////////////////////////////
// ConnStatusHandler.ConnStatusCBacks
//////////////////////////////////////////////////
public void invalidateParent()
{
runOnUiThread(new Runnable() {
public void run() {
m_view.invalidate();
}
});
}
public void onStatusClicked()
{
final String msg = ConnStatusHandler.getStatusText( this, m_connType );
post( new Runnable() {
public void run() {
showOKOnlyDialog( msg );
}
} );
}
private void setGotGameDict( String getDict ) private void setGotGameDict( String getDict )
{ {
m_jniThread.setSaveDict( getDict ); m_jniThread.setSaveDict( getDict );

View file

@ -211,9 +211,7 @@ public class BoardView extends View implements DrawCtx, BoardHandler,
break; break;
case MotionEvent.ACTION_UP: case MotionEvent.ACTION_UP:
if ( ConnStatusHandler.handleUp( xx, yy ) ) { if ( ConnStatusHandler.handleUp( xx, yy ) ) {
String msg = ConnStatusHandler.getStatusText( m_context, // do nothing
m_connType );
m_parent.showOKOnlyDialog( msg );
} else { } else {
m_jniThread.handle( JNIThread.JNICmd.CMD_PEN_UP, xx, yy ); m_jniThread.handle( JNIThread.JNICmd.CMD_PEN_UP, xx, yy );
} }

View file

@ -43,6 +43,12 @@ import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType;
import org.eehouse.android.xw4.jni.XwJNI; import org.eehouse.android.xw4.jni.XwJNI;
public class ConnStatusHandler { public class ConnStatusHandler {
public interface ConnStatusCBacks {
public void invalidateParent();
public void onStatusClicked();
}
// private static final int GREEN = 0x7F00FF00; // private static final int GREEN = 0x7F00FF00;
// private static final int RED = 0x7FFF0000; // private static final int RED = 0x7FFF0000;
private static final int GREEN = 0xFF00FF00; private static final int GREEN = 0xFF00FF00;
@ -54,6 +60,7 @@ public class ConnStatusHandler {
private static Rect s_rect; private static Rect s_rect;
private static boolean s_downOnMe = false; private static boolean s_downOnMe = false;
private static Handler s_handler; private static Handler s_handler;
private static ConnStatusCBacks s_cbacks;
private static Paint s_fillPaint = new Paint( Paint.ANTI_ALIAS_FLAG ); private static Paint s_fillPaint = new Paint( Paint.ANTI_ALIAS_FLAG );
private static boolean[] s_showSuccesses = { false, false }; private static boolean[] s_showSuccesses = { false, false };
@ -134,9 +141,10 @@ public class ConnStatusHandler {
s_rect = new Rect( left, top, right, bottom ); s_rect = new Rect( left, top, right, bottom );
} }
public static void setHandler( Handler handler ) public static void setHandler( Handler handler, ConnStatusCBacks cbacks )
{ {
s_handler = handler; s_handler = handler;
s_cbacks = cbacks;
} }
public static boolean handleDown( int xx, int yy ) public static boolean handleDown( int xx, int yy )
@ -148,6 +156,9 @@ public class ConnStatusHandler {
public static boolean handleUp( int xx, int yy ) public static boolean handleUp( int xx, int yy )
{ {
boolean result = s_downOnMe && s_rect.contains( xx, yy ); boolean result = s_downOnMe && s_rect.contains( xx, yy );
if ( result && null != s_cbacks ) {
s_cbacks.onStatusClicked();
}
s_downOnMe = false; s_downOnMe = false;
return result; return result;
} }
@ -210,8 +221,8 @@ public class ConnStatusHandler {
private static void invalidateParent() private static void invalidateParent()
{ {
if ( null != s_handler ) { if ( null != s_cbacks ) {
Message.obtain( s_handler ).sendToTarget(); s_cbacks.invalidateParent();
} }
} }