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