diff --git a/.gitignore b/.gitignore index 6809683..83cac23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,4 @@ -## VIM -*.swp - -# Created by https://www.gitignore.io/api/android,linux +# Created by https://www.gitignore.io/api/android ### Android ### # Built application files @@ -41,11 +38,7 @@ captures/ # Intellij /.idea/ *.iml -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/libraries -.idea/misc.xml +.idea/ projectFilesBackup/ # Keystore files @@ -66,19 +59,6 @@ freeline_project_description.json ### Android Patch ### gen-external-apklibs -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -# End of https://www.gitignore.io/api/android,linux +# For google play signing +encrypted_private_key +upload_certificate.pem diff --git a/.idea/modules.xml b/.idea/modules.xml index 3086b1f..3e9e851 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,8 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index 4e3eab1..f6f5c75 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# []Tracman for Android -###### v 0.6.0 +# []Tracman for Android +###### v 0.6.1 Android app to upload a user's GPS location to the [tracman server](https://github.com/tracman-org/Server). @@ -13,14 +13,18 @@ In order to apply changes to settings, you need to hit the back button and retur The app will switch between "realtime updates" (Every second, or whatever interval you set up in the settings) and "occasional updates", depending on if there are visitors to your map. This prevents the app from draining your battery when nobody's looking at your location anyway. -More information is available on the [help page](https://tracman.org/help#android). +More information is available on the [help page](https://www.tracman.org/help#android). ## Contributing -Tracman for Android is in perpetually poor condition. I just don't know enough about android/java to create a top-quality app. I think this project would benefit greatly from being torn down and rebuilt from scratch. If you know anything about Android, you probably know more than me. Feel free to check out the [issues marked help wanted](https://github.com/Tracman-org/Android/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) (or [any issues](https://github.com/Tracman-org/Android/issues), really) or [contact me](https://keithirwin.us/contact) about getting involved. +Tracman for Android is in perpetually poor condition. I don't do much work with Android. This project would benefit greatly from being torn down and rebuilt from scratch. Feel free to check out the [issues marked help wanted](https://github.com/Tracman-org/Android/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) (or [any issues](https://github.com/Tracman-org/Android/issues), really) or [contact me](https://www.keithirwin.us/contact) about getting involved. ## Changelog +#### v0.6.1 + +* Updated server URLs + #### v0.6.0 * [#1](https://github.com/Tracman-org/Android/issues/1) Deals with lost connections @@ -37,7 +41,7 @@ Tracman for Android is in perpetually poor condition. I just don't know enough ###### see [LICENSE.md](https://github.com/Tracman-org/Android/blob/master/LICENSE.md) Tracman: GPS tracking app for android -Copyright © 2017 [Keith Irwin](https://keithirwin.us/) +Copyright © 2018 [Keith Irwin](https://www.keithirwin.us/) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. diff --git a/app/build.gradle b/app/build.gradle index 732f81b..fc8f07c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,13 +16,13 @@ android { } } compileSdkVersion 23 - buildToolsVersion '25.0.0' + buildToolsVersion '26.0.2' defaultConfig { applicationId "us.keithirwin.tracman" minSdkVersion 15 targetSdkVersion 23 - versionCode 12 - versionName "0.6.0" + versionCode 13 + versionName "0.6.1" } buildTypes { release { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f379dd8..8d40e04 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,6 +16,8 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> + + @@ -23,8 +25,9 @@ - + @@ -34,14 +37,13 @@ android:value=".LoginActivity"/> - + - - + @@ -53,9 +55,8 @@ - - + diff --git a/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java b/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java index 34fbea8..6eb7981 100644 --- a/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java +++ b/app/src/main/java/us/keithirwin/tracman/ConnectionReceiver.java @@ -5,14 +5,14 @@ import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; -//import android.util.Log; +import android.util.Log; public class ConnectionReceiver extends BroadcastReceiver { - //private static final String TAG = "ConnectionReceiver"; + private static final String TAG = "ConnectionReceiver"; @Override public void onReceive(Context context, Intent intent) { - //Log.d(TAG,"onReceive() called"); + Log.d(TAG,"onReceive() called"); // Get connection information ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); @@ -23,11 +23,11 @@ public class ConnectionReceiver extends BroadcastReceiver { // Check connection if (networkInfo!=null) { - //Log.d(TAG, "Connected"); + Log.d(TAG, "Connected"); context.startService(locationServiceIntent); } else { - //Log.d(TAG,"Disconnected"); + 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 f6b89f4..bf34bfb 100644 --- a/app/src/main/java/us/keithirwin/tracman/LocationService.java +++ b/app/src/main/java/us/keithirwin/tracman/LocationService.java @@ -18,7 +18,7 @@ import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v4.app.NotificationCompat; -//import android.util.Log; +import android.util.Log; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.api.GoogleApiClient; @@ -36,19 +36,20 @@ import org.json.JSONException; import org.json.JSONObject; import java.net.URISyntaxException; +import java.util.Objects; public class LocationService extends Service implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { public LocationService() {} - //private String TAG = "LocationService"; + private String TAG = "LocationService"; final static private int ICON_ON = 2; - final int ICON_HALF = 1; - final int ICON_OFF = 0; + final static private int ICON_HALF = 1; + final static private int ICON_OFF = 0; // Development // final String SERVER_ADDRESS = "https://dev.tracman.org"; // Production - final String SERVER_ADDRESS = "https://tracman.org"; + final String SERVER_ADDRESS = "https://www.tracman.org"; private Socket socket; private String mUserID; @@ -70,8 +71,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"); - + Log.d(TAG,"setupNotification() called"); +// if (mNotificationManager == null) { mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); } @@ -89,7 +90,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti .setOngoing(persist); } private void showNotification(CharSequence text, int icon) { - //Log.d(TAG,"showNotification() called"); + Log.d(TAG,"showNotification() called"); mNotificationBuilder .setTicker(text) .setContentText(text); @@ -113,31 +114,31 @@ public class LocationService extends Service implements GoogleApiClient.Connecti @Override public void onReceive(Context context, Intent intent) { connectLocationUpdates(300, LocationRequest.PRIORITY_NO_POWER); - //Log.d(TAG, "Priority and interval lowered due to low power"); + Log.d(TAG, "Priority and interval lowered due to low power"); } }; @Override public void onCreate() { super.onCreate(); - //Log.d(TAG, "onCreate called"); + Log.d(TAG, "onCreate called"); // Get preferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); setupNotifications(true); showNotification(getText(R.string.notify_connecting), ICON_OFF); - //Log.d(TAG, "Notification set up"); + Log.d(TAG, "Notification set up"); buildGoogleApiClient(); - //Log.d(TAG, "Google API Client built"); + Log.d(TAG, "Google API Client built"); mGoogleApiClient.connect(); - //Log.d(TAG, "Connected to Google API Client"); + Log.d(TAG, "Connected to Google API Client"); IntentFilter lowPowerFilter = new IntentFilter(); lowPowerFilter.addAction("android.intent.action.BATTERY_LOW"); registerReceiver(LowPowerReceiver, lowPowerFilter); - //Log.d(TAG, "LowPowerReceiver activated"); + Log.d(TAG, "LowPowerReceiver activated"); mUserID = sharedPref.getString("loggedInUserId", null); mUserSK = sharedPref.getString("loggedInUserSk", null); @@ -160,7 +161,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(); } @@ -182,7 +183,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti } catch (URISyntaxException e) { showNotification(getText(R.string.server_connection_error), ICON_OFF); - //Log.e(TAG, "Failed to connect to sockets server " + SERVER_ADDRESS, e); + Log.e(TAG, "Failed to connect to sockets server " + SERVER_ADDRESS, e); } } @@ -213,10 +214,10 @@ public class LocationService extends Service implements GoogleApiClient.Connecti // Get permission if (!checkLocationPermission(this)) { - //Log.d(TAG, "Location permission denied"); + Log.d(TAG, "Location permission denied"); //TODO: Ask the user to try again } else { - //Log.d(TAG, "Location permission granted"); + Log.d(TAG, "Location permission granted"); // Request location updates if (mGoogleApiClient.isConnected()) { @@ -242,7 +243,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti @Override public void onConnected(Bundle bundle) { - //Log.d(TAG, "onConnected called"); + Log.d(TAG, "onConnected called"); mLocationRequest = LocationRequest.create(); connectLocationUpdates(getIntervalSetting(), getPrioritySetting()); @@ -256,7 +257,7 @@ public class LocationService extends Service implements GoogleApiClient.Connecti @Override public void onConnectionFailed(ConnectionResult connectionResult) { - //Log.e(TAG, "onConnectionFailed: " + connectionResult); + Log.e(TAG, "onConnectionFailed: " + connectionResult); showNotification(getText(R.string.google_connection_error), ICON_OFF); buildGoogleApiClient(); } @@ -265,11 +266,11 @@ public class LocationService extends Service implements GoogleApiClient.Connecti @Override public void call(final Object... args) { if (args[0].toString().equals("true")) { - //Log.d(TAG, "Activating realtime updates"); + Log.d(TAG, "Activating realtime updates"); connectLocationUpdates(getIntervalSetting(), getPrioritySetting()); showNotification(getString(R.string.realtime_updates), ICON_ON); } else { - //Log.d(TAG, "Deactivating realtime updates"); + Log.d(TAG, "Deactivating realtime updates"); connectLocationUpdates(300, LocationRequest.PRIORITY_NO_POWER); showNotification(getString(R.string.occasional_updates), ICON_HALF); } @@ -285,18 +286,19 @@ public class LocationService extends Service implements GoogleApiClient.Connecti try { mLocationView.put("usr", mUserID); mLocationView.put("tok", mUserSK); + mLocationView.put("ts", String.valueOf(System.currentTimeMillis())); mLocationView.put("lat", String.valueOf(location.getLatitude())); mLocationView.put("lon", String.valueOf(location.getLongitude())); mLocationView.put("dir", String.valueOf(location.getBearing())); mLocationView.put("spd", String.valueOf(location.getSpeed())); } catch (JSONException e) { - //Log.e(TAG, "Failed to put JSON data"); + Log.e(TAG, "Failed to put JSON data"); } socket.emit("set", mLocationView); - //Log.v(TAG, "Location set: " + mLocationView.toString()); + Log.v(TAG, "Location set: " + mLocationView.toString()); } else { - //Log.v(TAG, "Can't set location because user isn't logged in."); + Log.v(TAG, "Can't set location because user isn't logged in."); stopSelf(); } @@ -304,27 +306,27 @@ public class LocationService extends Service implements GoogleApiClient.Connecti @Override public void onConnectionSuspended(int i) { - //Log.d(TAG, "onConnectionSuspended called"); + Log.d(TAG, "onConnectionSuspended called"); showNotification(getText(R.string.google_connection_error), ICON_OFF); } @Override public void onDestroy() { super.onDestroy(); - //Log.d(TAG, "onDestroy executed"); + Log.d(TAG, "onDestroy executed"); socket.disconnect(); socket.off("activate", onActivate); - //Log.d(TAG, "Disconnected from sockets"); + Log.d(TAG, "Disconnected from sockets"); mGoogleApiClient.disconnect(); - //Log.d(TAG, "Google API disconnected"); + Log.d(TAG, "Google API disconnected"); unregisterReceiver(LowPowerReceiver); - //Log.d(TAG, "LowPowerReceiver deactivated"); + Log.d(TAG, "LowPowerReceiver deactivated"); setupNotifications(false); showNotification(getText(R.string.disconnected), ICON_OFF); - //Log.d(TAG, "Notification changed"); + Log.d(TAG, "Notification changed"); } } \ No newline at end of file diff --git a/app/src/main/java/us/keithirwin/tracman/LoginActivity.java b/app/src/main/java/us/keithirwin/tracman/LoginActivity.java index 6f85820..4fce47e 100644 --- a/app/src/main/java/us/keithirwin/tracman/LoginActivity.java +++ b/app/src/main/java/us/keithirwin/tracman/LoginActivity.java @@ -7,7 +7,7 @@ import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.method.LinkMovementMethod; -//import android.util.Log; +import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.TextView; @@ -44,7 +44,7 @@ import okhttp3.Response; public class LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener, View.OnClickListener { - //private static final String TAG = "LoginActivity"; + private static final String TAG = "LoginActivity"; private static final int RC_SIGN_IN = 9001; static final int SIGN_OUT = 1; private static boolean DONT_LOG_IN = false; @@ -53,7 +53,7 @@ public class LoginActivity extends AppCompatActivity implements // private final String SERVER_ADDRESS = "https://dev.tracman.org/"; // private static final String GOOGLE_WEB_CLIENT_ID = "483494341936-hps4p2pcu3ctshjvqm3pqdbg0t0q281o.apps.googleusercontent.com"; // Production - private final String SERVER_ADDRESS = "https://tracman.org/"; + private final String SERVER_ADDRESS = "https://www.tracman.org/"; private static final String GOOGLE_WEB_CLIENT_ID = "483494341936-hrn0ms1tebgdtfs5f4i6ebmkt3qmo16o.apps.googleusercontent.com"; private GoogleApiClient mGoogleApiClient; @@ -62,7 +62,7 @@ public class LoginActivity extends AppCompatActivity implements @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //Log.v(TAG, "created"); + Log.v(TAG, "created"); // Set up layout setContentView(R.layout.activity_login); @@ -99,16 +99,16 @@ public class LoginActivity extends AppCompatActivity implements @Override public void onStart() { super.onStart(); - //Log.v(TAG, "onStart() called"); + Log.v(TAG, "onStart() called"); // Try to sign in if (!DONT_LOG_IN) { - //Log.v(TAG, "Trying to sign in..."); + Log.v(TAG, "Trying to sign in..."); OptionalPendingResult opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient); if (opr.isDone()) { // If the user's cached credentials are valid, the OptionalPendingResult will be "done" // and the GoogleSignInResult will be available instantly. - //Log.d(TAG, "Got cached sign-in"); + Log.d(TAG, "Got cached sign-in"); GoogleSignInResult result = opr.get(); handleGoogleSignInResult(result); } else { @@ -141,12 +141,12 @@ public class LoginActivity extends AppCompatActivity implements SharedPreferences.Editor editor = sharedPref.edit(); // Stop LocationService - //Log.v(TAG, "Stopping location service..."); + Log.v(TAG, "Stopping location service..."); stopService(new Intent(LoginActivity.this, LocationService.class)); editor.putBoolean("gps_switch",false); // Remove saved loggedInUser - //Log.v(TAG, "Removing saved user..."); + Log.v(TAG, "Removing saved user..."); editor.remove("loggedInUser"); editor.remove("loggedInUserId"); editor.remove("loggedInUserName"); @@ -158,17 +158,17 @@ public class LoginActivity extends AppCompatActivity implements @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - //Log.v(TAG, "onActivityResult() called"); + Log.v(TAG, "onActivityResult() called"); // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { - //Log.v(TAG, "requestCode was RC_SIGN_IN"); + Log.v(TAG, "requestCode was RC_SIGN_IN"); GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); handleGoogleSignInResult(result); } // User just logged out. Don't log in again, stupid else if (requestCode == SIGN_OUT) { - //Log.v(TAG, "requestCode was SIGN_OUT"); + Log.v(TAG, "requestCode was SIGN_OUT"); DONT_LOG_IN = true; } @@ -193,7 +193,7 @@ public class LoginActivity extends AppCompatActivity implements client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { - //Log.e(TAG, "Failed to connect to Tracman server!"); + Log.e(TAG, "Failed to connect to Tracman server!"); showError(R.string.server_connection_error); e.printStackTrace(); } @@ -205,22 +205,20 @@ public class LoginActivity extends AppCompatActivity implements res.body().close(); throw new IOException("Unexpected code: " + res); } else { - //Log.d(TAG, "Response code: " + res.code()); + Log.d(TAG, "Response code: " + res.code()); String userString = res.body().string(); System.out.println("Full response: " + userString); - String userID, userName, userSK; + String userID, userSK; try { JSONObject user = new JSONObject(userString); userID = user.getString("_id"); - userName = user.getString("name"); userSK = user.getString("sk32"); - //Log.v(TAG, "User retrieved with ID: " + userID); + Log.v(TAG, "User retrieved with ID: " + userID); } catch (JSONException e) { - //Log.e(TAG, "Unable to parse user JSON: ", e); - //Log.e(TAG, "JSON String used: " + userString); + Log.e(TAG, "Unable to parse user JSON: ", e); + Log.e(TAG, "JSON String used: " + userString); userID = null; - userName = null; userSK = null; } @@ -229,7 +227,6 @@ public class LoginActivity extends AppCompatActivity implements SharedPreferences.Editor editor = sharedPref.edit(); editor.putString("loggedInUser", userString); editor.putString("loggedInUserId", userID); - editor.putString("loggedInUserName", userName); editor.putString("loggedInUserSk", userSK); editor.commit(); @@ -243,7 +240,7 @@ public class LoginActivity extends AppCompatActivity implements } private void handleGoogleSignInResult(GoogleSignInResult result) { - //Log.d(TAG, "handleSignInResult:" + result.isSuccess()); + Log.d(TAG, "handleSignInResult:" + result.isSuccess()); if (result.isSuccess()) { // Signed in successfully GoogleSignInAccount acct = result.getSignInAccount(); try { @@ -257,10 +254,10 @@ public class LoginActivity extends AppCompatActivity implements authenticateWithTracmanServer(request); } catch (Exception e) { - //Log.e(TAG, "Error sending ID token to backend.", e); + Log.e(TAG, "Error sending ID token to backend.", e); } } else { - //Log.e(TAG, "Failed to log in: "+result.getStatus().getStatusCode()); + Log.e(TAG, "Failed to log in: "+result.getStatus().getStatusCode()); if (result.getStatus().getStatusCode()!=4) { showError(R.string.google_connection_error); } @@ -268,7 +265,7 @@ public class LoginActivity extends AppCompatActivity implements } public void signInWithPassword() { - //Log.d(TAG, "signInWithPassword() called"); + Log.d(TAG, "signInWithPassword() called"); // Get params from form EditText emailText = (EditText)findViewById(R.id.login_email); @@ -290,16 +287,16 @@ public class LoginActivity extends AppCompatActivity implements // Send formdata to endpoint try { - //Log.v(TAG, "Sending local login POST to server..."); + Log.v(TAG, "Sending local login POST to server..."); authenticateWithTracmanServer(request); } catch (Exception e) { - //Log.e(TAG, "Error sending local login to backend:",e); + Log.e(TAG, "Error sending local login to backend:",e); } } public void signInWithGoogle() { - //Log.v(TAG, "signInWithGoogle() called"); + Log.v(TAG, "signInWithGoogle() called"); Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(signInIntent, RC_SIGN_IN); } @@ -321,7 +318,7 @@ public class LoginActivity extends AppCompatActivity implements @Override public void onConnectionFailed(ConnectionResult connectionResult) { showError(R.string.disconnected); - //Log.d(TAG, "onConnectionFailed:" + connectionResult); + Log.d(TAG, "onConnectionFailed:" + connectionResult); } private void showProgressDialog() { @@ -351,14 +348,14 @@ public class LoginActivity extends AppCompatActivity implements @Override public void onClick(View v) { - //Log.v(TAG, "onClick() called"); + Log.v(TAG, "onClick() called"); switch (v.getId()) { case R.id.login_button: - //Log.v(TAG, "Password login button pressed"); + Log.v(TAG, "Password login button pressed"); signInWithPassword(); break; case R.id.login_button_google: - //Log.v(TAG, "Google login button pressed"); + Log.v(TAG, "Google login button pressed"); signInWithGoogle(); break; // case R.id.login_button_facebook: diff --git a/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java b/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java index dc6db12..8f0f02d 100644 --- a/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java +++ b/app/src/main/java/us/keithirwin/tracman/SettingsActivity.java @@ -16,7 +16,7 @@ import android.support.v4.app.ActivityCompat; import android.support.v7.app.ActionBar; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; -//import android.util.Log; +import android.util.Log; import android.view.MenuItem; import java.util.List; @@ -36,7 +36,7 @@ import static us.keithirwin.tracman.LoginActivity.SIGN_OUT; * API Guide for more information on developing a Settings UI. */ public class SettingsActivity extends AppCompatPreferenceActivity { - //private static final String TAG = "SettingsActivity"; + private static final String TAG = "SettingsActivity"; private static final int MY_FINE_LOCATION_PERMISSION = 425; /** @@ -90,7 +90,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { MY_FINE_LOCATION_PERMISSION); } - //Log.d(TAG, "Starting LocationService"); + Log.d(TAG, "Starting LocationService"); startService(new Intent(SettingsActivity.this, LocationService.class)); } @@ -132,7 +132,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupActionBar(); - //Log.d(TAG, "activity onCreate called"); + Log.d(TAG, "activity onCreate called"); // Restart LocationService when any related preference is changed // findPreference("gps_switch").setOnPreferenceChangeListener(sRestartLocationServiceOnChangeListener); @@ -147,7 +147,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { @Override protected void onStop() { - //Log.d(TAG, "onStop called"); + Log.d(TAG, "onStop called"); super.onStop(); // Get updated preferences SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); @@ -170,7 +170,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } // Start location tracking service - //Log.d(TAG, "Starting LocationService"); + Log.d(TAG, "Starting LocationService"); startService(new Intent(this, LocationService.class)); } @@ -207,7 +207,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { @Override public void onBackPressed() { - //Log.v(TAG,"onBackPressed() called"); + Log.v(TAG,"onBackPressed() called"); // Return to LoginActivity and don't sign back in again setResult(SIGN_OUT, new Intent()); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e1de3f8..2e1ecaf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -8,7 +8,7 @@ FEHLER: Könnte nicht zum Google API Server verbinden. Hilfe Ladet… - Einloggen oder ein neues Konto erstellen. + Einloggen oder ein neues Konto erstellen. Einloggen FEHLER: Nutzer nicht gefunden. Ausloggen @@ -47,7 +47,7 @@ Sendungen einschalten Aktualisierung Vorrang - Passwort vergessen? + Passwort vergessen? Einloggen Email Passwort diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 45e7fe5..4cac28b 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -14,7 +14,7 @@ Transmisiónes apagado ERROR: No se puede conectar al Google API servidor. Ayuda - Iniciar una sesión o participar. + Iniciar una sesión o participar. Iniciar sesión ERROR: Usario no encontrado Cerrar sesión @@ -47,7 +47,7 @@ Encender transmisiónes Actualizaciones de ubicación - Olividé su contrasena? + Olividé su contrasena? Inciar session email contrasena diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7e8af54..aa2ae6d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,8 @@ Tracman us.keithirwin.tracman - 10 - 0.5.0 + 13 + 0.6.1 Loading… [T] @@ -12,7 +12,7 @@ Login Logout - Log in or create an account. + Log in or create an account. ERROR: Unable to connect to Tracman server. @@ -95,7 +95,7 @@ Bug report - Forgot your password? + Forgot your password? Login email password diff --git a/build.gradle b/build.gradle index 4f5127c..38d0260 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.0.0' // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c627fba..6853ea2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,2 +1,2 @@ -#Fri Mar 03 16:00:54 EST 2017 -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +#Tue Jan 30 09:02:00 ECT 2018 +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip diff --git a/release/output.json b/release/output.json new file mode 100644 index 0000000..49bb886 --- /dev/null +++ b/release/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":13},"path":"app-release.apk","properties":{"packageId":"us.keithirwin.tracman","split":"","minSdkVersion":"15"}}] \ No newline at end of file