summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorNikolaus Gotsche <n@softwarefools.com>2015-12-11 05:02:18 +0100
committerNikolaus Gotsche <n@softwarefools.com>2015-12-11 05:02:18 +0100
commitfd7210e1bbd83161c0df9f5eb8327ecd2a83b372 (patch)
tree39c147f5c1f5a724b448bc65193155e3bdf41605 /app/src
parent90aac9c765ecf8782f30179173e8f4c904c7f98b (diff)
Code2: V1.0.1
Magnetic Sensors No Activity Restart (Menu Still on first Create in Systemlanguage)
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/AndroidManifest.xml9
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java2
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferencesClassic.java2
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java229
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java140
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorListener.java2
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorManager.java95
-rw-r--r--app/src/main/res/menu/level.xml6
-rw-r--r--app/src/main/res/values-de/strings.xml9
-rw-r--r--app/src/main/res/values-en/strings.xml3
-rw-r--r--app/src/main/res/values-es/strings.xml3
-rw-r--r--app/src/main/res/values-fr/strings.xml5
-rw-r--r--app/src/main/res/values-it/strings.xml3
-rw-r--r--app/src/main/res/values-pl/strings.xml5
-rw-r--r--app/src/main/res/values-ru/strings.xml3
-rw-r--r--app/src/main/res/values/arrays.xml4
-rw-r--r--app/src/main/res/values/strings.xml98
-rw-r--r--app/src/main/res/xml/settings.xml5
18 files changed, 389 insertions, 234 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 573fb0e..98406bc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.example.spiritlevel"
- android:versionCode="1"
- android:versionName="1.0" >
+ package="com.softwarefools.spiritlevel"
+ android:versionCode="2"
+ android:versionName="1.0.1" >
<uses-sdk
android:minSdkVersion="10"
@@ -16,7 +16,8 @@
<activity
android:name="com.softwarefools.nik.spiritlevel.LevelActivity"
android:label="@string/app_name"
- android:screenOrientation="landscape" >
+ android:screenOrientation="landscape"
+ android:configChanges="locale">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java
index ed1e163..c7ad68a 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java
@@ -1,5 +1,5 @@
package com.softwarefools.nik.spiritlevel;
-import com.example.spiritlevel.R;
+import com.softwarefools.spiritlevel.R;
/**
* Created by nick on 01.12.15.
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferencesClassic.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferencesClassic.java
index bd347fa..7ec485b 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferencesClassic.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferencesClassic.java
@@ -3,7 +3,7 @@ package com.softwarefools.nik.spiritlevel;
import android.os.Bundle;
import android.preference.PreferenceActivity;
-import com.example.spiritlevel.R;
+import com.softwarefools.spiritlevel.R;
/**
* Created by nick on 04.12.15.
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java
index 3b4dd8f..ab332b0 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java
@@ -7,8 +7,10 @@ import java.util.Calendar;
import java.util.List;
import java.util.Locale;
+import android.app.AlertDialog;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
+import android.content.DialogInterface;
import android.content.SharedPreferences;
import java.util.Locale;
import java.util.Map;
@@ -31,7 +33,7 @@ import android.util.DisplayMetrics;
//import com.softwarefools.nik.spiritlevel.R;
//import com.softwarefools.nik.spiritlevel.R.layout;
//import com.softwarefools.nik.spiritlevel.R.menu;
-import com.example.spiritlevel.R;
+import com.softwarefools.spiritlevel.R;
import com.softwarefools.nik.spiritlevel.MySensorListener;
import com.softwarefools.nik.spiritlevel.MySensorManager;
@@ -125,39 +127,10 @@ public class LevelActivity extends Activity implements MySensorListener{
}
}
});
- //Simple TTS
- /*t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
- @Override
- public void onInit(int status) {
- if(status >=TextToSpeech.LANG_AVAILABLE) {
- String setlang = mySettings.getString("applicationLanguage","xxx");
- String comp = getResources().getConfiguration().locale.getLanguage();
- if (!setlang.contains(comp)){
- //Toast.makeText(getBaseContext(), "Language is local", Toast.LENGTH_SHORT).show(); // Toast Vorlage
- if (setlang=="xxx" ) {
-
- SharedPreferences.Editor editor = mySettings.edit();
- editor.putString("applicationLanguage", comp);
- editor.commit();
- t1.setLanguage(getResources().getConfiguration().locale);
- setLocale(setlang);
- //Toast.makeText(getBaseContext(), "Needet to Set Variable", Toast.LENGTH_SHORT).show(); // Toast Vorlage
- }else {
- //Toast.makeText(getBaseContext(), "Some Fuckup! Set:"+setlang+", current: "+comp, Toast.LENGTH_SHORT).show(); // Toast Vorlage
- setLocale(setlang);
- }}
- //t1.setLanguage(getResources().getConfiguration().locale);
-
-
- }
- } });*/
-
-
-
+ restartTTS();
setupActionBar();
- //!
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@@ -167,6 +140,7 @@ public class LevelActivity extends Activity implements MySensorListener{
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS){
+ funkSpeech(myTTS,false);
myTTS.setLanguage(getResources().getConfiguration().locale);
}else if (status == TextToSpeech.ERROR) {
Toast.makeText(getBaseContext(), getApplicationContext().getString(R.string.action_lang_NA), Toast.LENGTH_LONG).show();
@@ -185,41 +159,8 @@ public class LevelActivity extends Activity implements MySensorListener{
public void onResume() {
super.onResume();
System.out.println("LevelActivity.onResume()");
- myTTS.shutdown();
- myTTS = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
- @Override
- public void onInit(int status) {
- if (status == TextToSpeech.SUCCESS){
- String setlang = mySettings.getString("applicationLanguage","none");
- String comp = getResources().getConfiguration().locale.getLanguage();
- if (setlang.contains(comp)){
- // Toast.makeText(getBaseContext(), "Language is local", Toast.LENGTH_SHORT).show(); // Toast Vorlage
- }
- else if (setlang=="none" ) {
-
- SharedPreferences.Editor editor = mySettings.edit();
- editor.putString("applicationLanguage", comp);
- editor.commit();
- //myTTS.setLanguage(getResources().getConfiguration().locale);
- //Toast.makeText(getBaseContext(), "Needet to Set Variable", Toast.LENGTH_SHORT).show(); // Toast Vorlage
- }else {
- //Toast.makeText(getBaseContext(), "Some Fuckup! Set:"+setlang+", current: "+comp, Toast.LENGTH_SHORT).show(); // Toast Vorlage
- setLocale(setlang);
- }
-
-
- myTTS.setLanguage(getResources().getConfiguration().locale);
-
- funkSpeech(myTTS,false);
- }else if (status == TextToSpeech.ERROR) {
- SharedPreferences.Editor editor = mySettings.edit();
- editor.putBoolean("applicationTalking", false);
- editor.commit();
- Toast.makeText(getBaseContext(), getApplicationContext().getString(R.string.action_lang_NA), Toast.LENGTH_LONG).show();
- }
- }
- });
+ restartTTS();
//Toast.makeText(getBaseContext(), "On Resume", Toast.LENGTH_SHORT).show(); // Toast Vorlage
// Toast.makeText(getBaseContext(), "onResume Sensors Started", Toast.LENGTH_SHORT).show();
@@ -269,14 +210,32 @@ public class LevelActivity extends Activity implements MySensorListener{
@Override
public boolean onCreateOptionsMenu(Menu menu) {
+ //menu.clear();
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.level, menu);
return true;
}
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+
+ menu.clear(); // Clear the menu first
+
+ /* Add the menu items */
+ getMenuInflater().inflate(R.menu.level, menu);
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ if (prefs.getBoolean("applicationRecording",true)) {
+ menu.removeItem(R.id.action_record);
+ }else{
+ menu.removeItem(R.id.action_record_off);
+ }
+ //return super.onPrepareOptionsMenu(menu);
+ return true;
+ }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// Handle item selection
switch (item.getItemId()) {
case R.id.action_settings:
@@ -297,33 +256,31 @@ public class LevelActivity extends Activity implements MySensorListener{
return true;
case R.id.action_record:
- //t1.speak(this.getString(R.string.action_record_text), TextToSpeech.QUEUE_FLUSH, null);
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- //Toast.makeText(getBaseContext(), "Setting on Recording:"+prefs.getBoolean("applicationRecording",true), Toast.LENGTH_SHORT).show();
- if (!prefs.getBoolean("applicationRecording",true)) {
- System.out.println("Start Recording");
- //Boolean a= prefs.getBoolean("applicationRecording",false);
- beLoud(this.getString(R.string.action_record_text));
- SharedPreferences.Editor editor = prefs.edit();
- editor.putBoolean("applicationRecording",true);
- editor.commit();
- } else {
- System.out.println("Stop Recording");
- beLoud(this.getString(R.string.action_record_text_off));
- SharedPreferences.Editor editor = prefs.edit();
- editor.putBoolean("applicationRecording",false);
- editor.commit();
- Toast.makeText(getBaseContext(), "Vector:"+accelvector.size()+"\n"+printVect(accelvector), Toast.LENGTH_SHORT).show();
+ System.out.println("Start Recording");
+ beLoud(this.getString(R.string.action_record_text));
+ SharedPreferences.Editor editor = prefs.edit();
+ editor.putBoolean("applicationRecording",true);
+ editor.commit();
+ return true;
+ case R.id.action_record_off:
+
+ //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ System.out.println("Stop Recording");
+ beLoud(this.getString(R.string.action_record_text_off));
+ SharedPreferences.Editor editor2 = prefs.edit();
+ editor2.putBoolean("applicationRecording",false);
+ editor2.commit();
+
+
+ Toast.makeText(getBaseContext(), "Vector:"+accelvector.size()+"\n"+printVect(accelvector), Toast.LENGTH_LONG).show();
// Save The DATA
//dump the vectors
accelvector.clear();
gravvector.clear();
- }
-
return true;
@@ -364,11 +321,11 @@ public class LevelActivity extends Activity implements MySensorListener{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
nikVector temp=new nikVector();
- temp.setVector(getTime(),x/sum,y/sum,z/sum);
+ temp.setVector(getTime(),x,y,z);
if(prefs.getBoolean("applicationRecording",true))gravvector.add(temp);
String debug="LevelActivityDebug";
- levelView.updateData(x/sum, y/sum, z/sum,orientation,debug);
+ levelView.updateData(x, y, z,orientation,debug);
}
@Override
@@ -380,15 +337,31 @@ public class LevelActivity extends Activity implements MySensorListener{
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
nikVector temp=new nikVector();
- temp.setVector(getTime(),x/sum,y/sum,z/sum);
+ temp.setVector(getTime(),x,y,z);
if(prefs.getBoolean("applicationRecording",true))accelvector.add(temp);
- levelView.updateAccelData(x/sum, y/sum, z/sum,orientation);
+ levelView.updateAccelData(x, y, z,orientation);
}
+ @Override
+ public void onMagneticFieldChanged(float x, float y, float z) {
+ // TODO Auto-generated method stub
+ System.out.println("Noticed Magnetic Field Change");
+ float sq= (float)x*x+y*y+z*z;
+ float sum=(float)Math.sqrt(sq);
+ //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+
+ //nikVector temp=new nikVector();
+ //temp.setVector(getTime(),x/sum,y/sum,z/sum);
+ //if(prefs.getBoolean("applicationRecording",true))accelvector.add(temp);
+ levelView.updateMagneticData(x, y, z);
+ }
@Override
- public void onShake(float force) {
+ public void onShake(float forceacc) {
// TODO Auto-generated method stub
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+
+ float force=((float)prefs.getInt("deviceweight",0))*forceacc/1000;
System.out.println("Force Detected: "+force);
beLoud(this.getString(R.string.alert)+(int)force+this.getString(R.string.newton),this.getString(R.string.toast_force)+force+this.getString(R.string.newton_short));
/*
@@ -408,6 +381,63 @@ public class LevelActivity extends Activity implements MySensorListener{
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
+ @Override
+ public void onBackPressed() {
+ new AlertDialog.Builder(this)
+ .setIcon(android.R.drawable.ic_dialog_alert)
+ .setTitle("Closing Activity")
+ .setMessage("Are you sure you want to close this activity?")
+ .setPositiveButton("Yes", new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ //finish();
+ exitAll();
+ }
+
+ })
+ .setNegativeButton("No", null)
+ .show();
+ }
+private void restartTTS(){
+ myTTS.shutdown();
+ myTTS = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
+ @Override
+ public void onInit(int status) {
+ if (status == TextToSpeech.SUCCESS){
+ String setlang = mySettings.getString("applicationLanguage","none");
+ String comp = getResources().getConfiguration().locale.getLanguage();
+ if (setlang.contains(comp)){
+ // Toast.makeText(getBaseContext(), "Language is local", Toast.LENGTH_SHORT).show(); // Toast Vorlage
+ }
+ else if (setlang=="none" ) {
+
+ SharedPreferences.Editor editor = mySettings.edit();
+ editor.putString("applicationLanguage", comp);
+ editor.commit();
+ //myTTS.setLanguage(getResources().getConfiguration().locale);
+ //Toast.makeText(getBaseContext(), "Needet to Set Variable", Toast.LENGTH_SHORT).show(); // Toast Vorlage
+ }else {
+ //Toast.makeText(getBaseContext(), "Some Fuckup! Set:"+setlang+", current: "+comp, Toast.LENGTH_SHORT).show(); // Toast Vorlage
+ funkSpeech(myTTS,false);
+ setLocale(setlang);
+ }
+
+ funkSpeech(myTTS,false);
+ myTTS.setLanguage(getResources().getConfiguration().locale);
+
+
+
+ }else if (status == TextToSpeech.ERROR) {
+ SharedPreferences.Editor editor = mySettings.edit();
+ editor.putBoolean("applicationTalking", false);
+ editor.commit();
+ Toast.makeText(getBaseContext(), getApplicationContext().getString(R.string.action_lang_NA), Toast.LENGTH_LONG).show();
+ }
+ }
+ });
+}
private int getScreenOrientation() {
int rotation = getWindowManager().getDefaultDisplay().getRotation();
DisplayMetrics dm = new DisplayMetrics();
@@ -476,19 +506,24 @@ public class LevelActivity extends Activity implements MySensorListener{
editor.putString("applicationLanguage", lang);
editor.commit();
myLocale = new Locale(lang);
- //langname=lang;
+ Configuration config = new Configuration();
+ config.locale = myLocale;
+
+ getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
+
+ /*//langname=lang;
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
- Intent refresh = new Intent(this, LevelActivity.class);
+ Intent refresh = new Intent(this, LevelActivity.class);*/
- startActivity(refresh);
+ //startActivity(refresh);
setupActionBar();
- myTTS.setLanguage(conf.locale);
+ myTTS.setLanguage(config.locale);
beLoud(this.getString(R.string.change_text));
//myTTS.setLanguage(conf.locale);
/*setupActionBar();
@@ -501,7 +536,7 @@ public class LevelActivity extends Activity implements MySensorListener{
//t1.speak(this.getString(R.string.change_text), TextToSpeech.QUEUE_FLUSH, null);
- finish();
+ //finish();
}
public void funkSpeech(TextToSpeech sp, boolean randomize) {
@@ -530,8 +565,9 @@ public class LevelActivity extends Activity implements MySensorListener{
if(prefs.getBoolean("applicationTalking",true))t1.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null);
}*/
System.out.println("Systemoutput");
- if(prefs.getBoolean("applicationTalking",true))myTTS.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null);
if (prefs.getBoolean("applicationWriting", true))Toast.makeText(getBaseContext(), whatwrite, Toast.LENGTH_LONG).show();
+ if(prefs.getBoolean("applicationTalking",true))myTTS.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null);
+
while (myTTS.isSpeaking()){
}
@@ -547,8 +583,9 @@ public class LevelActivity extends Activity implements MySensorListener{
//}
System.out.println("Systemoutput");
- if(prefs.getBoolean("applicationTalking",true))myTTS.speak(what, TextToSpeech.QUEUE_FLUSH, null);
if (prefs.getBoolean("applicationWriting", true))Toast.makeText(getBaseContext(), what, Toast.LENGTH_SHORT).show();
+ if(prefs.getBoolean("applicationTalking",true))myTTS.speak(what, TextToSpeech.QUEUE_FLUSH, null);
+
while (myTTS.isSpeaking()){
//system.Out.Println("Do something or nothing while speaking..")
}
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java
index b74d708..e379552 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java
@@ -39,10 +39,17 @@ public class LevelView extends View{
public float x_gravSense=0;
public float y_gravSense=0;
public float z_gravSense=0;
+ public float sum_gravSense=0;
public float x_accSense=0;
public float y_accSense=0;
public float z_accSense=0;
+ public float sum_accSense=0;
+
+ public float x_magSense=0;
+ public float y_magSense=0;
+ public float z_magSense=0;
+ public float sum_magSense=0;
public float x_gravSense_min=10;
public float y_gravSense_min=10;
@@ -77,6 +84,9 @@ public class LevelView extends View{
private float x_accEnd=0;
private float y_accEnd=0;
+
+ private float x_magEnd=0;
+ private float y_magEnd=0;
private float ballRadius = 320; // Circles and Axis props
private float ballWidth = 10;
@@ -84,8 +94,10 @@ public class LevelView extends View{
private float lineTextSize=50;
private float maxdiameter=0;
+ private float accOffset=0;
private float levelballRadius=50;
+ private float magballRadius=50;
private float vectWidth =14;
private float vectTextSize=40;
private float vectTextDist=5;
@@ -111,7 +123,8 @@ public class LevelView extends View{
private RectF helpBallBounds2;
private RectF helpBallBounds3;
- private RectF levelballBounds;
+ private RectF levelballBounds;
+ private RectF magballBounds;
private Paint paintCircle;
private Paint paintHelpCircle;// The paint (e.g. style, color) used for drawing
private Paint paintHelpCircle2;
@@ -121,6 +134,7 @@ public class LevelView extends View{
private Paint paintVector2;
private Paint paintVector2Help;
private Paint paintVector3Help;
+ private Paint paintVector3;
private Paint paintAxisLines;
private Paint paintAxisHelpLines;
@@ -159,8 +173,8 @@ public class LevelView extends View{
helpBallBounds3 = new RectF();
levelballBounds = new RectF();
-
- paintCircle = new Paint();
+ magballBounds = new RectF();
+ paintCircle = new Paint();
paintHelpCircle = new Paint();
paintHelpCircle2 = new Paint();
@@ -171,6 +185,8 @@ public class LevelView extends View{
paintVector2Help = new Paint();
paintVector3Help = new Paint();
+ paintVector3 = new Paint();
+
paintAxisLines = new Paint();
paintAxisHelpLines = new Paint();
@@ -186,14 +202,11 @@ public class LevelView extends View{
vectTextDist=(int)vectTextSize/4;
levelballRadius=(int)displayheight/20;
+ magballRadius=(int)displayheight/20;
// Circles and Axis props
- x_gravEnd=xCenter;
- y_gravEnd=yCenter+ballRadius;
- x_accEnd=xCenter;
- y_accEnd=yCenter;
-
+
final TypedArray styledAttributes = getContext().getTheme().obtainStyledAttributes( new int[] { android.R.attr.actionBarSize });
mActionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
@@ -203,6 +216,12 @@ public class LevelView extends View{
yCenter=displayheight/2 -mActionBarSize-statusbarSize;
double t=displaywidth*displaywidth+displayheight*displayheight;
maxdiameter=(float) Math.sqrt(t);
+ x_gravEnd=xCenter;
+ y_gravEnd=yCenter+ballRadius;
+ x_accEnd=xCenter;
+ y_accEnd=yCenter;
+ x_magEnd=xCenter;
+ y_magEnd=yCenter;
ballBounds.set(xCenter-ballRadius, yCenter-ballRadius, xCenter+ballRadius, yCenter+ballRadius);
helpBallBounds.set(xCenter-ballRadius/2, yCenter-ballRadius/2, xCenter+ballRadius/2, yCenter+ballRadius/2);
@@ -245,11 +264,17 @@ public class LevelView extends View{
paintVector2Help.setStrokeWidth(vectWidth/3);
paintVector2Help.setColor(Color.RED);
paintVector2Help.setAntiAlias(true);
+
+
+//MagneticField
+ paintVector3.setColor(Color.GRAY);
+ paintVector3.setAntiAlias(true);
+ paintVector3.setStrokeWidth(vectWidth);
+ paintVector3.setTextSize(vectTextSize);
paintVector3Help.setTextSize(vectTextSize);
- paintVector3Help.setColor(Color.RED);
+ paintVector3Help.setColor(Color.DKGRAY);
paintVector3Help.setAntiAlias(true);
-
-
+
paintAxisLines.setColor(Color.BLACK);
paintAxisLines.setStrokeWidth(lineWidth);
paintAxisLines.setTextSize(lineTextSize);
@@ -266,13 +291,17 @@ public class LevelView extends View{
@Override
protected void onDraw(Canvas canvas) {
// Calculate Gravity Vector AxisTitles onlyforLandscape
- x_gravEnd=xCenter+y_gravSense*ballRadius;
- y_gravEnd=yCenter+x_gravSense*ballRadius;
- x_gravAngEnd=xCenter+y_gravSense*ballRadius/2;
- y_gravAngEnd=yCenter+x_gravSense*ballRadius/2;
+ x_gravEnd=xCenter+y_gravSense/sum_gravSense*ballRadius;
+ y_gravEnd=yCenter+x_gravSense/sum_gravSense*ballRadius;
+ x_gravAngEnd=xCenter+y_gravSense/sum_gravSense*ballRadius/2;
+ y_gravAngEnd=yCenter+x_gravSense/sum_gravSense*ballRadius/2;
+
+ x_accEnd=xCenter+(y_accSense-y_gravSense)/sum_accSense*ballRadius;
+ y_accEnd=yCenter+(x_accSense-x_gravSense)/sum_accSense*ballRadius;
+
+ x_magEnd=xCenter+(y_magSense)/sum_magSense*ballRadius;
+ y_magEnd=yCenter+x_magSense/sum_magSense*ballRadius;
- x_accEnd=xCenter+(y_accSense-y_gravSense)*ballRadius;
- y_accEnd=yCenter+(x_accSense-x_gravSense)*ballRadius;
x_horizon=xCenter-x_gravSense*maxdiameter;
y_horizon=yCenter+y_gravSense*maxdiameter;
x_horizon2=xCenter+x_gravSense*maxdiameter;
@@ -287,7 +316,7 @@ public class LevelView extends View{
xAxisTagNeg_y=yCenter-ballRadius+lineTextSize+2;
- alpha = getAngle(x_gravSense,y_gravSense);
+ alpha = getAngle(x_gravSense/sum_gravSense,y_gravSense/sum_gravSense);
//alpha = Math.atan((y_gravSense/x_gravSense));
@@ -341,12 +370,19 @@ public class LevelView extends View{
canvas.drawText(makeDegAngle(getAlpha(x_gravSense,z_gravSense)),displaywidth-150,yAxisTag_y,paintTexts);
//Draw Vector/Ball and Text
-
+ if(mySettings.getBoolean("applicationShowMag",true)) {
+ canvas.drawLine(xCenter, yCenter, x_magEnd, y_magEnd, paintVector3);
+ if(inMagneticZ()){
+ magballRadius=(int) (displayheight/20*(Math.sqrt(z_magSense/sum_magSense*z_magSense/sum_magSense)));
+ magballBounds.set(x_magEnd - magballRadius, y_magEnd - magballRadius, x_magEnd + magballRadius, y_magEnd + magballRadius);
+ canvas.drawOval(magballBounds, paintVector3);
+ }
+ }
setVectorColor();
if(inHorizontalMode()){
if(mySettings.getBoolean("applicationShowGrav",true)) {
canvas.drawLine(xCenter, yCenter, x_gravEnd, y_gravEnd, paintVector);
- levelballRadius = (int) (displayheight / 20 * (1 - Math.sqrt(x_gravSense * x_gravSense + y_gravSense * y_gravSense)));
+ levelballRadius = (int) (displayheight / 20 * (1 - Math.sqrt(x_gravSense/sum_gravSense * x_gravSense/sum_gravSense + y_gravSense/sum_gravSense * y_gravSense/sum_gravSense)));
levelballBounds.set(x_gravEnd - levelballRadius, y_gravEnd - levelballRadius, x_gravEnd + levelballRadius, y_gravEnd + levelballRadius);
canvas.drawOval(levelballBounds, paintVector);
canvas.drawLine(x_gravEnd - levelballRadius, y_gravEnd, x_gravEnd + levelballRadius, y_gravEnd, paintAxisHelpLines);
@@ -358,7 +394,7 @@ public class LevelView extends View{
}
}else{
//levelballRadius=0;
- levelballRadius=(int) (displayheight/20*(1-Math.sqrt(x_gravSense*x_gravSense+y_gravSense*y_gravSense)));
+ levelballRadius=(int) (displayheight/20*(1-Math.sqrt(x_gravSense/sum_gravSense*x_gravSense/sum_gravSense+y_gravSense/sum_gravSense*y_gravSense/sum_gravSense)));
levelballBounds.set(x_gravEnd-levelballRadius,y_gravEnd-levelballRadius,x_gravEnd+levelballRadius,y_gravEnd+levelballRadius);
if(mySettings.getBoolean("applicationShowAccel",true)) {
@@ -383,6 +419,7 @@ public class LevelView extends View{
float sum_gmin=(float)getLength(x_gravSense_min,y_gravSense_min,z_gravSense_min);
float sum_amax=(float)getLength(x_accSense_max,y_accSense_max,z_accSense_max);
float sum_na =(float) getLength(x_accSense-x_gravSense,y_accSense-y_gravSense,z_accSense-z_gravSense);
+ float sum_ma =(float) getLength(x_magSense,y_magSense,z_magSense);
if(mySettings.getBoolean("applicationShowGrav",true)) {
if((y_gravEnd + margin + 4 * vectTextSize + vectTextDist)<(displayheight -mActionBarSize-statusbarSize-margin)) {
@@ -402,14 +439,26 @@ public class LevelView extends View{
canvas.restore();
}
}
+
// Acceleration Sumup
- canvas.drawText("A [m\u00B2/s]", displaywidth-displaywidth/10, margin+vectTextSize, paintVector2);
- canvas.drawText("\u01A9 "+niceValue(sum_na), displaywidth-displaywidth/10, margin+2*vectTextSize+vectTextDist, paintVector2);
- canvas.drawLine(displaywidth-displaywidth/10,margin+2*vectTextSize+2*vectTextDist,displaywidth-2*margin,margin+2*vectTextSize+2*vectTextDist,paintVector2Help);
- canvas.drawText("x "+niceValue(x_accSense-x_gravSense), displaywidth-displaywidth/10, margin+3*vectTextSize+2*vectTextDist, paintVector2);
- canvas.drawText("y "+niceValue(y_accSense-y_gravSense), displaywidth-displaywidth/10, margin+4*vectTextSize+2*vectTextDist, paintVector2);
- canvas.drawText("z "+niceValue(z_accSense-z_gravSense), displaywidth-displaywidth/10, margin+5*vectTextSize+2*vectTextDist, paintVector2);
+ if(mySettings.getBoolean("applicationShowAccel",true)) {
+ accOffset=displaywidth / 10;
+ canvas.drawText("A [m\u00B2/s]", displaywidth - displaywidth / 10, margin + vectTextSize, paintVector2);
+ canvas.drawText("\u01A9 " + niceValue(sum_na), displaywidth - displaywidth / 10, margin + 2 * vectTextSize + vectTextDist, paintVector2);
+ canvas.drawLine(displaywidth - displaywidth / 10, margin + 2 * vectTextSize + 2 * vectTextDist, displaywidth - 2 * margin, margin + 2 * vectTextSize + 2 * vectTextDist, paintVector2Help);
+ canvas.drawText("x " + niceValue(x_accSense - x_gravSense), displaywidth - displaywidth / 10, margin + 3 * vectTextSize + 2 * vectTextDist, paintVector2);
+ canvas.drawText("y " + niceValue(y_accSense - y_gravSense), displaywidth - displaywidth / 10, margin + 4 * vectTextSize + 2 * vectTextDist, paintVector2);
+ canvas.drawText("z " + niceValue(z_accSense - z_gravSense), displaywidth - displaywidth / 10, margin + 5 * vectTextSize + 2 * vectTextDist, paintVector2);
+ }else accOffset= 0;
+ if(mySettings.getBoolean("applicationShowMag",true)) {
+ canvas.drawText("M [\u03bcT]", displaywidth -accOffset- displaywidth / 10, margin + vectTextSize, paintVector3);
+ canvas.drawText("\u01A9 " + niceValue(sum_ma), displaywidth -accOffset- displaywidth / 10, margin + 2 * vectTextSize + vectTextDist, paintVector3);
+ canvas.drawLine(displaywidth -accOffset- displaywidth / 10, margin + 2 * vectTextSize + 2 * vectTextDist, displaywidth - 2 * margin-accOffset, margin + 2 * vectTextSize + 2 * vectTextDist, paintVector3Help);
+ canvas.drawText("x " + niceValue(x_magSense), displaywidth -accOffset- displaywidth / 10, margin + 3 * vectTextSize + 2 * vectTextDist, paintVector3);
+ canvas.drawText("y " + niceValue(y_magSense), displaywidth -accOffset- displaywidth / 10, margin + 4 * vectTextSize + 2 * vectTextDist, paintVector3);
+ canvas.drawText("z " + niceValue(z_magSense), displaywidth -accOffset- displaywidth / 10, margin + 5 * vectTextSize + 2 * vectTextDist, paintVector3);
+ }
canvas.drawText("G min [m\u00B2/s]", displaywidth-displaywidth/8, displayheight-margin-4*vectTextSize-2*vectTextDist-mActionBarSize-statusbarSize, paintVector3Help);
canvas.drawText("\u01A9 "+niceValue(sum_gmin), displaywidth-displaywidth/9, displayheight-margin-3*vectTextSize-2*vectTextDist-mActionBarSize-statusbarSize, paintVector3Help);
@@ -420,7 +469,8 @@ public class LevelView extends View{
//Draw Debug
-
+ double pitch = (double) mySettings.getInt("applicationPitch", 10) / 10;
+ double rate = (double) mySettings.getInt("applicationRate", 10) / 10;
String current = getResources().getConfiguration().locale.getLanguage();
String screeninfo = "Width: "+ displaywidth+ "Height: "+ displayheight + " Orientation :" + String.valueOf(orientation);
@@ -429,12 +479,12 @@ public class LevelView extends View{
canvas.drawText(makeDegAngle(getAlpha(y_gravSense,z_gravSense)), margin, margin+3*vectTextSize+vectTextDist, paintTexts);
canvas.drawText(makeDegAngle(getAlpha(x_gravSense,z_gravSense)), margin, margin+4*vectTextSize+vectTextDist, paintTexts);
canvas.drawText(makeDegAngle(getAlpha(z_gravSense,y_gravSense)), margin, margin+5*vectTextSize+vectTextDist, paintTexts);
- canvas.drawText(current+"; "+(y_gravEnd + margin + 4 * vectTextSize + vectTextDist)+"<"+(displayheight -mActionBarSize-statusbarSize), margin, margin+6*vectTextSize+vectTextDist, paintTexts);
+ canvas.drawText(current+"; P:"+pitch+", R:"+rate, margin, margin+6*vectTextSize+vectTextDist, paintTexts);
canvas.drawText(levelActDebug, margin, margin+7*vectTextSize+vectTextDist, paintTexts);
}
public String niceValue(float x){
- double g= 9.80665;
- return f.format(x*g);
+ //double g= 9.80665;
+ return f.format(x);
}
public String makeDegAngle(double grad){
//double alphadeg = 180*grad/Math.PI;
@@ -473,10 +523,12 @@ public class LevelView extends View{
public void updateData(float x,float y,float z,int orientation,String debug) {
//float x_resultForce=x+x_accSense
-
+ float sq= (float)x*x+y*y+z*z;
+ float sum=(float)Math.sqrt(sq);
this.x_gravSense = x;
this.y_gravSense = y;
this.z_gravSense = z;
+ this.sum_gravSense=sum;
this.orientation = orientation;
this.levelActDebug=debug;
@@ -493,18 +545,40 @@ public class LevelView extends View{
this.y_gravSense_min=y;
this.z_gravSense_min=z;
}
+ float sq= (float)x*x+y*y+z*z;
+ float sum=(float)Math.sqrt(sq);
this.x_accSense = x;
this.y_accSense = y;
this.z_accSense = z;
+ this.sum_accSense=sum;
this.orientation = orientation;
invalidate();
}
+ public void updateMagneticData(float x,float y,float z) {
+ //float x_resultForce=x+x_accSense
+ float sq= (float)x*x+y*y+z*z;
+ float sum=(float)Math.sqrt(sq);
+ this.x_magSense = x;
+ this.y_magSense = y;
+ this.z_magSense = z;
+ this.sum_magSense=sum;
+ this.orientation = orientation;
+
+
+ invalidate();
+ }
public Boolean inHorizontalMode(){
- double sum=x_gravSense*x_gravSense+y_gravSense*y_gravSense;
+ double sum=x_gravSense/sum_gravSense*x_gravSense/sum_gravSense+y_gravSense/sum_gravSense*y_gravSense/sum_gravSense;
double sqs=Math.sqrt(sum);
if(sqs<0.5) return true;
else return false;
}
+ public Boolean inMagneticZ(){
+ double planesum=x_magSense/sum_magSense*x_magSense/sum_magSense+y_magSense/sum_magSense*y_magSense/sum_magSense;
+ double sqs=Math.sqrt(planesum);
+ if(sqs<0.25) return true;
+ else return false;
+ }
public Path getTrianglePath(float cx, float cy , float x, float y){
int cxi=(int)cx;
int cyi=(int)cy;
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorListener.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorListener.java
index 8c98b2c..317391f 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorListener.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorListener.java
@@ -12,7 +12,7 @@ public interface MySensorListener {
//public void onPressureChanged(float p);
- //public void onMagneticFieldChanged(float x, float y, float z);
+ public void onMagneticFieldChanged(float x, float y, float z);
//public void onGyroChanged(float x, float y, float z);
diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorManager.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorManager.java
index 682ecad..caa8976 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorManager.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/MySensorManager.java
@@ -4,10 +4,12 @@ import java.text.DecimalFormat;
import java.util.List;
import android.content.Context;
+import android.content.SharedPreferences;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
+import android.preference.PreferenceManager;
import android.widget.Toast;
public class MySensorManager {
@@ -21,9 +23,9 @@ public class MySensorManager {
private static Sensor sensorgravity;
private static Sensor sensoracell;
- /*
+
private static Sensor sensormagneticfield;
- private static Sensor sensorgyro;
+ /* private static Sensor sensorgyro;
private static Sensor sensorlight;
private static Sensor sensordistance;
@@ -40,9 +42,9 @@ public class MySensorManager {
private static Boolean gravitysupported;
private static Boolean accelsupported;
- /*
+
private static Boolean magneticsupported;
- private static Boolean gyrosupported;
+ /*private static Boolean gyrosupported;
private static Boolean lightsupported;
private static Boolean distancesupported;
@@ -52,7 +54,8 @@ public class MySensorManager {
*/
/** indicates whether or not Accelerometer Sensor is running */
private static boolean running = false;
-
+
+
/**
* Returns true if the manager is listening to orientation changes
*/
@@ -76,6 +79,7 @@ public class MySensorManager {
* Returns true if at least one Accelerometer sensor is available
*/
public static boolean isSupported(Context context) {
+
aContext = context;
if (gravitysupported == null) {
if (aContext != null) {
@@ -88,11 +92,11 @@ public class MySensorManager {
List<Sensor> sensorsgrv = sensorManager.getSensorList(Sensor.TYPE_GRAVITY);
List<Sensor> sensorsacc = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
-
- /*
- List<Sensor> sensorsgyr = sensorManager.getSensorList(Sensor.TYPE_GYROSCOPE);
- List<Sensor> sensorspres = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);
+
List<Sensor> sensormagn = sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD);
+ List<Sensor> sensorsgyr = sensorManager.getSensorList(Sensor.TYPE_GYROSCOPE);
+ /*List<Sensor> sensorspres = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);
+
List<Sensor> sensorlgt = sensorManager.getSensorList(Sensor.TYPE_LIGHT);
List<Sensor> sensordst = sensorManager.getSensorList(Sensor.TYPE_PROXIMITY);
List<Sensor> sensorhum = sensorManager.getSensorList(Sensor.TYPE_RELATIVE_HUMIDITY);
@@ -100,10 +104,11 @@ public class MySensorManager {
*/
if(sensorsgrv.size() > 0) gravitysupported=true;
if(sensorsacc.size() > 0)accelsupported=true;
+ if(sensormagn.size() > 0) magneticsupported = true;
/*
if(sensorsgyr.size()>0) gyrosupported=true;
if(sensorspres.size() > 0) pressuresupported=true;
- if(sensormagn.size() > 0) magneticsupported = true;
+
if(sensorlgt.size() > 0) lightsupported = true;
if(sensordst.size()>0) distancesupported = true;
if(sensorhum.size()>0 ) humidsupported =true;
@@ -157,6 +162,14 @@ public class MySensorManager {
sensorEventListener, sensoracell,
SensorManager.SENSOR_DELAY_GAME);
}
+ if(magneticsupported){
+ List<Sensor> sensorsp = sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD);
+ sensormagneticfield = sensorsp.get(0);
+ sensorManager.registerListener(
+ magnetEventListener, sensormagneticfield,
+ SensorManager.SENSOR_DELAY_GAME);
+ }
+
/*
if(gyrosupported){
List<Sensor> sensorsgyr = sensorManager.getSensorList(Sensor.TYPE_GYROSCOPE);
@@ -172,13 +185,7 @@ public class MySensorManager {
presEventListener, sensorpressure,
SensorManager.SENSOR_DELAY_GAME);
}
- if(magneticsupported){
- List<Sensor> sensorsp = sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD);
- sensormagneticfield = sensorsp.get(0);
- sensorManager.registerListener(
- magnetEventListener, sensormagneticfield,
- SensorManager.SENSOR_DELAY_GAME);
- }
+
if(lightsupported){
List<Sensor> sensorsp = sensorManager.getSensorList(Sensor.TYPE_LIGHT);
sensorlight = sensorsp.get(0);
@@ -229,6 +236,9 @@ public class MySensorManager {
int threshold, int interval) {
configure(threshold, interval);
startListening(myListener);
+
+
+
}
/**
@@ -249,7 +259,7 @@ public class MySensorManager {
private float lastX = 0;
private float lastY = 0;
private float lastZ = 0;
- private float force = 0;
+ private float forceacc = 0;
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
@@ -282,16 +292,16 @@ public class MySensorManager {
/*force = Math.abs(x + y + z - lastX - lastY - lastZ)
/ timeDiff; */
- force = Math.abs(x + y + z - lastX - lastY - lastZ)/timeDiff;
+ forceacc = Math.abs(x + y + z - lastX - lastY - lastZ);
- if (Float.compare(force, threshold) >0 ) {
+ if (Float.compare(forceacc, threshold) >0 ) {
//Toast.makeText(Accelerometer.getContext(),
//(now-lastShake)+" >= "+interval, 1000).show();
if (now - lastShake >= interval) {
// trigger shake event
- listener.onShake(force);
+ listener.onShake(forceacc);
}
else
{
@@ -343,6 +353,27 @@ public class MySensorManager {
}
};
+ private static SensorEventListener magnetEventListener =
+ new SensorEventListener() {
+
+ private float x = 0;
+ private float y = 0;
+ private float z = 0;
+
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {}
+
+ @Override
+ public void onSensorChanged(SensorEvent event) {
+ x = event.values[0];
+ y = event.values[1];
+ z = event.values[2];
+
+
+ // trigger change event
+ listener.onMagneticFieldChanged(x, y, z);
+ }
+
+ };
/*
private static SensorEventListener gyroEventListener =
new SensorEventListener() {
@@ -372,27 +403,7 @@ public class MySensorManager {
};
- private static SensorEventListener magnetEventListener =
- new SensorEventListener() {
-
- private float x = 0;
- private float y = 0;
- private float z = 0;
-
- public void onAccuracyChanged(Sensor sensor, int accuracy) {}
-
- @Override
- public void onSensorChanged(SensorEvent event) {
- x = event.values[0];
- y = event.values[1];
- z = event.values[2];
-
-
- // trigger change event
- listener.onMagneticFieldChanged(x, y, z);
- }
-
- };
+
private static SensorEventListener lightEventListener =
new SensorEventListener() {
diff --git a/app/src/main/res/menu/level.xml b/app/src/main/res/menu/level.xml
index bdc368f..f526d76 100644
--- a/app/src/main/res/menu/level.xml
+++ b/app/src/main/res/menu/level.xml
@@ -15,7 +15,11 @@
android:orderInCategory="2"
android:showAsAction="collapseActionView"
android:title="@string/action_record"/>
-
+ <item
+ android:id="@+id/action_record_off"
+ android:orderInCategory="2"
+ android:showAsAction="collapseActionView"
+ android:title="@string/action_record_off"/>
<item android:id="@+id/action_changelang"
android:title="@string/action_lang"
android:orderInCategory="1"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 1ddbeb4..e349f39 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
+ <string name="app_name">Wasserwaage</string>
<string name="action_settings">Einstellungen</string>
<string name="action_record">Aufnehmen</string>
+ <string name="action_record_off">Aufnahme Stoppen</string>
<string name="action_record_text">Ich nehme Auf!</string>
<string name="action_record_text_off">Ich Stoppe die Aufnahme!</string>
@@ -18,4 +20,11 @@
<string name="goodby">Danke dass sie Software Fools Software Verwenden!</string>
<string name="toast_force">Beschleunigung detektiert! \n Kraft:</string>
+
+
+
+
+
+
+
</resources>
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 5bf2777..375455f 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">SpiritLevel</string>
<string name="action_settings">Settings</string>
<string name="action_record">Record</string>
+ <string name="action_record_off">Stop Recording</string>
<string name="action_record_text">I start to record!</string>
<string name="action_record_text_off">I stop to record!</string>
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 4fa7b47..c6e0fcf 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">Nivel</string>
<string name="action_settings">Calibración</string>
<string name="action_record">Grabar</string>
+ <string name="action_record_off">Detener grabación</string>
<string name="action_record_text">Empiezo a grabar!</string>
<string name="action_record_text_off">Me detengo para grabar!</string>
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 4ec24e2..85b2639 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">Niveau</string>
<string name="action_settings">Paramètres</string>
<string name="action_record">Enregistrement</string>
+ <string name="action_record_off">Arrêter l\'enregistrement</string>
<string name="action_record_text">Je commence à enregistrer!</string>
<string name="action_record_text_off">Je cesse d\'enregistrer!</string>
@@ -16,7 +17,7 @@
<string name="change_text">Changer la langue vers le français</string>
- <string name="goodby">Merci de ce que vous utilisez un logiciel de Fools! </string>
+ <string name="goodby">Merci de ce que vous utilisez un logiciel de SoftwareFools! </string>
<string name="toast_force">Accélération détecté! \n Force de:</string>
</resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 3863fb2..3c59fdd 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">Livello</string>
<string name="action_settings">Impostazioni</string>
<string name="action_record">Registrar</string>
+ <string name="action_record_off">Interrompi registrazione</string>
<string name="action_record_text">Comincio a registrare!</string>
<string name="action_record_text_off">Mi fermo a registrare!</string>
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 7b127b6..af59281 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">Poziomnica</string>
<string name="action_settings">Ustawienia</string>
- <string name="action_record">Rekord</string>
+ <string name="action_record">Nagrywać</string>
+ <string name="action_record_off">Zatrzymaj nagrywanie</string>
<string name="action_record_text">Zacznę nagrywać!</string>
<string name="action_record_text_off">Zatrzymać nagrywanie!</string>
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1a16df4..d27c3ad 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
-
+ <string name="app_name">ватерпас</string>
<string name="action_settings">настройки</string>
<string name="action_record">запись</string>
+ <string name="action_record_off">Остановить запись</string>
<string name="action_record_text">Я начинаю записывать!</string>
<string name="action_record_text_off">Я останавливаюсь, чтобы записать!</string>
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 0b8d638..dc62354 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string-array name="langlist">
+ <string-array name="langlist" translatable="false">
<item>Deutsch</item>
<item>English</item>
<item>Español</item>
@@ -9,7 +9,7 @@
<item>Polski</item>
<item>Русский</item>
</string-array>
- <string-array name="langValues">
+ <string-array name="langValues" translatable="false">
<item>de</item>
<item>en</item>
<item>es</item>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b3c7ed5..b856001 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,50 +3,58 @@
<string name="app_name">SpiritLevel</string>
- <string name="hello_world">Hello world!</string>
-
- <string name="newton">Newton!</string>
- <string name="newton_short">N</string>
- <string name="fuckoff">Fuck Off!</string>
-
- <string name="lang_german">Deutsch</string>
- <string name="lang_english">English</string>
- <string name="lang_spanish">Español</string>
- <string name="lang_french">Français</string>
- <string name="lang_italian">Italiano</string>
- <string name="lang_polish">Polski</string>
- <string name="lang_russian">Русский</string>
-
- <string name="settings_devname">Device Name</string>
- <string name="settings_devname_sum">Please provide Devices Name</string>
- <string name="setting_recording">Set to Record</string>
- <string name="setting_recording_sum">Records Sensor Output when set</string>
- <string name="settings_overall">System Settings</string>
- <string name="settings_recording_preferences">Data Acquisition Setting</string>
- <string name="settings_sound">Language and Messages</string>
- <string name="settings_launch_preferences">Launch Settings</string>
- <string name="settings_intent_reset">Reset System</string>
- <string name="settings_intent_reset_sum">Resets the System</string>
- <string name="setting_speak">Talk</string>
- <string name="setting_speak_sum">Let the System Talk to you</string>
- <string name="setting_write">Write</string>
- <string name="setting_write_sum">Recieve written Notes from the System</string>
- <string name="settings_devweight">Device Weight</string>
- <string name="settings_devweight_sum">Put in your devices weight in gramm</string>
- <string name="settings_intent_bugreport">Report A Bug</string>
- <string name="settings_intent_bugreport_sum">Redirect to the SF.com Mantis server</string>
- <string name="settings_language">Select Language</string>
- <string name="settings_language_sum">Select one of the available Languages</string>
- <string name="setting_accel">Accelleration</string>
- <string name="setting_accel_sum">Show Acceleration vector on the Coordinates</string>
- <string name="setting_gravity">Gravity</string>
- <string name="setting_gravity_sum">Show gravitational acceleration on Coords</string>
- <string name="setting_pitch">Pitch</string>
- <string name="setting_pitch_sum">Set Voice Pitch</string>
- <string name="setting_rate">Rate</string>
- <string name="setting_rate_sum">Set the Rate of Speech</string>
-
- <string name="setting_dialog_message">Dialog Slider shit</string>
- <string name="setting_unit">Units</string>
+ <string translatable="false" name="hello_world">Hello world!</string>
+ <string translatable="false" name="newton">Newton!</string>
+ <string translatable="false" name="newton_short">N</string>
+ <string translatable="false" name="fuckoff">Fuck Off!</string>
+
+ <string translatable="false" name="settings_devname">Device Name</string>
+ <string translatable="false" name="settings_devname_sum">Please provide Devices Name</string>
+ <string translatable="false" name="setting_recording">Set to Record</string>
+ <string translatable="false" name="setting_recording_sum">Records Sensor Output when set</string>
+ <string translatable="false" name="settings_overall">System Settings</string>
+ <string translatable="false" name="settings_recording_preferences">Data Acquisition Setting</string>
+ <string translatable="false" name="settings_sound">Language and Messages</string>
+ <string translatable="false" name="settings_launch_preferences">Launch Settings</string>
+ <string translatable="false" name="settings_intent_reset">Reset System</string>
+ <string translatable="false" name="settings_intent_reset_sum">Resets the System</string>
+ <string translatable="false" name="setting_speak">Talk</string>
+ <string translatable="false" name="setting_speak_sum">Let the System Talk to you</string>
+ <string translatable="false" name="setting_write">Write</string>
+ <string translatable="false" name="setting_write_sum">Recieve written Notes from the System</string>
+ <string translatable="false" name="settings_devweight">Device Weight</string>
+ <string translatable="false" name="settings_devweight_sum">Put in your devices weight in gramm</string>
+ <string translatable="false" name="settings_intent_bugreport">Report A Bug</string>
+ <string translatable="false" name="settings_intent_bugreport_sum">Redirect to the SF.com Mantis server</string>
+ <string translatable="false" name="settings_language">Select Language</string>
+ <string translatable="false" name="settings_language_sum">Select one of the available Languages</string>
+ <string translatable="false" name="setting_accel">Accelleration</string>
+ <string translatable="false" name="setting_accel_sum">Show Acceleration vector on the Coordinates</string>
+ <string translatable="false" name="setting_mag">Magnetic Field</string>
+ <string translatable="false" name="setting_mag_sum">Show Magnetic Field on the Coordinates</string>
+ <string translatable="false" name="setting_gravity">Gravity</string>
+ <string translatable="false" name="setting_gravity_sum">Show gravitational acceleration on Coords</string>
+ <string translatable="false" name="setting_pitch">Pitch</string>
+ <string translatable="false" name="setting_pitch_sum">Set Voice Pitch</string>
+ <string translatable="false" name="setting_rate">Rate</string>
+ <string translatable="false" name="setting_rate_sum">Set the Rate of Speech</string>
+
+ <string translatable="false" name="setting_dialog_message">Dialog Slider shit</string>
+ <string translatable="false" name="setting_unit">Units</string>
+
+
+
+ <string name="action_settings">Settings</string>
+ <string name="action_record">Record</string>
+ <string name="action_record_off">Stop Recording</string>
+ <string name="action_record_text">I start to record!</string>
+ <string name="action_record_text_off">I stop to record!</string>
+ <string name="alert">Attention! Thats about </string>
+ <string name="action_lang">Change Language</string>
+ <string name="action_lang_NA">English speech files are not installed! Please install them in your Phone Settings, when needed</string>
+ <string name="action_exit">Exit</string>
+ <string name="change_text">Changing Language to English</string>
+ <string name="goodby">Thank You for using Software Fools Software! Which never fooled anybody</string>
+ <string name="toast_force">Accelleration detected \n Force:</string>
</resources>
diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml
index d595685..8d989f4 100644
--- a/app/src/main/res/xml/settings.xml
+++ b/app/src/main/res/xml/settings.xml
@@ -19,6 +19,10 @@
android:defaultValue="true"
android:summary="@string/setting_accel_sum"
android:key="applicationShowAccel" />
+ <CheckBoxPreference android:title="@string/setting_mag"
+ android:defaultValue="true"
+ android:summary="@string/setting_mag_sum"
+ android:key="applicationShowMag" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/settings_sound">
@@ -32,6 +36,7 @@
<SeekBarPreference
android:defaultValue="10"
android:max="20"
+ android:focusableInTouchMode="true"
android:title="@string/setting_pitch"
android:summary="@string/setting_pitch_sum"
android:key="applicationPitch">