mirror of
https://github.com/vanitasvitae/EnigmAndroid.git
synced 2024-11-24 21:32:06 +01:00
Updated to 0.1.9, added backwards compatibility to api 10, added option to share/receive configs via qr-code, added number spelling in spanish, italian
This commit is contained in:
parent
992c9a924d
commit
8cd2b6467b
42 changed files with 399 additions and 151 deletions
|
@ -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<
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.1/jars" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
|
||||
|
@ -89,7 +89,7 @@
|
|||
</content>
|
||||
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" exported="" name="support-v4-23.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-annotations-23.0.0" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
|
||||
<orderEntry type="library" exported="" name="support-annotations-23.0.1" level="project" />
|
||||
</component>
|
||||
</module>
|
|
@ -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'
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -67,7 +67,6 @@ public abstract class LayoutContainer
|
|||
{
|
||||
if(inputView.getText().length()!=0)
|
||||
{
|
||||
|
||||
syncStateFromLayoutToEnigma();
|
||||
String message = inputView.getText().toString();
|
||||
message = inputPreparer.prepareString(message);
|
||||
|
|
|
@ -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();
|
||||
//<Insert funny comment here>
|
||||
boolean egg = false;
|
||||
if(message.hashCode() == -1475861192) egg = true;
|
||||
message = inputPreparer.prepareString(message);
|
||||
input.setText(message);
|
||||
if(egg) output.setText("ENIGMA<TURINGMACHINE");
|
||||
else output.setText(getEnigma().encryptString(message));
|
||||
setLayoutState(getEnigma().getState());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enigma getEnigma() {
|
||||
return this.enigma;
|
||||
|
|
|
@ -16,6 +16,8 @@ import de.vanitasvitae.enigmandroid.R;
|
|||
/**
|
||||
* Builder for the dialog that is used to obtain a passphrase to generate
|
||||
* a enigma configuration from it.
|
||||
* Alternatively the user can enter the content String from a EnigmAndroid QR-Code here.
|
||||
* That would have the same effect as scanning the QR-Code.
|
||||
* Copyright (C) 2015 Paul Schaub
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -75,18 +77,26 @@ public class PassphraseDialogBuilder
|
|||
builder.setTitle(R.string.hint_passphrase);
|
||||
Dialog d = builder.setView(passphraseDialogView)
|
||||
.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)
|
||||
{
|
||||
String pass = passphrase.getText().toString();
|
||||
if(pass.startsWith(MainActivity.APP_ID+"/"))
|
||||
{
|
||||
main.restoreStateFromCode(pass);
|
||||
Toast.makeText(main, R.string.dialog_passphrase_was_coded_state, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
main.createStateFromSeed(pass);
|
||||
String message = main.getResources().getString(R.string.dialog_passphrase_set)
|
||||
+" \'" + pass + "\'";
|
||||
String message = String.format(main.getResources().getString(
|
||||
R.string.dialog_passphrase_set), " \'"+pass+"\'");
|
||||
Toast.makeText(main, message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.dialog_negativ, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.dialog_negative, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
Toast.makeText(main, R.string.dialog_abort,
|
||||
|
|
|
@ -3,6 +3,7 @@ package de.vanitasvitae.enigmandroid.layout;
|
|||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.res.Resources;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
|
@ -73,7 +74,7 @@ public class PluggableDialogBuilder
|
|||
adb.setTitle(R.string.title_plugboard_dialog);
|
||||
Dialog d = adb.setView(dialogView)
|
||||
.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) {
|
||||
int[] plugs = new int[26];
|
||||
for (int i = 0; i < 26; i++) {
|
||||
|
@ -84,7 +85,7 @@ public class PluggableDialogBuilder
|
|||
Toast.makeText(main.getApplication(), R.string.dialog_plugboard_set, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.dialog_negativ, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.dialog_negative, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
Toast.makeText(main, R.string.dialog_abort,
|
||||
|
@ -112,7 +113,7 @@ public class PluggableDialogBuilder
|
|||
adb.setTitle(R.string.title_reflector_dialog);
|
||||
Dialog d = adb.setView(dialogView)
|
||||
.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) {
|
||||
int[] plugs = new int[26];
|
||||
for (int i = 0; i < 26; i++) {
|
||||
|
@ -123,7 +124,7 @@ public class PluggableDialogBuilder
|
|||
Toast.makeText(main.getApplication(), R.string.dialog_reflector_set, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.dialog_negativ, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.dialog_negative, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
Toast.makeText(main, R.string.dialog_abort,
|
||||
|
@ -374,7 +375,11 @@ public class PluggableDialogBuilder
|
|||
public void setConnectedButton(int other)
|
||||
{
|
||||
this.connectedButton = other;
|
||||
this.getButton().setText((char) (index + 65) + ":" + (char) (connectedButton + 65));
|
||||
Resources res = MainActivity.ActivitySingleton.getInstance().getActivity().getResources();
|
||||
this.getButton().setText(String.format(
|
||||
res.getText(R.string.button_plug_title).toString(),
|
||||
""+(char) (index+65),
|
||||
""+(char) (connectedButton+65)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -391,7 +396,10 @@ public class PluggableDialogBuilder
|
|||
*/
|
||||
public void setWaiting()
|
||||
{
|
||||
this.getButton().setText((char) (index + 65) + ": ");
|
||||
Resources res = MainActivity.ActivitySingleton.getInstance().getActivity().getResources();
|
||||
this.getButton().setText(String.format(
|
||||
res.getText(R.string.button_plug_title).toString(),
|
||||
""+(char) (index+65)," "));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -139,26 +139,26 @@ public abstract class RingSettingsDialogBuilder
|
|||
ring3.setSelection(action.getThirdValueFromBundle());
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(main);
|
||||
builder.setTitle(R.string.title_ringsetting);
|
||||
builder.setTitle(R.string.title_ring_setting);
|
||||
builder.setView(ringSettingsView)
|
||||
.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)
|
||||
{
|
||||
action.firstSpinnerItemSelected(ring1.getSelectedItemPosition());
|
||||
action.secondSpinnerItemSelected(ring2.getSelectedItemPosition());
|
||||
action.thirdSpinnerItemSelected(ring3.getSelectedItemPosition());
|
||||
String message = main.getResources().getString(
|
||||
R.string.dialog_ringsettings_success) + " " +
|
||||
String message = String.format(main.getResources().getString(
|
||||
R.string.dialog_ring_settings_success),
|
||||
(ring1.getSelectedItemPosition()+1) + ", " +
|
||||
(ring2.getSelectedItemPosition()+1) + ", " +
|
||||
(ring3.getSelectedItemPosition()+1) + ".";
|
||||
(ring3.getSelectedItemPosition()+1));
|
||||
main.onDialogFinished(stateBundle);
|
||||
Toast.makeText(main, message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.dialog_negativ, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.dialog_negative, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
Toast.makeText(main, R.string.dialog_abort,
|
||||
|
@ -266,10 +266,10 @@ public abstract class RingSettingsDialogBuilder
|
|||
ring4.setSelection(action.getFourthValueFromBundle());
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(main);
|
||||
builder.setTitle(R.string.title_ringsetting);
|
||||
builder.setTitle(R.string.title_ring_setting);
|
||||
builder.setView(ringSettingsView)
|
||||
.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)
|
||||
{
|
||||
|
@ -277,17 +277,17 @@ public abstract class RingSettingsDialogBuilder
|
|||
action.secondSpinnerItemSelected(ring2.getSelectedItemPosition());
|
||||
action.thirdSpinnerItemSelected(ring3.getSelectedItemPosition());
|
||||
action.fourthSpinnerItemSelected(ring4.getSelectedItemPosition());
|
||||
String message = main.getResources().getString(
|
||||
R.string.dialog_ringsettings_success) + " " +
|
||||
String message = String.format(main.getResources().getString(
|
||||
R.string.dialog_ring_settings_success),
|
||||
(ring1.getSelectedItemPosition()+1) + ", " +
|
||||
(ring2.getSelectedItemPosition()+1) + ", " +
|
||||
(ring3.getSelectedItemPosition()+1) + ", " +
|
||||
(ring4.getSelectedItemPosition()+1) + ".";
|
||||
(ring4.getSelectedItemPosition()+1));
|
||||
main.onDialogFinished(stateBundle);
|
||||
Toast.makeText(main, message, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.dialog_negativ, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.dialog_negative, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
Toast.makeText(main, R.string.dialog_abort,
|
||||
|
|
|
@ -105,7 +105,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"/>
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="50"
|
||||
|
@ -114,7 +115,7 @@
|
|||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"
|
||||
/>
|
||||
tools:ignore="ButtonStyle"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
|
@ -169,7 +170,8 @@
|
|||
android:id="@+id/button_crypt"
|
||||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"/>
|
||||
android:background="@drawable/button_orange"
|
||||
tools:ignore="ButtonStyle"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="50"
|
||||
|
@ -190,7 +191,8 @@
|
|||
android:id="@+id/button_crypt"
|
||||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"/>
|
||||
android:background="@drawable/button_orange"
|
||||
tools:ignore="ButtonStyle"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
android:id="@+id/Q"
|
||||
android:text="Q: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -27,7 +27,7 @@
|
|||
android:id="@+id/W"
|
||||
android:text="W: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -35,7 +35,7 @@
|
|||
android:id="@+id/E"
|
||||
android:text="E: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -43,7 +43,7 @@
|
|||
android:id="@+id/R"
|
||||
android:text="R: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -51,7 +51,7 @@
|
|||
android:id="@+id/T"
|
||||
android:text="T: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -59,7 +59,7 @@
|
|||
android:id="@+id/Z"
|
||||
android:text="Z: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:id="@+id/U"
|
||||
android:text="U: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -75,7 +75,7 @@
|
|||
android:id="@+id/I"
|
||||
android:text="I: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -83,7 +83,7 @@
|
|||
android:id="@+id/O"
|
||||
android:text="O: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -94,7 +94,7 @@
|
|||
android:layout_below="@id/first_row"
|
||||
android:id="@+id/second_row">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -162,7 +162,7 @@
|
|||
android:text="K: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -183,7 +183,7 @@
|
|||
android:id="@+id/P"
|
||||
android:text="P: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -191,7 +191,7 @@
|
|||
android:id="@+id/Y"
|
||||
android:text="Y: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -199,7 +199,7 @@
|
|||
android:id="@+id/X"
|
||||
android:text="X: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -207,7 +207,7 @@
|
|||
android:id="@+id/C"
|
||||
android:text="C: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -215,7 +215,7 @@
|
|||
android:id="@+id/V"
|
||||
android:text="V: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -223,7 +223,7 @@
|
|||
android:id="@+id/B"
|
||||
android:text="B: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -231,7 +231,7 @@
|
|||
android:id="@+id/N"
|
||||
android:text="N: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -239,7 +239,7 @@
|
|||
android:id="@+id/M"
|
||||
android:text="M: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -247,7 +247,7 @@
|
|||
android:id="@+id/L"
|
||||
android:text="L: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
88
app/src/main/res/layout-v14/dialog_about.xml
Normal file
88
app/src/main/res/layout-v14/dialog_about.xml
Normal file
|
@ -0,0 +1,88 @@
|
|||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/ringstellung_layout_hint">
|
||||
|
||||
<!-- About Enigma. -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/title_about_dialog"
|
||||
android:id="@+id/title_section_app_description_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:text="@string/description_text"
|
||||
android:id="@+id/about_app_description"/>
|
||||
|
||||
<!-- About Version -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:text="@string/action_version"
|
||||
android:id="@+id/title_section_version"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:id="@+id/about_version_section"/>
|
||||
|
||||
<!-- About How To -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:text="@string/title_section_how_to_use"
|
||||
android:id="@+id/title_section_how_to_use"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:text="@string/section_how_to_use"
|
||||
android:id="@+id/section_how_to_use"/>
|
||||
|
||||
<!-- About Developer -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:text="@string/title_section_developer"
|
||||
android:id="@+id/title_section_developer_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:text="@string/section_developer"
|
||||
android:id="@+id/about_developer_section"/>
|
||||
|
||||
<!-- About Disclaimer -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:text="@string/title_section_disclaimer"
|
||||
android:id="@+id/title_section_disclaimer_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:text="@string/section_disclaimer"
|
||||
android:id="@+id/about_disclaimer_section"/>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
|
@ -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"/>
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="50"
|
||||
|
@ -115,7 +116,7 @@
|
|||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"
|
||||
/>
|
||||
tools:ignore="ButtonStyle"/>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
android:layout_below="@+id/lin_lay_1"
|
||||
android:id="@+id/lin_lay_names_2">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".125"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -99,7 +99,7 @@
|
|||
android:layout_weight=".25"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/hint_rotor1_position"/>
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".125"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -112,7 +112,7 @@
|
|||
android:id="@+id/lin_lay_2"
|
||||
android:layout_below="@+id/lin_lay_names_2">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".125"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -134,7 +134,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:id="@+id/rotor1position">
|
||||
</Spinner>
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".125"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -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"/>
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="50"
|
||||
|
@ -183,7 +184,7 @@
|
|||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"
|
||||
/>
|
||||
tools:ignore="ButtonStyle"/>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
|
@ -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"/>
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="50"
|
||||
|
@ -189,7 +190,7 @@
|
|||
android:onClick="doCrypto"
|
||||
android:text="@string/button_crypt"
|
||||
android:background="@drawable/button_orange"
|
||||
/>
|
||||
tools:ignore="ButtonStyle"/>
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
<RelativeLayout
|
||||
<ScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -18,14 +14,14 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/title_about_dialog"
|
||||
android:id="@+id/title_section_app_description_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:text="@string/description_text"
|
||||
android:id="@+id/about_app_description"/>
|
||||
|
||||
|
@ -33,28 +29,28 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/action_version"
|
||||
android:id="@+id/title_section_version"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:id="@+id/about_version_section"/>
|
||||
|
||||
<!-- About How To -->
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/title_section_how_to_use"
|
||||
android:id="@+id/title_section_how_to_use"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:text="@string/section_how_to_use"
|
||||
android:id="@+id/section_how_to_use"/>
|
||||
|
||||
|
@ -62,14 +58,14 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/title_section_developer"
|
||||
android:id="@+id/title_section_developer_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:text="@string/section_developer"
|
||||
android:id="@+id/about_developer_section"/>
|
||||
|
||||
|
@ -77,18 +73,16 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Medium"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:text="@string/title_section_disclaimer"
|
||||
android:id="@+id/title_section_disclaimer_text"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@android:style/TextAppearance.Holo.Small"
|
||||
android:textAppearance="@android:style/TextAppearance.Small"
|
||||
android:text="@string/section_disclaimer"
|
||||
android:id="@+id/about_disclaimer_section"/>
|
||||
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
</RelativeLayout>
|
||||
</ScrollView>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
android:id="@+id/Q"
|
||||
android:text="Q: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -27,7 +27,7 @@
|
|||
android:id="@+id/W"
|
||||
android:text="W: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -35,7 +35,7 @@
|
|||
android:id="@+id/E"
|
||||
android:text="E: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -43,7 +43,7 @@
|
|||
android:id="@+id/R"
|
||||
android:text="R: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -51,7 +51,7 @@
|
|||
android:id="@+id/T"
|
||||
android:text="T: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -61,7 +61,7 @@
|
|||
android:layout_below="@id/first_row"
|
||||
android:id="@+id/second_row">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -97,7 +97,7 @@
|
|||
android:text="O: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -118,7 +118,7 @@
|
|||
android:id="@+id/A"
|
||||
android:text="A: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -126,7 +126,7 @@
|
|||
android:id="@+id/S"
|
||||
android:text="S: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -134,7 +134,7 @@
|
|||
android:id="@+id/D"
|
||||
android:text="D: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -142,7 +142,7 @@
|
|||
android:id="@+id/F"
|
||||
android:text="F: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -150,7 +150,7 @@
|
|||
android:id="@+id/G"
|
||||
android:text="G: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -161,7 +161,7 @@
|
|||
android:layout_below="@id/third_row"
|
||||
android:id="@+id/fourth_row">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -197,7 +197,7 @@
|
|||
android:text="P: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -218,7 +218,7 @@
|
|||
android:id="@+id/Y"
|
||||
android:text="Y: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -226,7 +226,7 @@
|
|||
android:id="@+id/X"
|
||||
android:text="X: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -234,7 +234,7 @@
|
|||
android:id="@+id/C"
|
||||
android:text="C: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -242,7 +242,7 @@
|
|||
android:id="@+id/V"
|
||||
android:text="V: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
<Button
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -250,7 +250,7 @@
|
|||
android:id="@+id/B"
|
||||
android:text="B: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -261,7 +261,7 @@
|
|||
android:layout_below="@id/fifth_row"
|
||||
android:id="@+id/sixth_row">
|
||||
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="2"
|
||||
android:layout_height="wrap_content" />
|
||||
|
@ -289,7 +289,7 @@
|
|||
android:text="L: "
|
||||
android:background="@drawable/button_grey"
|
||||
tools:ignore="HardcodedText" />
|
||||
<Space
|
||||
<android.support.v4.widget.Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="2"
|
||||
android:layout_height="wrap_content" />
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
android:icon="@drawable/ic_send_white_48dp"/>
|
||||
<!-- RINGSETTING -->
|
||||
<item android:id="@+id/action_choose_ringsetting"
|
||||
android:title="@string/action_choose_ringsettings"
|
||||
android:title="@string/action_choose_ring_settings"
|
||||
android:orderInCategory="97"
|
||||
android:showAsAction="ifRoom" />
|
||||
<!-- ENTER SEED -->
|
||||
|
|
|
@ -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\".</string>
|
||||
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.</string>
|
||||
|
||||
<string name="title_section_developer">Entwickler</string>
|
||||
<string name="section_developer">EnigmAndroid wird entwickelt von: \nPaul Schaub</string>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<string name="action_send_qr">Teile Konfiguration per QR-Code</string>
|
||||
<string name="action_read_passphrase">Konfiguration aus Schlüsselwort</string>
|
||||
<string name="action_settings">Einstellungen</string>
|
||||
<string name="action_choose_ringsettings">Ringstellung</string>
|
||||
<string name="action_choose_ring_settings">Ringstellung</string>
|
||||
<string name="action_send">Senden</string>
|
||||
<string name="send_to">Senden an…</string>
|
||||
<string name="hint_enigma_type_here">Hier Tippen</string>
|
||||
|
@ -29,17 +29,18 @@
|
|||
<string name="button_crypt">Ver-/Entschlüsseln</string>
|
||||
<string name="error_no_text_to_send">Nachricht ist leer.</string>
|
||||
<string name="error_no_valid_qr">Fehler: Kein korrekter EnigmAndroid QR-Code!</string>
|
||||
<string name="title_ringsetting">Ringstellungen</string>
|
||||
<string name="title_ring_setting">Ringstellungen</string>
|
||||
<string name="title_plugboard_dialog">Steckbrett-\nVerbindungen</string>
|
||||
<string name="title_reflector_dialog">Verkabelung Umkehrwalze</string>
|
||||
<string name="dialog_positiv">OK</string>
|
||||
<string name="dialog_negativ">Abbrechen</string>
|
||||
<string name="dialog_ringsettings_success">Setze Ringe auf</string>
|
||||
<string name="dialog_positive">OK</string>
|
||||
<string name="dialog_negative">Abbrechen</string>
|
||||
<string name="dialog_ring_settings_success">Setze Ringe auf %1$s.</string>
|
||||
<string name="dialog_reflector_set">Umkehrwalze verkabelt.</string>
|
||||
<string name="dialog_plugboard_set">Steckbrett gesteckert.</string>
|
||||
<string name="dialog_passphrase_set">Generiere Konfiguration aus Schlüsselwort</string>
|
||||
<string name="dialog_abort">Keine Änderungen</string>
|
||||
<string name="message_reset">Enigma zurückgesetzt</string>
|
||||
<string name="message_random">Enigma auf zufällige Konfiguration gesetzt</string>
|
||||
<string name="dialog_plugboard_set">Steckbrettverbindungen gesetzt.</string>
|
||||
<string name="dialog_passphrase_set">Konfiguration aus Schlüsselwort %1$s generiert.</string>
|
||||
<string name="dialog_passphrase_was_coded_state">Konfiguration aus Kodierung wiederhergestellt.</string>
|
||||
<string name="dialog_abort">Keine Änderungen.</string>
|
||||
<string name="message_reset">Enigma zurückgesetzt.</string>
|
||||
<string name="message_random">Enigma auf zufällige Konfiguration gesetzt.</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -23,8 +23,10 @@
|
|||
<string name="pref_description_numeric_spelling_language">Sprache in der Zahlen buchstabiert werden sollen.</string>
|
||||
<string-array name="pref_list_numeric_spelling_language">
|
||||
<item>Deutsch</item>
|
||||
<item>Französisch</item>
|
||||
<item>Englisch</item>
|
||||
<item>Französisch</item>
|
||||
<item>Spanisch</item>
|
||||
<item>Italienisch</item>
|
||||
<item>Keine Ersetzung</item>
|
||||
</string-array>
|
||||
|
||||
|
|
7
app/src/main/res/values-v11/styles.xml
Normal file
7
app/src/main/res/values-v11/styles.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="AppTheme" parent="android:Theme.Holo">
|
||||
<!-- Customize your theme here. -->
|
||||
</style>
|
||||
</resources>
|
|
@ -13,14 +13,16 @@
|
|||
</string>
|
||||
|
||||
<string name="title_section_how_to_use">How to use</string>
|
||||
<string name="section_how_to_use">In the beginning, choose a model of the enigma machine to work with.
|
||||
<string name="section_how_to_use">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!\".</string>
|
||||
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.</string>
|
||||
|
||||
<string name="title_section_developer">Developer</string>
|
||||
<string name="section_developer">EnigmAndroid is developed by: \nPaul Schaub</string>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<string name="version" translatable="false">0.1.8-27.09.2015</string>
|
||||
<string name="app_name">EnigmAndroid</string>
|
||||
<string name="action_version">Version</string>
|
||||
<string name="action_reset">Reset</string>
|
||||
|
@ -9,7 +7,7 @@
|
|||
<string name="action_read_qr">Read configuration from QR-Code</string>
|
||||
<string name="action_send_qr">Share configuration via QR-Code</string>
|
||||
<string name="action_read_passphrase">Create configuration from passphrase</string>
|
||||
<string name="action_choose_ringsettings">Ring-Settings</string>
|
||||
<string name="action_choose_ring_settings">Ring-Settings</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_send">Send</string>
|
||||
<string name="send_to">Send to…</string>
|
||||
|
@ -30,18 +28,21 @@
|
|||
<string name="button_crypt">En-/Decrypt!</string>
|
||||
<string name="error_no_text_to_send">Can\'t send empty text.</string>
|
||||
<string name="error_no_valid_qr">Error: Not a valid EnigmAndroid QR-Code!</string>
|
||||
<string name="title_ringsetting">Ring-Settings</string>
|
||||
<string name="title_ring_setting">Ring-Settings</string>
|
||||
<string name="title_plugboard_dialog">Plugboard Settings</string>
|
||||
<string name="title_reflector_dialog">Reflector Wiring</string>
|
||||
<string name="dialog_positiv">OK</string>
|
||||
<string name="dialog_negativ">Cancel</string>
|
||||
<string name="dialog_ringsettings_success">Set Ring-Settings to</string>
|
||||
<string name="dialog_positive">OK</string>
|
||||
<string name="dialog_negative">Cancel</string>
|
||||
<string name="dialog_ring_settings_success">Set Ring-Settings to %1$s.</string>
|
||||
<string name="dialog_reflector_set">Rewired Reflector.</string>
|
||||
<string name="dialog_plugboard_set">Plugged Plugboard.</string>
|
||||
<string name="dialog_passphrase_set">Generate configuration from passphrase</string>
|
||||
<string name="dialog_abort">No changes</string>
|
||||
<string name="message_reset">Enigma reset</string>
|
||||
<string name="message_random">Enigma set to random configuration</string>
|
||||
<string name="dialog_plugboard_set">Set Plugboard configuration.</string>
|
||||
<string name="dialog_passphrase_set">Generate configuration from passphrase %1$s.</string>
|
||||
<string name="dialog_passphrase_was_coded_state">Restored configuration from coded state.</string>
|
||||
<string name="dialog_abort">No changes.</string>
|
||||
<string name="message_reset">Enigma reset.</string>
|
||||
<string name="message_random">Enigma set to random configuration.</string>
|
||||
|
||||
<string name="button_plug_title">%1$s:%2$s</string>
|
||||
|
||||
<string-array translatable="false" name="rotors_1_3">
|
||||
<item>I</item>
|
||||
|
|
|
@ -38,14 +38,18 @@
|
|||
<string name="pref_description_numeric_spelling_language">Language, in which numbers are spelled.</string>
|
||||
<string-array name="pref_list_numeric_spelling_language">
|
||||
<item>German</item>
|
||||
<item>French</item>
|
||||
<item>English</item>
|
||||
<item>French</item>
|
||||
<item>Spanish</item>
|
||||
<item>Italian</item>
|
||||
<item>No replacing</item>
|
||||
</string-array>
|
||||
<string-array translatable="false" name="pref_alias_numeric_spelling_language">
|
||||
<item>de</item>
|
||||
<item>fr</item>
|
||||
<item>en</item>
|
||||
<item>fr</item>
|
||||
<item>sp</item>
|
||||
<item>it</item>
|
||||
<item>no</item>
|
||||
</string-array>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<resources>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="android:Theme.Holo">
|
||||
<style name="AppTheme" parent="android:Theme.Black">
|
||||
<!-- Customize your theme here. -->
|
||||
</style>
|
||||
|
||||
|
|
Loading…
Reference in a new issue