kopia lustrzana https://github.com/ge0rg/aprsdroid
				
				
				
			APRS-IS: move filter init into PrefsWrapper
							rodzic
							
								
									748bf01853
								
							
						
					
					
						commit
						9d3c0638e4
					
				|  | @ -1,6 +1,7 @@ | |||
| package org.aprsdroid.app | ||||
| 
 | ||||
| import _root_.android.content.Context | ||||
| import _root_.android.location.{Location, LocationManager} | ||||
| import _root_.android.media.AudioManager | ||||
| import _root_.android.preference.PreferenceManager | ||||
| 
 | ||||
|  | @ -63,6 +64,20 @@ class PrefsWrapper(val context : Context) { | |||
| 
 | ||||
| 	def getLoginString() = AprsPacket.formatLogin(getCallsign(), getSsid(), | ||||
| 		getPasscode(), getVersion()) | ||||
| 	def getFilterString(service : AprsService) : String = { | ||||
| 		val filterdist = getStringInt("tcp.filterdist", 50) | ||||
| 		val userfilter = getString("tcp.filter", "") | ||||
| 		val lastloc = try { | ||||
| 			val locMan = service.getSystemService(Context.LOCATION_SERVICE).asInstanceOf[LocationManager] | ||||
| 			AprsPacket.formatRangeFilter( | ||||
| 				locMan.getLastKnownLocation(PeriodicGPS.bestProvider(locMan)), filterdist) | ||||
| 		} catch { | ||||
| 			case e : IllegalArgumentException => "" | ||||
| 		} | ||||
| 		if (filterdist == 0) return " filter %s %s".format(userfilter, lastloc) | ||||
| 				else return " filter m/%d %s %s".format(filterdist, userfilter, lastloc) | ||||
| 	} | ||||
| 
 | ||||
| 	 | ||||
| 	def getAfskHQ() = getBoolean("afsk.hqdemod", true) | ||||
| 	def getAfskBluetooth() = getBoolean("afsk.btsco", false) && getAfskHQ() | ||||
|  |  | |||
|  | @ -2,7 +2,6 @@ package org.aprsdroid.app | |||
| 
 | ||||
| import _root_.android.app.Service | ||||
| import _root_.android.content.Context | ||||
| import _root_.android.location.{Location, LocationManager} | ||||
| import _root_.android.util.Log | ||||
| import _root_.android.widget.Toast | ||||
| import _root_.java.io.{BufferedReader, File, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintWriter} | ||||
|  | @ -27,20 +26,6 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsBacke | |||
| 		false | ||||
| 	} | ||||
| 
 | ||||
| 	def setupFilter() : String = { | ||||
| 		val filterdist = prefs.getStringInt("tcp.filterdist", 50) | ||||
| 		val userfilter = prefs.getString("tcp.filter", "") | ||||
| 		val lastloc = try { | ||||
| 			val locMan = service.getSystemService(Context.LOCATION_SERVICE).asInstanceOf[LocationManager] | ||||
| 			AprsPacket.formatRangeFilter( | ||||
| 				locMan.getLastKnownLocation(PeriodicGPS.bestProvider(locMan)), filterdist) | ||||
| 		} catch { | ||||
| 			case e : IllegalArgumentException => "" | ||||
| 		} | ||||
| 		if (filterdist == 0) return " filter %s %s".format(userfilter, lastloc) | ||||
| 				else return " filter m/%d %s %s".format(filterdist, userfilter, lastloc) | ||||
| 	} | ||||
| 
 | ||||
| 	def createConnection() { | ||||
| 		Log.d(TAG, "TcpUploader.createConnection: " + hostport) | ||||
| 		conn = new TcpSocketThread(hostport) | ||||
|  | @ -48,8 +33,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsBacke | |||
| 	} | ||||
| 
 | ||||
| 	def createTncProto(is : InputStream, os : OutputStream) : TncProto = { | ||||
| 		Log.d(TAG, login + setupFilter()) | ||||
| 		new AprsIsProto(is, os, login + setupFilter()) | ||||
| 		new AprsIsProto(service, is, os) | ||||
| 	} | ||||
| 
 | ||||
| 	def update(packet : APRSPacket) : String = { | ||||
|  |  | |||
|  | @ -3,12 +3,13 @@ import _root_.java.io.{BufferedReader, InputStream, InputStreamReader, OutputStr | |||
| 
 | ||||
| import _root_.net.ab0oo.aprs.parser._ | ||||
| 
 | ||||
| class AprsIsProto(is : InputStream, os : OutputStream, login : String) extends TncProto(is, os) { | ||||
| class AprsIsProto(service : AprsService, is : InputStream, os : OutputStream) extends TncProto(is, os) { | ||||
| 	val loginfilter = service.prefs.getLoginString() + service.prefs.getFilterString(service) | ||||
| 
 | ||||
| 	val reader = new BufferedReader(new InputStreamReader(is), 256) | ||||
| 	val writer = new PrintWriter(new OutputStreamWriter(os), true) | ||||
| 
 | ||||
| 	writer.println(login) | ||||
| 	writer.println(loginfilter) | ||||
| 
 | ||||
| 	def readPacket() : String = reader.readLine() | ||||
| 	def writePacket(p : APRSPacket) = writer.println(p) | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Georg Lukas
						Georg Lukas