app/app.iml | ●●●●● patch | view | raw | blame | history | |
app/build.gradle | ●●●●● patch | view | raw | blame | history | |
app/src/main/AndroidManifest.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/net/jacekk/bridge/android/AboutActivity.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/java/net/jacekk/bridge/android/MainActivity.java | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/layout/about.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/layout/main.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/menu/main.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/values-pl/strings.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/values-w820dp/dimens.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/values/dimens.xml | ●●●●● patch | view | raw | blame | history | |
app/src/main/res/values/strings.xml | ●●●●● patch | view | raw | blame | history |
app/app.iml
@@ -86,17 +86,6 @@ <orderEntry type="library" exported="" name="appcompat-v7-21.0.3" level="project" /> <orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" /> <orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" /> <orderEntry type="module-library" scope="TEST"> <library name="JUnit4"> <CLASSES> <root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.11.jar!/" /> <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" /> <root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-library-1.3.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES /> </library> </orderEntry> </component> </module> app/build.gradle
@@ -6,14 +6,14 @@ defaultConfig { applicationId "net.jacekk.bridge" minSdkVersion 14 minSdkVersion 11 targetSdkVersion 21 versionCode 1 versionName "1.0" versionCode 2 versionName "1.1" } buildTypes { release { minifyEnabled false minifyEnabled true } } } app/src/main/AndroidManifest.xml
@@ -1,12 +1,30 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.jacekk.bridge"> <application android:allowBackup="true" android:label="@string/app_name" android:icon="@drawable/icon" android:theme="@style/AppTheme"> <activity android:name="net.jacekk.bridge.android.MainActivity" android:label="@string/app_name"> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.jacekk.bridge"> <application android:allowBackup="true" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/AppTheme" android:supportsRtl="true"> <activity android:name=".android.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".android.AboutActivity" android:label="@string/about_title" android:parentActivityName=".android.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="net.jacekk.bridge.android.MainActivity" /> </activity> </application> </manifest> app/src/main/java/net/jacekk/bridge/android/AboutActivity.java
New file @@ -0,0 +1,27 @@ package net.jacekk.bridge.android; import android.app.Activity; import android.content.pm.PackageManager; import android.os.Bundle; import android.widget.TextView; import net.jacekk.bridge.R; public class AboutActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.about); InitializeApp(); } protected void InitializeApp() { final TextView version = (TextView)findViewById(R.id.about_version); try { version.setText(getPackageManager().getPackageInfo(getPackageName(), 0).versionName); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } } app/src/main/java/net/jacekk/bridge/android/MainActivity.java
@@ -1,9 +1,12 @@ package net.jacekk.bridge.android; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuItem; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.SeekBar; @@ -51,6 +54,25 @@ InitializeApp(); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.main_action_about: Intent about = new Intent(getApplicationContext(), AboutActivity.class); startActivity(about); return true; case R.id.main_action_reset: resetInputs(); return true; } return super.onOptionsItemSelected(item); } private void resetInputs() { BidSlider.setProgress(0); MinorSuitsToggle.setChecked(true); @@ -61,7 +83,7 @@ ResultsText.setText(getString(R.string.enter_data)); } private void InitializeApp() { protected void InitializeApp() { bridgeCompute = new BridgeCompute(); BidSlider = (SeekBar) findViewById(R.id.BidSlider); app/src/main/res/layout/about.xml
New file @@ -0,0 +1,82 @@ <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/about_version_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_version" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/about_version" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/about_author_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:text="@string/about_author" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/about_author" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_author_contents" /> <TextView android:id="@+id/about_url_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:text="@string/about_url" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/about_url" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_url_contents" android:autoLink="web" /> <TextView android:id="@+id/about_license_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10sp" android:text="@string/about_license" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/about_license" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_license_contents" android:textSize="16sp" /> <TextView android:id="@+id/about_license_full" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_license_full" android:textSize="16sp" /> </LinearLayout> </ScrollView> app/src/main/res/layout/main.xml
@@ -1,195 +1,202 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="10dp" android:orientation="vertical"> <SeekBar android:id="@+id/BidSlider" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="false" android:max="7" /> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:weightSum="1"> android:orientation="vertical"> <SeekBar android:id="@+id/BidSlider" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="false" android:max="7" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:weightSum="1"> <TextView android:id="@+id/BidText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.25" android:text="0" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> <ToggleButton android:id="@+id/MinorSuitsToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="true" android:text="@string/minor_suits" android:textOff="@string/minor_suits" android:textOn="@string/minor_suits" /> <ToggleButton android:id="@+id/MajorSuitsToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="false" android:text="@string/major_suits" android:textOff="@string/major_suits" android:textOn="@string/major_suits" /> <ToggleButton android:id="@+id/NoTrumpToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="false" android:text="@string/no_trump" android:textOff="@string/no_trump" android:textOn="@string/no_trump" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ToggleButton android:id="@+id/ContractToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" android:text="@string/bid_normal" android:textOff="@string/bid_normal" android:textOn="@string/bid_normal" /> <ToggleButton android:id="@+id/DoubleToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/bid_double" android:textOff="@string/bid_double" android:textOn="@string/bid_double" /> <ToggleButton android:id="@+id/RedoubleToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/bid_redouble" android:textOff="@string/bid_redouble" android:textOn="@string/bid_redouble" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ToggleButton android:id="@+id/NNToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" android:text="@string/non_non" android:textOff="@string/non_non" android:textOn="@string/non_non" /> <ToggleButton android:id="@+id/NVToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/non_vul" android:textOff="@string/non_vul" android:textOn="@string/non_vul" /> <ToggleButton android:id="@+id/VNToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/vul_non" android:textOff="@string/vul_non" android:textOn="@string/vul_non" /> <ToggleButton android:id="@+id/VVToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/vul_vul" android:textOff="@string/vul_vul" android:textOn="@string/vul_vul" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/PCText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="10dp" android:layout_marginRight="10dp" android:labelFor="@+id/PCInput" android:text="@string/pc" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/PCInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="4" android:inputType="number" /> <TextView android:id="@+id/TricksText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="10dp" android:layout_marginStart="20dp" android:labelFor="@+id/TricksInput" android:text="@string/tricks" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/TricksInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="4" android:inputType="number" /> </LinearLayout> <TextView android:id="@+id/BidText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.25" android:text="0" android:textAlignment="gravity" android:textAppearance="?android:attr/textAppearanceLarge" /> <ToggleButton android:id="@+id/MinorSuitsToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="true" android:text="@string/minor_suits" android:textOff="@string/minor_suits" android:textOn="@string/minor_suits" /> <ToggleButton android:id="@+id/MajorSuitsToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="false" android:text="@string/major_suits" android:textOff="@string/major_suits" android:textOn="@string/major_suits" /> <ToggleButton android:id="@+id/NoTrumpToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.25" android:checked="false" android:text="@string/no_trump" android:textOff="@string/no_trump" android:textOn="@string/no_trump" /> android:id="@+id/ResultsText" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:text="@string/enter_data" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ToggleButton android:id="@+id/ContractToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" android:text="@string/bid_normal" android:textOff="@string/bid_normal" android:textOn="@string/bid_normal" /> <ToggleButton android:id="@+id/DoubleToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/bid_double" android:textOff="@string/bid_double" android:textOn="@string/bid_double" /> <ToggleButton android:id="@+id/RedoubleToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/bid_redouble" android:textOff="@string/bid_redouble" android:textOn="@string/bid_redouble" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ToggleButton android:id="@+id/NNToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="true" android:text="@string/before_before" android:textOff="@string/before_before" android:textOn="@string/before_before" /> <ToggleButton android:id="@+id/NVToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/before_after" android:textOff="@string/before_after" android:textOn="@string/before_after" /> <ToggleButton android:id="@+id/VNToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/after_before" android:textOff="@string/after_before" android:textOn="@string/after_before" /> <ToggleButton android:id="@+id/VVToggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:checked="false" android:text="@string/after_after" android:textOff="@string/after_after" android:textOn="@string/after_after" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/PCText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:labelFor="@+id/PCInput" android:text="@string/pc" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/PCInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="4" android:inputType="number" /> <Space android:layout_width="20dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/TricksText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:labelFor="@+id/TricksInput" android:text="@string/tricks" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/TricksInput" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="4" android:inputType="number" /> </LinearLayout> <TextView android:id="@+id/ResultsText" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="10dp" android:text="@string/enter_data" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> </ScrollView> app/src/main/res/menu/main.xml
New file @@ -0,0 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/main_action_reset" android:icon="@android:drawable/ic_menu_revert" android:title="@string/reset" android:showAsAction="ifRoom"/> <item android:id="@+id/main_action_about" android:icon="@android:drawable/ic_menu_info_details" android:title="@string/about" android:showAsAction="ifRoom" /> </menu> app/src/main/res/values-pl/strings.xml
@@ -2,14 +2,51 @@ <resources> <string name="app_name">Obliczenia brydżowe</string> <string name="reset">Wyczyść</string> <string name="about">O programie</string> <string name="about_title">Obliczenia brydżowe - O programie</string> <string name="about_version">Wersja</string> <string name="about_author">Autor</string> <string name="about_author_contents">Jacek Kowalski</string> <string name="about_url">WWW</string> <string name="about_url_contents">https://dev.jacekk.net/brydz</string> <string name="about_license">Licencja</string> <string name="about_license_contents">Trzyklauzulowa licencja BSD</string> <string name="about_license_full">Copyright © 2012-2015 Jacek Kowalski\n Wszystkie prawa zastrzeżone.\n \n Rozpowszechnianie i używanie oprogramowania, czy to w formie kodu źródłowego, czy w formie kodu wykonywalnego, są dozwolone pod warunkiem spełnienia poniższych warunków:\n 1. Rozpowszechniany kod źródłowy musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności.\n 2. Rozpowszechniany kod wykonywalny musi zawierać powyższą notę dotyczącą praw autorskich, niniejszą listę warunków oraz poniższe oświadczenie o wyłączeniu odpowiedzialności w dokumentacji i/lub w innych materiałach dostarczanych wraz z kopią oprogramowania.\n 3. Ani nazwa Jacekk.info, ani nazwa Jacekk.net, ani nazwiska twórców i współpracowników nie mogą być użyte dla ukazania ich aprobaty dla prac pochodnych od tego oprogramowania lub ich promowania bez szczególnego, wyrażonego na piśmie zezwolenia danej osoby lub organizacji.\n \n To oprogramowanie jest dostarczone przez właścicieli praw autorskich "takim, jakie jest". Wszelkie dorozumiane lub bezpośrednio wyrażone gwarancje, nie wyłączając gwarancji przydatności handlowej i przydatności do określonego zastosowania, są wyłączone. W żadnym wypadku posiadacze praw autorskich oraz współtwórcy nie mogą być odpowiedzialni za jakiekolwiek bezpośrednie, pośrednie, przypadkowe, specjalne, uboczne lub wtórne szkody (w tym obowiązek dostarczenia produktu zastępczego lub serwisu, utratę danych lub korzyści, a także przerwę w pracy przedsiębiorstwa) spowodowane w jakikolwiek sposób i niezależnie od przyczyn odpowiedzialności, takich jak: teoretyczna odpowiedzialność kontraktowa lub deliktowa (wynikła zarówno z niedbalstwa, jak i z innych przyczyn), powstałe w jakikolwiek sposób w wyniku używania lub mające związek z używaniem oprogramowania, nawet jeśli o możliwości powstania takich szkód ostrzeżono.</string> <string name="minor_suits">♣ / ♦</string> <string name="major_suits">♥ / ♠</string> <string name="no_trump">NT</string> <string name="before_before">przed/przed</string> <string name="before_after">przed/po</string> <string name="after_before">po/przed</string> <string name="after_after">po/po</string> <string name="non_non">przed/przed</string> <string name="non_vul">przed/po</string> <string name="vul_non">po/przed</string> <string name="vul_vul">po/po</string> <string name="bid_normal">norm.</string> <string name="bid_double">ktr.</string> @@ -22,14 +59,12 @@ <string name="invalid_level">Niepoprawny kontrakt.</string> <string name="invalid_color">Niepoprawny kolor kontraktu.</string> <string name="invalid_contract">Niepoprawna informacja o kontrze.</string> <string name="invalid_vulnerability">Niepoprawna informacja o partii.</string> <string name="invalid_pc">Niepoprawna ilość punktów.</string> <string name="invalid_tricks">Niepoprawna ilość wziętych lew.</string> <string name="invalid_passes">Przy czterech pasach podaj większą liczę punktów.</string> <string name="result_for_us">Zapis dla rozgrywających.</string> <string name="result_for_them">Zapis dla przeciwników.</string> <string name="result_pts_wo_pc">Punktów (bez PC):</string> <string name="result_pts">Punktów (z PC):</string> <string name="result_imps">IMP-ów:</string> app/src/main/res/values-w820dp/dimens.xml
New file @@ -0,0 +1,6 @@ <resources> <!-- Example customization of dimensions originally defined in res/values/dimens.xml (such as screen margins) for screens with more than 820dp of available width. This would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> <dimen name="activity_horizontal_margin">64dp</dimen> </resources> app/src/main/res/values/dimens.xml
New file @@ -0,0 +1,5 @@ <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources> app/src/main/res/values/strings.xml
@@ -2,14 +2,49 @@ <resources> <string name="app_name">Bridge scoring</string> <string name="reset">Reset</string> <string name="about">About</string> <string name="about_title">Bridge scoring - About</string> <string name="about_version">Version</string> <string name="about_author">Author</string> <string name="about_author_contents">Jacek Kowalski</string> <string name="about_url">WWW</string> <string name="about_url_contents">https://dev.jacekk.net/brydz</string> <string name="about_license">License</string> <string name="about_license_contents">BSD 3-clause license</string> <string name="about_license_full">Copyright © 2012-2015 Jacek Kowalski\n All rights reserved.\n \n Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n 3. Neither the name Jacekk.info, nor Jacekk.net, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n \n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</string> <string name="minor_suits">♣ / ♦</string> <string name="major_suits">♥ / ♠</string> <string name="no_trump">NT</string> <string name="before_before">non./non</string> <string name="before_after">non./vuln.</string> <string name="after_before">vuln./non.</string> <string name="after_after">vuln./vuln.</string> <string name="non_non">non./non.</string> <string name="non_vul">non./vuln.</string> <string name="vul_non">vuln./non.</string> <string name="vul_vul">vuln./vuln.</string> <string name="bid_normal">norm.</string> <string name="bid_double">dbl.</string> @@ -22,14 +57,12 @@ <string name="invalid_level">Invalid contract level.</string> <string name="invalid_color">Invalid contract color.</string> <string name="invalid_contract">Invalid information about doubling/redoubling.</string> <string name="invalid_vulnerability">Invalid information about vulnerability.</string> <string name="invalid_pc">Invalid number for Milton Work Point Count.</string> <string name="invalid_tricks">Invalid number of tricks taken.</string> <string name="invalid_passes">For four passes enter data for side with more PCs.</string> <string name="result_for_us">Score for declaring side.</string> <string name="result_for_them">Score for defending side.</string> <string name="result_pts_wo_pc">Points (excl. PC):</string> <string name="result_pts">Points (incl. PC):</string> <string name="result_imps">IMPs:</string>