kopia lustrzana https://github.com/ge0rg/aprsdroid
aprs backend: refactor backend list
rodzic
ae64c8388e
commit
d3becaac4b
|
@ -54,7 +54,7 @@ trait UIHelper extends Activity
|
|||
}
|
||||
|
||||
def passcodeWarning(call : String, pass : String) {
|
||||
import Backend._
|
||||
import AprsIsUploader._
|
||||
if ((defaultBackendInfo(prefs).need_passcode == PASSCODE_OPTIONAL) &&
|
||||
!AprsPacket.passcodeAllowed(call, pass, false))
|
||||
Toast.makeText(this, R.string.anon_warning, Toast.LENGTH_LONG).show()
|
||||
|
@ -62,7 +62,7 @@ trait UIHelper extends Activity
|
|||
|
||||
|
||||
def passcodeConfigRequired(call : String, pass : String) : Boolean = {
|
||||
import Backend._
|
||||
import AprsIsUploader._
|
||||
// a valid passcode must be entered for "required",
|
||||
// "" and "-1" are accepted as well for "optional"
|
||||
defaultBackendInfo(prefs).need_passcode match {
|
||||
|
|
|
@ -5,12 +5,55 @@ import _root_.net.ab0oo.aprs.parser.APRSPacket
|
|||
object AprsIsUploader {
|
||||
val DEFAULT_CONNTYPE = "tcp"
|
||||
|
||||
val PASSCODE_NONE = 0
|
||||
val PASSCODE_OPTIONAL = 1
|
||||
val PASSCODE_REQUIRED = 2
|
||||
|
||||
// "struct" for APRS backend information
|
||||
class BackendInfo(
|
||||
val create : (AprsService, PrefsWrapper) => AprsIsUploader,
|
||||
val prefxml : Int,
|
||||
val need_passcode : Int
|
||||
) {}
|
||||
|
||||
// add your own BackendInfo here
|
||||
val backend_collection = Map(
|
||||
"udp" -> new BackendInfo(
|
||||
(s, p) => new UdpUploader(p),
|
||||
R.xml.backend_udp,
|
||||
PASSCODE_REQUIRED),
|
||||
"http" -> new BackendInfo(
|
||||
(s, p) => new HttpPostUploader(p),
|
||||
R.xml.backend_http,
|
||||
PASSCODE_REQUIRED),
|
||||
"afsk" -> new BackendInfo(
|
||||
(s, p) => new AfskUploader(p),
|
||||
R.xml.backend_afsk,
|
||||
PASSCODE_NONE),
|
||||
"tcp" -> new BackendInfo(
|
||||
(s, p) => new TcpUploader(s, p),
|
||||
R.xml.backend_tcp,
|
||||
PASSCODE_OPTIONAL),
|
||||
"bluetooth" -> new BackendInfo(
|
||||
(s, p) => new BluetoothTnc(s, p),
|
||||
R.xml.backend_bluetooth,
|
||||
PASSCODE_NONE)
|
||||
)
|
||||
|
||||
def defaultBackendInfo(prefs : PrefsWrapper) : BackendInfo = {
|
||||
backend_collection.get(prefs.getString("backend", DEFAULT_CONNTYPE)) match {
|
||||
case Some(bi) => bi
|
||||
case None => backend_collection(DEFAULT_CONNTYPE)
|
||||
}
|
||||
}
|
||||
|
||||
def instanciateUploader(service : AprsService, prefs : PrefsWrapper) : AprsIsUploader = {
|
||||
Backend.defaultBackendInfo(prefs).create(service, prefs)
|
||||
defaultBackendInfo(prefs).create(service, prefs)
|
||||
}
|
||||
def instanciatePrefsAct(prefs : PrefsWrapper) = {
|
||||
Backend.defaultBackendInfo(prefs).prefxml
|
||||
defaultBackendInfo(prefs).prefxml
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class AprsIsUploader(prefs : PrefsWrapper) {
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
package org.aprsdroid.app
|
||||
|
||||
|
||||
object Backend {
|
||||
val PASSCODE_NONE = 0
|
||||
val PASSCODE_OPTIONAL = 1
|
||||
val PASSCODE_REQUIRED = 2
|
||||
|
||||
val backend_collection = Map(
|
||||
"udp" -> new BackendInfo(
|
||||
(s, p) => new UdpUploader(p),
|
||||
R.xml.backend_udp,
|
||||
PASSCODE_REQUIRED),
|
||||
"http" -> new BackendInfo(
|
||||
(s, p) => new HttpPostUploader(p),
|
||||
R.xml.backend_http,
|
||||
PASSCODE_REQUIRED),
|
||||
"afsk" -> new BackendInfo(
|
||||
(s, p) => new AfskUploader(p),
|
||||
R.xml.backend_afsk,
|
||||
PASSCODE_NONE),
|
||||
"tcp" -> new BackendInfo(
|
||||
(s, p) => new TcpUploader(s, p),
|
||||
R.xml.backend_tcp,
|
||||
PASSCODE_OPTIONAL),
|
||||
"bluetooth" -> new BackendInfo(
|
||||
(s, p) => new BluetoothTnc(s, p),
|
||||
R.xml.backend_bluetooth,
|
||||
PASSCODE_NONE)
|
||||
)
|
||||
|
||||
def defaultBackendInfo(prefs : PrefsWrapper) : BackendInfo = {
|
||||
backend_collection.get(prefs.getString("backend", "")) match {
|
||||
case Some(bi) => bi
|
||||
case None => backend_collection("tcp")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class BackendInfo(
|
||||
val create : (AprsService, PrefsWrapper) => AprsIsUploader,
|
||||
val prefxml : Int,
|
||||
val need_passcode : Int
|
||||
) {}
|
Ładowanie…
Reference in New Issue