Add support for posting locations over HTTPS
Этот коммит содержится в:
@@ -46,6 +46,7 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
|
|||||||
public static final String KEY_DEVICE = "id";
|
public static final String KEY_DEVICE = "id";
|
||||||
public static final String KEY_ADDRESS = "address";
|
public static final String KEY_ADDRESS = "address";
|
||||||
public static final String KEY_PORT = "port";
|
public static final String KEY_PORT = "port";
|
||||||
|
public static final String KEY_SECURE = "secure";
|
||||||
public static final String KEY_INTERVAL = "interval";
|
public static final String KEY_INTERVAL = "interval";
|
||||||
public static final String KEY_PROVIDER = "provider";
|
public static final String KEY_PROVIDER = "provider";
|
||||||
public static final String KEY_STATUS = "status";
|
public static final String KEY_STATUS = "status";
|
||||||
@@ -175,6 +176,7 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
|
|||||||
findPreference(KEY_DEVICE).setEnabled(enabled);
|
findPreference(KEY_DEVICE).setEnabled(enabled);
|
||||||
findPreference(KEY_ADDRESS).setEnabled(enabled);
|
findPreference(KEY_ADDRESS).setEnabled(enabled);
|
||||||
findPreference(KEY_PORT).setEnabled(enabled);
|
findPreference(KEY_PORT).setEnabled(enabled);
|
||||||
|
findPreference(KEY_SECURE).setEnabled(enabled);
|
||||||
findPreference(KEY_INTERVAL).setEnabled(enabled);
|
findPreference(KEY_INTERVAL).setEnabled(enabled);
|
||||||
findPreference(KEY_PROVIDER).setEnabled(enabled);
|
findPreference(KEY_PROVIDER).setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,10 +20,10 @@ import android.net.Uri;
|
|||||||
|
|
||||||
public class ProtocolFormatter {
|
public class ProtocolFormatter {
|
||||||
|
|
||||||
public static String formatRequest(String address, int port, Position position) {
|
public static String formatRequest(String address, int port, boolean secure, Position position) {
|
||||||
|
|
||||||
Uri.Builder builder = new Uri.Builder();
|
Uri.Builder builder = new Uri.Builder();
|
||||||
builder.scheme("http").encodedAuthority(address + ':' + port)
|
builder.scheme(secure?"https":"http").encodedAuthority(address + ':' + port)
|
||||||
.appendQueryParameter("id", position.getDeviceId())
|
.appendQueryParameter("id", position.getDeviceId())
|
||||||
.appendQueryParameter("timestamp", String.valueOf(position.getTime().getTime() / 1000))
|
.appendQueryParameter("timestamp", String.valueOf(position.getTime().getTime() / 1000))
|
||||||
.appendQueryParameter("lat", String.valueOf(position.getLatitude()))
|
.appendQueryParameter("lat", String.valueOf(position.getLatitude()))
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
|
|||||||
|
|
||||||
private String address;
|
private String address;
|
||||||
private int port;
|
private int port;
|
||||||
|
private boolean secure;
|
||||||
|
|
||||||
private PositionProvider positionProvider;
|
private PositionProvider positionProvider;
|
||||||
private DatabaseHelper databaseHelper;
|
private DatabaseHelper databaseHelper;
|
||||||
@@ -74,6 +75,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
|
|||||||
|
|
||||||
address = preferences.getString(MainActivity.KEY_ADDRESS, null);
|
address = preferences.getString(MainActivity.KEY_ADDRESS, null);
|
||||||
port = Integer.parseInt(preferences.getString(MainActivity.KEY_PORT, null));
|
port = Integer.parseInt(preferences.getString(MainActivity.KEY_PORT, null));
|
||||||
|
secure = preferences.getBoolean(MainActivity.KEY_SECURE, false);
|
||||||
|
|
||||||
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||||
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
||||||
@@ -197,7 +199,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
|
|||||||
private void send(final Position position) {
|
private void send(final Position position) {
|
||||||
log("send", position);
|
log("send", position);
|
||||||
lock();
|
lock();
|
||||||
String request = ProtocolFormatter.formatRequest(address, port, position);
|
String request = ProtocolFormatter.formatRequest(address, port, secure, position);
|
||||||
RequestManager.sendRequestAsync(request, new RequestManager.RequestHandler() {
|
RequestManager.sendRequestAsync(request, new RequestManager.RequestHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onComplete(boolean success) {
|
public void onComplete(boolean success) {
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
<string name="settings_status_on">Stop</string>
|
<string name="settings_status_on">Stop</string>
|
||||||
<string name="settings_status_off_summary">Service stopped</string>
|
<string name="settings_status_off_summary">Service stopped</string>
|
||||||
<string name="settings_status_on_summary">Service running</string>
|
<string name="settings_status_on_summary">Service running</string>
|
||||||
|
<string name="settings_secure_title">Encryption</string>
|
||||||
|
<string name="settings_secure_off">Enable</string>
|
||||||
|
<string name="settings_secure_on">Disable</string>
|
||||||
|
<string name="settings_secure_off_summary">Encryption disabled</string>
|
||||||
|
<string name="settings_secure_on_summary">Encryption enabled</string>
|
||||||
<string name="settings_provider_title">Location provider</string>
|
<string name="settings_provider_title">Location provider</string>
|
||||||
<string name="settings_provider_summary">Source of location data</string>
|
<string name="settings_provider_summary">Source of location data</string>
|
||||||
<string name="settings_provider_gps">GPS provider</string>
|
<string name="settings_provider_gps">GPS provider</string>
|
||||||
|
|||||||
@@ -27,6 +27,15 @@
|
|||||||
android:summary="@string/settings_port_summary"
|
android:summary="@string/settings_port_summary"
|
||||||
android:title="@string/settings_port_title" />
|
android:title="@string/settings_port_title" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="secure"
|
||||||
|
android:summaryOff="@string/settings_secure_off_summary"
|
||||||
|
android:summaryOn="@string/settings_secure_on_summary"
|
||||||
|
android:switchTextOff="@string/settings_secure_off"
|
||||||
|
android:switchTextOn="@string/settings_secure_on"
|
||||||
|
android:title="@string/settings_secure_title" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="300"
|
android:defaultValue="300"
|
||||||
android:key="interval"
|
android:key="interval"
|
||||||
@@ -42,4 +51,4 @@
|
|||||||
android:summary="@string/settings_provider_summary"
|
android:summary="@string/settings_provider_summary"
|
||||||
android:title="@string/settings_provider_title" />
|
android:title="@string/settings_provider_title" />
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|||||||
@@ -25,6 +25,13 @@
|
|||||||
android:summary="@string/settings_port_summary"
|
android:summary="@string/settings_port_summary"
|
||||||
android:title="@string/settings_port_title" />
|
android:title="@string/settings_port_title" />
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="secure"
|
||||||
|
android:summaryOff="@string/settings_secure_off_summary"
|
||||||
|
android:summaryOn="@string/settings_secure_on_summary"
|
||||||
|
android:title="@string/settings_secure_title" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="300"
|
android:defaultValue="300"
|
||||||
android:key="interval"
|
android:key="interval"
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user