From 449860a8806bc183a7f8be3c412ef293949cfbd6 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 7 Jan 2017 14:48:31 -0800 Subject: [PATCH 01/30] make Dbg variant's icons upside down The write-red-on-it thing doesn't work for the notify.png file used in notifications (I think because I can't find a color Android doesn't strip out.) So use a rotation transform instead. Users will never see this anyway. --- xwords4/android/scripts/Variant.mk | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xwords4/android/scripts/Variant.mk b/xwords4/android/scripts/Variant.mk index bdf7c3924..cd58f03e9 100644 --- a/xwords4/android/scripts/Variant.mk +++ b/xwords4/android/scripts/Variant.mk @@ -7,7 +7,10 @@ $(DEST_PATH)/%.java : $(SRC_PATH)/%.java < $< > $@ $(DEST_PATH)/icon48x48.png : $(SRC_PATH)/icon48x48.png - convert $< -fill red -gravity Center -annotate +0+5 ' Dbg ' $@ + convert $< -rotate 180 -gravity Center $@ + +$(DEST_PATH)/notify.png : $(SRC_PATH)/notify.png + convert $< -rotate 180 -gravity Center $@ $(DEST_PATH)/%.png : $(SRC_PATH)/%.png @cp $< $@ From b0105888d0715e6d1e11eb78fd100079802de8e2 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 7 Jan 2017 16:20:15 -0800 Subject: [PATCH 02/30] sort current turn games with oldest at top --- .../android/XWords4/src/org/eehouse/android/xw4/DBUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index 09a08c425..f3360eb78 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -1663,7 +1663,7 @@ public class DBUtils { initDB( context ); String[] columns = { ROW_ID }; String selection = String.format( "%s=%d", DBHelper.GROUPID, groupID ); - String orderBy = String.format( "%s,%s DESC,%s DESC", DBHelper.GAME_OVER, + String orderBy = String.format( "%s,%s DESC,%s", DBHelper.GAME_OVER, DBHelper.TURN_LOCAL, DBHelper.LASTMOVE ); synchronized( s_dbHelper ) { SQLiteDatabase db = s_dbHelper.getReadableDatabase(); From a0fffb3af6b061190e39b28efd64183cb4b14ae3 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sun, 8 Jan 2017 12:58:57 -0800 Subject: [PATCH 03/30] get rid of SMS enabling on Marshmallow and later My old asking for permission to turn on/off SMS is confusing and adds no value when the OS separates out permissions and is confusing. So get rid of it on Marshmallow and later, always returning true from the old API and hiding the preference in that case. --- .../XWords4/src/org/eehouse/android/xw4/Perms23.java | 9 +++++++++ .../src/org/eehouse/android/xw4/PrefsDelegate.java | 4 ++++ .../XWords4/src/org/eehouse/android/xw4/XWPrefs.java | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java index 41fbd375f..49e9d6271 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java @@ -23,6 +23,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.pm.PackageManager; +import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; @@ -209,6 +210,14 @@ public class Perms23 { } } + // Is the OS supporting runtime permission natively, i.e. version 23/M or + // later. + public static boolean haveNativePerms() + { + boolean result = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; + return result; + } + /** * Request permissions, giving rationale once, then call with action and * either positive or negative, the former if permission granted. diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java index a3461a684..739d6e592 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java @@ -340,5 +340,9 @@ public class PrefsDelegate extends DelegateBase if ( !XWPrefs.getIsTablet( m_activity ) ) { hideOne( R.string.key_enable_dualpane, R.string.prefs_appearance ); } + + if ( Perms23.haveNativePerms() ) { + hideOne( R.string.key_enable_sms, R.string.key_network_behavior ); + } } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java index c63dc82f0..7a6fbd866 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java @@ -42,11 +42,13 @@ public class XWPrefs { public static boolean getSMSEnabled( Context context ) { - return getPrefsBoolean( context, R.string.key_enable_sms, false ); + boolean haveNative = Perms23.haveNativePerms(); + return haveNative || getPrefsBoolean( context, R.string.key_enable_sms, false ); } public static void setSMSEnabled( Context context, boolean enabled ) { + Assert.assertTrue( !Perms23.haveNativePerms() || !BuildConfig.DEBUG ); setPrefsBoolean( context, R.string.key_enable_sms, enabled ); } From 8349ffc1269a20f2629990a7a7af92f08ef3eac9 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sun, 8 Jan 2017 13:02:44 -0800 Subject: [PATCH 04/30] tweak changelog --- xwords4/android/XWords4/assets/changes.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xwords4/android/XWords4/assets/changes.html b/xwords4/android/XWords4/assets/changes.html index d1936d199..04bc28fe0 100644 --- a/xwords4/android/XWords4/assets/changes.html +++ b/xwords4/android/XWords4/assets/changes.html @@ -30,6 +30,8 @@
  • Request permissions when they're needed, e.g. ask to send SMS messages when a game is being configured to communicate using SMS
  • +
  • Change order of games to put oldest in which it's your turn + at the top
  • New two-color icon for notifications (required by the newer Android that supports just-in-time permissions)
  • Use less battery by being smarter about how often to check From f41b77b8ee925145bf3b233714a43a11376f8879 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sun, 8 Jan 2017 13:26:29 -0800 Subject: [PATCH 05/30] fix conversion of contacts from old format JSONObject(, null) clears out any existing entry but doesn't add a new one. So store missing names as "" instead. Not sure how this worked when I first tested it.... --- .../XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java | 2 +- .../android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java index 21179e9a7..b4c3404a9 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java @@ -366,7 +366,7 @@ public class SMSInviteDelegate extends InviteDelegate { { m_phone = phone; - if ( null == name ) { + if ( null == name || 0 == name.length() ) { name = getString( R.string.contact_not_found ); } m_name = name; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java index 7a6fbd866..229a5c370 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java @@ -266,7 +266,7 @@ public class XWPrefs { String[] numbers = TextUtils.split( asStr, "\n" ); for ( String number : numbers ) { try { - obj.put( number, (String)null ); + obj.put( number, "" ); // null removes any entry } catch ( JSONException ex ) { DbgUtils.logex( TAG, ex ); } @@ -274,6 +274,7 @@ public class XWPrefs { } } + // DbgUtils.logd( TAG, "getSMSPhones() => %s", obj.toString() ); return obj; } From fac8c2b943ed4911b13de83ea0cbb704a9b4aa52 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sun, 8 Jan 2017 14:23:23 -0800 Subject: [PATCH 06/30] resend all pending SMS messages on getting permission Fixes case where user has received invitations but not allowed SMS then decides to do so. It's a hack giving Perms23 class knowledge of how to send moves etc. Instead I should be letting interested parties register for perms-granted events, but that can happen later, and is less valueable while SMS is the only "dangerous" permission and the only one that blocks message sends. --- .../src/org/eehouse/android/xw4/Perms23.java | 32 +++++++++++++------ .../org/eehouse/android/xw4/XWActivity.java | 2 +- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java index 49e9d6271..cfcd90dce 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java @@ -35,6 +35,7 @@ import java.util.Set; import org.eehouse.android.xw4.DlgDelegate.Action; import org.eehouse.android.xw4.DlgDelegate.DlgClickNotify; +import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType; import org.eehouse.android.xw4.loc.LocUtils; import junit.framework.Assert; @@ -249,20 +250,31 @@ public class Perms23 { } private static Map s_map = new HashMap(); - public static void gotPermissionResult( int code, String[] perms, int[] granteds ) + public static void gotPermissionResult( Context context, int code, + String[] perms, int[] granteds ) { // DbgUtils.logd( TAG, "gotPermissionResult(%s)", perms.toString() ); + Map result = new HashMap(); + for ( int ii = 0; ii < perms.length; ++ii ) { + Perm perm = Perm.getFor( perms[ii] ); + boolean granted = PackageManager.PERMISSION_GRANTED == granteds[ii]; + result.put( perm, granted ); + + // Hack. If SMS has been granted, resend all moves. This should be + // replaced with an api allowing listeners to register + // Perm-by-Perm, but I'm in a hurry. + if ( granted && perm == Perm.SEND_SMS ) { + GameUtils.resendAllIf( context, CommsConnType.COMMS_CONN_SMS, + true ); + } + + // DbgUtils.logd( TAG, "calling %s.onPermissionResult(%s, %b)", + // record.cbck.getClass().getSimpleName(), perm.toString(), + // granted ); + } + PermCbck cbck = s_map.remove( code ); if ( null != cbck ) { - Map result = new HashMap(); - for ( int ii = 0; ii < perms.length; ++ii ) { - Perm perm = Perm.getFor( perms[ii] ); - boolean granted = PackageManager.PERMISSION_GRANTED == granteds[ii]; - result.put( perm, granted ); - // DbgUtils.logd( TAG, "calling %s.onPermissionResult(%s, %b)", - // record.cbck.getClass().getSimpleName(), perm.toString(), - // granted ); - } cbck.onPermissionResult( result ); } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java index d98f171c2..95add4a0f 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java @@ -130,7 +130,7 @@ public class XWActivity extends FragmentActivity implements Delegator { @Override public void onRequestPermissionsResult(int requestCode, String perms[], int[] rslts ) { - Perms23.gotPermissionResult( requestCode, perms, rslts ); + Perms23.gotPermissionResult( this, requestCode, perms, rslts ); super.onRequestPermissionsResult( requestCode, perms, rslts ); } From 8c680b50f7a66fad551db07078237841f48e3e68 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sun, 8 Jan 2017 14:40:18 -0800 Subject: [PATCH 07/30] fix mystery crash on my phone but not on emulator running same OS version (or close). And in spite of an exception being thrown the work being done, hiding a preference, still succeeds. Whatever. --- .../src/org/eehouse/android/xw4/PrefsDelegate.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java index 739d6e592..97c0361f5 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java @@ -321,10 +321,16 @@ public class PrefsDelegate extends DelegateBase private void hideOne( int prefID, int screenID ) { - Preference pref = m_activity.findPreference( getString( prefID ) ); - String key = getString( screenID ); - ((PreferenceScreen)m_activity.findPreference( key )) - .removePreference( pref ); + try { + Preference pref = m_activity.findPreference( getString( prefID ) ); + String key = getString( screenID ); + ((PreferenceScreen)m_activity.findPreference( key )) + .removePreference( pref ); + } catch ( NullPointerException ex ) { + // This is happening hiding key_enable_sms, but the hide still + // works! + // DbgUtils.logex( TAG, ex ); + } } private void hideStuff() From 084a45296e55a37a2d9ebce2f279fd94afdc3b63 Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 9 Jan 2017 07:04:58 -0800 Subject: [PATCH 08/30] invalidate menu when board destroyed; shorten rematch name GamesList menu was in a bad state after a game closed because hadn't been rebuilt. It's simplest to invalidate it surgically, when the BoardDelegate notifies that the board's closed, though doing in in onWindowFocusChanged() might catch more edge cases. We'll see. I want a low-risk impact right now. --- xwords4/android/XWords4/assets/changes.html | 1 + xwords4/android/XWords4/res/values/strings.xml | 2 +- xwords4/android/XWords4/res_src/values-ba_CK/strings.xml | 2 +- xwords4/android/XWords4/res_src/values-ca_PS/strings.xml | 2 +- .../src/org/eehouse/android/xw4/GamesListDelegate.java | 4 +++- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/xwords4/android/XWords4/assets/changes.html b/xwords4/android/XWords4/assets/changes.html index 04bc28fe0..23ff3c29d 100644 --- a/xwords4/android/XWords4/assets/changes.html +++ b/xwords4/android/XWords4/assets/changes.html @@ -39,6 +39,7 @@ installing from F-Droid.)
  • Stop mis-identifying tablets as data-SMS-capable (only GSM phones are)
  • +
  • Shorten default rematch game name
  • Allow board "squares" to be wider than tall if it fills the screen better
  • Improvements in localization for French, Catalan, Dutch, diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 2d7c46b51..d33ba3e68 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -2457,7 +2457,7 @@ New one-device game New networked game - Rematch: %1$s + %1$s Would you like to create this game using default settings?\n\nOr would you like to configure it diff --git a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml index 3cf927757..b138897f0 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -2110,7 +2110,7 @@ Etacinummoc aiv Wen ecived-eno emag Wen dekrowten emag - Hctamer: %1$s + %1$s Dluow uoy ekil ot etaerc siht emag gnisu tluafed ?sgnittes\n\nRo dluow uoy ekil ot erugifnoc ti ?tsrif diff --git a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml index 77c263174..050296365 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -2110,7 +2110,7 @@ COMMUNICATE VIA NEW ONE-DEVICE GAME NEW NETWORKED GAME - REMATCH: %1$s + %1$s WOULD YOU LIKE TO CREATE THIS GAME USING DEFAULT SETTINGS?\n\nOR WOULD YOU LIKE TO CONFIGURE IT FIRST? diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java index a1c67b822..3633a70d5 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -1083,7 +1083,7 @@ public class GamesListDelegate extends ListDelegateBase if ( hasFocus ) { updateField(); - m_launchedGames.clear(); + m_launchedGames.clear(); // This is probably wrong!!! } } @@ -2663,7 +2663,9 @@ public class GamesListDelegate extends ListDelegateBase public static void boardDestroyed( long rowid ) { if ( null != s_self ) { + // remove likely a no-op: launching clears the set, but shouldn't s_self.m_launchedGames.remove( rowid ); + s_self.invalidateOptionsMenuIf(); } } From 26b4c7da8efbe05e03dc77ee99dcefda26f01cfa Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 9 Jan 2017 20:55:14 -0800 Subject: [PATCH 09/30] log values showing up in the occasional crash --- .../android/xw4/GamesListDelegate.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java index 3633a70d5..dd7f90439 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -143,7 +143,12 @@ public class GamesListDelegate extends ListDelegateBase if ( ggi.m_expanded ) { List children = makeChildren( groupID ); alist.addAll( children ); - Assert.assertTrue( ggi.m_count == children.size() ); + + if ( BuildConfig.DEBUG && ggi.m_count != children.size() ) { + DbgUtils.loge( TAG, "m_count: %d != size: %d", + ggi.m_count, children.size() ); + Assert.fail(); + } } } @@ -271,15 +276,17 @@ public class GamesListDelegate extends ListDelegateBase int getGroupPosition( long groupID ) { int posn = -1; - long[] positions = getGroupPositions(); - for ( int ii = 0; ii < positions.length; ++ii ) { - if ( positions[ii] == groupID ) { - posn = ii; - break; + if ( -1 != groupID ) { + long[] positions = getGroupPositions(); + for ( int ii = 0; ii < positions.length; ++ii ) { + if ( positions[ii] == groupID ) { + posn = ii; + break; + } + } + if ( -1 == posn ) { + DbgUtils.logd( TAG, "getGroupPosition: group %d not found", groupID ); } - } - if ( -1 == posn ) { - DbgUtils.logd( TAG, "getGroupPosition: group %d not found", groupID ); } return posn; } From 975d114f4103eb82fdddb5eafcd667278a939579 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 06:33:00 -0800 Subject: [PATCH 10/30] move some gradle files --- xwords4/android/{XWords4 => }/build.gradle | 0 xwords4/android/{XWords4 => }/gradle.properties | 0 .../{XWords4 => }/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 xwords4/android/{XWords4 => }/gradlew | 0 xwords4/android/{XWords4 => }/settings.gradle | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename xwords4/android/{XWords4 => }/build.gradle (100%) rename xwords4/android/{XWords4 => }/gradle.properties (100%) rename xwords4/android/{XWords4 => }/gradle/wrapper/gradle-wrapper.jar (100%) rename xwords4/android/{XWords4 => }/gradle/wrapper/gradle-wrapper.properties (100%) rename xwords4/android/{XWords4 => }/gradlew (100%) rename xwords4/android/{XWords4 => }/settings.gradle (100%) diff --git a/xwords4/android/XWords4/build.gradle b/xwords4/android/build.gradle similarity index 100% rename from xwords4/android/XWords4/build.gradle rename to xwords4/android/build.gradle diff --git a/xwords4/android/XWords4/gradle.properties b/xwords4/android/gradle.properties similarity index 100% rename from xwords4/android/XWords4/gradle.properties rename to xwords4/android/gradle.properties diff --git a/xwords4/android/XWords4/gradle/wrapper/gradle-wrapper.jar b/xwords4/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from xwords4/android/XWords4/gradle/wrapper/gradle-wrapper.jar rename to xwords4/android/gradle/wrapper/gradle-wrapper.jar diff --git a/xwords4/android/XWords4/gradle/wrapper/gradle-wrapper.properties b/xwords4/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from xwords4/android/XWords4/gradle/wrapper/gradle-wrapper.properties rename to xwords4/android/gradle/wrapper/gradle-wrapper.properties diff --git a/xwords4/android/XWords4/gradlew b/xwords4/android/gradlew similarity index 100% rename from xwords4/android/XWords4/gradlew rename to xwords4/android/gradlew diff --git a/xwords4/android/XWords4/settings.gradle b/xwords4/android/settings.gradle similarity index 100% rename from xwords4/android/XWords4/settings.gradle rename to xwords4/android/settings.gradle From 612ff0259ce507a69e1461f088419d195d2795c6 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:01:25 -0800 Subject: [PATCH 11/30] move and start processing res .xml files --- xwords4/android/app/build.gradle | 250 ++++++++++++++++++ .../src/main}/res/layout-small/board.xml | 0 .../src/main}/res/layout/about_dlg.xml | 0 .../src/main}/res/layout/board.xml | 0 .../src/main}/res/layout/bt_buttons.xml | 0 .../src/main}/res/layout/chat.xml | 0 .../src/main}/res/layout/chat_row.xml | 0 .../src/main}/res/layout/color_display.xml | 0 .../src/main}/res/layout/color_edit.xml | 0 .../src/main}/res/layout/confirm_sms.xml | 0 .../main}/res/layout/conn_types_display.xml | 0 .../src/main}/res/layout/dflt_name.xml | 0 .../src/main}/res/layout/dict_browse.xml | 0 .../src/main}/res/layout/dict_browser.xml | 0 .../main}/res/layout/dict_browser_list.xml | 0 .../src/main}/res/layout/divider_view.xml | 0 .../src/main}/res/layout/dualcontainer.xml | 0 .../src/main}/res/layout/expander_header.xml | 0 .../src/main}/res/layout/force_remote.xml | 0 .../src/main}/res/layout/game_config.xml | 0 .../src/main}/res/layout/game_list.xml | 0 .../src/main}/res/layout/game_list_group.xml | 0 .../src/main}/res/layout/game_list_item.xml | 0 .../src/main}/res/layout/import_dict.xml | 0 .../src/main}/res/layout/import_dict_item.xml | 0 .../src/main}/res/layout/inviter.xml | 0 .../main}/res/layout/inviter_item_frame.xml | 0 .../src/main}/res/layout/list_group.xml | 0 .../src/main}/res/layout/list_item.xml | 0 .../src/main}/res/layout/loc_item_edit.xml | 0 .../src/main}/res/layout/loc_list_item.xml | 0 .../src/main}/res/layout/loc_main.xml | 0 .../src/main}/res/layout/lookup.xml | 0 .../main}/res/layout/msg_label_and_edit.xml | 0 .../src/main}/res/layout/not_again_view.xml | 0 .../src/main}/res/layout/passwd_view.xml | 0 .../src/main}/res/layout/player_edit.xml | 0 .../src/main}/res/layout/player_list_elem.xml | 0 .../src/main}/res/layout/prefs_w_buttons.xml | 0 .../src/main}/res/layout/relay_buttons.xml | 0 .../main}/res/layout/remote_dict_details.xml | 0 .../src/main}/res/layout/rename_game.xml | 0 .../src/main}/res/layout/sms_buttons.xml | 0 .../src/main}/res/layout/studylist.xml | 0 .../src/main}/res/layout/toolbar.xml | 0 .../src/main}/res/layout/two_strs_item.xml | 0 .../src/main}/res/menu-small/board_menu.xml | 0 .../src/main}/res/menu/board_menu.xml | 0 .../src/main}/res/menu/chat_menu.xml | 0 .../src/main}/res/menu/dicts_menu.xml | 0 .../src/main}/res/menu/empty.xml | 0 .../main}/res/menu/games_list_game_menu.xml | 0 .../main}/res/menu/games_list_group_menu.xml | 0 .../src/main}/res/menu/games_list_menu.xml | 0 .../src/main}/res/menu/loc_item_menu.xml | 0 .../src/main}/res/menu/studylist.xml | 0 .../src/main}/res/values-large/styles.xml | 0 .../src/main}/res/values-xlarge/styles.xml | 0 .../src/main}/res/values/app_name.xml | 0 .../src/main}/res/values/common_rsrc.xml | 0 .../src/main}/res/values/config.xml | 0 .../src/main}/res/values/dimensions.xml | 0 .../src/main}/res/values/strings.xml | 0 .../src/main}/res/values/styles.xml | 0 .../src/main}/res/xml/xwprefs.xml | 0 xwords4/android/scripts/Variant.mk | 35 +-- 66 files changed, 252 insertions(+), 33 deletions(-) create mode 100644 xwords4/android/app/build.gradle rename xwords4/android/{XWords4 => app/src/main}/res/layout-small/board.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/about_dlg.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/board.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/bt_buttons.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/chat.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/chat_row.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/color_display.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/color_edit.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/confirm_sms.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/conn_types_display.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/dflt_name.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/dict_browse.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/dict_browser.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/dict_browser_list.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/divider_view.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/dualcontainer.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/expander_header.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/force_remote.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/game_config.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/game_list.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/game_list_group.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/game_list_item.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/import_dict.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/import_dict_item.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/inviter.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/inviter_item_frame.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/list_group.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/list_item.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/loc_item_edit.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/loc_list_item.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/loc_main.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/lookup.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/msg_label_and_edit.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/not_again_view.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/passwd_view.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/player_edit.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/player_list_elem.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/prefs_w_buttons.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/relay_buttons.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/remote_dict_details.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/rename_game.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/sms_buttons.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/studylist.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/toolbar.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/layout/two_strs_item.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu-small/board_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/board_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/chat_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/dicts_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/empty.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/games_list_game_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/games_list_group_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/games_list_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/loc_item_menu.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/studylist.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values-large/styles.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values-xlarge/styles.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/app_name.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/common_rsrc.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/config.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/dimensions.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/strings.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/styles.xml (100%) rename xwords4/android/{XWords4 => app/src/main}/res/xml/xwprefs.xml (100%) diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle new file mode 100644 index 000000000..3237fad30 --- /dev/null +++ b/xwords4/android/app/build.gradle @@ -0,0 +1,250 @@ +import groovy.swing.SwingBuilder + +def INITIAL_CLIENT_VERS = 8 +def LIBS_DEBUG = 'libs-debug' +def LIBS_RELEASE = 'libs-release' +def VERSION_CODE_BASE = 111 +def VERSION_NAME = '4.4.115' +def VARIANTS = [ "xw4", "xw4dbg" ] +def BUILDS = [ "Debug", "Release" ] + +apply plugin: 'com.android.application' + +dependencies { + compile files('../libs/gcm.jar') + compile files('../libs/android-support-v13.jar') +} + +android { + buildToolsVersion '23.0.2' + defaultConfig { + minSdkVersion 7 + targetSdkVersion 23 + versionCode VERSION_CODE_BASE + versionName VERSION_NAME + } + + // Rename all output artifacts to include version information + applicationVariants.all { variant -> + // renameArtifact(variant) + // variant.buildConfigField "String", "FIELD_NAME", "\"my String\"" + def GCM_SENDER_ID = System.getenv("GCM_SENDER_ID") + variant.buildConfigField "String", "SENDER_ID", "\"$GCM_SENDER_ID\"" + def CRITTERCISM_APP_ID = System.getenv("CRITTERCISM_APP_ID") + variant.buildConfigField "String", "CRITTERCISM_APP_ID", "\"$CRITTERCISM_APP_ID\"" + + def gitHash = "../scripts/gitversion.sh".execute().text.trim() + resValue "string", "git_rev", "$gitHash" + } + + flavorDimensions "variant"//, "abi" + productFlavors { + xw4 { + dimension "variant" + applicationId "org.eehouse.android.${VARIANTS[0]}" + manifestPlaceholders = [ APP_ID: applicationId ] + resValue "string", "app_name", "CrossWords" + resValue "string", "nbs_port", "3344" + resValue "string", "invite_prefix", "/and/" + } + xw4dbg { + dimension "variant" + applicationId "org.eehouse.android.${VARIANTS[1]}" + manifestPlaceholders = [ APP_ID: applicationId ] + resValue "string", "app_name", "CrossDbg" + resValue "string", "nbs_port", "3345" + resValue "string", "invite_prefix", "/anddbg/" + } + + // WARNING: "all" breaks things. Seems to be a keyword. Need + // to figure out how to express include-all-abis + // all { + // dimension "abi" + // versionCode 0 + VERSION_CODE_BASE + // } + // armeabi { + // dimension "abi" + // versionCode 1 + VERSION_CODE_BASE + // } + // x86 { + // dimension "abi" + // versionCode 2 + VERSION_CODE_BASE + // } + // armeabiv7a { + // dimension "abi" + // versionCode 3 + VERSION_CODE_BASE + // } + } + + signingConfigs { + release { + storeFile file(System.getenv("HOME") + "/.keystore") + keyAlias "mykey" + + // These two lines make gradle believe that the signingConfigs + // section is complete. Without them, tasks like installRelease + // will not be available! + storePassword "notReal" + keyPassword "notReal" + } + } + + buildTypes { + release { + signingConfig signingConfigs.release + debuggable false + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + debuggable true + // This doesn't work on marshmallow: duplicate permission error + // applicationIdSuffix ".debug" + } + } + + sourceSets { + // Use symlinks instead of setting non-conventional + // directories here. AS doesn't respect what's set here: it'll + // compile, but post-install app launch and source-level + // debugging don't work. + release { + jniLibs.srcDir "../$LIBS_RELEASE" + } + debug { + jniLibs.srcDir "../$LIBS_DEBUG" + } + } + + lintOptions { + abortOnError false + } + + def gitrev = "git describe --tags".execute().text.trim() + applicationVariants.all { variant -> + variant.outputs.each { output -> + output.outputFile = + new File(output.outputFile.parent, + output.outputFile.name.replace(".apk", "-${gitrev}.apk")) + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) +} + +task mkImages(type: Exec) { + workingDir '../' + commandLine './scripts/mkimages.sh' +} + +task copyStrings(type: Exec) { + workingDir '../' + commandLine './scripts/copy-strings.py' +} + +task ndkSetup(type: Exec) { + workingDir '../' + commandLine "./scripts/ndksetup.sh", "--with-clang" +} + +task myPreBuild(dependsOn: ['ndkSetup', 'mkImages', 'copyStrings', 'mkXml']) { +} +preBuild.dependsOn myPreBuild + +task mkXml(type: Exec) { + workingDir '../' + commandLine './scripts/mk_xml.py', '-o', + "app/src/main/java/org/eehouse/android/xw4/loc/LocIDsData.java", + '-t', "debug" +} + +afterEvaluate { + VARIANTS.each { VARIANT -> + String variantCaps = VARIANT.capitalize() + BUILDS.each { BUILD -> + String lib = BUILD == 'Debug' ? LIBS_DEBUG : LIBS_RELEASE + String nameLC = BUILD.toLowerCase() + String name = "ndkBuild${variantCaps}${BUILD}" + task "$name"(type: Exec) { + workingDir '../' + commandLine './scripts/ndkbuild.sh', '-j3', + "BUILD_TARGET=${nameLC}", "INITIAL_CLIENT_VERS=$INITIAL_CLIENT_VERS", + "VARIANT=$VARIANT", "NDK_LIBS_OUT=${lib}", "NDK_OUT=./obj-${nameLC}" + } + + String compileTask = "compile${variantCaps}${BUILD}Ndk" + tasks.getByName(compileTask).dependsOn name + } + } + + String copyStringsTask = "copyStringsXw4Dbg" + task "$copyStringsTask"(type: Exec) { + workingDir './' + environment.put('APPNAME', 'CrossDbg') + commandLine 'make', '-f', '../scripts/Variant.mk', + "src/xw4dbg/res/values/strings.xml" + } + preBuild.dependsOn copyStringsTask +} + +gradle.taskGraph.whenReady { taskGraph -> + if ( taskGraph.hasTask(':app:validateReleaseSigning') ) { + def pass + if (System.getenv("ANDROID_RELEASE_PASSWORD")) { + pass = System.getenv("ANDROID_RELEASE_PASSWORD") + } else if ( null != System.console() ) { + pass = System.console().readPassword("\nPlease enter key passphrase: ") + pass = new String(pass) + } else { + new SwingBuilder().edt { + dialog(modal: true, // Otherwise the build will continue running before you closed the dialog + title: 'Enter password', // Dialog title + alwaysOnTop: true, // pretty much what the name says + resizable: false, // Don't allow the user to resize the dialog + locationRelativeTo: null, // Place dialog in center of the screen + pack: true, // We need to pack the dialog (so it will take the size of it's children + show: true // Let's show it + ) { + vbox { // Put everything below each other + label(text: "Please enter key passphrase:") + input = passwordField(); + button(defaultButton: true, text: 'OK', actionPerformed: { + pass = new String(input.password); // Set pass variable to value of input field + // println "myPass: $myPass" + + dispose(); // Close dialog + }) + } + } + } + } + + android.signingConfigs.release.storePassword = pass + android.signingConfigs.release.keyPassword = pass + } +} + +// def getVersionName() { +// try { +// def stdout = new ByteArrayOutputStream() +// exec { +// commandLine 'git', 'describe', '--dirty' +// standardOutput = stdout +// } +// return stdout.toString().trim() +// } +// catch (ignored) { +// return null; +// } +// } + +// def renameArtifact(variant) { +// variant.outputs.each { output -> +// def name = String.format( "XWords4-%s-%s.apk", variant.name, +// getVersionName() ) +// output.outputFile = new File( (String)output.outputFile.parent, +// (String)name ) +// } +// } diff --git a/xwords4/android/XWords4/res/layout-small/board.xml b/xwords4/android/app/src/main/res/layout-small/board.xml similarity index 100% rename from xwords4/android/XWords4/res/layout-small/board.xml rename to xwords4/android/app/src/main/res/layout-small/board.xml diff --git a/xwords4/android/XWords4/res/layout/about_dlg.xml b/xwords4/android/app/src/main/res/layout/about_dlg.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/about_dlg.xml rename to xwords4/android/app/src/main/res/layout/about_dlg.xml diff --git a/xwords4/android/XWords4/res/layout/board.xml b/xwords4/android/app/src/main/res/layout/board.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/board.xml rename to xwords4/android/app/src/main/res/layout/board.xml diff --git a/xwords4/android/XWords4/res/layout/bt_buttons.xml b/xwords4/android/app/src/main/res/layout/bt_buttons.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/bt_buttons.xml rename to xwords4/android/app/src/main/res/layout/bt_buttons.xml diff --git a/xwords4/android/XWords4/res/layout/chat.xml b/xwords4/android/app/src/main/res/layout/chat.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/chat.xml rename to xwords4/android/app/src/main/res/layout/chat.xml diff --git a/xwords4/android/XWords4/res/layout/chat_row.xml b/xwords4/android/app/src/main/res/layout/chat_row.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/chat_row.xml rename to xwords4/android/app/src/main/res/layout/chat_row.xml diff --git a/xwords4/android/XWords4/res/layout/color_display.xml b/xwords4/android/app/src/main/res/layout/color_display.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/color_display.xml rename to xwords4/android/app/src/main/res/layout/color_display.xml diff --git a/xwords4/android/XWords4/res/layout/color_edit.xml b/xwords4/android/app/src/main/res/layout/color_edit.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/color_edit.xml rename to xwords4/android/app/src/main/res/layout/color_edit.xml diff --git a/xwords4/android/XWords4/res/layout/confirm_sms.xml b/xwords4/android/app/src/main/res/layout/confirm_sms.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/confirm_sms.xml rename to xwords4/android/app/src/main/res/layout/confirm_sms.xml diff --git a/xwords4/android/XWords4/res/layout/conn_types_display.xml b/xwords4/android/app/src/main/res/layout/conn_types_display.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/conn_types_display.xml rename to xwords4/android/app/src/main/res/layout/conn_types_display.xml diff --git a/xwords4/android/XWords4/res/layout/dflt_name.xml b/xwords4/android/app/src/main/res/layout/dflt_name.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/dflt_name.xml rename to xwords4/android/app/src/main/res/layout/dflt_name.xml diff --git a/xwords4/android/XWords4/res/layout/dict_browse.xml b/xwords4/android/app/src/main/res/layout/dict_browse.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/dict_browse.xml rename to xwords4/android/app/src/main/res/layout/dict_browse.xml diff --git a/xwords4/android/XWords4/res/layout/dict_browser.xml b/xwords4/android/app/src/main/res/layout/dict_browser.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/dict_browser.xml rename to xwords4/android/app/src/main/res/layout/dict_browser.xml diff --git a/xwords4/android/XWords4/res/layout/dict_browser_list.xml b/xwords4/android/app/src/main/res/layout/dict_browser_list.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/dict_browser_list.xml rename to xwords4/android/app/src/main/res/layout/dict_browser_list.xml diff --git a/xwords4/android/XWords4/res/layout/divider_view.xml b/xwords4/android/app/src/main/res/layout/divider_view.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/divider_view.xml rename to xwords4/android/app/src/main/res/layout/divider_view.xml diff --git a/xwords4/android/XWords4/res/layout/dualcontainer.xml b/xwords4/android/app/src/main/res/layout/dualcontainer.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/dualcontainer.xml rename to xwords4/android/app/src/main/res/layout/dualcontainer.xml diff --git a/xwords4/android/XWords4/res/layout/expander_header.xml b/xwords4/android/app/src/main/res/layout/expander_header.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/expander_header.xml rename to xwords4/android/app/src/main/res/layout/expander_header.xml diff --git a/xwords4/android/XWords4/res/layout/force_remote.xml b/xwords4/android/app/src/main/res/layout/force_remote.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/force_remote.xml rename to xwords4/android/app/src/main/res/layout/force_remote.xml diff --git a/xwords4/android/XWords4/res/layout/game_config.xml b/xwords4/android/app/src/main/res/layout/game_config.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/game_config.xml rename to xwords4/android/app/src/main/res/layout/game_config.xml diff --git a/xwords4/android/XWords4/res/layout/game_list.xml b/xwords4/android/app/src/main/res/layout/game_list.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/game_list.xml rename to xwords4/android/app/src/main/res/layout/game_list.xml diff --git a/xwords4/android/XWords4/res/layout/game_list_group.xml b/xwords4/android/app/src/main/res/layout/game_list_group.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/game_list_group.xml rename to xwords4/android/app/src/main/res/layout/game_list_group.xml diff --git a/xwords4/android/XWords4/res/layout/game_list_item.xml b/xwords4/android/app/src/main/res/layout/game_list_item.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/game_list_item.xml rename to xwords4/android/app/src/main/res/layout/game_list_item.xml diff --git a/xwords4/android/XWords4/res/layout/import_dict.xml b/xwords4/android/app/src/main/res/layout/import_dict.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/import_dict.xml rename to xwords4/android/app/src/main/res/layout/import_dict.xml diff --git a/xwords4/android/XWords4/res/layout/import_dict_item.xml b/xwords4/android/app/src/main/res/layout/import_dict_item.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/import_dict_item.xml rename to xwords4/android/app/src/main/res/layout/import_dict_item.xml diff --git a/xwords4/android/XWords4/res/layout/inviter.xml b/xwords4/android/app/src/main/res/layout/inviter.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/inviter.xml rename to xwords4/android/app/src/main/res/layout/inviter.xml diff --git a/xwords4/android/XWords4/res/layout/inviter_item_frame.xml b/xwords4/android/app/src/main/res/layout/inviter_item_frame.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/inviter_item_frame.xml rename to xwords4/android/app/src/main/res/layout/inviter_item_frame.xml diff --git a/xwords4/android/XWords4/res/layout/list_group.xml b/xwords4/android/app/src/main/res/layout/list_group.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/list_group.xml rename to xwords4/android/app/src/main/res/layout/list_group.xml diff --git a/xwords4/android/XWords4/res/layout/list_item.xml b/xwords4/android/app/src/main/res/layout/list_item.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/list_item.xml rename to xwords4/android/app/src/main/res/layout/list_item.xml diff --git a/xwords4/android/XWords4/res/layout/loc_item_edit.xml b/xwords4/android/app/src/main/res/layout/loc_item_edit.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/loc_item_edit.xml rename to xwords4/android/app/src/main/res/layout/loc_item_edit.xml diff --git a/xwords4/android/XWords4/res/layout/loc_list_item.xml b/xwords4/android/app/src/main/res/layout/loc_list_item.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/loc_list_item.xml rename to xwords4/android/app/src/main/res/layout/loc_list_item.xml diff --git a/xwords4/android/XWords4/res/layout/loc_main.xml b/xwords4/android/app/src/main/res/layout/loc_main.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/loc_main.xml rename to xwords4/android/app/src/main/res/layout/loc_main.xml diff --git a/xwords4/android/XWords4/res/layout/lookup.xml b/xwords4/android/app/src/main/res/layout/lookup.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/lookup.xml rename to xwords4/android/app/src/main/res/layout/lookup.xml diff --git a/xwords4/android/XWords4/res/layout/msg_label_and_edit.xml b/xwords4/android/app/src/main/res/layout/msg_label_and_edit.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/msg_label_and_edit.xml rename to xwords4/android/app/src/main/res/layout/msg_label_and_edit.xml diff --git a/xwords4/android/XWords4/res/layout/not_again_view.xml b/xwords4/android/app/src/main/res/layout/not_again_view.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/not_again_view.xml rename to xwords4/android/app/src/main/res/layout/not_again_view.xml diff --git a/xwords4/android/XWords4/res/layout/passwd_view.xml b/xwords4/android/app/src/main/res/layout/passwd_view.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/passwd_view.xml rename to xwords4/android/app/src/main/res/layout/passwd_view.xml diff --git a/xwords4/android/XWords4/res/layout/player_edit.xml b/xwords4/android/app/src/main/res/layout/player_edit.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/player_edit.xml rename to xwords4/android/app/src/main/res/layout/player_edit.xml diff --git a/xwords4/android/XWords4/res/layout/player_list_elem.xml b/xwords4/android/app/src/main/res/layout/player_list_elem.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/player_list_elem.xml rename to xwords4/android/app/src/main/res/layout/player_list_elem.xml diff --git a/xwords4/android/XWords4/res/layout/prefs_w_buttons.xml b/xwords4/android/app/src/main/res/layout/prefs_w_buttons.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/prefs_w_buttons.xml rename to xwords4/android/app/src/main/res/layout/prefs_w_buttons.xml diff --git a/xwords4/android/XWords4/res/layout/relay_buttons.xml b/xwords4/android/app/src/main/res/layout/relay_buttons.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/relay_buttons.xml rename to xwords4/android/app/src/main/res/layout/relay_buttons.xml diff --git a/xwords4/android/XWords4/res/layout/remote_dict_details.xml b/xwords4/android/app/src/main/res/layout/remote_dict_details.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/remote_dict_details.xml rename to xwords4/android/app/src/main/res/layout/remote_dict_details.xml diff --git a/xwords4/android/XWords4/res/layout/rename_game.xml b/xwords4/android/app/src/main/res/layout/rename_game.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/rename_game.xml rename to xwords4/android/app/src/main/res/layout/rename_game.xml diff --git a/xwords4/android/XWords4/res/layout/sms_buttons.xml b/xwords4/android/app/src/main/res/layout/sms_buttons.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/sms_buttons.xml rename to xwords4/android/app/src/main/res/layout/sms_buttons.xml diff --git a/xwords4/android/XWords4/res/layout/studylist.xml b/xwords4/android/app/src/main/res/layout/studylist.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/studylist.xml rename to xwords4/android/app/src/main/res/layout/studylist.xml diff --git a/xwords4/android/XWords4/res/layout/toolbar.xml b/xwords4/android/app/src/main/res/layout/toolbar.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/toolbar.xml rename to xwords4/android/app/src/main/res/layout/toolbar.xml diff --git a/xwords4/android/XWords4/res/layout/two_strs_item.xml b/xwords4/android/app/src/main/res/layout/two_strs_item.xml similarity index 100% rename from xwords4/android/XWords4/res/layout/two_strs_item.xml rename to xwords4/android/app/src/main/res/layout/two_strs_item.xml diff --git a/xwords4/android/XWords4/res/menu-small/board_menu.xml b/xwords4/android/app/src/main/res/menu-small/board_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu-small/board_menu.xml rename to xwords4/android/app/src/main/res/menu-small/board_menu.xml diff --git a/xwords4/android/XWords4/res/menu/board_menu.xml b/xwords4/android/app/src/main/res/menu/board_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/board_menu.xml rename to xwords4/android/app/src/main/res/menu/board_menu.xml diff --git a/xwords4/android/XWords4/res/menu/chat_menu.xml b/xwords4/android/app/src/main/res/menu/chat_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/chat_menu.xml rename to xwords4/android/app/src/main/res/menu/chat_menu.xml diff --git a/xwords4/android/XWords4/res/menu/dicts_menu.xml b/xwords4/android/app/src/main/res/menu/dicts_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/dicts_menu.xml rename to xwords4/android/app/src/main/res/menu/dicts_menu.xml diff --git a/xwords4/android/XWords4/res/menu/empty.xml b/xwords4/android/app/src/main/res/menu/empty.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/empty.xml rename to xwords4/android/app/src/main/res/menu/empty.xml diff --git a/xwords4/android/XWords4/res/menu/games_list_game_menu.xml b/xwords4/android/app/src/main/res/menu/games_list_game_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/games_list_game_menu.xml rename to xwords4/android/app/src/main/res/menu/games_list_game_menu.xml diff --git a/xwords4/android/XWords4/res/menu/games_list_group_menu.xml b/xwords4/android/app/src/main/res/menu/games_list_group_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/games_list_group_menu.xml rename to xwords4/android/app/src/main/res/menu/games_list_group_menu.xml diff --git a/xwords4/android/XWords4/res/menu/games_list_menu.xml b/xwords4/android/app/src/main/res/menu/games_list_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/games_list_menu.xml rename to xwords4/android/app/src/main/res/menu/games_list_menu.xml diff --git a/xwords4/android/XWords4/res/menu/loc_item_menu.xml b/xwords4/android/app/src/main/res/menu/loc_item_menu.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/loc_item_menu.xml rename to xwords4/android/app/src/main/res/menu/loc_item_menu.xml diff --git a/xwords4/android/XWords4/res/menu/studylist.xml b/xwords4/android/app/src/main/res/menu/studylist.xml similarity index 100% rename from xwords4/android/XWords4/res/menu/studylist.xml rename to xwords4/android/app/src/main/res/menu/studylist.xml diff --git a/xwords4/android/XWords4/res/values-large/styles.xml b/xwords4/android/app/src/main/res/values-large/styles.xml similarity index 100% rename from xwords4/android/XWords4/res/values-large/styles.xml rename to xwords4/android/app/src/main/res/values-large/styles.xml diff --git a/xwords4/android/XWords4/res/values-xlarge/styles.xml b/xwords4/android/app/src/main/res/values-xlarge/styles.xml similarity index 100% rename from xwords4/android/XWords4/res/values-xlarge/styles.xml rename to xwords4/android/app/src/main/res/values-xlarge/styles.xml diff --git a/xwords4/android/XWords4/res/values/app_name.xml b/xwords4/android/app/src/main/res/values/app_name.xml similarity index 100% rename from xwords4/android/XWords4/res/values/app_name.xml rename to xwords4/android/app/src/main/res/values/app_name.xml diff --git a/xwords4/android/XWords4/res/values/common_rsrc.xml b/xwords4/android/app/src/main/res/values/common_rsrc.xml similarity index 100% rename from xwords4/android/XWords4/res/values/common_rsrc.xml rename to xwords4/android/app/src/main/res/values/common_rsrc.xml diff --git a/xwords4/android/XWords4/res/values/config.xml b/xwords4/android/app/src/main/res/values/config.xml similarity index 100% rename from xwords4/android/XWords4/res/values/config.xml rename to xwords4/android/app/src/main/res/values/config.xml diff --git a/xwords4/android/XWords4/res/values/dimensions.xml b/xwords4/android/app/src/main/res/values/dimensions.xml similarity index 100% rename from xwords4/android/XWords4/res/values/dimensions.xml rename to xwords4/android/app/src/main/res/values/dimensions.xml diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml similarity index 100% rename from xwords4/android/XWords4/res/values/strings.xml rename to xwords4/android/app/src/main/res/values/strings.xml diff --git a/xwords4/android/XWords4/res/values/styles.xml b/xwords4/android/app/src/main/res/values/styles.xml similarity index 100% rename from xwords4/android/XWords4/res/values/styles.xml rename to xwords4/android/app/src/main/res/values/styles.xml diff --git a/xwords4/android/XWords4/res/xml/xwprefs.xml b/xwords4/android/app/src/main/res/xml/xwprefs.xml similarity index 100% rename from xwords4/android/XWords4/res/xml/xwprefs.xml rename to xwords4/android/app/src/main/res/xml/xwprefs.xml diff --git a/xwords4/android/scripts/Variant.mk b/xwords4/android/scripts/Variant.mk index cd58f03e9..2617414a0 100644 --- a/xwords4/android/scripts/Variant.mk +++ b/xwords4/android/scripts/Variant.mk @@ -1,38 +1,7 @@ # -*- mode: Makefile; -*- -$(DEST_PATH)/%.java : $(SRC_PATH)/%.java +src/xw4dbg/res/values/strings.xml: src/main/res/values/strings.xml + @mkdir -p $(shell dirname $@) @sed \ - -e "s,\(package org.eehouse.android.\)xw4\(.*\);,\1$(VARIANT)\2;," \ - -e "s,\(import org.eehouse.android.\)xw4\(.*\);,\1$(VARIANT)\2;," \ - < $< > $@ - -$(DEST_PATH)/icon48x48.png : $(SRC_PATH)/icon48x48.png - convert $< -rotate 180 -gravity Center $@ - -$(DEST_PATH)/notify.png : $(SRC_PATH)/notify.png - convert $< -rotate 180 -gravity Center $@ - -$(DEST_PATH)/%.png : $(SRC_PATH)/%.png - @cp $< $@ - -$(DEST_PATH)/%.xml : $(SRC_PATH)/%.xml - @sed \ - -e "s,\(^.*org.eehouse.android.\)xw4\(.*$$\),\1$(VARIANT)\2," \ -e "s,Crosswords,$(APPNAME),g" \ < $< > $@ - -$(DEST_PATH)/%.h : $(SRC_PATH)/%.h - @sed \ - -e "s,\(^.*org/eehouse/android/\)xw4\(.*$$\),\1$(VARIANT)\2," \ - < $< > $@ - -$(DEST_PATH)/%.c : $(SRC_PATH)/%.c - @sed \ - -e "s,\(^.*Java_org_eehouse_android_\)xw4\(.*$$\),\1$(VARIANT)\2," \ - < $< > $@ - -$(DEST_PATH)/%.jar : $(SRC_PATH)/%.jar - @cp $< $@ - -$(DEST_PATH)/% : $(SRC_PATH)/% - @cp $< $@ From 451e9e04ab54ed0e31dece778e51026fbf469498 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:05:18 -0800 Subject: [PATCH 12/30] fix path in script --- xwords4/android/scripts/copy-strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/scripts/copy-strings.py b/xwords4/android/scripts/copy-strings.py index 9efb4efed..b46b57f07 100755 --- a/xwords4/android/scripts/copy-strings.py +++ b/xwords4/android/scripts/copy-strings.py @@ -197,7 +197,7 @@ def main(): # summarize the english file wd = os.path.dirname(sys.argv[0]) - path = wd + '/../XWords4/res/values/strings.xml' + path = wd + '/../app/src/main/res/values/strings.xml' engNames = {} engFormats = {} From ad5d451ef3a3081304760465569805b9d15fd30f Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:15:08 -0800 Subject: [PATCH 13/30] fix image generation --- xwords4/android/{XWords4 => }/img_src/back.svg | 0 xwords4/android/{XWords4 => }/img_src/clear_all.svg | 0 xwords4/android/{XWords4 => }/img_src/content_copy.svg | 0 xwords4/android/{XWords4 => }/img_src/content_discard.svg | 0 xwords4/android/{XWords4 => }/img_src/content_new_net.svg | 0 .../android/{XWords4 => }/img_src/content_new_solo.svg | 0 xwords4/android/{XWords4 => }/img_src/dict.svg | 0 xwords4/android/{XWords4 => }/img_src/down.svg | 0 xwords4/android/{XWords4 => }/img_src/download.svg | 0 xwords4/android/{XWords4 => }/img_src/email.svg | 0 xwords4/android/{XWords4 => }/img_src/multigame.svg | 0 xwords4/android/{XWords4 => }/img_src/new_group.svg | 0 xwords4/android/{XWords4 => }/img_src/prefs.svg | 0 xwords4/android/{XWords4 => }/img_src/relabel.svg | 0 xwords4/android/{XWords4 => }/img_src/reset.svg | 0 xwords4/android/{XWords4 => }/img_src/save.svg | 0 xwords4/android/{XWords4 => }/img_src/search.svg | 0 xwords4/android/{XWords4 => }/img_src/select_all.svg | 0 xwords4/android/{XWords4 => }/img_src/send.svg | 0 xwords4/android/{XWords4 => }/img_src/sologame.svg | 0 xwords4/android/{XWords4 => }/img_src/up.svg | 0 xwords4/android/scripts/images.mk | 2 +- xwords4/android/scripts/mkimages.sh | 8 ++++---- 23 files changed, 5 insertions(+), 5 deletions(-) rename xwords4/android/{XWords4 => }/img_src/back.svg (100%) rename xwords4/android/{XWords4 => }/img_src/clear_all.svg (100%) rename xwords4/android/{XWords4 => }/img_src/content_copy.svg (100%) rename xwords4/android/{XWords4 => }/img_src/content_discard.svg (100%) rename xwords4/android/{XWords4 => }/img_src/content_new_net.svg (100%) rename xwords4/android/{XWords4 => }/img_src/content_new_solo.svg (100%) rename xwords4/android/{XWords4 => }/img_src/dict.svg (100%) rename xwords4/android/{XWords4 => }/img_src/down.svg (100%) rename xwords4/android/{XWords4 => }/img_src/download.svg (100%) rename xwords4/android/{XWords4 => }/img_src/email.svg (100%) rename xwords4/android/{XWords4 => }/img_src/multigame.svg (100%) rename xwords4/android/{XWords4 => }/img_src/new_group.svg (100%) rename xwords4/android/{XWords4 => }/img_src/prefs.svg (100%) rename xwords4/android/{XWords4 => }/img_src/relabel.svg (100%) rename xwords4/android/{XWords4 => }/img_src/reset.svg (100%) rename xwords4/android/{XWords4 => }/img_src/save.svg (100%) rename xwords4/android/{XWords4 => }/img_src/search.svg (100%) rename xwords4/android/{XWords4 => }/img_src/select_all.svg (100%) rename xwords4/android/{XWords4 => }/img_src/send.svg (100%) rename xwords4/android/{XWords4 => }/img_src/sologame.svg (100%) rename xwords4/android/{XWords4 => }/img_src/up.svg (100%) diff --git a/xwords4/android/XWords4/img_src/back.svg b/xwords4/android/img_src/back.svg similarity index 100% rename from xwords4/android/XWords4/img_src/back.svg rename to xwords4/android/img_src/back.svg diff --git a/xwords4/android/XWords4/img_src/clear_all.svg b/xwords4/android/img_src/clear_all.svg similarity index 100% rename from xwords4/android/XWords4/img_src/clear_all.svg rename to xwords4/android/img_src/clear_all.svg diff --git a/xwords4/android/XWords4/img_src/content_copy.svg b/xwords4/android/img_src/content_copy.svg similarity index 100% rename from xwords4/android/XWords4/img_src/content_copy.svg rename to xwords4/android/img_src/content_copy.svg diff --git a/xwords4/android/XWords4/img_src/content_discard.svg b/xwords4/android/img_src/content_discard.svg similarity index 100% rename from xwords4/android/XWords4/img_src/content_discard.svg rename to xwords4/android/img_src/content_discard.svg diff --git a/xwords4/android/XWords4/img_src/content_new_net.svg b/xwords4/android/img_src/content_new_net.svg similarity index 100% rename from xwords4/android/XWords4/img_src/content_new_net.svg rename to xwords4/android/img_src/content_new_net.svg diff --git a/xwords4/android/XWords4/img_src/content_new_solo.svg b/xwords4/android/img_src/content_new_solo.svg similarity index 100% rename from xwords4/android/XWords4/img_src/content_new_solo.svg rename to xwords4/android/img_src/content_new_solo.svg diff --git a/xwords4/android/XWords4/img_src/dict.svg b/xwords4/android/img_src/dict.svg similarity index 100% rename from xwords4/android/XWords4/img_src/dict.svg rename to xwords4/android/img_src/dict.svg diff --git a/xwords4/android/XWords4/img_src/down.svg b/xwords4/android/img_src/down.svg similarity index 100% rename from xwords4/android/XWords4/img_src/down.svg rename to xwords4/android/img_src/down.svg diff --git a/xwords4/android/XWords4/img_src/download.svg b/xwords4/android/img_src/download.svg similarity index 100% rename from xwords4/android/XWords4/img_src/download.svg rename to xwords4/android/img_src/download.svg diff --git a/xwords4/android/XWords4/img_src/email.svg b/xwords4/android/img_src/email.svg similarity index 100% rename from xwords4/android/XWords4/img_src/email.svg rename to xwords4/android/img_src/email.svg diff --git a/xwords4/android/XWords4/img_src/multigame.svg b/xwords4/android/img_src/multigame.svg similarity index 100% rename from xwords4/android/XWords4/img_src/multigame.svg rename to xwords4/android/img_src/multigame.svg diff --git a/xwords4/android/XWords4/img_src/new_group.svg b/xwords4/android/img_src/new_group.svg similarity index 100% rename from xwords4/android/XWords4/img_src/new_group.svg rename to xwords4/android/img_src/new_group.svg diff --git a/xwords4/android/XWords4/img_src/prefs.svg b/xwords4/android/img_src/prefs.svg similarity index 100% rename from xwords4/android/XWords4/img_src/prefs.svg rename to xwords4/android/img_src/prefs.svg diff --git a/xwords4/android/XWords4/img_src/relabel.svg b/xwords4/android/img_src/relabel.svg similarity index 100% rename from xwords4/android/XWords4/img_src/relabel.svg rename to xwords4/android/img_src/relabel.svg diff --git a/xwords4/android/XWords4/img_src/reset.svg b/xwords4/android/img_src/reset.svg similarity index 100% rename from xwords4/android/XWords4/img_src/reset.svg rename to xwords4/android/img_src/reset.svg diff --git a/xwords4/android/XWords4/img_src/save.svg b/xwords4/android/img_src/save.svg similarity index 100% rename from xwords4/android/XWords4/img_src/save.svg rename to xwords4/android/img_src/save.svg diff --git a/xwords4/android/XWords4/img_src/search.svg b/xwords4/android/img_src/search.svg similarity index 100% rename from xwords4/android/XWords4/img_src/search.svg rename to xwords4/android/img_src/search.svg diff --git a/xwords4/android/XWords4/img_src/select_all.svg b/xwords4/android/img_src/select_all.svg similarity index 100% rename from xwords4/android/XWords4/img_src/select_all.svg rename to xwords4/android/img_src/select_all.svg diff --git a/xwords4/android/XWords4/img_src/send.svg b/xwords4/android/img_src/send.svg similarity index 100% rename from xwords4/android/XWords4/img_src/send.svg rename to xwords4/android/img_src/send.svg diff --git a/xwords4/android/XWords4/img_src/sologame.svg b/xwords4/android/img_src/sologame.svg similarity index 100% rename from xwords4/android/XWords4/img_src/sologame.svg rename to xwords4/android/img_src/sologame.svg diff --git a/xwords4/android/XWords4/img_src/up.svg b/xwords4/android/img_src/up.svg similarity index 100% rename from xwords4/android/XWords4/img_src/up.svg rename to xwords4/android/img_src/up.svg diff --git a/xwords4/android/scripts/images.mk b/xwords4/android/scripts/images.mk index f8532b720..3df05d0a0 100644 --- a/xwords4/android/scripts/images.mk +++ b/xwords4/android/scripts/images.mk @@ -1,7 +1,7 @@ # -*- mode: Makefile -*- IMG_SRC = ./img_src -IMG_DEST = res +IMG_DEST = app/src/main/res PARAMS = -transparent white -negate # $(IMG_DEST)/drawable/%_gen.png: diff --git a/xwords4/android/scripts/mkimages.sh b/xwords4/android/scripts/mkimages.sh index e527af221..27fc906b9 100755 --- a/xwords4/android/scripts/mkimages.sh +++ b/xwords4/android/scripts/mkimages.sh @@ -2,8 +2,8 @@ set -e -u -if [ ! -e build.xml ]; then - echo "no build.xml; please run from root of source tree" +if [ ! -d img_src ]; then + echo "no img_src; please run from root of source tree" exit 1 fi @@ -31,11 +31,11 @@ done TARGET_DIRS="drawable-hdpi drawable-mdpi drawable-xhdpi" - for SVG in img_src/*.svg; do for DIR in $TARGET_DIRS; do SVG=$(basename $SVG) - OUT=res/$DIR/${SVG/.svg/__gen.png} + OUT=app/src/main/res/$DIR/${SVG/.svg/__gen.png} + mkdir -p $(dirname $OUT) if [ -z "$CLEAN" ]; then make -f $(dirname $0)/images.mk $OUT else From 49242f78cf4db38f6bf79531ed9e70739e41aaf6 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:27:23 -0800 Subject: [PATCH 14/30] more script fixes; move jni code --- .../src/main}/AndroidManifest.xml | 0 xwords4/android/{XWords4 => }/jni/Android.mk | 0 .../{XWords4 => }/jni/LocalizedStrIncludes.h | 0 xwords4/android/{XWords4 => }/jni/anddict.c | 0 xwords4/android/{XWords4 => }/jni/anddict.h | 0 xwords4/android/{XWords4 => }/jni/andglobals.h | 0 xwords4/android/{XWords4 => }/jni/andutils.c | 0 xwords4/android/{XWords4 => }/jni/andutils.h | 0 .../android/{XWords4 => }/jni/drawwrapper.c | 0 .../android/{XWords4 => }/jni/drawwrapper.h | 0 .../android/{XWords4 => }/jni/jniutlswrapper.c | 0 .../android/{XWords4 => }/jni/jniutlswrapper.h | 0 xwords4/android/{XWords4 => }/jni/paths.h | 0 xwords4/android/{XWords4 => }/jni/utils.c | 0 .../android/{XWords4 => }/jni/utilwrapper.c | 0 .../android/{XWords4 => }/jni/utilwrapper.h | 0 .../android/{XWords4 => }/jni/xportwrapper.c | 0 .../android/{XWords4 => }/jni/xportwrapper.h | 0 xwords4/android/{XWords4 => }/jni/xptypes.h | 0 xwords4/android/{XWords4 => }/jni/xwjni.c | 0 xwords4/android/scripts/mk_xml.py | 18 ++++++++---------- 21 files changed, 8 insertions(+), 10 deletions(-) rename xwords4/android/{XWords4 => app/src/main}/AndroidManifest.xml (100%) rename xwords4/android/{XWords4 => }/jni/Android.mk (100%) rename xwords4/android/{XWords4 => }/jni/LocalizedStrIncludes.h (100%) rename xwords4/android/{XWords4 => }/jni/anddict.c (100%) rename xwords4/android/{XWords4 => }/jni/anddict.h (100%) rename xwords4/android/{XWords4 => }/jni/andglobals.h (100%) rename xwords4/android/{XWords4 => }/jni/andutils.c (100%) rename xwords4/android/{XWords4 => }/jni/andutils.h (100%) rename xwords4/android/{XWords4 => }/jni/drawwrapper.c (100%) rename xwords4/android/{XWords4 => }/jni/drawwrapper.h (100%) rename xwords4/android/{XWords4 => }/jni/jniutlswrapper.c (100%) rename xwords4/android/{XWords4 => }/jni/jniutlswrapper.h (100%) rename xwords4/android/{XWords4 => }/jni/paths.h (100%) rename xwords4/android/{XWords4 => }/jni/utils.c (100%) rename xwords4/android/{XWords4 => }/jni/utilwrapper.c (100%) rename xwords4/android/{XWords4 => }/jni/utilwrapper.h (100%) rename xwords4/android/{XWords4 => }/jni/xportwrapper.c (100%) rename xwords4/android/{XWords4 => }/jni/xportwrapper.h (100%) rename xwords4/android/{XWords4 => }/jni/xptypes.h (100%) rename xwords4/android/{XWords4 => }/jni/xwjni.c (100%) diff --git a/xwords4/android/XWords4/AndroidManifest.xml b/xwords4/android/app/src/main/AndroidManifest.xml similarity index 100% rename from xwords4/android/XWords4/AndroidManifest.xml rename to xwords4/android/app/src/main/AndroidManifest.xml diff --git a/xwords4/android/XWords4/jni/Android.mk b/xwords4/android/jni/Android.mk similarity index 100% rename from xwords4/android/XWords4/jni/Android.mk rename to xwords4/android/jni/Android.mk diff --git a/xwords4/android/XWords4/jni/LocalizedStrIncludes.h b/xwords4/android/jni/LocalizedStrIncludes.h similarity index 100% rename from xwords4/android/XWords4/jni/LocalizedStrIncludes.h rename to xwords4/android/jni/LocalizedStrIncludes.h diff --git a/xwords4/android/XWords4/jni/anddict.c b/xwords4/android/jni/anddict.c similarity index 100% rename from xwords4/android/XWords4/jni/anddict.c rename to xwords4/android/jni/anddict.c diff --git a/xwords4/android/XWords4/jni/anddict.h b/xwords4/android/jni/anddict.h similarity index 100% rename from xwords4/android/XWords4/jni/anddict.h rename to xwords4/android/jni/anddict.h diff --git a/xwords4/android/XWords4/jni/andglobals.h b/xwords4/android/jni/andglobals.h similarity index 100% rename from xwords4/android/XWords4/jni/andglobals.h rename to xwords4/android/jni/andglobals.h diff --git a/xwords4/android/XWords4/jni/andutils.c b/xwords4/android/jni/andutils.c similarity index 100% rename from xwords4/android/XWords4/jni/andutils.c rename to xwords4/android/jni/andutils.c diff --git a/xwords4/android/XWords4/jni/andutils.h b/xwords4/android/jni/andutils.h similarity index 100% rename from xwords4/android/XWords4/jni/andutils.h rename to xwords4/android/jni/andutils.h diff --git a/xwords4/android/XWords4/jni/drawwrapper.c b/xwords4/android/jni/drawwrapper.c similarity index 100% rename from xwords4/android/XWords4/jni/drawwrapper.c rename to xwords4/android/jni/drawwrapper.c diff --git a/xwords4/android/XWords4/jni/drawwrapper.h b/xwords4/android/jni/drawwrapper.h similarity index 100% rename from xwords4/android/XWords4/jni/drawwrapper.h rename to xwords4/android/jni/drawwrapper.h diff --git a/xwords4/android/XWords4/jni/jniutlswrapper.c b/xwords4/android/jni/jniutlswrapper.c similarity index 100% rename from xwords4/android/XWords4/jni/jniutlswrapper.c rename to xwords4/android/jni/jniutlswrapper.c diff --git a/xwords4/android/XWords4/jni/jniutlswrapper.h b/xwords4/android/jni/jniutlswrapper.h similarity index 100% rename from xwords4/android/XWords4/jni/jniutlswrapper.h rename to xwords4/android/jni/jniutlswrapper.h diff --git a/xwords4/android/XWords4/jni/paths.h b/xwords4/android/jni/paths.h similarity index 100% rename from xwords4/android/XWords4/jni/paths.h rename to xwords4/android/jni/paths.h diff --git a/xwords4/android/XWords4/jni/utils.c b/xwords4/android/jni/utils.c similarity index 100% rename from xwords4/android/XWords4/jni/utils.c rename to xwords4/android/jni/utils.c diff --git a/xwords4/android/XWords4/jni/utilwrapper.c b/xwords4/android/jni/utilwrapper.c similarity index 100% rename from xwords4/android/XWords4/jni/utilwrapper.c rename to xwords4/android/jni/utilwrapper.c diff --git a/xwords4/android/XWords4/jni/utilwrapper.h b/xwords4/android/jni/utilwrapper.h similarity index 100% rename from xwords4/android/XWords4/jni/utilwrapper.h rename to xwords4/android/jni/utilwrapper.h diff --git a/xwords4/android/XWords4/jni/xportwrapper.c b/xwords4/android/jni/xportwrapper.c similarity index 100% rename from xwords4/android/XWords4/jni/xportwrapper.c rename to xwords4/android/jni/xportwrapper.c diff --git a/xwords4/android/XWords4/jni/xportwrapper.h b/xwords4/android/jni/xportwrapper.h similarity index 100% rename from xwords4/android/XWords4/jni/xportwrapper.h rename to xwords4/android/jni/xportwrapper.h diff --git a/xwords4/android/XWords4/jni/xptypes.h b/xwords4/android/jni/xptypes.h similarity index 100% rename from xwords4/android/XWords4/jni/xptypes.h rename to xwords4/android/jni/xptypes.h diff --git a/xwords4/android/XWords4/jni/xwjni.c b/xwords4/android/jni/xwjni.c similarity index 100% rename from xwords4/android/XWords4/jni/xwjni.c rename to xwords4/android/jni/xwjni.c diff --git a/xwords4/android/scripts/mk_xml.py b/xwords4/android/scripts/mk_xml.py index 034ac993e..a02f5ef99 100755 --- a/xwords4/android/scripts/mk_xml.py +++ b/xwords4/android/scripts/mk_xml.py @@ -79,7 +79,7 @@ def checkText( text ): seen.add( digit ) return text -def printStrings( pairs, outfile, target, variant ): +def printStrings( pairs, outfile, target ): match = CLASS_NAME.match(outfile) if not match: print "did you give me a java file?:", outfile @@ -92,20 +92,20 @@ def printStrings( pairs, outfile, target, variant ): /*********************************************************************** * Generated file (by %s); do not edit!!! ***********************************************************************/ -package org.eehouse.android.%s.loc; +package org.eehouse.android.xw4.loc; import android.content.Context; import junit.framework.Assert; -import org.eehouse.android.%s.R; -import org.eehouse.android.%s.DbgUtils; +import org.eehouse.android.xw4.R; +import org.eehouse.android.xw4.DbgUtils; public class %s { private static final String TAG = %s.class.getSimpleName(); public static final int NOT_FOUND = -1; protected static final int[] S_IDS = { """ - fil.write( lines % (sys.argv[0], variant, variant, variant, name, name) ) + fil.write( lines % (sys.argv[0], name, name) ) keys = pairs.keys() for ii in range( len( keys ) ): @@ -179,15 +179,13 @@ def main(): outfile = '' outfileDbg = '' target='' - variant='' - pairs, rest = getopt.getopt(sys.argv[1:], "o:t:d:v:") + pairs, rest = getopt.getopt(sys.argv[1:], "o:t:d:") for option, value in pairs: if option == '-o': outfile = value elif option == '-t': target = value - elif option == '-v': variant = value # Gather all localizable strings - pairs = getStrings("res/values/strings.xml", False) + pairs = getStrings("app/src/main/res/values/strings.xml", False) # for subdir, dirs, files in os.walk('res_src'): # for file in files: @@ -195,7 +193,7 @@ def main(): # dest = src.replace( 'res_src', 'res', 1 ) # xform( src, dest ) - if outfile: printStrings( pairs, outfile, target, variant ) + if outfile: printStrings( pairs, outfile, target ) ############################################################################## if __name__ == '__main__': From fcdb66eb874e17972d161614323e90f6741e4aef Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:28:19 -0800 Subject: [PATCH 15/30] forgot a file --- xwords4/android/{XWords4 => }/jni/.gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename xwords4/android/{XWords4 => }/jni/.gitignore (100%) diff --git a/xwords4/android/XWords4/jni/.gitignore b/xwords4/android/jni/.gitignore similarity index 100% rename from xwords4/android/XWords4/jni/.gitignore rename to xwords4/android/jni/.gitignore From f090e86e268fca9e88aa0045ec84e03879d299fc Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 07:34:32 -0800 Subject: [PATCH 16/30] move res files --- .../{XWords4 => app/src/main}/res/.gitignore | 0 .../src/main}/res/drawable-hdpi/.gitignore | 0 .../src/main}/res/drawable-hdpi/content_edit.png | Bin .../src/main}/res/drawable-mdpi/.gitignore | 0 .../src/main}/res/drawable-mdpi/content_edit.png | Bin .../src/main}/res/drawable-xhdpi/.gitignore | 0 .../src/main}/res/drawable-xhdpi/content_edit.png | Bin .../src/main}/res/drawable/dicticon.png | Bin .../src/main}/res/drawable/downarrow.png | Bin .../main}/res/drawable/expander_ic_maximized.9.png | Bin .../main}/res/drawable/expander_ic_minimized.9.png | Bin .../{XWords4 => app/src/main}/res/drawable/flip.png | Bin .../src/main}/res/drawable/icon48x48.png | Bin .../src/main}/res/drawable/in_arrow.png | Bin .../src/main}/res/drawable/in_arrow_active.png | Bin .../src/main}/res/drawable/next_hint.png | Bin .../src/main}/res/drawable/notify.png | Bin .../src/main}/res/drawable/origin.png | Bin .../src/main}/res/drawable/out_arrow.png | Bin .../src/main}/res/drawable/out_arrow_active.png | Bin .../src/main}/res/drawable/prev_hint.png | Bin .../src/main}/res/drawable/refresh.png | Bin .../src/main}/res/drawable/rightarrow.png | Bin .../src/main}/res/drawable/shuffle.png | Bin .../src/main}/res/drawable/stat_notify_chat.png | Bin .../src/main}/res/drawable/stat_notify_sync.png | Bin .../{XWords4 => app/src/main}/res/drawable/undo.png | Bin .../src/main}/res/drawable/values.png | Bin .../{XWords4 => app/src/main}/res/menu/.gitignore | 0 .../{XWords4 => app/src/main}/res/values/.gitignore | 0 30 files changed, 0 insertions(+), 0 deletions(-) rename xwords4/android/{XWords4 => app/src/main}/res/.gitignore (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-hdpi/.gitignore (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-hdpi/content_edit.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-mdpi/.gitignore (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-mdpi/content_edit.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-xhdpi/.gitignore (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable-xhdpi/content_edit.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/dicticon.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/downarrow.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/expander_ic_maximized.9.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/expander_ic_minimized.9.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/flip.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/icon48x48.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/in_arrow.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/in_arrow_active.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/next_hint.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/notify.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/origin.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/out_arrow.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/out_arrow_active.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/prev_hint.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/refresh.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/rightarrow.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/shuffle.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/stat_notify_chat.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/stat_notify_sync.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/undo.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/drawable/values.png (100%) rename xwords4/android/{XWords4 => app/src/main}/res/menu/.gitignore (100%) rename xwords4/android/{XWords4 => app/src/main}/res/values/.gitignore (100%) diff --git a/xwords4/android/XWords4/res/.gitignore b/xwords4/android/app/src/main/res/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/.gitignore rename to xwords4/android/app/src/main/res/.gitignore diff --git a/xwords4/android/XWords4/res/drawable-hdpi/.gitignore b/xwords4/android/app/src/main/res/drawable-hdpi/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/drawable-hdpi/.gitignore rename to xwords4/android/app/src/main/res/drawable-hdpi/.gitignore diff --git a/xwords4/android/XWords4/res/drawable-hdpi/content_edit.png b/xwords4/android/app/src/main/res/drawable-hdpi/content_edit.png similarity index 100% rename from xwords4/android/XWords4/res/drawable-hdpi/content_edit.png rename to xwords4/android/app/src/main/res/drawable-hdpi/content_edit.png diff --git a/xwords4/android/XWords4/res/drawable-mdpi/.gitignore b/xwords4/android/app/src/main/res/drawable-mdpi/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/drawable-mdpi/.gitignore rename to xwords4/android/app/src/main/res/drawable-mdpi/.gitignore diff --git a/xwords4/android/XWords4/res/drawable-mdpi/content_edit.png b/xwords4/android/app/src/main/res/drawable-mdpi/content_edit.png similarity index 100% rename from xwords4/android/XWords4/res/drawable-mdpi/content_edit.png rename to xwords4/android/app/src/main/res/drawable-mdpi/content_edit.png diff --git a/xwords4/android/XWords4/res/drawable-xhdpi/.gitignore b/xwords4/android/app/src/main/res/drawable-xhdpi/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/drawable-xhdpi/.gitignore rename to xwords4/android/app/src/main/res/drawable-xhdpi/.gitignore diff --git a/xwords4/android/XWords4/res/drawable-xhdpi/content_edit.png b/xwords4/android/app/src/main/res/drawable-xhdpi/content_edit.png similarity index 100% rename from xwords4/android/XWords4/res/drawable-xhdpi/content_edit.png rename to xwords4/android/app/src/main/res/drawable-xhdpi/content_edit.png diff --git a/xwords4/android/XWords4/res/drawable/dicticon.png b/xwords4/android/app/src/main/res/drawable/dicticon.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/dicticon.png rename to xwords4/android/app/src/main/res/drawable/dicticon.png diff --git a/xwords4/android/XWords4/res/drawable/downarrow.png b/xwords4/android/app/src/main/res/drawable/downarrow.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/downarrow.png rename to xwords4/android/app/src/main/res/drawable/downarrow.png diff --git a/xwords4/android/XWords4/res/drawable/expander_ic_maximized.9.png b/xwords4/android/app/src/main/res/drawable/expander_ic_maximized.9.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/expander_ic_maximized.9.png rename to xwords4/android/app/src/main/res/drawable/expander_ic_maximized.9.png diff --git a/xwords4/android/XWords4/res/drawable/expander_ic_minimized.9.png b/xwords4/android/app/src/main/res/drawable/expander_ic_minimized.9.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/expander_ic_minimized.9.png rename to xwords4/android/app/src/main/res/drawable/expander_ic_minimized.9.png diff --git a/xwords4/android/XWords4/res/drawable/flip.png b/xwords4/android/app/src/main/res/drawable/flip.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/flip.png rename to xwords4/android/app/src/main/res/drawable/flip.png diff --git a/xwords4/android/XWords4/res/drawable/icon48x48.png b/xwords4/android/app/src/main/res/drawable/icon48x48.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/icon48x48.png rename to xwords4/android/app/src/main/res/drawable/icon48x48.png diff --git a/xwords4/android/XWords4/res/drawable/in_arrow.png b/xwords4/android/app/src/main/res/drawable/in_arrow.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/in_arrow.png rename to xwords4/android/app/src/main/res/drawable/in_arrow.png diff --git a/xwords4/android/XWords4/res/drawable/in_arrow_active.png b/xwords4/android/app/src/main/res/drawable/in_arrow_active.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/in_arrow_active.png rename to xwords4/android/app/src/main/res/drawable/in_arrow_active.png diff --git a/xwords4/android/XWords4/res/drawable/next_hint.png b/xwords4/android/app/src/main/res/drawable/next_hint.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/next_hint.png rename to xwords4/android/app/src/main/res/drawable/next_hint.png diff --git a/xwords4/android/XWords4/res/drawable/notify.png b/xwords4/android/app/src/main/res/drawable/notify.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/notify.png rename to xwords4/android/app/src/main/res/drawable/notify.png diff --git a/xwords4/android/XWords4/res/drawable/origin.png b/xwords4/android/app/src/main/res/drawable/origin.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/origin.png rename to xwords4/android/app/src/main/res/drawable/origin.png diff --git a/xwords4/android/XWords4/res/drawable/out_arrow.png b/xwords4/android/app/src/main/res/drawable/out_arrow.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/out_arrow.png rename to xwords4/android/app/src/main/res/drawable/out_arrow.png diff --git a/xwords4/android/XWords4/res/drawable/out_arrow_active.png b/xwords4/android/app/src/main/res/drawable/out_arrow_active.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/out_arrow_active.png rename to xwords4/android/app/src/main/res/drawable/out_arrow_active.png diff --git a/xwords4/android/XWords4/res/drawable/prev_hint.png b/xwords4/android/app/src/main/res/drawable/prev_hint.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/prev_hint.png rename to xwords4/android/app/src/main/res/drawable/prev_hint.png diff --git a/xwords4/android/XWords4/res/drawable/refresh.png b/xwords4/android/app/src/main/res/drawable/refresh.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/refresh.png rename to xwords4/android/app/src/main/res/drawable/refresh.png diff --git a/xwords4/android/XWords4/res/drawable/rightarrow.png b/xwords4/android/app/src/main/res/drawable/rightarrow.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/rightarrow.png rename to xwords4/android/app/src/main/res/drawable/rightarrow.png diff --git a/xwords4/android/XWords4/res/drawable/shuffle.png b/xwords4/android/app/src/main/res/drawable/shuffle.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/shuffle.png rename to xwords4/android/app/src/main/res/drawable/shuffle.png diff --git a/xwords4/android/XWords4/res/drawable/stat_notify_chat.png b/xwords4/android/app/src/main/res/drawable/stat_notify_chat.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/stat_notify_chat.png rename to xwords4/android/app/src/main/res/drawable/stat_notify_chat.png diff --git a/xwords4/android/XWords4/res/drawable/stat_notify_sync.png b/xwords4/android/app/src/main/res/drawable/stat_notify_sync.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/stat_notify_sync.png rename to xwords4/android/app/src/main/res/drawable/stat_notify_sync.png diff --git a/xwords4/android/XWords4/res/drawable/undo.png b/xwords4/android/app/src/main/res/drawable/undo.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/undo.png rename to xwords4/android/app/src/main/res/drawable/undo.png diff --git a/xwords4/android/XWords4/res/drawable/values.png b/xwords4/android/app/src/main/res/drawable/values.png similarity index 100% rename from xwords4/android/XWords4/res/drawable/values.png rename to xwords4/android/app/src/main/res/drawable/values.png diff --git a/xwords4/android/XWords4/res/menu/.gitignore b/xwords4/android/app/src/main/res/menu/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/menu/.gitignore rename to xwords4/android/app/src/main/res/menu/.gitignore diff --git a/xwords4/android/XWords4/res/values/.gitignore b/xwords4/android/app/src/main/res/values/.gitignore similarity index 100% rename from xwords4/android/XWords4/res/values/.gitignore rename to xwords4/android/app/src/main/res/values/.gitignore From 0750a771c38f5def2fadfcdf923729ece707289c Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 08:27:48 -0800 Subject: [PATCH 17/30] move java files and get them to compile --- xwords4/android/XWords4/archive/R.java | 7038 ----------------- xwords4/android/app/build.gradle | 14 + .../org/eehouse/android/xw4/ABUtils.java | 0 .../eehouse/android/xw4/BTInviteActivity.java | 0 .../eehouse/android/xw4/BTInviteDelegate.java | 0 .../org/eehouse/android/xw4/BTReceiver.java | 0 .../org/eehouse/android/xw4/BTService.java | 0 .../org/eehouse/android/xw4/BiDiSockWrap.java | 0 .../eehouse/android/xw4/BoardActivity.java | 0 .../org/eehouse/android/xw4/BoardCanvas.java | 0 .../eehouse/android/xw4/BoardContainer.java | 0 .../eehouse/android/xw4/BoardDelegate.java | 0 .../org/eehouse/android/xw4/BoardFrag.java | 0 .../org/eehouse/android/xw4/BoardView.java | 0 .../org/eehouse/android/xw4/ChatActivity.java | 0 .../org/eehouse/android/xw4/ChatDelegate.java | 0 .../org/eehouse/android/xw4/ChatFrag.java | 0 .../eehouse/android/xw4/CommsTransport.java | 0 .../xw4/ConfirmingCheckBoxPreference.java | 0 .../android/xw4/ConnStatusHandler.java | 0 .../android/xw4/ConnViaViewLayout.java | 0 .../org/eehouse/android/xw4/CrashTrack.java | 0 .../org/eehouse/android/xw4/DBHelper.java | 0 .../org/eehouse/android/xw4/DBUtils.java | 2 +- .../org/eehouse/android/xw4/DbgUtils.java | 0 .../org/eehouse/android/xw4/DelegateBase.java | 0 .../org/eehouse/android/xw4/Delegator.java | 0 .../java}/org/eehouse/android/xw4/DevID.java | 0 .../android/xw4/DictBrowseActivity.java | 0 .../android/xw4/DictBrowseDelegate.java | 0 .../eehouse/android/xw4/DictBrowseFrag.java | 0 .../eehouse/android/xw4/DictLangCache.java | 0 .../android/xw4/DictListPreference.java | 0 .../org/eehouse/android/xw4/DictUtils.java | 0 .../eehouse/android/xw4/DictsActivity.java | 0 .../eehouse/android/xw4/DictsDelegate.java | 0 .../org/eehouse/android/xw4/DictsFrag.java | 0 .../eehouse/android/xw4/DispatchNotify.java | 0 .../org/eehouse/android/xw4/DlgDelegate.java | 4 +- .../java}/org/eehouse/android/xw4/DlgID.java | 0 .../org/eehouse/android/xw4/DlgState.java | 0 .../eehouse/android/xw4/DrawSelDelegate.java | 0 .../eehouse/android/xw4/DualpaneDelegate.java | 0 .../eehouse/android/xw4/DwnldActivity.java | 0 .../eehouse/android/xw4/DwnldDelegate.java | 0 .../android/xw4/EditColorPreference.java | 0 .../eehouse/android/xw4/ExpiringDelegate.java | 0 .../android/xw4/ExpiringLinearLayout.java | 0 .../eehouse/android/xw4/ExpiringTextView.java | 0 .../eehouse/android/xw4/FirstRunDialog.java | 0 .../org/eehouse/android/xw4/FragActivity.java | 0 .../eehouse/android/xw4/GCMIntentService.java | 6 +- .../android/xw4/GameConfigActivity.java | 0 .../android/xw4/GameConfigDelegate.java | 0 .../eehouse/android/xw4/GameConfigFrag.java | 0 .../eehouse/android/xw4/GameListGroup.java | 0 .../org/eehouse/android/xw4/GameListItem.java | 0 .../org/eehouse/android/xw4/GameLock.java | 0 .../org/eehouse/android/xw4/GameNamer.java | 0 .../org/eehouse/android/xw4/GameUtils.java | 0 .../android/xw4/GamesListDelegate.java | 0 .../eehouse/android/xw4/GamesListFrag.java | 0 .../android/xw4/GroupStateListener.java | 0 .../android/xw4/HeaderWithExpander.java | 0 .../eehouse/android/xw4/InviteActivity.java | 0 .../eehouse/android/xw4/InviteDelegate.java | 0 .../android/xw4/LangListPreference.java | 0 .../eehouse/android/xw4/ListDelegateBase.java | 0 .../org/eehouse/android/xw4/ListGroup.java | 0 .../org/eehouse/android/xw4/LookupAlert.java | 0 .../org/eehouse/android/xw4/MainActivity.java | 0 .../android/xw4/MountEventReceiver.java | 0 .../org/eehouse/android/xw4/MultiMsgSink.java | 0 .../org/eehouse/android/xw4/MultiService.java | 0 .../org/eehouse/android/xw4/NFCUtils.java | 0 .../eehouse/android/xw4/NagTurnReceiver.java | 0 .../eehouse/android/xw4/NetLaunchInfo.java | 0 .../eehouse/android/xw4/NetStateCache.java | 0 .../org/eehouse/android/xw4/NetUtils.java | 0 .../org/eehouse/android/xw4/NotAgainView.java | 0 .../eehouse/android/xw4/OnBootReceiver.java | 0 .../org/eehouse/android/xw4/Perms23.java | 0 .../android/xw4/PollListPreference.java | 0 .../eehouse/android/xw4/PrefsActivity.java | 0 .../eehouse/android/xw4/PrefsDelegate.java | 0 .../eehouse/android/xw4/RefreshNamesTask.java | 0 .../android/xw4/RelayCheckBoxPreference.java | 0 .../android/xw4/RelayInviteActivity.java | 0 .../android/xw4/RelayInviteDelegate.java | 0 .../eehouse/android/xw4/RelayReceiver.java | 0 .../org/eehouse/android/xw4/RelayService.java | 4 +- .../org/eehouse/android/xw4/RequestCode.java | 0 .../android/xw4/SMSCheckBoxPreference.java | 0 .../android/xw4/SMSInviteActivity.java | 0 .../android/xw4/SMSInviteDelegate.java | 0 .../org/eehouse/android/xw4/SMSReceiver.java | 0 .../org/eehouse/android/xw4/SMSService.java | 0 .../eehouse/android/xw4/SelectableItem.java | 0 .../android/xw4/StudyListActivity.java | 0 .../android/xw4/StudyListDelegate.java | 0 .../eehouse/android/xw4/StudyListFrag.java | 0 .../org/eehouse/android/xw4/ThumbCanvas.java | 0 .../org/eehouse/android/xw4/Toolbar.java | 0 .../org/eehouse/android/xw4/TwoStrsItem.java | 0 .../android/xw4/UpdateCheckReceiver.java | 4 +- .../java}/org/eehouse/android/xw4/Utils.java | 2 +- .../android/xw4/WiDirInviteActivity.java | 0 .../android/xw4/WiDirInviteDelegate.java | 0 .../org/eehouse/android/xw4/WiDirService.java | 18 +- .../org/eehouse/android/xw4/XWActivity.java | 0 .../java}/org/eehouse/android/xw4/XWApp.java | 0 .../android/xw4/XWConnAddrPreference.java | 0 .../org/eehouse/android/xw4/XWConstants.java | 0 .../android/xw4/XWDevIDPreference.java | 0 .../android/xw4/XWEditTextPreference.java | 0 .../eehouse/android/xw4/XWExpListAdapter.java | 0 .../org/eehouse/android/xw4/XWFragment.java | 0 .../eehouse/android/xw4/XWListAdapter.java | 0 .../org/eehouse/android/xw4/XWListItem.java | 0 .../eehouse/android/xw4/XWListPreference.java | 0 .../org/eehouse/android/xw4/XWPacket.java | 0 .../org/eehouse/android/xw4/XWPrefs.java | 0 .../org/eehouse/android/xw4/XWService.java | 0 .../android/xw4/XWSumListPreference.java | 0 .../android/xw4/XWThumbListPreference.java | 0 .../eehouse/android/xw4/jni/BoardDims.java | 0 .../eehouse/android/xw4/jni/BoardHandler.java | 0 .../eehouse/android/xw4/jni/CommonPrefs.java | 0 .../eehouse/android/xw4/jni/CommsAddrRec.java | 0 .../eehouse/android/xw4/jni/CurGameInfo.java | 0 .../org/eehouse/android/xw4/jni/DictInfo.java | 0 .../org/eehouse/android/xw4/jni/DrawCtx.java | 0 .../android/xw4/jni/DrawScoreInfo.java | 0 .../eehouse/android/xw4/jni/GameSummary.java | 0 .../eehouse/android/xw4/jni/JNIThread.java | 0 .../org/eehouse/android/xw4/jni/JNIUtils.java | 0 .../eehouse/android/xw4/jni/JNIUtilsImpl.java | 0 .../eehouse/android/xw4/jni/LastMoveInfo.java | 0 .../eehouse/android/xw4/jni/LocalPlayer.java | 0 .../eehouse/android/xw4/jni/SyncedDraw.java | 0 .../android/xw4/jni/TransportProcs.java | 0 .../org/eehouse/android/xw4/jni/UtilCtxt.java | 0 .../eehouse/android/xw4/jni/UtilCtxtImpl.java | 0 .../org/eehouse/android/xw4/jni/XwJNI.java | 0 .../eehouse/android/xw4/loc/LocActivity.java | 0 .../eehouse/android/xw4/loc/LocDelegate.java | 0 .../org/eehouse/android/xw4/loc/LocIDs.java | 0 .../android/xw4/loc/LocItemEditActivity.java | 0 .../android/xw4/loc/LocItemEditDelegate.java | 0 .../android/xw4/loc/LocListAdapter.java | 0 .../eehouse/android/xw4/loc/LocListItem.java | 0 .../eehouse/android/xw4/loc/LocSearcher.java | 0 .../org/eehouse/android/xw4/loc/LocUtils.java | 0 .../xw4/loc/XlatingSpinnerAdapter.java | 0 .../libs/android-support-v13.jar | Bin xwords4/android/{XWords4 => }/libs/gcm.jar | Bin 156 files changed, 34 insertions(+), 7058 deletions(-) delete mode 100644 xwords4/android/XWords4/archive/R.java rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ABUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BTInviteActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BTInviteDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BTReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BTService.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BiDiSockWrap.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardCanvas.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardContainer.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/BoardView.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ChatActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ChatDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ChatFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/CommsTransport.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ConfirmingCheckBoxPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ConnStatusHandler.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ConnViaViewLayout.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/CrashTrack.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DBHelper.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DBUtils.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DbgUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DelegateBase.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/Delegator.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DevID.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictBrowseActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictBrowseDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictBrowseFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictLangCache.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictsActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictsDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DictsFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DispatchNotify.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DlgDelegate.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DlgID.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DlgState.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DrawSelDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DualpaneDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DwnldActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/DwnldDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/EditColorPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ExpiringDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ExpiringLinearLayout.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ExpiringTextView.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/FirstRunDialog.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/FragActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GCMIntentService.java (96%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameConfigActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameConfigDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameConfigFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameListGroup.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameListItem.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameLock.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameNamer.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GameUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GamesListDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GamesListFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/GroupStateListener.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/HeaderWithExpander.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/InviteActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/InviteDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/LangListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ListDelegateBase.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ListGroup.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/LookupAlert.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/MainActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/MountEventReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/MultiMsgSink.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/MultiService.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NFCUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NagTurnReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NetLaunchInfo.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NetStateCache.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NetUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/NotAgainView.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/OnBootReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/Perms23.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/PollListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/PrefsActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/PrefsDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RefreshNamesTask.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RelayCheckBoxPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RelayInviteActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RelayInviteDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RelayReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RelayService.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/RequestCode.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SMSCheckBoxPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SMSInviteActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SMSInviteDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SMSReceiver.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SMSService.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/SelectableItem.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/StudyListActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/StudyListDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/StudyListFrag.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/ThumbCanvas.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/Toolbar.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/TwoStrsItem.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/UpdateCheckReceiver.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/Utils.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/WiDirInviteActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/WiDirInviteDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/WiDirService.java (99%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWApp.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWConnAddrPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWConstants.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWDevIDPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWEditTextPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWExpListAdapter.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWFragment.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWListAdapter.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWListItem.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWPacket.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWPrefs.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWService.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWSumListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/XWThumbListPreference.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/BoardDims.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/BoardHandler.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/CommonPrefs.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/CommsAddrRec.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/CurGameInfo.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/DictInfo.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/DrawCtx.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/DrawScoreInfo.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/GameSummary.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/JNIThread.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/JNIUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/JNIUtilsImpl.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/LastMoveInfo.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/LocalPlayer.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/SyncedDraw.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/TransportProcs.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/UtilCtxt.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/UtilCtxtImpl.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/jni/XwJNI.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocIDs.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocItemEditActivity.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocItemEditDelegate.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocListAdapter.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocListItem.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocSearcher.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/LocUtils.java (100%) rename xwords4/android/{XWords4/src => app/src/main/java}/org/eehouse/android/xw4/loc/XlatingSpinnerAdapter.java (100%) rename xwords4/android/{XWords4 => }/libs/android-support-v13.jar (100%) rename xwords4/android/{XWords4 => }/libs/gcm.jar (100%) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java deleted file mode 100644 index ecbda35c5..000000000 --- a/xwords4/android/XWords4/archive/R.java +++ /dev/null @@ -1,7038 +0,0 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package org.eehouse.android.xw4; - -public final class R { - public static final class array { - /** string name="dict_url">http://10.0.2.2/~eehouse/and_dictsÊtes-vous sûr de vouloir recommencer les %1$d - parties sélectionnées ?\n\n(Recommencer fait perdre tous les coups et -toutes les informations de connexion.) - */ - public static final int confirm_reset_fmt=0x7f090002; - /** Êtes-vous sûr de vouloir effacer les -%1$d parties sélectionnées ? Cette action ne peut pas être annulée. - */ - public static final int confirm_seldeletes_fmt=0x7f090001; - /** Are you sure you want to - delete the %1$d selected word[s]?\n\n(This action cannot be undone.) -Êtes-vous sûr de vouloir effacer -les %1$d mots sélectionnés ?\n\n(Cette action ne peut pas être annulée.) - */ - public static final int confirm_studylist_clear_fmt=0x7f090014; - /** %1$s (%2$d games) -%1$s (%2$d parties) - */ - public static final int group_name_fmt=0x7f090013; - /** Are you sure you want to delete - the %1$d selected group[s]? -Êtes-vous sûr de vouloir effacer les -%1$d groupes sélectionnés ? - */ - public static final int groups_confirm_del_fmt=0x7f090011; - /** \n\n(%1$d game[s] will - also be deleted.) -\n\n(%1$d parties seront aussi -effacées.) - */ - public static final int groups_confirm_del_games_fmt=0x7f090012; - /** - -Please select the %1$d device[s] - you want to include in this game. Use the \"%2$s\" - button if you don\'t see a device you expect. -Sélectionnez les %1$d périphériques que -vous voulez intégrer dans cette partie. Utilisez le bouton \"%2$s\" si vous ne -voyez pas un périphérique que vous attendez. - */ - public static final int invite_bt_desc_fmt=0x7f09000b; - /** If a networked game is opened and is not complete, i.e. if it - is listed as expecting remote players who have not yet shown - up, then the most likely explanation is that none has been - invited. (It's also possible that an invitation has been - sent, but I have no way of knowing that.) So every time I - open such a game I give the user a chance to issue an - invititation while trying to warn him not to send duplicates. - The number of players missing is substituted for "%1$d". - If a networked game is opened and is not complete, i.e. if it - is listed as expecting remote players who have not yet shown - up, then the most likely explanation is that none has been - invited. (It's also possible that an invitation has been - sent, but I have no way of knowing that.) So every time I - open such a game I give the user a chance to issue an - invititation while trying to warn him not to send duplicates. - The number of players missing is substituted for "%1$d". -This game is missing %1$d remote - player[s]. Would you like to invite someone to join - assuming - you haven\'t already? -Il manque %1$d joueur[s] distant[s] à cette -partie. Voulez-vous inviter quelqu\'un - - à moins que vous ne l\'ayez déjà -fait ? - */ - public static final int invite_msg_fmt=0x7f090004; - /** - */ - public static final int invite_p2p_desc_fmt=0x7f09000e; - /** - */ - public static final int invite_relay_desc_fmt=0x7f09000d; - public static final int invite_sent_fmt=0x7f090005; - /** - -Please check the %1$d phone - number[s] you want to invite to your new game, then tap \"%2$s\". -Vérifiez les %1$d numéros de téléphone -que vous voulez inviter à votre partie, puis touchez \"%2$s\". - */ - public static final int invite_sms_desc_fmt=0x7f09000c; - /** %1$s (%2$d wordlists) -%1$s (%2$d listes de mots) - */ - public static final int lang_name_fmt=0x7f090017; - /** %1$s played %2$s for %3$d points -%1$s a joué %2$s pour %3$d points - */ - public static final int lmi_move_fmt=0x7f09001b; - /** %1$s traded %2$d tiles -%1$s a échangé %2$d jetons - */ - public static final int lmi_trade_fmt=0x7f09001c; - /** Otherwise they're listed with this to give some indication of - how far along they are. I may list "tiles left" someday - instead... - Otherwise they're listed with this to give some indication of - how far along they are. I may list "tiles left" someday - instead... - */ - public static final int moves_fmt=0x7f090000; - /** Text of "toast" (mini window briefly displayed) shown when a - game first connects to the relay. The three substitutions - are the device's order within the game (e.g. 2), the name of - the room, and how many additional players have not yet - registered with the relay in this game. This should be seen - only once per game. - Short for "points", this is shown at the right end of the - tray in place of the first tile placed along with the points - the current move would earn if committed. -pts - Text of "toast" (mini window briefly displayed) shown when a - game first connects to the relay. The three substitutions - are the device's order within the game (e.g. 2), the name of - the room, and how many additional players have not yet - registered with the relay in this game. This should be seen - only once per game. -Device %1$d connected to relay in - room \"%2$s\". Waiting for %3$d player[s]. -Le périphérique %1$d est connecté au -relai dans le salon \"%2$s\". En attente de %3$d joueur[s]. - */ - public static final int msg_relay_waiting_fmt=0x7f090006; - /** %1$d day[s] -%1$d jour[s] - */ - public static final int nag_days_fmt=0x7f09001a; - /** body of warning notification reminder message. First three - are used to build a string based on the length of time that's then - inserted in the fourth. E.g "PlayerName moved more than 2 day[s], - 4 hour[s] ago." -%1$d minute[s] -%1$d minute[s] -%1$d hour[s] -%1$d heure[s] - */ - public static final int nag_hours_fmt=0x7f090019; - /** body of warning notification reminder message. First three - are used to build a string based on the length of time that's then - inserted in the fourth. E.g "PlayerName moved more than 2 day[s], - 4 hour[s] ago." - */ - public static final int nag_minutes_fmt=0x7f090018; - /** Installed %1$d new translations -%1$d nouvelles traductions installées - */ - public static final int new_xlations_fmt=0x7f090016; - /** XLATE-ME -%1$d player[s] -%1$d joueur[s] - */ - public static final int nplayers_fmt=0x7f09001d; - /** %1$d word[s] copied -%1$d mots copiés - */ - public static final int paste_done_fmt=0x7f090015; - /** Text of dialog asking user to confirm a move that exchanges - tiles (instead of forming a new word to earn points) - Text of dialog asking user to confirm a move that exchanges - tiles (instead of forming a new word to earn points) -Are you sure you want to exchange the - %1$d selected tiles (%2$s)? -Êtes-vous sûr de vouloir échanger les %1$d -jetons sélectionnés (%2$s) ? - */ - public static final int query_trade_fmt=0x7f09000a; - /** Shown after "resend messages" menuitem chosen - */ - public static final int resent_msgs_fmt=0x7f09001e; - /** Intro to the paragraph listing all of the tiles remaining - Intro to the paragraph lisiting all of the tiles remaining -%1$d tiles left in pool and all - tray[s]:\n -%1$d jetons restants dans le sac et -tous les chevalets :\n - */ - public static final int strd_remains_expl_fmt=0x7f090009; - /** First line in the remaining tiles dialog (reached by tapping - the number at left end of the scoreboard) - First line in the remaining tiles dialog (reached by tapping - the number at left end of the scoreboard) -%1$d tiles left in pool. -%1$d jetons restants dans le sac. - */ - public static final int strd_remains_header_fmt=0x7f090008; - /** Notifies user of a robot trade move - returned by util_getUserString - Notifies user of a robot trade move -exchanged %1$d tiles. -a échangé %1$d jetons. - */ - public static final int strd_robot_traded_fmt=0x7f090007; - public static final int warn_relay_games_fmt=0x7f090010; - } - public static final class string { - /** copyright info - %1$d torns jugats - about dialog stuff - about dialog stuff - copyright info -Copyright (C) 1998-2015 by Eric - House. This free/open source software is released under the GNU Public - License. - copyright info - */ - public static final int about_copyright=0x7f0501d2; - /** Another paragraph giving credit for work done other than by - Eric House and translators - Another paragraph giving credit for work done other than by - Eric House and translators -Toolbar icons by Sarah Chu. - Another paragraph giving credit for work done other than by - Eric House and translators - */ - public static final int about_credits=0x7f0501d5; - /** - ########################################################### - # :Dialogs: - # About dialog - # - # Dialog giving copyright and other basic info about # the app - ########################################################### - - String giving version info, which is substituted in. - - ########################################################### - # :Dialogs: - # About dialog - # - # Dialog giving copyright and other basic info about # the app - ########################################################### - - String giving version info, which is substituted in. -Crosswords for Android, Version %1$s, - rev %2$s, built on %3$s. - Bylo zahráno %1$d tahů - about dialog stuff - - ########################################################### - # :Dialogs: - # About dialog - # - # Dialog giving copyright and other basic info about # the app - ########################################################### - - String giving version info, which is substituted in. - */ - public static final int about_vers_fmt=0x7f0501d1; - /** Another paragraph in the about dialog - Another paragraph in the about dialog -For a manual or sourcecode see: - http://xwords.sf.net/android.php. To report bugs, suggest - features, offer to help, etc., please email: - xwords@eehouse.org. - Another paragraph in the about dialog - */ - public static final int about_web=0x7f0501d3; - /** %1$s added to %2$s studylist - */ - public static final int add_done_fmt=0x7f050291; - /** Add %1$s to studylist - */ - public static final int add_to_study_fmt=0x7f05028b; - /** Debugging stuff. Localize if you think your langauge users will - care. -XLATE-ME -For debugging - */ - public static final int advanced=0x7f0502ff; - /** This button takes you to the normal Game Configure screen - This button takes you to the normal Game Configure screen -Advanced game settings - This button takes you to the normal Game Configure screen - */ - public static final int advanced_config=0x7f05018e; - /** XLATE-ME -You should never need these... - */ - public static final int advanced_summary=0x7f050300; - public static final int after_restart=0x7f050356; - /** - -The wordlist %1$s contains only - tile information. There are no words to browse. - - */ - public static final int alert_empty_dict_fmt=0x7f0501f0; - public static final int app_name=0x7f050083; - /** Unable to connect to Crosswords - on the device %1$s. Please check that the device is within range - and that Crosswords is installed on it. - */ - public static final int app_not_found_fmt=0x7f0502d7; - public static final int app_version=0x7f050000; - /** the background color of the area outside the board, - e.g. between entries in the scoreboard - the background color of the area outside the board, - e.g. between entries in the scoreboard -Board background - the background color of the area outside the board, - e.g. between entries in the scoreboard - */ - public static final int background=0x7f05014e; - /** Appended to the above in the phonies_warn case. User may - ignore the warning - Appended to the above in the phonies_warn case. User may - ignore the warning -\u0020Do you still want to accept - this move? - Appended to the above in the phonies_warn case. User may - ignore the warning - */ - public static final int badwords_accept=0x7f0500f9; - /** Appended to the above in the phonies_disallow case. User has - lost his turn. - Appended to the above in the phonies_disallow case. User has - lost his turn. - Turn lost. - Appended to the above in the phonies_disallow case. User has - lost his turn. - */ - public static final int badwords_lost=0x7f0500fa; - /** title of the dialog in which the above is posted. - title of the dialog in which the above is posted. -Illegal word[s] - title of the dialog in which the above is posted. - */ - public static final int badwords_title=0x7f0500fb; - /** Blue - */ - public static final int blue=0x7f050152; - /** board menu for small devices only - board menu for small devices only -Browse wordlist - board menu for small devices only - */ - public static final int board_menu_dict=0x7f05022f; - /** - ############################################################ - # :Menus: - # Board screen menu - ############################################################ - - This menu commits the current move as it's been laid out on - the board - system menu for main board view - system menu for main board view - - ############################################################ - # :Menus: - # Board screen menu - ############################################################ - - This menu commits the current move as it's been laid out on - the board - system menu for main board view - - ############################################################ - # :Menus: - # Board screen menu - ############################################################ - - This menu commits the current move as it's been laid out on - the board - */ - public static final int board_menu_done=0x7f0500fc; - /** Brings up "About Crosswords" dialog - Brings up "About Crosswords" dialog - Brings up "About Crosswords" dialog - */ - public static final int board_menu_file_about=0x7f050099; - /** - -Email author - - */ - public static final int board_menu_file_email=0x7f0501f5; - /** menu on Game submenu: brings up dialog listing all tiles in - the language of the game along with how many of each there - are and how many points each is worth. This display is the - same throughout the game. - menu on Game submenu: brings up dialog listing all tiles in - the language of the game along with how many of each there - are and how many points each is worth. This display is the - same throughout the game. -Counts and values… - menu on Game submenu: brings up dialog listing all tiles in - the language of the game along with how many of each there - are and how many points each is worth. This display is the - same throughout the game. - */ - public static final int board_menu_game_counts=0x7f050102; - /** Brings up explanation of the game's final score. If the game - is not yet over, gives you a choice whether to end it now, - and if you decline does nothing. - Brings up explanation of the game's final score. If the game - is not yet over, gives you a choice whether to end it now, - and if you decline does nothing. -Final scores - Brings up explanation of the game's final score. If the game - is not yet over, gives you a choice whether to end it now, - and if you decline does nothing. - */ - public static final int board_menu_game_final=0x7f050105; - /** Brings up listing of all moves played so far this game. - Brings up listing of all moves played so far this game. -Game history… - Brings up listing of all moves played so far this game. - */ - public static final int board_menu_game_history=0x7f050104; - /** menu on Game submenu: brings up dialog listing all tiles not - yet played and not in the rack of the player whose rack is - visible (whose turn it is, generally). This display will - change as tiles are used and depending on what player is - asking. - menu on Game submenu: brings up dialog listing all tiles not - yet played and not in the rack of the player whose rack is - visible (whose turn it is, generally). This display will - change as tiles are used and depending on what player is - asking. -Tiles remaining… - menu on Game submenu: brings up dialog listing all tiles not - yet played and not in the rack of the player whose rack is - visible (whose turn it is, generally). This display will - change as tiles are used and depending on what player is - asking. - */ - public static final int board_menu_game_left=0x7f050103; - /** XLATE-ME -Network stats - */ - public static final int board_menu_game_netstats=0x7f05030a; - /** Meaningful only for networked games, this menu causes all - messages that have not yet been acknowledged by a remote - device in the game to be resent. Eventually I hope to be - able to remove this from non-debug versions of the game - because users should not have to do do this EVER. - Meaningful only for networked games, this menu causes all - messages that have not yet been acknowledged by a remote - device in the game to be resent. Eventually I hope to be - able to remove this from non-debug versions of the game - because users should not have to do do this EVER. -Resend messages - Meaningful only for networked games, this menu causes all - messages that have not yet been acknowledged by a remote - device in the game to be resent. Eventually I hope to be - able to remove this from non-debug versions of the game - because users should not have to do do this EVER. - */ - public static final int board_menu_game_resend=0x7f050107; - /** Resign - */ - public static final int board_menu_game_resign=0x7f050106; - public static final int board_menu_game_showInvites=0x7f05030b; - /** Invite - */ - public static final int board_menu_invite=0x7f050284; - /** - -Pass - - */ - public static final int board_menu_pass=0x7f0501e1; - /** This menu begins an exchange of tiles: puts the board into - trade mode. - This menu begins an exchange of tiles: puts the board into - trade mode. - This menu begins an exchange of tiles: puts the board into - trade mode. - */ - public static final int board_menu_trade=0x7f0500fd; - /** hide and shows the tray. On devices where there is enough - room for the full board and tray to be shown then hiding the - tray just "turns it over", i.e. shows tiles with '?' - characters. - hide and shows the tray. On devices where there is enough - room for the full board and tray to be shown then hiding the - tray just "turns it over", i.e. shows tiles with '?' - characters. - hide and shows the tray. On devices where there is enough - room for the full board and tray to be shown then hiding the - tray just "turns it over", i.e. shows tiles with '?' - characters. - */ - public static final int board_menu_tray_hide=0x7f0500fe; - public static final int board_menu_tray_show=0x7f0500ff; - /** - -Undo/Redo - - */ - public static final int board_menu_undo_current=0x7f050228; - /** Undos the last *committed* turn. Note that this is different - from the undo button that undoes or redoes an in-progress - not-yet-committed turn. This is disabled for networked - games. - Undos the last *committed* turn. Note that this is different - from the undo button that undoes or redoes an in-progress - not-yet-committed turn. This is disabled for networked - games. -Undo last - Undos the last *committed* turn. Note that this is different - from the undo button that undoes or redoes an in-progress - not-yet-committed turn. This is disabled for networked - games. - */ - public static final int board_menu_undo_last=0x7f050100; - /** preference for board size (15x15, 13x13 etc.) - default new-game setting for handline phonies (words not - found in the word list) - clarification on above - Will new games, on default, randomly rearrange the start - order of players. - clarification on hints_allowed, whether new NETWORKED games - will default to having the hint feature enabled(string - elsewhere in this file) - clarification on hints_allowed, whether new games will - default to having the hint feature enabled(string elsewhere - in this file) - dictionary used by default for robot players when creating - new game - preference for board size (15x15, 13x13 etc.) -Board size - preference for board size (15x15, 13x13 etc.) - */ - public static final int board_size=0x7f050135; - /** Title of submenu - Undos the last *committed* turn. Note that this is different - from the undo button that undoes or redoes an in-progress - not-yet-committed turn. This is disabled for networked - games. - hide and shows the tray. On devices where there is enough - room for the full board and tray to be shown then hiding the - tray just "turns it over", i.e. shows tiles with '?' - characters. - Title of submenu - Title of submenu - */ - public static final int board_submenu_game=0x7f050101; - /** The remaining strings (down to the color edit dialog below) - are showns as the names of editable colors and as the - title of the color editor that comes up when the name is - tapped. - (color for) double-letter bonus squares on the board - The remaining strings (down to the color edit dialog below) - are showns as the names of editable colors and as the the - title of the color editor that comes up when the name is - tapped. - (color for) double-letter bonus squares on the board -Double letter - The remaining strings (down to the color edit dialog below) - are showns as the names of editable colors and as the the - title of the color editor that comes up when the name is - tapped. - (color for) double-letter bonus squares on the board - */ - public static final int bonus_l2x=0x7f050147; - /** Bonus value hint that's displayed in gray text in the colored - bonus square. Double-letter - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-letter - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-letter - */ - public static final int bonus_l2x_summary=0x7f0500e4; - /** (color for) triple-letter bonus squares on the board - (color for) triple-letter bonus squares on the board -Triple letter - (color for) triple-letter bonus squares on the board - */ - public static final int bonus_l3x=0x7f050148; - /** Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-letter - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-letter - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-letter - */ - public static final int bonus_l3x_summary=0x7f0500e6; - /** (color for) double-word squares on the board - (color for) double-word squares on the board -Double word - (color for) double-word squares on the board - */ - public static final int bonus_w2x=0x7f050149; - /** Bonus value hint that's displayed in gray text in the colored - bonus square. Double-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-word - */ - public static final int bonus_w2x_summary=0x7f0500e5; - /** (color for) triple-word squares on the board - (color for) triple-word squares on the board -Triple word - (color for) triple-word squares on the board - */ - public static final int bonus_w3x=0x7f05014a; - /** Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-word - */ - public static final int bonus_w3x_summary=0x7f0500e7; - /** - -The version of Crosswords on - \"%1$s\" is incompatible with this one for play using - Bluetooth. One of you may need to upgrade before you can - continue. - - */ - public static final int bt_bad_proto_fmt=0x7f050205; - /** - -Bluetooth sends to %1$s have failed too many - times. Re-open the game to try again. - - */ - public static final int bt_fail_fmt=0x7f05020a; - /** Title of device picker during invitation to a game via Bluetooth - Title of device picker during invitation to a game via Bluetooth -Bluetooth Invitation - */ - public static final int bt_invite_title=0x7f05020c; - /** You currently have no paired Bluetooth - devices. Would you like to open the Android Settings Panel to add - one or more?\n\n(You may also need to open it on the device you - want to pair with.) - */ - public static final int bt_no_devs=0x7f0502d6; - /** - */ - public static final int bt_pair_settings=0x7f0501fb; - /** Turn Bluetooth on - In the Bluetooth invite device dialog - In the Bluetooth invite device dialog -Add all Paired - */ - public static final int bt_pick_addall_button=0x7f0501f9; - /** - -Remove checked - - - */ - public static final int bt_pick_clear_button=0x7f0501fa; - /** - -Bluetooth send to %1$s failed; retry %3$d in - %2$d seconds. -Un envoi Bluetooth à %1$s a échoué ; essai -%3$d dans %2$d secondes. - - - */ - public static final int bt_resend_fmt=0x7f050209; - /** text of button for adding new player to game - text for separator above the list of players that's used for - networked games. The numbers of local and non-local players - are substituted for %1$d and %2$d. - text of button for adding new player to game -Add player - text of button for adding new player to game - */ - public static final int button_add_player=0x7f0500ba; - /** In the permissions rationale explanation, means go ahead and - have the OS ask for permission - */ - public static final int button_ask_again=0x7f050362; - /** The only button available when the above message is displayed - The only button available when the above message is displayed -Close game - The only button available when the above message is displayed - */ - public static final int button_close_game=0x7f05019f; - /** Decline - */ - public static final int button_decline=0x7f050264; - /** - - - - */ - public static final int button_default_both=0x7f0500b0; - /** These three strings are the text for three buttons giving - choices in respose to the dialog launched in response to the - dicts_item_select menu (see dicts_item_select above.) - These three strings are the text for three buttons giving - choices in respose to the dialog launched in response to the - dicts_item_select menu (see dicts_item_select above.) - text of confirmation dialog posted when the delete 'X' button - beside the listing of a wordlist is tapped. The name of the - wordlist is substituted for %s. Sometimes one of the two - strings below is appended. - Additional text appended to text confirm_delete_dictf in the - wordlist delete confiration dialog in the case where the - wordlist to be deleted is the last in its language. The name - of the language is substituted for %s. - \u0020É a única lista de - palavras em %s instalada. Um ou mais jogos não poderão ser abertos - sem ela. - Additional text appended to text confirm_delete_dictf in the - wordlist delete confiration dialog in the case where the - wordlist to be deleted is NOT the last in its language. The - name of the language is substituted for %s. - - ############################################################ - # :Dialogs: - # Wordlists screen dialogs - ############################################################ - - Used as the text fo the confirming/querying dialog that goes - up when the dicts_item_select menuitem is chosen. The - possible answers are the three button text strings below. - Para que jogadores essa lista - de palavras deve ser a padrão para novos jogos? (o idioma %s será - padrão para ambos.) - These three strings are the text for three buttons giving - choices in respose to the dialog launched in response to the - dicts_item_select menu (see dicts_item_select above.) - */ - public static final int button_default_human=0x7f0500ae; - /** - - */ - public static final int button_default_robot=0x7f0500af; - /** When you select the gamel_menu_delete_all menuitem or - list_item_delete contextual menu, you are asked to confirm. - This is the text of the first button ("Cancel" is the - second). - Bolo zahraných %1$d ťahov - When you select the list_item_reset contextual menu, you are - asked to confirm. This is the text of the first button - ("Cancel" is the second). - When you select the gamel_menu_delete_all menuitem or - list_item_delete contextual menu, you are asked to confirm. - This is the text of the first button ("Cancel" is the - second). - When you select the gamel_menu_delete_all menuitem or - list_item_delete contextual menu, you are asked to confirm. - This is the text of the first button ("Cancel" is the - second). - Otherwise they're listed with this to give some indication of - how far along they are. I may list "tiles left" someday - instead... - %1$d turnos jogados - When you select the gamel_menu_delete_all menuitem or - list_item_delete contextual menu, you are asked to confirm. - This is the text of the first button ("Cancel" is the - second). - */ - public static final int button_delete=0x7f050092; - public static final int button_disable_relay=0x7f05024f; - /** Used for button in dialog put up with the relay says the - remote partner of this game has deleted it. Ok, meaning - "don't discard", is the other option. This same button is - used as an option in the Game config dialog, where "Save" is - the other option, for discarding changes that would otherwise - reset a game. - Used for button in dialog put up with the relay says the - remote partner of this game has deleted it. Ok, meaning - "don't discard", is the other option. This same button is - used as an option in the Game config dialog, where "Save" is - the other option, for discarding changes that would otherwise - reset a game. -Discard - Used for button in dialog put up with the relay says the - remote partner of this game has deleted it. Ok, meaning - "don't discard", is the other option. This same button is - used as an option in the Game config dialog, where "Save" is - the other option, for discarding changes that would otherwise - reset a game. - */ - public static final int button_discard=0x7f0501af; - /** XLATE-ME -Discard changes - */ - public static final int button_discard_changes=0x7f0502f6; - /** - -Done - - */ - public static final int button_done=0x7f0501de; - /** - -Done with %1$s - - */ - public static final int button_done_fmt=0x7f0501df; - /** Text of button displayed when downloading is an option - This is an alternative message presented when there's also - the option of downloading another wordlist. Game name, - wordlist name and language are substituted in. - If the missing wordlist is discovered when trying to open the - game, we have more options. If there's another wordlist in - the same language, we can offer to substitute without needing - to download. Otherwise the user must choose between - downloading and not opening the game. This first message - takes wordlist name and language substituted in for %1$ and - %2$ - The only button available when the above message is displayed - If the wordlist disappears mid-game there are no choices, - just an explanation and this button, after which the game - closes. - Text of button displayed when downloading is an option -Download - Text of button displayed when downloading is an option - */ - public static final int button_download=0x7f0501a2; - /** XLATE-ME -Edit - */ - public static final int button_edit=0x7f0502f5; - public static final int button_enable=0x7f05033a; - /** XLATE-ME -Enable Bluetooth - */ - public static final int button_enable_bt=0x7f05024d; - public static final int button_enable_relay=0x7f05024e; - /** XLATE-ME -Enable SMS - */ - public static final int button_enable_sms=0x7f05024c; - public static final int button_go_settings=0x7f050286; - /** - -Invite checked - - */ - public static final int button_invite=0x7f05020b; - /** text of button to juggle (randomly rearrange order of) players - text of button to juggle (randomly rearrange order of) players -Shuffle players - text of button to juggle (randomly rearrange order of) players - */ - public static final int button_juggle_players=0x7f0500bb; - /** XLATE-ME -Later - */ - public static final int button_later=0x7f050250; - /** New strings that need to be documented and found a home - above. - New strings that need to be documented and found a home - above. -Look up words - New strings that need to be documented and found a home - above. - */ - public static final int button_lookup=0x7f0501d8; - /** - -Look up %1$s - - */ - public static final int button_lookup_fmt=0x7f0501da; - /** Look up/study words - */ - public static final int button_lookup_study=0x7f0501d9; - /** Look up/study %1$s - */ - public static final int button_lookup_study_fmt=0x7f0501db; - /** - -Move - - */ - public static final int button_move=0x7f0501e3; - /** What is \u200C? English strings are used as keys, so they all - need to be unique. This glyph is non-printing and of - zero-width, so it should do the trick: - http://en.wikipedia.org/wiki/Zero-width_non-joiner - - - ############################################################ - # :Screens: - # Main screen (list of games) - # - # This is the first screen you see when you launch Crosswords - ############################################################ - - Text of menuitem in main games-list screen's menu - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-ca/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-ja/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-sk/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - Text of menuitem in main games-list screen's menu - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-nl/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-fr/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - What is \u200C? English strings are used as keys, so they all - need to be unique. This glyph is non-printing and of - zero-width, so it should do the trick: - http://en.wikipedia.org/wiki/Zero-width_non-joiner - - - ############################################################ - # :Screens: - # Main screen (list of games) - # - # This is the first screen you see when you launch Crosswords - ############################################################ - - Text of menuitem in main games-list screen's menu - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-cs/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-pt/strings.xml, by copy-strings.py). - Any changes you make to it will be lost. - - - ############################################################ - # :Screens: - # Main screen (list of games) - # - # This is the first screen you see when you launch Crosswords - ############################################################ - - Text of button at bottom of main games-list screen and of - menuitem in main games-list screen's menu. (The botton can - be hidden in the same way as the above text.) - */ - public static final int button_new_game=0x7f050087; - /** Games list screen menuitem text for creating a new group - Games list screen menuitem text for creating a new group - */ - public static final int button_new_group=0x7f050088; - /** New group - */ - public static final int button_newgroup=0x7f0501e4; - /** No - */ - public static final int button_no=0x7f0501ad; - /** Text for button in new-user-info dialog with title just - above. - Text for button in new-user-info dialog with title just - above. -Do not show again - Text for button in new-user-info dialog with title just - above. - */ - public static final int button_notagain=0x7f0501bb; - /** Reconnect - */ - public static final int button_reconnect=0x7f050276; - public static final int button_reinvite=0x7f0502f0; - /** - */ - public static final int button_relay_add=0x7f050218; - /** Button shown in game over dialog triggering creation of new - game with the same players and parameters as the one that - just ended. - Button shown in game over dialog triggering creation of new - game with the same players and parameters as the one that - just ended. -Rematch - Button shown in game over dialog triggering creation of new - game with the same players and parameters as the one that - just ended. - */ - public static final int button_rematch=0x7f050275; - /** When you select the list_item_reset contextual menu, you are - asked to confirm. This is the text of the first button - ("Cancel" is the second). - When you select the list_item_reset contextual menu, you are - asked to confirm. This is the text of the first button - ("Cancel" is the second). - When you select the list_item_reset contextual menu, you are - asked to confirm. This is the text of the first button - ("Cancel" is the second). - */ - public static final int button_reset=0x7f050093; - /** Used for a button when informing user that his attempt to - connect to the relay failed because the room named does not - exist. (I believe this no longer occurs.) - Used for a button when informing user that his attempt to - connect to the relay failed because the room named does not - exist. (I believe this no longer occurs.) -Retry - Used for a button when informing user that his attempt to - connect to the relay failed because the room named does not - exist. (I believe this no longer occurs.) - */ - public static final int button_retry=0x7f0501b0; - /** - ############################################################ - # :Menus: - # Preferences screen menus - # - # There are two menuitems availble via the menu key from this - # screen - ############################################################ - - text of first menu item. Will revert all preferences to - their default/original values - - ############################################################ - # :Menus: - # Preferences screen menus - # - # There are two menuitems availble via the menu key from this - # screen - ############################################################ - - text of first menu item. Will revert all preferences to - their default/original values -Restore all - - ############################################################ - # :Menus: - # Preferences screen menus - # - # There are two menuitems availble via the menu key from this - # screen - ############################################################ - - text of first menu item. Will revert all preferences to - their default/original values - */ - public static final int button_revert_all=0x7f05011d; - /** Second menu item. Reverts only the colors to their - default/original values - Second menu item. Reverts only the colors to their - default/original values -Restore colors - Second menu item. Reverts only the colors to their - default/original values - */ - public static final int button_revert_colors=0x7f05011f; - /** Used in Game config dialog to confirm saving changes that reset a game - Used in Game config dialog to confirm saving changes that reset a game -Save - Used in Game config dialog to confirm saving changes that reset a game - */ - public static final int button_save=0x7f0501ae; - /** - -Find - - */ - public static final int button_search=0x7f0501e5; - /** In the permissions rationale explanation, means don't have the - OS ask for permission: user is denying it implicitly - */ - public static final int button_skip=0x7f050365; - /** - -Import contact - - - */ - public static final int button_sms_add=0x7f050217; - /** Text of button allowing user to choose to open with a - different (but same-language wordlist) - Text of button allowing user to choose to open with a - different (but same-language wordlist) -Substitute - Text of button allowing user to choose to open with a - different (but same-language wordlist) - */ - public static final int button_substdict=0x7f0501a3; - /** Cancel trade - */ - public static final int button_trade_cancel=0x7f0500e2; - /** - ############################################################ - # :Screens: - # Board screen - # - # - # (an open game, with the 15x15 grid of # squares, letters - # played etc., is displayed here) - ############################################################ - - Buttons shown at bottom when board is in exchange mode, - i.e. after user has picked board_menu_trade menu item - - ############################################################ - # :Screens: - # Board screen - # - # - # (an open game, with the 15x15 grid of # squares, letters - # played etc., is displayed here) - ############################################################ - - Buttons shown at bottom when board is in exchange mode, - i.e. after user has picked board_menu_trade menu item -Commit trade - - ############################################################ - # :Screens: - # Board screen - # - # - # (an open game, with the 15x15 grid of # squares, letters - # played etc., is displayed here) - ############################################################ - - Buttons shown at bottom when board is in exchange mode, - i.e. after user has picked board_menu_trade menu item - */ - public static final int button_trade_commit=0x7f0500e1; - /** Button for alert with title above - */ - public static final int button_wait=0x7f0502ef; - /** - ############################################################ - # Dialogs - ############################################################ - - Text for buttons at the bottom of dialogs. These first are - in many places. - Text of confirmation dialog for above - Second menu item. Reverts only the colors to their - default/original values - Text of confirmation dialog for above - - ############################################################ - # :Menus: - # Preferences screen menus - # - # There are two menuitems availble via the menu key from this - # screen - ############################################################ - - text of first menu item. Will revert all preferences to - their default/original values - - ############################################################ - # Dialogs - ############################################################ - - Text for buttons at the bottom of dialogs. These first are - in many places. -Yes - When a move is fetched from the relay a Notification is - posted. These are its title, which appears in the top bar of the - device, and the body that appears when you pull the notifications - down. - - ############################################################ - # Dialogs - ############################################################ - - Text for buttons at the bottom of dialogs. These first are - in many places. - */ - public static final int button_yes=0x7f0501ac; - /** The group for new games, %1$s, - cannot be deleted. - */ - public static final int cannot_delete_default_group_fmt=0x7f050274; - /** Move selected games to: - */ - public static final int change_group=0x7f050279; - /** text of button in About Crosswords dialog summoning above - dialog - text of button in About Crosswords dialog summoning above - dialog -Recent changes\u200C - text of button in About Crosswords dialog summoning above - dialog - */ - public static final int changes_button=0x7f0501d7; - /** text of dialog showing the set of changes made since the last - release - text of dialog showing the set of changes made since the last - release -Recent changes - text of dialog showing the set of changes made since the last - release - */ - public static final int changes_title=0x7f0501d6; - /** "Hint" in empty chat text field - */ - public static final int chat_hint=0x7f05018b; - /** Prefix for local messages - Prefix for local messages -Me:\u0020 - Prefix for local messages - */ - public static final int chat_local_id=0x7f050188; - /** - ############################################################ - # :Menus: - # Chat messages screen menu - ############################################################ - - This is the only menu item in the chat screen. Press it and - all the chat messages are erased. There is no effect on - other devices in the game: no "clear chat" message is - transmitted. - - ############################################################ - # :Menus: - # Chat messages screen menu - ############################################################ - - This is the only menu item in the chat screen. Press it and - all the chat messages are erased. There is no effect on - other devices in the game: no "clear chat" message is - transmitted. -Clear history - - ############################################################ - # :Menus: - # Chat messages screen menu - ############################################################ - - This is the only menu item in the chat screen. Press it and - all the chat messages are erased. There is no effect on - other devices in the game: no "clear chat" message is - transmitted. - */ - public static final int chat_menu_clear=0x7f05018c; - /** Prefix for remote messages - Prefix for remote messages -Not me:\u0020 - Prefix for remote messages - */ - public static final int chat_other_id=0x7f050189; - /** Text on the button that causes the contents of the - message-composition field to be sent. - Text on the button that causes the contents of the - message-composition field to be sent. -Send - Text on the button that causes the contents of the - message-composition field to be sent. - */ - public static final int chat_send=0x7f05018a; - public static final int chat_sender_fmt=0x7f05022d; - /** ############################################################ - # :Screens: - # Chat screen - # - # Shown when the chat button is pressed from the Board screen - # or when a chat message (as opposed to a move message) comes - # in from the relay. It displays a history of messages with - # slightly different colored backgrounds and with prefixes to - # indicate whether they are local or remote in origin. - ############################################################ - - title of the chat screen. The name of the current game is - substituted for %1$s. - ############################################################ - # :Screens: - # Chat screen - # - # Shown when the chat button is pressed from the Board screen - # or when a chat message (as opposed to a move message) comes - # in from the relay. It displays a history of messages with - # slightly different colored backgrounds and with prefixes to - # indicate whether they are local or remote in origin. - ############################################################ - - title of the chat screen. The name of the current game is - substituted for %1$s. -%1$s message history - Text of dialog asking user to confirm a move that exchanges - tiles (instead of forming a new word to earn points) - ############################################################ - # :Screens: - # Chat screen - # - # Shown when the chat button is pressed from the Board screen - # or when a chat message (as opposed to a move message) comes - # in from the relay. It displays a history of messages with - # slightly different colored backgrounds and with prefixes to - # indicate whether they are local or remote in origin. - ############################################################ - - title of the chat screen. The name of the current game is - substituted for %s. - */ - public static final int chat_title_fmt=0x7f050187; - /** Checking for wordlists in %1$s… - */ - public static final int checking_for_fmt=0x7f050331; - /** Checking - */ - public static final int checking_title=0x7f050330; - /** Everything is up-to-date. - */ - public static final int checkupdates_none_found=0x7f050252; - /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown - it's by some Android utility - */ - public static final int clip_label=0x7f050344; - /** color of the "crosshairs", lines drawn vertically and - horizontally through the square the user is currently - touching in order to guide the fat-fingered (most of us) in - operations that require accurately selecting a single square - on the board. - color of the "crosshairs", lines drawn vertically and - horizontally through the square the user is currently - touching in order to guide the fat-fingered (most of us) in - operations that require accurately selecting a single square - on the board. -Crosshairs color - color of the "crosshairs", lines drawn vertically and - horizontally through the square the user is currently - touching in order to guide the fat-fingered (most of us) in - operations that require accurately selecting a single square - on the board. - */ - public static final int clr_crosshairs=0x7f05014b; - /** XLATE-ME -This game has no way to connect - and cannot be saved. Would you like to discard your changes, or - edit to give it a way to connect? - */ - public static final int config_no_connvia=0x7f0502f4; - public static final int confirm_clear_chat=0x7f050346; - public static final int confirm_clear_relay=0x7f050220; - /** Additional text appended to text confirm_delete_dictf in the - wordlist delete confiration dialog in the case where the - wordlist to be deleted is the last in its language. The name - of the language is substituted for %1$s. - Additional text appended to text confirm_delete_dictf in the - wordlist delete confiration dialog in the case where the - wordlist to be deleted is the last in its language. The name - of the language is substituted for %1$s. - */ - public static final int confirm_deleteonly_dicts_fmt=0x7f0500ac; - public static final int confirm_drop_relay=0x7f050336; - public static final int confirm_drop_relay_bt=0x7f050338; - public static final int confirm_drop_relay_sms=0x7f050339; - /** Your device is set up for - %1$s. Would you like to download a wordlist so you can play - Crosswords in %1$s? - */ - public static final int confirm_get_locdict_fmt=0x7f0502fe; - /** Text of confirmation dialog for above - Text of confirmation dialog for above -Are you sure you want to restore - all settings to their original values? - Text of confirmation dialog for above - */ - public static final int confirm_revert_all=0x7f050120; - /** Text of confirmation dialog for above - Text of confirmation dialog for above -Are you sure you want to - restore all color settings to their original values? - Text of confirmation dialog for above - */ - public static final int confirm_revert_colors=0x7f05011e; - /** title of confirmation dialog put up when user has unlocked an - in-progress game and wants to save changes (has hit the - play button). - title of confirmation dialog put up when user has unlocked an - in-progress game and wants to save changes (has hit the - play button). -This game is in play. If you - save these changes it must be restarted. Do you want to save - these changes? - title of confirmation dialog put up when user has unlocked an - in-progress game and wants to save changes (has hit the - play button). - */ - public static final int confirm_save=0x7f0500d4; - /** title of above confirmation dialog - - ############################################################ - # :Menus: - # Wordlists screen menus - ############################################################ - - title of contextual menu item. If chosen it brings up a - dialog that offers to move the selected wordlist from its - current storage location to the other. This menuitem is - hidden if the selected wordlist is built in or if there is - only one possible storage location, e.g. if the device has no - SD card slot. - If you tap the download_dicts button and Android fails to - find and launch an app that's registered to handle http - downloads a Toast is posted with this message. - Used to describe wordlists that are in the Downloads - directory. Currently I don't look there so this is unused, - but I will eventually do so. This should be the same name as - the built-in Android web browser uses for the directory where - it saves files it downloads. - One of the strings used in the right column of the list of - installed wordlists to describe those that are part of - Crosswords and that cannot be uninstalled or moved. - loc_internal and loc_external are the other possible strings - in this column. - title of above confirmation dialog -Confirm save - title of above confirmation dialog - */ - public static final int confirm_save_title=0x7f0500d5; - /** - -Warning: This feature is meant for - phones with unlimited texting plans. Once you enable it dozens of - SMS (text) messages will be sent (invisibly) for each game - played. If you don\'t have an unlimited plan your carrier may - charge you for each and every message!\n\nShould play via SMS be - enabled? - - */ - public static final int confirm_sms_expl=0x7f050241; - /** - -No: leave disabled - - */ - public static final int confirm_sms_leave=0x7f050243; - /** - -Enable play via SMS? - - */ - public static final int confirm_sms_prompt=0x7f050242; - /** - -Confirm your SMS plan - - */ - public static final int confirm_sms_title=0x7f050240; - /** - -Yes: I have unlimited texting - - */ - public static final int confirm_sms_unlimited=0x7f050244; - /** - -Yes: I\'ll pay all carrier charges - - */ - public static final int confirm_sms_willpay=0x7f050245; - /** text of dialog shown when the menu item board_menu_undo_last - is chosen. - text of dialog shown when the menu item board_menu_undo_last - is chosen. -Are you sure you want to undo the - last committed turn? (There is no redo option.) - First line in the remaining tiles dialog (reached by tapping - the number at left end of the scoreboard) - Intro to the paragraph lisiting all of the tiles remaining - text of dialog shown when the menu item board_menu_undo_last - is chosen. - */ - public static final int confirm_undo_last=0x7f05011b; - /** Once every day - */ - public static final int connect_daily=0x7f05016c; - /** Every 15 minutes - */ - public static final int connect_fifteen_mins=0x7f050168; - /** Every 5 minutes - */ - public static final int connect_five_mins=0x7f050167; - /** - ############################################################ - # :Screens: - # Network game settings preference subscreen (within - # Preferences screen) - ############################################################ - - When there are networked games connecting using the relay, - Crosswords wakes up periodically to check if there are any - new moves available and fetches them. This controls how - frequently that check is done. - - ############################################################ - # :Screens: - # Network game settings preference subscreen (within - # Preferences screen) - ############################################################ - - When there are networked games connecting using the relay, - Crosswords wakes up periodically to check if there are any - new moves available and fetches them. This controls how - frequently that check is done. -Background move check - - ############################################################ - # :Screens: - # Network game settings preference subscreen (within - # Preferences screen) - ############################################################ - - When there are networked games connecting using the relay, - Crosswords wakes up periodically to check if there are any - new moves available and fetches them. This controls how - frequently that check is done. - */ - public static final int connect_frequency=0x7f050165; - /** text of separator marking out the connection area of the dialog -XLATE-ME -Connection (via %1$s) - */ - public static final int connect_label_fmt=0x7f0500be; - /** - - -Are you sure you want to delete the - checked phone number[s]? - -Connection (via SMS/text) - - */ - public static final int connect_label_sms=0x7f050221; - /** These are the possible values for the connect_frequency - setting presented as a drop-down list. - These are the possible values for the connect_frequency - setting presented as a drop-down list. -Never check - These are the possible values for the connect_frequency - setting presented as a drop-down list. - */ - public static final int connect_never=0x7f050166; - /** Every hour - */ - public static final int connect_one_hour=0x7f05016a; - /** Every six hours - */ - public static final int connect_six_hours=0x7f05016b; - /** Every 30 minutes - */ - public static final int connect_thirty_mins=0x7f050169; - /** XLATE-ME -Change Communicate via - */ - public static final int connection_via_label=0x7f0502e9; - /** - -(Last failure was %1$s) - - */ - public static final int connstat_lastother_succ_fmt=0x7f050238; - /** - -(Last successful send was - %1$s) - - */ - public static final int connstat_lastother_unsucc_fmt=0x7f050239; - /** - -Last receipt was %1$s - - */ - public static final int connstat_lastreceipt_fmt=0x7f05023a; - /** - -Last send was %1$s (%2$s) - - */ - public static final int connstat_lastsend_fmt=0x7f050237; - /** - -Network status for game connected via - %1$s: - - */ - public static final int connstat_net_fmt=0x7f050233; - public static final int connstat_net_noaddr=0x7f050232; - /** - -No messages have been received. - - */ - public static final int connstat_noreceipt=0x7f05023b; - /** - -internet/relay - - */ - public static final int connstat_relay=0x7f05023c; - /** - -sms/texting - - */ - public static final int connstat_sms=0x7f05023d; - /** - -successful - - */ - public static final int connstat_succ=0x7f050235; - /** - -unsuccessful - - */ - public static final int connstat_unsucc=0x7f050236; - public static final int contact_not_found=0x7f050363; - public static final int contacts_rationale=0x7f05035f; - /** title of dialog brought up in response to the - board_menu_game_counts menu. The dialog lists all tiles in - the language being used for the game together with how many - of each there are are and how many points each is worth. - title of dialog brought up in response to the - board_menu_game_counts menu. The dialog lists all tiles in - the language being used for the game together with how many - of each there are are and how many points each is worth. -Tile Counts and Values - title of dialog brought up in response to the - board_menu_game_counts menu. The dialog lists all tiles in - the language being used for the game together with how many - of each there are are and how many points each is worth. - */ - public static final int counts_values_title=0x7f0501b5; - /** %1$s (in use) - */ - public static final int cur_menu_marker_fmt=0x7f050283; - /** - -Tile picker\n(so far: %1$s) - - */ - public static final int cur_tiles_fmt=0x7f0501e9; - /** SMS Data is only available on GSM phones. - */ - public static final int data_gsm_only=0x7f0502a0; - /** SD card write complete. - */ - public static final int db_store_done=0x7f050332; - /** XLATE-ME -Enable debug features - */ - public static final int debug_features=0x7f050306; - /** XLATE-ME -Menuitems etc. (release builds - only) - */ - public static final int debug_features_summary=0x7f050307; - /** dictionary used by default for human players when creating - new game - clarification of above - sub-preference for dictionaries (soon to be called "word lists") - Used to indicate that a preference is not enabled, i.e. not - part of the game and that the user should ignore it. - Label for the fourth "player name" preference (unused) - Label for the third "player name" preference (unused) - Label for the second "player name" preference (unused) - Label for the first "player name" preference - clarification of the above - sub-preference title for editing default player names. - There's only enabled now, though. - dictionary used by default for human players when creating - new game -Wordlist for humans - dictionary used by default for human players when creating - new game - */ - public static final int default_dict=0x7f05012d; - /** other - */ - public static final int default_host=0x7f05007d; - /** label within default wordlists in app preferences - label within default wordlists in app preferences -Default language - */ - public static final int default_language=0x7f0502d8; - /** Store wordlists internally - */ - public static final int default_loc=0x7f050267; - /** (Not in external/sdcard memory) - */ - public static final int default_loc_summary=0x7f050268; - /** Welcome dialog text - Welcome dialog text -Thanks for installing - Crosswords!\n\nFeel free to enter your name here. It will be used - when creating new games. (You can change it later in the \"New - game default\" section of Settings.) - Welcome dialog text - */ - public static final int default_name_message=0x7f0501d0; - /** - ########################################################### - # :Dialogs: - # Welcome dialog - # - # Shown the first time a user launches Crosswords (and - # again only if the preference for default first user - # name is cleared). Its purpose is to encourage him to - # enter the name of the most common non-robot player on - # this device. - ########################################################### - - Welcome dialog title - - ########################################################### - # :Dialogs: - # Welcome dialog - # - # Shown the first time a user launches Crosswords (and - # again only if the preference for default first user - # name is cleared). Its purpose is to encourage him to - # enter the name of the most common non-robot player on - # this device. - ########################################################### - - Welcome dialog title -Welcome - - ########################################################### - # :Dialogs: - # Welcome dialog - # - # Shown the first time a user launches Crosswords (and - # again only if the preference for default first user - # name is cleared). Its purpose is to encourage him to - # enter the name of the most common non-robot player on - # this device. - ########################################################### - - Welcome dialog title - */ - public static final int default_name_title=0x7f0501cf; - /** default new-game setting for handline phonies (words not - found in the word list) - default new-game setting for handline phonies (words not - found in the word list) -Handle phonies - default new-game setting for handline phonies (words not - found in the word list) - */ - public static final int default_phonies=0x7f050133; - /** dictionary used by default for robot players when creating - new game - dictionary used by default for robot players when creating - new game -Wordlist for robots - dictionary used by default for robot players when creating - new game - */ - public static final int default_robodict=0x7f05012e; - public static final int default_update_url=0x7f050082; - /** Delete wordlist[s] - */ - public static final int delete_dicts=0x7f0502c2; - public static final int devid_title=0x7f05030e; - /** - Playing via SMS is currently disabled. - You can enable it in Settings->Network game settings. - - -SMS Game %1$X - - - - */ - public static final int dft_sms_name_fmt=0x7f050215; - /** - -No word in %1$s starts with - %2$s. - - - - */ - public static final int dict_browse_nowords_fmt=0x7f0501ed; - /** - -%1$s (%2$d words using %3$d - tiles) -%1$s (%2$d mots utilisant %3$d jetons) - */ - public static final int dict_browse_title1_fmt=0x7f0501ec; - /** - -%1$s (%2$d words using %3$d-%4$d - tiles) -%1$s (%2$d mots utilisant de %3$d à -%4$d jetons) - */ - public static final int dict_browse_title_fmt=0x7f0501eb; - /** %1$s (%2$s/%3$d words) - */ - public static final int dict_desc_fmt=0x7f0502c9; - /** XLATE-ME -Wordlist download URL - */ - public static final int dict_host=0x7f050303; - /** Number of words: %1$d\nDownload size: - %2$dK\nNote: %3$s - */ - public static final int dict_info_fmt=0x7f0502c6; - /** label for dropdown by which wordlist is chosen that this - player will use. The language the game will use (which - constrains the choice of wordlists) is substituted in for - "%1$s". - label for dropdown by which wordlist is chosen that this - player will use. The language the game will use (which - constrains the choice of wordlists) is substituted in for - "%1$s". -Wordlist (in %1$s) - label for dropdown by which wordlist is chosen that this - player will use. The language the game will use (which - constrains the choice of wordlists) is substituted in for - "%s". - */ - public static final int dict_lang_label_fmt=0x7f0500dd; - /** Tap to download - */ - public static final int dict_on_server=0x7f0502c8; - /** string name="invite_mime">text/plainInstalled wordlists (in %1$s) - If the dropdown is selected, this is the title displayed - above the list of selectable items. The language the game - will use is substituted in for "%s". - */ - public static final int dicts_list_prompt_fmt=0x7f0500de; - public static final int dicts_storage_rationale=0x7f05035a; - public static final int disable_dualpane=0x7f050354; - public static final int disable_nag_solo_title=0x7f0502fd; - /** Do not notify me no matter - how long it\'s been my turn - */ - public static final int disable_nag_summary=0x7f0502fc; - /** Disable turn reminders - */ - public static final int disable_nag_title=0x7f0502fb; - public static final int disable_nags_title=0x7f0502fa; - public static final int disable_relay=0x7f050163; - public static final int disable_relay_summary=0x7f050164; - /** text of item at bottom of dicts choice spinner. It - launches the browser pointed at the site where additional - wordlists can be found. - title of popup used to determine how words are handled that - are not in the wordlist used for the game (or player if using - different wordlists per player) - Three possible choices presented in the popup above - title of popup used to select how "smart" (how capable) the - robot player will be. - text of item at bottom of dicts choice spinner. It - launches the browser pointed at the site where additional - wordlists can be found. - text of button at the bottom of the screen. It launches the - browser pointed at the site where additional wordlists can be - found. - */ - public static final int download_dicts=0x7f0500a7; - /** Download finished - */ - public static final int download_done=0x7f050265; - /** Download unsuccessful - */ - public static final int download_failed=0x7f050266; - /** Downloads Directory - */ - public static final int download_path_title=0x7f050269; - public static final int download_rationale=0x7f050358; - /** Downloading %1$s… - */ - public static final int downloading_dict_fmt=0x7f05019c; - public static final int drop_relay_warning_fmt=0x7f050335; - /** Display snapshots of games - Display snapshots of games -Invitation received but ignored: it - has already been used to create a game. - */ - public static final int dropped_dupe=0x7f050282; - public static final int dualpane_exit_now=0x7f05034f; - public static final int dualpane_restart=0x7f050355; - /** Shown in the main screen when you launch Crosswords from an - invitation (received in email or messaging app, say) and - there's already a game running that matches that invitation. - It's to prevent you from opening multiple games and getting - confused. But some people who play together all the time use - the same room name over and over so they'll get this warning - and it's harmless to ignore it. - Shown in the main screen when you launch Crosswords from an - invitation (received in email or messaging app, say) and - there's already a game running that matches that invitation. - It's to prevent you from opening multiple games and getting - confused. But some people who play together all the time use - the same room name over and over so they'll get this warning - and it's harmless to ignore it. -You already have a game that seems - to have been created (on %1$s) from the same invitation. Are you - sure you want to create another? - Shown in the main screen when you launch Crosswords from an - invitation (received in email or messaging app, say) and - there's already a game running that matches that invitation. - It's to prevent you from opening multiple games and getting - confused. But some people who play together all the time use - the same room name over and over so they'll get this warning - and it's harmless to ignore it. - */ - public static final int dup_game_query_fmt=0x7f0501b1; - /** - -Send comment via - - */ - public static final int email_author_chooser=0x7f0501f7; - /** Nor is my email address - */ - public static final int email_author_email=0x7f05007c; - /** - - Should not be translated - - */ - public static final int email_author_subject=0x7f0501f6; - /** - - Should not be translated - - */ - public static final int email_body_rev_fmt=0x7f0501f8; - /** color of empty squares on the board (that are not bonus squares) - color of empty squares on the board (that are not bonus squares) -Empty cell/background - color of empty squares on the board (that are not bonus squares) - */ - public static final int empty=0x7f05014d; - /** Shows in WiFiDirect Invite dialog when no known peers - */ - public static final int empty_p2p_inviter=0x7f05021c; - /** - */ - public static final int empty_relay_inviter=0x7f05021d; - /** Shows in SMS Invite dialog when no phone numbers have been saved previously - Shows in SMS Invite dialog when no phone numbers have been saved previously -This phone list is empty. Use the - \"Import contact\" button to add people you want to invite, the + - button to enter numbers directly. - - */ - public static final int empty_sms_inviter=0x7f05021b; - public static final int enable_dualpane=0x7f050350; - public static final int enable_dualpane_summary=0x7f0502ce; - /** XLATE-ME -Accept invitations more than once - */ - public static final int enable_dupes_summary=0x7f050316; - /** XLATE-ME -Accept duplicate invites - */ - public static final int enable_dupes_title=0x7f050314; - /** NFC is turned off on this device. You - can use the Android Settings app to turn it on . - */ - public static final int enable_nfc=0x7f050285; - /** XLATE-ME -Fake invitation to aid debugging - */ - public static final int enable_nfc_toself_summary=0x7f050319; - /** XLATE-ME -Enable NFC to self - */ - public static final int enable_nfc_toself_title=0x7f050318; - /** XLATE-ME -Rooms others can see and join - */ - public static final int enable_pubroom_summary=0x7f0502e8; - /** XLATE-ME -Enable public rooms - */ - public static final int enable_pubroom_title=0x7f0502e7; - public static final int enable_relay_toself_summary=0x7f050342; - public static final int enable_relay_toself_title=0x7f050341; - /** - -Allow games via SMS - - - */ - public static final int enable_sms=0x7f05023e; - /** - -Only if you have unlimited texting! - - */ - public static final int enable_sms_summary=0x7f05023f; - /** XLATE-ME -Skip radio when phone numbers same - */ - public static final int enable_sms_toself_summary=0x7f05031b; - /** XLATE-ME -Short-circuit SMS to self - */ - public static final int enable_sms_toself_title=0x7f05031a; - /** Tap tiles to select… - */ - public static final int entering_trade=0x7f0500e3; - /** XLATE-ME -Duplicate invitation rejected: - device \"%1$s\" has already accepted an invitation to this - game. - */ - public static final int err_dup_invite_fmt=0x7f0502e2; - /** XLATE-ME -Update checks URL - */ - public static final int expl_update_url=0x7f050325; - /** if this preference is checked, a dialog will be posted every - time a robot makes a move or a move is received from a remote - player. - clarification of above - Checkbox that when set keeps the device screen from dimming - if the board screen is what's displayed. This is to allow - users to think about a move without having to touch the - screen all the time. - if this preference is checked, a dialog will be posted every - time a robot makes a move or a move is received from a remote - player. -Explain other moves - if this preference is checked, a dialog will be posted every - time a robot makes a move or a move is received from a remote - player. - */ - public static final int explain_robot=0x7f050155; - /** explanation of the above - explanation of the above -Display score summary after - every robot or remote turn - explanation of the above - */ - public static final int explain_robot_summary=0x7f050156; - public static final int fetching_from_relay=0x7f050348; - /** title of dialog brought up in response to the - board_menu_game_final menu. The dialog displays the final - score and an accounting of it (including subtractions for - running out the game timer if there is one.) - - title of dialog brought up in response to the - board_menu_game_final menu. The dialog displays the final - score and an accounting of it (including subtractions for - running out the game timer if there is one.) - -Final scores\u200C - title of dialog brought up in response to the - board_menu_game_final menu. The dialog displays the final - score and an accounting of it (including subtractions for - running out the game timer if there is one.) - - */ - public static final int finalscores_title=0x7f0501b7; - /** Explanatory text appears in the dialog - Explanatory text appears in the dialog -In a multi-device game there must be at - least one player from and another not from this device. Please - check off-device players. - Explanatory text appears in the dialog - */ - public static final int force_expl=0x7f0500d8; - /** XLATE-ME -Pretend to have radio - */ - public static final int force_radio_title=0x7f05031c; - /** Even if my screen is too small - */ - public static final int force_tablet_summary=0x7f0502cd; - /** Force tablet layout - */ - public static final int force_tablet_title=0x7f0502cc; - /** - ############################################################ - # :Dialogs: - # Force remote dialog - # - - # This alert dialog comes up when you're it the player edit - # dialog for a networked game and try to exit with none of the - # players configured as a remote player. It forces you to mark - # one of them (or marks one itself if you cancel it.) - ############################################################ - - title of this dialog - - ############################################################ - # :Dialogs: - # Force remote dialog - # - - # This alert dialog comes up when you're it the player edit - # dialog for a networked game and try to exit with none of the - # players configured as a remote player. It forces you to mark - # one of them (or marks one itself if you cancel it.) - ############################################################ - - title of this dialog -Off-device player[s] - - ############################################################ - # :Dialogs: - # Force remote dialog - # - - # This alert dialog comes up when you're it the player edit - # dialog for a networked game and try to exit with none of the - # players configured as a remote player. It forces you to mark - # one of them (or marks one itself if you cancel it.) - ############################################################ - - title of this dialog - */ - public static final int force_title=0x7f0500d7; - /** Displayed as a "Toast" (mini window briefly displayed) if you - didn't choose a remote player and I was forced to pick one. I - always pick the first. - Displayed as a "Toast" (mini window briefly displayed) if you - didn't choose a remote player and I was forced to pick one. I - always pick the first. -Modified first player. - Displayed as a "Toast" (mini window briefly displayed) if you - didn't choose a remote player and I was forced to pick one. I - always pick the first. - */ - public static final int forced_consistent=0x7f0500d9; - /** Games that have ended are listed with this string - Displayed as a "Toast" (mini window briefly displayed) if you - didn't choose a remote player and I was forced to pick one. I - always pick the first. - Games that have ended are listed with this string - Games that have ended are listed with this string - */ - public static final int gameOver=0x7f050091; - /** - -Bluetooth game name - - - - */ - public static final int game_btname_title=0x7f050210; - /** used to create default names of games (when user has not - named them.) - used to create default names of games (when user has not - named them.) - used to create default names of games (when user has not - named them.) -Game %1$d - used to create default names of games (when user has not - named them.) - */ - public static final int game_fmt=0x7f0501a6; - /** - ############################################################ - # :Menus: - # Context menu for main games-list screen - ############################################################ - - title of contextual menu. Name of the selected game is - substituted in. - - ############################################################ - # :Menus: - # Context menu for main games-list screen - ############################################################ - - title of contextual menu. Name of the selected game is - substituted in. - - ############################################################ - # :Menus: - # Context menu for main games-list screen - ############################################################ - - title of contextual menu. Name of the selected game is - substituted in. - */ - public static final int game_item_menu_title_fmt=0x7f05009a; - /** - -Building game summary… - - */ - public static final int game_list_tmp=0x7f050230; - /** text of checkbox at top of dialog allowing to unlock in-play - game to make changes - text of checkbox at top of dialog allowing to unlock in-play - game to make changes -Lock settings - text of checkbox at top of dialog allowing to unlock in-play - game to make changes - */ - public static final int game_locked=0x7f0500b7; - /** Name group - */ - public static final int game_name_group_title=0x7f050273; - /** -XLATE-ME -New game name: - */ - public static final int game_name_label=0x7f050212; - /** -XLATE-ME -Name your game - */ - public static final int game_name_title=0x7f050211; - /** - - - */ - public static final int game_rename_title=0x7f0500a3; - /** Put nothing in the summary space, so it just reads "Game 2" - Put nothing in the summary space, so it just reads "Game 2" -\u003CNothing\u003E - Put nothing in the summary space, so it just reads "Game 2" - */ - public static final int game_summary_field_empty=0x7f050139; - /** XLATE-ME -gameid - */ - public static final int game_summary_field_gameid=0x7f050323; - /** Put the language there, so it reads "Game 2 (English)" - Put the language there, so it reads "Game 2 (English)" -Game language\u200C - Put the language there, so it reads "Game 2 (English)" - */ - public static final int game_summary_field_language=0x7f05013a; - /** XLATE-ME -Pending packet count - */ - public static final int game_summary_field_npackets=0x7f050324; - /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" - List names of opponents (summarized), e.g. "Game 2 (vs Kati)" -Opponent name[s] - List names of opponents (summarized), e.g. "Game 2 (vs Kati)" - */ - public static final int game_summary_field_opponents=0x7f05013b; - /** XLATE-ME -rowid - */ - public static final int game_summary_field_rowid=0x7f050322; - /** List the state of the game, "Game over" or "10 moves made" - etc. - List the state of the game, "Game over" or "10 moves made" - etc. -Game state - List the state of the game, "Game over" or "10 moves made" - etc. - */ - public static final int game_summary_field_state=0x7f05013c; - /** Regardless of the setting of the connect_frequency - preference, checks the relay immediately for any moves for - networked games on this device and posts a notification if - any is downloaded. - Regardless of the setting of the connect_frequency - preference, checks the relay immediately for any moves for - networked games on this device and posts a notification if - any is downloaded. - Regardless of the setting of the connect_frequency - preference, checks the relay immediately for any moves for - networked games on this device and posts a notification if - any is downloaded. - */ - public static final int gamel_menu_checkmoves=0x7f050096; - /** - -Check for updates - - */ - public static final int gamel_menu_checkupdates=0x7f050251; - /** - ############################################################ - # :Menus: - # Main screen (Games list) menu - # - # One menu is not listed here because it appears elsewhere - # and their text is reused: button_new_game. - ############################################################ - - Brings up the Wordlists (formerly Dictionaries) screen - If you choose the above option and have no networked games - you get this error message - Text of progress indicator shown while check is being conducted - Regardless of the setting of the connect_frequency - preference, checks the relay immediately for any moves for - networked games on this device and posts a notification if - any is downloaded. - - ############################################################ - # :Menus: - # Main screen (Games list) menu - # - # One menu is not listed here because it appears elsewhere - # and their text is reused: button_new_game. - ############################################################ - - Brings up the Wordlists (formerly Dictionaries) screen - - ############################################################ - # :Menus: - # Main screen (Games list) menu - # - # One menu is not listed here because it appears elsewhere - # and their text is reused: button_new_game. - ############################################################ - - Brings up the Wordlists (formerly Dictionaries) screen - */ - public static final int gamel_menu_dicts=0x7f050094; - /** XLATE-ME -Load DB from SD card - */ - public static final int gamel_menu_loaddb=0x7f050313; - /** XLATE-ME -%1$s/%2$s -XLATE-ME -Write DB to SD card - */ - public static final int gamel_menu_storedb=0x7f050312; - /** Studylist… - */ - public static final int gamel_menu_study=0x7f05028e; - public static final int get_relay_number=0x7f05021f; - /** - -Enter phone number: - - */ - public static final int get_sms_number=0x7f05021e; - /** Get info - */ - public static final int getinfo=0x7f0502c1; - public static final int git_rev=0x7f050084; - /** XLATE-ME -Source version id - */ - public static final int git_rev_title=0x7f05030d; - /** Don\'t try a second time - */ - public static final int got_langdict_summary=0x7f050327; - /** Fetch default wordlist for language - */ - public static final int got_langdict_title=0x7f050326; - /** Green - */ - public static final int green=0x7f050151; - /** My games - */ - public static final int group_cur_games=0x7f050270; - /** New games - */ - public static final int group_new_games=0x7f050271; - /** Used as the default name for remote players displayed within - the Game configure screen - Final state: game is over. - Third state: enough devices have connected in the room to - form a complete game. We'll be in this state as long as the - game exists. - Second state: has been assigned to a room on the relay - (meaning the network is working) but there are not yet as - many players as expected: the game is not complete and play - cannot happen. - The display of each networked game includes one of three - states it can be in in the process of connecting to the - relay. These next three strings are used to create those - three. - First state: is configured to use a room but has not yet - contacted the relay and been assigned that room. - Used as a substitute for the names of remote players when - they aren't available yet because the connection is not - complete. Displayed in the lists of players found in each - game listing. - Used as the default name for remote players displayed within - the Game configure screen -(Off-device player) - Used as the default name for remote players displayed within - the Game configure screen - */ - public static final int guest_name=0x7f0500d3; - /** If this preference is checked the "crosshairs" (vertical and - horzontal lines through the cell your finger is on that help - you tell where the app thinks you're actually tapping) will - not be shown. Some users have complained that this feature - is distracting, presumably because they're using tablets with - large enough screens that they always know where they're - tapping. - If this preference is checked the "crosshairs" (vertical and - horzontal lines through the cell your finger is on that help - you tell where the app thinks you're actually tapping) will - not be shown. Some users have complained that this feature - is distracting, presumably because they're using tablets with - large enough screens that they always know where they're - tapping. -Disable crosshairs - If this preference is checked the "crosshairs" (vertical and - horzontal lines through the cell your finger is on that help - you tell where the app thinks you're actually tapping) will - not be shown. Some users have complained that this feature - is distracting, presumably because they're using tablets with - large enough screens that they always know where they're - tapping. - */ - public static final int hide_crosshairs=0x7f05015d; - /** explanation of the above - explanation of the above -Do not visually indicate which board cell is touched - explanation of the above - */ - public static final int hide_crosshairs_summary=0x7f05015e; - /** clarification of above -XLATE-ME -Hiding the newgame buttons in - the main screen makes more games visible - */ - public static final int hide_newgames_summary=0x7f050140; - /** Checkbox that when set prevents showing the newgame buttons - on the main screen to save space -XLATE-ME -Hide newgame buttons - */ - public static final int hide_newgames_title=0x7f05013f; - /** Checkbox that when set prevents showing a title bar in the - game board window to save space - Checkbox that when set prevents showing a title bar in the - game board window to save space -Hide titlebar - Checkbox that when set prevents showing a title bar in the - game board window to save space - */ - public static final int hide_title=0x7f05013d; - /** clarification of above - clarification of above -Hiding the game name lets the - board be slightly larger - clarification of above - */ - public static final int hide_title_summary=0x7f05013e; - /** text of checkbox. If this checkbox is checked, buttons will - appear by which the user can get high- and low-scoring moves - generated based on his tray. Can be used to cheat. - text of checkbox. If this checkbox is checked, buttons will - appear by which the user can get high- and low-scoring moves - generated based on his tray. Can be used to cheat. -Allow hints - text of checkbox. If this checkbox is checked, buttons will - appear by which the user can get high- and low-scoring moves - generated based on his tray. Can be used to cheat. - */ - public static final int hints_allowed=0x7f0500c6; - /** clarification on hints_allowed, whether new games will - default to having the hint feature enabled(string elsewhere - in this file) - clarification on hints_allowed, whether new games will - default to having the hint feature enabled(string elsewhere - in this file) -Enable the hint feature - clarification on hints_allowed, whether new games will - default to having the hint feature enabled(string elsewhere - in this file) - */ - public static final int hints_allowed_sum=0x7f05012f; - /** title of dialog brought up in response to the - board_menu_game_history menu. A full history of the game up - to the last turn is displayed, though details about what's in - players' racks is left out if the game is not yet over. - title of dialog brought up in response to the - board_menu_game_history menu. A full history of the game up - to the last turn is displayed, though details about what's in - players' racks is left out if the game is not yet over. -Game History - title of dialog brought up in response to the - board_menu_game_history menu. A full history of the game up - to the last turn is displayed, though details about what's in - players' racks is left out if the game is not yet over. - */ - public static final int history_title=0x7f0501b6; - /** Partial text of alert posted when phonies_warn or - phonies_disallow is the current setting and a "phony" is - played. One of the two following strings will be appended - - When a game has been connected and the relay is notified that - a device in the game has deleted its part of the game, this - message is posted when you connect your end of it to the - relay. Once this happens there is no way to continue the - game so you might as well delete it (unless you're saving it - for its history etc.) - Partial text of alert posted when phonies_warn or - phonies_disallow is the current setting and a "phony" is - played. One of the two following strings will be appended - -Word[s] %1$s not found in - wordlist %2$s. - Partial text of alert posted when phonies_warn or - phonies_disallow is the current setting and a "phony" is - played. One of the two following strings will be appended - - */ - public static final int ids_badwords_fmt=0x7f0500f8; - /** text of confirmation dialog shown when user chooses the menu - item with text board_menu_game_final and the game is not over - - text of confirmation dialog shown when user chooses the menu - item with text board_menu_game_final and the game is not over - -Are you sure you want to resign? - text of confirmation dialog shown when user chooses the menu - item with text board_menu_game_final and the game is not over - - */ - public static final int ids_endnow=0x7f0501b8; - /** Title of generic dialog used to display information - If the dropdown is selected, this is the title displayed - above the list of selectable items. The language the game - will use is substituted in for "%1$s". - label for dropdown by which wordlist is chosen that this - player will use. The language the game will use (which - constrains the choice of wordlists) is substituted in for - "%1$s". - Title of generic dialog used to display information -FYI… - Title of generic dialog used to display information - */ - public static final int info_title=0x7f0501b2; - /** - -You are using the wordlist - %1$s but the game host is using %2$s. Would you like to use %3$s - too? - - */ - public static final int inform_dict_diffdict_fmt=0x7f05025c; - /** - -You and the host of this - game are using different versions of the wordlist %1$s. - Used in formatting final scores display - Used in formatting final scores display - - */ - public static final int inform_dict_diffversion_fmt=0x7f05025a; - /** \u0020(You will have to download it - first.) - */ - public static final int inform_dict_download=0x7f05025d; - /** Wordlist mismatch - */ - public static final int inform_dict_title=0x7f05025b; - /** Will new games, on default, randomly rearrange the start - order of players. - Will new games, on default, randomly rearrange the start - order of players. -Juggle players - Will new games, on default, randomly rearrange the start - order of players. - */ - public static final int init_autojuggle=0x7f050131; - /** clarification on above - clarification on above -Randomly, for new games - clarification on above - */ - public static final int init_autojuggle_sum=0x7f050132; - /** default number of minutes on timer for new games - clarification of the above - - ############################################################ - # :Screens: - # Behavior preference subscreen (within Preferences screen) - ############################################################ - - title of this sub-preference - default number of minutes on timer for new games -Timer minutes per player - default number of minutes on timer for new games - */ - public static final int initial_player_minutes=0x7f050134; - public static final int invit_expl_bt_fmt=0x7f0500ed; - public static final int invit_expl_notarget_fmt=0x7f0500ef; - public static final int invit_expl_relay_fmt=0x7f0500ee; - public static final int invit_expl_sms_fmt=0x7f0500ec; - public static final int invite_choice_bt=0x7f05017c; - public static final int invite_choice_email=0x7f05017b; - /** Email -Bluetooth -NFC (\"Android beaming\") - */ - public static final int invite_choice_nfc=0x7f05017d; - public static final int invite_choice_p2p=0x7f05017f; - public static final int invite_choice_relay=0x7f05017e; - /** EXPLAIN ME - Bluetooth is not available. This may - mean that your device doesn\'t support it, or that it\'s been - turned off. - The invitation process begins with this query. The choice is - between html and plaintext formatting but I also provide some - explanation/guidance. - The invitation process begins with this query. The choice is - between html and plaintext formatting but I also provide some - explanation/guidance. -SMS (texting) - */ - public static final int invite_choice_sms=0x7f05017a; - /** Inviting players: How? - */ - public static final int invite_choice_title=0x7f050180; - public static final int invite_chooser_email=0x7f050185; - /** When I've created the invitation, in text or html, I ask - Android to launch an app that can send it, typically an email - or messaging app. Android then asks the user to choose which - of the installed apps that can process the request he'd like - to have launched. This string is passed to Android and used - as the title of the dialog that presents that choice. - When I've created the invitation, in text or html, I ask - Android to launch an app that can send it, typically an email - or messaging app. Android then asks the user to choose which - of the installed apps that can process the request he'd like - to have launched. This string is passed to Android and used - as the title of the dialog that presents that choice. -Send invitation via %1$s - When I've created the invitation, in text or html, I ask - Android to launch an app that can send it, typically an email - or messaging app. Android then asks the user to choose which - of the installed apps that can process the request he'd like - to have launched. This string is passed to Android and used - as the title of the dialog that presents that choice. - */ - public static final int invite_chooser_fmt=0x7f050184; - /** email -sms - */ - public static final int invite_chooser_sms=0x7f050186; - public static final int invite_copied=0x7f050343; - /** %1$s has invited you to - play Crosswords using the wordlist %2$s (for play in %3$s), but it - is not installed. Would you like to download the wordlist or - decline the invitation? - */ - public static final int invite_dict_missing_body_fmt=0x7f050262; - /** You have been - invited to play Crosswords using the wordlist %2$s (for play in - %3$s), but it is not installed. Would you like to download the - wordlist? - */ - public static final int invite_dict_missing_body_noname_fmt=0x7f050263; - /** Missing wordlist - */ - public static final int invite_dict_missing_title=0x7f050261; - public static final int invite_dualpane=0x7f05034e; - public static final int invite_host=0x7f05007f; - /** This is the body of the html version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". (The funky \u003c and friends are - encodings for the greater-than and less-than symbols which - are not legal in xml strings.) - This is the body of the html version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". (The funky \u003c and friends are - encodings for the greater-than and less-than symbols which - are not legal in xml strings.) -\u003Ca href=\"%1$s\"\u003ETap - here\u003C/a\u003E (or tap the full link below, or, if you already - have Crosswords installed, open the attachment) to accept my - invitation and join this game. - - \u003Cbr \\\u003E - \u003Cbr \\\u003E - (full link: %1$s ) - - This is the body of the html version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". (The funky \u003c and friends are - encodings for the greater-than and less-than symbols which - are not legal in xml strings.) - */ - public static final int invite_htm_fmt=0x7f050182; - /** Appended to message above if local device has NFC available - Appended to message above if local device has NFC available -(Or just Tap to Invite - if the - other device also has Android Beaming and is nearby.) - */ - public static final int invite_if_nfc=0x7f0500ea; - public static final int invite_mime=0x7f050080; - /** XLATE-ME -Invite more than one player per remote device - */ - public static final int invite_multi_summary=0x7f0502e6; - /** XLATE-ME -Invite multiple - */ - public static final int invite_multi_title=0x7f0502e5; - /** Most users create games with only two players, which is the - default, but Crosswords supports up to four. When I'm using - the above string to encourage the opener of a game missing - players to invite, IF the number of missing players is - greater than one this text is appended to the above. - Most users create games with only two players, which is the - default, but Crosswords supports up to four. When I'm using - the above string to encourage the opener of a game missing - players to invite, IF the number of missing players is - greater than one this text is appended to the above. -\u0020(You are expecting multiple - remote players. Be sure to address your invitation to - that many people.) - If a networked game is opened and is not complete, i.e. if it - is listed as expecting remote players who have not yet shown - up, then the most likely explanation is that none has been - invited. (It's also possible that an invitation has been - sent, but I have no way of knowing that.) So every time I - open such a game I give the user a chance to issue an - invititation while trying to warn him not to send duplicates. - The number of players missing is substituted for "%1$d". - Toast shown when players are missing, same time as above - but more subtle. - Most users create games with only two players, which is the - default, but Crosswords supports up to four. When I'm using - the above string to encourage the opener of a game missing - players to invite, IF the number of missing players is - greater than one this text is appended to the above. - */ - public static final int invite_multiple=0x7f0500eb; - /** - - */ - public static final int invite_notice_title=0x7f050202; - public static final int invite_p2p_desc_extra=0x7f050219; - public static final int invite_prefix=0x7f050086; - /** Sending invitation to Crosswords on %1$s - */ - public static final int invite_progress_fmt=0x7f0501fd; - /** - -Connecting... - */ - public static final int invite_progress_title=0x7f0501fc; - /** XLATE-ME -(This dialog will stay up until all - remote players have connected. You can close the game if you - expect it to take a while. They will still be able to - connect.) - */ - public static final int invite_stays=0x7f0502f1; - /** Send invitation using SMS (texting) or - via email? - Send invitation using NFC (Android - beaming – NEW) or via email? - Send invitation using SMS - (texting) or NFC (\"Android beaming\" – NEW) or via email? - When an invitation is sent, the user gets to choose between - plaintext and html formatting. These two strings are shown in the - two buttons in the dialog. - SMS/Text - Email - NFC - This is the subject line of the email/text sent to invite - someone to join a game. - EXPLAIN ME - Le Bluetooth n\'est pas disponible. Cela peut - signifier que votre périphérique ne peut pas en faire, ou qu\'il a été éteint. - This is the subject line of the email/text sent to invite - someone to join a game. -Let\'s play Crosswords (Room %1$s) - EXPLAIN ME - EXPLAIN ME - The invitation process begins with this query. The choice is - between html and plaintext formatting but I also provide some - explanation/guidance. - When an invitation is sent, the user gets to choose between - plaintext and html formatting. These two strings are shown in the - two buttons in the dialog. - This is the subject line of the email/text sent to invite - someone to join a game. - */ - public static final int invite_subject_fmt=0x7f050181; - /** This is the body of the text version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". - This is the body of the text version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". -Let\'s play Crosswords! Join this game: - %1$s . - This is the body of the text version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". - */ - public static final int invite_txt_fmt=0x7f050183; - public static final int invited_msg=0x7f0500e9; - /** First line of debug-only Invites list dialog - */ - public static final int invites_net_fmt=0x7f050234; - /** text of checkbox asking if user wants to search for open - public rooms - text of checkbox asking if user wants to search for open - public rooms -Join public room - text of separator marking out the connection area of the dialog - text of checkbox asking if user wants to search for open - public rooms - */ - public static final int join_room=0x7f0500bf; - /** Checkbox that when set keeps the device screen from dimming - if the board screen is what's displayed. This is to allow - users to think about a move without having to touch the - screen all the time. - Checkbox that when set keeps the device screen from dimming - if the board screen is what's displayed. This is to allow - users to think about a move without having to touch the - screen all the time. -Keep screen on - Checkbox that when set keeps the device screen from dimming - if the board screen is what's displayed. This is to allow - users to think about a move without having to touch the - screen all the time. - */ - public static final int keep_screenon=0x7f050143; - /** clarification of above - clarification of above -Keep board screen on 10 mins - clarification of above - */ - public static final int keep_screenon_summary=0x7f050144; - public static final int key_addrs_pref=0x7f05003f; - public static final int key_background=0x7f050019; - public static final int key_board_size=0x7f050028; - public static final int key_bonus_l2x=0x7f050013; - public static final int key_bonus_l3x=0x7f050014; - public static final int key_bonus_w2x=0x7f050015; - public static final int key_bonus_w3x=0x7f050016; - /** the color of text, e.g. "2L", shown on a bonus square on the - board - the color of text, e.g. "2L", shown on a bonus square on the - board -In-square bonus hint - the color of text, e.g. "2L", shown on a bonus square on the - board - */ - public static final int key_bonushint=0x7f05014f; - public static final int key_bt_addrs=0x7f050041; - /** database keys whose entries aren't visible prefs - */ - public static final int key_closed_langs=0x7f050040; - public static final int key_clr_bonushint=0x7f05001b; - public static final int key_clr_crosshairs=0x7f05001a; - /** prefs keys - */ - public static final int key_color_tiles=0x7f050001; - public static final int key_connect_frequency=0x7f050031; - public static final int key_connstat_data=0x7f050044; - public static final int key_default_dict=0x7f05002b; - public static final int key_default_group=0x7f050049; - public static final int key_default_language=0x7f05002a; - public static final int key_default_loc=0x7f05003b; - public static final int key_default_phonies=0x7f05002f; - public static final int key_default_robodict=0x7f05002e; - public static final int key_default_timerenabled=0x7f050030; - public static final int key_dev_id=0x7f050045; - public static final int key_dict_host=0x7f050022; - public static final int key_disable_nag=0x7f050006; - public static final int key_disable_nag_solo=0x7f050007; - public static final int key_disable_relay=0x7f050033; - public static final int key_download_path=0x7f050070; - public static final int key_empty=0x7f050018; - public static final int key_enable_debug=0x7f05006a; - public static final int key_enable_dualpane=0x7f05003d; - public static final int key_enable_dup_invite=0x7f05006b; - public static final int key_enable_nfc_toself=0x7f05006c; - public static final int key_enable_pubroom=0x7f05000e; - public static final int key_enable_relay_toself=0x7f05006e; - public static final int key_enable_sms=0x7f050035; - public static final int key_enable_sms_toself=0x7f05006d; - public static final int key_explain_robot=0x7f050004; - public static final int key_force_radio=0x7f05003e; - public static final int key_force_tablet=0x7f05003c; - public static final int key_gcmvers_regid=0x7f050046; - public static final int key_got_langdict=0x7f050071; - public static final int key_group_posns=0x7f05004a; - public static final int key_hide_crosshairs=0x7f05000a; - public static final int key_hide_newgames=0x7f05000d; - public static final int key_hide_title=0x7f05000c; - public static final int key_hide_values=0x7f05000b; - public static final int key_init_autojuggle=0x7f050027; - public static final int key_init_hintsallowed=0x7f050025; - public static final int key_init_nethintsallowed=0x7f050026; - public static final int key_initial_player_minutes=0x7f050029; - public static final int key_invite_multi=0x7f050074; - public static final int key_keep_screenon=0x7f050037; - public static final int key_last_packet=0x7f05004b; - public static final int key_logging_on=0x7f050023; - public static final int key_na_browse=0x7f050063; - public static final int key_na_browseall=0x7f050064; - public static final int key_na_clip_expl=0x7f050068; - public static final int key_na_comms_bt=0x7f050078; - public static final int key_na_comms_p2p=0x7f050079; - public static final int key_na_comms_relay=0x7f05007b; - public static final int key_na_comms_sms=0x7f05007a; - public static final int key_na_dicts=0x7f050069; - public static final int key_na_fmt_expl=0x7f050067; - public static final int key_na_lookup=0x7f050062; - public static final int key_na_rematch_two_only=0x7f050076; - public static final int key_na_studycopy=0x7f050066; - public static final int key_na_values=0x7f050065; - public static final int key_nag_intervals=0x7f05006f; - public static final int key_network_behavior=0x7f050036; - public static final int key_notagain_arrow=0x7f05005d; - public static final int key_notagain_backclears=0x7f050050; - public static final int key_notagain_chat=0x7f050051; - public static final int key_notagain_conndall=0x7f05005a; - public static final int key_notagain_conndfirst=0x7f05005b; - public static final int key_notagain_conndmid=0x7f05005c; - public static final int key_notagain_dfltname=0x7f050077; - public static final int key_notagain_done=0x7f050058; - public static final int key_notagain_dualpane=0x7f05004f; - public static final int key_notagain_enablepublic=0x7f050075; - public static final int key_notagain_flip=0x7f050056; - public static final int key_notagain_hidenewgamebuttons=0x7f050061; - public static final int key_notagain_hintnext=0x7f050054; - public static final int key_notagain_hintprev=0x7f050053; - public static final int key_notagain_juggle=0x7f050055; - public static final int key_notagain_newfrom=0x7f05005f; - /** key_notagain_sms_ready - */ - public static final int key_notagain_newselect=0x7f05004e; - public static final int key_notagain_relay=0x7f050052; - public static final int key_notagain_sync=0x7f05004d; - public static final int key_notagain_trading=0x7f050060; - public static final int key_notagain_turnchanged=0x7f05005e; - public static final int key_notagain_undo=0x7f050057; - public static final int key_notagain_unlock=0x7f050059; - public static final int key_notify_sound=0x7f050032; - public static final int key_notify_vibrate=0x7f050034; - public static final int key_peek_other=0x7f050009; - public static final int key_player0=0x7f05000f; - public static final int key_player1=0x7f050010; - public static final int key_player1_name=0x7f05002c; - public static final int key_player2=0x7f050011; - public static final int key_player3=0x7f050012; - public static final int key_proxy_port=0x7f050020; - public static final int key_relay_host=0x7f05001c; - public static final int key_relay_ids=0x7f050043; - public static final int key_relay_port=0x7f05001d; - public static final int key_relay_regid=0x7f050047; - public static final int key_relay_regid_ackd=0x7f050048; - public static final int key_robot_name=0x7f05002d; - public static final int key_show_arrow=0x7f050002; - public static final int key_show_sms=0x7f050024; - public static final int key_skip_confirm=0x7f050005; - public static final int key_sms_phones=0x7f050042; - public static final int key_sms_port=0x7f050021; - public static final int key_sort_tiles=0x7f050008; - public static final int key_square_tiles=0x7f050003; - public static final int key_studyon=0x7f050039; - public static final int key_summary_field=0x7f05003a; - public static final int key_thumbsize=0x7f050038; - public static final int key_tile_back=0x7f050017; - public static final int key_udp_interval=0x7f05004c; - public static final int key_update_prerel=0x7f05001f; - public static final int key_update_url=0x7f05001e; - public static final int key_xlations_enabled=0x7f050073; - public static final int key_xlations_locale=0x7f050072; - /** text of separator marking out the language area of the - dialog. First is used for single-device games, and second - for networked games (where players aren't allowed to have - different wordlists.) - text of separator marking out the language area of the - dialog. First is used for single-device games, and second - for networked games (where players aren't allowed to have - different wordlists.) -Game language - text of separator marking out the language area of the - dialog. First is used for single-device games, and second - for networked games (where players aren't allowed to have - different wordlists.) - */ - public static final int lang_label=0x7f0500bc; - public static final int lang_name_arabic=0x7f0502ab; - public static final int lang_name_catalan=0x7f0502b2; - public static final int lang_name_czech=0x7f0502b5; - public static final int lang_name_danish=0x7f0502af; - public static final int lang_name_dutch=0x7f0502b1; - public static final int lang_name_english=0x7f0502a7; - public static final int lang_name_french=0x7f0502a8; - public static final int lang_name_german=0x7f0502a9; - public static final int lang_name_greek=0x7f0502b6; - public static final int lang_name_italian=0x7f0502b0; - public static final int lang_name_polish=0x7f0502ae; - public static final int lang_name_portuguese=0x7f0502b3; - public static final int lang_name_russian=0x7f0502b4; - public static final int lang_name_slovak=0x7f0502b7; - public static final int lang_name_spanish=0x7f0502ac; - public static final int lang_name_swedish=0x7f0502ad; - public static final int lang_name_turkish=0x7f0502aa; - /** Unknown - */ - public static final int lang_unknown=0x7f0502ca; - /** Game language/wordlist - */ - public static final int langdict_label=0x7f0500bd; - /** Put new games here - */ - public static final int list_group_default=0x7f05026d; - /** Delete group - */ - public static final int list_group_delete=0x7f05026b; - /** Move down - */ - public static final int list_group_movedown=0x7f05026f; - /** Move up - */ - public static final int list_group_moveup=0x7f05026e; - /** Rename - */ - public static final int list_group_rename=0x7f05026c; - /** ############## menu items ############## - pulls up dialog to configure the selected game - Used to format game name plus some other information as the - one-line summary for each game in the main screen. The name - of the game is substituted for %1$s. Something else - (language, player names, etc), is substituted for %2$s. This - does not require translation unless the parentheses or - ordering is wrong for your language. - Games list screen menuitem text for creating a new group - ############## menu items ############## - pulls up dialog to configure the selected game - ############## menu items ############## - pulls up dialog to configure the selected game - */ - public static final int list_item_config=0x7f05009b; - /** makes a copy of the selected game. This is currently - disabled for networked games since there would be problems if - two identically configured games started trying to talk to a - remote game that expected there was only one of them. - makes a copy of the selected game. This is currently - disabled for networked games since there would be problems if - two identically configured games started trying to talk to a - remote game that expected there was only one of them. - makes a copy of the selected game. This is currently - disabled for networked games since there would be problems if - two identically configured games started trying to talk to a - remote game that expected there was only one of them. - */ - public static final int list_item_copy=0x7f0500a1; - /** pulls up dialog to delete the selected game - pulls up dialog to change the group of the selected game - pulls up dialog to rename (change name of) the selected game - pulls up dialog to delete the selected game - pulls up dialog to delete the selected game - */ - public static final int list_item_delete=0x7f05009e; - public static final int list_item_deselect=0x7f05034b; - /** pulls up dialog to change the group of the selected game - pulls up dialog to change the group of the selected game - pulls up dialog to change the group of the selected game - */ - public static final int list_item_move=0x7f05009d; - /** creates a new game with all configuation copied from the - selected game - creates a new game with all configuation copied from the - selected game - creates a new game with all configuation copied from the - selected game - */ - public static final int list_item_new_from=0x7f0500a0; - /** pulls up dialog to rename (change name of) the selected game - pulls up dialog to rename (change name of) the selected game - pulls up dialog to rename (change name of) the selected game - */ - public static final int list_item_rename=0x7f05009c; - /** pulls up dialog to reset the selected game, that is to remove - all moves so that it's the same as a newly created game - except for any configuration. - Text of confirmation dialog posted when list_item_reset menu - is selected - text within rename dialog (triggered by selecting - list_item_rename) - - Title of dialog for renaming game (triggered by selecting - list_item_rename) - If you try to copy a networked game you get this error - message. - pulls up dialog to reset the selected game, that is to remove - all moves so that it's the same as a newly created game - except for any configuration. - pulls up dialog to reset the selected game, that is to remove - all moves so that it's the same as a newly created game - except for any configuration. - */ - public static final int list_item_reset=0x7f05009f; - public static final int list_item_select=0x7f05034a; - /** formatting for last move summary in notifications - formatting for last move summary in notifications -%1$s passed (0 points) - */ - public static final int lmi_pass_fmt=0x7f0502d3; - /** %1$s lost a turn - */ - public static final int lmi_phony_fmt=0x7f0502d4; - /** Tiles assigned to %1$s - */ - public static final int lmi_tiles_fmt=0x7f0502d5; - /** One of the strings used in the right column of the list of - installed wordlists to describe those that are part of - Crosswords and that cannot be uninstalled or moved. - loc_internal and loc_external are the other possible strings - in this column. - One of the strings used in the right column of the list of - installed wordlists to describe those that are part of - Crosswords and that cannot be uninstalled or moved. - loc_internal and loc_external are the other possible strings - in this column. - One of the strings used in the right column of the list of - installed wordlists to describe those that are part of - Crosswords and that cannot be uninstalled or moved. - loc_internal and loc_external are the other possible strings - in this column. - */ - public static final int loc_builtin=0x7f0500a8; - /** Used to describe wordlists that are in the Downloads - directory. Currently I don't look there so this is unused, - but I will eventually do so. This should be the same name as - the built-in Android web browser uses for the directory where - it saves files it downloads. - Used to describe wordlists that are in the Downloads - directory. Currently I don't look there so this is unused, - but I will eventually do so. This should be the same name as - the built-in Android web browser uses for the directory where - it saves files it downloads. - Used to describe wordlists that are in the Downloads - directory. Currently I don't look there so this is unused, - but I will eventually do so. This should be the same name as - the built-in Android web browser uses for the directory where - it saves files it downloads. - */ - public static final int loc_downloads=0x7f0500a9; - /** - - - */ - public static final int loc_external=0x7f0500b3; - /** All - */ - public static final int loc_filters_all=0x7f0502a3; - /** Latest menu - */ - public static final int loc_filters_menu=0x7f0502a5; - /** Modified by me - */ - public static final int loc_filters_modified=0x7f0502a6; - /** Filter by: - */ - public static final int loc_filters_prompt=0x7f0502a1; - /** Latest screen - */ - public static final int loc_filters_screen=0x7f0502a4; - /** Illegal translation: a translated - string must have the same format specifiers (e.g. %1$s) as the - original. - */ - public static final int loc_fmts_mismatch=0x7f0502bc; - /** see move_dictf above - see move_dictf above - see move_dictf above - */ - public static final int loc_internal=0x7f0500b2; - /** Check - */ - public static final int loc_item_check=0x7f0502b9; - /** for loc item edit menu - for loc item edit menu -Clear - */ - public static final int loc_item_clear=0x7f0502b8; - /** Copy official - */ - public static final int loc_item_copy_bless=0x7f0502bb; - /** Copy English - */ - public static final int loc_item_copy_eng=0x7f0502ba; - /** %1$s (official) - */ - public static final int loc_lang_blessed=0x7f05029c; - /** %1$s (yours) - */ - public static final int loc_lang_local=0x7f05029d; - /** Translate - */ - public static final int loc_menu_xlate=0x7f05029b; - /** Search for: - */ - public static final int loc_search_prompt=0x7f0502a2; - /** This is the "hint" printed in light text in the empty player - name field - ############################################################ - # :Screens: - # RelayGameActivity screen - # - # This screen is a simple alternative to the Game Configure - # screen. You'll get it when you choose the list_item_config - # on certain unconfigured simple relay games (currently simple - # means they have 2 players. These days about the only way to - # get this screen is to create a relay game manually and to - # abort after making the room name empty. That is, this is - # left over from an older way of helping people connect, from - # before invitations. - - # The dialog has a list of instructions, two text fields for - # room name and local player name, and two buttons. - ############################################################ - - This is the "hint" printed in light text in the empty player - name field -Player name - ############################################################ - # :Screens: - # RelayGameActivity screen - # - # This screen is a simple alternative to the Game Configure - # screen. You'll get it when you choose the list_item_config - # on certain unconfigured simple relay games (currently simple - # means they have 2 players. These days about the only way to - # get this screen is to create a relay game manually and to - # abort after making the room name empty. That is, this is - # left over from an older way of helping people connect, from - # before invitations. - - # The dialog has a list of instructions, two text fields for - # room name and local player name, and two buttons. - ############################################################ - - This is the heading above the list of steps. The default - language is substituted for %s. - These four strings are displayed as step-by-step - instructions - This is the "hint" printed in light text in the empty player - name field - */ - public static final int local_name_hint=0x7f05018d; - /** XLATE-ME -Enable logging - */ - public static final int logging_on=0x7f050304; - /** XLATE-ME -(release builds only) - */ - public static final int logging_on_summary=0x7f050305; - /** Word lookup - */ - public static final int lookup_title=0x7f050297; - /** - -Max length - - */ - public static final int max_len=0x7f0501f2; - /** - -Chat - - */ - public static final int menu_chat=0x7f05022c; - /** - -Flip board - - */ - public static final int menu_flip=0x7f05022a; - /** - -Next hint - - */ - public static final int menu_hint_next=0x7f050227; - /** - -Prev hint - - */ - public static final int menu_hint_prev=0x7f050226; - /** - -Juggle rack - - */ - public static final int menu_juggle=0x7f050229; - /** text of menu that brings up the Settings (preferences) dialog - text of menu that brings up the Settings (preferences) dialog - text of menu that brings up the Settings (preferences) dialog - */ - public static final int menu_prefs=0x7f050095; - /** Rate Crosswords - */ - public static final int menu_rateme=0x7f050289; - /** - -Toggle values - - */ - public static final int menu_toggle_values=0x7f05022e; - /** - -Zoom in/out - - */ - public static final int menu_zoom=0x7f05022b; - /** - -Min length - - */ - public static final int min_len=0x7f0501f1; - /** label for the field used to set the timer's inital value - label for the field used to set the timer's inital value -Minutes per player - label for the field used to set the timer's inital value - */ - public static final int minutes_label=0x7f0500c9; - /** body of notification shown when invitation requires a - wordslist that's not installed - body of notification shown when invitation requires a - wordslist that's not installed -Tap to download missing wordlist - */ - public static final int missing_dict_detail=0x7f050260; - /** Title of notification shown when invitation requires a - wordslist that's not installed - Title of notification shown when invitation requires a - wordslist that's not installed -Game invitation pending - */ - public static final int missing_dict_title=0x7f05025f; - public static final int missing_perms=0x7f050357; - /** Used as a substitute for the names of remote players when - they aren't available yet because the connection is not - complete. Displayed in the lists of players found in each - game listing. - Used to format game name plus some other information as the - one-line summary for each game in the main screen. The name - of the game is substituted for %1$s. Something else - (language, player names, etc), is substituted for %2$s. This - does not require translation unless the parentheses or - ordering is wrong for your language. - Used to format robot player names in the lists of players - found in each game listing - Used as a substitute for the names of remote players when - they aren't available yet because the connection is not - complete. Displayed in the lists of players found in each - game listing. - Used as a substitute for the names of remote players when - they aren't available yet because the connection is not - complete. Displayed in the lists of players found in each - game listing. - */ - public static final int missing_player=0x7f05008b; - /** When the dicts_item_move menu is chosen, this text is used in - the confirmation dialog. The name of the selected wordlist - is substituted for %1$s. The strings loc_internal and - loc_internal are substitued for %2$s and %3$s (or vice-versa, - depending on the current location of the wordlist.) - When the dicts_item_move menu is chosen, this text is used in - the confirmation dialog. The name of the selected wordlist - is substituted for %1$s. The strings loc_internal and - loc_internal are substitued for %2$s and %3$s (or vice-versa, - depending on the current location of the wordlist.) - When the dicts_item_move menu is chosen, this text is used in - the confirmation dialog. The name of the selected wordlist - is substituted for %1$s. The strings loc_internal and - loc_internal are substitued for %2$s and %3$s (or vice-versa, - depending on the current location of the wordlist.) - */ - public static final int move_dict_fmt=0x7f0500b1; - public static final int move_dict_rationale=0x7f050360; - /** - ############################################################ - # :Dialogs: - # Password dialog - # - - # This alert is displayed when a local player has set a - # password and is trying to see his tiles - ############################################################ - - Text of dialog. Player name is substituted - If substituting an existing same-language wordlist by - choosing button_substdict user gets to choose from a list of - wordlists. This is the title of that list. - Text of button allowing user to choose to open with a - different (but same-language wordlist) - - ############################################################ - # :Dialogs: - # Password dialog - # - - # This alert is displayed when a local player has set a - # password and is trying to see his tiles - ############################################################ - - Text of dialog. Player name is substituted -Password for \"%1$s\": - - ############################################################ - # :Dialogs: - # Password dialog - # - - # This alert is displayed when a local player has set a - # password and is trying to see his tiles - ############################################################ - - Text of dialog. Player name is substituted - */ - public static final int msg_ask_password_fmt=0x7f0501a5; - /** When a game has been connected and the relay is notified that - a device in the game has deleted its part of the game, this - message is posted when you connect your end of it to the - relay. Once this happens there is no way to continue the - game so you might as well delete it (unless you're saving it - for its history etc.) - When a game has been connected and the relay is notified that - a device in the game has deleted its part of the game, this - message is posted when you connect your end of it to the - relay. Once this happens there is no way to continue the - game so you might as well delete it (unless you're saving it - for its history etc.) -This game has been deleted on - another device. You will not be able to play any - further. - When a game has been connected and the relay is notified that - a device in the game has deleted its part of the game, this - message is posted when you connect your end of it to the - relay. Once this happens there is no way to continue the - game so you might as well delete it (unless you're saving it - for its history etc.) - */ - public static final int msg_dev_deleted=0x7f0500f7; - /** (I believe this can no longer occur) - (I believe this can no longer occur) -Another host has already registered a - room using that name. Rename yours or retry later. - (I believe this can no longer occur) - */ - public static final int msg_dup_room=0x7f0500f5; - /** (I believe this can no longer occur) - (I believe this can no longer occur) -The relay has lost contact with - another device in this game. - (I believe this can no longer occur) - */ - public static final int msg_lost_other=0x7f0500f6; - /** (I believe this can no longer occur) - (I believe this can no longer occur) -No host has registered a room by that name. - (I believe this can no longer occur) - */ - public static final int msg_no_room=0x7f0500f4; - /** Text of "toast" shown when a game is notified by the relay - that all expected players have registered. At this point - play can begin. - Text of "toast" shown when a game is notified by the relay - that all expected players have registered. At this point - play can begin. -All players are here in room - \"%1$s\". - Text of "toast" (mini window briefly displayed) shown when a - game first connects to the relay. The three substitutions - are the device's order within the game (e.g. 2), the name of - the room, and how many additional players have not yet - registered with the relay in this game. This should be seen - only once per game. - Text of "toast" shown when a game is notified by the relay - that all expected players have registered. At this point - play can begin. - */ - public static final int msg_relay_all_here_fmt=0x7f0500f1; - /** (I believe this can no longer occur) - (I believe this can no longer occur) -You are providing more players than - the host expects. - (I believe this can no longer occur) - */ - public static final int msg_too_many=0x7f0500f3; - /** Text of progress indicator shown while check is being conducted - Text of progress indicator shown while check is being conducted - Text of progress indicator shown while check is being conducted - */ - public static final int msgs_progress=0x7f050097; - /** %1$s moved more than %2$s ago. - */ - public static final int nag_body_fmt=0x7f0502d0; - /** XLATE-ME -Reminder intervals (minutes1,minutes2,...) - */ - public static final int nag_intervals=0x7f050317; - /** Nagging: title of notification reminder message - Nagging: title of notification reminder message -Reminder: It\'s your turn - */ - public static final int nag_title=0x7f0502cf; - /** above is inserted in this the last time I warn - above is inserted in this the last time I warn -Last warning: %1$s - */ - public static final int nag_warn_last_fmt=0x7f0502d1; - /** XLATE-ME -%1$s copy - */ - public static final int name_copy_fmt=0x7f050213; - public static final int name_dict_fmt=0x7f050311; - public static final int nbs_port=0x7f050085; - /** text of checkbox. If this checkbox is checked, games created - for network play will by default have the hint feature - enabled. - text of checkbox. If this checkbox is checked, games created - for network play will by default have the hint feature - enabled. -Allow hints (networked) - text of checkbox. If this checkbox is checked, games created - for network play will by default have the hint feature - enabled. - */ - public static final int nethints_allowed=0x7f0500c7; - /** clarification on hints_allowed, whether new NETWORKED games - will default to having the hint feature enabled(string - elsewhere in this file) - clarification on hints_allowed, whether new NETWORKED games - will default to having the hint feature enabled(string - elsewhere in this file) -Enable hints for two-device games - clarification on hints_allowed, whether new NETWORKED games - will default to having the hint feature enabled(string - elsewhere in this file) - */ - public static final int nethints_allowed_sum=0x7f050130; - /** XLATE-ME -Game network stats - */ - public static final int netstats_title=0x7f05030c; - /** XLATE-ME -For experienced players - */ - public static final int network_advanced_summary=0x7f0502e4; - /** XLATE-ME -Advanced - */ - public static final int network_advanced_title=0x7f0502e3; - /** Network game settings - */ - public static final int network_behavior=0x7f05015f; - /** explanation of the above - explanation of the above -Settings that apply to - networked games - explanation of the above - */ - public static final int network_behavior_summary=0x7f050160; - /** - -Tap to download and install - - */ - public static final int new_app_avail=0x7f050256; - /** - -New version of %1$s - - */ - public static final int new_app_avail_fmt=0x7f050255; - /** - -New game via Bluetooth - -From a player on the device %1$s wants to start a game - - - */ - public static final int new_bt_body_fmt=0x7f050203; - /** - - */ - public static final int new_btmove_title=0x7f050207; - /** - -New wordlist available - - */ - public static final int new_dict_avail=0x7f050253; - /** - -Tap to update %1$s - - */ - public static final int new_dict_avail_fmt=0x7f050254; - /** XLATE-ME -New one-device game - */ - public static final int new_game=0x7f0502da; - /** XLATE-ME -Would you like to create this game - using default settings?\n\nOr would you like to configure it - first? - */ - public static final int new_game_message=0x7f0502dd; - /** XLATE-ME -(You will have a chance to - invite other players when it is open.) - */ - public static final int new_game_message_net=0x7f0502df; - /** XLATE-ME -This game must be - configured before it can be opened. - */ - public static final int new_game_message_nodflt=0x7f0502de; - /** XLATE-ME -New networked game - */ - public static final int new_game_networked=0x7f0502db; - /** - - -One or more moves has arrived - - */ - public static final int new_move_body=0x7f050208; - /** - -%1$s has invited you to play - - */ - public static final int new_name_body_fmt=0x7f050216; - public static final int new_relay_body=0x7f050204; - /** hint (text shown when field is empty) for room name field - hint (text shown when field is empty) for room name field -Room name - hint (text shown when field is empty) for room name field - */ - public static final int new_room_hint=0x7f0500c0; - /** - ########################################################### - # :Dialogs: - # New user info dialog - # - # This dialog pops up in places I think new users need an - # explanation of something. It always has a button allowing - # the user to say he doesn't need to see it again. - ########################################################### - - Title of New user info dialog - - ########################################################### - # :Dialogs: - # New user info dialog - # - # This dialog pops up in places I think new users need an - # explanation of something. It always has a button allowing - # the user to say he doesn't need to see it again. - ########################################################### - - Title of New user info dialog -Here\'s a tip - - ########################################################### - # :Dialogs: - # New user info dialog - # - # This dialog pops up in places I think new users need an - # explanation of something. It always has a button allowing - # the user to say he doesn't need to see it again. - ########################################################### - - Title of New user info dialog - */ - public static final int newbie_title=0x7f0501ba; - /** section separator (white-on-gray bar) for third section: - bluetooth games - section separator (white-on-gray bar) for third section: - bluetooth games -New Bluetooth game - section separator (white-on-gray bar) for third section: - bluetooth games - */ - public static final int newgame_bt_header=0x7f050179; - /** Text of second of two buttons for new standalone games. Tap - this and you'll get taken to the "Game configure" screen - Text of second of two buttons for new standalone games. Tap - this and you'll get taken to the "Game configure" screen -Configure first - */ - public static final int newgame_configure_first=0x7f050173; - public static final int newgame_drop_relay=0x7f050178; - /** Text of first of two buttons for new networked games. Tap - this and a game will be created, but you probably won't see - it immediately because an email or messaging app will be - launched to send your invitation. - Text of first of two buttons for new networked games. Tap - this and a game will be created, but you probably won't see - it immediately because an email or messaging app will be - launched to send your invitation. -Invite now - Text of first of two buttons for new networked games. Tap - this and a game will be created, but you probably won't see - it immediately because an email or messaging app will be - launched to send your invitation. - */ - public static final int newgame_invite=0x7f050176; - public static final int newgame_invite_more=0x7f050177; - /** Text of first of two buttons for new standalone games. Tap - this and a new game will be created and opened. If the first - player is a robot it will immediately take its turn. - Text of first of two buttons for new standalone games. Tap - this and a new game will be created and opened. If the first - player is a robot it will immediately take its turn. -Play now - Text of first of two buttons for new standalone games. Tap - this and a new game will be created and opened. If the first - player is a robot it will immediately take its turn. - */ - public static final int newgame_local=0x7f050172; - /** This is one of two descriptions on this screen. It explains - what standalone games are and describes the two buttons used - to create them. The name of the language of the default - wordlist is substituted in for %1$s. - This is one of two descriptions on this screen. It explains - what standalone games are and describes the two buttons used - to create them. The name of the language of the default - wordlist is substituted in for %1$s. -Create a new game where all - players will be on this device. To play against a robot and - with your default settings (in %1$s, etc.) just press \"Play - now\". To add players or change game settings, press - \"Configure first\". - This is one of two descriptions on this screen. It explains - what standalone games are and describes the two buttons used - to create them. The name of the language of the default - wordlist is substituted in for %1$s. - */ - public static final int newgame_local_desc_fmt=0x7f050171; - /** ############################################################ - # :Screens: - # New game screen - # - # This comes up when you tap the "new game" button on the - # main screen or the new game menuitem in the main screen's - # menu. It has descriptions and buttons for creating the two - # types of supported games, standalone and networked. - ############################################################ - - section separator (white-on-gray bar) for first section: - standalone games - ############################################################ - # :Screens: - # New game screen - # - # This comes up when you tap the "new game" button on the - # main screen or the new game menuitem in the main screen's - # menu. It has descriptions and buttons for creating the two - # types of supported games, standalone and networked. - ############################################################ - - section separator (white-on-gray bar) for first section: - standalone games -New Local-only game - ############################################################ - # :Screens: - # New game screen - # - # This comes up when you tap the "new game" button on the - # main screen or the new game menuitem in the main screen's - # menu. It has descriptions and buttons for creating the two - # types of supported games, standalone and networked. - ############################################################ - - section separator (white-on-gray bar) for first section: - standalone games - */ - public static final int newgame_local_header=0x7f050170; - /** This is the second of two descriptions on this screen. It - explains what networked games are and describes the two - buttons used to create them. - This is the second of two descriptions on this screen. It - explains what networked games are and describes the two - buttons used to create them. -Create a game that will be - played over the network. The \"Invite now\" button starts a - two-device game and helps you invite a friend to join it. Or - press \"Configure first\" to change some of the defaults before - you start your networked game. (You\'ll have a chance to send - invites later.) - This is the second of two descriptions on this screen. It - explains what networked games are and describes the two - buttons used to create them. - */ - public static final int newgame_networked_desc=0x7f050175; - /** section separator (white-on-gray bar) for second section: - networked games - section separator (white-on-gray bar) for second section: - networked games -New Networked game - section separator (white-on-gray bar) for second section: - networked games - */ - public static final int newgame_networked_header=0x7f050174; - /** - -New SMS Game - - - - */ - public static final int newgame_sms_header=0x7f050214; - /** Name your new group: - */ - public static final int newgroup_label=0x7f05026a; - /** XLATE-ME -To invite via NFC just touch the back - of this device against the one you want to invite—any time the - game is open. - */ - public static final int nfc_just_tap=0x7f0502f2; - /** XLATE-ME -GSM -XLATE-ME -CDMA -XLATE-ME -Send via NFC to self? - */ - public static final int nfc_to_self=0x7f050321; - /** Title of dialog for renaming game (triggered by selecting - list_item_rename) - If you try to copy a networked game you get this error - message. - Title of dialog for renaming game (triggered by selecting - list_item_rename) - If you try to copy a networked game you get this error - message. - Title of dialog for renaming game (triggered by selecting - list_item_rename) - If you try to copy a networked game you get this error - message. - */ - public static final int no_copy_network=0x7f0500a2; - /** If the wordlist disappears mid-game there are no choices, - just an explanation and this button, after which the game - closes. - If the wordlist disappears mid-game there are no choices, - just an explanation and this button, after which the game - closes. -A wordlist this game is using has - disappeared. (Usually this means it\'s on an external card that - is no longer available.) - If the wordlist disappears mid-game there are no choices, - just an explanation and this button, after which the game - closes. - */ - public static final int no_dict_finish=0x7f05019e; - /** If the missing wordlist is discovered when trying to open the - game, we have more options. If there's another wordlist in - the same language, we can offer to substitute without needing - to download. Otherwise the user must choose between - downloading and not opening the game. This first message - takes wordlist name and language substituted in for %1$ and - %2$ - If the missing wordlist is discovered when trying to open the - game, we have more options. If there's another wordlist in - the same language, we can offer to substitute without needing - to download. Otherwise the user must choose between - downloading and not opening the game. This first message - takes wordlist name and language substituted in for %1$ and - %2$ -Game \"%1$s\" requires a %2$s wordlist. - Please download one before opening. - If the missing wordlist is discovered when trying to open the - game, we have more options. If there's another wordlist in - the same language, we can offer to substitute without needing - to download. Otherwise the user must choose between - downloading and not opening the game. This first message - takes wordlist name and language substituted in for %1$ and - %2$ - */ - public static final int no_dict_fmt=0x7f0501a0; - /** This is an alternative message presented when there's also - the option of downloading another wordlist. Game name, - wordlist name and language are substituted in. - This is an alternative message presented when there's also - the option of downloading another wordlist. Game name, - wordlist name and language are substituted in. -Unable to open game \"%1$s\" because - wordlist %2$s not found. (It may have been deleted, or stored - on an external card that is no longer available.)\n\nYou can - download a replacement or substitute another %3$s - wordlist. - This is an alternative message presented when there's also - the option of downloading another wordlist. Game name, - wordlist name and language are substituted in. - */ - public static final int no_dict_subst_fmt=0x7f0501a1; - /** - ############################################################ - # :Dialogs: - # Missing wordlist alert - # - # This alert is displayed when you try to open a game whose - # wordlist cannot be found. - ############################################################ - - title of alert - Display snapshots of games - Button shown in game over dialog triggering creation of new - game with the same players and parameters as the one that - just ended. - Shown in toast when relaunching after switching dicts - - - Used in formatting final scores display - Used in formatting final scores display - - - - - - - - - - - - - - - - - - - - - - - - - - - board menu for small devices only - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - New strings that need to be documented and found a home - above. - text of button in About Crosswords dialog summoning above - dialog - text of dialog showing the set of changes made since the last - release - Another paragraph giving credit for work done other than by - Eric House and translators - - ############################################################ - # :Dialogs: - # Missing wordlist alert - # - # This alert is displayed when you try to open a game whose - # wordlist cannot be found. - ############################################################ - - title of alert -Wordlist not found - - ############################################################ - # :Dialogs: - # Missing wordlist alert - # - # This alert is displayed when you try to open a game whose - # wordlist cannot be found. - ############################################################ - - title of alert - */ - public static final int no_dict_title=0x7f05019d; - /** If you click on the Play button without having entered a room - name you get an alert with this error message. - If you click on the Play button without having entered a room - name you get an alert with this error message. -This game cannot connect without a - room name. - If you click on the Play button without having entered a room - name you get an alert with this error message. - */ - public static final int no_empty_rooms=0x7f05018f; - /** If you choose the above option and have no networked games - you get this error message - If you choose the above option and have no networked games - you get this error message - If you choose the above option and have no networked games - you get this error message - */ - public static final int no_games_to_refresh=0x7f050098; - public static final int no_invites=0x7f05034d; - /** Google Play app not found - */ - public static final int no_market=0x7f05028a; - /** displayed when you long-tap a scoreboard entry and there's no - most recent score to show - displayed when you long-tap a scoreboard entry and there's no - most recent score to show -(No moves yet) - displayed when you long-tap a scoreboard entry and there's no - most recent score to show - */ - public static final int no_moves_made=0x7f0500e8; - /** If the query returns no rooms, this message is displayed, - with the number of players in the game and its language - substituted. - If the query returns no rooms, this message is displayed, - with the number of players in the game and its language - substituted. -No public rooms found for - %1$d-player games in %2$s. Try refreshing or creating your - own. - If the query returns no rooms, this message is displayed, - with the number of players in the game and its language - substituted. - */ - public static final int no_name_found_fmt=0x7f0500c4; - public static final int no_relay_conn=0x7f050334; - /** This is not currently shown - Crosswords wordlists, which are - just compressed lists of words plus tile information, determine - what language a game is played in and how \"smart\" the robot - is. You can download different sized wordlists in many - languages here. Email me at eehouse@eehouse.org for information - on building and installing your own wordlists. - Shown the first time the board arrow is drawn on the current - Board screen. The idea is that you're tapping around - figuring out how to play and when you tap an empty cell the - arrow appears. This explains it. - This is not currently shown - Crosswords wordlists, which are - just compressed lists of words plus tile information, determine - what language a game is played in and how \"smart\" the robot - is. You can download different sized wordlists in many - languages here. Email me at eehouse@eehouse.org for information - on building and installing your own wordlists. - Shown the first time the board arrow is drawn on the current - Board screen. The idea is that you're tapping around - figuring out how to play and when you tap an empty cell the - arrow appears. This explains it. -Moving tiles to the board:\nYou can - drag tiles between the rack and the board, or you can tap an - empty square to place the board arrow. Rack tiles you tap will - replace the arrow (moving it one square in the direction it - points.) Tap the arrow once to change its orientation; a second - time, to hide it. A checkbox in the Appearance section of - Settings will hide it permanently. - This is not currently shown - Crosswords wordlists, which are - just compressed lists of words plus tile information, determine - what language a game is played in and how \"smart\" the robot - is. You can download different sized wordlists in many - languages here. Email me at eehouse@eehouse.org for information - on building and installing your own wordlists. - Shown the first time the board arrow is drawn on the current - Board screen. The idea is that you're tapping around - figuring out how to play and when you tap an empty cell the - arrow appears. This explains it. - */ - public static final int not_again_arrow=0x7f0501cc; - /** The back button clears any - selection instead of exiting. Hit it again to exit the - app. - */ - public static final int not_again_backclears=0x7f05027d; - /** - -This button opens the wordlist - browser on the current player\'s wordlist. - - */ - public static final int not_again_browse=0x7f0501ee; - /** - -This button opens the wordlist - browser on the wordlist of your choice. - */ - public static final int not_again_browseall=0x7f0501ef; - /** Shown when you tap the chat button on the toolbar of the - main Board screen - Shown when you tap the chat button on the toolbar of the - main Board screen -This button opens the screen for - messaging between devices in this game. Messages will be kept - until you delete the game that contains them. - Shown when you tap the chat button on the toolbar of the - main Board screen - */ - public static final int not_again_chat=0x7f0501c5; - /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown - when chosen - */ - public static final int not_again_clip_expl_fmt=0x7f050345; - public static final int not_again_comms_bt=0x7f05033d; - public static final int not_again_comms_p2p=0x7f05033e; - public static final int not_again_comms_relay=0x7f05033b; - public static final int not_again_comms_sms=0x7f05033c; - /** This is shown in the Board screen when you successfully - connecting a game to the relay and are the last device in the - game to do so, i.e. the game is now complete and you should - expect play to begin. - This is shown in the Board screen when you successfully - connecting a game to the relay and are the last device in the - game to do so, i.e. the game is now complete and you should - expect play to begin. -You have connected and joined a - game on the relay; the room is now full. The device that - created the room will now assign your initial tiles and play can - begin. - This is shown in the Board screen when you successfully - connecting a game to the relay and are the last device in the - game to do so, i.e. the game is now complete and you should - expect play to begin. - */ - public static final int not_again_conndall=0x7f0501cb; - /** This is shown in the Board screen when you successfully - connect a game to the relay and are the first device in the - game to do so. - This is shown in the Board screen when you successfully - connect a game to the relay and are the first device in the - game to do so. -You have connected and started - a game in a new room. Once the remaining devices have joined - your room and Crosswords has assigned them tiles the game can - begin. - This is shown in the Board screen when you successfully - connect a game to the relay and are the first device in the - game to do so. - */ - public static final int not_again_conndfirst=0x7f0501c9; - /** This is shown in the Board screen when you successfully - connecting a game to the relay and are not the first device - in the game but not the last either. So it will only occur - for games with more than two devices, which are rare. - This is shown in the Board screen when you successfully - connecting a game to the relay and are not the first device - in the game but not the last either. So it will only occur - for games with more than two devices, which are rare. -You have connected and joined a - game on the relay. You will be notified when the remaining - device[s] have joined your room and play can begin. - This is shown in the Board screen when you successfully - connecting a game to the relay and are not the first device - in the game but not the last either. So it will only occur - for games with more than two devices, which are rare. - */ - public static final int not_again_conndmid=0x7f0501ca; - public static final int not_again_dfltname_fmt=0x7f05034c; - /** This screen lets you install new - wordslists and view the ones you already have.\n\nWhat wordlists - you have installed determines:\n• What languages you can play - in\n• How smart the robot player is\n• What words are - legal.\n\nCheck the \"Show downloadable\" box at the top to see - what\'s available. - */ - public static final int not_again_dicts=0x7f0502cb; - /** This is shown when you choose the board_menu_done menu item. - It's to let you know that there's a shortcut that does almost - the same thing. - This is shown when you choose the board_menu_done menu item. - It's to let you know that there's a shortcut that does almost - the same thing. -Tapping the \"pts\" counter that - appears at the right end of the rack is the easiest way to - commit a move. - This is shown when you choose the board_menu_done menu item. - It's to let you know that there's a shortcut that does almost - the same thing. - */ - public static final int not_again_done=0x7f0501c7; - /** XLATE-ME -Public rooms have been made - an \"advanced\" feature in this release. If you were using them - and want them back, enable them now. You can turn them off again - in Settings. - */ - public static final int not_again_enablepublic=0x7f0502f9; - /** Shown when you tap the flip button on the toolbar of the main - Board screen - Shown when you tap the flip button on the toolbar of the main - Board screen -This button flips the board across a - diagonal axis. - Shown when you tap the flip button on the toolbar of the main - Board screen - */ - public static final int not_again_flip=0x7f0501c3; - /** This string has special format - specifiers (e.g. %1$s). Please be sure that your translation has - the same ones as the original.\n\n(You will not be able to save it - unless it does.) - */ - public static final int not_again_fmt_expl=0x7f0502bd; - /** XLATE-ME -These two buttons do - the same thing as the first two items in this window\'s Action Bar - (or menu). If you like you can hide the buttons to make more games - visible.\n\n(If you later want to unhide them go to the Appearance - section of App settings). - - */ - public static final int not_again_hidenewgamebuttons=0x7f0502eb; - /** Shown when you tap the next hint button on the toolbar of the - main Board screen - Shown when you tap the next hint button on the toolbar of the - main Board screen -This button shows all possible - moves in descending order (using tiles to the right of the rack - divider.) - Shown when you tap the next hint button on the toolbar of the - main Board screen - */ - public static final int not_again_hintnext=0x7f0501c1; - /** Currently not used - The new game you have created has - two players. Player 1 is a robot; Player 2 is you. Tap the game - to play; long-tap (hold your finger on the game) to change its - settings or for other options. - Shown when you tap the Previous Hint button on the toolbar of - the main Board screen - Currently not used - The new game you have created has - two players. Player 1 is a robot; Player 2 is you. Tap the game - to play; long-tap (hold your finger on the game) to change its - settings or for other options. - Shown when you tap the Previous Hint button on the toolbar of - the main Board screen -This button shows all possible - moves in ascending order (using tiles to the right of the rack - divider.) - Currently not used - The new game you have created has - two players. Player 1 is a robot; Player 2 is you. Tap the game - to play; long-tap (hold your finger on the game) to change its - settings or for other options. - Shown when you tap the Previous Hint button on the toolbar of - the main Board screen - */ - public static final int not_again_hintprev=0x7f0501c0; - /** Shown when you tap the juggle button on the toolbar of the - main Board screen - Shown when you tap the juggle button on the toolbar of the - main Board screen -This button randomly rearranges - tiles in the rack. - Shown when you tap the juggle button on the toolbar of the - main Board screen - */ - public static final int not_again_juggle=0x7f0501c2; - /** - -This button lets you look up, - online, the words just played. - - */ - public static final int not_again_lookup=0x7f0501e2; - /** Shown when you first pick the list_item_new_from menuitem - Shown when you first pick the list_item_new_from menuitem -Create a new ready-to-play game - using all the settings from this one. That is, treat this game - as a template. - Shown when you first pick the list_item_new_from menuitem - */ - public static final int not_again_newfrom=0x7f0501ce; - /** Tapping a game opens it.\n\nYou - can instead tap the icons at the left to select or deselect games, - then act on selected games, e.g. to delete them, using the menu or - \"Actionbar.\" - */ - public static final int not_again_newselect=0x7f05027c; - public static final int not_again_rematch_two_only=0x7f050340; - /** The selected words will be - copied to the system clipboard. You can then paste them into any - app that supports pasting text, e.g. an email app. - */ - public static final int not_again_studycopy=0x7f050296; - /** The following strings (all whose names start with - "not_again") appear in the New user info dialog. - - shown when user chooses the gamel_menu_checkmoves menu - The following strings (all whose names start with - "not_again") appear in the New user info dialog. - - shown when user chooses the gamel_menu_checkmoves menu -This action checks the relay for - pending moves/messages for all networked games and flags those - with pending moves. When you open a flagged game it will connect - and sync. (In a later release these moves will be downloaded in - the background.) - The following strings (all whose names start with - "not_again") appear in the New user info dialog. - - shown when user chooses the gamel_menu_checkmoves menu - */ - public static final int not_again_sync=0x7f0501bc; - /** Shown when the user chooses the "board_menu_trade" menu - Shown when the user chooses the "board_menu_trade" menu -You are entering tile-exchange - mode.\n\nTap tiles to add/remove them from the set to be - exchanged.\n\n - Shown when the user chooses the "board_menu_trade" menu - */ - public static final int not_again_trading=0x7f0501bd; - /** Use the buttons to - commit your turn or exit exchange mode. - */ - public static final int not_again_trading_buttons=0x7f0501be; - /** Use the menu or action bar - to commit your turn or exit exchange mode. - */ - public static final int not_again_trading_menu=0x7f0501bf; - /** Shown when the board screen is visible and it's just become - another players turn. The idea is to give a hint about how to - find out about recent moves. - Shown when the board screen is visible and it's just become - another players turn. The idea is to give a hint about how to - find out about recent moves. -The player whose turn it is - is drawn large in the scoreboard.\n\nHold your finger on a name in - the scoreboard to get details about that player\'s most recent - move. - Shown when the board screen is visible and it's just become - another players turn. The idea is to give a hint about how to - find out about recent moves. - */ - public static final int not_again_turnchanged=0x7f0501cd; - /** Shown when you tap the undo/redo button on the toolbar of the - main Board screen - Shown when you tap the zoom (+/-) button on the toolbar of - the main Board screen -This button toggles the board - between zoomed and regular size. Drag it when it is zoomed to - see parts that are hidden. - Shown when you tap the undo/redo button on the toolbar of the - main Board screen -This button undos or redoes the - current turn. - Shown when you tap the zoom (+/-) button on the toolbar of - the main Board screen - Shown when you tap the undo/redo button on the toolbar of the - main Board screen - */ - public static final int not_again_undo=0x7f0501c4; - /** Shown in the Game configure screen when the game_locked - checkbox is checked and you uncheck it. - Shown in the Game configure screen when the game_locked - checkbox is checked and you uncheck it. -This game is in play. Some - settings, e.g. the number of players, cannot be changed without - restarting it. When you leave this page you will have a chance - to discard changes to avoid a restart. - Shown in the Game configure screen when the game_locked - checkbox is checked and you uncheck it. - */ - public static final int not_again_unlock=0x7f0501c8; - /** Shown when you tap the values button on the toolbar of the - main Board screen. This is intended to allow players to - remind themselves how much played tiles are worth while - planning a move. - Shown when you tap the values button on the toolbar of the - main Board screen. This is intended to allow players to - remind themselves how much played tiles are worth while - planning a move. -This button changes whether the - board shows letters on placed tiles or their point values. - Use it to remind yourself what a tile is worth. - Shown when you tap the values button on the toolbar of the - main Board screen. This is intended to allow players to - remind themselves how much played tiles are worth while - planning a move. - */ - public static final int not_again_values=0x7f0501c6; - /** (None) - */ - public static final int note_none=0x7f0502c7; - public static final int notify_chat_body_fmt=0x7f0501ab; - public static final int notify_chat_title_fmt=0x7f0501aa; - /** This text is displayed as the "summary" for both of the - notify choices above, as extra information. (There could be - different strings if it makes more sense in your language.) - - This text is displayed as the "summary" for both of the - notify choices above, as extra information. (There could be - different strings if it makes more sense in your language.) - -When opponent moves arrive - This text is displayed as the "summary" for both of the - notify choices above, as extra information. (There could be - different strings if it makes more sense in your language.) - - */ - public static final int notify_other_summary=0x7f05016f; - /** When one or more new moves is found, should I play a - notification sound - When one or more new moves is found, should I play a - notification sound -Play sound - When one or more new moves is found, should I play a - notification sound - */ - public static final int notify_sound=0x7f05016d; - /** When a move is fetched from the relay a Notification is - posted. These are its title, which appears in the top bar of the - device, and the body that appears when you pull the notifications - down. - When a move is fetched from the relay a Notification is - posted. These are its title, which appears in the top bar of the - device, and the body that appears when you pull the notifications - down. -Move in game %1$s - */ - public static final int notify_title_fmt=0x7f0501a8; - public static final int notify_title_turn_fmt=0x7f0501a9; - /** When one or more new moves is found, should I vibrate the - device - When one or more new moves is found, should I vibrate the - device -Vibrate - When one or more new moves is found, should I vibrate the - device - */ - public static final int notify_vibrate=0x7f05016e; - /** XLATE-ME -Number on this device - */ - public static final int nplayers_prompt=0x7f0502e1; - public static final int p2p_invite_title=0x7f05020f; - /** text of label identifying the field where human players can - enter an option password. The label and field disappear when - the robot player checkbox is checked because it makes no - sense for a robot to have a password. In fact, passwords - only make sense where there's more than one local human - player on a device, so they are infrequently used in network - games as well. - text of label identifying the field where human players can - enter an option password. The label and field disappear when - the robot player checkbox is checked because it makes no - sense for a robot to have a password. In fact, passwords - only make sense where there's more than one local human - player on a device, so they are infrequently used in network - games as well. -Password - text of label identifying the field where human players can - enter an option password. The label and field disappear when - the robot player checkbox is checked because it makes no - sense for a robot to have a password. In fact, passwords - only make sense where there's more than one local human - player on a device, so they are infrequently used in network - games as well. - */ - public static final int password_label=0x7f0500e0; - /** You have NFC enabled. That - means that any time a board that\'s missing a player is open, you - can tap a nearby person\'s device to invite him/her to - play – if he/she is also using NFC. -\u0020pct. - */ - public static final int pct_suffix=0x7f050288; - /** If this preference is checked, tapping on the scoreboard - entry for any player reveals that player's tiles and any - pending move (after asking for his password if one is set.) - This feature, which is disabled by default, is meant for the - case where serveral human players are sharing a device: it - might make sense for one to be able to study the board even - though it's not his turn e.g. while the player whose turn it - is is temporarily unable to play. - if this preference is checked, the hardware volume keys will - work to zoom the board in and out (and will not control - volume) This only applies when the Board screen is - frontmost. -Volume keys zoom - explanation of the above -Zoom board using volume keys - If this preference is checked, tapping on the scoreboard - entry for any player reveals that player's tiles and any - pending move (after asking for his password if one is set.) - This feature, which is disabled by default, is meant for the - case where serveral human players are sharing a device: it - might make sense for one to be able to study the board even - though it's not his turn e.g. while the player whose turn it - is is temporarily unable to play. -View tiles out-of-turn - if this preference is checked, the hardware volume keys will - work to zoom the board in and out (and will not control - volume) This only applies when the Board screen is - frontmost. - explanation of the above - If this preference is checked, tapping on the scoreboard - entry for any player reveals that player's tiles and any - pending move (after asking for his password if one is set.) - This feature, which is disabled by default, is meant for the - case where serveral human players are sharing a device: it - might make sense for one to be able to study the board even - though it's not his turn e.g. while the player whose turn it - is is temporarily unable to play. - */ - public static final int peek_other=0x7f05015b; - /** explanation of the above - explanation of the above -Tapping on scoreboard name shows - that player\'s tiles - explanation of the above - */ - public static final int peek_other_summary=0x7f05015c; - public static final int perms_rationale_title=0x7f050366; - /** - -Connected number[s]: - - */ - public static final int phone_label=0x7f050222; - public static final int phone_lookup_rationale=0x7f05035c; - /** Case where SMS is the only way the game can communicate - */ - public static final int phone_lookup_rationale_drop=0x7f05035d; - /** Case where SMS is NOT the only way the game can communicate - */ - public static final int phone_lookup_rationale_others=0x7f05035e; - public static final int phone_state_rationale=0x7f05035b; - /** Don't warn, but simply force to skip turn (give 0 points) - when user attempts to play word not in the wordlist. - Don't warn, but simply force to skip turn (give 0 points) - when user attempts to play word not in the wordlist. -Disallow phonies - Don't warn, but simply force to skip turn (give 0 points) - when user attempts to play word not in the wordlist. - */ - public static final int phonies_disallow=0x7f0500d1; - /** These are the three choices in the popup above whose text is - phonies_spinner_prompt - Don't care if words played are in the wordlist or not - explanation of the above - If this preference is checked, tiles in the rack will be - re-ordered alphabetically whenever tiles are added, - i.e. after ever move. - If you click on the Play button without having entered a room - name you get an alert with this error message. - This button takes you to the normal Game Configure screen - This is the "hint" printed in light text in the empty player - name field - These four strings are displayed as step-by-step - instructions - ############################################################ - # :Screens: - # RelayGameActivity screen - # - # This screen is a simple alternative to the Game Configure - # screen. You'll get it when you choose the list_item_config - # on certain unconfigured simple relay games (currently simple - # means they have 2 players. These days about the only way to - # get this screen is to create a relay game manually and to - # abort after making the room name empty. That is, this is - # left over from an older way of helping people connect, from - # before invitations. - - # The dialog has a list of instructions, two text fields for - # room name and local player name, and two buttons. - ############################################################ - - This is the heading above the list of steps. The default - language is substituted for %1$s. - - ############################################################ - # :Menus: - # Chat messages screen menu - ############################################################ - - This is the only menu item in the chat screen. Press it and - all the chat messages are erased. There is no effect on - other devices in the game: no "clear chat" message is - transmitted. - Text on the button that causes the contents of the - message-composition field to be sent. - Prefix for remote messages - Prefix for local messages - ############################################################ - # :Screens: - # Chat screen - # - # Shown when the chat button is pressed from the Board screen - # or when a chat message (as opposed to a move message) comes - # in from the relay. It displays a history of messages with - # slightly different colored backgrounds and with prefixes to - # indicate whether they are local or remote in origin. - ############################################################ - - title of the chat screen. The name of the current game is - substituted for %1$s. - Text of dialog asking user to confirm a move that exchanges - tiles (instead of forming a new word to earn points) - When I've created the invitation, in text or html, I ask - Android to launch an app that can send it, typically an email - or messaging app. Android then asks the user to choose which - of the installed apps that can process the request he'd like - to have launched. This string is passed to Android and used - as the title of the dialog that presents that choice. - This is the body of the text version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". - This is the body of the html version of the invitation. A URL - is created with parameters describing the game and - substituted for "%1$s". (The funky \u003c and friends are - encodings for the greater-than and less-than symbols which - are not legal in xml strings.) - This is the subject line of the email/text sent to invite - someone to join a game. - When an invitation is sent, the user gets to choose between - plaintext and html formatting. These two strings are shown in the - two buttons in the dialog. - The invitation process begins with this query. The choice is - between html and plaintext formatting but I also provide some - explanation/guidance. - EXPLAIN ME - EXPLAIN ME - section separator (white-on-gray bar) for third section: - bluetooth games - Text of first of two buttons for new networked games. Tap - this and a game will be created, but you probably won't see - it immediately because an email or messaging app will be - launched to send your invitation. - This is the second of two descriptions on this screen. It - explains what networked games are and describes the two - buttons used to create them. - section separator (white-on-gray bar) for second section: - networked games - Text of first of two buttons for new standalone games. Tap - this and a new game will be created and opened. If the first - player is a robot it will immediately take its turn. - This is one of two descriptions on this screen. It explains - what standalone games are and describes the two buttons used - to create them. The name of the language of the default - wordlist is substituted in for %1$s. - ############################################################ - # :Screens: - # New game screen - # - # This comes up when you tap the "new game" button on the - # main screen or the new game menuitem in the main screen's - # menu. It has descriptions and buttons for creating the two - # types of supported games, standalone and networked. - ############################################################ - - section separator (white-on-gray bar) for first section: - standalone games - This text is displayed as the "summary" for both of the - notify choices above, as extra information. (There could be - different strings if it makes more sense in your language.) - - When one or more new moves is found, should I vibrate the - device - When one or more new moves is found, should I play a - notification sound - These are the possible values for the connect_frequency - setting presented as a drop-down list. - - ############################################################ - # :Screens: - # Network game settings preference subscreen (within - # Preferences screen) - ############################################################ - - When there are networked games connecting using the relay, - Crosswords wakes up periodically to check if there are any - new moves available and fetches them. This controls how - frequently that check is done. - explanation of the above - explanation of the above - If this preference is checked the "crosshairs" (vertical and - horzontal lines through the cell your finger is on that help - you tell where the app thinks you're actually tapping) will - not be shown. Some users have complained that this feature - is distracting, presumably because they're using tablets with - large enough screens that they always know where they're - tapping. - explanation of the above - If this preference is checked, tapping on the scoreboard - entry for any player reveals that player's tiles and any - pending move (after asking for his password if one is set.) - This feature, which is disabled by default, is meant for the - case where serveral human players are sharing a device: it - might make sense for one to be able to study the board even - though it's not his turn e.g. while the player whose turn it - is is temporarily unable to play. - These are the three choices in the popup above whose text is - phonies_spinner_prompt - Don't care if words played are in the wordlist or not -Ignore phonies - These are the three choices in the popup above whose text is - phonies_spinner_prompt - Don't care if words played are in the wordlist or not - */ - public static final int phonies_ignore=0x7f0500cf; - /** title of popup used to determine how words are handled that - are not in the wordlist used for the game (or player if using - different wordlists per player) - title of popup used to determine how words are handled that - are not in the wordlist used for the game (or player if using - different wordlists per player) -How to handle \"phonies\" - (words not in wordlist) - title of popup used to determine how words are handled that - are not in the wordlist used for the game (or player if using - different wordlists per player) - */ - public static final int phonies_spinner_prompt=0x7f0500ce; - /** warn player when word played is not in the wordlist, but - allow him to play it. - warn player when word played is not in the wordlist, but - allow him to play it. -Warn if phonies - warn player when word played is not in the wordlist, but - allow him to play it. - */ - public static final int phonies_warn=0x7f0500d0; - /** - -Pick tiles face-up - - */ - public static final int pick_faceup=0x7f0501ea; - /** - -Look up %1$s at - - */ - public static final int pick_url_title_fmt=0x7f0501e0; - /** Text of button at bottom. Press it and you exit this - configure screen and open the game into the Board screen - Text of button at bottom. Press it and you exit this - configure screen and open the game into the Board screen -Play game - Text of button at bottom. Press it and you exit this - configure screen and open the game into the Board screen - */ - public static final int play=0x7f0500d6; - /** - ############################################################ - # :Dialogs: - # Player edit dialog - # - # This comes up when you tap on a player within the Game - # config screen - ############################################################ - - dialog title - Text of "toast" shown when a game is notified by the relay - that all expected players have registered. At this point - play can begin. - Text of "toast" (mini window briefly displayed) shown when a - game first connects to the relay. The three substitutions - are the device's order within the game (e.g. 2), the name of - the room, and how many additional players have not yet - registered with the relay in this game. This should be seen - only once per game. - Short for "points", this is shown at the right end of the - tray in place of the first tile placed along with the points - the current move would earn if committed. - Most users create games with only two players, which is the - default, but Crosswords supports up to four. When I'm using - the above string to encourage the opener of a game missing - players to invite, IF the number of missing players is - greater than one this text is appended to the above. - displayed when you long-tap a scoreboard entry and there's no - most recent score to show - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Triple-letter - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-word - Bonus value hint that's displayed in gray text in the colored - bonus square. Double-letter - - ############################################################ - # :Screens: - # Board screen - # - # - # (an open game, with the 15x15 grid of # squares, letters - # played etc., is displayed here) - ############################################################ - - Buttons shown at bottom when board is in exchange mode, - i.e. after user has picked board_menu_trade menu item - - ############################################################ - # :Dialogs: - # Player edit dialog - # - # This comes up when you tap on a player within the Game - # config screen - ############################################################ - - dialog title -Edit player - - ############################################################ - # :Dialogs: - # Player edit dialog - # - # This comes up when you tap on a player within the Game - # config screen - ############################################################ - - dialog title - */ - public static final int player_edit_title=0x7f0500da; - /** used to create default player names. Number between 1 and 4 - is substituted - When a move is fetched from the relay a Notification is - posted. These are its title, which appears in the top bar of the - device, and the body that appears when you pull the notifications - down. - used to create default player names. Number between 1 and 4 - is substituted - used to create default player names. Number between 1 and 4 - is substituted -Player %1$d - used to create default player names. Number between 1 and 4 - is substituted - */ - public static final int player_fmt=0x7f0501a7; - /** text of lable identifying the field in which player's name is - set/displayed - Shown in the main screen when you launch Crosswords from an - invitation (received in email or messaging app, say) and - there's already a game running that matches that invitation. - It's to prevent you from opening multiple games and getting - confused. But some people who play together all the time use - the same room name over and over so they'll get this warning - and it's harmless to ignore it. - Used for a button when informing user that his attempt to - connect to the relay failed because the room named does not - exist. (I believe this no longer occurs.) - text of lable identifying the field in which player's name is - set/displayed -Name: - text of lable identifying the field in which player's name is - set/displayed - */ - public static final int player_label=0x7f0500dc; - /** text for separator above the list of players that's used for - networked games. The numbers of local and non-local players - are substituted for %1$d and %2$d. - text for separator above the list of players that's used for - networked games. The numbers of local and non-local players - are substituted for %1$d and %2$d. -Players (%1$d local, %2$d - off-device) - text for separator above the list of players that's used for - networked games. The numbers of local and non-local players - are substituted for %1$d and %2$d. - */ - public static final int players_label_host_fmt=0x7f0500b9; - /** text for separator above the list of players that's used for - non-networked games - text for separator above the list of players that's used for - non-networked games -Players (tap to edit) - text for separator above the list of players that's used for - non-networked games - */ - public static final int players_label_standalone=0x7f0500b8; - public static final int post_dualpane_off_body=0x7f050353; - public static final int post_dualpane_on_body=0x7f050352; - public static final int post_dualpane_title=0x7f050351; - /** Prefs related to in-app localization - */ - public static final int pref_group_l10n_summary=0x7f05032d; - /** Localization Stuff - */ - public static final int pref_group_l10n_title=0x7f05032c; - /** Prefs related to play via internet/relay - */ - public static final int pref_group_relay_summary=0x7f05032b; - /** Relay Stuff - */ - public static final int pref_group_relay_title=0x7f05032a; - /** Prefs related to play-via-sms - */ - public static final int pref_group_sms_summary=0x7f050329; - /** SMS Stuff - */ - public static final int pref_group_sms_title=0x7f050328; - /** Label for the first "human player" name preference - Label for the first "human player" name preference -Human player - */ - public static final int pref_human_name=0x7f050129; - /** Get intermediate builds - */ - public static final int pref_item_update_summary=0x7f05032f; - /** Update between releases - */ - public static final int pref_item_update_title=0x7f05032e; - /** Label for the first player color preference - Label for the first player color preference -First player - Label for the first "player name" preference - */ - public static final int pref_player1_name=0x7f050125; - /** Label for the second player color preference - Label for the second player color preference -Second player - Label for the second "player name" preference (unused) - */ - public static final int pref_player2_name=0x7f050126; - /** Label for the third player color preference - Label for the third player color preference -Third player - Label for the third "player name" preference (unused) - */ - public static final int pref_player3_name=0x7f050127; - /** Label for the fourth player color preference - Label for the fourth player color preference -Fourth player - Label for the fourth "player name" preference (unused) - */ - public static final int pref_player4_name=0x7f050128; - /** - ############################################################ - # :Screens: - # Appearances subscreen of Preferences screen - ############################################################ - - title of this sub-preference - - ############################################################ - # :Screens: - # Appearances subscreen of Preferences screen - ############################################################ - - title of this sub-preference -Appearance - - ############################################################ - # :Screens: - # Appearances subscreen of Preferences screen - ############################################################ - - title of this sub-preference - */ - public static final int prefs_appearance=0x7f050136; - /** clarification of the above - clarification of the above -Settings controlling - appearance - clarification of the above - */ - public static final int prefs_appearance_summary=0x7f050137; - /** - ############################################################ - # :Screens: - # Behavior preference subscreen (within Preferences screen) - ############################################################ - - title of this sub-preference - - ############################################################ - # :Screens: - # Behavior preference subscreen (within Preferences screen) - ############################################################ - - title of this sub-preference -Behavior - - ############################################################ - # :Screens: - # Behavior preference subscreen (within Preferences screen) - ############################################################ - - title of this sub-preference - */ - public static final int prefs_behavior=0x7f050153; - /** clarification of the above - clarification of the above -Settings controlling app behavior - clarification of the above - */ - public static final int prefs_behavior_summary=0x7f050154; - /** - ############################################################ - # :Screens: - # Individual Colors preference subscreen (within Appearances - # subscreen) - ############################################################ - - title of this sub-preference - clarification of above - Checkbox that when set prevents showing a title bar in the - game board window to save space - List the state of the game, "Game over" or "10 moves made" - etc. - List names of opponents (summarized), e.g. "Game 2 (vs Kati)" - Put the language there, so it reads "Game 2 (English)" - Put nothing in the summary space, so it just reads "Game 2" - Preference to control what's listed next to game name in the - first line of a game summary in the main games-list screen, - e.g., if the option is "Game Language", "English" in the - listing "Game 2 (English)" - - The following strings beginning with "game_summary_field_" are - possible values - clarification of the above - - ############################################################ - # :Screens: - # Appearances subscreen of Preferences screen - ############################################################ - - title of this sub-preference - - ############################################################ - # :Screens: - # Individual Colors preference subscreen (within Appearances - # subscreen) - ############################################################ - - title of this sub-preference -Individual colors - - ############################################################ - # :Screens: - # Individual Colors preference subscreen (within Appearances - # subscreen) - ############################################################ - - title of this sub-preference - */ - public static final int prefs_colors=0x7f050145; - /** clarification of the above - clarification of the above -Edit colors used on the board - clarification of the above - */ - public static final int prefs_colors_summary=0x7f050146; - /** - ############################################################ - # :Screens: - # New-game defaults subscreen of Preferences screen - ############################################################ - - title of this sub-preference - - ############################################################ - # :Screens: - # New-game defaults subscreen of Preferences screen - ############################################################ - - title of this sub-preference -New game defaults - - ############################################################ - # :Screens: - # New-game defaults subscreen of Preferences screen - ############################################################ - - title of this sub-preference - */ - public static final int prefs_defaults=0x7f050121; - /** clarification of the above - clarification of the above -Default settings for new - games - clarification of the above - */ - public static final int prefs_defaults_summary=0x7f050122; - /** sub-preference for dictionaries (soon to be called "word lists") - sub-preference for dictionaries (soon to be called "word lists") -Wordlists - sub-preference for dictionaries (soon to be called "word lists") - */ - public static final int prefs_dicts=0x7f05012b; - /** clarification of above - clarification of above -Default wordlists - clarification of above - */ - public static final int prefs_dicts_summary=0x7f05012c; - /** sub-preference title for editing default player names. - There's only enabled now, though. - sub-preference title for editing default player names. - There's only enabled now, though. -Player names - sub-preference title for editing default player names. - There's only enabled now, though. - */ - public static final int prefs_names=0x7f050123; - /** clarification of the above - clarification of the above -Default player names - clarification of the above - */ - public static final int prefs_names_summary=0x7f050124; - /** Used when prev player's name can't be looked up - Used when prev player's name can't be looked up -Your opponent - */ - public static final int prev_player=0x7f0502d2; - public static final int processing_games=0x7f050349; - /** Downloading - */ - public static final int progress_title=0x7f0502c5; - /** - -Words no longer than - - */ - public static final int prompt_max_len=0x7f0501f4; - /** - -Words no shorter than - - */ - public static final int prompt_min_len=0x7f0501f3; - /** XLATE-ME -Relay device port - */ - public static final int proxy_port=0x7f050310; - /** Short for "points", this is shown at the right end of the - tray in place of the first tile placed along with the points - the current move would earn if committed. - Short for "points", this is shown at the right end of the - tray in place of the first tile placed along with the points - the current move would earn if committed. - */ - public static final int pts=0x7f0500f0; - /** If you check the join_room checkbox Crosswords queries the - relay. This is the text of the progress indicator displayed what - that's going on. (It's often visible for only a very short - time.) - If you check the join_room checkbox Crosswords queries the - relay. This is the text of the progress indicator displayed what - that's going on. (It's often visible for only a very short - time.) -Fetching public rooms for - %1$d-player games in %2$s. - If you check the join_room checkbox Crosswords queries the - relay. This is the text of the progress indicator displayed what - that's going on. (It's often visible for only a very short - time.) - */ - public static final int public_names_progress_fmt=0x7f0500c3; - /** Title for generic dialog asking a question, usually in the - middle of a game, like "do you want to commit this move?" - Title for generic dialog asking a question, usually in the - middle of a game, like "do you want to commit this move?" -A question… - Title for generic dialog asking a question, usually in the - middle of a game, like "do you want to commit this move?" - */ - public static final int query_title=0x7f0501b9; - public static final int radio_name_cdma=0x7f050320; - public static final int radio_name_gsm=0x7f05031f; - /** XLATE-ME -Don\'t pretend - */ - public static final int radio_name_real=0x7f05031d; - /** XLATE-ME -Tablet/no radio - */ - public static final int radio_name_tablet=0x7f05031e; - /** - ############################################################ - # :Dialogs: - # Color edit dialog - # - # A sub-sub preference, this is displayed each time the user - # wants to edit a color described by the strings above - ############################################################ - - Names of the three colors by which colors can be edited in - the color preferences dialog - - ############################################################ - # :Dialogs: - # Color edit dialog - # - # A sub-sub preference, this is displayed each time the user - # wants to edit a color described by the strings above - ############################################################ - - Names of the three colors by which colors can be edited in - the color preferences dialog -Red - - ############################################################ - # :Dialogs: - # Color edit dialog - # - # A sub-sub preference, this is displayed each time the user - # wants to edit a color described by the strings above - ############################################################ - - Names of the three colors by which colors can be edited in - the color preferences dialog - */ - public static final int red=0x7f050150; - /** XLATE-ME -Invite redirect host - */ - public static final int redir_host=0x7f050302; - public static final int rel_invite_title=0x7f050347; - /** Title of dialog used to alert players to relay-related - problems with the current game. - the color of text, e.g. "2L", shown on a bonus square on the - board - the background color of the area outside the board, - e.g. between entries in the scoreboard - Title of dialog used to alert players to relay-related - problems with the current game. -Connection problem - Title of dialog used to alert players to relay-related - problems with the current game. - */ - public static final int relay_alert=0x7f0500f2; - /** Message from relay - */ - public static final int relay_alert_title=0x7f05027b; - public static final int relay_behavior=0x7f050161; - /** explanation of the above - */ - public static final int relay_behavior_summary=0x7f050162; - /** XLATE-ME -Relay host - */ - public static final int relay_host=0x7f050301; - public static final int relay_invite_title=0x7f05020e; - /** XLATE-ME -Relay game port - */ - public static final int relay_port=0x7f05030f; - /** Shown in toast when relaunching after switching dicts - Shown in toast when relaunching after switching dicts -Reloading game with %1$s - Shown in toast when relaunching after switching dicts - */ - public static final int reload_new_dict_fmt=0x7f05025e; - /** XLATE-ME -Issuing rematch invitation. You will - see this message until it has been accepted.\n\nYou do not need to - keep this game open while waiting. You will be notified when the - game is ready to play. - */ - public static final int rematch_msg=0x7f0502f8; - public static final int rematch_name_fmt=0x7f0502dc; - public static final int rematch_sent_toast=0x7f0502f7; - /** Processing wordlist information… - */ - public static final int remote_digesting=0x7f0502bf; - /** Fetching wordlist information from server… - */ - public static final int remote_empty=0x7f0502be; - /** checkbox determining of this player is on this device or - remote. If remote, then the rest of the fields disappear - (since they will be set by the remote device.) - checkbox determining of this player is on this device or - remote. If remote, then the rest of the fields disappear - (since they will be set by the remote device.) -Off-device player - checkbox determining of this player is on this device or - remote. If remote, then the rest of the fields disappear - (since they will be set by the remote device.) - */ - public static final int remote_label=0x7f0500db; - /** Unable to fetch wordlist information - from server. - */ - public static final int remote_no_net=0x7f0502c0; - /** - -Remote device undid a turn. - - */ - public static final int remote_undone=0x7f050225; - public static final int remove_sms=0x7f050361; - /** Change the name of this group to: - */ - public static final int rename_group_label=0x7f050272; - /** text within rename dialog (triggered by selecting - list_item_rename) - text within rename dialog (triggered by selecting - list_item_rename) - text within rename dialog (triggered by selecting - list_item_rename) - */ - public static final int rename_label=0x7f0500a4; - /** XLATE-ME -Change the name of this game - (on this device only) to: - */ - public static final int rename_label_caveat=0x7f0500a5; - /** checkbox determining if player is robot/automated or human - checkbox determining if player is robot/automated or human -Robot player - checkbox determining if player is robot/automated or human - */ - public static final int robot_label=0x7f0500df; - /** Used to format robot player names in the lists of players - found in each game listing - Used to format game name plus some other information as the - one-line summary for each game in the main screen. The name - of the game is substituted for %1$s. Something else - (language, player names, etc), is substituted for %2$s. This - does not require translation unless the parentheses or - ordering is wrong for your language. - Used to format robot player names in the lists of players - found in each game listing - */ - public static final int robot_name_fmt=0x7f05008a; - /** Three possible choices presented in the popup above - Three possible choices presented in the popup above -Smart robot - Three possible choices presented in the popup above - */ - public static final int robot_smart=0x7f0500cb; - /** Smarter robot - */ - public static final int robot_smarter=0x7f0500cc; - /** Smartest robot - */ - public static final int robot_smartest=0x7f0500cd; - /** title of popup used to select how "smart" (how capable) the - robot player will be. - title of popup used to select how "smart" (how capable) the - robot player will be. -How smart is the robot player? - title of popup used to select how "smart" (how capable) the - robot player will be. - */ - public static final int robot_spinner_prompt=0x7f0500ca; - /** text of checkbox - text of checkbox -Make new room public - text of checkbox - */ - public static final int room_public=0x7f0500c1; - /** title for popup of public rooms found on server - title for popup of public rooms found on server -Select public room - title for popup of public rooms found on server - */ - public static final int room_public_prompt=0x7f0500c2; - public static final int seeking_relay=0x7f050333; - /** Games: %1$d - */ - public static final int sel_games_fmt=0x7f05027e; - /** Groups: %1$d - */ - public static final int sel_groups_fmt=0x7f05027f; - /** Selected: %1$d - */ - public static final int sel_items_fmt=0x7f05029a; - /** - ############################################################ - # :Dialogs: - # Wordlists screen dialogs - ############################################################ - - Used as the text fo the confirming/querying dialog that goes - up when the dicts_item_select menuitem is chosen. The - possible answers are the three button text strings below. - - ############################################################ - # :Dialogs: - # Wordlists screen dialogs - ############################################################ - - Used as the text fo the confirming/querying dialog that goes - up when the dicts_item_select menuitem is chosen. The - possible answers are the three button text strings below. - */ - public static final int set_default_message_fmt=0x7f0500ad; - /** XLATE-ME -Hide buttons - */ - public static final int set_pref=0x7f0502ea; - /** text of separator marking out other-setting area of the dialog - - see move_dictf above - When the dicts_item_move menu is chosen, this text is used in - the confirmation dialog. The name of the selected wordlist - is substituted for %1$s. The strings loc_internal and - loc_internal are substitued for %2$s and %3$s (or vice-versa, - depending on the current location of the wordlist.) - - - These three strings are the text for three buttons giving - choices in respose to the dialog launched in response to the - dicts_item_select menu (see dicts_item_select above.) - - ############################################################ - # :Dialogs: - # Wordlists screen dialogs - ############################################################ - - Used as the text fo the confirming/querying dialog that goes - up when the dicts_item_select menuitem is chosen. The - possible answers are the three button text strings below. - Additional text appended to text confirm_delete_dictf in the - wordlist delete confiration dialog in the case where the - wordlist to be deleted is NOT the last in its language. The - name of the language is substituted for %1$s. - text of confirmation dialog posted when the delete 'X' button - beside the listing of a wordlist is tapped. The name of the - wordlist is substituted for %1$s. Sometimes one of the two - strings below is appended. - text of separator marking out other-setting area of the dialog -Other settings - text of separator marking out other-setting area of the dialog - */ - public static final int settings_label=0x7f0500c5; - /** Checkbox that when set makes taps on the board manipulate an - arrow that then directs where tiles go when tapped in the - tray. - Checkbox that when set makes taps on the board manipulate an - arrow that then directs where tiles go when tapped in the - tray. -Show board arrow - Checkbox that when set makes taps on the board manipulate an - arrow that then directs where tiles go when tapped in the - tray. - */ - public static final int show_arrow=0x7f050141; - /** clarification of above - clarification of above -Tapped rack tiles land on this - arrow when it is visible - clarification of above - */ - public static final int show_arrow_summary=0x7f050142; - /** Show downloadable - */ - public static final int show_remote=0x7f0502c3; - /** Wordlist browser - */ - public static final int show_wordlist_browser=0x7f05027a; - /** If this preference is checked, the user will not be asked to - confirm after selecting the "Turn done" menu (or tapping the - points display at the right end of the tray) - If this preference is checked, the user will not be asked to - confirm after selecting the "Turn done" menu (or tapping the - points display at the right end of the tray) -Skip confirming turn - If this preference is checked, the user will not be asked to - confirm after selecting the "Turn done" menu (or tapping the - points display at the right end of the tray) - */ - public static final int skip_confirm_turn=0x7f050157; - /** explanation of the above - explanation of the above -Do NOT display score - summary after every human turn - explanation of the above - */ - public static final int skip_confirm_turn_summary=0x7f050158; - /** Delete selected - */ - public static final int slmenu_clear_sel=0x7f050290; - /** Copy to clipboard - */ - public static final int slmenu_copy_sel=0x7f05028f; - /** Unselect all - */ - public static final int slmenu_deselect_all=0x7f050299; - /** Select all - */ - public static final int slmenu_select_all=0x7f050298; - /** XLATE-ME -The version of Crosswords on the - phone with number \"%1$s\" is incompatible with this one for play - using SMS. One of you may need to upgrade before you can - continue. - */ - public static final int sms_bad_proto_fmt=0x7f050206; - public static final int sms_invite_rationale=0x7f050359; - /** Title of phone number picker during invitation to a game via SMS - Title of phone number picker during invitation to a game via SMS -SMS Invitation - */ - public static final int sms_invite_title=0x7f05020d; - /** Tap the receiving device now - */ - public static final int sms_ready_text=0x7f050287; - /** Displayed as a toast - */ - public static final int sms_send_failed=0x7f050364; - /** Square rack tiles - */ - public static final int square_tiles=0x7f050277; - /** Even if they can be taller - */ - public static final int square_tiles_summary=0x7f050278; - /** Used in formatting moves and history - Used to separate names of players when listing them on one - line in a game summary. The \u0020 is a space in xml. - Used, with remote player's name substituted for %1$s, to - indicate that the player is remote. - Used in formatting moves and history -Bonus for using all tiles: 50\n - Used to separate names of players when listing them on one - line in a game summary. The \u0020 is a space in xml. - Used in formatting moves and history - */ - public static final int str_bonus_all=0x7f050119; - /** Using the hint feature is cheating by some players, and it - can be disabled via the hints_allowed preference. I should - be disabling the buttons in this case, but if I don't and you - try to get a hint you'll get this message instead. - Using the hint feature is cheating by some players, and it - can be disabled via the hints_allowed preference. I should - be disabling the buttons in this case, but if I don't and you - try to get a hint you'll get this message instead. -The hint feature is - disabled for this game. Enable it for a new game using the - Settings dialog. - Using the hint feature is cheating by some players, and it - can be disabled via the hints_allowed preference. I should - be disabling the buttons in this case, but if I don't and you - try to get a hint you'll get this message instead. - */ - public static final int str_cant_hint_while_disabled=0x7f050199; - /** Displayed if you try to use the undo menuitem or button and - there are no tiles on the board (no move has yet been made.) - [If I'm being clever and disabling those features in this - case there may be no way to see this.] - Displayed if you try to use the undo menuitem or button and - there are no tiles on the board (no move has yet been made.) - [If I'm being clever and disabling those features in this - case there may be no way to see this.] -Tile assignment can\'t be - undone. - Displayed if you try to use the undo menuitem or button and - there are no tiles on the board (no move has yet been made.) - [If I'm being clever and disabling those features in this - case there may be no way to see this.] - */ - public static final int str_cant_undo_tileassign=0x7f050198; - /** Beginning of the message presented to a user when asking him - to confirm committing the current turn - Used in formatting reports of trades (exchanges of tiles). - Number of tiles traded is substituted for %1$d - Beginning of the message presented to a user when asking him - to confirm committing the current turn -Commit the current move?\n - Used in formatting exchange move summaries: passed means the - user skipped his turn, or made a move involving 0 tiles for 0 - points - formats tiles and score together, and probably doesn't need - translation unless the colon ':' needs to be replaced - Used in formatting reports of trades (exchanges of tiles). - Number of tiles traded is substituted for %d - Used in formatting history and move reports; means user - skipped a turn because of an attempted illegal move/play of a - phony - Beginning of the message presented to a user when asking him - to confirm committing the current turn - */ - public static final int str_commit_confirm=0x7f050116; - /** Used to format game name plus some other information as the - one-line summary for each game in the main screen. The name - of the game is substituted for %1$s. Something else - (language, player names, etc), is substituted for %2$s. This - does not require translation unless the parentheses or - ordering is wrong for your language. - */ - public static final int str_game_name_fmt=0x7f050089; - /** Displayed when you try to commit a turn that is illegal - because there is empty space between some of the tiles - placed, i.e. they do not form a single word. - Displayed when you try to commit a turn that is illegal - because there is empty space between some of the tiles - placed, i.e. they do not form a single word. -Empty squares cannot - separate tiles played. - Displayed when you try to commit a turn that is illegal - because there is empty space between some of the tiles - placed, i.e. they do not form a single word. - */ - public static final int str_no_empties_in_turn=0x7f050191; - public static final int str_no_hint_found=0x7f05033f; - /** Same as above, but used when you try to show tiles belonging - to a player on another device (a remote player.) - Same as above, but used when you try to show tiles belonging - to a player on another device (a remote player.) -No peeking at remote - players\' tiles! - Same as above, but used when you try to show tiles belonging - to a player on another device (a remote player.) - */ - public static final int str_no_peek_remote_tiles=0x7f050196; - /** Displayed when you try to reveal a robot player's tiles, - either by tapping on its "hidden" rack (marked by "?" - characters) or by tapping on its scoreboard entry. (The - ability to reveal another players tiles this way is - controlled by the peek_other preference and is disabled by - default.) - Displayed when you try to reveal a robot player's tiles, - either by tapping on its "hidden" rack (marked by "?" - characters) or by tapping on its scoreboard entry. (The - ability to reveal another players tiles this way is - controlled by the peek_other preference and is disabled by - default.) -No peeking at the robot\'s - tiles! - Displayed when you try to reveal a robot player's tiles, - either by tapping on its "hidden" rack (marked by "?" - characters) or by tapping on its scoreboard entry. (The - ability to reveal another players tiles this way is - controlled by the peek_other preference and is disabled by - default.) - */ - public static final int str_no_peek_robot_tiles=0x7f050195; - /** Used, with remote player's name substituted for %1$s, to - indicate that the player is remote. - Used, with remote player's name substituted for %1$s, to - indicate that the player is remote. -%1$s (remote) - Used, with remote player's name substituted for %s, to - indicate that the player is remote. - */ - public static final int str_nonlocal_name_fmt=0x7f050117; - /** Displyed when you try to commit a move and it's not your - turn. - Displyed when you try to commit a move and it's not your - turn. -You can\'t do that; it\'s not - your turn! - Displyed when you try to commit a move and it's not your - turn. - */ - public static final int str_not_your_turn=0x7f050194; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -pass\n - */ - public static final int str_pass=0x7f050110; - /** Used to alert user to loss of turn when a move is made and - phonies is set to lose turn when word used not in wordlist - - Used to alert user to loss of turn when a move is made and - phonies is set to lose turn when word used not in wordlist - -Illegal word in move; turn lost! - Used to alert user to loss of turn when a move is made and - phonies is set to lose turn when word used not in wordlist - - */ - public static final int str_phony_rejected=0x7f050115; - /** [#%d] %s: %d - */ - public static final int str_placer_fmt=0x7f050259; - /** Shown when using the Game configure screen to configure a - networked game and you try to make all players local. - Shown when using the the Game configure screen to configure a - networked game and you try to make all players local. -At least one player must - be marked \"Remote\" for a game started as Host. - Shown when using the the Game configure screen to configure a - networked game and you try to make all players local. - */ - public static final int str_reg_server_sans_remote=0x7f0500d2; - /** This error message is shown when a remote device tries to - join a game and is providing more players than that game - expects. I do not believe it is possible to see this message - when playing via the relay because the relay is aware of how - many players are expected and only connects devices where the - numbers match. - This error message is shown when a remote device tries to - join a game and is providing more players than that game - expects. I do not believe it is possible to see this message - when playing via the relay because the relay is aware of how - many players are expected and only connects devices where the - numbers match. -Refused attempt to register - unexpected user[s]. - This error message is shown when a remote device tries to - join a game and is providing more players than that game - expects. I do not believe it is possible to see this message - when playing via the relay because the relay is aware of how - many players are expected and only connects devices where the - numbers match. - */ - public static final int str_reg_unexpected_user=0x7f05019a; - /** Used in formatting remote player move summaries - Used in formatting remote player move summaries -Remote player %1$s made this - move:\u0020 - Used in formatting remote player move summaries - */ - public static final int str_remote_moved_fmt=0x7f05010e; - /** [Resigned] %s: %d - */ - public static final int str_resigned_fmt=0x7f050258; - /** - ############################################################ - # Board info/error dialog messages - # - # These strings are used to create dialogs that appear during - # games while the Board screen is visible - ############################################################ - - Notifies user of a normal robot move -Resend finished; sent %1$d message[s]. -Renvoi fini ; %1$d message[s] envoyé[s]. - - ############################################################ - # Board info/error dialog messages - # - # These strings are used to create dialogs that appear during - # games while the Board screen is visible - ############################################################ - - Notifies user of a normal robot move -The robot %1$s made this move:\u0020 - */ - public static final int str_robot_moved_fmt=0x7f050108; - /** Shown when a remote device tries to join a game and wants to - play in a different language. As with the above, this should - be impossible when connecting via the relay. - Shown when a remote device tries to join a game and wants to - play in a different language. As with the above, this should - be impossible when connecting via the relay. -Conflict between Host and - Guest wordlists; Host wins. - Shown when a remote device tries to join a game and wants to - play in a different language. As with the above, this should - be impossible when connecting via the relay. - */ - public static final int str_server_dict_wins=0x7f05019b; - /** Displayed when you try to commit a turn that is illegal - because tiles played do not touch other tiles already on the - board (or the middle/star square in the case of the initial - move.) - Displayed when you try to commit a turn that is illegal - because tiles played do not touch other tiles already on the - board (or the middle/star square in the case of the initial - move.) -New pieces must contact - others already in place (or the middle square on the first - move) - Displayed when you try to commit a turn that is illegal - because tiles played do not touch other tiles already on the - board (or the middle/star square in the case of the initial - move.) - */ - public static final int str_tiles_must_contact=0x7f050193; - /** - error messages - - Displayed when you try to commit a turn that is illegal - because the tiles placed are not all in the same row or - column. - error messages - text of dialog shown when the menu item board_menu_undo_last - is chosen. - First line in the remaining tiles dialog (reached by tapping - the number at left end of the scoreboard) - error messages - - error messages - - Displayed when you try to commit a turn that is illegal - because the tiles placed are not all in the same row or - column. -All tiles played must be in a - line. - error messages - - error messages - - Displayed when you try to commit a turn that is illegal - because the tiles placed are not all in the same row or - column. - */ - public static final int str_tiles_not_in_line=0x7f050190; - /** Displayed when you try to begin a trade but there are not - seven or more tiles in the pool. The rules don't allow - trading in this case. - Displayed when you try to begin a trade but there are not - seven or more tiles in the pool. The rules don't allow - trading in this case. -Too few tiles left - to exchange. - Displayed when you try to begin a trade but there are not - seven or more tiles in the pool. The rules don't allow - trading in this case. - */ - public static final int str_too_few_tiles_left_to_trade=0x7f050197; - /** Displayed when you try to commit the first move of the game - and are playing a single tile. The first move must include - two or more tiles. - Displayed when you try to commit the first move of the game - and are playing a single tile. The first move must include - two or more tiles. -Must play two or more - pieces on the first move. - Displayed when you try to commit the first move of the game - and are playing a single tile. The first move must include - two or more tiles. - */ - public static final int str_two_tiles_first_move=0x7f050192; - /** Used in formatting final scores display - Used in formatting final scores display -[Winner] %s: %d - */ - public static final int str_winner_fmt=0x7f050257; - /** Used in formatting game history (not move summaries since - information about the current rack is hidden then) - Used in formatting game history (not move summaries since - information about the current rack is hidden then) -Cumulative score: %1$d\n - Used in formatting game history (not move summaries since - information about the current rack is hidden then) - */ - public static final int strd_cumulative_score_fmt=0x7f05010d; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -+ %1$d [all remaining tiles] - Used in formatting game history and move summaries - */ - public static final int strd_remaining_tiles_add_fmt=0x7f05010a; - /** I don't know how this is used. :-) - I don't know how this is used. :-) - - %1$d [time] - I don't know how this is used. :-) - */ - public static final int strd_time_penalty_sub_fmt=0x7f05010f; - /** Used in formatting moves and history. The total score for - one turn is substituted for %1$d. - Used in formatting moves and history. The total score for - one turn is substituted for %1$d. -Score for turn: %1$d\n - Used in formatting moves and history. The total score for - one turn is substituted for %d. - */ - public static final int strd_turn_score_fmt=0x7f05011a; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -- %1$d [unused tiles] - Used in formatting game history and move summaries - */ - public static final int strd_unused_tiles_sub_fmt=0x7f05010b; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -move (from %1$s across)\n - Used in formatting game history and move summaries - */ - public static final int strs_move_across_fmt=0x7f050111; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -move (from %1$s down)\n - Used in formatting game history and move summaries - */ - public static final int strs_move_down_fmt=0x7f050112; - /** Used in formatting game history and move summaries - Used in formatting remote player move summaries - Used in formatting game history and move summaries -New tiles: %1$s - Used in formatting game history and move summaries - */ - public static final int strs_new_tiles_fmt=0x7f05010c; - /** Used in formatting game history and move summaries - Used in formatting game history and move summaries -Rack at start: %1$s\n - Used in formatting game history and move summaries - */ - public static final int strs_tray_at_start_fmt=0x7f050113; - /** title for window you get when you select menu with text - board_menu_game_counts -string name="str_robot_moved">El robot ha fet aquesta jugada:Robot uskutočnil tento ťah:%1$s counts/values:\n - returned by util_getUserString -string name="str_robot_moved">Robot provedl tento tah:O robô fez esta jogada:\u0020Exchanged %1$s for %2$s. - Used in formatting exchange move summaries - */ - public static final int strss_traded_for_fmt=0x7f050114; - /** Your words for: - */ - public static final int study_langpick=0x7f050293; - /** You have not yet saved any words - into a studylist for %1$s. - */ - public static final int study_no_lang_fmt=0x7f050294; - /** You have not yet saved any words - into a studylist. - */ - public static final int study_no_lists=0x7f050295; - /** Studylist for %1$s - */ - public static final int studylist_title_fmt=0x7f050292; - /** If substituting an existing same-language wordlist by - choosing button_substdict user gets to choose from a list of - wordlists. This is the title of that list. - If substituting an existing same-language wordlist by - choosing button_substdict user gets to choose from a list of - wordlists. This is the title of that list. -Substitute wordlist (wordcount) - If substituting an existing same-language wordlist by - choosing button_substdict user gets to choose from a list of - wordlists. This is the title of that list. - */ - public static final int subst_dict_title=0x7f0501a4; - public static final int summary_busy=0x7f050231; - /** - -Game in play - - */ - public static final int summary_conn=0x7f050201; - /** - -Game in play with %1$s - - */ - public static final int summary_conn_sms_fmt=0x7f050223; - /** Preference to control what's listed next to game name in the - first line of a game summary in the main games-list screen, - e.g., if the option is "Game Language", "English" in the - listing "Game 2 (English)" - - The following strings beginning with "game_summary_field_" are - possible values - Preference to control what's listed next to game name in the - first line of a game summary in the main games-list screen, - e.g., if the option is "Game Language", "English" in the - listing "Game 2 (English)" - - The following strings beginning with "game_summary_field_" are - possible values -Include in game listing - Preference to control what's listed next to game name in the - first line of a game summary in the main games-list screen, - e.g., if the option is "Game Language", "English" in the - listing "Game 2 (English)" - - The following strings beginning with "game_summary_field_" are - possible values - */ - public static final int summary_field=0x7f050138; - /** - -Game over\u200C - - */ - public static final int summary_gameover=0x7f050200; - public static final int summary_invites_out=0x7f050090; - /** The display of each networked game includes one of three - states it can be in in the process of connecting to the - relay. These next three strings are used to create those - three. - First state: is configured to use a room but has not yet - contacted the relay and been assigned that room. - The display of each networked game includes one of three - states it can be in in the process of connecting to the - relay. These next three strings are used to create those - three. - First state: is configured to use a room but has not yet - contacted the relay and been assigned that room. - The display of each networked game includes one of three - states it can be in in the process of connecting to the - relay. These next three strings are used to create those - three. - First state: is configured to use a room but has not yet - contacted the relay and been assigned that room. - */ - public static final int summary_relay_conf_fmt=0x7f05008c; - /** Third state: enough devices have connected in the room to - form a complete game. We'll be in this state as long as the - game exists. - Third state: enough devices have connected in the room to - form a complete game. We'll be in this state as long as the - game exists. - Third state: enough devices have connected in the room to - form a complete game. We'll be in this state as long as the - game exists. - */ - public static final int summary_relay_conn_fmt=0x7f05008e; - /** Final state: game is over. - Final state: game is over. - Final state: game is over. - */ - public static final int summary_relay_gameover_fmt=0x7f05008f; - /** Second state: has been assigned to a room on the relay - (meaning the network is working) but there are not yet as - many players as expected: the game is not complete and play - cannot happen. - Second state: has been assigned to a room on the relay - (meaning the network is working) but there are not yet as - many players as expected: the game is not complete and play - cannot happen. - Second state: has been assigned to a room on the relay - (meaning the network is working) but there are not yet as - many players as expected: the game is not complete and play - cannot happen. - */ - public static final int summary_relay_wait_fmt=0x7f05008d; - /** XLATE-ME -(GSM phones only) - */ - public static final int summary_send_data_sms=0x7f050309; - /** explanation of the above - explanation of the above -Sort racks whenever new tiles - are added - explanation of the above - */ - public static final int summary_sort_tiles=0x7f05015a; - /** Offer to add to and display lists - of words to remember - */ - public static final int summary_studyon=0x7f05028d; - /** Thumbnail size - */ - public static final int summary_thumbsize=0x7f050280; - /** - -Unconnected - - */ - public static final int summary_wait_guest=0x7f0501ff; - /** - -Waiting for connection[s] - - - - */ - public static final int summary_wait_host=0x7f0501fe; - /** Used to indicate that a preference is not enabled, i.e. not - part of the game and that the user should ignore it. - Used to indicate that a preference is not enabled, i.e. not - part of the game and that the user should ignore it. -Not used yet… - Used to indicate that a preference is not enabled, i.e. not - part of the game and that the user should ignore it. - */ - public static final int tell_unused=0x7f05012a; - /** Disabled - */ - public static final int thumb_off=0x7f050281; - /** color of the tiles' background - color of the "crosshairs", lines drawn vertically and - horizontally through the square the user is currently - touching in order to guide the fat-fingered (most of us) in - operations that require accurately selecting a single square - on the board. - color of the tiles' background -Tile background - color of the tiles' background - */ - public static final int tile_back=0x7f05014c; - /** - -Pick for me - - */ - public static final int tilepick_all=0x7f0501e8; - /** - -Undo last\u200C - - */ - public static final int tilepick_undo=0x7f0501e7; - /** title of dialog brought up in response to the - board_menu_game_left menu. The dialog lists all tiles - remaining in the pool, i.e. not on the board or in the rack - of the player whose turn it is. - title of dialog brought up in response to the - board_menu_game_left menu. The dialog lists all tiles - remaining in the pool, i.e. not on the board or in the rack - of the player whose turn it is. -Remaining tiles - title of dialog brought up in response to the - board_menu_game_left menu. The dialog lists all tiles - remaining in the pool, i.e. not on the board or in the rack - of the player whose turn it is. - */ - public static final int tiles_left_title=0x7f0501b4; - /** Title of preference in which you select which addressing - modes network games will use to communicate - Title of preference in which you select which addressing - modes network games will use to communicate -Communicate via - */ - public static final int title_addrs_pref=0x7f0502d9; - /** - ############################################################ - # :Screens: - # Wordlists screen - # - # list of installed wordlists (formerly called dictionaries) - ############################################################ - - window title - - ############################################################ - # :Screens: - # Wordlists screen - # - # list of installed wordlists (formerly called dictionaries) - ############################################################ - - window title - - ############################################################ - # :Screens: - # Wordlists screen - # - # list of installed wordlists (formerly called dictionaries) - ############################################################ - - window title - */ - public static final int title_dicts_list=0x7f0500a6; - /** - ############################################################ - # :Screens: - # Game configure screen - ############################################################ - - window title (game name substituted for %1$s) - - ############################################################ - # :Screens: - # Game configure screen - ############################################################ - - window title (game name substituted for %1$s) -Settings for %1$s - - ############################################################ - # :Screens: - # Game configure screen - ############################################################ - - window title (game name substituted for %s) - */ - public static final int title_game_config_fmt=0x7f0500b4; - /** alternate window title used when game is networked - alternate window title used when game is networked -%1$s settings (networked) - alternate window title used when game is networked - */ - public static final int title_gamenet_config_fmt=0x7f0500b5; - /** title for popup list of langugages from which user picks - title for popup list of langugages from which user picks -Languages (based on installed - wordlists) - - title for popup list of langugages from which user picks - */ - public static final int title_langs_list=0x7f0500b6; - /** - -Tap to look up - - */ - public static final int title_lookup=0x7f0501dc; - /** Tap to look up or study - */ - public static final int title_lookup_study=0x7f0501dd; - /** - ############################################################ - # :Screens: - # Preferences screen(s) - # - # There are four screens plus one for debugging that isn't - # translated: New-game defaults, Appearances, Behavior, and - # Network Game settings - ############################################################ - - window title - text of checkbox at top of dialog allowing to unlock in-play - game to make changes - title for popup list of langugages from which user picks - alternate window title used when game is networked - - ############################################################ - # :Screens: - # Preferences screen(s) - # - # There are four screens plus one for debugging that isn't - # translated: New-game defaults, Appearances, Behavior, and - # Network Game settings - ############################################################ - - window title -Crosswords Settings - - ############################################################ - # :Screens: - # Preferences screen(s) - # - # There are four screens plus one for debugging that isn't - # translated: New-game defaults, Appearances, Behavior, and - # Network Game settings - ############################################################ - - window title - */ - public static final int title_prefs=0x7f05011c; - /** XLATE-ME -Send SMS as data - */ - public static final int title_send_data_sms=0x7f050308; - /** If this preference is checked, tiles in the rack will be - re-ordered alphabetically whenever tiles are added, - i.e. after ever move. - If this preference is checked, tiles in the rack will be - re-ordered alphabetically whenever tiles are added, - i.e. after ever move. -Sort new tiles - If this preference is checked, tiles in the rack will be - re-ordered alphabetically whenever tiles are added, - i.e. after ever move. - */ - public static final int title_sort_tiles=0x7f050159; - /** Enable studylists - */ - public static final int title_studyon=0x7f05028c; - /** title of dialog allowing user to pick tiles "face up". (This - feature is not yet supported on Android.) - - ########################################################### - # :Dialogs: - # About dialog - # - # Dialog giving copyright and other basic info about # the app - ########################################################### - - String giving version info, which is substituted in. - Welcome dialog text - - ########################################################### - # :Dialogs: - # Welcome dialog - # - # Shown the first time a user launches Crosswords (and - # again only if the preference for default first user - # name is cleared). Its purpose is to encourage him to - # enter the name of the most common non-robot player on - # this device. - ########################################################### - - Welcome dialog title - Shown when you first pick the list_item_new_from menuitem - Shown when the board screen is visible and it's just become - another players turn. The idea is to give a hint about how to - find out about recent moves. - This is not currently shown - Crosswords wordlists, which are - just compressed lists of words plus tile information, determine - what language a game is played in and how \"smart\" the robot - is. You can download different sized wordlists in many - languages here. Email me at eehouse@eehouse.org for information - on building and installing your own wordlists. - Shown the first time the board arrow is drawn on the current - Board screen. The idea is that you're tapping around - figuring out how to play and when you tap an empty cell the - arrow appears. This explains it. - This is shown in the Board screen when you successfully - connecting a game to the relay and are the last device in the - game to do so, i.e. the game is now complete and you should - expect play to begin. - This is shown in the Board screen when you successfully - connecting a game to the relay and are not the first device - in the game but not the last either. So it will only occur - for games with more than two devices, which are rare. - This is shown in the Board screen when you successfully - connect a game to the relay and are the first device in the - game to do so. - Shown in the Game configure screen when the game_locked - checkbox is checked and you uncheck it. - This is shown when you choose the board_menu_done menu item. - It's to let you know that there's a shortcut that does almost - the same thing. - Shown when you tap the values button on the toolbar of the - main Board screen. This is intended to allow players to - remind themselves how much played tiles are worth while - planning a move. - Shown when you tap the chat button on the toolbar of the - main Board screen - Shown when you tap the undo/redo button on the toolbar of the - main Board screen - Shown when you tap the zoom (+/-) button on the toolbar of - the main Board screen - Shown when you tap the flip button on the toolbar of the main - Board screen - Shown when you tap the juggle button on the toolbar of the - main Board screen - Shown when you tap the next hint button on the toolbar of the - main Board screen - Currently not used - The new game you have created has - two players. Player 1 is a robot; Player 2 is you. Tap the game - to play; long-tap (hold your finger on the game) to change its - settings or for other options. - Shown when you tap the Previous Hint button on the toolbar of - the main Board screen - Shown when the user chooses the "board_menu_trade" menu - The following strings (all whose names start with - "not_again") appear in the New user info dialog. - - shown when user chooses the gamel_menu_checkmoves menu - Text for button in new-user-info dialog with title just - above. - - ########################################################### - # :Dialogs: - # New user info dialog - # - # This dialog pops up in places I think new users need an - # explanation of something. It always has a button allowing - # the user to say he doesn't need to see it again. - ########################################################### - - Title of New user info dialog - title of dialog allowing user to pick tiles "face up". (This - feature is not yet supported on Android.) -Letter for blank - title of dialog allowing user to pick tiles "face up". (This - feature is not yet supported on Android.) - */ - public static final int title_tile_picker=0x7f0501b3; - public static final int toast_no_permission=0x7f050367; - /** Updates are available for one or more - installed wordlists. Would you like to download the new - version[s] of %1$s now? - */ - public static final int update_dicts_fmt=0x7f0502c4; - /** XLATE-ME -Use defaults - */ - public static final int use_defaults=0x7f0502e0; - /** text of checkbox controlling whether there's a game timer - text of checkbox. If this checkbox is checked, games created - for network play will by default have the hint feature - enabled. - text of checkbox controlling whether there's a game timer -Enable game timer - text of checkbox controlling whether there's a game timer - */ - public static final int use_timer=0x7f0500c8; - /** Used to separate names of players when listing them on one - line in a game summary. The \u0020 is a space in xml. - Used to separate names of players when listing them on one - line in a game summary. The \u0020 is a space in xml. -\u0020vs.\u0020 - */ - public static final int vs_join=0x7f050118; - /** Button for alert with title above - */ - public static final int waiting_invite_title=0x7f0502ed; - public static final int waiting_rematch_title=0x7f0502ee; - /** XLATE-ME -Waiting for players - */ - public static final int waiting_title=0x7f0502ec; - /** XLATE-ME -Bluetooth is currently off on this - device. No moves will be sent via Bluetooth.\n\nYou can enable - Bluetooth now, or later. - - */ - public static final int warn_bt_disabled=0x7f050247; - /** XLATE-ME -Every networked game must have at - least one way of communicating. If you have no default connection - options every new networked game will have to be configured - manually. - */ - public static final int warn_no_comms=0x7f0502f3; - /** - -(Not in contacts) - -The number %1$s for %2$s is not - a \"mobile\" number. Import anyway? - - - - */ - public static final int warn_nomobile_fmt=0x7f05021a; - public static final int warn_relay_disabled=0x7f050248; - public static final int warn_relay_havegames=0x7f05024b; - public static final int warn_relay_later=0x7f050249; - public static final int warn_relay_remove=0x7f05024a; - /** - -Play via SMS is currently - disabled, so no moves will be sent for this game. (If you want to - enable play via SMS, go to Settings->Network game settings.) - -Les parties par SMS sont actuellement -désactivées, donc aucun coup ne sera envoyé pour cette partie. (Si vous voulez -activer les parties par SMS, allez dans Paramètres->Paramètres des parties en -réseau.) - - */ - public static final int warn_sms_disabled=0x7f050246; - /** - -Are you certain this number is on an - account with unlimited texting? Click cancel if you are not. - - */ - public static final int warn_unlimited=0x7f050224; - public static final int wifi_warning=0x7f050337; - /** - -First letters - - */ - public static final int word_search_hint=0x7f0501e6; - /** Add option to every screen menu - */ - public static final int xlations_enabled_summary=0x7f05029f; - /** Enable local translating - */ - public static final int xlations_enabled_title=0x7f05029e; - /** XLATE-ME -Fake locale for translation - */ - public static final int xlations_locale=0x7f050315; - /** Empty in English, this should contain the name of the - translator/creator of the strings.xml file for this - language - fill this in other than in English - fill this in other than in English - Empty in English, this should contain the name of the - translator/creator of the strings.xml file for this - language - fill this in other than in English - Empty in English, this should contain the name of the - translator/creator of the strings.xml file for this - language - */ - public static final int xlator=0x7f0501d4; - public static final int xwords_nfc_mime=0x7f05007e; - } - public static final class style { - public static final int about_items=0x7f0a0005; - public static final int color_edit_text=0x7f0a0003; - public static final int color_seek_bar=0x7f0a0002; - public static final int config_separator=0x7f0a0000; - public static final int evenly_spaced_horizontal=0x7f0a0008; - public static final int expander_button=0x7f0a0009; - public static final int expander_label=0x7f0a000a; - public static final int group_items=0x7f0a0006; - public static final int new_game_buttons=0x7f0a000c; - public static final int newgame_connicon=0x7f0a000b; - public static final int relay_explain=0x7f0a0007; - public static final int role_config_hint=0x7f0a0001; - public static final int toolbar_button=0x7f0a0004; - } - public static final class xml { - public static final int xwprefs=0x7f040000; - } -} diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle index 3237fad30..2698ad079 100644 --- a/xwords4/android/app/build.gradle +++ b/xwords4/android/app/build.gradle @@ -35,6 +35,20 @@ android { def gitHash = "../scripts/gitversion.sh".execute().text.trim() resValue "string", "git_rev", "$gitHash" + variant.buildConfigField "String", "GIT_REV", "\"$gitHash\"" + + // def stamp = Long.valueOf('date +\'%s\''.execute().text.trim()); + def stamp = Math.round(System.currentTimeMillis() / 1000) + variant.buildConfigField "long", "BUILD_STAMP", "$stamp" + + // FIX ME + variant.buildConfigField "String", "STRINGS_HASH", "\"00000\"" + variant.buildConfigField "boolean", "WIDIR_ENABLED", "false" + + def senderID = System.getenv("GCM_SENDER_ID") + variant.buildConfigField "String", "GCM_SENDER_ID", "\"$senderID\"" + + variant.buildConfigField "short", "CLIENT_VERS_RELAY", "$INITIAL_CLIENT_VERS" } flavorDimensions "variant"//, "abi" diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ABUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ABUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ABUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ABUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTInviteActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTInviteActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTInviteDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTInviteDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BTReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BTService.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BiDiSockWrap.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BiDiSockWrap.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BiDiSockWrap.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BiDiSockWrap.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardCanvas.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardCanvas.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardCanvas.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardCanvas.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardContainer.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardContainer.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardContainer.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardContainer.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardView.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/BoardView.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ChatFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/CommsTransport.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/CommsTransport.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/CommsTransport.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/CommsTransport.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ConfirmingCheckBoxPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConfirmingCheckBoxPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ConfirmingCheckBoxPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConfirmingCheckBoxPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ConnStatusHandler.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ConnStatusHandler.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ConnViaViewLayout.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ConnViaViewLayout.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnViaViewLayout.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/CrashTrack.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/CrashTrack.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/CrashTrack.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/CrashTrack.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DBHelper.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DBHelper.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DBUtils.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DBUtils.java index f3360eb78..b76dae238 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DBUtils.java @@ -2543,7 +2543,7 @@ public class DBUtils { private static String getVariantDBName() { return String.format( "%s_%s", DBHelper.getDBName(), - BuildConstants.VARIANT ); + BuildConfig.FLAVOR ); } // private static void clearChatHistoryString( Context context, long rowid ) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DbgUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DbgUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DbgUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DbgUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DelegateBase.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Delegator.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/Delegator.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/Delegator.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/Delegator.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DevID.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DevID.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DevID.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DevID.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictBrowseFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictBrowseFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictLangCache.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictLangCache.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictLangCache.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictLangCache.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DictsFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DictsFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DispatchNotify.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DispatchNotify.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DispatchNotify.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DispatchNotify.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java index 7f0fa3660..2ef7e8743 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgDelegate.java @@ -631,10 +631,10 @@ public class DlgDelegate { DateFormat df = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL ); String dateString - = df.format( new Date( BuildConstants.BUILD_STAMP * 1000 ) ); + = df.format( new Date( BuildConfig.BUILD_STAMP * 1000 ) ); vers.setText( getString( R.string.about_vers_fmt, getString( R.string.app_version ), - BuildConstants.GIT_REV, dateString ) ); + BuildConfig.GIT_REV, dateString ) ); TextView xlator = (TextView)view.findViewById( R.id.about_xlator ); String str = getString( R.string.xlator ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgID.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgID.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgID.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgID.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgState.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DlgState.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DrawSelDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DrawSelDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DrawSelDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DrawSelDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DualpaneDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DualpaneDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DualpaneDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DualpaneDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DwnldActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DwnldActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/DwnldDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/DwnldDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/EditColorPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/EditColorPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/EditColorPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/EditColorPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringLinearLayout.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringLinearLayout.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringLinearLayout.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringLinearLayout.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringTextView.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ExpiringTextView.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/FirstRunDialog.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/FirstRunDialog.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/FirstRunDialog.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/FirstRunDialog.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/FragActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/FragActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/FragActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GCMIntentService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GCMIntentService.java similarity index 96% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GCMIntentService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GCMIntentService.java index a6858987f..7a47de63f 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GCMIntentService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GCMIntentService.java @@ -34,7 +34,7 @@ public class GCMIntentService extends GCMBaseIntentService { public GCMIntentService() { - super( BuildConstants.GCM_SENDER_ID ); + super( BuildConfig.GCM_SENDER_ID ); } @Override @@ -121,13 +121,13 @@ public class GCMIntentService extends GCMBaseIntentService { public static void init( Application app ) { int sdkVersion = Integer.valueOf( android.os.Build.VERSION.SDK ); - if ( 8 <= sdkVersion && 0 < BuildConstants.GCM_SENDER_ID.length() ) { + if ( 8 <= sdkVersion && 0 < BuildConfig.GCM_SENDER_ID.length() ) { try { GCMRegistrar.checkDevice( app ); // GCMRegistrar.checkManifest( app ); String regId = DevID.getGCMDevID( app ); if ( regId.equals("") ) { - GCMRegistrar.register( app, BuildConstants.GCM_SENDER_ID ); + GCMRegistrar.register( app, BuildConfig.GCM_SENDER_ID ); } } catch ( UnsupportedOperationException uoe ) { DbgUtils.logw( TAG, "Device can't do GCM." ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameConfigFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameConfigFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameListGroup.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListGroup.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameListGroup.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameListItem.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameListItem.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameLock.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameLock.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameNamer.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameNamer.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameNamer.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameNamer.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GameUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GamesListFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GroupStateListener.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/GroupStateListener.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/GroupStateListener.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/GroupStateListener.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/HeaderWithExpander.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/HeaderWithExpander.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/HeaderWithExpander.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/HeaderWithExpander.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/InviteActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/InviteActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/InviteDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/InviteDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/LangListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/LangListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/LangListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/LangListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ListDelegateBase.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ListDelegateBase.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ListDelegateBase.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ListDelegateBase.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ListGroup.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ListGroup.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ListGroup.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ListGroup.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/LookupAlert.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/LookupAlert.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/LookupAlert.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/LookupAlert.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MainActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/MainActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/MainActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/MainActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MountEventReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/MountEventReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/MountEventReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/MountEventReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiMsgSink.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/MultiMsgSink.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiMsgSink.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/MultiMsgSink.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/MultiService.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/MultiService.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NFCUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NFCUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NFCUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NFCUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NagTurnReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NagTurnReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NagTurnReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NagTurnReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetLaunchInfo.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetLaunchInfo.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetStateCache.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetStateCache.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NetUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NetUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NotAgainView.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/NotAgainView.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/NotAgainView.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/NotAgainView.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/OnBootReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/OnBootReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/Perms23.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/Perms23.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/Perms23.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PollListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/PollListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/PollListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/PollListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/PrefsActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/PrefsActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/PrefsDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/PrefsDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RefreshNamesTask.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RefreshNamesTask.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RefreshNamesTask.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RefreshNamesTask.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayCheckBoxPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayCheckBoxPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayCheckBoxPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayCheckBoxPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayInviteActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayInviteActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayInviteActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayInviteActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayInviteDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayInviteDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayInviteDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayInviteDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java index e63c5e54c..cf4f49694 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RelayService.java @@ -851,8 +851,8 @@ public class RelayService extends XWService DbgUtils.logd( TAG, "registering devID \"%s\" (type=%s)", devid, typ.toString() ); - out.writeShort( BuildConstants.CLIENT_VERS_RELAY ); - writeVLIString( out, BuildConstants.GIT_REV ); + out.writeShort( BuildConfig.CLIENT_VERS_RELAY ); + writeVLIString( out, BuildConfig.GIT_REV ); // writeVLIString( out, String.format( "€%s", Build.MODEL) ); writeVLIString( out, Build.MODEL ); writeVLIString( out, Build.VERSION.RELEASE ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RequestCode.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/RequestCode.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/RequestCode.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/RequestCode.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSCheckBoxPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSCheckBoxPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSCheckBoxPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSCheckBoxPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSInviteActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSInviteActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSInviteDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSInviteDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSReceiver.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSReceiver.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSService.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SMSService.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SelectableItem.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/SelectableItem.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/SelectableItem.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/SelectableItem.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListFrag.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListFrag.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListFrag.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/StudyListFrag.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ThumbCanvas.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ThumbCanvas.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/ThumbCanvas.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/ThumbCanvas.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Toolbar.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/Toolbar.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/Toolbar.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/Toolbar.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/TwoStrsItem.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/TwoStrsItem.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/TwoStrsItem.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/TwoStrsItem.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/UpdateCheckReceiver.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/UpdateCheckReceiver.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/UpdateCheckReceiver.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/UpdateCheckReceiver.java index fc5c1aa9e..53bb11e1b 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/UpdateCheckReceiver.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/UpdateCheckReceiver.java @@ -133,7 +133,7 @@ public class UpdateCheckReceiver extends BroadcastReceiver { JSONObject appParams = new JSONObject(); appParams.put( k_AVERS, versionCode ); - appParams.put( k_GVERS, BuildConstants.GIT_REV ); + appParams.put( k_GVERS, BuildConfig.GIT_REV ); appParams.put( k_GHASH, context.getString( R.string.git_rev ) ); appParams.put( k_INSTALLER, installer ); if ( devOK( context ) ) { @@ -174,7 +174,7 @@ public class UpdateCheckReceiver extends BroadcastReceiver { if ( 0 < params.length() ) { try { - params.put( k_STRINGSHASH, BuildConstants.STRINGS_HASH ); + params.put( k_STRINGSHASH, BuildConfig.STRINGS_HASH ); params.put( k_NAME, packageName ); params.put( k_AVERS, versionCode ); DbgUtils.logd( TAG, "current update: %s", diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/Utils.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/Utils.java index 886f7b3df..fe3c28d8b 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/Utils.java @@ -191,7 +191,7 @@ public class Utils { R.string.email_author_email ) }; intent.putExtra( Intent.EXTRA_EMAIL, addrs ); String body = LocUtils.getString( context, R.string.email_body_rev_fmt, - BuildConstants.GIT_REV ); + BuildConfig.GIT_REV ); intent.putExtra( Intent.EXTRA_TEXT, body ); String chooserMsg = LocUtils.getString( context, R.string.email_author_chooser ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirInviteActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirInviteActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirInviteActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirInviteActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirInviteDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirInviteDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirInviteDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirInviteDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java similarity index 99% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java index cf5c6e991..3e5eb1332 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/WiDirService.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/WiDirService.java @@ -74,7 +74,7 @@ public class WiDirService extends XWService { private static final String TAG = WiDirService.class.getSimpleName(); private static final Class CLAZZ = WiDirService.class; private static final String MAC_ADDR_KEY = "p2p_mac_addr"; - private static final String SERVICE_NAME = "srvc_" + BuildConstants.VARIANT; + private static final String SERVICE_NAME = "srvc_" + BuildConfig.FLAVOR; private static final String SERVICE_REG_TYPE = "_presence._tcp"; private static final int OWNER_PORT = 5432; @@ -137,7 +137,7 @@ public class WiDirService extends XWService { { int result; - if ( BuildConstants.WIDIR_ENABLED && null != intent ) { + if ( BuildConfig.WIDIR_ENABLED && null != intent ) { result = Service.START_STICKY; int ordinal = intent.getIntExtra( KEY_CMD, -1 ); @@ -206,7 +206,7 @@ public class WiDirService extends XWService { public static boolean supported() { - return BuildConstants.WIDIR_ENABLED; + return BuildConfig.WIDIR_ENABLED; } public static boolean connecting() { @@ -217,7 +217,7 @@ public class WiDirService extends XWService { public static String getMyMacAddress( Context context ) { - if ( BuildConstants.WIDIR_ENABLED ) { + if ( BuildConfig.WIDIR_ENABLED ) { if ( null == sMacAddress && null != context ) { sMacAddress = DBUtils.getStringFor( context, MAC_ADDR_KEY, null ); } @@ -306,7 +306,7 @@ public class WiDirService extends XWService { public static void activityResumed( Activity activity ) { - if ( BuildConstants.WIDIR_ENABLED && sHavePermission ) { + if ( BuildConfig.WIDIR_ENABLED && sHavePermission ) { if ( initListeners( activity ) ) { activity.registerReceiver( sReceiver, sIntentFilter ); DbgUtils.logd( TAG, "activityResumed() done" ); @@ -317,7 +317,7 @@ public class WiDirService extends XWService { public static void activityPaused( Activity activity ) { - if ( BuildConstants.WIDIR_ENABLED && sHavePermission ) { + if ( BuildConfig.WIDIR_ENABLED && sHavePermission ) { Assert.assertNotNull( sReceiver ); // No idea why I'm seeing this exception... try { @@ -346,7 +346,7 @@ public class WiDirService extends XWService { private static boolean initListeners( final Context context ) { boolean succeeded = false; - if ( BuildConstants.WIDIR_ENABLED ) { + if ( BuildConfig.WIDIR_ENABLED ) { if ( null == sIface ) { try { WifiP2pManager mgr = getMgr(); @@ -594,7 +594,7 @@ public class WiDirService extends XWService { private static void setDiscoveryListeners( WifiP2pManager mgr ) { - if ( BuildConstants.WIDIR_ENABLED ) { + if ( BuildConfig.WIDIR_ENABLED ) { DnsSdServiceResponseListener srl = new DnsSdServiceResponseListener() { @Override public void onDnsSdServiceAvailable(String instanceName, @@ -1025,7 +1025,7 @@ public class WiDirService extends XWService { @Override public void onReceive( Context context, Intent intent ) { - if ( BuildConstants.WIDIR_ENABLED ) { + if ( BuildConfig.WIDIR_ENABLED ) { String action = intent.getAction(); DbgUtils.logd( TAG, "got intent: " + intent.toString() ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWApp.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWApp.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWConnAddrPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWConnAddrPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConstants.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWConstants.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConstants.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWConstants.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWDevIDPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWDevIDPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWDevIDPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWDevIDPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWEditTextPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWEditTextPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWEditTextPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWEditTextPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWExpListAdapter.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWExpListAdapter.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWExpListAdapter.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWFragment.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWFragment.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWFragment.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWFragment.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListAdapter.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListAdapter.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListAdapter.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListAdapter.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListItem.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListItem.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListItem.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListItem.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPacket.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPacket.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPacket.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPacket.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWPrefs.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWPrefs.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWService.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWService.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWService.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWSumListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWSumListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWSumListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWSumListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWThumbListPreference.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWThumbListPreference.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/XWThumbListPreference.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/XWThumbListPreference.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/BoardDims.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/BoardDims.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/BoardDims.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/BoardDims.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/BoardHandler.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/BoardHandler.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/BoardHandler.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/BoardHandler.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommonPrefs.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommonPrefs.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommonPrefs.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommonPrefs.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CommsAddrRec.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CurGameInfo.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CurGameInfo.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CurGameInfo.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/CurGameInfo.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DictInfo.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DictInfo.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DictInfo.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DictInfo.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DrawCtx.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DrawCtx.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DrawCtx.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DrawCtx.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DrawScoreInfo.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DrawScoreInfo.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/DrawScoreInfo.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/DrawScoreInfo.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/GameSummary.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/GameSummary.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIThread.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIThread.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIThread.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIThread.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIUtilsImpl.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIUtilsImpl.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/JNIUtilsImpl.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/JNIUtilsImpl.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/LastMoveInfo.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/LastMoveInfo.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/LastMoveInfo.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/LastMoveInfo.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/LocalPlayer.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/LocalPlayer.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/LocalPlayer.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/LocalPlayer.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/SyncedDraw.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/SyncedDraw.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/SyncedDraw.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/SyncedDraw.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/TransportProcs.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/TransportProcs.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/TransportProcs.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/TransportProcs.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/UtilCtxt.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/UtilCtxt.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/UtilCtxt.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/UtilCtxt.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/UtilCtxtImpl.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/UtilCtxtImpl.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/UtilCtxtImpl.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/UtilCtxtImpl.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/XwJNI.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/jni/XwJNI.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocIDs.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocIDs.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocIDs.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocIDs.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocItemEditActivity.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocItemEditActivity.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocItemEditActivity.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocItemEditActivity.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocItemEditDelegate.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocItemEditDelegate.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocItemEditDelegate.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocItemEditDelegate.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocListAdapter.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocListAdapter.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocListAdapter.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocListAdapter.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocListItem.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocListItem.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocListItem.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocListItem.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocSearcher.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocSearcher.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocSearcher.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocSearcher.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocUtils.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocUtils.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/LocUtils.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/LocUtils.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/XlatingSpinnerAdapter.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/XlatingSpinnerAdapter.java similarity index 100% rename from xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/XlatingSpinnerAdapter.java rename to xwords4/android/app/src/main/java/org/eehouse/android/xw4/loc/XlatingSpinnerAdapter.java diff --git a/xwords4/android/XWords4/libs/android-support-v13.jar b/xwords4/android/libs/android-support-v13.jar similarity index 100% rename from xwords4/android/XWords4/libs/android-support-v13.jar rename to xwords4/android/libs/android-support-v13.jar diff --git a/xwords4/android/XWords4/libs/gcm.jar b/xwords4/android/libs/gcm.jar similarity index 100% rename from xwords4/android/XWords4/libs/gcm.jar rename to xwords4/android/libs/gcm.jar From 3ac0039b4da1bced1c1c7990a52ebbd3a0f57cc2 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 08:33:49 -0800 Subject: [PATCH 18/30] fix jni build. Full .apk now produced. But it gets confused about downloading wordlists. --- xwords4/android/jni/Android.mk | 6 +++--- xwords4/android/scripts/ndkbuild.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xwords4/android/jni/Android.mk b/xwords4/android/jni/Android.mk index ad1ced053..014116c1e 100644 --- a/xwords4/android/jni/Android.mk +++ b/xwords4/android/jni/Android.mk @@ -3,10 +3,10 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -COMMON_PATH=../../../common +COMMON_PATH=../../common LOCAL_C_INCLUDES+= \ -I$(LOCAL_PATH)/$(COMMON_PATH) \ - -I$(LOCAL_PATH)/../../../relay \ + -I$(LOCAL_PATH)/../../relay \ LOCAL_LDLIBS += -llog @@ -61,7 +61,7 @@ LOCAL_SRC_FILES += \ jniutlswrapper.c \ -COMMON_PATH=../../../common +COMMON_PATH=../../common COMMON_SRC_FILES += \ $(COMMON_PATH)/boarddrw.c \ $(COMMON_PATH)/scorebdp.c \ diff --git a/xwords4/android/scripts/ndkbuild.sh b/xwords4/android/scripts/ndkbuild.sh index 62156fc75..d26596853 100755 --- a/xwords4/android/scripts/ndkbuild.sh +++ b/xwords4/android/scripts/ndkbuild.sh @@ -4,8 +4,8 @@ set -e -u ANDROID_NDK=${ANDROID_NDK:-''} -if [ ! -e build.xml ]; then - echo "no build.xml; please run from root of source tree" +if [ ! -d jni ]; then + echo "no jni directory; please run from root of source tree" exit 1 fi From aaf153006edbac08171510d63da659d535245386 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 08:44:23 -0800 Subject: [PATCH 19/30] move and incorporate localized strings This will require a reconfig on the weblate side! --- xwords4/android/{XWords4 => }/res_src/values-ba_CK/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-ca/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-ca_PS/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-cs/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-de/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-fr/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-ja/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-nl/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-pt/strings.xml | 0 xwords4/android/{XWords4 => }/res_src/values-sk/strings.xml | 0 xwords4/android/scripts/copy-strings.py | 2 +- 11 files changed, 1 insertion(+), 1 deletion(-) rename xwords4/android/{XWords4 => }/res_src/values-ba_CK/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-ca/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-ca_PS/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-cs/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-de/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-fr/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-ja/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-nl/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-pt/strings.xml (100%) rename xwords4/android/{XWords4 => }/res_src/values-sk/strings.xml (100%) diff --git a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml b/xwords4/android/res_src/values-ba_CK/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-ba_CK/strings.xml rename to xwords4/android/res_src/values-ba_CK/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-ca/strings.xml b/xwords4/android/res_src/values-ca/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-ca/strings.xml rename to xwords4/android/res_src/values-ca/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml b/xwords4/android/res_src/values-ca_PS/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-ca_PS/strings.xml rename to xwords4/android/res_src/values-ca_PS/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-cs/strings.xml b/xwords4/android/res_src/values-cs/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-cs/strings.xml rename to xwords4/android/res_src/values-cs/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-de/strings.xml b/xwords4/android/res_src/values-de/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-de/strings.xml rename to xwords4/android/res_src/values-de/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-fr/strings.xml b/xwords4/android/res_src/values-fr/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-fr/strings.xml rename to xwords4/android/res_src/values-fr/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-ja/strings.xml b/xwords4/android/res_src/values-ja/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-ja/strings.xml rename to xwords4/android/res_src/values-ja/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-nl/strings.xml b/xwords4/android/res_src/values-nl/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-nl/strings.xml rename to xwords4/android/res_src/values-nl/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-pt/strings.xml b/xwords4/android/res_src/values-pt/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-pt/strings.xml rename to xwords4/android/res_src/values-pt/strings.xml diff --git a/xwords4/android/XWords4/res_src/values-sk/strings.xml b/xwords4/android/res_src/values-sk/strings.xml similarity index 100% rename from xwords4/android/XWords4/res_src/values-sk/strings.xml rename to xwords4/android/res_src/values-sk/strings.xml diff --git a/xwords4/android/scripts/copy-strings.py b/xwords4/android/scripts/copy-strings.py index b46b57f07..2ba15fb79 100755 --- a/xwords4/android/scripts/copy-strings.py +++ b/xwords4/android/scripts/copy-strings.py @@ -226,7 +226,7 @@ def main(): if path: verbose = 0 == len(verboses) or 0 < len([verb for verb in verboses if verb in path]) print "*** looking at %s ***" % (path) - dest = path.replace( 'res_src', 'res', 1 ) + dest = path.replace( 'res_src', 'app/src/main/res', 1 ) checkAndCopy( parser, engNames, path, dest, verbose ) ############################################################################## From 0d1e22fc83f915d6ab31a5114153491df91d504b Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 08:47:33 -0800 Subject: [PATCH 20/30] move wordlists and other assets over --- .../src/main}/assets/BasEnglish2to8.xwd | Bin .../src/main}/assets/CollegeEng_2to8.xwd | Bin .../{XWords4 => app/src/main}/assets/Top5000.xwd | Bin .../{XWords4 => app/src/main}/assets/changes.html | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename xwords4/android/{XWords4 => app/src/main}/assets/BasEnglish2to8.xwd (100%) rename xwords4/android/{XWords4 => app/src/main}/assets/CollegeEng_2to8.xwd (100%) rename xwords4/android/{XWords4 => app/src/main}/assets/Top5000.xwd (100%) rename xwords4/android/{XWords4 => app/src/main}/assets/changes.html (100%) diff --git a/xwords4/android/XWords4/assets/BasEnglish2to8.xwd b/xwords4/android/app/src/main/assets/BasEnglish2to8.xwd similarity index 100% rename from xwords4/android/XWords4/assets/BasEnglish2to8.xwd rename to xwords4/android/app/src/main/assets/BasEnglish2to8.xwd diff --git a/xwords4/android/XWords4/assets/CollegeEng_2to8.xwd b/xwords4/android/app/src/main/assets/CollegeEng_2to8.xwd similarity index 100% rename from xwords4/android/XWords4/assets/CollegeEng_2to8.xwd rename to xwords4/android/app/src/main/assets/CollegeEng_2to8.xwd diff --git a/xwords4/android/XWords4/assets/Top5000.xwd b/xwords4/android/app/src/main/assets/Top5000.xwd similarity index 100% rename from xwords4/android/XWords4/assets/Top5000.xwd rename to xwords4/android/app/src/main/assets/Top5000.xwd diff --git a/xwords4/android/XWords4/assets/changes.html b/xwords4/android/app/src/main/assets/changes.html similarity index 100% rename from xwords4/android/XWords4/assets/changes.html rename to xwords4/android/app/src/main/assets/changes.html From 1f5ffaa7126a80d51c01d8f8d6352424a2fc323f Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 19:03:36 -0800 Subject: [PATCH 21/30] more cleanup. Get Crittercism stuff compiling. --- xwords4/android/XWords4-dbg/res/.gitignore | 1 - .../XWords4-dbg/res/drawable-hdpi/.gitignore | 26 - .../XWords4-dbg/res/drawable-mdpi/.gitignore | 26 - .../XWords4-dbg/res/drawable-xhdpi/.gitignore | 26 - .../XWords4-dbg/res/drawable/.gitignore | 30 - .../XWords4-dbg/res/layout-small/.gitignore | 1 - .../android/XWords4-dbg/res/layout/.gitignore | 54 -- .../XWords4-dbg/res/menu-small/.gitignore | 1 - .../android/XWords4-dbg/res/menu/.gitignore | 11 - .../android/XWords4-dbg/res/raw/.gitignore | 1 - .../XWords4-dbg/res/values-large/.gitignore | 1 - .../android/XWords4-dbg/res/values/.gitignore | 6 - .../android/XWords4-dbg/res/values/config.xml | 4 - .../android/XWords4-dbg/res/xml/.gitignore | 1 - xwords4/android/XWords4/.gitignore | 20 - xwords4/android/XWords4/app/.gitignore | 1 - xwords4/android/XWords4/app/build.gradle | 237 -------- xwords4/android/XWords4/assets/.gitignore | 1 - xwords4/android/XWords4/build.xml | 112 ---- xwords4/android/XWords4/build_unchecked.xml | 516 ------------------ xwords4/android/XWords4/libs/.gitignore | 2 - xwords4/android/XWords4/project.properties | 14 - .../src/org/eehouse/android/xw4/.gitignore | 4 - .../org/eehouse/android/xw4/loc/.gitignore | 1 - .../src/org/eehouse/android/xw4dbg/.gitignore | 2 - .../android/XWords4/src/xw4/assets/.gitignore | 1 - .../XWords4/src/xw4dbg/assets/.gitignore | 1 - xwords4/android/app/build.gradle | 15 +- .../android/app/src/main/AndroidManifest.xml | 1 - .../org/eehouse/android/xw4/CrashTrack.java | 0 .../src/xw4dbg}/AndroidManifest.xml | 5 +- .../org/eehouse/android/xw4}/CrashTrack.java | 6 +- xwords4/android/{XWords4 => }/gradlew.bat | 0 .../{XWords4 => }/proguard-project.txt | 0 .../{XWords4/app => }/proguard-rules.pro | 0 35 files changed, 14 insertions(+), 1114 deletions(-) delete mode 100644 xwords4/android/XWords4-dbg/res/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/drawable-hdpi/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/drawable-mdpi/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/drawable-xhdpi/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/drawable/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/layout-small/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/layout/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/menu-small/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/menu/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/raw/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-large/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values/config.xml delete mode 100644 xwords4/android/XWords4-dbg/res/xml/.gitignore delete mode 100644 xwords4/android/XWords4/.gitignore delete mode 100644 xwords4/android/XWords4/app/.gitignore delete mode 100644 xwords4/android/XWords4/app/build.gradle delete mode 100644 xwords4/android/XWords4/assets/.gitignore delete mode 100644 xwords4/android/XWords4/build.xml delete mode 100644 xwords4/android/XWords4/build_unchecked.xml delete mode 100644 xwords4/android/XWords4/libs/.gitignore delete mode 100644 xwords4/android/XWords4/project.properties delete mode 100644 xwords4/android/XWords4/src/org/eehouse/android/xw4/.gitignore delete mode 100644 xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/.gitignore delete mode 100644 xwords4/android/XWords4/src/org/eehouse/android/xw4dbg/.gitignore delete mode 100644 xwords4/android/XWords4/src/xw4/assets/.gitignore delete mode 100644 xwords4/android/XWords4/src/xw4dbg/assets/.gitignore rename xwords4/android/app/src/{main => xw4}/java/org/eehouse/android/xw4/CrashTrack.java (100%) rename xwords4/android/{XWords4-dbg => app/src/xw4dbg}/AndroidManifest.xml (98%) rename xwords4/android/{XWords4-dbg/src/org/eehouse/android/xw4dbg => app/src/xw4dbg/java/org/eehouse/android/xw4}/CrashTrack.java (87%) rename xwords4/android/{XWords4 => }/gradlew.bat (100%) rename xwords4/android/{XWords4 => }/proguard-project.txt (100%) rename xwords4/android/{XWords4/app => }/proguard-rules.pro (100%) diff --git a/xwords4/android/XWords4-dbg/res/.gitignore b/xwords4/android/XWords4-dbg/res/.gitignore deleted file mode 100644 index 1e3315a64..000000000 --- a/xwords4/android/XWords4-dbg/res/.gitignore +++ /dev/null @@ -1 +0,0 @@ -values-??/strings.xml diff --git a/xwords4/android/XWords4-dbg/res/drawable-hdpi/.gitignore b/xwords4/android/XWords4-dbg/res/drawable-hdpi/.gitignore deleted file mode 100644 index 5fb73cd78..000000000 --- a/xwords4/android/XWords4-dbg/res/drawable-hdpi/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -/clear_all__gen.png -/search__gen.png -/select_all__gen.png -back__gen.png -content_copy__gen.png -content_discard__gen.png -content_edit.png -content_new__gen.png -dict__gen.png -down__gen.png -download__gen.png -email__gen.png -new_group__gen.png -prefs__gen.png -relabel__gen.png -reset__gen.png -save__gen.png -send__gen.png -up__gen.png -clear_all__gen.png -search__gen.png -select_all__gen.png -content_new_net__gen.png -content_new_solo__gen.png -multigame__gen.png -sologame__gen.png diff --git a/xwords4/android/XWords4-dbg/res/drawable-mdpi/.gitignore b/xwords4/android/XWords4-dbg/res/drawable-mdpi/.gitignore deleted file mode 100644 index 5fb73cd78..000000000 --- a/xwords4/android/XWords4-dbg/res/drawable-mdpi/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -/clear_all__gen.png -/search__gen.png -/select_all__gen.png -back__gen.png -content_copy__gen.png -content_discard__gen.png -content_edit.png -content_new__gen.png -dict__gen.png -down__gen.png -download__gen.png -email__gen.png -new_group__gen.png -prefs__gen.png -relabel__gen.png -reset__gen.png -save__gen.png -send__gen.png -up__gen.png -clear_all__gen.png -search__gen.png -select_all__gen.png -content_new_net__gen.png -content_new_solo__gen.png -multigame__gen.png -sologame__gen.png diff --git a/xwords4/android/XWords4-dbg/res/drawable-xhdpi/.gitignore b/xwords4/android/XWords4-dbg/res/drawable-xhdpi/.gitignore deleted file mode 100644 index 5fb73cd78..000000000 --- a/xwords4/android/XWords4-dbg/res/drawable-xhdpi/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ -/clear_all__gen.png -/search__gen.png -/select_all__gen.png -back__gen.png -content_copy__gen.png -content_discard__gen.png -content_edit.png -content_new__gen.png -dict__gen.png -down__gen.png -download__gen.png -email__gen.png -new_group__gen.png -prefs__gen.png -relabel__gen.png -reset__gen.png -save__gen.png -send__gen.png -up__gen.png -clear_all__gen.png -search__gen.png -select_all__gen.png -content_new_net__gen.png -content_new_solo__gen.png -multigame__gen.png -sologame__gen.png diff --git a/xwords4/android/XWords4-dbg/res/drawable/.gitignore b/xwords4/android/XWords4-dbg/res/drawable/.gitignore deleted file mode 100644 index b96f0091c..000000000 --- a/xwords4/android/XWords4-dbg/res/drawable/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -dicticon.png -downarrow.png -expander_ic_maximized.9.png -expander_ic_minimized.9.png -flip.png -icon48x48.png -ic_popup_sync_1.png -netarrow_allconn.png -netarrow_someconn.png -netarrow_unconn.png -next_hint.png -origin.png -prev_hint.png -refresh.png -relaygame.png -rightarrow.png -shuffle.png -sologame.png -stat_notify_chat.png -stat_notify_sync.png -undo.png -values.png -zoom.png -bluetooth_active.png -bluetooth_disabled.png -in_arrow_active.png -in_arrow.png -out_arrow_active.png -out_arrow.png -notify.png diff --git a/xwords4/android/XWords4-dbg/res/layout-small/.gitignore b/xwords4/android/XWords4-dbg/res/layout-small/.gitignore deleted file mode 100644 index 060ef29f7..000000000 --- a/xwords4/android/XWords4-dbg/res/layout-small/.gitignore +++ /dev/null @@ -1 +0,0 @@ -board.xml diff --git a/xwords4/android/XWords4-dbg/res/layout/.gitignore b/xwords4/android/XWords4-dbg/res/layout/.gitignore deleted file mode 100644 index 92d5ca39b..000000000 --- a/xwords4/android/XWords4-dbg/res/layout/.gitignore +++ /dev/null @@ -1,54 +0,0 @@ -about_dlg.xml -board.xml -btinviter_item.xml.~1~ -chat_history_local.xml -chat_history_remote.xml -chat.xml -color_display.xml -color_edit.xml -dflt_name.xml -dict_browser.xml -dict_browse.xml -divider_view.xml -force_remote.xml -game_config.xml -game_list_item.xml -game_list.xml -import_dict.xml -list_item.xml -lookup.xml -new_game.xml -passwd_view.xml -player_edit.xml -player_list_elem.xml -prefs_w_buttons.xml -relay_game_config.xml -rename_game.xml -select_dialog_item.xml -confirm_sms.xml -game_list_group.xml -studylist.xml -loc_list_item.xml -loc_main.xml -loc_item_edit.xml -import_dict_item.xml -list_group.xml -conn_types_display.xml -expander_header.xml -msg_label_and_edit.xml -not_again_view.xml -relayinviter.xml -remote_dict_details.xml -toolbar.xml -chat_row.xml -fragact.xml -main.xml -dualcontainer.xml -dict_browser_list.xml -inviter_item.xml -inviter.xml -bt_buttons.xml -relay_buttons.xml -sms_buttons.xml -inviter_item_frame.xml -two_strs_item.xml diff --git a/xwords4/android/XWords4-dbg/res/menu-small/.gitignore b/xwords4/android/XWords4-dbg/res/menu-small/.gitignore deleted file mode 100644 index 275932284..000000000 --- a/xwords4/android/XWords4-dbg/res/menu-small/.gitignore +++ /dev/null @@ -1 +0,0 @@ -board_menu.xml diff --git a/xwords4/android/XWords4-dbg/res/menu/.gitignore b/xwords4/android/XWords4-dbg/res/menu/.gitignore deleted file mode 100644 index 07ed661b4..000000000 --- a/xwords4/android/XWords4-dbg/res/menu/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -board_menu.xml -chat_menu.xml -dicts_item_menu.xml -games_list_menu.xml -dicts_menu.xml -studylist.xml -loc_menu.xml -empty.xml -loc_item_menu.xml -games_list_group_menu.xml -games_list_game_menu.xml diff --git a/xwords4/android/XWords4-dbg/res/raw/.gitignore b/xwords4/android/XWords4-dbg/res/raw/.gitignore deleted file mode 100644 index 5c56af15d..000000000 --- a/xwords4/android/XWords4-dbg/res/raw/.gitignore +++ /dev/null @@ -1 +0,0 @@ -changes diff --git a/xwords4/android/XWords4-dbg/res/values-large/.gitignore b/xwords4/android/XWords4-dbg/res/values-large/.gitignore deleted file mode 100644 index 684760d58..000000000 --- a/xwords4/android/XWords4-dbg/res/values-large/.gitignore +++ /dev/null @@ -1 +0,0 @@ -styles.xml diff --git a/xwords4/android/XWords4-dbg/res/values/.gitignore b/xwords4/android/XWords4-dbg/res/values/.gitignore deleted file mode 100644 index c3f91e07d..000000000 --- a/xwords4/android/XWords4-dbg/res/values/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -strings.xml -styles.xml -common_rsrc.xml -gen_strings.xml -app_name.xml -dimensions.xml diff --git a/xwords4/android/XWords4-dbg/res/values/config.xml b/xwords4/android/XWords4-dbg/res/values/config.xml deleted file mode 100644 index 0388f10a8..000000000 --- a/xwords4/android/XWords4-dbg/res/values/config.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - false - diff --git a/xwords4/android/XWords4-dbg/res/xml/.gitignore b/xwords4/android/XWords4-dbg/res/xml/.gitignore deleted file mode 100644 index df69711b0..000000000 --- a/xwords4/android/XWords4-dbg/res/xml/.gitignore +++ /dev/null @@ -1 +0,0 @@ -xwprefs.xml diff --git a/xwords4/android/XWords4/.gitignore b/xwords4/android/XWords4/.gitignore deleted file mode 100644 index 37af10ec2..000000000 --- a/xwords4/android/XWords4/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -*.apk -.DS_Store -.gradle -/.idea/libraries -/.idea/workspace.xml -/build -/captures -/libs-debug -/libs-release -/local.properties -/obj-debug -/obj-release -ant_out.txt -bin -gen -obj -proguard.cfg -res/drawable*/*gen.png -.idea/ -*.iml diff --git a/xwords4/android/XWords4/app/.gitignore b/xwords4/android/XWords4/app/.gitignore deleted file mode 100644 index 796b96d1c..000000000 --- a/xwords4/android/XWords4/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/xwords4/android/XWords4/app/build.gradle b/xwords4/android/XWords4/app/build.gradle deleted file mode 100644 index 9018375db..000000000 --- a/xwords4/android/XWords4/app/build.gradle +++ /dev/null @@ -1,237 +0,0 @@ -def VARIANT_NAME = 'xw4' -def INITIAL_CLIENT_VERS = 6 -def CHAT_ENABLED = true -def LIBS_DEBUG = 'libs-debug' -def LIBS_RELEASE = 'libs-release' -def VERSION_CODE_BASE = 1 -def VARIANTS = [ "Xw4", "Xw4dbg" ] -def BUILDS = [ "Debug", "Release" ] - -apply plugin: 'com.android.application' - -dependencies { - compile files('../libs/gcm.jar') - compile files('../libs/android-support-v13.jar') -} - -android { - compileSdkVersion 23 - buildToolsVersion "23.0.2" - defaultConfig { - minSdkVersion 7 - targetSdkVersion 23 - } - - // Rename all output artifacts to include version information - // applicationVariants.all { variant -> - // renameArtifact(variant) - // variant.buildConfigField "String", "FIELD_NAME", "\"my String\"" - // } - - flavorDimensions "variant"//, "abi" - productFlavors { - xw4 { - dimension "variant" - applicationId "org.eehouse.android.xw4" - } - xw4dbg { - dimension "variant" - applicationId "org.eehouse.android.xw4dbg" - } - - // WARNING: "all" breaks things. Seems to be a keyword. Need - // to figure out how to express include-all-abis - // all { - // dimension "abi" - // versionCode 0 + VERSION_CODE_BASE - // } - // armeabi { - // dimension "abi" - // versionCode 1 + VERSION_CODE_BASE - // } - // x86 { - // dimension "abi" - // versionCode 2 + VERSION_CODE_BASE - // } - // armeabiv7a { - // dimension "abi" - // versionCode 3 + VERSION_CODE_BASE - // } - - } - - signingConfigs { - release { - storeFile file(System.getenv("HOME") + "/.keystore") - keyAlias "mykey" - - // These two lines make gradle believe that the signingConfigs - // section is complete. Without them, tasks like installRelease - // will not be available! - storePassword "notReal" - keyPassword "notReal" - } - } - - buildTypes { - release { - signingConfig signingConfigs.release - debuggable false - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - debug { - debuggable true - // This doesn't work on marshmallow: duplicate permission error - // applicationIdSuffix ".debug" - } - } - - sourceSets { - // Use symlinks instead of setting non-conventional - // directories here. AS doesn't respect what's set here: it'll - // compile, but post-install app launch and source-level - // debugging don't work. - release { - jniLibs.srcDir "../$LIBS_RELEASE" - } - debug { - jniLibs.srcDir "../$LIBS_DEBUG" - } - } - - lintOptions { - abortOnError false - } - - def gitrev = "git describe --tags".execute().text.trim() - applicationVariants.all { variant -> - variant.outputs.each { output -> - output.outputFile = - new File(output.outputFile.parent, - output.outputFile.name.replace(".apk", "-${gitrev}.apk")) - } - } -} - -// Prevent release builds. They haven't been tested, and now that -// f-droid has been releasing them they're KNOWN not to work. -android.applicationVariants.all { variant -> - if ( variant.name.endsWith("Release") ) { - String NAME = "check" + variant.name.capitalize() + "Manifest" - task "$NAME"(overwrite: true) << { - throw new RuntimeException('<<<<< Release builds should not be built ' - + 'using gradle! Please use ant for now. >>>>>'); - } - } -} - -dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) -} - -task genVers(type: Exec) { - workingDir '../' - commandLine '../scripts/genvers.sh', '--variant', VARIANT_NAME, - '--client-vers', INITIAL_CLIENT_VERS, - '--vers-outfile', "assets/gitvers.txt" -} - -task mkImages(type: Exec) { - workingDir '../' - commandLine '../scripts/mkimages.sh' -} - -task copyStrings(type: Exec) { - workingDir '../' - commandLine '../scripts/copy-strings.py' -} - -task ndkSetup(type: Exec) { - workingDir '../' - commandLine "../scripts/ndksetup.sh" -} - -task myPreBuild(dependsOn: ['genVers', 'ndkSetup', 'mkImages', 'copyStrings', 'mkXml']) { -} -preBuild.dependsOn myPreBuild - -task ndkBuildDebug(type: Exec) { - workingDir '../' - commandLine '../scripts/ndkbuild.sh', '-j3', "CHAT_ENABLED=$CHAT_ENABLED", - 'BUILD_TARGET=debug', "INITIAL_CLIENT_VERS=$INITIAL_CLIENT_VERS", - "VARIANT=$VARIANT_NAME", "NDK_LIBS_OUT=$LIBS_DEBUG", 'NDK_OUT=./obj-debug' -} - -task ndkBuildRelease(type: Exec) { - workingDir '../' - commandLine '../scripts/ndkbuild.sh', '-j3', "CHAT_ENABLED=$CHAT_ENABLED", - 'BUILD_TARGET=release', "INITIAL_CLIENT_VERS=$INITIAL_CLIENT_VERS", - "VARIANT=$VARIANT_NAME", "NDK_LIBS_OUT=$LIBS_RELEASE", 'NDK_OUT=./obj-release' -} - -task mkXml(type: Exec) { - workingDir '../' - commandLine '../scripts/mk_xml.py', '-o', - "src/org/eehouse/android/$VARIANT_NAME/loc/LocIDsData.java", - '-t', "debug", '-v', "$VARIANT_NAME" -} - -afterEvaluate { - VARIANTS.each { VARIANT -> - String compileTask = "compile${VARIANT}ReleaseNdk" - tasks.getByName(compileTask).dependsOn ndkBuildRelease - compileTask = "compile${VARIANT}DebugNdk" - tasks.getByName(compileTask).dependsOn ndkBuildDebug - } -} - -task askForPassword << { - def password = System.getenv("ANDROID_KEY_PASS") - if (null == password || 0 == password.length()) { - if ( null != System.console() ) { - password = new String(System.console() - .readPassword("ANDROID_KEY_PASS not set; " - + "Keystore password: ")) - } else { - password = null - println( "ANDROID_KEY_PASS not set and no console; " ) - println( "sign it yerself later. (Or you might try" ) - println( " running gradlew with the --no-daemon flag)" ) - } - } - - if ( null != password ) { - android.signingConfigs.release.storePassword = password - android.signingConfigs.release.keyPassword = password - } -} - -tasks.whenTaskAdded { theTask -> - if (theTask.name.equals("packageRelease")) { - theTask.dependsOn "askForPassword" - } -} - -// def getVersionName() { -// try { -// def stdout = new ByteArrayOutputStream() -// exec { -// commandLine 'git', 'describe', '--dirty' -// standardOutput = stdout -// } -// return stdout.toString().trim() -// } -// catch (ignored) { -// return null; -// } -// } - -// def renameArtifact(variant) { -// variant.outputs.each { output -> -// def name = String.format( "XWords4-%s-%s.apk", variant.name, -// getVersionName() ) -// output.outputFile = new File( (String)output.outputFile.parent, -// (String)name ) -// } -// } diff --git a/xwords4/android/XWords4/assets/.gitignore b/xwords4/android/XWords4/assets/.gitignore deleted file mode 100644 index 67ac80fcf..000000000 --- a/xwords4/android/XWords4/assets/.gitignore +++ /dev/null @@ -1 +0,0 @@ -gitvers.txt diff --git a/xwords4/android/XWords4/build.xml b/xwords4/android/XWords4/build.xml deleted file mode 100644 index f1ce52211..000000000 --- a/xwords4/android/XWords4/build.xml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/xwords4/android/XWords4/build_unchecked.xml b/xwords4/android/XWords4/build_unchecked.xml deleted file mode 100644 index 071bf90b8..000000000 --- a/xwords4/android/XWords4/build_unchecked.xml +++ /dev/null @@ -1,516 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Converting compiled files and external libraries into ${intermediate.dex.file}... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Running zip align on final apk... - - - - - - - - - - - - - - Installing ${out.debug.package} onto default emulator or device... - - - - - - - - - - - - - - Creating output directories if needed... - - - - - - - - - - Generating R.java / Manifest.java from the resources... - - - - - - - - - - - - - - - - - - Compiling aidl files into Java classes... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Packaging resources - - - - - - - - - - - - - - - - - - - - - - - Debug Package: ${out.debug.package} - - - - - - - - - - - - - No key.store and key.alias properties found in build.properties. - Please sign ${out.unsigned.package} manually - and run zipalign from the Android SDK tools. - - - - - - - - - Signing final apk... - - - - - Release Package: ${out.release.package} - - - - - - - - - - - - - - Unable to run 'ant uninstall', manifest.package property is not defined. - - - - - - Uninstalling ${manifest.package} from the default emulator or device... - - - - - - - - - - - - - - - - - Instrumenting classes from ${out.absolute.dir}/classes... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Android Ant Build. Available targets: - help: Displays this help. - clean: Removes output files created by other targets. - compile: Compiles project's .java files into .class files. - debug: Builds the application and signs it with a debug key. - release: Builds the application. The generated apk file must be - signed before it is published. - install: Installs/reinstalls the debug package onto a running - emulator or device. - If the application was previously installed, the - signatures must match. - uninstall: Uninstalls the application from a running emulator or - device. - - - diff --git a/xwords4/android/XWords4/libs/.gitignore b/xwords4/android/XWords4/libs/.gitignore deleted file mode 100644 index e3f56da7c..000000000 --- a/xwords4/android/XWords4/libs/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/armeabi -/x86 diff --git a/xwords4/android/XWords4/project.properties b/xwords4/android/XWords4/project.properties deleted file mode 100644 index 28caf312e..000000000 --- a/xwords4/android/XWords4/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-23 diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/.gitignore b/xwords4/android/XWords4/src/org/eehouse/android/xw4/.gitignore deleted file mode 100644 index 7573cf142..000000000 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/GitVersion.java -BuildConstants.java -GCMConsts.java -nohup.out diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/.gitignore b/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/.gitignore deleted file mode 100644 index 3b7051b88..000000000 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/loc/.gitignore +++ /dev/null @@ -1 +0,0 @@ -LocIDsData.java diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4dbg/.gitignore b/xwords4/android/XWords4/src/org/eehouse/android/xw4dbg/.gitignore deleted file mode 100644 index c33c29aa8..000000000 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4dbg/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -BuildConstants.java -Utils.java diff --git a/xwords4/android/XWords4/src/xw4/assets/.gitignore b/xwords4/android/XWords4/src/xw4/assets/.gitignore deleted file mode 100644 index 67ac80fcf..000000000 --- a/xwords4/android/XWords4/src/xw4/assets/.gitignore +++ /dev/null @@ -1 +0,0 @@ -gitvers.txt diff --git a/xwords4/android/XWords4/src/xw4dbg/assets/.gitignore b/xwords4/android/XWords4/src/xw4dbg/assets/.gitignore deleted file mode 100644 index 67ac80fcf..000000000 --- a/xwords4/android/XWords4/src/xw4dbg/assets/.gitignore +++ /dev/null @@ -1 +0,0 @@ -gitvers.txt diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle index 2698ad079..70d47d72e 100644 --- a/xwords4/android/app/build.gradle +++ b/xwords4/android/app/build.gradle @@ -10,11 +10,6 @@ def BUILDS = [ "Debug", "Release" ] apply plugin: 'com.android.application' -dependencies { - compile files('../libs/gcm.jar') - compile files('../libs/android-support-v13.jar') -} - android { buildToolsVersion '23.0.2' defaultConfig { @@ -145,7 +140,15 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + // Look into replacing this with a fetch too PENDING + compile files('../libs/gcm.jar') + + // Should probably choose a version rather than risk having it + // upgraded on me. PENDING + compile 'com.android.support:support-v4:+' + // compile files('../libs/android-support-v13.jar') + + xw4dbgCompile 'com.crittercism:crittercism-android-agent:+' } task mkImages(type: Exec) { diff --git a/xwords4/android/app/src/main/AndroidManifest.xml b/xwords4/android/app/src/main/AndroidManifest.xml index 8639077ce..1dca39900 100644 --- a/xwords4/android/app/src/main/AndroidManifest.xml +++ b/xwords4/android/app/src/main/AndroidManifest.xml @@ -8,7 +8,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/xwords4/android/XWords4-dbg/img_src/.gitignore b/xwords4/android/XWords4-dbg/img_src/.gitignore deleted file mode 100644 index 177ab2ad1..000000000 --- a/xwords4/android/XWords4-dbg/img_src/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/clear_all.svg -/search.svg -/select_all.svg -back.svg -content_copy.svg -content_discard.svg -content_new.svg -dict.svg -down.svg -download.svg -email.svg -new_group.svg -prefs.svg -relabel.svg -reset.svg -save.svg -send.svg -up.svg -clear_all.svg -search.svg -select_all.svg -content_new_net.svg -content_new_solo.svg -multigame.svg -sologame.svg diff --git a/xwords4/android/XWords4-dbg/jni/.gitignore b/xwords4/android/XWords4-dbg/jni/.gitignore deleted file mode 100644 index 1c7bf1313..000000000 --- a/xwords4/android/XWords4-dbg/jni/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -anddict.c -anddict.h -andglobals.h -Android.mk -andutils.c -andutils.h -drawwrapper.c -drawwrapper.h -jniutlswrapper.c -jniutlswrapper.h -LocalizedStrIncludes.h -utils.c -utilwrapper.c -utilwrapper.h -xportwrapper.c -xportwrapper.h -xptypes.h -xwjni.c -paths.h -Application.mk diff --git a/xwords4/android/XWords4-dbg/libs/.gitignore b/xwords4/android/XWords4-dbg/libs/.gitignore deleted file mode 100644 index 655bd701c..000000000 --- a/xwords4/android/XWords4-dbg/libs/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -gcm.jar -armeabi -x86 -android-support-v13.jar diff --git a/xwords4/android/XWords4-dbg/libs/crittercism_v5_5_5_sdkonly.jar b/xwords4/android/XWords4-dbg/libs/crittercism_v5_5_5_sdkonly.jar deleted file mode 100644 index d306fa0d136f328ccda35a34ffa06228b6c87da6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524628 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 z 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 diff --git a/xwords4/android/XWords4-dbg/proguard-project.txt b/xwords4/android/XWords4-dbg/proguard-project.txt deleted file mode 100644 index f2fe1559a..000000000 --- a/xwords4/android/XWords4-dbg/proguard-project.txt +++ /dev/null @@ -1,20 +0,0 @@ -# To enable ProGuard in your project, edit project.properties -# to define the proguard.config property as described in that file. -# -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in ${sdk.dir}/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the ProGuard -# include property in project.properties. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/xwords4/android/XWords4-dbg/project.properties b/xwords4/android/XWords4-dbg/project.properties deleted file mode 100644 index 19c32e635..000000000 --- a/xwords4/android/XWords4-dbg/project.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "ant.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-23 diff --git a/xwords4/android/XWords4-dbg/res_src/values-ba_CK/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-ba_CK/.gitignore deleted file mode 100644 index aa5ea40dd..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-ba_CK/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/strings.xml -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-ca/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-ca/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-ca/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-ca_PS/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-ca_PS/.gitignore deleted file mode 100644 index aa5ea40dd..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-ca_PS/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/strings.xml -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-cs/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-cs/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-cs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-fr/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-fr/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-fr/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-ja/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-ja/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-ja/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-nl/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-nl/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-nl/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-pt/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-pt/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-pt/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res_src/values-sk/.gitignore b/xwords4/android/XWords4-dbg/res_src/values-sk/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res_src/values-sk/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/.gitignore b/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/.gitignore deleted file mode 100644 index 000c39a92..000000000 --- a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/.gitignore +++ /dev/null @@ -1,148 +0,0 @@ -/DlgID.java -/LookupAlert.java -ABUtils.java -BTInviteActivity.java -BTReceiver.java -BTService.java -BoardActivity.java -BoardCanvas.java -BoardDims.java -BoardView.java -BuildConstants.java -ChatActivity.java -CommsTransport.java -ConnStatusHandler.java -DBHelper.java -DBUtils.java -DbgUtils.java -DictBrowseActivity.java -DictImportActivity.java -DictLangCache.java -DictListPreference.java -DictUtils.java -DictsActivity.java -DispatchNotify.java -DlgDelegate.java -DlgState.java -EditColorPreference.java -ExpiringDelegate.java -ExpiringLinearLayout.java -ExpiringTextView.java -FirstRunDialog.java -GCMConsts.java -GCMIntentService.java -GameConfig.java -GameListAdapter.java -GameListGroup.java -GameListItem.java -GameLock.java -GameNamer.java -GameUtils.java -GamesList.java -GitVersion.java -InviteActivity.java -LookupActivity.java -MountEventReceiver.java -MultiMsgSink.java -MultiService.java -NBSReceiver.java -NFCUtils.java -NetLaunchInfo.java -NetStateCache.java -NetUtils.java -NewGameActivity.java -PollListPreference.java -PrefsActivity.java -ReceiveNBS.java -RefreshNamesTask.java -RelayGameActivity.java -RelayMsgSink.java -RelayReceiver.java -RelayService.java -SMSCheckBoxPreference.java -SMSInviteActivity.java -SMSReceiver.java -SMSService.java -SelectableItem.java -StatusReceiver.java -StudyList.java -ThumbCanvas.java -Toolbar.java -UpdateCheckReceiver.java -Utils.java -XWActivity.java -XWApp.java -XWConstants.java -XWEditTextPreference.java -XWExpandableListActivity.java -XWListActivity.java -XWListAdapter.java -XWListItem.java -XWListPreference.java -XWPrefs.java -XWService.java -XWSumListPreference.java -XWThumbListPreference.java -DelegateBase.java -DlgID.java -GamesListDelegate.java -LookupAlert.java -BoardDelegate.java -ChatDelegate.java -DictBrowseDelegate.java -DictImportDelegate.java -DictsDelegate.java -DrawSelDelegate.java -GameConfigActivity.java -GameConfigDelegate.java -NewGameDelegate.java -RelayGameDelegate.java -StudyListActivity.java -StudyListDelegate.java -BTInviteDelegate.java -InviteDelegate.java -ListDelegateBase.java -PrefsDelegate.java -SMSInviteDelegate.java -DwnldActivity.java -DwnldDelegate.java -GroupStateListener.java -ListGroup.java -ConnViaViewLayout.java -Delegator.java -DevID.java -HeaderWithExpander.java -LangListPreference.java -ListDelegator.java -NagTurnReceiver.java -NotAgainView.java -OnBootReceiver.java -RelayInviteActivity.java -RelayInviteDelegate.java -XWConnAddrPreference.java -XWDevIDPreference.java -XWExpListAdapter.java -RequestCode.java -BoardFrag.java -ChatFrag.java -DictBrowseFrag.java -FragActivity.java -GameConfigFrag.java -GamesListFrag.java -Main.java -nohup.out -StudyListFrag.java -XWFragment.java -ConfirmingCheckBoxPreference.java -RelayCheckBoxPreference.java -MainActivity.java -DictsFrag.java -DualpaneDelegate.java -BoardContainer.java -BiDiSockWrap.java -WiDirService.java -WiDirInviteActivity.java -WiDirInviteDelegate.java -XWPacket.java -TwoStrsItem.java -Perms23.java diff --git a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/jni/.gitignore b/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/jni/.gitignore deleted file mode 100644 index 025de6a24..000000000 --- a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/jni/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -BoardHandler.java -CommonPrefs.java -CommsAddrRec.java -CurGameInfo.java -DictInfo.java -DrawCtx.java -DrawScoreInfo.java -GameSummary.java -JNIThread.java -JNIUtilsImpl.java -JNIUtils.java -LocalPlayer.java -SyncedDraw.java -TransportProcs.java -UtilCtxtImpl.java -UtilCtxt.java -XwJNI.java -BoardDims.java -LastMoveInfo.java diff --git a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/loc/.gitignore b/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/loc/.gitignore deleted file mode 100644 index a06b22eb8..000000000 --- a/xwords4/android/XWords4-dbg/src/org/eehouse/android/xw4dbg/loc/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -/LocItemEditActivity.java -/LocItemEditDelegate.java -LocActivity.java -LocDelegate.java -LocIDs.java -LocIDsData.java -LocListAdapter.java -LocListItem.java -LocSearcher.java -LocUtils.java -XlatingSpinnerAdapter.java -LocItemEditActivity.java -LocItemEditDelegate.java From ea3a8b40346e7b188ebefd2a4c992b62160d09c6 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 19:30:03 -0800 Subject: [PATCH 24/30] include relay hostname in debug conn status --- .../main/java/org/eehouse/android/xw4/ConnStatusHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java index 79404422c..0be93dd72 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ConnStatusHandler.java @@ -566,7 +566,9 @@ public class ConnStatusHandler { if ( BuildConfig.DEBUG ) { switch ( typ ) { case COMMS_CONN_RELAY: - result = String.format( "(DevID: %d) ", DevID.getRelayDevIDInt(context) ); + result = String.format( "(DevID: %d; host: %s) ", + DevID.getRelayDevIDInt(context), + XWPrefs.getDefaultRelayHost(context) ); break; case COMMS_CONN_P2P: result = WiDirService.formatNetStateInfo(); From 995da3a0b2f93e56a147002a6be1de0280cdddba Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 19:44:17 -0800 Subject: [PATCH 25/30] remove last from old directories --- xwords4/android/XWords4/app/src/main/AndroidManifest.xml | 1 - xwords4/android/XWords4/app/src/main/assets | 1 - xwords4/android/XWords4/app/src/main/java | 1 - xwords4/android/XWords4/app/src/main/res | 1 - 4 files changed, 4 deletions(-) delete mode 120000 xwords4/android/XWords4/app/src/main/AndroidManifest.xml delete mode 120000 xwords4/android/XWords4/app/src/main/assets delete mode 120000 xwords4/android/XWords4/app/src/main/java delete mode 120000 xwords4/android/XWords4/app/src/main/res diff --git a/xwords4/android/XWords4/app/src/main/AndroidManifest.xml b/xwords4/android/XWords4/app/src/main/AndroidManifest.xml deleted file mode 120000 index 4db074ab1..000000000 --- a/xwords4/android/XWords4/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ -../../../AndroidManifest.xml \ No newline at end of file diff --git a/xwords4/android/XWords4/app/src/main/assets b/xwords4/android/XWords4/app/src/main/assets deleted file mode 120000 index f86487ffc..000000000 --- a/xwords4/android/XWords4/app/src/main/assets +++ /dev/null @@ -1 +0,0 @@ -../../../assets/ \ No newline at end of file diff --git a/xwords4/android/XWords4/app/src/main/java b/xwords4/android/XWords4/app/src/main/java deleted file mode 120000 index a1d005e30..000000000 --- a/xwords4/android/XWords4/app/src/main/java +++ /dev/null @@ -1 +0,0 @@ -../../../src/ \ No newline at end of file diff --git a/xwords4/android/XWords4/app/src/main/res b/xwords4/android/XWords4/app/src/main/res deleted file mode 120000 index fc8850136..000000000 --- a/xwords4/android/XWords4/app/src/main/res +++ /dev/null @@ -1 +0,0 @@ -../../../res \ No newline at end of file From f5ebee89dae4c32bc0bc1a7f93f099892a0ca9ba Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 19:56:03 -0800 Subject: [PATCH 26/30] fix duplicate permissions Merging of AndroidManifest.xml files meant the dbg flavor was getting its C2D_MESSAGE permission and the main flavor's, which on recent OS versions meant it couldn't be installed. Use substitution from gradle to fix. --- .projectile | 4 +--- .../android/app/src/main/AndroidManifest.xml | 6 +++--- .../app/src/xw4dbg/AndroidManifest.xml | 6 +++--- xwords4/android/scripts/arelease-clone.sh | 20 ++++--------------- 4 files changed, 11 insertions(+), 25 deletions(-) diff --git a/.projectile b/.projectile index acf1e3e9a..e639096cc 100644 --- a/.projectile +++ b/.projectile @@ -1,6 +1,4 @@ -TAGS --/xwords4/android/XWords4-dbg +-/xwords4/android/app/build -/xwords4/linux/discon_ok2.sh_logs --/xwords4/android/XWords4/res_src/values-pt/strings.xml --/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml -/xwords4/relay/xwrelay.log diff --git a/xwords4/android/app/src/main/AndroidManifest.xml b/xwords4/android/app/src/main/AndroidManifest.xml index 1dca39900..5f67e9bde 100644 --- a/xwords4/android/app/src/main/AndroidManifest.xml +++ b/xwords4/android/app/src/main/AndroidManifest.xml @@ -44,9 +44,9 @@ - - + @@ -235,7 +235,7 @@ - + diff --git a/xwords4/android/app/src/xw4dbg/AndroidManifest.xml b/xwords4/android/app/src/xw4dbg/AndroidManifest.xml index 4f4b88fe9..1a705ea34 100644 --- a/xwords4/android/app/src/xw4dbg/AndroidManifest.xml +++ b/xwords4/android/app/src/xw4dbg/AndroidManifest.xml @@ -44,9 +44,9 @@ - - + @@ -239,7 +239,7 @@ - + diff --git a/xwords4/android/scripts/arelease-clone.sh b/xwords4/android/scripts/arelease-clone.sh index b083ce208..e8c69cd63 100755 --- a/xwords4/android/scripts/arelease-clone.sh +++ b/xwords4/android/scripts/arelease-clone.sh @@ -3,18 +3,13 @@ set -e -u usage () { - echo "usage: $(basename $0) [--tag tagname | --branch branchname] [--variant variant]" + echo "usage: $(basename $0) [--tag tagname | --branch branchname] " echo " # (uses current branch as default)" exit 1 } TAG="" BRANCH="" -VARIANT="XWords4" - -if [ -f ./AndroidManifest.xml ]; then # we're in the right directory - VARIANT=$(basename $(pwd)) -fi while [ 0 -lt $# ] ; do case $1 in @@ -26,10 +21,6 @@ while [ 0 -lt $# ] ; do BRANCH=$2 shift ;; - --variant) - VARIANT=$2 - shift - ;; *) usage ;; @@ -37,8 +28,6 @@ while [ 0 -lt $# ] ; do shift done -echo "VARIANT=$VARIANT" - if [ -n "$TAG" ]; then if ! git tag | grep -w "$TAG"; then echo "tag $TAG not found" @@ -48,7 +37,7 @@ elif [ -z $BRANCH ]; then BRANCH=$(git branch | grep '^*' | sed 's,^.* ,,') fi -echo "building $VARIANT with ${TAG}${BRANCH}" +echo "building with ${TAG}${BRANCH}" BUILDIR=/tmp/$(basename $0)_build_$$ OUT_FILE=$BUILDIR/apks.txt @@ -61,9 +50,8 @@ cd $BUILDIR git clone $SRCDIR BUILD cd BUILD git checkout ${TAG}${BRANCH} -cd ./xwords4/android/${VARIANT} -../scripts/setup_local_props.sh -../scripts/arelease.sh --variant ${VARIANT} --apk-list $OUT_FILE +cd ./xwords4/android/ +./scripts/arelease.sh --apk-list $OUT_FILE mkdir -p /tmp/releases_${VARIANT} cp *.apk /tmp/releases_${VARIANT} From 43e8c3ea6475e4b00d4a1d28775f4227aaf1176f Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 18 Jan 2017 21:27:48 -0800 Subject: [PATCH 27/30] fix release script errors and that running it finds --- xwords4/android/app/build.gradle | 2 +- .../eehouse/android/xw4/ExpiringTextView.java | 2 +- .../app/src/main/res/values/app_name.xml | 2 +- .../app/src/main/res/values/common_rsrc.xml | 4 +- .../app/src/main/res/values/strings.xml | 6 +- xwords4/android/res_src/values-ca/strings.xml | 4 +- xwords4/android/res_src/values-cs/strings.xml | 4 +- xwords4/android/res_src/values-de/strings.xml | 5 +- xwords4/android/res_src/values-fr/strings.xml | 4 +- xwords4/android/res_src/values-ja/strings.xml | 5 +- xwords4/android/res_src/values-nl/strings.xml | 4 +- xwords4/android/res_src/values-pt/strings.xml | 4 +- xwords4/android/res_src/values-sk/strings.xml | 4 +- xwords4/android/scripts/arelease-clone.sh | 8 +- xwords4/android/scripts/arelease.sh | 36 +---- xwords4/android/scripts/common_targets.xml | 133 ------------------ 16 files changed, 43 insertions(+), 184 deletions(-) delete mode 100644 xwords4/android/scripts/common_targets.xml diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle index 70d47d72e..ac94d5383 100644 --- a/xwords4/android/app/build.gradle +++ b/xwords4/android/app/build.gradle @@ -102,7 +102,7 @@ android { release { signingConfig signingConfigs.release debuggable false - minifyEnabled true + minifyEnabled false // PENDING proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { diff --git a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java index 722a4ae62..40d831d44 100644 --- a/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java +++ b/xwords4/android/app/src/main/java/org/eehouse/android/xw4/ExpiringTextView.java @@ -25,7 +25,7 @@ import android.os.Handler; import android.util.AttributeSet; import android.widget.TextView; -class ExpiringTextView extends TextView { +public class ExpiringTextView extends TextView { private ExpiringDelegate m_delegate = null; private Context m_context; diff --git a/xwords4/android/app/src/main/res/values/app_name.xml b/xwords4/android/app/src/main/res/values/app_name.xml index d09ebdb08..1680db8b0 100644 --- a/xwords4/android/app/src/main/res/values/app_name.xml +++ b/xwords4/android/app/src/main/res/values/app_name.xml @@ -1,5 +1,5 @@ - 4.4.115 + 4.4.115 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 bb999fce7..826fb9a8d 100644 --- a/xwords4/android/app/src/main/res/values/common_rsrc.xml +++ b/xwords4/android/app/src/main/res/values/common_rsrc.xml @@ -1,7 +1,9 @@ - + key_color_tiles key_show_arrow diff --git a/xwords4/android/app/src/main/res/values/strings.xml b/xwords4/android/app/src/main/res/values/strings.xml index d33ba3e68..22905342d 100644 --- a/xwords4/android/app/src/main/res/values/strings.xml +++ b/xwords4/android/app/src/main/res/values/strings.xml @@ -1,6 +1,8 @@ - - - + Afegeix una partida Configuració de la partida… Suprimeix diff --git a/xwords4/android/res_src/values-cs/strings.xml b/xwords4/android/res_src/values-cs/strings.xml index 6db7ec342..a443b82a0 100644 --- a/xwords4/android/res_src/values-cs/strings.xml +++ b/xwords4/android/res_src/values-cs/strings.xml @@ -13,7 +13,9 @@ See the License for the specific language governing permissions and limitations under the License. --> - + Přidat hru Konfigurovat Vymazat diff --git a/xwords4/android/res_src/values-de/strings.xml b/xwords4/android/res_src/values-de/strings.xml index 3a9103fd8..cc5d79620 100644 --- a/xwords4/android/res_src/values-de/strings.xml +++ b/xwords4/android/res_src/values-de/strings.xml @@ -1,5 +1,8 @@ -Spiel hinzufügen + + Spiel hinzufügen Gruppe hinzufügen %1$s (%2$s) diff --git a/xwords4/android/res_src/values-fr/strings.xml b/xwords4/android/res_src/values-fr/strings.xml index 9edf0b9c3..64d9e47d1 100644 --- a/xwords4/android/res_src/values-fr/strings.xml +++ b/xwords4/android/res_src/values-fr/strings.xml @@ -1,5 +1,7 @@ - + - + Pridať hru - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Created XWords4-debug-${git-rev}.apk - - - - - From 9c142dd6e7060844ed2a90399744da2ebb00d72e Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jan 2017 08:10:16 -0800 Subject: [PATCH 28/30] add cleanNDK task and separate jnilib dirs Build different jni code (into different obj and libs directories) for the different release/debug and xw4/xw4dbg combinations. This works when only one build is done, but when doing two some later task tries to put both multiple same-named libraries into the .apk and so fails. I still think it's worth adding this to keep from using the wrong binary, but that needs to be fixed. cleanNDK just nukes all the directories. Easier than invoking build-ndk clean... --- xwords4/android/app/build.gradle | 45 ++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/xwords4/android/app/build.gradle b/xwords4/android/app/build.gradle index ac94d5383..7af8a65e8 100644 --- a/xwords4/android/app/build.gradle +++ b/xwords4/android/app/build.gradle @@ -1,8 +1,6 @@ import groovy.swing.SwingBuilder def INITIAL_CLIENT_VERS = 8 -def LIBS_DEBUG = 'libs-debug' -def LIBS_RELEASE = 'libs-release' def VERSION_CODE_BASE = 111 def VERSION_NAME = '4.4.115' def VARIANTS = [ "xw4", "xw4dbg" ] @@ -117,11 +115,21 @@ android { // directories here. AS doesn't respect what's set here: it'll // compile, but post-install app launch and source-level // debugging don't work. - release { - jniLibs.srcDir "../$LIBS_RELEASE" + xw4 { + release { + jniLibs.srcDir "../libs-release-xw4" + } + debug { + jniLibs.srcDir "../libs-debug-xw4" + } } - debug { - jniLibs.srcDir "../$LIBS_DEBUG" + xw4dbg { + release { + jniLibs.srcDir "../libs-release-xw4dbg" + } + debug { + jniLibs.srcDir "../libs-debug-xw4dbg" + } } } @@ -181,18 +189,18 @@ afterEvaluate { VARIANTS.each { VARIANT -> String variantCaps = VARIANT.capitalize() BUILDS.each { BUILD -> - String lib = BUILD == 'Debug' ? LIBS_DEBUG : LIBS_RELEASE String nameLC = BUILD.toLowerCase() - String name = "ndkBuild${variantCaps}${BUILD}" - task "$name"(type: Exec) { + String lib = "libs-${nameLC}-${VARIANT}" + String ndkBuildTask = "ndkBuild${variantCaps}${BUILD}" + task "$ndkBuildTask"(type: Exec) { workingDir '../' commandLine './scripts/ndkbuild.sh', '-j3', "BUILD_TARGET=${nameLC}", "INITIAL_CLIENT_VERS=$INITIAL_CLIENT_VERS", - "VARIANT=$VARIANT", "NDK_LIBS_OUT=${lib}", "NDK_OUT=./obj-${nameLC}" + "VARIANT=$VARIANT", "NDK_LIBS_OUT=${lib}", "NDK_OUT=./obj-${nameLC}-${VARIANT}" } String compileTask = "compile${variantCaps}${BUILD}Ndk" - tasks.getByName(compileTask).dependsOn name + tasks.getByName(compileTask).dependsOn ndkBuildTask } } @@ -206,6 +214,21 @@ afterEvaluate { preBuild.dependsOn copyStringsTask } +clean.dependsOn 'cleanNDK' +task cleanNDK(type: Exec) { + ArrayList lst = new ArrayList(["rm", "-rf"]); + BUILDS.each { BUILD -> + String buildLC = BUILD.toLowerCase() + VARIANTS.each { VARIANT -> + lst.add("libs-${buildLC}-${VARIANT}") + lst.add("obj-${buildLC}-${VARIANT}") + } + } + + workingDir '../' + commandLine lst +} + gradle.taskGraph.whenReady { taskGraph -> if ( taskGraph.hasTask(':app:validateReleaseSigning') ) { def pass From eb13ea429181fd0bb1762162eb0d9af2a8e17ade Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jan 2017 08:36:27 -0800 Subject: [PATCH 29/30] add the upside-down icons for -dbg flavor --- .../app/src/xw4dbg/res/drawable/icon48x48.png | Bin 0 -> 3314 bytes .../app/src/xw4dbg/res/drawable/notify.png | Bin 0 -> 3406 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 xwords4/android/app/src/xw4dbg/res/drawable/icon48x48.png create mode 100644 xwords4/android/app/src/xw4dbg/res/drawable/notify.png diff --git a/xwords4/android/app/src/xw4dbg/res/drawable/icon48x48.png b/xwords4/android/app/src/xw4dbg/res/drawable/icon48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..19307334a0576ed194c7989b926196bcfed49f6c GIT binary patch literal 3314 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 literal 0 HcmV?d00001 diff --git a/xwords4/android/app/src/xw4dbg/res/drawable/notify.png b/xwords4/android/app/src/xw4dbg/res/drawable/notify.png new file mode 100644 index 0000000000000000000000000000000000000000..157066d03ffeca69da47d62d101a221e2f2e8411 GIT binary patch literal 3406 zcmV-U4YBfxP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x010qNS#tmYF*X1IF*X63=RzO=000McNliru;Q3> zwD<3O`^QSMWUp++7M;o2dH&elbIy03_kGTL-gC|;s><(kaR5X_fCz9YV1WNGRtD$< z+J4uDV}^G|zt6UgTvu7``-bBePY?yrPnm~+V;yPkZO?AX=XBs~`WW>9^DC=;H`HHS zwW4}X0M~U<1!K&oN&p~MUABDd(>?!vcyHplvnBwjFJScii^`~|a_IP2h|acD)q0>Z zUis7TM@{t{%0p>CB+jb+7y$%u{D$7{1UIhz2j(rY^7@{CS5*)ZQ~|G8ZzhWo2juK~ z9VcL{kWDGA2h#+XmQl!M+56jGCJTGe)4;nd1lrFUQ4ItDd^%j-^lSYL+rruG%7y%jI!ONU#`%&VG$_PX3{0ZUwQrw0zk73|&JFPg=(!CBmjLLL#1_y}?qu z7-F*p&nsnNq5VjbWLJobmO-%Gpq@_Z#~(0vB3vFQGyXG;S456wQ|?nh>J$%%Kvi`G zZ6jMXKbS=&kK>fqz2h@{@^PFmu6l&R`P*q5d=JM?e!d8Jp3=N8%isLP4`lDqqnh)E zCdGYK<+3%An{A}}W}naDOeI|D(AAvH1CO8L0c#CLgmi8I1sq#?@Wp|7r22iVTDeXJ zZJ5@EchuU+p0bY6)*R>jipyD3|3@7E=w(`ZKftjQ=aZp!VHhV8#oE&c2}OxUs)&a5 zyi+73QbbY8r(bD}5fZ&AV!?&f*3BlCU9+;>UxO=2WI|i(2(5>b+;#n30|0Yl%jJ{! zdpdEt7*mv)bqpsPpcDnaFNnpRK!2iTEr^vf!uk!}$A-A{qIv*Af!OYOv(`Ra(Cmpi zK0|USjTxE4Rckj?6$z}kCg=}M?$3Z2!Auikifv9IFlPPfK#bDg<*|P4jiO{Jcxjei z_$93P#_KqKq2=Q~RxI8~xI9EUKXA>g@&#{3LKh(7VT_K~wbo#L7VAt86C>Va4+x_c znHt7II+ewjuVKk$SJFAuu zk2#e~7N`_X>a&;=O%FvcoJwFCgBJtVC-ikCxv*wAfsi4dYPxOP{$~~7(wb|<_3~Js zp}Rf7+~}1oUc8u|}u3vu#0G-J_&Buq1aG?1EE}r!Vgag$e z-gq=M)?gjy%+hfz#+uR+l5q*?lrUB)xOs+q1Jp13oMgP-T?6TsTSHNoosGZJpfB1o zFZPEF4D^%lKaZ=gx>1t3cI{3!5Q@4qw!N>G5VOJyPzvMyS~EQfIo4nu!vqJM953~> z5Ce($2w}O9x(jRR9d4>0&h`+AhG_14o8jSMuBiJWNA|~Ay5KrO<$gK_cS|DON@c8! z*7z<^m|IzYzv7PfYiu#(P79;atK=L&^t3P*I*tx<<>l7_(4G8W&ALe($H9~ju>0^! zoF85;W?&K5Z@5LEKu7XJ&ALg-LP63TqpPQ#xzYMfj`bJ&MR9xv$7hRcK?(T%mSCBK zKj@5lpyV9TGeYr*AM;qX>}r7={pluL&7um?SwZ%?mH3=RZdEb&1Cye{Sgb@ z?Ss@-Eg=}P93MV(TdEKrZL5G#7R|B!;4=!4%y#s55AUPkWdOlbC0tQPTmMc*hSSWi z+8~IMD`Z)>dgJD+m)$EvLrEN;IYGc@*!6Zhf4t%A+;rpT<&wp9`29f;Zwe3KO$iZ? z&gL|0mTm-~FLiKp-W^7ycwpptE|FM>mj1U%XVM%`HB==spNyKu1NCqmg9hUqY2VG< z$}0)`XQS$p$|P>vu>2k>WFh%N2I~lcpylY{UaF*?KfnDeGMw${Z)kr})A=~o*b)R( zQJvZY`GQN`!YG$6tC3{BLlc>{TV2gh@|-c2(Ck5460g#g+_Nj=4uYKc-}5}GYkhR( z-`b@Lb0e#Fi@^5Ar&SDWT=8ug8FXNlnm3KK2pp)PpVrHDdVHwpJ~C%OgM|wF&hzyloRKJ zm9I8+XgVJ!=tSrq`G|K9{FL=q+{YzHucs@wg@zCMSo4`XS-NByT|*yfbKh3-I)ZT` zllIUKfahsTS-IJ>@RIp|8Vk)sOYE%1MW!x+phKu^1#Vs`b-$o^qcLHs^jPuKr7}=Q zdEkP9Y-U?*ciYc(>BTo)d&8;+>%aS-ukT8>)$r9v|5ge*LgVpQ79_H*&DNTt2Tmpc zbRXW6{JxW#|9W^S@NPAk5ibk_d)@;jUOF zpTH?kv1Q+*Z~Vzs|0Y+?eSmfIDhDE!o;>-sa%3t=w|cy@Em_)4Hpv z@3obgLjU+?XDk66E0fdd(>x{;4e`?E|KVHrJdUR>j?Zx%pMx>>9AQS+nc@k>fBe@Y ziU%HfcClc3&o1R17&7RtBIs_^rAzpiaCx88wACu1)PWt!ExzltYq7-rk_HIq^wY$G7KEI)< zZwqf8c$l(an9nWxx(vosh?&@K8U!k%VP1WH2j9Hwhh#Ik(v?Ju%lbLM3Bd06kFm7w z%dB3tmg6G_Hn$GF!;${i+1d0o%NO3r+|bnwj|`5I@Xjouib#l8p4-ktn|_R2aG9#; zIev_Vc+W7sAIEs$?!OZy&*AvX^ZQaqsEn4g^Vm;xB$MEpB@ap_5ybThV@qOb0y?Vs zH(%Ptx9|B8nRJfRmvfVjr^>e1I=TIZhp3r-9?ku4(Kh(*O4rL`jSn}_&07b)uQjoG z)YsiB{r!pJBrZ7zw3r6G@~iDUc=zKaG(Xkgy|aQCrTf?b^CH)9%NOpDWUf;W$A6>4 z`QjCps!KRjPGjOZKIz@YhAaM(1?R29)jShZh4FhE`%#BE5BUJvEg@VPkcDgmE03k&&3;y^$MYgu($UKHNLD|RI{AcWFJcQR05fF zfhYcXD}{nLtpS88YHl>M4caAtmT(OaCb9Uo>mMtkukG@Z`avsCtMProM1hJoPYQO_@J- z*OFx?UagSd_qSC({g)v=i_@% literal 0 HcmV?d00001 From 2053b234fa713d77ce6eeb24f715b23842adb244 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 19 Jan 2017 19:05:10 -0800 Subject: [PATCH 30/30] print less during builds --- xwords4/android/scripts/mkimages.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/scripts/mkimages.sh b/xwords4/android/scripts/mkimages.sh index 27fc906b9..96caea8ee 100755 --- a/xwords4/android/scripts/mkimages.sh +++ b/xwords4/android/scripts/mkimages.sh @@ -37,7 +37,7 @@ for SVG in img_src/*.svg; do OUT=app/src/main/res/$DIR/${SVG/.svg/__gen.png} mkdir -p $(dirname $OUT) if [ -z "$CLEAN" ]; then - make -f $(dirname $0)/images.mk $OUT + make -f $(dirname $0)/images.mk $OUT >/dev/null 2>&1 else rm -f $OUT fi