kopia lustrzana https://github.com/ge0rg/aprsdroid
refactored backend code to use Map
rodzic
105ed3ab7e
commit
bc5f1a9b2f
|
@ -6,23 +6,10 @@ object AprsIsUploader {
|
||||||
val DEFAULT_CONNTYPE = "tcp"
|
val DEFAULT_CONNTYPE = "tcp"
|
||||||
|
|
||||||
def instanciateUploader(service : AprsService, prefs : SharedPreferences) : AprsIsUploader = {
|
def instanciateUploader(service : AprsService, prefs : SharedPreferences) : AprsIsUploader = {
|
||||||
prefs.getString("conntype", DEFAULT_CONNTYPE) match {
|
Backend.defaultBackendInfo(prefs).create(service, prefs)
|
||||||
case "udp" =>
|
|
||||||
new UdpUploader(prefs)
|
|
||||||
case "http" =>
|
|
||||||
new HttpPostUploader(prefs)
|
|
||||||
case "afsk" =>
|
|
||||||
new AfskUploader(prefs)
|
|
||||||
case _ =>
|
|
||||||
new TcpUploader(service, prefs)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
def instanciatePrefsAct(prefs : SharedPreferences) = {
|
def instanciatePrefsAct(prefs : SharedPreferences) = {
|
||||||
prefs.getString("conntype", DEFAULT_CONNTYPE) match {
|
Backend.defaultBackendInfo(prefs).prefxml
|
||||||
case "afsk" => R.xml.pref_afsk
|
|
||||||
case "udp" => R.xml.pref_udp
|
|
||||||
case _ => R.xml.pref_tcp // TCP is default
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package de.duenndns.aprsdroid
|
||||||
|
|
||||||
|
import _root_.android.content.SharedPreferences
|
||||||
|
|
||||||
|
object Backend {
|
||||||
|
val backend_collection = Map(
|
||||||
|
"udp" -> new BackendInfo(
|
||||||
|
(s, p) => new UdpUploader(p),
|
||||||
|
R.xml.pref_udp,
|
||||||
|
true),
|
||||||
|
"http" -> new BackendInfo(
|
||||||
|
(s, p) => new HttpPostUploader(p),
|
||||||
|
R.xml.pref_http,
|
||||||
|
true),
|
||||||
|
"afsk" -> new BackendInfo(
|
||||||
|
(s, p) => new AfskUploader(p),
|
||||||
|
R.xml.pref_afsk,
|
||||||
|
false),
|
||||||
|
"tcp" -> new BackendInfo(
|
||||||
|
(s, p) => new TcpUploader(s, p),
|
||||||
|
R.xml.pref_tcp,
|
||||||
|
true)
|
||||||
|
)
|
||||||
|
|
||||||
|
def defaultBackendInfo(prefs : SharedPreferences) : BackendInfo = {
|
||||||
|
backend_collection.get(prefs.getString("conntype", "")) match {
|
||||||
|
case Some(bi) => bi
|
||||||
|
case None => backend_collection("tcp")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class BackendInfo(
|
||||||
|
val create : (AprsService, SharedPreferences) => AprsIsUploader,
|
||||||
|
val prefxml : Int,
|
||||||
|
val need_passcode : Boolean
|
||||||
|
) {}
|
Ładowanie…
Reference in New Issue