diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 18eec38..88093b5 100755
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -4,10 +4,11 @@ v0.1.9-not-yet-released<
*Prevent user from setting incomplete reflector wiring
*Add option to generate configuration from passphrase
*Reworked Enigma definition (available Rotors/Reflectors/Entrywheels
-*Verified correct functionality of Enigma T
+*Completely verified correct functionality of Enigma T
+*Added number spelling in spanish, italian
+*Added backwards compatibility to Api level 10
*TODO: Write tests to ensure correct functionality
*TODO: Migrate preferences to SettingsActivity
-*TODO: Add Enigma Z (Probably wont happen due to lack of information :/)
*TODO: Add multi-Enigma (select any rotor/reflector etc. Probably wont happen too soon)
v0.1.8-27.09.2015<
diff --git a/app/app.iml b/app/app.iml
index e002617..c183b64 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -71,7 +71,7 @@
-
+
@@ -89,7 +89,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 6f05343..d57b91b 100755
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,10 +6,10 @@ android {
defaultConfig {
applicationId "de.vanitasvitae.enigmandroid"
- minSdkVersion 16
+ minSdkVersion 10
targetSdkVersion 23
- versionCode 14
- versionName "0.1.8-27.09.2015-beta"
+ versionCode 15
+ versionName "0.1.9-09.10.2015-beta"
}
buildTypes {
release {
@@ -19,5 +19,5 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:support-v4:23.0.0'
+ compile 'com.android.support:support-v4:23.0.1'
}
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/MainActivity.java b/app/src/main/java/de/vanitasvitae/enigmandroid/MainActivity.java
index 3037e54..6f73265 100755
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/MainActivity.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/MainActivity.java
@@ -104,7 +104,7 @@ public class MainActivity extends Activity
switch (prefMachineType)
{
case "I":
- this.setContentView(R.layout.activity_main_i_m3);
+ setContentView(R.layout.activity_main_i_m3);
break;
case "M3":
this.setContentView(R.layout.activity_main_i_m3);
@@ -328,7 +328,7 @@ public class MainActivity extends Activity
builder.setTitle(R.string.title_about_dialog);
builder.setView(aboutView)
.setCancelable(true)
- .setPositiveButton(R.string.dialog_positiv, new DialogInterface.OnClickListener()
+ .setPositiveButton(R.string.dialog_positive, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
@@ -383,7 +383,7 @@ public class MainActivity extends Activity
* Set EnigmAndroid into a certain state as described in the QR-Code
* @param mem content of the QR-Code
*/
- private void restoreStateFromCode(String mem)
+ public void restoreStateFromCode(String mem)
{
if(!mem.startsWith(APP_ID+"/"))
{
@@ -393,7 +393,7 @@ public class MainActivity extends Activity
{
mem = mem.substring((APP_ID+"/").length());
BigInteger s = new BigInteger(mem, 16);
- Log.d(APP_ID, s.toString());
+ Log.d(APP_ID, "Try to restore configuration from BigInteger value "+ s.toString());
setPrefMachineType(Enigma.chooseEnigmaFromSave(s));
updateContentView();
layoutContainer = LayoutContainer.createLayoutContainer(getPrefMachineType());
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_D.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_D.java
index 88453ee..c513df3 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_D.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_D.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -38,6 +41,7 @@ public class Enigma_D extends Enigma {
{
super();
machineType = "D";
+ Log.d(MainActivity.APP_ID, "Created Enigma D");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G260.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G260.java
index c210dcb..e78ceee 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G260.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G260.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -31,6 +34,7 @@ public class Enigma_G260 extends Enigma_G31
{
super();
machineType = "G260";
+ Log.d(MainActivity.APP_ID, "Created Enigma G260");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G31.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G31.java
index 31a5326..e751e4f 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G31.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G31.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -37,6 +40,7 @@ public class Enigma_G31 extends Enigma
{
super();
machineType = "G31";
+ Log.d(MainActivity.APP_ID, "Created Enigma G31");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G312.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G312.java
index 36354d1..d820b17 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G312.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_G312.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -31,6 +34,7 @@ public class Enigma_G312 extends Enigma_G31
{
super();
machineType = "G312";
+ Log.d(MainActivity.APP_ID, "Created Enigma G312");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_I.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_I.java
index ef3d068..ba65ffc 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_I.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_I.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -39,6 +42,7 @@ public class Enigma_I extends Enigma
{
super();
machineType = "I";
+ Log.d(MainActivity.APP_ID, "Created Enigma I");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K.java
index 6ef91ff..adfd0b5 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -37,6 +40,7 @@ public class Enigma_K extends Enigma
{
super();
machineType = "K";
+ Log.d(MainActivity.APP_ID, "Created Enigma K");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Airforce.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Airforce.java
index b9ba64f..a87032c 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Airforce.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Airforce.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -31,6 +34,7 @@ public class Enigma_K_Swiss_Airforce extends Enigma_K
{
super();
machineType = "KSA";
+ Log.d(MainActivity.APP_ID, "Created Enigma KSA");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Standard.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Standard.java
index e6f1023..5996921 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Standard.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_K_Swiss_Standard.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -31,6 +34,7 @@ public class Enigma_K_Swiss_Standard extends Enigma_K
{
super();
machineType = "KS";
+ Log.d(MainActivity.APP_ID, "Created Enigma KS");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M3.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M3.java
index f6bee79..3ce7d59 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M3.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M3.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -31,6 +34,7 @@ public class Enigma_M3 extends Enigma_I
{
super();
machineType = "M3";
+ Log.d(MainActivity.APP_ID, "Created Enigma M3");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M4.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M4.java
index a96ea93..d3e0c92 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M4.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_M4.java
@@ -47,6 +47,7 @@ public class Enigma_M4 extends Enigma
{
super();
machineType = "M4";
+ Log.d(MainActivity.APP_ID, "Created Enigma M4");
}
protected void addAvailableThinRotor(Rotor r)
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_R.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_R.java
index 7b736c6..de370f5 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_R.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_R.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -38,6 +41,7 @@ public class Enigma_R extends Enigma
{
super();
machineType = "R";
+ Log.d(MainActivity.APP_ID, "Created Enigma R");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_T.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_T.java
index 54222b7..a73b5f7 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_T.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Enigma_T.java
@@ -1,7 +1,10 @@
package de.vanitasvitae.enigmandroid.enigma;
+import android.util.Log;
+
import java.math.BigInteger;
+import de.vanitasvitae.enigmandroid.MainActivity;
import de.vanitasvitae.enigmandroid.enigma.rotors.EntryWheel;
import de.vanitasvitae.enigmandroid.enigma.rotors.Reflector;
import de.vanitasvitae.enigmandroid.enigma.rotors.Rotor;
@@ -37,6 +40,7 @@ public class Enigma_T extends Enigma
{
super();
machineType = "T";
+ Log.d(MainActivity.APP_ID, "Created Enigma T");
}
@Override
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Plugboard.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Plugboard.java
index c04b60e..de4e454 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Plugboard.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/Plugboard.java
@@ -35,7 +35,7 @@ public class Plugboard
public Plugboard()
{
- plugs = empty;
+ plugs = Arrays.copyOf(empty, empty.length);
}
public Plugboard(int[] conf)
@@ -53,12 +53,11 @@ public class Plugboard
String s = "";
int x;
- while((x = Enigma.getValue(b, 27)) != 26 || b.compareTo(BigInteger.ZERO) > 1)
+ while((x = Enigma.getValue(b, 27)) != 26 && b.compareTo(BigInteger.ZERO) > 1)
{
s = ((char) (x+65))+s;
b = Enigma.removeDigit(b, 27);
}
- Log.d(MainActivity.APP_ID, "Restored: " + s);
this.setConfiguration(stringToConfiguration(s));
return b;
}
@@ -207,9 +206,8 @@ public class Plugboard
public static int[] bigIntegerToConfiguration(BigInteger b)
{
String s = "";
-
int x;
- while((x = Enigma.getValue(b, 27)) != 26 || b.compareTo(BigInteger.ZERO) > 1)
+ while((x = Enigma.getValue(b, 27)) != 26 && b.compareTo(BigInteger.ZERO) > 1)
{
s = ((char) (x+65))+s;
b = Enigma.removeDigit(b, 27);
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/inputPreparer/InputPreparer.java b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/inputPreparer/InputPreparer.java
index 66a7af7..e0d4c52 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/inputPreparer/InputPreparer.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/enigma/inputPreparer/InputPreparer.java
@@ -56,6 +56,10 @@ public abstract class InputPreparer {
break;
case "fr": inPrep = new ReplaceNumbersFrench(inPrep);
break;
+ case "sp": inPrep = new ReplaceNumbersSpanish(inPrep);
+ break;
+ case "it": inPrep = new ReplaceNumbersItalian(inPrep);
+ break;
default:
break;
}
@@ -158,6 +162,60 @@ public abstract class InputPreparer {
}
}
+ /**
+ * Concrete implementation of a spanish InputPreparer
+ */
+ public static class ReplaceNumbersSpanish extends InputPreparer {
+ public ReplaceNumbersSpanish() {
+ this.child = null;
+ }
+
+ public ReplaceNumbersSpanish(InputPreparer child) {
+ this.child = child;
+ }
+
+ protected String prepare(String input) {
+ input = input.replace("0", "CERO")
+ .replace("1", "UNO")
+ .replace("2", "DOS")
+ .replace("3", "TRES")
+ .replace("4", "CUATRO")
+ .replace("5", "CINCO")
+ .replace("6", "SEIS")
+ .replace("7", "SIETE")
+ .replace("8", "OCHO")
+ .replace("9", "NUEVE");
+ return input;
+ }
+ }
+
+ /**
+ * Concrete implementation of a spanish InputPreparer
+ */
+ public static class ReplaceNumbersItalian extends InputPreparer {
+ public ReplaceNumbersItalian() {
+ this.child = null;
+ }
+
+ public ReplaceNumbersItalian(InputPreparer child) {
+ this.child = child;
+ }
+
+ protected String prepare(String input) {
+ input = input.replace("0", "ZERO")
+ .replace("1", "UNO")
+ .replace("2", "DUE")
+ .replace("3", "TRE")
+ .replace("4", "QUATTRO")
+ .replace("5", "CINQUE")
+ .replace("6", "SEI")
+ .replace("7", "SETTE")
+ .replace("8", "OTTO")
+ .replace("9", "NOVE");
+ return input;
+ }
+ }
+
/**
* "Final Stage" of Input preparing. This should always be called last
* (choose this as the inner most capsule of InputPreparers)
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer.java b/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer.java
index 2373443..6bb75de 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer.java
@@ -67,7 +67,6 @@ public abstract class LayoutContainer
{
if(inputView.getText().length()!=0)
{
-
syncStateFromLayoutToEnigma();
String message = inputView.getText().toString();
message = inputPreparer.prepareString(message);
diff --git a/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer_T.java b/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer_T.java
index af30bc6..88c2cdd 100644
--- a/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer_T.java
+++ b/app/src/main/java/de/vanitasvitae/enigmandroid/layout/LayoutContainer_T.java
@@ -47,6 +47,24 @@ public class LayoutContainer_T extends LayoutContainer
this.resetLayout();
}
+ @Override
+ public void doCrypto()
+ {
+ if(inputView.getText().length()!=0)
+ {
+ syncStateFromLayoutToEnigma();
+ String message = inputView.getText().toString();
+ //
+ boolean egg = false;
+ if(message.hashCode() == -1475861192) egg = true;
+ message = inputPreparer.prepareString(message);
+ input.setText(message);
+ if(egg) output.setText("ENIGMA
+ android:text="@string/hint_enigma_reflector_wiring"
+ tools:ignore="ButtonStyle"/>
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout-land/activity_main_i_m3.xml b/app/src/main/res/layout-land/activity_main_i_m3.xml
index 53102e6..c29b1f9 100755
--- a/app/src/main/res/layout-land/activity_main_i_m3.xml
+++ b/app/src/main/res/layout-land/activity_main_i_m3.xml
@@ -159,7 +159,8 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="@string/title_plugboard_dialog"
- android:id="@+id/button_plugboard" />
+ android:id="@+id/button_plugboard"
+ tools:ignore="ButtonStyle"/>
+ android:background="@drawable/button_orange"
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout-land/activity_main_m4.xml b/app/src/main/res/layout-land/activity_main_m4.xml
index ebde955..9848851 100755
--- a/app/src/main/res/layout-land/activity_main_m4.xml
+++ b/app/src/main/res/layout-land/activity_main_m4.xml
@@ -182,7 +182,8 @@
android:layout_weight="50"
android:layout_height="wrap_content"
android:id="@+id/button_plugboard"
- android:text="@string/title_plugboard_dialog"/>
+ android:text="@string/title_plugboard_dialog"
+ tools:ignore="ButtonStyle"/>
+ android:background="@drawable/button_orange"
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout-land/dialog_plugs.xml b/app/src/main/res/layout-land/dialog_plugs.xml
index 9a915b5..9afcbc3 100755
--- a/app/src/main/res/layout-land/dialog_plugs.xml
+++ b/app/src/main/res/layout-land/dialog_plugs.xml
@@ -19,7 +19,7 @@
android:id="@+id/Q"
android:text="Q: "
android:background="@drawable/button_grey"
- tools:ignore="HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
@@ -94,7 +94,7 @@
android:layout_below="@id/first_row"
android:id="@+id/second_row">
-
@@ -162,7 +162,7 @@
android:text="K: "
android:background="@drawable/button_grey"
tools:ignore="HardcodedText" />
-
@@ -183,7 +183,7 @@
android:id="@+id/P"
android:text="P: "
android:background="@drawable/button_grey"
- tools:ignore="HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
diff --git a/app/src/main/res/layout-v14/dialog_about.xml b/app/src/main/res/layout-v14/dialog_about.xml
new file mode 100644
index 0000000..b32a466
--- /dev/null
+++ b/app/src/main/res/layout-v14/dialog_about.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main_d.xml b/app/src/main/res/layout/activity_main_d.xml
index 3674e68..935856e 100755
--- a/app/src/main/res/layout/activity_main_d.xml
+++ b/app/src/main/res/layout/activity_main_d.xml
@@ -106,7 +106,8 @@
android:layout_weight="50"
android:layout_height="wrap_content"
android:id="@+id/button_reflector"
- android:text="@string/hint_enigma_reflector_wiring"/>
+ android:text="@string/hint_enigma_reflector_wiring"
+ tools:ignore="ButtonStyle"/>
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout/activity_main_i_m3.xml b/app/src/main/res/layout/activity_main_i_m3.xml
index 7325074..dccb8c2 100755
--- a/app/src/main/res/layout/activity_main_i_m3.xml
+++ b/app/src/main/res/layout/activity_main_i_m3.xml
@@ -78,7 +78,7 @@
android:layout_below="@+id/lin_lay_1"
android:id="@+id/lin_lay_names_2">
-
@@ -99,7 +99,7 @@
android:layout_weight=".25"
android:layout_height="wrap_content"
android:text="@string/hint_rotor1_position"/>
-
@@ -112,7 +112,7 @@
android:id="@+id/lin_lay_2"
android:layout_below="@+id/lin_lay_names_2">
-
@@ -134,7 +134,7 @@
android:layout_height="wrap_content"
android:id="@+id/rotor1position">
-
@@ -174,7 +174,8 @@
android:layout_weight="50"
android:text="@string/title_plugboard_dialog"
android:id="@+id/button_plugboard"
- android:layout_height="wrap_content" />
+ android:layout_height="wrap_content"
+ tools:ignore="ButtonStyle"/>
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout/activity_main_m4.xml b/app/src/main/res/layout/activity_main_m4.xml
index bbd13c5..4e53905 100755
--- a/app/src/main/res/layout/activity_main_m4.xml
+++ b/app/src/main/res/layout/activity_main_m4.xml
@@ -180,7 +180,8 @@
android:layout_weight="50"
android:layout_height="wrap_content"
android:id="@+id/button_plugboard"
- android:text="@string/title_plugboard_dialog"/>
+ android:text="@string/title_plugboard_dialog"
+ tools:ignore="ButtonStyle"/>
+ tools:ignore="ButtonStyle"/>
diff --git a/app/src/main/res/layout/dialog_about.xml b/app/src/main/res/layout/dialog_about.xml
index a88ad34..aa9a42d 100755
--- a/app/src/main/res/layout/dialog_about.xml
+++ b/app/src/main/res/layout/dialog_about.xml
@@ -1,13 +1,9 @@
-
-
-
@@ -33,28 +29,28 @@
@@ -62,14 +58,14 @@
@@ -77,18 +73,16 @@
-
-
-
+
diff --git a/app/src/main/res/layout/dialog_plugs.xml b/app/src/main/res/layout/dialog_plugs.xml
index be29ff6..277468f 100755
--- a/app/src/main/res/layout/dialog_plugs.xml
+++ b/app/src/main/res/layout/dialog_plugs.xml
@@ -19,7 +19,7 @@
android:id="@+id/Q"
android:text="Q: "
android:background="@drawable/button_grey"
- tools:ignore="HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
-
@@ -97,7 +97,7 @@
android:text="O: "
android:background="@drawable/button_grey"
tools:ignore="HardcodedText" />
-
@@ -118,7 +118,7 @@
android:id="@+id/A"
android:text="A: "
android:background="@drawable/button_grey"
- tools:ignore="HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
@@ -161,7 +161,7 @@
android:layout_below="@id/third_row"
android:id="@+id/fourth_row">
-
@@ -197,7 +197,7 @@
android:text="P: "
android:background="@drawable/button_grey"
tools:ignore="HardcodedText" />
-
@@ -218,7 +218,7 @@
android:id="@+id/Y"
android:text="Y: "
android:background="@drawable/button_grey"
- tools:ignore="HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
+ tools:ignore="ButtonStyle,HardcodedText" />
@@ -261,7 +261,7 @@
android:layout_below="@id/fifth_row"
android:id="@+id/sixth_row">
-
@@ -289,7 +289,7 @@
android:text="L: "
android:background="@drawable/button_grey"
tools:ignore="HardcodedText" />
-
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
index 4cf1327..8cb6e13 100755
--- a/app/src/main/res/menu/main.xml
+++ b/app/src/main/res/menu/main.xml
@@ -15,7 +15,7 @@
android:icon="@drawable/ic_send_white_48dp"/>
diff --git a/app/src/main/res/values-de/about_dialog_resources.xml b/app/src/main/res/values-de/about_dialog_resources.xml
index 9f775ec..3d82de4 100755
--- a/app/src/main/res/values-de/about_dialog_resources.xml
+++ b/app/src/main/res/values-de/about_dialog_resources.xml
@@ -24,7 +24,11 @@
jeweiligen Button an und verbinden Sie die gewünschten Steckerpaare, indem Sie im sich öffnenden Dialog nacheinander jeweils zwei
Stecker berühren. Falls sie eine Verbindung trennen möchten, klicken Sie einen der betroffenen Stecker doppelt an.
Optional können Sie außerdem auch noch die Ringstellung definieren. Öffnen Sie dazu das Optionsmenü und wählen Sie den Punkt \"Ringstellung\".
- Haben Sie alle Einstellungen getätigt klicken Sie auf den Button \"Ver-Entschlüsseln\".
+ Haben Sie alle Einstellungen getätigt klicken Sie auf den Button \"Ver-Entschlüsseln\".
+ Um die gewählte Konfiguration der Enigma Maschine per QR-Code zu teilen, wählen Sie den Eintrag \"Teile Konfiguration per QR-Code\" aus dem Optionsmenü.
+ Um eine per QR-Code geteilte Konfiguration zu scannen, wählen Sie stattdessen den Eintrag \"Lese Konfiguration aus QR-Code\".
+ Außerdem können Sie eine Konfiguration aus einem Schlüsselwort generieren, oder wiederherstellen, indem Sie dein Eintrag \"Konfiguration aus Schlüsselwort\"
+ wählen und im erscheinenden Dialog entweder ein beliebiges Wort oder den Inhalt eines QR-Codes (\"EnigmAndroid/…\" eingeben.
Entwickler
EnigmAndroid wird entwickelt von: \nPaul Schaub
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index c2aa0fc..453d8bf 100755
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -9,7 +9,7 @@
Teile Konfiguration per QR-Code
Konfiguration aus Schlüsselwort
Einstellungen
- Ringstellung
+ Ringstellung
Senden
Senden an…
Hier Tippen
@@ -29,17 +29,18 @@
Ver-/Entschlüsseln
Nachricht ist leer.
Fehler: Kein korrekter EnigmAndroid QR-Code!
- Ringstellungen
+ Ringstellungen
Steckbrett-\nVerbindungen
Verkabelung Umkehrwalze
- OK
- Abbrechen
- Setze Ringe auf
+ OK
+ Abbrechen
+ Setze Ringe auf %1$s.
Umkehrwalze verkabelt.
- Steckbrett gesteckert.
- Generiere Konfiguration aus Schlüsselwort
- Keine Änderungen
- Enigma zurückgesetzt
- Enigma auf zufällige Konfiguration gesetzt
+ Steckbrettverbindungen gesetzt.
+ Konfiguration aus Schlüsselwort %1$s generiert.
+ Konfiguration aus Kodierung wiederhergestellt.
+ Keine Änderungen.
+ Enigma zurückgesetzt.
+ Enigma auf zufällige Konfiguration gesetzt.
diff --git a/app/src/main/res/values-de/strings_activity_settings.xml b/app/src/main/res/values-de/strings_activity_settings.xml
index 42d506f..db51763 100755
--- a/app/src/main/res/values-de/strings_activity_settings.xml
+++ b/app/src/main/res/values-de/strings_activity_settings.xml
@@ -23,8 +23,10 @@
Sprache in der Zahlen buchstabiert werden sollen.
- Deutsch
- - Französisch
- Englisch
+ - Französisch
+ - Spanisch
+ - Italienisch
- Keine Ersetzung
diff --git a/app/src/main/res/values-v11/styles.xml b/app/src/main/res/values-v11/styles.xml
new file mode 100644
index 0000000..bdbe3f2
--- /dev/null
+++ b/app/src/main/res/values-v11/styles.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/about_dialog_resources.xml b/app/src/main/res/values/about_dialog_resources.xml
index 55e356b..ccde5fd 100755
--- a/app/src/main/res/values/about_dialog_resources.xml
+++ b/app/src/main/res/values/about_dialog_resources.xml
@@ -13,14 +13,16 @@
How to use
- In the beginning, choose a model of the enigma machine to work with.
+ At first, choose a model of the enigma machine to work with.
You can do this in the settings. To encrypt/decrypt a message, you can name it into the input field.
Afterwards you can - depending on the chosen model - select a reflector and the some rotors. Also select their initial positions.
Then you may set pairs on the plugboard or on the pluggable reflector.
Therefore press the respective button and connect the characters you wish to connect by clicking them one after another.
If you want to disconnect two plugs, just touch one of the plugs twice.
- Also you can optionally set custom ring settings. Open the options menu and select \"Ringsettings\".
- When you are ready press \"En-/Decrypt!\".
+ Also you can optionally set custom ring settings. Open the options menu and select \"Ring-Settings\".
+ When you are ready press \"En-/Decrypt!\". To share the configuration of the enigma machine via QR-Code, just open the options
+ menu and select the entry \"Share configuration via QR-Code\". To scan a QR-Code, choose the respective entry.
+ Also you can enter a codeword or the content of a QR-Code by clicking on the entry \"Create configuration from passphrase\" to restore a configuration that way.
Developer
EnigmAndroid is developed by: \nPaul Schaub
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 108a7a8..6d0e883 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,7 +1,5 @@
-
- 0.1.8-27.09.2015
EnigmAndroid
Version
Reset
@@ -9,7 +7,7 @@
Read configuration from QR-Code
Share configuration via QR-Code
Create configuration from passphrase
- Ring-Settings
+ Ring-Settings
Settings
Send
Send to…
@@ -30,18 +28,21 @@
En-/Decrypt!
Can\'t send empty text.
Error: Not a valid EnigmAndroid QR-Code!
- Ring-Settings
+ Ring-Settings
Plugboard Settings
Reflector Wiring
- OK
- Cancel
- Set Ring-Settings to
+ OK
+ Cancel
+ Set Ring-Settings to %1$s.
Rewired Reflector.
- Plugged Plugboard.
- Generate configuration from passphrase
- No changes
- Enigma reset
- Enigma set to random configuration
+ Set Plugboard configuration.
+ Generate configuration from passphrase %1$s.
+ Restored configuration from coded state.
+ No changes.
+ Enigma reset.
+ Enigma set to random configuration.
+
+ %1$s:%2$s
- I
diff --git a/app/src/main/res/values/strings_activity_settings.xml b/app/src/main/res/values/strings_activity_settings.xml
index 407f7cc..511a12d 100755
--- a/app/src/main/res/values/strings_activity_settings.xml
+++ b/app/src/main/res/values/strings_activity_settings.xml
@@ -38,14 +38,18 @@
Language, in which numbers are spelled.
- German
- - French
- English
+ - French
+ - Spanish
+ - Italian
- No replacing
- de
- - fr
- en
+ - fr
+ - sp
+ - it
- no
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 8e64f09..224cfaa 100755
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,7 +1,7 @@
-