正在查看: xDrip+ v04633772025.07.16 应用的 AddCalibration.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: xDrip+ v04633772025.07.16 应用的 AddCalibration.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.eveningoutpost.dexdrip;
import android.content.Intent;
import android.os.Bundle;
import android.os.PowerManager;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import com.eveningoutpost.dexdrip.NavigationDrawerFragment;
import com.eveningoutpost.dexdrip.calibrations.NativeCalibrationPipe;
import com.eveningoutpost.dexdrip.g5model.FirmwareCapability;
import com.eveningoutpost.dexdrip.importedlibraries.usbserial.driver.UsbId;
import com.eveningoutpost.dexdrip.models.BgReading;
import com.eveningoutpost.dexdrip.models.BloodTest;
import com.eveningoutpost.dexdrip.models.Calibration;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.Sensor;
import com.eveningoutpost.dexdrip.models.UserError;
import com.eveningoutpost.dexdrip.services.Ob1G5CollectionService;
import com.eveningoutpost.dexdrip.utilitymodels.CollectionServiceStarter;
import com.eveningoutpost.dexdrip.utilitymodels.PersistentStore;
import com.eveningoutpost.dexdrip.utilitymodels.Pref;
import com.eveningoutpost.dexdrip.utilitymodels.UndoRedo;
import com.eveningoutpost.dexdrip.utils.DexCollectionType;
import java.util.UUID;
public class AddCalibration extends AppCompatActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks {
private static double lastExternalCalibrationValue;
Button button;
private NavigationDrawerFragment mNavigationDrawerFragment;
final String unit = Pref.getString("units", "mgdl");
@Override
protected void onCreate(Bundle bundle) {
xdrip.checkForcedEnglish(this);
super.onCreate(bundle);
if (CollectionServiceStarter.isBTShare(getApplicationContext())) {
startActivity(new Intent(this, (Class<?>) Home.class));
finish();
}
setContentView(2131492892);
addListenerOnButton();
automatedCalibration();
}
@Override
protected void onResume() {
xdrip.checkForcedEnglish(this);
super.onResume();
NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(2131296801);
this.mNavigationDrawerFragment = navigationDrawerFragment;
navigationDrawerFragment.setUp(2131296801, (DrawerLayout) findViewById(2131296561), getString(2131755075), this);
automatedCalibration();
}
@Override
public void onNavigationDrawerItemSelected(int i) {
this.mNavigationDrawerFragment.swapContext(i);
}
public synchronized void automatedCalibration() {
PowerManager.WakeLock wakeLock = JoH.getWakeLock("xdrip-autocalib", UsbId.SILABS_CP2102);
try {
UserError.Log.d("AddCalibration", "Auto calibration...");
Bundle extras = getIntent().getExtras();
if (extras != null) {
JoH.clearCache();
final String string = extras.getString("bg_string");
final String string2 = extras.getString("cal_source", "unknown");
final long j = extras.getLong("timestamp", -1L);
final String string3 = extras.getString("bg_age");
final String string4 = extras.getString("from_external", "false");
final String string5 = extras.getString("from_interactive", "false");
final String string6 = extras.getString("note_only", "false");
final String string7 = extras.getString("allow_undo", "false");
if (JoH.msSince(j) >= 0 && JoH.msSince(j) <= 20000) {
if (!Sensor.isActive() && !Home.get_follower()) {
UserError.Log.w("CALERROR", "ERROR during automated calibration - no active sensor");
finish();
}
if (!TextUtils.isEmpty(string)) {
if (!TextUtils.isEmpty(string3)) {
final double parseDouble = Double.parseDouble(string);
new Thread() {
@Override
public void run() {
PowerManager.WakeLock wakeLock2 = JoH.getWakeLock("xdrip-autocalibt", UsbId.SILABS_CP2102);
long parseLong = Long.parseLong(string3);
if (parseLong < 0 || parseLong >= 86400) {
UserError.Log.wtf("CALERROR", "bg age either in future or older than 1 day: " + parseLong);
} else {
long j2 = parseLong > 600 ? 600L : 0L;
if (parseDouble > BgReading.BESTOFFSET) {
if (AddCalibration.lastExternalCalibrationValue == BgReading.BESTOFFSET) {
double unused = AddCalibration.lastExternalCalibrationValue = PersistentStore.getDouble("last-external-calibration-value");
}
if (parseDouble != AddCalibration.lastExternalCalibrationValue) {
if (!Home.get_follower()) {
double unused2 = AddCalibration.lastExternalCalibrationValue = parseDouble;
PersistentStore.setDouble("last-external-calibration-value", parseDouble);
UserError.Log.uel("AddCalibration", "Creating auto calibration from: " + parseDouble + " requested: " + JoH.dateTimeText(j) + " from source: " + string2);
Double convertedBg = Calibration.getConvertedBg(parseDouble);
if (convertedBg != null) {
long tsl = JoH.tsl() - (1000 * parseLong);
NativeCalibrationPipe.addCalibration(convertedBg.intValue(), tsl);
UserError.Log.uel("AddCalibration", "Sending native calibration pipe value: " + convertedBg.intValue() + " mg/dl taken at timestamp: " + JoH.dateTimeText(tsl) + " source: " + string2);
}
Calibration create = Calibration.create(parseDouble, parseLong, AddCalibration.this.getApplicationContext(), string6.equals("true"), j2);
if (create != null && string7.equals("true") && JoH.msSince(create.timestamp) < 3600000) {
UndoRedo.addUndoCalibration(create.uuid);
}
if (create != null) {
NativeCalibrationPipe.addCalibration((int) create.bg, create.timestamp);
}
} else if (string5.equals("true")) {
UserError.Log.d("AddCalibration", "Interactive calibration and we are follower so sending to master");
AddCalibration.sendFollowerCalibration(parseDouble, parseLong);
} else {
UserError.Log.d("AddCalibration", "Not an interactive calibration so not sending to master");
}
} else {
UserError.Log.e("AddCalibration", "Ignoring Remote calibration value as identical to last one: " + parseDouble);
}
if (string4.equals("true")) {
UserError.Log.d("jamorham calib", "Relaying tasker pushed calibration");
GcmActivity.pushCalibration(string, string3);
}
}
}
JoH.releaseWakeLock(wakeLock2);
}
}.start();
} else {
UserError.Log.w("CALERROR", "ERROR during automated calibration - no valid bg age");
}
} else {
UserError.Log.w("CALERROR", "ERROR during automated calibration - no valid value");
}
finish();
}
UserError.Log.wtf("AddCalibration", "Blocked auto-calibration with out of range timestamp: " + JoH.dateTimeText(j) + " " + j + " from " + string2);
}
} finally {
JoH.releaseWakeLock(wakeLock);
}
}
public void addListenerOnButton() {
Button button = (Button) findViewById(2131296927);
this.button = button;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (Sensor.isActive() || Home.get_follower()) {
EditText editText = (EditText) AddCalibration.this.findViewById(2131296392);
String obj = editText.getText().toString();
if (!TextUtils.isEmpty(obj)) {
try {
double d = JoH.tolerantParseDouble(obj);
if (!Home.get_follower()) {
if (DexCollectionType.hasDexcomRaw() && FirmwareCapability.isTransmitterRawIncapable(Ob1G5CollectionService.getTransmitterID())) {
if (AddCalibration.this.unit.compareTo("mgdl") != 0) {
d *= 18.0182d;
}
JoH.clearCache();
new Calibration();
Sensor.currentSensor();
JoH.static_toast_long("Sending Blood Test to Transmitter");
BloodTest.create(JoH.tsl() - 30000, d, "Add Calibration");
if (!Pref.getBooleanDefaultFalse("bluetooth_meter_for_calibrations_auto")) {
NativeCalibrationPipe.addCalibration((int) d, JoH.tsl() - 30000);
}
} else {
Calibration create = Calibration.create(d, AddCalibration.this.getApplicationContext());
if (create != null) {
UndoRedo.addUndoCalibration(create.uuid);
NativeCalibrationPipe.addCalibration((int) create.bg, create.timestamp);
} else {
UserError.Log.e("AddCalibration", "Calibration creation resulted in null");
JoH.static_toast_long("Could not create calibration!");
}
}
} else if (Home.get_follower()) {
AddCalibration.sendFollowerCalibration(d, 0L);
}
AddCalibration.this.startActivity(new Intent(view.getContext(), (Class<?>) Home.class));
} catch (NumberFormatException e) {
UserError.Log.e("AddCalibration", "Number format exception ", e);
Home.toaststatic("Got error parsing number in calibration");
}
AddCalibration.this.finish();
return;
}
editText.setError("Calibration Can Not be blank");
return;
}
UserError.Log.w("CALERROR", "Sensor is not active, cannot calibrate");
}
});
}
public static void sendFollowerCalibration(double d, long j) {
UserError.Log.d("AddCalibration", "sendFollowerCalibration: " + d + " " + j);
String uuid = UUID.randomUUID().toString();
GcmActivity.pushCalibration2(d, uuid, j);
UndoRedo.addUndoCalibration(uuid);
JoH.static_toast_long("Calibration sent to master for processing");
}
}