From a904b9153bc5b34a6b5491b885d93fdb5b0179b0 Mon Sep 17 00:00:00 2001 From: Herbert von Broeuschmeul Date: Fri, 3 Dec 2010 02:01:17 +0100 Subject: first try to add an about window (merge from 1.0.x dev branch) --- .../bluetooth/provider/BluetoothGpsActivity.java | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'src/org/broeuschmeul') diff --git a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java index 742a3d4..76782fc 100644 --- a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java +++ b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java @@ -22,6 +22,7 @@ package org.broeuschmeul.android.gps.bluetooth.provider; import java.util.Set; +import android.app.AlertDialog; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.Intent; @@ -35,6 +36,8 @@ import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceChangeListener; import android.util.Log; +import android.view.View; +import android.widget.TextView; /** * A PreferenceActivity Class used to configure, start and stop the NMEA tracker service. @@ -128,6 +131,23 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer sharedPref.unregisterOnSharedPreferenceChangeListener(this); } + private void displayAboutDialog(){ + View messageView = getLayoutInflater().inflate(R.layout.about, null, false); + // When linking text, force to always use default color. This works + // around a pressed color state bug. + TextView textView = (TextView) messageView.findViewById(R.id.about_sources); + int defaultColor = textView.getTextColors().getDefaultColor(); + textView.setTextColor(defaultColor); + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.aboutTitle); + builder.setView(messageView); + +// CharSequence styledText = Html.fromHtml(getString(R.string.about)); +// builder.setMessage(R.string.about); +// builder.setMessage(styledText); + builder.show(); + } + @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub @@ -135,7 +155,9 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer } @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, + String key) { + displayAboutDialog(); if (BluetoothGpsProviderService.PREF_START_GPS_PROVIDER.equals(key)){ boolean val = sharedPreferences.getBoolean(key, false); CheckBoxPreference pref = (CheckBoxPreference)findPreference(key); -- cgit v1.1 From 173e2bd256382e33de5ece287a1ec5667196a2e4 Mon Sep 17 00:00:00 2001 From: Herbert von Broeuschmeul Date: Fri, 3 Dec 2010 02:09:21 +0100 Subject: add an "About window" (merge from branch dev 1.0.x) --- .../bluetooth/provider/BluetoothGpsActivity.java | 34 +++++++++++++++++----- .../provider/BluetoothGpsProviderService.java | 1 + 2 files changed, 27 insertions(+), 8 deletions(-) (limited to 'src/org/broeuschmeul') diff --git a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java index 76782fc..53037c1 100644 --- a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java +++ b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsActivity.java @@ -20,6 +20,7 @@ package org.broeuschmeul.android.gps.bluetooth.provider; +import java.util.HashSet; import java.util.Set; import android.app.AlertDialog; @@ -35,6 +36,7 @@ import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceChangeListener; +import android.text.method.LinkMovementMethod; import android.util.Log; import android.view.View; import android.widget.TextView; @@ -61,6 +63,14 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer sharedPref = PreferenceManager.getDefaultSharedPreferences(this); sharedPref.registerOnSharedPreferenceChangeListener(this); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + Preference pref = findPreference(BluetoothGpsProviderService.PREF_ABOUT); + pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + BluetoothGpsActivity.this.displayAboutDialog(); + return true; + } + }); } /* (non-Javadoc) @@ -88,7 +98,10 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer updateDevicePreferenceSummary(); // update bluetooth device list ListPreference prefDevices = (ListPreference)findPreference(BluetoothGpsProviderService.PREF_BLUETOOTH_DEVICE); - Set pairedDevices = bluetoothAdapter.getBondedDevices(); + Set pairedDevices = new HashSet(); + if (bluetoothAdapter != null){ + pairedDevices = bluetoothAdapter.getBondedDevices(); + } String[] entryValues = new String[pairedDevices.size()]; String[] entries = new String[pairedDevices.size()]; int i = 0; @@ -121,7 +134,7 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer pref.setSummary(s); Log.v(LOG_TAG, "loc. provider: "+s); Log.v(LOG_TAG, "loc. provider: "+pref.getSummary()); - } + } this.onContentChanged(); } @@ -130,18 +143,25 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer super.onDestroy(); sharedPref.unregisterOnSharedPreferenceChangeListener(this); } - + private void displayAboutDialog(){ View messageView = getLayoutInflater().inflate(R.layout.about, null, false); + // we need this to enable html links + TextView textView = (TextView) messageView.findViewById(R.id.about_license); + textView.setMovementMethod(LinkMovementMethod.getInstance()); // When linking text, force to always use default color. This works // around a pressed color state bug. - TextView textView = (TextView) messageView.findViewById(R.id.about_sources); int defaultColor = textView.getTextColors().getDefaultColor(); textView.setTextColor(defaultColor); + textView = (TextView) messageView.findViewById(R.id.about_sources); + textView.setTextColor(defaultColor); + AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.aboutTitle); + builder.setTitle(R.string.about_title); + builder.setIcon(R.drawable.gplv3_icon); builder.setView(messageView); + // CharSequence styledText = Html.fromHtml(getString(R.string.about)); // builder.setMessage(R.string.about); // builder.setMessage(styledText); @@ -155,9 +175,7 @@ public class BluetoothGpsActivity extends PreferenceActivity implements OnPrefer } @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, - String key) { - displayAboutDialog(); + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (BluetoothGpsProviderService.PREF_START_GPS_PROVIDER.equals(key)){ boolean val = sharedPreferences.getBoolean(key, false); CheckBoxPreference pref = (CheckBoxPreference)findPreference(key); diff --git a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsProviderService.java b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsProviderService.java index 8eccd7f..41ec34e 100644 --- a/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsProviderService.java +++ b/src/org/broeuschmeul/android/gps/bluetooth/provider/BluetoothGpsProviderService.java @@ -69,6 +69,7 @@ public class BluetoothGpsProviderService extends Service implements NmeaListener public static final String PREF_TRACK_FILE_DIR = "trackFileDirectory"; public static final String PREF_TRACK_FILE_PREFIX = "trackFilePrefix"; public static final String PREF_BLUETOOTH_DEVICE = "bluetoothDevice"; + public static final String PREF_ABOUT = "about"; private static final String LOG_TAG = "BlueGPS"; // private static final String LOG_TAG = BluetoothGpsProviderService.class.getSimpleName(); -- cgit v1.1