package edu.fsu.cs.contextprovider.shared; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import edu.fsu.cs.contextprovider.R; import android.app.AlertDialog; import android.app.Dialog; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.text.Html; import android.widget.Toast; public class PrefsActivity extends PreferenceActivity implements OnPreferenceClickListener, OnPreferenceChangeListener { public static final String VERSION = "versionPreference"; private static final int DIALOG_CHANGELOG = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); Preference helpPref = (Preference) findPreference("helpPreference"); helpPref.setIntent(new Intent(this, edu.fsu.cs.contextprovider.shared.HelpActivity.class)); Preference changelogPref = (Preference) findPreference("changelogPreference"); changelogPref.setOnPreferenceClickListener(this); Preference contactDeveloperPref = (Preference) findPreference("contactDeveloperPreference"); contactDeveloperPref.setOnPreferenceClickListener(this); Preference aboutPref = (Preference) findPreference("aboutPreference"); aboutPref.setIntent(new Intent(this, edu.fsu.cs.contextprovider.shared.AboutActivity.class)); } @Override protected void onResume() { super.onResume(); } public boolean onPreferenceClick(Preference preference) { if (preference.getKey().equals("changelogPreference")) { showDialog(DIALOG_CHANGELOG); } else if (preference.getKey().equals("contactDeveloperPreference")) { final Intent emailIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:mikmitch1@gmail.com")); try { startActivity(emailIntent); } catch (ActivityNotFoundException e) { Toast.makeText(this, R.string.error_email, Toast.LENGTH_LONG).show(); } } return false; } @Override protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_CHANGELOG: StringBuilder changelog = new StringBuilder(); BufferedReader input; try { InputStream is = getResources().openRawResource(R.raw.changelog); input = new BufferedReader(new InputStreamReader(is)); String line; while ((line = input.readLine()) != null) { changelog.append(line); changelog.append("<br/>"); } input.close(); } catch (IOException e) { e.printStackTrace(); } return new AlertDialog.Builder(this).setTitle(R.string.changelog_title).setMessage(Html.fromHtml(changelog.toString())).setPositiveButton(R.string.close, null).create(); } return null; } public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub return false; } }