diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 33d8210..f379dd8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
-
+
@@ -8,26 +8,26 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java b/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java
new file mode 100644
index 0000000..e2d7e9b
--- /dev/null
+++ b/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java
@@ -0,0 +1,35 @@
+package us.keithirwin.tracman;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.util.Log;
+
+public class ConnectionReceiver extends BroadcastReceiver {
+ private String TAG = "ConnectionReceiver";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(TAG,"onReceive() called");
+
+ // Get connection information
+ ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo networkInfo = cm.getActiveNetworkInfo();
+
+ // Prepare intent
+ Intent locationServiceIntent = new Intent(context, LocationService.class);
+
+ // Check connection
+ if (networkInfo!=null) {
+ Log.d(TAG, "Connected");
+ context.startService(locationServiceIntent);
+ }
+ else {
+ Log.d(TAG,"Disconnected");
+ context.stopService(locationServiceIntent);
+ }
+
+ }
+}
diff --git a/app/src/main/java/us/keithirwin/tracman/LocationService.java b/app/src/main/java/us/keithirwin/tracman/LocationService.java
index df8f8b1..d872077 100644
--- a/app/src/main/java/us/keithirwin/tracman/LocationService.java
+++ b/app/src/main/java/us/keithirwin/tracman/LocationService.java
@@ -42,6 +42,9 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
GoogleApiClient.OnConnectionFailedListener, LocationListener {
public LocationService() {}
private String TAG = "LocationService";
+ final int ICON_ON = 2;
+ final int ICON_HALF = 1;
+ final int ICON_OFF = 0;
final String SERVER_ADDRESS = "https://dev.tracman.org";
private Socket socket;
@@ -64,6 +67,8 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
private NotificationManager mNotificationManager;
private final NotificationCompat.Builder mNotificationBuilder = new NotificationCompat.Builder(this);
private void setupNotifications(Boolean persist) {
+ Log.d(TAG,"setupNotification() called");
+
if (mNotificationManager == null) {
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}
@@ -73,21 +78,28 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
0);
mNotificationBuilder
.setPriority(-1)
- .setSmallIcon(R.drawable.logo_white)
+ .setSmallIcon(R.drawable.logo_dark)
.setCategory(NotificationCompat.CATEGORY_SERVICE)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setContentTitle(getText(R.string.app_name))
.setContentIntent(notificationIntent)
.setOngoing(persist);
}
- private void showNotification(CharSequence text, Boolean active) {
+ private void showNotification(CharSequence text, int icon) {
+ Log.d(TAG,"showNotification() called");
mNotificationBuilder
.setTicker(text)
.setContentText(text);
- if (active) {
- mNotificationBuilder.setSmallIcon(R.drawable.logo_white);
- } else {
- mNotificationBuilder.setSmallIcon(R.drawable.logo_trans);
+ switch (icon) {
+ case ICON_ON:
+ mNotificationBuilder.setSmallIcon(R.drawable.logo_white);
+ break;
+ case ICON_HALF:
+ mNotificationBuilder.setSmallIcon(R.drawable.logo_trans);
+ break;
+ case ICON_OFF:
+ mNotificationBuilder.setSmallIcon(R.drawable.logo_dark);
+ break;
}
if (mNotificationManager != null) {
mNotificationManager.notify(1, mNotificationBuilder.build());
@@ -111,7 +123,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
setupNotifications(true);
- showNotification(getText(R.string.connecting), false);
+ showNotification(getText(R.string.notify_connecting), ICON_OFF);
Log.d(TAG, "Notification set up");
buildGoogleApiClient();
@@ -134,7 +146,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
opts.secure = true;
socket = IO.socket(SERVER_ADDRESS, opts);
- showNotification(getText(R.string.connected), false);
+ showNotification(getText(R.string.notify_connected), ICON_HALF);
// Log errors
socket.io().on(Manager.EVENT_TRANSPORT, new Emitter.Listener() {
@@ -145,7 +157,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
@Override
public void call(Object... args) {
Exception e = (Exception) args[0];
- Log.e(TAG, "Transport error " + e);
+ Log.e(TAG, "Transport error: " + e);
e.printStackTrace();
e.getCause().printStackTrace();
}
@@ -166,7 +178,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
socket.connect();
} catch (URISyntaxException e) {
- showNotification(getText(R.string.server_connection_error), false);
+ showNotification(getText(R.string.server_connection_error), ICON_OFF);
Log.e(TAG, "Failed to connect to sockets server " + SERVER_ADDRESS, e);
}
@@ -234,7 +246,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
mLocationRequest = LocationRequest.create();
connectLocationUpdates(getIntervalSetting(), getPrioritySetting());
- showNotification(getString(R.string.realtime_updates), true);
+ showNotification(getString(R.string.occasional_updates), ICON_HALF);
}
@Override
@@ -245,7 +257,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.e(TAG, "onConnectionFailed: " + connectionResult);
- showNotification(getText(R.string.google_connection_error), false);
+ showNotification(getText(R.string.google_connection_error), ICON_OFF);
buildGoogleApiClient();
}
@@ -255,11 +267,11 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
if (args[0].toString().equals("true")) {
Log.d(TAG, "Activating realtime updates");
connectLocationUpdates(getIntervalSetting(), getPrioritySetting());
- showNotification(getString(R.string.realtime_updates), true);
+ showNotification(getString(R.string.realtime_updates), ICON_ON);
} else {
Log.d(TAG, "Deactivating realtime updates");
connectLocationUpdates(300, LocationRequest.PRIORITY_NO_POWER);
- showNotification(getString(R.string.occasional_updates), false);
+ showNotification(getString(R.string.occasional_updates), ICON_HALF);
}
}
};
@@ -293,7 +305,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
@Override
public void onConnectionSuspended(int i) {
Log.d(TAG, "onConnectionSuspended called");
- showNotification(getText(R.string.google_connection_error), false);
+ showNotification(getText(R.string.google_connection_error), ICON_OFF);
}
@Override
@@ -312,7 +324,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti
Log.d(TAG, "LowPowerReceiver deactivated");
setupNotifications(false);
- showNotification(getText(R.string.disconnected), false);
+ showNotification(getText(R.string.disconnected), ICON_OFF);
Log.d(TAG, "Notification changed");
}
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-hdpi/logo_dark.png b/app/src/main/res/drawable-hdpi/logo_dark.png
new file mode 100644
index 0000000..f941934
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/logo_dark.png differ
diff --git a/app/src/main/res/drawable-mdpi/logo_dark.png b/app/src/main/res/drawable-mdpi/logo_dark.png
new file mode 100644
index 0000000..884afba
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/logo_dark.png differ
diff --git a/app/src/main/res/drawable-xhdpi/logo_dark.png b/app/src/main/res/drawable-xhdpi/logo_dark.png
new file mode 100644
index 0000000..2c5d4c8
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/logo_dark.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/logo_dark.png b/app/src/main/res/drawable-xxhdpi/logo_dark.png
new file mode 100644
index 0000000..eb408db
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/logo_dark.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/logo_dark.png b/app/src/main/res/drawable-xxxhdpi/logo_dark.png
new file mode 100644
index 0000000..954ebde
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/logo_dark.png differ
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index ff213f2..cdf723a 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -4,8 +4,6 @@
Über
Sendungen deaktiviert
Problembericht
- Verbindung festgestellt
- verbindet…
Verbindung unterbrochen
FEHLER: Könnte nicht zum Google API Server verbinden.
Hilfe
@@ -49,9 +47,11 @@
Sendungen einschalten
Aktualisierung Vorrang
- Kein Internet Zugang
Passwort vergessen?
Einloggen
- Email
+ Email
Passwort
+ verbindet…
+ Aktualisiert nicht
+ Verbindung festgestellt
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 085d4e7..f87f20b 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -2,10 +2,8 @@
Atras
Info
- conectando…
- Cargando…
+ Cargando…
Conexión perdida
- Conexión establecida
Informe de error
Configuración principales
Configuración
@@ -47,10 +45,13 @@
- Ciudad
- Sin energía
- Encender transmisiónes Actualizaciones de ubicación
- Sin conexión a Internet
+ Encender transmisiónes
+ Actualizaciones de ubicación
Olividé su contrasena?
Inciar session
- email
+ email
contrasena
+ conectando…
+ No se actualiza
+ Conexión establecida
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 18ec874..957bd69 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -16,13 +16,10 @@
ERROR: Unable to connect to Tracman server.
- Connecting…
- Connection established
Disconnected
Sending realtime updates
Sending occasional updates
Broadcast disabled
- No internet connection
Settings
@@ -102,5 +99,8 @@
Login
email
password
+ Not sending updates
+ "Connecting… "
+ Connection established