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 | package org.aprsdroid.app | ||||||
| 
 | 
 | ||||||
| import _root_.android.content.Context | import _root_.android.content.Context | ||||||
|  | import _root_.android.location.{Location, LocationManager} | ||||||
| import _root_.android.media.AudioManager | import _root_.android.media.AudioManager | ||||||
| import _root_.android.preference.PreferenceManager | import _root_.android.preference.PreferenceManager | ||||||
| 
 | 
 | ||||||
|  | @ -63,6 +64,20 @@ class PrefsWrapper(val context : Context) { | ||||||
| 
 | 
 | ||||||
| 	def getLoginString() = AprsPacket.formatLogin(getCallsign(), getSsid(), | 	def getLoginString() = AprsPacket.formatLogin(getCallsign(), getSsid(), | ||||||
| 		getPasscode(), getVersion()) | 		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 getAfskHQ() = getBoolean("afsk.hqdemod", true) | ||||||
| 	def getAfskBluetooth() = getBoolean("afsk.btsco", false) && getAfskHQ() | 	def getAfskBluetooth() = getBoolean("afsk.btsco", false) && getAfskHQ() | ||||||
|  |  | ||||||
|  | @ -2,7 +2,6 @@ package org.aprsdroid.app | ||||||
| 
 | 
 | ||||||
| import _root_.android.app.Service | import _root_.android.app.Service | ||||||
| import _root_.android.content.Context | import _root_.android.content.Context | ||||||
| import _root_.android.location.{Location, LocationManager} |  | ||||||
| import _root_.android.util.Log | import _root_.android.util.Log | ||||||
| import _root_.android.widget.Toast | import _root_.android.widget.Toast | ||||||
| import _root_.java.io.{BufferedReader, File, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintWriter} | import _root_.java.io.{BufferedReader, File, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintWriter} | ||||||
|  | @ -27,20 +26,6 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsBacke | ||||||
| 		false | 		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() { | 	def createConnection() { | ||||||
| 		Log.d(TAG, "TcpUploader.createConnection: " + hostport) | 		Log.d(TAG, "TcpUploader.createConnection: " + hostport) | ||||||
| 		conn = new TcpSocketThread(hostport) | 		conn = new TcpSocketThread(hostport) | ||||||
|  | @ -48,8 +33,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsBacke | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	def createTncProto(is : InputStream, os : OutputStream) : TncProto = { | 	def createTncProto(is : InputStream, os : OutputStream) : TncProto = { | ||||||
| 		Log.d(TAG, login + setupFilter()) | 		new AprsIsProto(service, is, os) | ||||||
| 		new AprsIsProto(is, os, login + setupFilter()) |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	def update(packet : APRSPacket) : String = { | 	def update(packet : APRSPacket) : String = { | ||||||
|  |  | ||||||
|  | @ -3,12 +3,13 @@ import _root_.java.io.{BufferedReader, InputStream, InputStreamReader, OutputStr | ||||||
| 
 | 
 | ||||||
| import _root_.net.ab0oo.aprs.parser._ | 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 reader = new BufferedReader(new InputStreamReader(is), 256) | ||||||
| 	val writer = new PrintWriter(new OutputStreamWriter(os), true) | 	val writer = new PrintWriter(new OutputStreamWriter(os), true) | ||||||
| 
 | 
 | ||||||
| 	writer.println(login) | 	writer.println(loginfilter) | ||||||
| 
 | 
 | ||||||
| 	def readPacket() : String = reader.readLine() | 	def readPacket() : String = reader.readLine() | ||||||
| 	def writePacket(p : APRSPacket) = writer.println(p) | 	def writePacket(p : APRSPacket) = writer.println(p) | ||||||
|  |  | ||||||
		Ładowanie…
	
		Reference in New Issue
	
	 Georg Lukas
						Georg Lukas