导航菜单

页面标题

页面副标题

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

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

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


package com.eveningoutpost.dexdrip;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.eveningoutpost.dexdrip.g5model.DexSyncKeeper;
import com.eveningoutpost.dexdrip.g5model.DexTimeKeeper;
import com.eveningoutpost.dexdrip.g5model.FirmwareCapability;
import com.eveningoutpost.dexdrip.g5model.Ob1G5StateMachine;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.Sensor;
import com.eveningoutpost.dexdrip.models.Treatments;
import com.eveningoutpost.dexdrip.models.UserError;
import com.eveningoutpost.dexdrip.profileeditor.DatePickerFragment;
import com.eveningoutpost.dexdrip.profileeditor.ProfileAdapter;
import com.eveningoutpost.dexdrip.profileeditor.TimePickerFragment;
import com.eveningoutpost.dexdrip.services.Ob1G5CollectionService;
import com.eveningoutpost.dexdrip.ui.dialog.G6CalibrationCodeDialog;
import com.eveningoutpost.dexdrip.ui.dialog.G6EndOfLifeDialog;
import com.eveningoutpost.dexdrip.utilitymodels.CollectionServiceStarter;
import com.eveningoutpost.dexdrip.utilitymodels.Pref;
import com.eveningoutpost.dexdrip.utils.ActivityWithMenu;
import com.eveningoutpost.dexdrip.utils.DexCollectionHelper;
import com.eveningoutpost.dexdrip.utils.DexCollectionType;
import com.eveningoutpost.dexdrip.utils.LocationHelper;
import com.eveningoutpost.dexdrip.wearintegration.WatchUpdaterService;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class StartNewSensor extends ActivityWithMenu {
    private Button button;
    final Activity activity = this;
    Calendar ucalendar = Calendar.getInstance();

    private int transmitterAgeInDays() {
        return DexTimeKeeper.getTransmitterAgeInDays(Ob1G5CollectionService.getTransmitterID());
    }

    private void activitySetupView() {
        JoH.fixActionBar(this);
        setContentView(2131492942);
        this.button = (Button) findViewById(2131297018);
    }

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        if (DexCollectionType.isG7()) {
            activitySetupView();
            getIntent().putExtra("FINISH_ON_DIALOG_DISMISS", true);
            DexCollectionHelper.assistance(this, DexCollectionType.DexcomG5);
        } else if (!Sensor.isActive()) {
            activitySetupView();
            addListenerOnButton();
        } else {
            startActivity(new Intent(this, (Class<?>) StopSensor.class));
            finish();
        }
    }

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

    public void addListenerOnButton() {
        Button button = (Button) findViewById(2131297018);
        this.button = button;
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view) {
                StartNewSensor.this.lambda$addListenerOnButton$0(view);
            }
        });
    }

    public void lambda$addListenerOnButton$0(View view) {
        if (DexCollectionType.hasBluetooth()) {
            if (!LocationHelper.locationPermission(this).booleanValue()) {
                LocationHelper.requestLocationForBluetooth(this);
                return;
            } else {
                sensorButtonClick();
                return;
            }
        }
        sensorButtonClick();
    }

    private void sensorButtonClick() {
        this.ucalendar = Calendar.getInstance();
        if (Ob1G5CollectionService.usingNativeMode()) {
            if (!DexSyncKeeper.isReady(Pref.getString("dex_txid", "NULL")) || transmitterAgeInDays() == -1) {
                JoH.static_toast_long("Need to connect to transmitter before we can start sensor");
                UserError.Log.e("StartNewSensor", "Need to connect to transmitter before we can start sensor");
                MegaStatus.startStatus("Dex Status");
                return;
            }
            startSensorOrAskForG6Code();
            return;
        }
        AlertDialog.Builder builder = new AlertDialog.Builder(this.activity);
        builder.setTitle(xdrip.gs(2131755442));
        builder.setMessage(xdrip.gs(2131757023));
        builder.setPositiveButton(xdrip.gs(2131757080), new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
                StartNewSensor.this.askSensorInsertionTime();
            }
        });
        builder.setNegativeButton(xdrip.gs(2131755927), new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
                if (DexCollectionType.hasLibre()) {
                    StartNewSensor.this.ucalendar.add(5, -1);
                    StartNewSensor.this.startSensorOrAskForG6Code();
                    return;
                }
                DatePickerFragment datePickerFragment = new DatePickerFragment();
                datePickerFragment.setAllowFuture(false);
                if (!Home.get_engineering_mode()) {
                    datePickerFragment.setEarliestDate(JoH.tsl() - 2592000000L);
                }
                datePickerFragment.setTitle(xdrip.gs(2131757036));
                datePickerFragment.setDateCallback(new ProfileAdapter.DatePickerCallbacks() {
                    @Override
                    public void onDateSet(int i2, int i3, int i4) {
                        StartNewSensor.this.ucalendar.set(i2, i3, i4);
                        if (Home.get_engineering_mode() || JoH.tsl() - StartNewSensor.this.ucalendar.getTimeInMillis() <= 2.5056E8d) {
                            StartNewSensor.this.askSensorInsertionTime();
                        } else {
                            StartNewSensor.this.startSensorOrAskForG6Code();
                        }
                    }
                });
                datePickerFragment.show(StartNewSensor.this.activity.getFragmentManager(), "DatePicker");
            }
        });
        builder.create().show();
    }

    public void askSensorInsertionTime() {
        Calendar calendar = Calendar.getInstance();
        TimePickerFragment timePickerFragment = new TimePickerFragment();
        timePickerFragment.setTime(calendar.get(11), calendar.get(12));
        timePickerFragment.setTitle(xdrip.gs(2131757030));
        timePickerFragment.setTimeCallback(new ProfileAdapter.TimePickerCallbacks() {
            @Override
            public void onTimeUpdated(int i) {
                int i2 = i % 60;
                Calendar calendar2 = StartNewSensor.this.ucalendar;
                calendar2.set(calendar2.get(1), StartNewSensor.this.ucalendar.get(2), StartNewSensor.this.ucalendar.get(5), (i - i2) / 60, i2);
                StartNewSensor.this.startSensorOrAskForG6Code();
            }
        });
        timePickerFragment.show(this.activity.getFragmentManager(), "TimePicker");
    }

    public void startSensorOrAskForG6Code() {
        if (Ob1G5CollectionService.getTransmitterID().length() == 4) {
            Sensor.createDefaultIfMissing();
            finish();
        }
        if (Ob1G5CollectionService.usingCollector() && Ob1G5StateMachine.usingG6()) {
            boolean z = false;
            if (!JoH.pratelimit("dex-stop-start", 20)) {
                JoH.static_toast_long(String.format(Locale.ENGLISH, getString(2131756025), 20));
                return;
            }
            JoH.clearRatelimit("dex-stop-start");
            int transmitterAgeInDays = transmitterAgeInDays();
            boolean isTransmitterModified = FirmwareCapability.isTransmitterModified(Ob1G5CollectionService.getTransmitterID());
            if (transmitterAgeInDays >= 180 || (!isTransmitterModified && transmitterAgeInDays >= 100)) {
                z = true;
            }
            if (transmitterAgeInDays < 70 || (isTransmitterModified && transmitterAgeInDays < 150)) {
                G6CalibrationCodeDialog.ask(this, new StartNewSensor$$ExternalSyntheticLambda1(this));
                return;
            } else {
                G6EndOfLifeDialog.show(this.activity, new Runnable() {
                    @Override
                    public final void run() {
                        StartNewSensor.this.lambda$startSensorOrAskForG6Code$1();
                    }
                }, z, isTransmitterModified, transmitterAgeInDays);
                return;
            }
        }
        startSensorAndSetIntent();
    }

    public void lambda$startSensorOrAskForG6Code$1() {
        G6CalibrationCodeDialog.ask(this, new StartNewSensor$$ExternalSyntheticLambda1(this));
    }

    public void startSensorAndSetIntent() {
        long time = this.ucalendar.getTime().getTime();
        UserError.Log.d("StartNewSensor", "Starting sensor time: " + JoH.dateTimeText(this.ucalendar.getTime().getTime()));
        if (new Date().getTime() + 900000 < time) {
            Toast.makeText(this, xdrip.gs(2131755538), 1).show();
            return;
        }
        startSensorForTime(time);
        startActivity(new Intent(getApplicationContext(), (Class<?>) Home.class));
        finish();
    }

    public static void startSensorForTime(long j) {
        Sensor.create(j);
        UserError.Log.ueh("NEW SENSOR", "Sensor started at " + JoH.dateTimeText(j));
        JoH.static_toast_long(xdrip.gs(2131755881));
        Home.startWatchUpdaterService(xdrip.getAppContext(), WatchUpdaterService.ACTION_SYNC_SENSOR, "StartNewSensor");
        LibreAlarmReceiver.clearSensorStats();
        Treatments.sensorStart(Long.valueOf(j), "Started by xDrip");
        CollectionServiceStarter.restartCollectionServiceBackground();
        Ob1G5StateMachine.startSensor(j);
        JoH.clearCache();
        Home.staticRefreshBGCharts();
    }

    @Override
    public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
        super.onRequestPermissionsResult(i, strArr, iArr);
        for (int i2 = 0; i2 < strArr.length; i2++) {
            if (strArr[i2].equals("android.permission.ACCESS_FINE_LOCATION") && iArr[i2] == 0) {
                Ob1G5CollectionService.clearScanError();
                sensorButtonClick();
            }
        }
    }
}