Untitled
unknown
java
5 years ago
13 kB
9
Indexable
public void onLeScan(BluetoothDevice bluetoothDevice, int i, byte[] bArr) {
boolean z;
int i2;
boolean z2;
long j;
long currentTimeMillis;
long j2;
String str;
StringBuilder sb;
byte[] bArr2 = bArr;
if (!this.isDestroy && bluetoothDevice.getName() != null && bluetoothDevice.getName().equals(Const.DEVICE_NAME)) {
String address = bluetoothDevice.getAddress();
final Device device = null;
final int i3 = -1;
for (int i4 = 0; i4 < this.deviceList.size(); i4++) {
if (((Device) this.deviceList.get(i4)).getDeviceMac().toLowerCase().equals(address.toLowerCase())) {
device = (Device) this.deviceList.get(i4);
i3 = i4;
}
}
if (device != null) {
ObjectAnimator objectAnimator = this.animator;
if (objectAnimator != null) {
objectAnimator.cancel();
}
String str2 = "";
for (byte b : bArr2) {
StringBuilder sb2 = new StringBuilder();
sb2.append(str2);
byte b2 = b & 255;
if (Integer.toHexString(b2).length() == 2) {
sb = new StringBuilder();
str = " ";
} else {
sb = new StringBuilder();
str = " 0";
}
sb.append(str);
sb.append(Integer.toHexString(b2));
sb2.append(sb.toString());
str2 = sb2.toString();
}
String str3 = this.TAG;
StringBuilder sb3 = new StringBuilder();
sb3.append("onLeScan: scanRecord: ");
sb3.append(str2);
Log.d(str3, sb3.toString());
int customDataStartIndex = Utils.getCustomDataStartIndex(bArr);
if (customDataStartIndex == -1) {
String str4 = this.TAG;
StringBuilder sb4 = new StringBuilder();
sb4.append("unavailable device: ");
sb4.append(bluetoothDevice.getName());
sb4.append(": ");
sb4.append(address);
Log.e(str4, "onLeScan: ", new Exception(sb4.toString()));
return;
}
boolean z3 = true;
if (bArr2[customDataStartIndex] == 21 || bArr2[customDataStartIndex] == 19) {
int littleEndianDataParse = Utils.littleEndianDataParse(bArr2, customDataStartIndex + 12, 2);
float littleEndianDataParseHaveSign = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 14, 2)) / 16.0f;
int i5 = customDataStartIndex + 2;
if (bArr2[i5] == 16 || bArr2[i5] == 17 || bArr2[i5] == 18) {
float littleEndianDataParseHaveSign2 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 16, 2)) / 16.0f;
j = (long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 18, 4);
if (((device.getHumidityType() & 1) == 1 && littleEndianDataParseHaveSign2 <= device.getPresetLowestHumidity() && device.getRecentHumidity() > device.getPresetLowestHumidity()) || ((device.getHumidityType() & 2) == 2 && littleEndianDataParseHaveSign2 >= device.getPresetHighestHumidity() && device.getRecentHumidity() < device.getPresetHighestHumidity())) {
NotificationSender.getInstance().notify(this, 2, device, littleEndianDataParseHaveSign2);
}
if (device.getRecentHumidity() != littleEndianDataParseHaveSign2) {
device.setRecentHumidity(littleEndianDataParseHaveSign2);
z2 = true;
long j3 = 1000 * j;
currentTimeMillis = System.currentTimeMillis() - j3;
long j4 = j3 + currentTimeMillis;
if (!Utils.isNew(currentTimeMillis, device.getStartTime(), j)) {
String str5 = this.TAG;
StringBuilder sb5 = new StringBuilder();
sb5.append("onLeScan: start change: ");
j2 = j4;
sb5.append(Math.abs(device.getStartTime() - currentTimeMillis));
sb5.append(", ");
sb5.append(Math.ceil((double) Math.abs(((float) (device.getStartTime() - currentTimeMillis)) / 1000.0f)));
Log.e(str5, sb5.toString());
device.setStartTime(currentTimeMillis);
try {
MyApplication myApplication = this.myApplication;
Session session = new Session(currentTimeMillis, device.getHighestTemp(), device.getHighestTempTime(), device.getLowestTemp(), device.getLowestTempTime(), device.getTempType(), device.getName(), device.getLocation(), device.getPresetHighest(), device.getPresetLowest(), device.getImgName(), device.getDeviceType());
device.setSessionID(myApplication.addSession(session));
} catch (Exception e) {
e.printStackTrace();
}
z2 = true;
} else {
j2 = j4;
}
if (((device.getTempType() & 1) == 1 && littleEndianDataParseHaveSign <= device.getPresetLowest() && device.getRecentTemp() > device.getPresetLowest()) || ((device.getTempType() & 2) == 2 && littleEndianDataParseHaveSign >= device.getPresetHighest() && device.getRecentTemp() < device.getPresetHighest())) {
NotificationSender.getInstance().notify(this, 1, device, littleEndianDataParseHaveSign);
}
if (device.getRecentTempTime() != j2) {
long j5 = j2;
device.setRecentTempTime(j5);
device.setRecentTemp(littleEndianDataParseHaveSign);
if (littleEndianDataParseHaveSign > device.getHighestTemp()) {
device.setHighestTemp(littleEndianDataParseHaveSign);
device.setHighestTempTime(j5);
}
if (littleEndianDataParseHaveSign < device.getLowestTemp()) {
device.setLowestTemp(littleEndianDataParseHaveSign);
device.setLowestTempTime(j5);
}
z2 = true;
}
if (device.getBattery() == littleEndianDataParse) {
device.setBattery(littleEndianDataParse);
} else {
z3 = z2;
}
String str6 = this.TAG;
StringBuilder sb6 = new StringBuilder();
sb6.append("onLeScan: battery: ");
sb6.append(littleEndianDataParse);
sb6.append(", currentTemperature: ");
sb6.append(littleEndianDataParseHaveSign);
sb6.append(", currentTempDeviceRuntime: ");
sb6.append(j);
Log.i(str6, sb6.toString());
i2 = i;
z = z3;
}
} else {
j = (long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 16, 4);
}
z2 = false;
long j32 = 1000 * j;
currentTimeMillis = System.currentTimeMillis() - j32;
long j42 = j32 + currentTimeMillis;
if (!Utils.isNew(currentTimeMillis, device.getStartTime(), j)) {
}
NotificationSender.getInstance().notify(this, 1, device, littleEndianDataParseHaveSign);
if (device.getRecentTempTime() != j2) {
}
if (device.getBattery() == littleEndianDataParse) {
}
String str62 = this.TAG;
StringBuilder sb62 = new StringBuilder();
sb62.append("onLeScan: battery: ");
sb62.append(littleEndianDataParse);
sb62.append(", currentTemperature: ");
sb62.append(littleEndianDataParseHaveSign);
sb62.append(", currentTempDeviceRuntime: ");
sb62.append(j);
Log.i(str62, sb62.toString());
i2 = i;
z = z3;
} else if (bArr2[customDataStartIndex] != 23 || device.getStartTime() == 0) {
i2 = i;
z = false;
} else {
float littleEndianDataParseHaveSign3 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 12, 2)) / 16.0f;
float littleEndianDataParseHaveSign4 = ((float) Utils.littleEndianDataParseHaveSign(bArr2, customDataStartIndex + 18, 2)) / 16.0f;
long startTime = device.getStartTime() + (((long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 14, 4)) * 1000);
long startTime2 = device.getStartTime() + (((long) Utils.littleEndianDataParse(bArr2, customDataStartIndex + 20, 4)) * 1000);
String str7 = this.TAG;
StringBuilder sb7 = new StringBuilder();
sb7.append("onLeScan: highest: ");
sb7.append(littleEndianDataParseHaveSign3);
sb7.append(", lowest: ");
sb7.append(littleEndianDataParseHaveSign4);
Log.i(str7, sb7.toString());
if (device.getHighestTempTime() == startTime && device.getHighestTemp() == littleEndianDataParseHaveSign3) {
z = false;
} else {
device.setHighestTempTime(startTime);
device.setHighestTemp(littleEndianDataParseHaveSign3);
z = true;
}
if (!(device.getLowestTempTime() == startTime2 && device.getLowestTemp() == littleEndianDataParseHaveSign4)) {
device.setLowestTempTime(startTime2);
device.setLowestTemp(littleEndianDataParseHaveSign4);
z = true;
}
if (z) {
Session sessionBySessionID = this.myApplication.getSessionBySessionID(device.getSessionID());
sessionBySessionID.setHighest(littleEndianDataParseHaveSign3);
sessionBySessionID.setHighestTime(startTime);
sessionBySessionID.setLowest(littleEndianDataParseHaveSign4);
sessionBySessionID.setLowestTime(startTime2);
String str8 = this.TAG;
StringBuilder sb8 = new StringBuilder();
sb8.append("getShowData3 lowestValue: ");
sb8.append(littleEndianDataParseHaveSign4);
sb8.append(", time: ");
sb8.append(startTime2);
Log.i(str8, sb8.toString());
this.myApplication.updateSession(sessionBySessionID);
}
i2 = i;
}
device.setSignal(i2);
if (z) {
this.handler.post(new Runnable() {
public void run() {
CurrentActivity.this.deviceAdapter.notifyItemChanged(i3);
CurrentActivity.this.myApplication.updateDevice(device);
}
});
}
}
}
}Editor is loading...