summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/softwarefools/nik
diff options
context:
space:
mode:
authorNikolaus Gotsche <n@softwarefools.com>2015-12-05 02:32:33 +0100
committerNikolaus Gotsche <n@softwarefools.com>2015-12-05 02:32:33 +0100
commit24336d51eb3b8692236225901422d362ff856b25 (patch)
tree73ee480e753161e68fbee88e79a2b7681d3840b2 /app/src/main/java/com/softwarefools/nik
parent4cff31bfd20d305a7858c28ac2eee5d8d5839b74 (diff)
Relevant Angles
Bugfixes TTS
Diffstat (limited to 'app/src/main/java/com/softwarefools/nik')
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java65
-rw-r--r--app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java93
2 files changed, 112 insertions, 46 deletions
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 36afe67..3f3c890 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java
@@ -24,6 +24,7 @@ import android.content.res.Resources;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.provider.Settings;
+import android.speech.tts.Voice;
import android.util.DisplayMetrics;
//
//
@@ -71,8 +72,8 @@ public class LevelActivity extends Activity implements MySensorListener{
private Vector<nikVector> accelvector;
private Vector<nikVector> gravvector;
- private TextView accelField;
- private TextView gravityField;
+ //private TextView accelField;
+ //private TextView gravityField;
private Random r;
@@ -104,8 +105,8 @@ public class LevelActivity extends Activity implements MySensorListener{
r = new Random();
- accelvector= new Vector<nikVector>();
- gravvector = new Vector<nikVector>();
+ accelvector= new Vector<>();
+ gravvector = new Vector<>();
//TTS Engine
Intent checkTTSIntent = new Intent();
@@ -181,24 +182,42 @@ public class LevelActivity extends Activity implements MySensorListener{
@Override
public void onResume() {
super.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);
+ }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();
+ }
+ }
+ });
//Toast.makeText(getBaseContext(), "On Resume", Toast.LENGTH_SHORT).show(); // Toast Vorlage
// Toast.makeText(getBaseContext(), "onResume Sensors Started", Toast.LENGTH_SHORT).show();
- 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);
- }
+
orientation=getScreenOrientation();
// orientation= getResources().getConfiguration().orientation;
//Check device supported Accelerometer senssor or not
@@ -328,6 +347,7 @@ public class LevelActivity extends Activity implements MySensorListener{
@Override
public void onGravityChanged(float x, float y, float z) {
// TODO Auto-generated method stub
+ System.out.println("Noticed Gravity Change");
float sq= (float)x*x+y*y+z*z;
float sum=(float)Math.sqrt(sq);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -336,12 +356,14 @@ public class LevelActivity extends Activity implements MySensorListener{
temp.setVector(getTime(),x/sum,y/sum,z/sum);
if(prefs.getBoolean("applicationRecording",true))gravvector.add(temp);
- levelView.updateData(x/sum, y/sum, z/sum,orientation);
+ String debug="LevelActivityDebug";
+ levelView.updateData(x/sum, y/sum, z/sum,orientation,debug);
}
@Override
public void onAccelerationChanged(float x, float y, float z) {
// TODO Auto-generated method stub
+ System.out.println("Noticed Acceleration Change");
float sq= (float)x*x+y*y+z*z;
float sum=(float)Math.sqrt(sq);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
@@ -356,6 +378,7 @@ public class LevelActivity extends Activity implements MySensorListener{
@Override
public void onShake(float force) {
// TODO Auto-generated method stub
+ 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));
/*
String maketext= this.getString(R.string.alert)+(int)force+this.getString(R.string.newton);
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 bf0a1b4..b74d708 100644
--- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java
+++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelView.java
@@ -72,6 +72,8 @@ public class LevelView extends View{
private float x_gravEnd=0;
private float y_gravEnd=0;
+ private float x_gravAngEnd=0;
+ private float y_gravAngEnd=0;
private float x_accEnd=0;
private float y_accEnd=0;
@@ -99,7 +101,7 @@ public class LevelView extends View{
SharedPreferences mySettings;
- private String langname="";
+ private String levelActDebug="";
//private float ballX = ballRadius + 20; // Ball's center (x,y)
//private float ballY = ballRadius + 40;
@@ -266,6 +268,9 @@ public class LevelView extends View{
// 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_accEnd=xCenter+(y_accSense-y_gravSense)*ballRadius;
y_accEnd=yCenter+(x_accSense-x_gravSense)*ballRadius;
x_horizon=xCenter-x_gravSense*maxdiameter;
@@ -329,7 +334,12 @@ public class LevelView extends View{
canvas.drawText("Y",yAxisTag_x,yAxisTag_y,paintAxisLines);
canvas.drawText("-X",xAxisTagNeg_x,xAxisTagNeg_y,paintAxisLines);
canvas.drawText("-Y",yAxisTagNeg_x,yAxisTagNeg_y,paintAxisLines);
-
+
+ // Important Angles
+
+ canvas.drawText(makeDegAngle(getAlpha(y_gravSense,z_gravSense)),xCenter-150, displayheight -mActionBarSize-statusbarSize- margin, paintTexts);
+ canvas.drawText(makeDegAngle(getAlpha(x_gravSense,z_gravSense)),displaywidth-150,yAxisTag_y,paintTexts);
+
//Draw Vector/Ball and Text
setVectorColor();
@@ -360,9 +370,14 @@ public class LevelView extends View{
canvas.drawLine(xCenter, yCenter, x_gravEnd, y_gravEnd, paintVector);
canvas.drawLine(xCenter, yCenter, x_horizon, y_horizon, paintVectorHelp);
canvas.drawLine(xCenter, yCenter, x_horizon2, y_horizon2, paintVectorHelp);
+
+ canvas.drawText(makeDegAngle(getAlpha(y_gravSense,x_gravSense)),x_gravAngEnd-150,y_gravAngEnd,paintTexts);
}
}
canvas.save();
+
+
+ //Texts
//canvas.rotate((float) (180*getAngle(y_gravSense, x_gravSense)/Math.PI));
float sum_g=(float)Math.sqrt(x_gravSense*x_gravSense+y_gravSense*y_gravSense+z_gravSense*z_gravSense);
float sum_gmin=(float)getLength(x_gravSense_min,y_gravSense_min,z_gravSense_min);
@@ -370,12 +385,22 @@ public class LevelView extends View{
float sum_na =(float) getLength(x_accSense-x_gravSense,y_accSense-y_gravSense,z_accSense-z_gravSense);
if(mySettings.getBoolean("applicationShowGrav",true)) {
- canvas.drawText("G [m\u00B2/s]", x_gravEnd + levelballRadius + margin, y_gravEnd + margin, paintVector);
- canvas.drawText("\u01A9 " + niceValue(sum_g), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + vectTextSize + vectTextDist, paintVector);
- canvas.drawText("x " + niceValue(x_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 2 * vectTextSize + vectTextDist, paintVector);
- canvas.drawText("y " + niceValue(y_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 3 * vectTextSize + vectTextDist, paintVector);
- canvas.drawText("z " + niceValue(z_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 4 * vectTextSize + vectTextDist, paintVector);
- canvas.restore();
+ if((y_gravEnd + margin + 4 * vectTextSize + vectTextDist)<(displayheight -mActionBarSize-statusbarSize-margin)) {
+ canvas.drawText("G [m\u00B2/s]", x_gravEnd + levelballRadius + margin, y_gravEnd + margin, paintVector);
+ canvas.drawText("\u01A9 " + niceValue(sum_g), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + vectTextSize + vectTextDist, paintVector);
+ canvas.drawText("x " + niceValue(x_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 2 * vectTextSize + vectTextDist, paintVector);
+ canvas.drawText("y " + niceValue(y_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 3 * vectTextSize + vectTextDist, paintVector);
+ canvas.drawText("z " + niceValue(z_gravSense), x_gravEnd + levelballRadius + margin, y_gravEnd + margin + 4 * vectTextSize + vectTextDist, paintVector);
+ canvas.restore();
+ }else{
+ canvas.drawText("G [m\u00B2/s]", x_gravEnd + levelballRadius + margin, displayheight-mActionBarSize-statusbarSize - margin - 4*vectTextSize - vectTextDist, paintVector);
+ canvas.drawText("\u01A9 " + niceValue(sum_g), x_gravEnd + levelballRadius + margin, displayheight -mActionBarSize-statusbarSize- margin - 3*vectTextSize , paintVector);
+ canvas.drawText("x " + niceValue(x_gravSense), x_gravEnd + levelballRadius + margin, displayheight -mActionBarSize-statusbarSize- margin - 2 * vectTextSize , paintVector);
+ canvas.drawText("y " + niceValue(y_gravSense), x_gravEnd + levelballRadius + margin, displayheight-mActionBarSize-statusbarSize -margin - 1 * vectTextSize , paintVector);
+ canvas.drawText("z " + niceValue(z_gravSense), x_gravEnd + levelballRadius + margin, displayheight -mActionBarSize-statusbarSize- margin , paintVector);
+
+ canvas.restore();
+ }
}
// Acceleration Sumup
@@ -395,29 +420,43 @@ public class LevelView extends View{
//Draw Debug
+
+
String current = getResources().getConfiguration().locale.getLanguage();
String screeninfo = "Width: "+ displaywidth+ "Height: "+ displayheight + " Orientation :" + String.valueOf(orientation);
canvas.drawText(screeninfo, margin, margin+vectTextSize, paintTexts);
canvas.drawText(String.valueOf(inHorizontalMode()), margin, margin+2*vectTextSize+vectTextDist, paintTexts);
- canvas.drawText(String.valueOf(alpha), margin, margin+3*vectTextSize+vectTextDist, paintTexts);
- canvas.drawText(makeDegAngle(alpha), margin, margin+4*vectTextSize+vectTextDist, paintTexts);
- canvas.drawText(niceValue(sum_na), margin, margin+5*vectTextSize+vectTextDist, paintTexts);
- canvas.drawText(current, margin, margin+6*vectTextSize+vectTextDist, paintTexts);
+ 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(levelActDebug, margin, margin+7*vectTextSize+vectTextDist, paintTexts);
}
public String niceValue(float x){
double g= 9.80665;
return f.format(x*g);
}
public String makeDegAngle(double grad){
- double alphadeg = 180*grad/Math.PI;
- return f.format(alphadeg)+"\u00B0";
+ //double alphadeg = 180*grad/Math.PI;
+ double d=0;
+ if(grad>89.99)d=90;
+ else if(grad<0.001 && grad>-0.001)d=0.0;
+ else if(grad<-89.99
+ )d=-90;
+ else d=grad;
+ return f.format(d)+"\u00B0";
}
public double getAngle(float x, float y){
- double res = Math.atan((x/y));
- if(y<0 && x>0)res=Math.PI+res;
- else if(y<0 && x<0)res=res-Math.PI;
-
- return res;
+ double div = (double)x/y;
+ float theta = (float) Math.toDegrees(Math.atan(div));
+ System.out.println(theta); // 53.130104
+ return theta;
+ }
+ public double getAlpha(float x,float y){
+ double div = (double)x/y;
+ float theta = (float) Math.toDegrees(Math.atan(div));
+
+ return theta;
}
public double getLength(float x, float y, float z){
double res = Math.sqrt(x*x+y*y+z*z);
@@ -432,16 +471,15 @@ public class LevelView extends View{
return result;
}
- public void updateData(float x,float y,float z,int orientation) {
- if (getLength(x_gravSense_min,y_gravSense_min,z_gravSense_min)>getLength(x,y,z)){
- this.x_gravSense_min=x;
- this.y_gravSense_min=y;
- this.z_gravSense_min=z;
- }
+ public void updateData(float x,float y,float z,int orientation,String debug) {
+ //float x_resultForce=x+x_accSense
+
this.x_gravSense = x;
this.y_gravSense = y;
this.z_gravSense = z;
this.orientation = orientation;
+ this.levelActDebug=debug;
+
invalidate();
}
public void updateAccelData(float x,float y,float z,int orientation) {
@@ -450,6 +488,11 @@ public class LevelView extends View{
this.y_accSense_max=y-y_gravSense;
this.z_accSense_max=z-z_gravSense;
}
+ if (getLength(x_gravSense_min,y_gravSense_min,z_gravSense_min)>getLength(x,y,z)){
+ this.x_gravSense_min=x;
+ this.y_gravSense_min=y;
+ this.z_gravSense_min=z;
+ }
this.x_accSense = x;
this.y_accSense = y;
this.z_accSense = z;