mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-02-04 20:46:28 +01:00
start/stop relay service when pref changed; warn user when opens
relay-connected game and relay is disabled.
This commit is contained in:
parent
6ef9c60cb9
commit
7d47098947
5 changed files with 37 additions and 14 deletions
|
@ -2495,6 +2495,14 @@ public class BoardDelegate extends DelegateBase
|
||||||
Action.ENABLE_SMS_ASK );
|
Action.ENABLE_SMS_ASK );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ( m_connTypes.contains( CommsConnType.COMMS_CONN_RELAY ) ) {
|
||||||
|
if ( !RelayService.relayEnabled( m_activity ) ) {
|
||||||
|
showConfirmThen( R.string.warn_relay_disabled,
|
||||||
|
R.string.button_enable_relay,
|
||||||
|
R.string.button_later,
|
||||||
|
Action.ENABLE_RELAY_DO );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void trySendChats()
|
private void trySendChats()
|
||||||
|
|
|
@ -638,7 +638,7 @@ public class DelegateBase implements DlgClickNotify,
|
||||||
BTService.enable();
|
BTService.enable();
|
||||||
break;
|
break;
|
||||||
case ENABLE_RELAY_DO:
|
case ENABLE_RELAY_DO:
|
||||||
RelayService.enable( m_activity );
|
RelayService.setEnabled( m_activity, true );
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Assert.fail();
|
Assert.fail();
|
||||||
|
|
|
@ -122,7 +122,6 @@ public class DlgDelegate {
|
||||||
ENABLE_SMS_DO,
|
ENABLE_SMS_DO,
|
||||||
ENABLE_BT_DO,
|
ENABLE_BT_DO,
|
||||||
ENABLE_RELAY_DO,
|
ENABLE_RELAY_DO,
|
||||||
__LAST
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ActionPair {
|
public static class ActionPair {
|
||||||
|
|
|
@ -59,6 +59,7 @@ public class PrefsDelegate extends DelegateBase
|
||||||
R.string.key_force_radio,
|
R.string.key_force_radio,
|
||||||
R.string.key_disable_nag,
|
R.string.key_disable_nag,
|
||||||
R.string.key_disable_nag_solo,
|
R.string.key_disable_nag_solo,
|
||||||
|
R.string.key_disable_relay,
|
||||||
};
|
};
|
||||||
private static Map<String, Integer> s_keysHash = null;
|
private static Map<String, Integer> s_keysHash = null;
|
||||||
|
|
||||||
|
@ -226,6 +227,9 @@ public class PrefsDelegate extends DelegateBase
|
||||||
case R.string.key_disable_nag_solo:
|
case R.string.key_disable_nag_solo:
|
||||||
NagTurnReceiver.resetNagsDisabled( m_activity );
|
NagTurnReceiver.resetNagsDisabled( m_activity );
|
||||||
break;
|
break;
|
||||||
|
case R.string.key_disable_relay:
|
||||||
|
RelayService.enabledChanged( m_activity );
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Assert.fail();
|
Assert.fail();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -80,6 +80,7 @@ public class RelayService extends XWService
|
||||||
UPGRADE,
|
UPGRADE,
|
||||||
INVITE,
|
INVITE,
|
||||||
GOT_INVITE,
|
GOT_INVITE,
|
||||||
|
STOP,
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String MSGS_ARR = "MSGS_ARR";
|
private static final String MSGS_ARR = "MSGS_ARR";
|
||||||
|
@ -162,8 +163,18 @@ public class RelayService extends XWService
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void enable( Context context ) {
|
public static void enabledChanged( Context context ) {
|
||||||
XWPrefs.setPrefsBoolean( context, R.string.key_disable_relay, false );
|
boolean enabled = relayEnabled( context );
|
||||||
|
if ( enabled ) {
|
||||||
|
startService( context );
|
||||||
|
} else {
|
||||||
|
stopService( context );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setEnabled( Context context, boolean enabled ) {
|
||||||
|
XWPrefs.setPrefsBoolean( context, R.string.key_disable_relay, enabled );
|
||||||
|
enabledChanged( context );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startService( Context context )
|
public static void startService( Context context )
|
||||||
|
@ -173,6 +184,12 @@ public class RelayService extends XWService
|
||||||
context.startService( intent );
|
context.startService( intent );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void stopService( Context context )
|
||||||
|
{
|
||||||
|
Intent intent = getIntentTo( context, MsgCmds.STOP );
|
||||||
|
context.startService( intent );
|
||||||
|
}
|
||||||
|
|
||||||
public static void inviteRemote( Context context, int destDevID,
|
public static void inviteRemote( Context context, int destDevID,
|
||||||
String relayID, NetLaunchInfo nli )
|
String relayID, NetLaunchInfo nli )
|
||||||
{
|
{
|
||||||
|
@ -439,6 +456,10 @@ public class RelayService extends XWService
|
||||||
}
|
}
|
||||||
RelayReceiver.setTimer( this );
|
RelayReceiver.setTimer( this );
|
||||||
break;
|
break;
|
||||||
|
case STOP:
|
||||||
|
stopThreads();
|
||||||
|
stopSelf();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Assert.fail();
|
Assert.fail();
|
||||||
}
|
}
|
||||||
|
@ -489,19 +510,10 @@ public class RelayService extends XWService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void setupNotification( long rowid )
|
|
||||||
// {
|
|
||||||
// Intent intent = GamesListDelegate.makeRowidIntent( this, rowid );
|
|
||||||
// String msg = LocUtils.getString( this, R.string.notify_body_fmt,
|
|
||||||
// GameUtils.getName( this, rowid ) );
|
|
||||||
// Utils.postNotification( this, intent, R.string.notify_title,
|
|
||||||
// msg, (int)rowid );
|
|
||||||
// }
|
|
||||||
|
|
||||||
private boolean startFetchThreadIf()
|
private boolean startFetchThreadIf()
|
||||||
{
|
{
|
||||||
// DbgUtils.logf( "startFetchThreadIf()" );
|
// DbgUtils.logf( "startFetchThreadIf()" );
|
||||||
boolean handled = !XWApp.UDP_ENABLED;
|
boolean handled = relayEnabled( this ) && !XWApp.UDP_ENABLED;
|
||||||
if ( handled && null == m_fetchThread ) {
|
if ( handled && null == m_fetchThread ) {
|
||||||
m_fetchThread = new Thread( null, new Runnable() {
|
m_fetchThread = new Thread( null, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue