diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java index b3a1b5d68..c8eb9826d 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java @@ -169,13 +169,32 @@ public class BoardDelegate extends DelegateBase private boolean alertOrderAt( StartAlertOrder ord ) { - return m_mySIS.mAlertOrder == ord; + boolean result = m_mySIS.mAlertOrder == ord; + Log.d( TAG, "alertOrderAt(%s) => %b", ord, result ); + return result; } private void alertOrderIncrIfAt( StartAlertOrder ord ) { + Log.d( TAG, "alertOrderIncrIfAt(%s)", ord ); if ( alertOrderAt( ord ) ) { m_mySIS.mAlertOrder = ord.values()[ord.ordinal() + 1]; + doNext(); + } + } + + private void doNext() + { + switch ( m_mySIS.mAlertOrder ) { + case NBS_PERMS: + askNBSPermissions(); + break; + case NO_MEANS: + warnIfNoTransport(); + break; + case INVITE: + showInviteAlertIf(); + break; } } @@ -1016,7 +1035,7 @@ public class BoardDelegate extends DelegateBase @Override public boolean onPosButton( Action action, final Object[] params ) { - // Log.d( TAG, "onPosButton(%s, %s)", action, DbgUtils.toStr( params ) ); + Log.d( TAG, "onPosButton(%s, %s)", action, DbgUtils.toStr( params ) ); boolean handled = true; JNICmd cmd = null; switch ( action ) { @@ -1169,6 +1188,7 @@ public class BoardDelegate extends DelegateBase @Override public boolean onNegButton( Action action, Object[] params ) { + Log.d( TAG, "onNegButton(%s, %s)", action, DbgUtils.toStr( params ) ); boolean handled = true; switch ( action ) { case ENABLE_RELAY_DO_OR: @@ -1206,6 +1226,7 @@ public class BoardDelegate extends DelegateBase @Override public boolean onDismissed( Action action, Object[] params ) { + Log.d( TAG, "onDismissed(%s, %s)", action, DbgUtils.toStr( params ) ); boolean handled = true; switch ( action ) { case ENABLE_RELAY_DO_OR: @@ -1232,6 +1253,10 @@ public class BoardDelegate extends DelegateBase finish(); break; + case DROP_SMS_ACTION: + alertOrderIncrIfAt( StartAlertOrder.NBS_PERMS ); + break; + default: handled = false; } diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java index 0042caa9f..5a2617774 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java @@ -387,8 +387,9 @@ public class DlgDelegate { } private void showConfirmThen( int nakey, Action onNA, String msg, - int posButton, int negButton, Action action, - int titleId, ActionPair more, Object[] params ) + int posButton, int negButton, + final Action action, int titleId, + ActionPair more, final Object[] params ) { if ( 0 == nakey || ! XWPrefs.getPrefsBoolean( m_activity, nakey, false ) ) { @@ -404,6 +405,13 @@ public class DlgDelegate { .setPrefsKey( nakey ) ; m_dlgt.show( state ); + } else if ( Action.SKIP_CALLBACK != action ) { + post( new Runnable() { + public void run() { + XWActivity xwact = (XWActivity)m_activity; + xwact.onDismissed( action, params ); + } + }); } }