From 555b367a8197b9d5e1dea80e81f3021e24754e29 Mon Sep 17 00:00:00 2001 From: Nikolaus Gotsche Date: Tue, 1 Dec 2015 05:47:56 +0100 Subject: Now With Settings Menu --- app/build.gradle | 2 +- .../nik/spiritlevel/AppPreferences.java | 36 +++++ .../nik/spiritlevel/LevelActivity.java | 170 +++++++++++++++++---- .../softwarefools/nik/spiritlevel/nikVector.java | 33 ++++ app/src/main/res/menu/level.xml | 5 + app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values-en/strings.xml | 4 +- app/src/main/res/values-es/strings.xml | 4 +- app/src/main/res/values-pl/strings.xml | 7 +- app/src/main/res/values/strings.xml | 16 ++ app/src/main/res/xml/preference.xml | 10 ++ app/src/main/res/xml/settings.xml | 38 +++++ 12 files changed, 290 insertions(+), 37 deletions(-) create mode 100644 app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java create mode 100644 app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java create mode 100644 app/src/main/res/xml/preference.xml create mode 100644 app/src/main/res/xml/settings.xml diff --git a/app/build.gradle b/app/build.gradle index 80c13dc..8fbc211 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ android { defaultConfig { applicationId "com.example.spiritlevel" - minSdkVersion 8 + minSdkVersion 11 targetSdkVersion 18 } diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java new file mode 100644 index 0000000..30be89a --- /dev/null +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/AppPreferences.java @@ -0,0 +1,36 @@ +package com.softwarefools.nik.spiritlevel; +import com.example.spiritlevel.R; + +/** + * Created by nick on 01.12.15. + */ +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceScreen; + +public class AppPreferences extends PreferenceActivity { + + public static final String PREFS_NAME = "MyPrefsFile"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); + + + //Initialize the "up" button + // getActionBar().setDisplayHomeAsUpEnabled(true); + } + + public static class MyPreferenceFragment extends PreferenceFragment + { + @Override + public void onCreate(final Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.settings); + } + } + +} 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 75049a7..6875f54 100644 --- a/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/LevelActivity.java @@ -5,15 +5,23 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; - +import android.app.FragmentManager; +import android.app.FragmentTransaction; +import android.content.SharedPreferences; import java.util.Locale; +import java.util.Map; import java.util.Random; +import java.util.Set; +import java.util.Vector; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.provider.Settings; import android.util.DisplayMetrics; // // @@ -41,13 +49,22 @@ import android.view.View; import android.widget.TextView; import android.widget.Toast; +//Toast.makeText(getBaseContext(), "Sometext", Toast.LENGTH_SHORT).show(); // Toast Vorlage + public class LevelActivity extends Activity implements MySensorListener{ - public static DecimalFormat f = new DecimalFormat("#0.000"); + public static DecimalFormat f = new DecimalFormat("#0.000"); + + public static final String PREFS_NAME = "MyPrefsFile"; + private SensorManager mSensorManager; private Sensor mySensor; private Sensor aSensor,gSensor; private LevelView levelView; + private AppPreferences myprefs; + + private Vector accelvector; + private Vector gravvector; private TextView accelField; private TextView gravityField; @@ -57,6 +74,8 @@ public class LevelActivity extends Activity implements MySensorListener{ private Locale myLocale; + SharedPreferences mySettings; + TextToSpeech t1; @@ -67,8 +86,23 @@ public class LevelActivity extends Activity implements MySensorListener{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); levelView = new LevelView(this); + myprefs = new AppPreferences(); + setContentView(levelView); + + mySettings = PreferenceManager.getDefaultSharedPreferences(this); + + //Fragments + //getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit(); + /*FragmentManager mFragmentManager = getFragmentManager(); + FragmentTransaction mFragmentTransaction = mFragmentManager + .beginTransaction(); + PrefsFragment mPrefsFragment = new PrefsFragment(); + mFragmentTransaction.replace(android.R.id.content, mPrefsFragment); + mFragmentTransaction.commit();*/ + + r = new Random(); mysupplangs = new ArrayList(); mysupplangs.add("de"); @@ -82,16 +116,27 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onInit(int status) { if(status != TextToSpeech.ERROR) { - - t1.setLanguage(getResources().getConfiguration().locale); + 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(); + t1.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); + } + //t1.setLanguage(getResources().getConfiguration().locale); } } }); - // - // - //t1.speak(Locale.getDefault().getLanguage(), TextToSpeech.QUEUE_FLUSH, null); - //Toast.makeText(getBaseContext(), "|"+Locale.getDefault().getLanguage()+"|",Toast.LENGTH_SHORT).show(); - //langname="de"; + setupActionBar(); @@ -108,9 +153,23 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onResume() { super.onResume(); - Toast.makeText(getBaseContext(), "onResume Sensors Started", - Toast.LENGTH_SHORT).show(); - + // 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(); + t1.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 @@ -131,8 +190,7 @@ public class LevelActivity extends Activity implements MySensorListener{ //Start Accelerometer Listening MySensorManager.stopListening(); - Toast.makeText(getBaseContext(), "onStop Sensors Stoped", - Toast.LENGTH_SHORT).show(); + //Toast.makeText(getBaseContext(), "onStop Sensors Stoped",Toast.LENGTH_SHORT).show(); } } @@ -148,8 +206,7 @@ public class LevelActivity extends Activity implements MySensorListener{ //Start Accelerometer Listening MySensorManager.stopListening(); - Toast.makeText(getBaseContext(), "onDestroy Sensors Stoped", - Toast.LENGTH_SHORT).show(); + //Toast.makeText(getBaseContext(), "onDestroy Sensors Stoped", Toast.LENGTH_SHORT).show(); } } @@ -169,39 +226,55 @@ public class LevelActivity extends Activity implements MySensorListener{ // Handle item selection switch (item.getItemId()) { case R.id.action_settings: - t1.speak(this.getString(R.string.action_settings), TextToSpeech.QUEUE_FLUSH, null); + beLoud(this.getString(R.string.action_settings)); + //t1.speak(this.getString(R.string.action_settings), TextToSpeech.QUEUE_FLUSH, null); + Intent refresh = new Intent(this, AppPreferences.class); + startActivity(refresh); + 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)) { + Boolean a= prefs.getBoolean("applicationRecording",false); + beLoud(this.getString(R.string.action_record_text),a.toString()); + SharedPreferences.Editor editor = prefs.edit(); + editor.putBoolean("applicationRecording",true); + editor.commit(); + } else { + SharedPreferences.Editor editor = prefs.edit(); + editor.putBoolean("applicationRecording", false); + editor.commit(); + + // Save The DATA + } + + return true; case R.id.action_exit: - t1.speak(this.getString(R.string.goodby), TextToSpeech.QUEUE_FLUSH, null); + //t1.speak(this.getString(R.string.goodby), TextToSpeech.QUEUE_FLUSH, null); + + exitAll(); - System.exit(0); return true; case R.id.action_changelang: + //t1.speak(this.getString(R.string.change_text), TextToSpeech.QUEUE_FLUSH, null); String comp=getResources().getConfiguration().locale.getLanguage(); String neus; do { int neur = r.nextInt(mysupplangs.size()); neus = mysupplangs.get(neur); }while(comp.contains(neus)); + setLocale(neus); - t1.speak(this.getString(R.string.change_text), TextToSpeech.QUEUE_FLUSH, null); - /* - Schumamal..... Niks next Commit Test mit PW - if (comp.contains("en")) { - t1.speak(this.getString(R.string.change_text)+this.getString(R.string.change_german), TextToSpeech.QUEUE_FLUSH, null); - //t1.setLanguage(getResources().getConfiguration().locale); - setLocale("de"); + /* - }else if (comp.contains("de")) { - t1.speak(this.getString(R.string.change_text)+this.getString(R.string.change_english), TextToSpeech.QUEUE_FLUSH, null); - //t1.setLanguage(Locale.ENGLISH); - setLocale("en"); - }else t1.speak(this.getString(R.string.fuckoff), TextToSpeech.QUEUE_FLUSH, null); */ return true; default: @@ -229,10 +302,13 @@ public class LevelActivity extends Activity implements MySensorListener{ @Override public void onShake(float force) { // TODO Auto-generated method stub + 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); //Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show(); t1.speak(maketext, TextToSpeech.QUEUE_FLUSH, null); Toast.makeText(getBaseContext(), this.getString(R.string.toast_force)+force+this.getString(R.string.newton_short),Toast.LENGTH_SHORT).show(); + */ } /** @@ -307,6 +383,10 @@ public class LevelActivity extends Activity implements MySensorListener{ return orientation; } public void setLocale(String lang) { + + SharedPreferences.Editor editor = mySettings.edit(); + editor.putString("applicationLanguage", lang); + editor.commit(); myLocale = new Locale(lang); //langname=lang; Resources res = getResources(); @@ -316,8 +396,34 @@ public class LevelActivity extends Activity implements MySensorListener{ res.updateConfiguration(conf, dm); Intent refresh = new Intent(this, LevelActivity.class); startActivity(refresh); + t1.setLanguage(getResources().getConfiguration().locale); + beLoud(this.getString(R.string.change_text)); + //t1.speak(this.getString(R.string.change_text), TextToSpeech.QUEUE_FLUSH, null); setupActionBar(); finish(); - t1.setLanguage(getResources().getConfiguration().locale); + } + public void beLoud(String whatsay,String whatwrite){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + if(prefs.getBoolean("applicationWriting",true))Toast.makeText(getBaseContext(), whatwrite, Toast.LENGTH_LONG).show(); + if(prefs.getBoolean("applicationTalking",true))t1.speak(whatsay, TextToSpeech.QUEUE_FLUSH, null); + + + } + public void beLoud(String what){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + if(prefs.getBoolean("applicationWriting",true))Toast.makeText(getBaseContext(), what, Toast.LENGTH_LONG).show(); + if(prefs.getBoolean("applicationTalking",true))t1.speak(what, TextToSpeech.QUEUE_FLUSH, null); + + + } + public void exitAll(){ + t1.speak(this.getString(R.string.goodby), TextToSpeech.QUEUE_FLUSH, null); + while (t1.isSpeaking()){ + //system.Out.Println("Do something or nothing while speaking..") + } + System.exit(0); + } + + } diff --git a/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java b/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java new file mode 100644 index 0000000..9ff671a --- /dev/null +++ b/app/src/main/java/com/softwarefools/nik/spiritlevel/nikVector.java @@ -0,0 +1,33 @@ +package com.softwarefools.nik.spiritlevel; + +/** + * Created by nick on 01.12.15. + */ +public class nikVector { + + private long t; + private double x; + private double y; + private double z; + + public void nikVector(){ + //get current timestamp + this.t=System.currentTimeMillis()/1000;; + this.x=66.6; + this.y=77.7; + this.z=13.1982; + + } + public void nikVector(long ts,double a, double b , double c){ + this.t=ts; + this.x=a; + this.y=b; + this.z=c; + + } + public String getString(){ + String str=t+" : "+x+";"+y+";"+z ; + return str; + } + +} diff --git a/app/src/main/res/menu/level.xml b/app/src/main/res/menu/level.xml index 76cfed8..bdc368f 100644 --- a/app/src/main/res/menu/level.xml +++ b/app/src/main/res/menu/level.xml @@ -10,6 +10,11 @@ android:orderInCategory="100" android:showAsAction="collapseActionView" android:title="@string/action_settings"/> + Einstellungen + Aufnehmen + Ich nehme Auf! Achtung! Das waren diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index bb044b6..8a32421 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -3,7 +3,9 @@ Settings - + Record + I start to record! + Attention! Thats about Change Language diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ef91cd8..8405214 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -3,7 +3,9 @@ Calibración - + Grabar + Empiezo a grabar! + ¡Guarda! Estos son Cambiar idioma diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b7f5ee4..a322da9 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -3,7 +3,10 @@ Ustawienia - + Rekord + Zacznę nagrywać! + + Uwaga! To jest to około Zmień język @@ -11,7 +14,7 @@ Zmiana języka polerować - Dziękujemy za korzystanie z Software Fools Software! teraz spierdalaj + Dziękujemy za korzystanie z Software Fools Software! teraz spierdalaj wykryte przyspieszenie! \n Siła: diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 789db9f..237b4f2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,4 +11,20 @@ Deutsch English + + Device Name + Please provide Devices Name + Set to Record + Records Sensor Output when set + System Settings + Data Acquisition Setting + Launch Settings + Reset System + Resets the System + Talk + Let the System Talk to you + Write + Recieve written Notes from the System + + diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml new file mode 100644 index 0000000..1375291 --- /dev/null +++ b/app/src/main/res/xml/preference.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml new file mode 100644 index 0000000..de13ed0 --- /dev/null +++ b/app/src/main/res/xml/settings.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3