Сравнить коммиты

..
2 Коммитов
Автор SHA1 Сообщение Дата
Anton Tananaev d887bc4119 Update version number 2018-01-09 08:26:19 +13:00
Anton Tananaev c892a20104 Fix lost API connection logic 2018-01-09 08:25:57 +13:00
2 изменённых файлов: 18 добавлений и 10 удалений
+2 -2
Просмотреть файл
@@ -9,8 +9,8 @@ android {
buildConfigField "boolean", "HIDDEN_APP", "false" buildConfigField "boolean", "HIDDEN_APP", "false"
minSdkVersion 15 minSdkVersion 15
targetSdkVersion 27 targetSdkVersion 27
versionCode 43 versionCode 44
versionName '5.6' versionName '5.7'
} }
lintOptions { lintOptions {
+10 -2
Просмотреть файл
@@ -53,6 +53,8 @@ public class PositionProvider implements LostApiClient.ConnectionCallbacks, Loca
private Location lastLocation; private Location lastLocation;
private boolean started;
public PositionProvider(Context context, PositionListener listener) { public PositionProvider(Context context, PositionListener listener) {
this.context = context; this.context = context;
this.listener = listener; this.listener = listener;
@@ -66,6 +68,7 @@ public class PositionProvider implements LostApiClient.ConnectionCallbacks, Loca
} }
public void startUpdates() { public void startUpdates() {
started = true;
apiClient = new LostApiClient.Builder(context).addConnectionCallbacks(this).build(); apiClient = new LostApiClient.Builder(context).addConnectionCallbacks(this).build();
apiClient.connect(); apiClient.connect();
} }
@@ -84,11 +87,14 @@ public class PositionProvider implements LostApiClient.ConnectionCallbacks, Loca
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")
@Override @Override
public void onConnected() { public void onConnected() {
if (started) {
LocationRequest request = LocationRequest.create() LocationRequest request = LocationRequest.create()
.setPriority(getPriority(preferences.getString(MainFragment.KEY_ACCURACY, "medium"))) .setPriority(getPriority(preferences.getString(MainFragment.KEY_ACCURACY, "medium")))
.setInterval(distance > 0 || angle > 0 ? MINIMUM_INTERVAL : interval); .setInterval(distance > 0 || angle > 0 ? MINIMUM_INTERVAL : interval);
LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, request, this); LocationServices.FusedLocationApi.requestLocationUpdates(apiClient, request, this);
} else {
apiClient.disconnect();
}
} }
@Override @Override
@@ -111,10 +117,12 @@ public class PositionProvider implements LostApiClient.ConnectionCallbacks, Loca
} }
public void stopUpdates() { public void stopUpdates() {
if (apiClient.isConnected()) {
LocationServices.FusedLocationApi.removeLocationUpdates(apiClient, this); LocationServices.FusedLocationApi.removeLocationUpdates(apiClient, this);
apiClient.disconnect(); apiClient.disconnect();
} }
started = false;
}
public static double getBatteryLevel(Context context) { public static double getBatteryLevel(Context context) {
Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));