implemented preferences

remotes/nogy/update_90
Georg Lukas 2010-01-06 17:37:16 +01:00
rodzic 717213667a
commit 5ab5ddedfb
5 zmienionych plików z 52 dodań i 4 usunięć

Wyświetl plik

@ -15,6 +15,8 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".PrefsAct"
android:label="@string/app_name" />
<service android:name=".AprsService">
<intent-filter>
<action android:name="de.duenndns.aprsdroid.SERVICE" />

Wyświetl plik

@ -1,7 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">APRSdroid</string>
<string name="firstrun">You need to configure APRSdroid first!</string>
<string name="singlelog">Single Shot</string>
<string name="startlog">Start Logging</string>
<string name="app_name">APRSdroid</string>
<string name="stoplog">Stop Logging</string>
<string name="p__ham">Amateur Radio</string>
<string name="p_callsign">Callsign</string>
<string name="p_callsign_summary">Your HAM radio callsign</string>
<string name="p_callsign_entry">Enter your callsign</string>
<string name="p_passcode">Passcode</string>
<string name="p_passcode_summary">APRS-IS validation passcode</string>
<string name="p_passcode_entry">Enter the passcode for your call</string>
<string name="p__network">Networking</string>
<string name="p_host">Server</string>
<string name="p_host_summary">APRS-IS server (port 8080) to send beacons</string>
<string name="p_host_entry">Enter the APRS-IS server hostname</string>
<string name="p_interval">Update interval</string>
<string name="p_interval_summary">Minutes between beacon transmissions</string>
<string name="p_interval_entry">Enter the update interval [min]</string>
<string name="p_distance">Update distance</string>
<string name="p_distance_summary">Kilometers before beacon transmission</string>
<string name="p_distance_entry">Enter the update distance [km]</string>
</resources>

Wyświetl plik

@ -4,15 +4,19 @@ import _root_.android.app.Activity
import _root_.android.content._
import _root_.android.location._
import _root_.android.os.Bundle
import _root_.android.preference.PreferenceManager
import _root_.android.util.Log
import _root_.android.view.View
import _root_.android.view.View.OnClickListener
import _root_.android.widget.Button
import _root_.android.widget.TextView
import _root_.android.widget.Toast
class APRSdroid extends Activity with LocationListener with OnClickListener {
val TAG = "APRSdroid"
lazy val prefs = PreferenceManager.getDefaultSharedPreferences(this)
lazy val lat = findViewById(R.id.lat).asInstanceOf[TextView]
lazy val lon = findViewById(R.id.lon).asInstanceOf[TextView]
lazy val status = findViewById(R.id.status).asInstanceOf[TextView]
@ -40,6 +44,17 @@ class APRSdroid extends Activity with LocationListener with OnClickListener {
registerReceiver(locReceiver, new IntentFilter(AprsService.UPDATE))
}
override def onResume() {
super.onResume()
List("callsign", "passcode", "host").foreach { p =>
if (!prefs.contains(p)) {
startActivity(new Intent(this, classOf[PrefsAct]));
Toast.makeText(this, R.string.firstrun, Toast.LENGTH_SHORT).show()
return
}
}
}
override def onDestroy() {
super.onDestroy()
unregisterReceiver(locReceiver)

Wyświetl plik

@ -4,6 +4,7 @@ import _root_.android.app.Service
import _root_.android.content.{Context, Intent}
import _root_.android.location._
import _root_.android.os.{Bundle, IBinder}
import _root_.android.preference.PreferenceManager
import _root_.android.util.Log
import _root_.android.widget.Toast
@ -18,8 +19,7 @@ class AprsService extends Service with LocationListener {
import AprsService._
val TAG = "AprsService"
val UPDATE_TIME = 10000 // 10k ms = 10s
val UPDATE_DIST = 10 // 10m
lazy val prefs = PreferenceManager.getDefaultSharedPreferences(this)
lazy val locMan = getSystemService(Context.LOCATION_SERVICE).asInstanceOf[LocationManager]
@ -29,8 +29,10 @@ class AprsService extends Service with LocationListener {
showToast("Service started: " + i.getAction)
i.getAction match {
case SERVICE =>
val upd_int = prefs.getInt("interval", 10)
val upd_dist = prefs.getInt("distance", 10)
locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,
UPDATE_TIME, UPDATE_DIST, this)
upd_int * 60000, upd_dist * 1000, this)
case SERVICE_ONCE =>
stopSelf()
}

Wyświetl plik

@ -0,0 +1,11 @@
package de.duenndns.aprsdroid
import _root_.android.os.Bundle
import _root_.android.preference.PreferenceActivity
class PrefsAct extends PreferenceActivity {
override def onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
addPreferencesFromResource(R.xml.preferences)
}
}