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>
|
<item>low</item>
|
||||||
</string-array>
|
</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">
|
<string-array name="p_ssid_ev">
|
||||||
<item></item> <item>1</item> <item>2</item> <item>3</item>
|
<item></item> <item>1</item> <item>2</item> <item>3</item>
|
||||||
<item>4</item> <item>5</item> <item>6</item> <item>7</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_lon">Longitude</string>
|
||||||
<string name="p_source_get_last">Use last GPS position</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 -->
|
<!-- connection type properties -->
|
||||||
<string name="p_host">Server</string>
|
<string name="p_host">Server</string>
|
||||||
<string name="p_host_summary">APRS-IS server (port 8080) to send beacons</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" />
|
android:targetClass="org.aprsdroid.app.LocationPrefs" />
|
||||||
</PreferenceScreen>
|
</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>
|
||||||
|
|
||||||
<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,
|
def formatMessage(callssid : String, toCall : String, dest : String,
|
||||||
message : String, msgid : String) = {
|
message : String, msgid : String) = {
|
||||||
new APRSPacket(callssid, toCall, null, new MessagePacket(dest,
|
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)
|
"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) {
|
def postLocation(location : Location) {
|
||||||
val i = new Intent(UPDATE)
|
val i = new Intent(UPDATE)
|
||||||
i.putExtra(LOCATION, location)
|
i.putExtra(LOCATION, location)
|
||||||
|
|
@ -154,7 +167,7 @@ class AprsService extends Service {
|
||||||
if (symbol.length != 2)
|
if (symbol.length != 2)
|
||||||
symbol = getString(R.string.default_symbol)
|
symbol = getString(R.string.default_symbol)
|
||||||
val status = prefs.getString("status", getString(R.string.default_status))
|
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)
|
Log.d(TAG, "packet: " + packet)
|
||||||
val result = try {
|
val result = try {
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue