APRS-IS: move filter init into PrefsWrapper

markdownfixes
Georg Lukas 2016-09-16 17:13:06 +02:00
rodzic 748bf01853
commit 9d3c0638e4
3 zmienionych plików z 19 dodań i 19 usunięć

Wyświetl plik

@ -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()

Wyświetl plik

@ -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 = {

Wyświetl plik

@ -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)