kopia lustrzana https://github.com/ge0rg/aprsdroid
				
				
				
			implemented preferences
							rodzic
							
								
									717213667a
								
							
						
					
					
						commit
						5ab5ddedfb
					
				|  | @ -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" /> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
|  | @ -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() | ||||
| 		} | ||||
|  |  | |||
|  | @ -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) | ||||
| 	} | ||||
| } | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 Georg Lukas
						Georg Lukas