kopia lustrzana https://github.com/ge0rg/aprsdroid
implemented position privacy
rodzic
d493963f4c
commit
104046dc07
Plik binarny nie jest wyświetlany.
|
|
@ -37,6 +37,21 @@
|
|||
<item>low</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="p_ambiguity_e">
|
||||
<item>@string/p_ambiguity_off</item>
|
||||
<item>@string/p_ambiguity_ddmmm</item>
|
||||
<item>@string/p_ambiguity_ddmm</item>
|
||||
<item>@string/p_ambiguity_ddm</item>
|
||||
<item>@string/p_ambiguity_dd</item>
|
||||
</string-array>
|
||||
<string-array name="p_ambiguity_ev">
|
||||
<item>0</item>
|
||||
<item>4</item>
|
||||
<item>3</item>
|
||||
<item>2</item>
|
||||
<item>1</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="p_ssid_ev">
|
||||
<item></item> <item>1</item> <item>2</item> <item>3</item>
|
||||
<item>4</item> <item>5</item> <item>6</item> <item>7</item>
|
||||
|
|
|
|||
|
|
@ -184,6 +184,22 @@
|
|||
<string name="p_source_lon">Longitude</string>
|
||||
<string name="p_source_get_last">Use last GPS position</string>
|
||||
|
||||
|
||||
<!-- privacy settings -->
|
||||
<string name="p_privacy">Position privacy</string>
|
||||
<string name="p_privacy_summary">Position ambiguity and more</string>
|
||||
<string name="p_priv_ambiguity">Position Ambiguity</string>
|
||||
<string name="p_priv_ambiguity_summary">Reduced precision for own position reports</string>
|
||||
<string name="p_ambiguity_off">Off (DD° MM.mm\')</string>
|
||||
<string name="p_ambiguity_ddmmm">1 (DD° MM.m\')</string>
|
||||
<string name="p_ambiguity_ddmm">2 (DD° MM\')</string>
|
||||
<string name="p_ambiguity_ddm">3 (DD° Mx\')</string>
|
||||
<string name="p_ambiguity_dd">4 (DD°)</string>
|
||||
<string name="p_priv_spdbear">Send Speed & Bearing</string>
|
||||
<string name="p_priv_spdbear_summary">Include speed and bearing in position reports</string>
|
||||
<string name="p_priv_altitude">Send Altitude</string>
|
||||
<string name="p_priv_altitude_summary">Include altitude in position reports</string>
|
||||
|
||||
<!-- connection type properties -->
|
||||
<string name="p_host">Server</string>
|
||||
<string name="p_host_summary">APRS-IS server (port 8080) to send beacons</string>
|
||||
|
|
|
|||
|
|
@ -73,6 +73,35 @@
|
|||
android:targetClass="org.aprsdroid.app.LocationPrefs" />
|
||||
</PreferenceScreen>
|
||||
|
||||
<PreferenceScreen
|
||||
android:title="@string/p_privacy"
|
||||
android:summary="@string/p_privacy_summary">
|
||||
<!-- incoming messages -->
|
||||
<PreferenceCategory
|
||||
android:title="@string/p_privacy">
|
||||
|
||||
<de.duenndns.ListPreferenceWithValue
|
||||
android:key="priv_ambiguity"
|
||||
android:title="@string/p_priv_ambiguity"
|
||||
android:summary="@string/p_priv_ambiguity_summary"
|
||||
android:entries="@array/p_ambiguity_e"
|
||||
android:entryValues="@array/p_ambiguity_ev"
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/p_priv_ambiguity" />
|
||||
<CheckBoxPreference
|
||||
android:key="priv_spdbear"
|
||||
android:title="@string/p_priv_spdbear"
|
||||
android:summary="@string/p_priv_spdbear_summary"
|
||||
android:defaultValue="true"
|
||||
/>
|
||||
<CheckBoxPreference
|
||||
android:key="priv_altitude"
|
||||
android:title="@string/p_priv_altitude"
|
||||
android:summary="@string/p_priv_altitude_summary"
|
||||
android:defaultValue="true"
|
||||
/>
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
|
|
|
|||
|
|
@ -53,15 +53,6 @@ object AprsPacket {
|
|||
""
|
||||
}
|
||||
|
||||
def formatLoc(callssid : String, toCall : String, symbol : String,
|
||||
status : String, location : Location) = {
|
||||
new APRSPacket(callssid, toCall, null, new PositionPacket(
|
||||
new Position(location.getLatitude, location.getLongitude, 0,
|
||||
symbol(0), symbol(1)),
|
||||
formatCourseSpeed(location) + formatAltitude(location) +
|
||||
" " + status, /* messaging = */ true))
|
||||
}
|
||||
|
||||
def formatMessage(callssid : String, toCall : String, dest : String,
|
||||
message : String, msgid : String) = {
|
||||
new APRSPacket(callssid, toCall, null, new MessagePacket(dest,
|
||||
|
|
|
|||
|
|
@ -145,6 +145,19 @@ class AprsService extends Service {
|
|||
"APDR%s".format(pi.versionName filter (_.isDigit) take 2)
|
||||
}
|
||||
|
||||
def formatLoc(callssid : String, toCall : String, symbol : String,
|
||||
status : String, location : Location) = {
|
||||
val pos = new Position(location.getLatitude, location.getLongitude, 0,
|
||||
symbol(0), symbol(1))
|
||||
pos.setPositionAmbiguity(prefs.getStringInt("priv_ambiguity", 0))
|
||||
val status_spd = if (prefs.getBoolean("priv_spdbear", true))
|
||||
AprsPacket.formatCourseSpeed(location) else ""
|
||||
val status_alt = if (prefs.getBoolean("priv_altitude", true))
|
||||
AprsPacket.formatAltitude(location) else ""
|
||||
new APRSPacket(callssid, toCall, null, new PositionPacket(
|
||||
pos, status_spd + status_alt + " " + status, /* messaging = */ true))
|
||||
}
|
||||
|
||||
def postLocation(location : Location) {
|
||||
val i = new Intent(UPDATE)
|
||||
i.putExtra(LOCATION, location)
|
||||
|
|
@ -154,7 +167,7 @@ class AprsService extends Service {
|
|||
if (symbol.length != 2)
|
||||
symbol = getString(R.string.default_symbol)
|
||||
val status = prefs.getString("status", getString(R.string.default_status))
|
||||
val packet = AprsPacket.formatLoc(callssid, appVersion(), symbol, status, location)
|
||||
val packet = formatLoc(callssid, appVersion(), symbol, status, location)
|
||||
|
||||
Log.d(TAG, "packet: " + packet)
|
||||
val result = try {
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue