导航菜单

页面标题

页面副标题

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

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

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


package com.eveningoutpost.dexdrip.utilitymodels;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.TextView;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import com.eveningoutpost.dexdrip.BaseAppCompatActivity;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.UserError;
import com.eveningoutpost.dexdrip.utils.FileUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class SaveLogs extends BaseAppCompatActivity {
    private String LOG_FILE_PATH = "/Download/xDrip-export";
    private String LOG_FILE_NAME = "xDrip-log.txt";
    private String log_data = "";

    @Override
    protected void onCreate(Bundle bundle) {
        Bundle extras;
        String string;
        String str;
        super.onCreate(bundle);
        setContentView(2131492936);
        Intent intent = getIntent();
        if (intent == null || (extras = intent.getExtras()) == null || (string = extras.getString("generic_text")) == null) {
            return;
        }
        this.log_data = string;
        TextView textView = (TextView) findViewById(2131297210);
        if (this.log_data.length() > 300) {
            str = "\n\nAttached " + this.log_data.length() + " characters of log data. (hidden)\n\n";
        } else {
            str = this.log_data;
        }
        textView.setText(str);
    }

    public void closeActivity(View view) {
        finish();
    }

    public void saveLogs(View view) {
        if (saveLogsToStorage(this.log_data)) {
            UserError.Log.e("save logs", "Saved log file to /Download/xDrip-export/xDrip-log.txt");
        } else {
            UserError.Log.e("save logs", "Could not write log file");
        }
        this.log_data = "";
        closeActivity(null);
    }

    public boolean saveLogsToStorage(String str) {
        if (isStorageWritable(this, 104)) {
            try {
                String str2 = Environment.getExternalStorageDirectory().getAbsolutePath() + this.LOG_FILE_PATH;
                FileUtils.makeSureDirectoryExists(str2);
                FileOutputStream fileOutputStream = new FileOutputStream(new File(str2 + "/" + this.LOG_FILE_NAME));
                fileOutputStream.write(str.getBytes());
                fileOutputStream.close();
                return true;
            } catch (IOException e) {
                e.printStackTrace();
                return true;
            }
        }
        JoH.static_toast_long("getString(R.string.sdcard_not_writable_cannot_save)");
        return false;
    }

    public static boolean isStorageWritable(Activity activity, int i) {
        if (ContextCompat.checkSelfPermission(activity, "android.permission.WRITE_EXTERNAL_STORAGE") != 0) {
            ActivityCompat.requestPermissions(activity, new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, i);
            UserError.Log.e("save logs", "Did not have write permission, but should have it now");
            return false;
        }
        return "mounted".equals(Environment.getExternalStorageState());
    }
}