From c7a635285cb88178397179b60d8fd016bd97db72 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 14 Dec 2017 06:47:03 -0800 Subject: [PATCH] change text and names around native-vs-web choice The plan's to use the native relay protocol first, then to fall back to the slower but more reliable (esp. on paranoid/block-everything wifi networks) webAPI. This is the name change without behavior change (except that the native kill() to report deleted games is gone.) --- .../org/eehouse/android/xw4/NetUtils.java | 62 +------------------ .../org/eehouse/android/xw4/RelayService.java | 12 ++-- .../java/org/eehouse/android/xw4/XWPrefs.java | 4 +- .../app/src/main/res/values/common_rsrc.xml | 2 +- .../app/src/main/res/values/strings.xml | 4 +- .../android/app/src/main/res/xml/xwprefs.xml | 6 +- 6 files changed, 15 insertions(+), 75 deletions(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java index fa8e4df5c..acf6ac4be 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java @@ -90,16 +90,8 @@ public class NetUtils { m_obits = obits; } + @Override public void run() - { - if ( XWPrefs.getPreferWebAPI( m_context ) ) { - runViaWeb(); - } else { - runWithProxySocket(); - } - } - - private void runViaWeb() { try { JSONArray params = new JSONArray(); @@ -110,69 +102,19 @@ public class NetUtils { params.put( one ); } HttpURLConnection conn = makeHttpRelayConn( m_context, "kill" ); - Log.d( TAG, "runViaWeb(): kill params: %s", params.toString() ); String resStr = runConn( conn, params ); - Log.d( TAG, "runViaWeb(): kill => %s", resStr ); + Log.d( TAG, "runViaWeb(): kill(%s) => %s", params, resStr ); if ( null != resStr ) { JSONObject result = new JSONObject( resStr ); if ( 0 == result.optInt( "err", -1 ) ) { DBUtils.clearObits( m_context, m_obits ); } - } else { - Log.e( TAG, "runViaWeb(): KILL => null" ); } } catch ( JSONException ex ) { Assert.assertFalse( BuildConfig.DEBUG ); } } - - private void runWithProxySocket() - { - Socket socket = makeProxySocket( m_context, 10000 ); - if ( null != socket ) { - int strLens = 0; - int nObits = 0; - for ( int ii = 0; ii < m_obits.length; ++ii ) { - String relayID = m_obits[ii].m_relayID; - if ( null != relayID ) { - ++nObits; - strLens += relayID.length() + 1; // 1 for /n - } - } - - try { - DataOutputStream outStream = - new DataOutputStream( socket.getOutputStream() ); - outStream.writeShort( 2 + 2 + (2*nObits) + strLens ); - outStream.writeByte( NetUtils.PROTOCOL_VERSION ); - outStream.writeByte( NetUtils.PRX_DEVICE_GONE ); - outStream.writeShort( m_obits.length ); - - for ( int ii = 0; ii < m_obits.length; ++ii ) { - String relayID = m_obits[ii].m_relayID; - if ( null != relayID ) { - outStream.writeShort( m_obits[ii].m_seed ); - outStream.writeBytes( relayID ); - outStream.write( '\n' ); - } - } - - outStream.flush(); - - DataInputStream dis = - new DataInputStream( socket.getInputStream() ); - short resLen = dis.readShort(); - socket.close(); - - if ( resLen == 0 ) { - DBUtils.clearObits( m_context, m_obits ); - } - } catch ( java.io.IOException ioe ) { - Log.ex( TAG, ioe ); - } - } - } } public static void informOfDeaths( Context context ) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java index d9c49e57f..f4b7ac714 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java @@ -640,7 +640,7 @@ public class RelayService extends XWService } int sentLen; - if ( XWPrefs.getPreferWebAPI( RelayService.this ) ) { + if ( XWPrefs.getSkipToWebAPI( RelayService.this ) ) { sentLen = sendViaWeb( dataList ); } else { sentLen = sendViaUDP( dataList ); @@ -715,9 +715,7 @@ public class RelayService extends XWService try { DatagramPacket udpPacket = new DatagramPacket( data, data.length ); m_UDPSocket.send( udpPacket ); - if ( BuildConfig.DEBUG ) { - Assert.assertFalse( XWPrefs.getPreferWebAPI( this ) ); - } + sentLen += udpPacket.getLength(); noteSent( packet ); getOut = false; @@ -746,7 +744,7 @@ public class RelayService extends XWService { int pid = packet.m_packetID; Log.d( TAG, "Sent [udp?] packet: cmd=%s, id=%d", - packet.m_cmd.toString(), pid); + packet.m_cmd.toString(), pid ); if ( packet.m_cmd != XWRelayReg.XWPDEV_ACK ) { synchronized( s_packetsSent ) { s_packetsSent.put( pid, packet ); @@ -1188,7 +1186,7 @@ public class RelayService extends XWService @Override protected Void doInBackground( Void... ignored ) { - Assert.assertFalse( XWPrefs.getPreferWebAPI( m_context ) ); + Assert.assertFalse( XWPrefs.getSkipToWebAPI( m_context ) ); // format: total msg lenth: 2 // number-of-relayIDs: 2 // for-each-relayid: relayid + '\n': varies @@ -1237,7 +1235,7 @@ public class RelayService extends XWService // Now open a real socket, write size and proto, and // copy in the formatted buffer - Assert.assertFalse( XWPrefs.getPreferWebAPI( m_context ) ); + Assert.assertFalse( XWPrefs.getSkipToWebAPI( m_context ) ); Socket socket = NetUtils.makeProxySocket( m_context, 8000 ); if ( null != socket ) { DataOutputStream outStream = diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java index 813fcede8..6747f05a2 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java @@ -120,9 +120,9 @@ public class XWPrefs { return getPrefsString( context, R.string.key_relay_url ); } - public static boolean getPreferWebAPI( Context context ) + public static boolean getSkipToWebAPI( Context context ) { - return getPrefsBoolean( context, R.string.key_relay_via_http, false ); + return getPrefsBoolean( context, R.string.key_relay_via_http_first, false ); } public static int getDefaultProxyPort( Context context ) diff --git a/xwords4/android/app/src/main/res/values/common_rsrc.xml b/xwords4/android/app/src/main/res/values/common_rsrc.xml index 89bda9697..50ab6a10b 100644 --- a/xwords4/android/app/src/main/res/values/common_rsrc.xml +++ b/xwords4/android/app/src/main/res/values/common_rsrc.xml @@ -36,7 +36,7 @@ key_relay_host key_relay_port2 - key_relay_via_http + key_relay_via_http_first key_update_url key_relay_url key_update_prerel diff --git a/xwords4/android/app/src/main/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml index 48312a6ca..cee42c6cd 100644 --- a/xwords4/android/app/src/main/res/values/strings.xml +++ b/xwords4/android/app/src/main/res/values/strings.xml @@ -2486,8 +2486,8 @@ For debugging You should never need these... Relay host - Use Web APIs - (instead of custom protocol to ports below) + Use Web APIs first + (instead of as fallback for custom protocol) Wordlist download URL Enable logging (release builds only) diff --git a/xwords4/android/app/src/main/res/xml/xwprefs.xml b/xwords4/android/app/src/main/res/xml/xwprefs.xml index 1ede6a0b9..43dc96048 100644 --- a/xwords4/android/app/src/main/res/xml/xwprefs.xml +++ b/xwords4/android/app/src/main/res/xml/xwprefs.xml @@ -426,9 +426,9 @@ android:defaultValue="@string/default_host" /> -