1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-19 15:01:53 +02:00

- add more debug logs

- start delayed disconnect timer for Bluetooth connecting
This commit is contained in:
oliexdev
2019-02-11 18:23:23 +01:00
parent 6c2674caa1
commit dd3af28067
4 changed files with 24 additions and 15 deletions

View File

@@ -168,7 +168,6 @@ public class OpenScale {
} }
public void selectScaleUser(int userId) { public void selectScaleUser(int userId) {
Timber.d("Select user %d", userId);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putInt("selectedUserId", userId).apply(); prefs.edit().putInt("selectedUserId", userId).apply();
@@ -207,8 +206,7 @@ public class OpenScale {
selectScaleUser(-1); selectScaleUser(-1);
throw new Exception("could not find the selected user"); throw new Exception("could not find the selected user");
} }
Timber.d("Selected user is now %s (%d)",
selectedScaleUser.getUserName(), selectedScaleUser.getId());
return selectedScaleUser; return selectedScaleUser;
} }
} catch (Exception e) { } catch (Exception e) {
@@ -220,7 +218,7 @@ public class OpenScale {
} }
public void deleteScaleUser(int id) { public void deleteScaleUser(int id) {
Timber.d("Delete user %d", id); Timber.d("Delete user " + getScaleUser(id));
userDAO.delete(userDAO.get(id)); userDAO.delete(userDAO.get(id));
selectedScaleUser = null; selectedScaleUser = null;
@@ -288,6 +286,7 @@ public class OpenScale {
// don't add scale data if no user is selected // don't add scale data if no user is selected
if (scaleMeasurement.getUserId() == -1) { if (scaleMeasurement.getUserId() == -1) {
Timber.e("to be added measurement are thrown away because no user is selected");
return -1; return -1;
} }
} }
@@ -335,6 +334,7 @@ public class OpenScale {
updateScaleData(); updateScaleData();
triggerWidgetUpdate(); triggerWidgetUpdate();
} else { } else {
Timber.d("to be added measurement is thrown away because measurement with the same date and time already exist");
if (!silent) { if (!silent) {
Toast.makeText(context, context.getString(R.string.info_new_data_duplicated), Toast.LENGTH_LONG).show(); Toast.makeText(context, context.getString(R.string.info_new_data_duplicated), Toast.LENGTH_LONG).show();
} }
@@ -365,17 +365,21 @@ public class OpenScale {
if (inRangeWeights.size() > 0) { if (inRangeWeights.size() > 0) {
// return the user id which is nearest to the weight (first element of the tree map) // return the user id which is nearest to the weight (first element of the tree map)
return inRangeWeights.entrySet().iterator().next().getValue(); int userId = inRangeWeights.entrySet().iterator().next().getValue();
Timber.d("assign measurement to the nearest measurement with the user " + getScaleUser(userId).getUserName() + " (smartUserAssignment=on)");
return userId;
} }
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
// if ignore out of range preference is true don't add this data // if ignore out of range preference is true don't add this data
if (prefs.getBoolean("ignoreOutOfRange", false)) { if (prefs.getBoolean("ignoreOutOfRange", false)) {
Timber.d("to be added measurement is thrown away because measurement is out of range (smartUserAssignment=on;ignoreOutOfRange=on)");
return -1; return -1;
} }
// return selected scale user id if not out of range preference is checked and weight is out of range of any user // return selected scale user id if not out of range preference is checked and weight is out of range of any user
Timber.d("assign measurement to the selected user (smartUserAssignment=on;ignoreOutOfRange=off)");
return getSelectedScaleUser().getId(); return getSelectedScaleUser().getId();
} }

View File

@@ -485,6 +485,7 @@ public abstract class BluetoothCommunication {
|| locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
) { ) {
Timber.d("Do LE scan before connecting to device"); Timber.d("Do LE scan before connecting to device");
disconnectWithDelay();
scanSubscription = bleClient.scanBleDevices( scanSubscription = bleClient.scanBleDevices(
new ScanSettings.Builder() new ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY) .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
@@ -495,7 +496,7 @@ public abstract class BluetoothCommunication {
.subscribe(bleScanResult -> { .subscribe(bleScanResult -> {
if (bleScanResult.getBleDevice().getMacAddress().equals(macAddress)) { if (bleScanResult.getBleDevice().getMacAddress().equals(macAddress)) {
connectToDevice(macAddress); connectToDevice(macAddress);
}}, throwable -> onError(throwable)); }}, throwable -> setBtStatus(BT_STATUS_CODE.BT_NO_DEVICE_FOUND));
} }
else { else {
Timber.d("No coarse location permission, connecting without LE scan"); Timber.d("No coarse location permission, connecting without LE scan");
@@ -535,6 +536,7 @@ public abstract class BluetoothCommunication {
setBtMonitoringOn(); setBtMonitoringOn();
setBtMachineState(BT_MACHINE_STATE.BT_INIT_STATE); setBtMachineState(BT_MACHINE_STATE.BT_INIT_STATE);
resetDisconnectTimer();
} }
} }
}, 500); }, 500);

View File

@@ -16,17 +16,17 @@
package com.health.openscale.core.datatypes; package com.health.openscale.core.datatypes;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
import androidx.annotation.NonNull;
import com.health.openscale.core.utils.Converters; import com.health.openscale.core.utils.Converters;
import com.health.openscale.core.utils.DateTimeHelpers; import com.health.openscale.core.utils.DateTimeHelpers;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import androidx.annotation.NonNull;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity(tableName = "scaleUsers") @Entity(tableName = "scaleUsers")
public class ScaleUser { public class ScaleUser {
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@@ -189,9 +189,11 @@ public class ScaleUser {
public String toString() public String toString()
{ {
return String.format( return String.format(
"ID: %d, NAME: %s, BIRTHDAY: %s, BODY_HEIGHT: %.2f, SCALE_UNIT: %s, " + "id(%d) name(%s) birthday(%s) age(%d) body height(%.2f) scale unit(%s) " +
"GENDER: %s, INITIAL_WEIGHT: %.2f, GOAL_WEIGHT: %.2f, GOAL_DATE: %s", "gender(%s) initial weight(%.2f) goal weight(%.2f) goal date(%s) " +
id, userName, birthday.toString(), bodyHeight, scaleUnit.toString(), "measure unt(%s) activity level(%d)",
gender.toString().toLowerCase(), initialWeight, goalWeight, goalDate.toString()); id, userName, birthday.toString(), getAge(), bodyHeight, scaleUnit.toString(),
gender.toString().toLowerCase(), initialWeight, goalWeight, goalDate.toString(),
measureUnit.toString(), activityLevel.toInt());
} }
} }

View File

@@ -143,6 +143,7 @@ public class AboutPreferences extends PreferenceFragment {
getResources().getString(R.string.app_name), getResources().getString(R.string.app_name),
BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE,
Build.VERSION.SDK_INT, Build.MANUFACTURER, Build.MODEL); Build.VERSION.SDK_INT, Build.MANUFACTURER, Build.MODEL);
Timber.d("Selected user " + OpenScale.getInstance().getSelectedScaleUser());
} }
catch (IOException ex) { catch (IOException ex) {
Timber.e(ex, "Failed to open debug log %s", uri.toString()); Timber.e(ex, "Failed to open debug log %s", uri.toString());