Этот коммит содержится в:
Anton Tananaev
2015-08-14 18:52:28 +12:00
родитель 3235229d1e
Коммит 7fe765d124
7 изменённых файлов: 43 добавлений и 11 удалений
-2
Просмотреть файл
@@ -23,8 +23,6 @@ import android.preference.PreferenceManager;
public class AutostartReceiver extends BroadcastReceiver { public class AutostartReceiver extends BroadcastReceiver {
public static final String LOG_TAG = "Traccar.AutostartReceiver";
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
-2
Просмотреть файл
@@ -33,8 +33,6 @@ import android.view.MenuItem;
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public class MainActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { public class MainActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
public static final String LOG_TAG = "traccar";
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";
+9 -3
Просмотреть файл
@@ -21,15 +21,20 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.util.Log;
public class NetworkManager extends BroadcastReceiver { public class NetworkManager extends BroadcastReceiver {
private static final String TAG = NetworkManager.class.getSimpleName();
private Context context; private Context context;
private NetworkHandler handler; private NetworkHandler handler;
private ConnectivityManager connectivityManager;
public NetworkManager(Context context, NetworkHandler handler) { public NetworkManager(Context context, NetworkHandler handler) {
this.context = context; this.context = context;
this.handler = handler; this.handler = handler;
connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
} }
public interface NetworkHandler { public interface NetworkHandler {
@@ -37,8 +42,7 @@ public class NetworkManager extends BroadcastReceiver {
} }
public boolean isOnline() { public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting(); return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
} }
@@ -55,7 +59,9 @@ public class NetworkManager extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION) && handler != null) { if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION) && handler != null) {
handler.onNetworkUpdate(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)); boolean isOnline = isOnline();
Log.i(TAG, "network " + (isOnline ? "on" : "off"));
handler.onNetworkUpdate(isOnline);
} }
} }
+5
Просмотреть файл
@@ -27,9 +27,12 @@ import android.os.BatteryManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.util.Log;
public class PositionProvider { public class PositionProvider {
private static final String TAG = PositionProvider.class.getSimpleName();
public static final String PROVIDER_MIXED = "mixed"; public static final String PROVIDER_MIXED = "mixed";
public static final long PROVIDER_RETRY_PERIOD = 60 * 1000; public static final long PROVIDER_RETRY_PERIOD = 60 * 1000;
@@ -104,10 +107,12 @@ public class PositionProvider {
}*/ }*/
if (location != null && location.getTime() != lastTime) { if (location != null && location.getTime() != lastTime) {
Log.i(TAG, "location new");
lastTime = location.getTime(); lastTime = location.getTime();
listener.onPositionUpdate(new Position(deviceId, location, getBatteryLevel())); listener.onPositionUpdate(new Position(deviceId, location, getBatteryLevel()));
return true; return true;
} else { } else {
Log.i(TAG, location != null ? "location old" : "location nil");
return false; return false;
} }
} }
-2
Просмотреть файл
@@ -23,7 +23,6 @@ import java.util.Set;
import android.app.ListActivity; import android.app.ListActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
@@ -43,7 +42,6 @@ public class StatusActivity extends ListActivity {
} }
public static void addMessage(String message) { public static void addMessage(String message) {
Log.i(MainActivity.LOG_TAG, message);
DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT); DateFormat format = DateFormat.getTimeInstance(DateFormat.SHORT);
message = format.format(new Date()) + " - " + message; message = format.format(new Date()) + " - " + message;
messages.add(message); messages.add(message);
+22
Просмотреть файл
@@ -19,9 +19,11 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Handler; import android.os.Handler;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.util.Log;
public class TrackingController implements PositionProvider.PositionListener, NetworkManager.NetworkHandler { public class TrackingController implements PositionProvider.PositionListener, NetworkManager.NetworkHandler {
private static final String TAG = TrackingController.class.getSimpleName();
private static final int RETRY_DELAY = 30 * 1000; private static final int RETRY_DELAY = 30 * 1000;
private boolean isOnline; private boolean isOnline;
@@ -49,7 +51,9 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
} }
public void start() { public void start() {
if (isOnline) {
read(); read();
}
positionProvider.startUpdates(); positionProvider.startUpdates();
networkManager.start(); networkManager.start();
} }
@@ -84,7 +88,19 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
// read -> send -> retry -> read -> send // read -> send -> retry -> read -> send
// //
private void log(String action, Position position) {
if (position != null) {
action += " (" +
"id:" + position.getId() +
" time:" + position.getTime().getTime() / 1000 +
" lat:" + position.getLatitude() +
" lon:" + position.getLongitude() + ")";
}
Log.d(TAG, action);
}
private void write(Position position) { private void write(Position position) {
log("write", position);
databaseHelper.insertPositionAsync(position, new DatabaseHelper.DatabaseHandler<Void>() { databaseHelper.insertPositionAsync(position, new DatabaseHelper.DatabaseHandler<Void>() {
@Override @Override
public void onSuccess(Void result) { public void onSuccess(Void result) {
@@ -101,6 +117,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
} }
private void read() { private void read() {
log("read", null);
databaseHelper.selectPositionAsync(new DatabaseHelper.DatabaseHandler<Position>() { databaseHelper.selectPositionAsync(new DatabaseHelper.DatabaseHandler<Position>() {
@Override @Override
public void onSuccess(Position result) { public void onSuccess(Position result) {
@@ -119,6 +136,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
} }
private void delete(Position position) { private void delete(Position position) {
log("delete", position);
databaseHelper.deletePositionAsync(position.getId(), new DatabaseHelper.DatabaseHandler<Void>() { databaseHelper.deletePositionAsync(position.getId(), new DatabaseHelper.DatabaseHandler<Void>() {
@Override @Override
public void onSuccess(Void result) { public void onSuccess(Void result) {
@@ -133,6 +151,7 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
} }
private void send(final Position position) { private void send(final Position position) {
log("send", position);
String request = ProtocolFormatter.formatRequest( String request = ProtocolFormatter.formatRequest(
preferences.getString(MainActivity.KEY_ADDRESS, null), preferences.getString(MainActivity.KEY_ADDRESS, null),
Integer.parseInt(preferences.getString(MainActivity.KEY_PORT, null)), Integer.parseInt(preferences.getString(MainActivity.KEY_PORT, null)),
@@ -153,11 +172,14 @@ public class TrackingController implements PositionProvider.PositionListener, Ne
} }
private void retry() { private void retry() {
log("retry", null);
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
if (isOnline) {
read(); read();
} }
}
}, RETRY_DELAY); }, RETRY_DELAY);
} }
+5
Просмотреть файл
@@ -23,15 +23,19 @@ import android.os.Build;
import android.os.IBinder; import android.os.IBinder;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.PowerManager.WakeLock; import android.os.PowerManager.WakeLock;
import android.util.Log;
public class TrackingService extends Service { public class TrackingService extends Service {
private static final String TAG = TrackingService.class.getSimpleName();
private TrackingController trackingController; private TrackingController trackingController;
private WakeLock wakeLock; private WakeLock wakeLock;
@Override @Override
public void onCreate() { public void onCreate() {
Log.i(TAG, "service create");
StatusActivity.addMessage(getString(R.string.status_service_create)); StatusActivity.addMessage(getString(R.string.status_service_create));
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
@@ -55,6 +59,7 @@ public class TrackingService extends Service {
@Override @Override
public void onDestroy() { public void onDestroy() {
Log.i(TAG, "service destroy");
StatusActivity.addMessage(getString(R.string.status_service_destroy)); StatusActivity.addMessage(getString(R.string.status_service_destroy));
if (trackingController != null) { if (trackingController != null) {