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