From b0cf3a795c4f0967a3f6be835f3dbc0c0f7d9b01 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jul 2018 22:26:26 -0700 Subject: [PATCH 1/8] fix NPE by inspection fix crash reported by user. Looks like a race on the way out so check for null first. --- .../main/java/org/eehouse/android/xw4/DictBrowseDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java index 0bc9e1578..5a165bcf1 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java @@ -279,7 +279,7 @@ public class DictBrowseDelegate extends DelegateBase { TextView text = (TextView)view; // null text seems to have generated at least one google play report - if ( null != text ) { + if ( null != text && null != m_browseState ) { int newval = Integer.parseInt( text.getText().toString() ); switch ( parent.getId() ) { case R.id.wordlen_min: From 7cb00b62668b7ca22cc46c6e452f7e41f4a89ed8 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jul 2018 06:07:26 -0700 Subject: [PATCH 2/8] fix assertion: return a f*ing sink Messed this up in February apparently. --- .../src/main/java/org/eehouse/android/xw4/BTService.java | 8 +++++++- .../main/java/org/eehouse/android/xw4/WiDirService.java | 6 ++++++ .../src/main/java/org/eehouse/android/xw4/XWService.java | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java index 2f1ebcc0d..f84f39cc4 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java @@ -1106,11 +1106,17 @@ public class BTService extends XWService { postEvent( MultiEvent.BT_GAME_CREATED, rowid ); } + @Override + MultiMsgSink getSink( long rowid ) + { + return m_btMsgSink; + } + private BTCmd makeOrNotify( NetLaunchInfo nli, String btName, String btAddr ) { BTCmd result; - if ( handleInvitation( nli, btName, DictFetchOwner.OWNER_BT ) ) { + if ( handleInvitation( nli, btName, DictFetchOwner.OWNER_BT ) ) { // here result = BTCmd.INVITE_ACCPT; } else { result = BTCmd.INVITE_DUP_INVITE; // dupe of rematch diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java index 91220a8da..a413cc977 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java @@ -774,6 +774,12 @@ public class WiDirService extends XWService { Log.e( TAG, "postNotification() doing nothing" ); } + @Override + MultiMsgSink getSink( long rowid ) + { + return m_sink; + } + private void handleGameGone( Intent intent ) { int gameID = intent.getIntExtra( KEY_GAMEID, 0 ); diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java index f407e6f76..9e6e1dbac 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java @@ -130,7 +130,7 @@ abstract class XWService extends Service { } // Meant to be overridden - protected MultiMsgSink getSink( long rowid ) { Assert.fail(); return null; } + abstract MultiMsgSink getSink( long rowid ); protected ReceiveResult receiveMessage( Context context, int gameID, MultiMsgSink sink, byte[] msg, From 4450a8d56c299b99d0e02e08a74751bd0b61240a Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jul 2018 06:29:03 -0700 Subject: [PATCH 3/8] fix NPE by inspection I'm not sure how it happened -- race condition -- but it's harmless to drop the action when it does. --- .../app/src/main/java/org/eehouse/android/xw4/GameUtils.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java index 56b71011b..2d9963ed5 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java @@ -1183,7 +1183,9 @@ public class GameUtils { boolean informNow ) { GameSummary summary = DBUtils.getSummary( context, lock ); - if ( DeviceRole.SERVER_STANDALONE != summary.serverRole ) { + if ( null == summary ) { + Log.e( TAG, "tellDied(): can't get summary" ); + } else if ( DeviceRole.SERVER_STANDALONE != summary.serverRole ) { int gameID = summary.gameID; GamePtr gamePtr = loadMakeGame( context, lock ); From fcefa9ca974bc403b8e012f8b4ffbf096fe807e5 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jul 2018 06:29:59 -0700 Subject: [PATCH 4/8] dismiss the BT invite progress thing on success Not sure how this broke in the reorg of XWService stuff, but let's be agressive about dismissing that thing. --- .../org/eehouse/android/xw4/BoardDelegate.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 4985e0701..447379d85 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 @@ -1257,12 +1257,14 @@ public class BoardDelegate extends DelegateBase @SuppressWarnings("fallthrough") public void eventOccurred( MultiService.MultiEvent event, final Object ... args ) { + boolean doStopProgress = false; switch( event ) { case MESSAGE_ACCEPTED: case MESSAGE_REFUSED: ConnStatusHandler. updateStatusIn( m_activity, this, CommsConnType.COMMS_CONN_BT, MultiService.MultiEvent.MESSAGE_ACCEPTED == event); + doStopProgress = true; break; case MESSAGE_NOGAME: int gameID = (Integer)args[0]; @@ -1285,10 +1287,7 @@ public class BoardDelegate extends DelegateBase Log.w( TAG, "failed to create game" ); break; case NEWGAME_DUP_REJECTED: - if ( m_progressShown ) { - m_progressShown = false; - stopProgress(); // in case it's a BT invite - } + doStopProgress = true; final String msg = getString( R.string.err_dup_invite_fmt, (String)args[0] ); post( new Runnable() { @@ -1311,13 +1310,15 @@ public class BoardDelegate extends DelegateBase break; default: - if ( m_progressShown ) { - m_progressShown = false; - stopProgress(); // in case it's a BT invite - } + doStopProgress = true; // in case it's a BT invite super.eventOccurred( event, args ); break; } + + if ( doStopProgress && m_progressShown ) { + m_progressShown = false; + stopProgress(); + } } ////////////////////////////////////////////////// From a9701525b76eec1ddc477b5ea290f229d60d2c33 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jul 2018 06:47:18 -0700 Subject: [PATCH 5/8] up version string for new release --- xwords4/android/app/build.gradle | 4 ++-- xwords4/android/app/src/main/assets/changes.html | 12 ++++-------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle index 25a7ba80f..1359656ab 100644 --- a/xwords4/android/app/build.gradle +++ b/xwords4/android/app/build.gradle @@ -1,6 +1,6 @@ def INITIAL_CLIENT_VERS = 8 -def VERSION_CODE_BASE = 133 -def VERSION_NAME = '4.4.137' +def VERSION_CODE_BASE = 134 +def VERSION_NAME = '4.4.138' def FABRIC_API_KEY = System.getenv("FABRIC_API_KEY") def GCM_SENDER_ID = System.getenv("GCM_SENDER_ID") def BUILD_INFO_NAME = "build-info.txt" diff --git a/xwords4/android/app/src/main/assets/changes.html b/xwords4/android/app/src/main/assets/changes.html index a9e62de26..11ac4bb5c 100644 --- a/xwords4/android/app/src/main/assets/changes.html +++ b/xwords4/android/app/src/main/assets/changes.html @@ -13,9 +13,9 @@ -

CrossWords 4.4.137 release

+

CrossWords 4.4.138 release

-

This release paves the way for play-via-SMS improvements.

+

This release fixes a nasty Bluetooth crash

Please take @@ -25,12 +25,8 @@

New with this release

    -
  • Add new SMS-handling code. One feature isn't compatible with - the previous release so it won't be activated until there's been - time for everybody to upgrade.
  • -
  • Include new Catalan translations
  • -
  • Fix bug causing (rarely) unending notifications of wordlist - upgrade
  • +
  • Don't crash every time bluetooth messages arrive
  • +
  • Fix two other less likely reported crashes (Thanks!)

(The full changelog From 5ced000c8c7bae3c1a4d3970e605e256225c1041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Montan=C3=A9?= Date: Fri, 13 Jul 2018 09:29:23 +0000 Subject: [PATCH 6/8] Translated using Weblate (Catalan) Currently translated at 94.3% (706 of 748 strings) --- xwords4/android/res_src/values-ca/strings.xml | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/xwords4/android/res_src/values-ca/strings.xml b/xwords4/android/res_src/values-ca/strings.xml index 69aecf18d..a9b09671b 100644 --- a/xwords4/android/res_src/values-ca/strings.xml +++ b/xwords4/android/res_src/values-ca/strings.xml @@ -1173,4 +1173,26 @@ aparells seleccionats? S\'està esperant una resposta Usa primer les API Web - + Aquesta partida s\'ha creat amb una invitació que heu rebut. Tan aviat com es pugui connectar amb el remitent i arribin els altres convidats, començarà la partida. + + + "L\'aparell %1$d s\'ha connectat al repetidor en la sala «%2$s». Està esperant un jugador." + "L\'aparell %1$d s\'ha connectat al repetidor en la sala «%2$s». Està esperant %3$d jugadors." + + + Aparella\'n més + + + Comproveu l\'aparell que voleu convidar a la partida nova, després toqueu «%2$s». + Comproveu els $1$d aparells que voleu convidar a la partida nova, després toqueu «%2$s». + + Només es mostren els aparells que són disponibles actualment. Si un aparell proper no es mostra, assegureu-vos que la WiFi és habilitada, que té el CrossWords instal·lat i que el joc via «WiFi Direct» és habilitat. + + Ara mateix no hi ha cap aparell accessible via WiFiDirect que tingui el CrossWords instal·lat. + + La llista d\'aparell és buida. Useu el botó «Cerca partides» per a cerca les partides antigues amb els adversaris. Useu el botó «+» per a introduir la ID de l\'aparell directament. + + Esteu segur de voler suprimir el número de telèfon seleccionat? + Esteu segur de voler suprimir els %1$d números de telèfon seleccionats? + + From 6abff25946e5c89a134ceb06d4515a2aa90e6e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 9 Jul 2018 22:35:44 +0000 Subject: [PATCH 7/8] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 55.2% (413 of 748 strings) --- .../android/res_src/values-nb-rNO/strings.xml | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/xwords4/android/res_src/values-nb-rNO/strings.xml b/xwords4/android/res_src/values-nb-rNO/strings.xml index 3c6613f48..2e66da12e 100644 --- a/xwords4/android/res_src/values-nb-rNO/strings.xml +++ b/xwords4/android/res_src/values-nb-rNO/strings.xml @@ -185,7 +185,7 @@ %1$d flis igjen å trekke fra. - + Gjenopprett farger Er du sikker på at du ønsker å tilbakestille alle innstillingene til forvalg? @@ -567,7 +567,7 @@ %1$s spilte %2$s for %3$d poeng - + %1$s mistet en tur Forvalgt språk @@ -642,4 +642,18 @@ Android-tilganger Tilgang ikke gitt - + + Er du sikker på at du ønsker å slette valgt spill? Denne handlingen kan ikke angres. + Er du sikker på at du ønsker å slette %1$d valgte spill? Denne handlingen kan ikke angres. + + + + Er du sikker på at du ønsker å slette valgt spill? Denne handlingen kan ikke angres. +\n +\n(Tilbakestilling sletter alle trekk og all tilknyttet informasjon.) + Er du sikker på at du ønsker å slette %1$d valgte spill? Denne handlingen kan ikke angres. +\n +\n(Tilbakestilling sletter alle trekk og all tilknyttet informasjon.) + + + From 723e7d795311f1a3d37032241087e260bae536bc Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jul 2018 06:57:21 -0700 Subject: [PATCH 8/8] update changes to include translations included --- xwords4/android/app/src/main/assets/changes.html | 1 + 1 file changed, 1 insertion(+) diff --git a/xwords4/android/app/src/main/assets/changes.html b/xwords4/android/app/src/main/assets/changes.html index 11ac4bb5c..409385b2a 100644 --- a/xwords4/android/app/src/main/assets/changes.html +++ b/xwords4/android/app/src/main/assets/changes.html @@ -27,6 +27,7 @@

  • Don't crash every time bluetooth messages arrive
  • Fix two other less likely reported crashes (Thanks!)
  • +
  • Integrate latest Catalan and Norwegian translations

(The full changelog