mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-22 08:13:43 +02:00
Convert logging to use Timber
This commit is contained in:
@@ -26,7 +26,6 @@ import android.support.test.runner.screenshot.BasicScreenCaptureProcessor;
|
|||||||
import android.support.test.runner.screenshot.ScreenCapture;
|
import android.support.test.runner.screenshot.ScreenCapture;
|
||||||
import android.support.test.runner.screenshot.Screenshot;
|
import android.support.test.runner.screenshot.Screenshot;
|
||||||
import android.test.suitebuilder.annotation.LargeTest;
|
import android.test.suitebuilder.annotation.LargeTest;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
|
||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
@@ -51,6 +50,8 @@ import java.util.Calendar;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
import static android.os.Environment.DIRECTORY_PICTURES;
|
import static android.os.Environment.DIRECTORY_PICTURES;
|
||||||
import static android.os.Environment.getExternalStoragePublicDirectory;
|
import static android.os.Environment.getExternalStoragePublicDirectory;
|
||||||
import static android.support.test.espresso.Espresso.onView;
|
import static android.support.test.espresso.Espresso.onView;
|
||||||
@@ -194,7 +195,7 @@ public class ScreenshotRecorder {
|
|||||||
try {
|
try {
|
||||||
scaleMeasurementList = CsvHelper.importFrom(new BufferedReader(new StringReader(data)));
|
scaleMeasurementList = CsvHelper.importFrom(new BufferedReader(new StringReader(data)));
|
||||||
} catch (IOException | ParseException e) {
|
} catch (IOException | ParseException e) {
|
||||||
Log.e("ScreenshotRecorder", e.getMessage());
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// set current year to the measurement data
|
// set current year to the measurement data
|
||||||
@@ -282,7 +283,7 @@ public class ScreenshotRecorder {
|
|||||||
|
|
||||||
mActivityTestRule.finishActivity();
|
mActivityTestRule.finishActivity();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
Log.e("ScreenshotRecorder", e.getMessage());
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,5 +29,8 @@ public class Application extends android.app.Application {
|
|||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
Timber.plant(new Timber.DebugTree());
|
Timber.plant(new Timber.DebugTree());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create OpenScale instance
|
||||||
|
OpenScale.getInstance(getApplicationContext());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,6 @@ import android.preference.PreferenceManager;
|
|||||||
import android.provider.OpenableColumns;
|
import android.provider.OpenableColumns;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.text.format.DateFormat;
|
import android.text.format.DateFormat;
|
||||||
import android.util.Log;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
@@ -69,6 +68,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class OpenScale {
|
public class OpenScale {
|
||||||
|
|
||||||
public static final String DATABASE_NAME = "openScale.db";
|
public static final String DATABASE_NAME = "openScale.db";
|
||||||
@@ -103,6 +104,7 @@ public class OpenScale {
|
|||||||
|
|
||||||
public static OpenScale getInstance(Context context) {
|
public static OpenScale getInstance(Context context) {
|
||||||
if (instance == null) {
|
if (instance == null) {
|
||||||
|
Timber.d("Creating instance");
|
||||||
instance = new OpenScale(context.getApplicationContext());
|
instance = new OpenScale(context.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,6 +163,7 @@ 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();
|
||||||
|
|
||||||
@@ -202,6 +205,7 @@ public class OpenScale {
|
|||||||
return selectedScaleUser;
|
return selectedScaleUser;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
Timber.e(e);
|
||||||
Toast.makeText(context, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
Toast.makeText(context, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -209,6 +213,7 @@ public class OpenScale {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteScaleUser(int id) {
|
public void deleteScaleUser(int id) {
|
||||||
|
Timber.d("Delete user %d", id);
|
||||||
userDAO.delete(userDAO.get(id));
|
userDAO.delete(userDAO.get(id));
|
||||||
selectedScaleUser = null;
|
selectedScaleUser = null;
|
||||||
|
|
||||||
@@ -531,8 +536,7 @@ public class OpenScale {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean connectToBluetoothDevice(String deviceName, String hwAddress, Handler callbackBtHandler) {
|
public boolean connectToBluetoothDevice(String deviceName, String hwAddress, Handler callbackBtHandler) {
|
||||||
Log.d("OpenScale", "Trying to connect to bluetooth device " + hwAddress
|
Timber.d("Trying to connect to bluetooth device %s (%s)", hwAddress, deviceName);
|
||||||
+ " (" + deviceName + ")");
|
|
||||||
|
|
||||||
disconnectFromBluetoothDevice();
|
disconnectFromBluetoothDevice();
|
||||||
|
|
||||||
@@ -552,7 +556,7 @@ public class OpenScale {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d("OpenScale", "Disconnecting from bluetooth device");
|
Timber.d("Disconnecting from bluetooth device");
|
||||||
btDeviceDriver.disconnect(true);
|
btDeviceDriver.disconnect(true);
|
||||||
btDeviceDriver = null;
|
btDeviceDriver = null;
|
||||||
|
|
||||||
|
@@ -23,7 +23,6 @@ import android.content.SharedPreferences;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
|
|
||||||
@@ -32,6 +31,8 @@ import java.io.IOException;
|
|||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class AlarmBackupHandler
|
public class AlarmBackupHandler
|
||||||
{
|
{
|
||||||
public static final String INTENT_EXTRA_BACKUP_ALARM = "alarmBackupIntent";
|
public static final String INTENT_EXTRA_BACKUP_ALARM = "alarmBackupIntent";
|
||||||
@@ -105,9 +106,9 @@ public class AlarmBackupHandler
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
openScale.exportDatabase(Uri.fromFile(exportFile));
|
openScale.exportDatabase(Uri.fromFile(exportFile));
|
||||||
Log.d("AlarmBackupHandler", "openScale Auto Backup to " + exportFile);
|
Timber.d("openScale Auto Backup to %s", exportFile);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Log.e("AlarmBackupHandler", "Error while exporting database: " + e.getMessage());
|
Timber.e(e, "Error while exporting database");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,6 @@ import android.content.Intent;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.service.notification.StatusBarNotification;
|
import android.service.notification.StatusBarNotification;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
@@ -35,13 +34,14 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
import static android.content.Context.NOTIFICATION_SERVICE;
|
import static android.content.Context.NOTIFICATION_SERVICE;
|
||||||
|
|
||||||
public class AlarmHandler
|
public class AlarmHandler
|
||||||
{
|
{
|
||||||
public static final String INTENT_EXTRA_ALARM = "alarmIntent";
|
public static final String INTENT_EXTRA_ALARM = "alarmIntent";
|
||||||
private static final int ALARM_NOTIFICATION_ID = 0x01;
|
private static final int ALARM_NOTIFICATION_ID = 0x01;
|
||||||
private static final String LOG_TAG = "AlarmBuilder";
|
|
||||||
|
|
||||||
public void scheduleAlarms(Context context)
|
public void scheduleAlarms(Context context)
|
||||||
{
|
{
|
||||||
@@ -92,7 +92,7 @@ public class AlarmHandler
|
|||||||
|
|
||||||
private void setRepeatingAlarm(Context context, int dayOfWeek, Calendar nextAlarmTimestamp)
|
private void setRepeatingAlarm(Context context, int dayOfWeek, Calendar nextAlarmTimestamp)
|
||||||
{
|
{
|
||||||
Log.d(LOG_TAG, "Set repeating alarm for " + nextAlarmTimestamp.getTime());
|
Timber.d("Set repeating alarm for %s", nextAlarmTimestamp.getTime());
|
||||||
PendingIntent alarmPendingIntent = getPendingAlarmIntent(context, dayOfWeek);
|
PendingIntent alarmPendingIntent = getPendingAlarmIntent(context, dayOfWeek);
|
||||||
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||||
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, nextAlarmTimestamp.getTimeInMillis(),
|
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, nextAlarmTimestamp.getTimeInMillis(),
|
||||||
|
@@ -22,7 +22,6 @@ package com.health.openscale.core.bluetooth;
|
|||||||
import android.bluetooth.BluetoothGatt;
|
import android.bluetooth.BluetoothGatt;
|
||||||
import android.bluetooth.BluetoothGattCharacteristic;
|
import android.bluetooth.BluetoothGattCharacteristic;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.R;
|
import com.health.openscale.R;
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
@@ -39,9 +38,9 @@ import java.util.Date;
|
|||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
import timber.log.Timber;
|
||||||
private final static String TAG = "BeurerSanitas";
|
|
||||||
|
|
||||||
|
public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
||||||
enum DeviceType { BEURER_BF700_800_RT_LIBRA, BEURER_BF710, SANITAS_SBF70_70 }
|
enum DeviceType { BEURER_BF700_800_RT_LIBRA, BEURER_BF710, SANITAS_SBF70_70 }
|
||||||
|
|
||||||
private static final int PRIMARY_SERVICE = 0x180A;
|
private static final int PRIMARY_SERVICE = 0x180A;
|
||||||
@@ -196,7 +195,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
// Unknown user, request creation of new user
|
// Unknown user, request creation of new user
|
||||||
if (countRegisteredScaleUsers == maxRegisteredScaleUser) {
|
if (countRegisteredScaleUsers == maxRegisteredScaleUser) {
|
||||||
setBtMachineState(BT_MACHINE_STATE.BT_CLEANUP_STATE);
|
setBtMachineState(BT_MACHINE_STATE.BT_CLEANUP_STATE);
|
||||||
Log.d(TAG, "Cannot create additional scale user");
|
Timber.d("Cannot create additional scale user");
|
||||||
sendMessage(R.string.error_max_scale_users, 0);
|
sendMessage(R.string.error_max_scale_users, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -209,7 +208,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
byte[] nick = selectedUser.getUserName().toUpperCase().substring(0, maxIdx).getBytes();
|
byte[] nick = selectedUser.getUserName().toUpperCase().substring(0, maxIdx).getBytes();
|
||||||
|
|
||||||
byte activity = 2; // activity level: 1 - 5
|
byte activity = 2; // activity level: 1 - 5
|
||||||
Log.d(TAG, "Create User:" + selectedUser.getUserName());
|
Timber.d("Create User:" + selectedUser.getUserName());
|
||||||
|
|
||||||
writeBytes(new byte[]{
|
writeBytes(new byte[]{
|
||||||
(byte) startByte, (byte) 0x31, (byte) 0x0, (byte) 0x0, (byte) 0x0,
|
(byte) startByte, (byte) 0x31, (byte) 0x0, (byte) 0x0, (byte) 0x0,
|
||||||
@@ -224,14 +223,14 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// Get existing user information
|
// Get existing user information
|
||||||
Log.d(TAG, "Request getUserInfo " + currentScaleUserId);
|
Timber.d("Request getUserInfo " + currentScaleUserId);
|
||||||
writeBytes(new byte[]{
|
writeBytes(new byte[]{
|
||||||
(byte) startByte, (byte) 0x36, (byte) 0x0, (byte) 0x0, (byte) 0x0,
|
(byte) startByte, (byte) 0x36, (byte) 0x0, (byte) 0x0, (byte) 0x0,
|
||||||
(byte) 0x0, (byte) 0x0, (byte) 0x0, (byte) 0x0, (byte) currentScaleUserId
|
(byte) 0x0, (byte) 0x0, (byte) 0x0, (byte) 0x0, (byte) currentScaleUserId
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
Log.d(TAG, "scaleuserid:" + currentScaleUserId + " registered users: " + countRegisteredScaleUsers +
|
Timber.d("scaleuserid:" + currentScaleUserId + " registered users: " + countRegisteredScaleUsers +
|
||||||
" extracted users: " + seenUsers.size());
|
" extracted users: " + seenUsers.size());
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
@@ -253,7 +252,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
if (currentScaleUserId == 0)
|
if (currentScaleUserId == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Log.d(TAG, "Request Saved User Measurements");
|
Timber.d("Request Saved User Measurements");
|
||||||
writeBytes(new byte[]{
|
writeBytes(new byte[]{
|
||||||
(byte) startByte, (byte) 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, (byte) currentScaleUserId
|
(byte) startByte, (byte) 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, (byte) currentScaleUserId
|
||||||
});
|
});
|
||||||
@@ -293,17 +292,17 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == getAlternativeStartByte(6) && (data[1] & 0xFF) == 0x00) {
|
if ((data[0] & 0xFF) == getAlternativeStartByte(6) && (data[1] & 0xFF) == 0x00) {
|
||||||
Log.d(TAG, "ACK Scale is ready");
|
Timber.d("ACK Scale is ready");
|
||||||
nextMachineStateStep();
|
nextMachineStateStep();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && data[2] == 0x33) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && data[2] == 0x33) {
|
||||||
Log.d(TAG, "ACK Got general user information");
|
Timber.d("ACK Got general user information");
|
||||||
|
|
||||||
int count = (byte) (data[4] & 0xFF);
|
int count = (byte) (data[4] & 0xFF);
|
||||||
int maxUsers = (byte) (data[5] & 0xFF);
|
int maxUsers = (byte) (data[5] & 0xFF);
|
||||||
Log.d(TAG, "Count:" + count + " maxUsers:" + maxUsers);
|
Timber.d("Count:" + count + " maxUsers:" + maxUsers);
|
||||||
|
|
||||||
countRegisteredScaleUsers = count;
|
countRegisteredScaleUsers = count;
|
||||||
// Check if any scale user is registered
|
// Check if any scale user is registered
|
||||||
@@ -317,7 +316,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x34) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x34) {
|
||||||
Log.d(TAG, "Ack Get UUIDSs List of Users");
|
Timber.d("Ack Get UUIDSs List of Users");
|
||||||
|
|
||||||
byte currentUserMax = (byte) (data[2] & 0xFF);
|
byte currentUserMax = (byte) (data[2] & 0xFF);
|
||||||
byte currentUserID = (byte) (data[3] & 0xFF);
|
byte currentUserID = (byte) (data[3] & 0xFF);
|
||||||
@@ -340,7 +339,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
// We have seen all users: user is unknown
|
// We have seen all users: user is unknown
|
||||||
currentScaleUserId = 0;
|
currentScaleUserId = 0;
|
||||||
}
|
}
|
||||||
Log.d(TAG, "Send ack gotUser");
|
Timber.d("Send ack gotUser");
|
||||||
writeBytes(new byte[]{
|
writeBytes(new byte[]{
|
||||||
(byte) startByte, (byte) 0xf1, (byte) 0x34, currentUserMax,
|
(byte) startByte, (byte) 0xf1, (byte) 0x34, currentUserMax,
|
||||||
currentUserID
|
currentUserID
|
||||||
@@ -351,7 +350,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xF0 && (data[2] & 0xFF) == 0x36) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xF0 && (data[2] & 0xFF) == 0x36) {
|
||||||
Log.d(TAG, "Ack Get User Info Initials");
|
Timber.d("Ack Get User Info Initials");
|
||||||
String name = new String(data, 4, 3);
|
String name = new String(data, 4, 3);
|
||||||
byte year = (byte) (data[7] & 0xFF);
|
byte year = (byte) (data[7] & 0xFF);
|
||||||
byte month = (byte) (data[8] & 0xFF);
|
byte month = (byte) (data[8] & 0xFF);
|
||||||
@@ -361,7 +360,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
boolean male = (data[11] & 0xF0) != 0;
|
boolean male = (data[11] & 0xF0) != 0;
|
||||||
byte activity = (byte) (data[11] & 0x0F);
|
byte activity = (byte) (data[11] & 0x0F);
|
||||||
|
|
||||||
Log.d(TAG, "Name " + name + " YY-MM-DD: " + year + " " + month + " " + day +
|
Timber.d("Name " + name + " YY-MM-DD: " + year + " " + month + " " + day +
|
||||||
"Height: " + height + " Sex:" + (male ? "M" : "F") + "activity: " + activity);
|
"Height: " + height + " Sex:" + (male ? "M" : "F") + "activity: " + activity);
|
||||||
|
|
||||||
// Get scale status for user
|
// Get scale status for user
|
||||||
@@ -374,7 +373,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x4F) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x4F) {
|
||||||
Log.d(TAG, "Ack Get scale status");
|
Timber.d("Ack Get scale status");
|
||||||
|
|
||||||
int unknown = data[3];
|
int unknown = data[3];
|
||||||
int batteryLevel = (data[4] & 0xFF);
|
int batteryLevel = (data[4] & 0xFF);
|
||||||
@@ -386,7 +385,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
boolean userMeasurementExist = (data[10] == 0);
|
boolean userMeasurementExist = (data[10] == 0);
|
||||||
int scaleVersion = data[11];
|
int scaleVersion = data[11];
|
||||||
|
|
||||||
Log.d(TAG, "BatteryLevel:" + batteryLevel + " weightThreshold: " + weightThreshold +
|
Timber.d("BatteryLevel:" + batteryLevel + " weightThreshold: " + weightThreshold +
|
||||||
" BodyFatThresh: " + bodyFatThreshold + " Unit: " + unit + " userExists: " + userExists +
|
" BodyFatThresh: " + bodyFatThreshold + " Unit: " + unit + " userExists: " + userExists +
|
||||||
" UserReference Weight Exists: " + userReferWeightExists + " UserMeasurementExists: " + userMeasurementExist +
|
" UserReference Weight Exists: " + userReferWeightExists + " UserMeasurementExists: " + userMeasurementExist +
|
||||||
" scaleVersion: " + scaleVersion);
|
" scaleVersion: " + scaleVersion);
|
||||||
@@ -394,7 +393,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && data[2] == 0x31) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && data[2] == 0x31) {
|
||||||
Log.d(TAG, "Acknowledge creation of user");
|
Timber.d("Acknowledge creation of user");
|
||||||
|
|
||||||
// Indicate user to step on scale
|
// Indicate user to step on scale
|
||||||
sendMessage(R.string.info_step_on_scale, 0);
|
sendMessage(R.string.info_step_on_scale, 0);
|
||||||
@@ -410,16 +409,16 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
|
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x41) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x41) {
|
||||||
Log.d(TAG, "Will start to receive measurements User Specific");
|
Timber.d("Will start to receive measurements User Specific");
|
||||||
|
|
||||||
byte nr_measurements = data[3];
|
byte nr_measurements = data[3];
|
||||||
|
|
||||||
Log.d(TAG, "New measurements: " + nr_measurements / 2);
|
Timber.d("New measurements: " + nr_measurements / 2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x42) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x42) {
|
||||||
Log.d(TAG, "Specific measurement User specific");
|
Timber.d("Specific measurement User specific");
|
||||||
|
|
||||||
// Measurements are split into two parts
|
// Measurements are split into two parts
|
||||||
|
|
||||||
@@ -448,7 +447,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
ScaleMeasurement parsedData = parseScaleData(receivedScaleData.toByteArray());
|
ScaleMeasurement parsedData = parseScaleData(receivedScaleData.toByteArray());
|
||||||
addScaleData(parsedData);
|
addScaleData(parsedData);
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
Log.d(TAG, "Could not parse byte array: " + byteInHex(receivedScaleData.toByteArray()));
|
Timber.d(e, "Could not parse byte array: " + byteInHex(receivedScaleData.toByteArray()));
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -461,7 +460,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x58) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x58) {
|
||||||
Log.d(TAG, "Active measurement");
|
Timber.d("Active measurement");
|
||||||
float weight = getKiloGram(data, 3);
|
float weight = getKiloGram(data, 3);
|
||||||
if ((data[2] & 0xFF) != 0x00) {
|
if ((data[2] & 0xFF) != 0x00) {
|
||||||
// temporary value;
|
// temporary value;
|
||||||
@@ -469,7 +468,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.i(TAG, "Got weight: " + weight);
|
Timber.i("Got weight: " + weight);
|
||||||
|
|
||||||
writeBytes(new byte[]{
|
writeBytes(new byte[]{
|
||||||
(byte) startByte, (byte) 0xf1, (byte) (data[1] & 0xFF),
|
(byte) startByte, (byte) 0xf1, (byte) (data[1] & 0xFF),
|
||||||
@@ -481,7 +480,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x59) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0x59) {
|
||||||
// Get stable measurement results
|
// Get stable measurement results
|
||||||
Log.d(TAG, "Get measurement data " + ((int) data[3]));
|
Timber.d("Get measurement data " + ((int) data[3]));
|
||||||
|
|
||||||
int max_items = (data[2] & 0xFF);
|
int max_items = (data[2] & 0xFF);
|
||||||
int current_item = (data[3] & 0xFF);
|
int current_item = (data[3] & 0xFF);
|
||||||
@@ -512,7 +511,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
// Delete data
|
// Delete data
|
||||||
deleteScaleData();
|
deleteScaleData();
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
Log.d(TAG, "Parse Exception " + byteInHex(receivedScaleData.toByteArray()));
|
Timber.d(e, "Parse Exception " + byteInHex(receivedScaleData.toByteArray()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -520,11 +519,11 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x43) {
|
if ((data[0] & 0xFF) == startByte && (data[1] & 0xFF) == 0xf0 && (data[2] & 0xFF) == 0x43) {
|
||||||
Log.d(TAG, "Acknowledge: Data deleted.");
|
Timber.d("Acknowledge: Data deleted.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(TAG, "DataChanged - not handled: " + byteInHex(data));
|
Timber.d("DataChanged - not handled: " + byteInHex(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteScaleData() {
|
private void deleteScaleData() {
|
||||||
@@ -569,7 +568,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
receivedMeasurement.setMuscle(muscle);
|
receivedMeasurement.setMuscle(muscle);
|
||||||
receivedMeasurement.setBone(bone);
|
receivedMeasurement.setBone(bone);
|
||||||
|
|
||||||
Log.i(TAG, "Measurement: " + receivedMeasurement.getDateTime().toString() +
|
Timber.i("Measurement: " + receivedMeasurement.getDateTime().toString() +
|
||||||
" Impedance: " + impedance + " Weight:" + weight +
|
" Impedance: " + impedance + " Weight:" + weight +
|
||||||
" Fat: " + fat + " Water: " + water + " Muscle: " + muscle +
|
" Fat: " + fat + " Water: " + water + " Muscle: " + muscle +
|
||||||
" Bone: " + bone + " BMR: " + bmr + " AMR: " + amr + " BMI: " + bmi);
|
" Bone: " + bone + " BMR: " + bmr + " AMR: " + amr + " BMI: " + bmi);
|
||||||
@@ -581,7 +580,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
// Update date/time of the scale
|
// Update date/time of the scale
|
||||||
long unixTime = System.currentTimeMillis() / 1000L;
|
long unixTime = System.currentTimeMillis() / 1000L;
|
||||||
byte[] unixTimeBytes = Converters.toUnsignedInt32Be(unixTime);
|
byte[] unixTimeBytes = Converters.toUnsignedInt32Be(unixTime);
|
||||||
Log.d(TAG, "Write new Date/Time:" + unixTime + " " + byteInHex(unixTimeBytes));
|
Timber.d("Write new Date/Time:" + unixTime + " " + byteInHex(unixTimeBytes));
|
||||||
|
|
||||||
writeBytes(new byte[]{(byte) getAlternativeStartByte(9),
|
writeBytes(new byte[]{(byte) getAlternativeStartByte(9),
|
||||||
unixTimeBytes[0], unixTimeBytes[1], unixTimeBytes[2], unixTimeBytes[3]});
|
unixTimeBytes[0], unixTimeBytes[1], unixTimeBytes[2], unixTimeBytes[3]});
|
||||||
@@ -602,7 +601,7 @@ public class BluetoothBeurerSanitas extends BluetoothCommunication {
|
|||||||
command[2] = (byte) 0x04;
|
command[2] = (byte) 0x04;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Log.d(TAG, "Setting unit " + selectedUser.getScaleUnit().toString());
|
Timber.d("Setting unit " + selectedUser.getScaleUnit().toString());
|
||||||
writeBytes(command);
|
writeBytes(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -25,7 +25,6 @@ import android.bluetooth.BluetoothGattDescriptor;
|
|||||||
import android.bluetooth.BluetoothProfile;
|
import android.bluetooth.BluetoothProfile;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
|
|
||||||
@@ -33,6 +32,8 @@ import java.util.LinkedList;
|
|||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public abstract class BluetoothCommunication {
|
public abstract class BluetoothCommunication {
|
||||||
public enum BT_STATUS_CODE {BT_RETRIEVE_SCALE_DATA, BT_INIT_PROCESS, BT_CONNECTION_ESTABLISHED,
|
public enum BT_STATUS_CODE {BT_RETRIEVE_SCALE_DATA, BT_INIT_PROCESS, BT_CONNECTION_ESTABLISHED,
|
||||||
BT_CONNECTION_LOST, BT_NO_DEVICE_FOUND, BT_UNEXPECTED_ERROR, BT_SCALE_MESSAGE
|
BT_CONNECTION_LOST, BT_NO_DEVICE_FOUND, BT_UNEXPECTED_ERROR, BT_SCALE_MESSAGE
|
||||||
@@ -300,7 +301,7 @@ public abstract class BluetoothCommunication {
|
|||||||
*/
|
*/
|
||||||
protected String byteInHex(byte[] data) {
|
protected String byteInHex(byte[] data) {
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
Log.e("BluetoothCommunication", "Data is null");
|
Timber.e("Data is null");
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,7 +378,7 @@ public abstract class BluetoothCommunication {
|
|||||||
protected void nextMachineStateStep() {
|
protected void nextMachineStateStep() {
|
||||||
switch (btMachineState) {
|
switch (btMachineState) {
|
||||||
case BT_INIT_STATE:
|
case BT_INIT_STATE:
|
||||||
Log.d("BluetoothCommunication", "INIT STATE: " + initStepNr);
|
Timber.d("INIT STATE: " + initStepNr);
|
||||||
if (!nextInitCmd(initStepNr)) {
|
if (!nextInitCmd(initStepNr)) {
|
||||||
btMachineState = BT_MACHINE_STATE.BT_CMD_STATE;
|
btMachineState = BT_MACHINE_STATE.BT_CMD_STATE;
|
||||||
nextMachineStateStep();
|
nextMachineStateStep();
|
||||||
@@ -385,12 +386,12 @@ public abstract class BluetoothCommunication {
|
|||||||
initStepNr++;
|
initStepNr++;
|
||||||
break;
|
break;
|
||||||
case BT_CMD_STATE:
|
case BT_CMD_STATE:
|
||||||
Log.d("BluetoothCommunication", "CMD STATE: " + cmdStepNr);
|
Timber.d("CMD STATE: " + cmdStepNr);
|
||||||
nextBluetoothCmd(cmdStepNr);
|
nextBluetoothCmd(cmdStepNr);
|
||||||
cmdStepNr++;
|
cmdStepNr++;
|
||||||
break;
|
break;
|
||||||
case BT_CLEANUP_STATE:
|
case BT_CLEANUP_STATE:
|
||||||
Log.d("BluetoothCommunication", "CLEANUP STATE: " + cleanupStepNr);
|
Timber.d("CLEANUP STATE: " + cleanupStepNr);
|
||||||
nextCleanUpCmd(cleanupStepNr);
|
nextCleanUpCmd(cleanupStepNr);
|
||||||
cleanupStepNr++;
|
cleanupStepNr++;
|
||||||
break;
|
break;
|
||||||
@@ -408,7 +409,7 @@ public abstract class BluetoothCommunication {
|
|||||||
BluetoothGattDescriptor descriptorRequest = descriptorRequestQueue.poll();
|
BluetoothGattDescriptor descriptorRequest = descriptorRequestQueue.poll();
|
||||||
if (descriptorRequest != null) {
|
if (descriptorRequest != null) {
|
||||||
if (!bluetoothGatt.writeDescriptor(descriptorRequest)) {
|
if (!bluetoothGatt.writeDescriptor(descriptorRequest)) {
|
||||||
Log.d("BTC", "Descriptor Write failed(" + byteInHex(descriptorRequest.getValue()) + ")");
|
Timber.d("Descriptor Write failed(" + byteInHex(descriptorRequest.getValue()) + ")");
|
||||||
}
|
}
|
||||||
openRequest = true;
|
openRequest = true;
|
||||||
return;
|
return;
|
||||||
@@ -418,7 +419,7 @@ public abstract class BluetoothCommunication {
|
|||||||
BluetoothGattCharacteristic characteristicRequest = characteristicRequestQueue.poll();
|
BluetoothGattCharacteristic characteristicRequest = characteristicRequestQueue.poll();
|
||||||
if (characteristicRequest != null) {
|
if (characteristicRequest != null) {
|
||||||
if (!bluetoothGatt.writeCharacteristic(characteristicRequest)) {
|
if (!bluetoothGatt.writeCharacteristic(characteristicRequest)) {
|
||||||
Log.d("BTC", "Characteristic Write failed(" + byteInHex(characteristicRequest.getValue()) + ")");
|
Timber.d("Characteristic Write failed(" + byteInHex(characteristicRequest.getValue()) + ")");
|
||||||
}
|
}
|
||||||
openRequest = true;
|
openRequest = true;
|
||||||
return;
|
return;
|
||||||
|
@@ -18,7 +18,6 @@ package com.health.openscale.core.bluetooth;
|
|||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.bluetooth.BluetoothSocket;
|
import android.bluetooth.BluetoothSocket;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
|
|
||||||
@@ -29,6 +28,8 @@ import java.text.ParseException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class BluetoothCustomOpenScale extends BluetoothCommunication {
|
public class BluetoothCustomOpenScale extends BluetoothCommunication {
|
||||||
private final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Standard SerialPortService ID
|
private final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Standard SerialPortService ID
|
||||||
|
|
||||||
@@ -201,13 +202,13 @@ public class BluetoothCustomOpenScale extends BluetoothCommunication {
|
|||||||
|
|
||||||
switch (btString.charAt(1)) {
|
switch (btString.charAt(1)) {
|
||||||
case 'I':
|
case 'I':
|
||||||
Log.i("OpenScale", "MCU Information: " + btMsg);
|
Timber.i("MCU Information: " + btMsg);
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
Log.e("OpenScale", "MCU Error: " + btMsg);
|
Timber.e("MCU Error: " + btMsg);
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
Log.i("OpenScale", "MCU stored data size: " + btMsg);
|
Timber.i("MCU stored data size: " + btMsg);
|
||||||
break;
|
break;
|
||||||
case 'D':
|
case 'D':
|
||||||
String[] csvField = btMsg.split(",");
|
String[] csvField = btMsg.split(",");
|
||||||
|
@@ -19,7 +19,6 @@ package com.health.openscale.core.bluetooth;
|
|||||||
import android.bluetooth.BluetoothGatt;
|
import android.bluetooth.BluetoothGatt;
|
||||||
import android.bluetooth.BluetoothGattCharacteristic;
|
import android.bluetooth.BluetoothGattCharacteristic;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
@@ -28,6 +27,8 @@ import com.health.openscale.core.datatypes.ScaleUser;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class BluetoothDigooDGSO38H extends BluetoothCommunication {
|
public class BluetoothDigooDGSO38H extends BluetoothCommunication {
|
||||||
private final UUID WEIGHT_MEASUREMENT_SERVICE = UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb");
|
private final UUID WEIGHT_MEASUREMENT_SERVICE = UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb");
|
||||||
private final UUID WEIGHT_MEASUREMENT_CHARACTERISTIC = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb");
|
private final UUID WEIGHT_MEASUREMENT_CHARACTERISTIC = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb");
|
||||||
@@ -120,8 +121,8 @@ public class BluetoothDigooDGSO38H extends BluetoothCommunication {
|
|||||||
weight = (float) (((weightBytes[3] & 0xFF) << 8) | (weightBytes[4] & 0xFF)) / 100.0f;
|
weight = (float) (((weightBytes[3] & 0xFF) << 8) | (weightBytes[4] & 0xFF)) / 100.0f;
|
||||||
fat = (float) (((weightBytes[6] & 0xFF) << 8) | (weightBytes[7] & 0xFF)) / 10.0f;
|
fat = (float) (((weightBytes[6] & 0xFF) << 8) | (weightBytes[7] & 0xFF)) / 10.0f;
|
||||||
if (Math.abs(fat - 0.0) < 0.00001) {
|
if (Math.abs(fat - 0.0) < 0.00001) {
|
||||||
Log.d("BluetoothDigooDGSO38H", "Scale signaled that measurement of all data " +
|
Timber.d("Scale signaled that measurement of all data " +
|
||||||
"is done, but fat ist still zero. Settling for just adding weight.");
|
"is done, but fat is still zero. Settling for just adding weight.");
|
||||||
} else {
|
} else {
|
||||||
//subcutaneousFat = (float) (((weightBytes[8] & 0xFF) << 8) | (weightBytes[9] & 0xFF)) / 10.0f;
|
//subcutaneousFat = (float) (((weightBytes[8] & 0xFF) << 8) | (weightBytes[9] & 0xFF)) / 10.0f;
|
||||||
//visceralFat = (float) (weightBytes[10] & 0xFF) / 10.0f;
|
//visceralFat = (float) (weightBytes[10] & 0xFF) / 10.0f;
|
||||||
|
@@ -20,7 +20,6 @@ package com.health.openscale.core.bluetooth;
|
|||||||
import android.bluetooth.BluetoothDevice;
|
import android.bluetooth.BluetoothDevice;
|
||||||
import android.bluetooth.BluetoothSocket;
|
import android.bluetooth.BluetoothSocket;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
|
|
||||||
@@ -31,6 +30,8 @@ import java.util.UUID;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
||||||
private final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Standard SerialPortService ID
|
private final UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Standard SerialPortService ID
|
||||||
|
|
||||||
@@ -55,19 +56,19 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean nextInitCmd(int stateNr) {
|
protected boolean nextInitCmd(int stateNr) {
|
||||||
Log.w("openscale","ihealthHS3 - nextInitCmd - returning false");
|
Timber.w("ihealthHS3 - nextInitCmd - returning false");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean nextBluetoothCmd(int stateNr) {
|
protected boolean nextBluetoothCmd(int stateNr) {
|
||||||
Log.w("openscale","ihealthHS3 - nextBluetoothCmd - returning false");
|
Timber.w("ihealthHS3 - nextBluetoothCmd - returning false");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean nextCleanUpCmd(int stateNr) {
|
protected boolean nextCleanUpCmd(int stateNr) {
|
||||||
Log.w("openscale","ihealthHS3 - nextCleanUpCmd - returning false");
|
Timber.w("ihealthHS3 - nextCleanUpCmd - returning false");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +119,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
@Override
|
@Override
|
||||||
public void disconnect(boolean doCleanup) {
|
public void disconnect(boolean doCleanup) {
|
||||||
|
|
||||||
Log.w("openscale","HS3 - disconnect");
|
Timber.w("HS3 - disconnect");
|
||||||
if (btSocket != null) {
|
if (btSocket != null) {
|
||||||
if (btSocket.isConnected()) {
|
if (btSocket.isConnected()) {
|
||||||
try {
|
try {
|
||||||
@@ -140,7 +141,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
|
|
||||||
private boolean sendBtData(String data) {
|
private boolean sendBtData(String data) {
|
||||||
Log.w("openscale","ihealthHS3 - sendBtData"+data);
|
Timber.w("ihealthHS3 - sendBtData"+data);
|
||||||
if (btSocket.isConnected()) {
|
if (btSocket.isConnected()) {
|
||||||
btConnectThread = new BluetoothConnectedThread();
|
btConnectThread = new BluetoothConnectedThread();
|
||||||
btConnectThread.write(data.getBytes());
|
btConnectThread.write(data.getBytes());
|
||||||
@@ -149,7 +150,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
Log.w("openscale","ihealthHS3 - sendBtData - socket is not connected");
|
Timber.w("ihealthHS3 - sendBtData - socket is not connected");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +160,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
private volatile boolean isCancel;
|
private volatile boolean isCancel;
|
||||||
|
|
||||||
public BluetoothConnectedThread() {
|
public BluetoothConnectedThread() {
|
||||||
// Log.w("openscale","ihealthHS3 - BluetoothConnectedThread");
|
// Timber.w("ihealthHS3 - BluetoothConnectedThread");
|
||||||
isCancel = false;
|
isCancel = false;
|
||||||
|
|
||||||
// Get the input and output bluetooth streams
|
// Get the input and output bluetooth streams
|
||||||
@@ -175,14 +176,14 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
byte btByte;
|
byte btByte;
|
||||||
byte[] weightBytes = new byte[2];
|
byte[] weightBytes = new byte[2];
|
||||||
// Log.w("openscale","ihealthHS3 - run");
|
// Timber.w("ihealthHS3 - run");
|
||||||
// Keep listening to the InputStream until an exception occurs (e.g. device partner goes offline)
|
// Keep listening to the InputStream until an exception occurs (e.g. device partner goes offline)
|
||||||
while (!isCancel) {
|
while (!isCancel) {
|
||||||
try {
|
try {
|
||||||
// stream read is a blocking method
|
// stream read is a blocking method
|
||||||
|
|
||||||
btByte = (byte) btInStream.read();
|
btByte = (byte) btInStream.read();
|
||||||
// Log.w("openscale","iheathHS3 - seen a byte "+String.format("%02X",btByte));
|
// Timber.w("iheathHS3 - seen a byte "+String.format("%02X",btByte));
|
||||||
|
|
||||||
if ( btByte == (byte) 0xA0 ) {
|
if ( btByte == (byte) 0xA0 ) {
|
||||||
btByte = (byte) btInStream.read();
|
btByte = (byte) btInStream.read();
|
||||||
@@ -191,7 +192,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
if ( btByte == (byte) 0xa6 ) {
|
if ( btByte == (byte) 0xa6 ) {
|
||||||
btByte = (byte) btInStream.read();
|
btByte = (byte) btInStream.read();
|
||||||
if ( btByte == (byte) 0x28 ) {
|
if ( btByte == (byte) 0x28 ) {
|
||||||
// Log.w("openscale","seen 0xa009a628 - Weight packet");
|
// Timber.w("seen 0xa009a628 - Weight packet");
|
||||||
// deal with a weight packet - read 5 bytes we dont care about
|
// deal with a weight packet - read 5 bytes we dont care about
|
||||||
btByte = (byte) btInStream.read();
|
btByte = (byte) btInStream.read();
|
||||||
btByte = (byte) btInStream.read();
|
btByte = (byte) btInStream.read();
|
||||||
@@ -210,10 +211,10 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
}
|
}
|
||||||
else if (btByte == (byte) 0x33 ) {
|
else if (btByte == (byte) 0x33 ) {
|
||||||
Log.w("openscale","seen 0xa009a633 - time packet");
|
Timber.w("seen 0xa009a633 - time packet");
|
||||||
// deal with a time packet, if needed
|
// deal with a time packet, if needed
|
||||||
} else {
|
} else {
|
||||||
Log.w("openscale","iHealthHS3 - seen byte after control leader "+String.format("%02X",btByte));
|
Timber.w("iHealthHS3 - seen byte after control leader "+String.format("%02X",btByte));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -231,7 +232,7 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
private ScaleMeasurement parseWeightArray(byte[] weightBytes ) throws IOException {
|
private ScaleMeasurement parseWeightArray(byte[] weightBytes ) throws IOException {
|
||||||
ScaleMeasurement scaleBtData = new ScaleMeasurement();
|
ScaleMeasurement scaleBtData = new ScaleMeasurement();
|
||||||
|
|
||||||
// Log.w("openscale","iHealthHS3 - ScaleMeasurement "+String.format("%02X",weightBytes[0])+String.format("%02X",weightBytes[1]));
|
// Timber.w("iHealthHS3 - ScaleMeasurement "+String.format("%02X",weightBytes[0])+String.format("%02X",weightBytes[1]));
|
||||||
|
|
||||||
String ws = String.format("%02X",weightBytes[0])+String.format("%02X",weightBytes[1]);
|
String ws = String.format("%02X",weightBytes[0])+String.format("%02X",weightBytes[1]);
|
||||||
StringBuilder ws1 = new StringBuilder (ws);
|
StringBuilder ws1 = new StringBuilder (ws);
|
||||||
@@ -239,13 +240,13 @@ public class BluetoothIhealthHS3 extends BluetoothCommunication {
|
|||||||
|
|
||||||
|
|
||||||
float weight = Float.parseFloat(ws1.toString());
|
float weight = Float.parseFloat(ws1.toString());
|
||||||
// Log.w("openscale","iHealthHS3 - ScaleMeasurement "+String.format("%f",weight));
|
// Timber.w("iHealthHS3 - ScaleMeasurement "+String.format("%f",weight));
|
||||||
|
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
|
|
||||||
// If the weight is the same as the lastWeight, and the time since the last reading is less than maxTimeDiff then return null
|
// If the weight is the same as the lastWeight, and the time since the last reading is less than maxTimeDiff then return null
|
||||||
if (Arrays.equals(weightBytes,lastWeight) && (now.getTime() - lastWeighed.getTime() < maxTimeDiff)) {
|
if (Arrays.equals(weightBytes,lastWeight) && (now.getTime() - lastWeighed.getTime() < maxTimeDiff)) {
|
||||||
// Log.w("openscale","iHealthHS3 - parseWeightArray returning null");
|
// Timber.w("iHealthHS3 - parseWeightArray returning null");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,7 +21,6 @@ import android.bluetooth.BluetoothGattCharacteristic;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
@@ -35,6 +34,8 @@ import java.util.Date;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
import static com.health.openscale.core.bluetooth.BluetoothCommunication.BT_STATUS_CODE.BT_UNEXPECTED_ERROR;
|
import static com.health.openscale.core.bluetooth.BluetoothCommunication.BT_STATUS_CODE.BT_UNEXPECTED_ERROR;
|
||||||
|
|
||||||
public class BluetoothMiScale extends BluetoothCommunication {
|
public class BluetoothMiScale extends BluetoothCommunication {
|
||||||
@@ -67,7 +68,7 @@ public class BluetoothMiScale extends BluetoothCommunication {
|
|||||||
if (currentYear == scaleYear && currentMonth == scaleMonth && currentDay == scaleDay) {
|
if (currentYear == scaleYear && currentMonth == scaleMonth && currentDay == scaleDay) {
|
||||||
setBtMachineState(BT_MACHINE_STATE.BT_CMD_STATE);
|
setBtMachineState(BT_MACHINE_STATE.BT_CMD_STATE);
|
||||||
} else {
|
} else {
|
||||||
Log.d("BluetoothMiScale", "Current year and scale year is different");
|
Timber.d("Current year and scale year is different");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,14 +204,14 @@ public class BluetoothMiScale extends BluetoothCommunication {
|
|||||||
final boolean isLBSUnit = isBitSet(ctrlByte, 0);
|
final boolean isLBSUnit = isBitSet(ctrlByte, 0);
|
||||||
final boolean isCattyUnit = isBitSet(ctrlByte, 4);
|
final boolean isCattyUnit = isBitSet(ctrlByte, 4);
|
||||||
|
|
||||||
/*Log.d("GattCallback", "IsWeightRemoved: " + isBitSet(ctrlByte, 7));
|
/*Timber.d("IsWeightRemoved: " + isBitSet(ctrlByte, 7));
|
||||||
Log.d("GattCallback", "6 LSB Unknown: " + isBitSet(ctrlByte, 6));
|
Timber.d("6 LSB Unknown: " + isBitSet(ctrlByte, 6));
|
||||||
Log.d("GattCallback", "IsStabilized: " + isBitSet(ctrlByte, 5));
|
Timber.d("IsStabilized: " + isBitSet(ctrlByte, 5));
|
||||||
Log.d("GattCallback", "IsCattyOrKg: " + isBitSet(ctrlByte, 4));
|
Timber.d("IsCattyOrKg: " + isBitSet(ctrlByte, 4));
|
||||||
Log.d("GattCallback", "3 LSB Unknown: " + isBitSet(ctrlByte, 3));
|
Timber.d("3 LSB Unknown: " + isBitSet(ctrlByte, 3));
|
||||||
Log.d("GattCallback", "2 LSB Unknown: " + isBitSet(ctrlByte, 2));
|
Timber.d("2 LSB Unknown: " + isBitSet(ctrlByte, 2));
|
||||||
Log.d("GattCallback", "1 LSB Unknown: " + isBitSet(ctrlByte, 1));
|
Timber.d("1 LSB Unknown: " + isBitSet(ctrlByte, 1));
|
||||||
Log.d("GattCallback", "IsLBS: " + isBitSet(ctrlByte, 0));*/
|
Timber.d("IsLBS: " + isBitSet(ctrlByte, 0));*/
|
||||||
|
|
||||||
// Only if the value is stabilized and the weight is *not* removed, the date is valid
|
// Only if the value is stabilized and the weight is *not* removed, the date is valid
|
||||||
if (isStabilized && !isWeightRemoved) {
|
if (isStabilized && !isWeightRemoved) {
|
||||||
@@ -242,7 +243,7 @@ public class BluetoothMiScale extends BluetoothCommunication {
|
|||||||
|
|
||||||
addScaleData(scaleBtData);
|
addScaleData(scaleBtData);
|
||||||
} else {
|
} else {
|
||||||
Log.e("BluetoothMiScale", "Invalid Mi scale weight year " + year);
|
Timber.e("Invalid Mi scale weight year " + year);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
|
@@ -21,7 +21,6 @@ import android.bluetooth.BluetoothGattCharacteristic;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.OpenScale;
|
import com.health.openscale.core.OpenScale;
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
@@ -35,6 +34,8 @@ import java.util.Date;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
import static com.health.openscale.core.bluetooth.BluetoothCommunication.BT_STATUS_CODE.BT_UNEXPECTED_ERROR;
|
import static com.health.openscale.core.bluetooth.BluetoothCommunication.BT_STATUS_CODE.BT_UNEXPECTED_ERROR;
|
||||||
|
|
||||||
public class BluetoothMiScale2 extends BluetoothCommunication {
|
public class BluetoothMiScale2 extends BluetoothCommunication {
|
||||||
@@ -62,7 +63,7 @@ public class BluetoothMiScale2 extends BluetoothCommunication {
|
|||||||
final byte[] data = gattCharacteristic.getValue();
|
final byte[] data = gattCharacteristic.getValue();
|
||||||
|
|
||||||
if (data != null && data.length > 0) {
|
if (data != null && data.length > 0) {
|
||||||
Log.d("MIScale_v2", "DataChange hex data: "+ byteInHex(data));
|
Timber.d("DataChange hex data: "+ byteInHex(data));
|
||||||
|
|
||||||
// Stop command from mi scale received
|
// Stop command from mi scale received
|
||||||
if (data[0] == 0x03) {
|
if (data[0] == 0x03) {
|
||||||
@@ -213,7 +214,7 @@ public class BluetoothMiScale2 extends BluetoothCommunication {
|
|||||||
|
|
||||||
addScaleData(scaleBtData);
|
addScaleData(scaleBtData);
|
||||||
} else {
|
} else {
|
||||||
Log.e("BluetoothMiScale", "Invalid Mi scale weight year " + year);
|
Timber.e("Invalid Mi scale weight year " + year);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
|
@@ -21,7 +21,6 @@ import android.database.Cursor;
|
|||||||
import android.database.SQLException;
|
import android.database.SQLException;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
import com.health.openscale.core.datatypes.ScaleMeasurement;
|
||||||
|
|
||||||
@@ -30,6 +29,8 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class ScaleDatabase extends SQLiteOpenHelper {
|
public class ScaleDatabase extends SQLiteOpenHelper {
|
||||||
private static final int DATABASE_VERSION = 6;
|
private static final int DATABASE_VERSION = 6;
|
||||||
public static final String DATABASE_NAME = "openScaleDatabase.db";
|
public static final String DATABASE_NAME = "openScaleDatabase.db";
|
||||||
@@ -143,7 +144,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
|
|
||||||
cursorScaleDB.close();
|
cursorScaleDB.close();
|
||||||
} catch (SQLException ex) {
|
} catch (SQLException ex) {
|
||||||
Log.e("ScaleDatabase", "SQL exception occurred while getting scale data list: " + ex.getMessage());
|
Timber.e(ex, "SQL exception occurred while getting scale data list");
|
||||||
}
|
}
|
||||||
|
|
||||||
return scaleMeasurementList;
|
return scaleMeasurementList;
|
||||||
@@ -169,10 +170,10 @@ public class ScaleDatabase extends SQLiteOpenHelper {
|
|||||||
|
|
||||||
scaleMeasurement.setDateTime(formatDateTime.parse(date_time));
|
scaleMeasurement.setDateTime(formatDateTime.parse(date_time));
|
||||||
} catch (ParseException ex) {
|
} catch (ParseException ex) {
|
||||||
Log.e("ScaleDatabase", "Can't parse the date time string: " + ex.getMessage());
|
Timber.e(ex, "Can't parse the date time string");
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex) {
|
catch (IllegalArgumentException ex) {
|
||||||
Log.e("ScaleDatabase", "Illegal argument while reading from scale database: " + ex.getMessage());
|
Timber.e(ex, "Illegal argument while reading from scale database");
|
||||||
}
|
}
|
||||||
|
|
||||||
return scaleMeasurement;
|
return scaleMeasurement;
|
||||||
|
@@ -20,7 +20,6 @@ import android.content.Context;
|
|||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.datatypes.ScaleUser;
|
import com.health.openscale.core.datatypes.ScaleUser;
|
||||||
import com.health.openscale.core.utils.Converters;
|
import com.health.openscale.core.utils.Converters;
|
||||||
@@ -30,6 +29,8 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class ScaleUserDatabase extends SQLiteOpenHelper {
|
public class ScaleUserDatabase extends SQLiteOpenHelper {
|
||||||
private static final int DATABASE_VERSION = 3;
|
private static final int DATABASE_VERSION = 3;
|
||||||
public static final String DATABASE_NAME = "openScaleUserDatabase.db";
|
public static final String DATABASE_NAME = "openScaleUserDatabase.db";
|
||||||
@@ -143,10 +144,10 @@ public class ScaleUserDatabase extends SQLiteOpenHelper {
|
|||||||
scaleUser.setInitialWeight(Math.round(initial_weight * 100.0f) / 100.0f);
|
scaleUser.setInitialWeight(Math.round(initial_weight * 100.0f) / 100.0f);
|
||||||
scaleUser.setGoalWeight(Math.round(goal_weight * 100.0f) / 100.0f);
|
scaleUser.setGoalWeight(Math.round(goal_weight * 100.0f) / 100.0f);
|
||||||
} catch (ParseException ex) {
|
} catch (ParseException ex) {
|
||||||
Log.e("ScaleDatabase", "Can't parse the date time string: " + ex.getMessage());
|
Timber.e(ex, "Can't parse the date time string");
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex) {
|
catch (IllegalArgumentException ex) {
|
||||||
Log.e("ScaleDatabase", "Illegal argument while reading from scale database: " + ex.getMessage());
|
Timber.e(ex, "Illegal argument while reading from scale database");
|
||||||
}
|
}
|
||||||
|
|
||||||
return scaleUser;
|
return scaleUser;
|
||||||
|
@@ -21,7 +21,6 @@ import android.arch.persistence.room.Entity;
|
|||||||
import android.arch.persistence.room.ForeignKey;
|
import android.arch.persistence.room.ForeignKey;
|
||||||
import android.arch.persistence.room.Index;
|
import android.arch.persistence.room.Index;
|
||||||
import android.arch.persistence.room.PrimaryKey;
|
import android.arch.persistence.room.PrimaryKey;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.health.openscale.core.utils.Converters;
|
import com.health.openscale.core.utils.Converters;
|
||||||
import com.j256.simplecsv.common.CsvColumn;
|
import com.j256.simplecsv.common.CsvColumn;
|
||||||
@@ -29,6 +28,8 @@ import com.j256.simplecsv.common.CsvColumn;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
@Entity(tableName = "scaleMeasurements",
|
@Entity(tableName = "scaleMeasurements",
|
||||||
indices = {@Index(value = {"userId", "datetime"}, unique = true)},
|
indices = {@Index(value = {"userId", "datetime"}, unique = true)},
|
||||||
foreignKeys = @ForeignKey(
|
foreignKeys = @ForeignKey(
|
||||||
@@ -119,7 +120,7 @@ public class ScaleMeasurement implements Cloneable {
|
|||||||
field.setAccessible(false);
|
field.setAccessible(false);
|
||||||
}
|
}
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
Log.e("ScaleMeasurement", "Error: " + e.getMessage());
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +137,7 @@ public class ScaleMeasurement implements Cloneable {
|
|||||||
field.setAccessible(false);
|
field.setAccessible(false);
|
||||||
}
|
}
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
Log.e("ScaleMeasurement", "Error: " + e.getMessage());
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +156,7 @@ public class ScaleMeasurement implements Cloneable {
|
|||||||
field.setAccessible(false);
|
field.setAccessible(false);
|
||||||
}
|
}
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
Log.e("ScaleMeasurement", "Error: " + e.getMessage());
|
Timber.e(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -43,7 +43,6 @@ import android.support.v4.view.GravityCompat;
|
|||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.support.v7.app.ActionBarDrawerToggle;
|
import android.support.v7.app.ActionBarDrawerToggle;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
@@ -69,6 +68,7 @@ import java.lang.reflect.Field;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cat.ereza.customactivityoncrash.config.CaocConfig;
|
import cat.ereza.customactivityoncrash.config.CaocConfig;
|
||||||
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class MainActivity extends BaseAppCompatActivity
|
public class MainActivity extends BaseAppCompatActivity
|
||||||
implements SharedPreferences.OnSharedPreferenceChangeListener{
|
implements SharedPreferences.OnSharedPreferenceChangeListener{
|
||||||
@@ -495,27 +495,27 @@ public class MainActivity extends BaseAppCompatActivity
|
|||||||
case BT_INIT_PROCESS:
|
case BT_INIT_PROCESS:
|
||||||
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_success);
|
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_success);
|
||||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_init), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_init), Toast.LENGTH_SHORT).show();
|
||||||
Log.d("OpenScale", "Bluetooth initializing");
|
Timber.d("Bluetooth initializing");
|
||||||
break;
|
break;
|
||||||
case BT_CONNECTION_LOST:
|
case BT_CONNECTION_LOST:
|
||||||
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
||||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_lost), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_lost), Toast.LENGTH_SHORT).show();
|
||||||
Log.d("OpenScale", "Bluetooth connection lost");
|
Timber.d("Bluetooth connection lost");
|
||||||
break;
|
break;
|
||||||
case BT_NO_DEVICE_FOUND:
|
case BT_NO_DEVICE_FOUND:
|
||||||
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
||||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_no_device), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_no_device), Toast.LENGTH_SHORT).show();
|
||||||
Log.d("OpenScale", "No Bluetooth device found");
|
Timber.d("No Bluetooth device found");
|
||||||
break;
|
break;
|
||||||
case BT_CONNECTION_ESTABLISHED:
|
case BT_CONNECTION_ESTABLISHED:
|
||||||
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_success);
|
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_success);
|
||||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_successful), Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_successful), Toast.LENGTH_SHORT).show();
|
||||||
Log.d("OpenScale", "Bluetooth connection successful established");
|
Timber.d("Bluetooth connection successful established");
|
||||||
break;
|
break;
|
||||||
case BT_UNEXPECTED_ERROR:
|
case BT_UNEXPECTED_ERROR:
|
||||||
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
setBluetoothStatusIcon(R.drawable.ic_bluetooth_connection_lost);
|
||||||
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_error) + ": " + msg.obj, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), getResources().getString(R.string.info_bluetooth_connection_error) + ": " + msg.obj, Toast.LENGTH_SHORT).show();
|
||||||
Log.e("OpenScale", "Bluetooth unexpected error: " + msg.obj);
|
Timber.e("Bluetooth unexpected error: " + msg.obj);
|
||||||
break;
|
break;
|
||||||
case BT_SCALE_MESSAGE:
|
case BT_SCALE_MESSAGE:
|
||||||
String toastMessage = String.format(getResources().getString(msg.arg1), msg.obj);
|
String toastMessage = String.format(getResources().getString(msg.arg1), msg.obj);
|
||||||
@@ -734,9 +734,9 @@ public class MainActivity extends BaseAppCompatActivity
|
|||||||
item.setChecked(item.getItemData().isChecked());
|
item.setChecked(item.getItemData().isChecked());
|
||||||
}
|
}
|
||||||
} catch (NoSuchFieldException e) {
|
} catch (NoSuchFieldException e) {
|
||||||
Log.e("BNVHelper", "Unable to get shift mode field", e);
|
Timber.e(e, "Unable to get shift mode field");
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
Log.e("BNVHelper", "Unable to change value of shift mode", e);
|
Timber.e(e, "Unable to change value of shift mode");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user