导航菜单

页面标题

页面副标题

xDrip+ v04633772025.07.16 - StopSensor.java 源代码

正在查看: xDrip+ v04633772025.07.16 应用的 StopSensor.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.eveningoutpost.dexdrip;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.eveningoutpost.dexdrip.StopSensor;
import com.eveningoutpost.dexdrip.calibrations.PluggableCalibration;
import com.eveningoutpost.dexdrip.databinding.ActivityStopSensorBinding;
import com.eveningoutpost.dexdrip.g5model.FirmwareCapability;
import com.eveningoutpost.dexdrip.g5model.Ob1G5StateMachine;
import com.eveningoutpost.dexdrip.models.Calibration;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.Sensor;
import com.eveningoutpost.dexdrip.models.Treatments;
import com.eveningoutpost.dexdrip.services.Ob1G5CollectionService;
import com.eveningoutpost.dexdrip.ui.dialog.GenericConfirmDialog;
import com.eveningoutpost.dexdrip.utilitymodels.AlertPlayer;
import com.eveningoutpost.dexdrip.utilitymodels.CollectionServiceStarter;
import com.eveningoutpost.dexdrip.utilitymodels.Inevitable;
import com.eveningoutpost.dexdrip.utilitymodels.NanoStatus;
import com.eveningoutpost.dexdrip.utilitymodels.Pref;
import com.eveningoutpost.dexdrip.utils.ActivityWithMenu;
import com.eveningoutpost.dexdrip.utils.DexCollectionType;

public class StopSensor extends ActivityWithMenu {
    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        if (!Sensor.isActive()) {
            startActivity(new Intent(this, (Class<?>) StartNewSensor.class));
            finish();
        } else {
            JoH.fixActionBar(this);
            ActivityStopSensorBinding inflate = ActivityStopSensorBinding.inflate(getLayoutInflater());
            inflate.setModel(new ViewModel());
            setContentView(inflate.getRoot());
        }
    }

    @Override
    public String getMenuName() {
        return getString(2131756430);
    }

    public static synchronized void stop() {
        synchronized (StopSensor.class) {
            Sensor.stopSensor();
            Inevitable.task("stop-sensor", 1000L, new Runnable() {
                @Override
                public final void run() {
                    Sensor.stopSensor();
                }
            });
            AlertPlayer.getPlayer().stopAlert(xdrip.getAppContext(), true, false);
            JoH.static_toast_long(xdrip.gs(2131756294));
            JoH.clearCache();
            LibreAlarmReceiver.clearSensorStats();
            PluggableCalibration.invalidateAllCaches();
            Treatments.sensorStop(null, "Stopped by xDrip");
            Ob1G5StateMachine.stopSensor();
            JoH.pratelimit("dex-stop-start", 15);
            CollectionServiceStarter.restartCollectionServiceBackground();
            Home.staticRefreshBGCharts();
            NanoStatus.keepFollowerUpdated(false);
        }
    }

    public void resetAllCalibrations(View view) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle(xdrip.gs(2131755152));
        builder.setMessage(xdrip.gs(2131755476));
        builder.setNegativeButton(xdrip.gs(2131755900), new DialogInterface.OnClickListener() {
            @Override
            public final void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });
        builder.setPositiveButton(xdrip.gs(2131757071), new DialogInterface.OnClickListener() {
            @Override
            public final void onClick(DialogInterface dialogInterface, int i) {
                StopSensor.this.lambda$resetAllCalibrations$1(dialogInterface, i);
            }
        });
        builder.create().show();
    }

    public void lambda$resetAllCalibrations$1(DialogInterface dialogInterface, int i) {
        Calibration.invalidateAllForSensor();
        dialogInterface.dismiss();
        finish();
    }

    public class ViewModel {
        public ViewModel() {
        }

        public boolean resettableCals() {
            return (DexCollectionType.getDexCollectionType() == DexCollectionType.DexcomG5 && Pref.getBooleanDefaultFalse("using_g6") && FirmwareCapability.isTransmitterRawIncapable(Ob1G5CollectionService.getTransmitterID())) ? false : true;
        }

        public void stopSensorClick() {
            String gs = xdrip.gs(2131755152);
            if (!resettableCals()) {
                gs = xdrip.gs(2131756292);
                if (Ob1G5StateMachine.shortTxId()) {
                    gs = xdrip.gs(2131756293);
                }
            }
            GenericConfirmDialog.show(StopSensor.this, xdrip.gs(2131755152), gs, new Runnable() {
                @Override
                public final void run() {
                    StopSensor.ViewModel.this.lambda$stopSensorClick$0();
                }
            });
        }

        public void lambda$stopSensorClick$0() {
            StopSensor.stop();
            JoH.startActivity(Home.class);
            StopSensor.this.finish();
        }
    }
}