package net.wigle.wigleandroid; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.media.AudioManager; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Spinner; import android.widget.TextView; public class SpeechActivity extends ActionBarActivity { private static final int MENU_RETURN = 12; // used for shutting extraneous activities down on an error public static SpeechActivity speechActivity; /** Called when the activity is first created. */ @Override public void onCreate( final Bundle savedInstanceState) { super.onCreate( savedInstanceState ); final ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); } // set language MainActivity.setLocale( this ); setContentView( R.layout.speech ); speechActivity = this; // force media volume controls this.setVolumeControlStream( AudioManager.STREAM_MUSIC ); final SharedPreferences prefs = this.getSharedPreferences( ListFragment.SHARED_PREFS, 0); doCheckbox( prefs, R.id.speech_gps, ListFragment.PREF_SPEECH_GPS ); doCheckbox( prefs, R.id.speech_run, ListFragment.PREF_SPEAK_RUN ); doCheckbox( prefs, R.id.speech_new_wifi, ListFragment.PREF_SPEAK_NEW_WIFI ); doCheckbox( prefs, R.id.speech_new_cell, ListFragment.PREF_SPEAK_NEW_CELL ); doCheckbox( prefs, R.id.speech_queue, ListFragment.PREF_SPEAK_QUEUE ); doCheckbox( prefs, R.id.speech_miles, ListFragment.PREF_SPEAK_MILES ); doCheckbox( prefs, R.id.speech_time, ListFragment.PREF_SPEAK_TIME ); doCheckbox( prefs, R.id.speech_battery, ListFragment.PREF_SPEAK_BATTERY ); doCheckbox( prefs, R.id.speech_ssid, ListFragment.PREF_SPEAK_SSID, false ); doCheckbox( prefs, R.id.speech_wifi_restart, ListFragment.PREF_SPEAK_WIFI_RESTART ); // speech spinner Spinner spinner = (Spinner) findViewById(R.id.speak_spinner ); if ( ! TTS.hasTTS() ) { // no text to speech :( spinner.setEnabled( false ); final TextView speakText = (TextView) findViewById(R.id.speak_text ); speakText.setText(getString(R.string.no_tts)); } final String off = getString(R.string.off); final String sec = " " + getString(R.string.sec); final String min = " " + getString(R.string.min); final Long[] speechPeriods = new Long[]{ 10L,15L,30L,60L,120L,300L,600L,900L,1800L,0L }; final String[] speechName = new String[]{ "10" + sec,"15" + sec,"30" + sec, "1" + min,"2" + min,"5" + min,"10" + min,"15" + min,"30" + min, off }; SettingsFragment.doSpinner((Spinner)findViewById(R.id.speak_spinner), ListFragment.PREF_SPEECH_PERIOD, MainActivity.DEFAULT_SPEECH_PERIOD, speechPeriods, speechName, this); } @Override public void onDestroy() { speechActivity = null; super.onDestroy(); } private void doCheckbox( final SharedPreferences prefs, final int id, final String pref ) { doCheckbox( prefs, id, pref, true ); } private void doCheckbox( final SharedPreferences prefs, final int id, final String pref, final boolean defaultVal ) { final CheckBox box = (CheckBox) findViewById( id ); box.setChecked( prefs.getBoolean( pref, defaultVal ) ); box.setOnCheckedChangeListener( new OnCheckedChangeListener() { @Override public void onCheckedChanged( final CompoundButton buttonView, final boolean isChecked ) { final Editor editor = prefs.edit(); editor.putBoolean( pref, isChecked ); editor.apply(); } }); } /* Creates the menu items */ @Override public boolean onCreateOptionsMenu( final Menu menu ) { MenuItem item = menu.add(0, MENU_RETURN, 0, getString(R.string.menu_return)); item.setIcon( android.R.drawable.ic_media_previous ); return true; } /* Handles item selections */ @Override public boolean onOptionsItemSelected( final MenuItem item ) { switch ( item.getItemId() ) { case MENU_RETURN: finish(); return true; } return false; } }