导航菜单

页面标题

页面副标题

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

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

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


package com.eveningoutpost.dexdrip.ui.activities;

import android.os.Bundle;
import android.os.Handler;
import androidx.databinding.ObservableField;
import com.eveningoutpost.dexdrip.BaseAppCompatActivity;
import com.eveningoutpost.dexdrip.databinding.ActivitySelectAudioDeviceBinding;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.utilitymodels.Pref;
import com.eveningoutpost.dexdrip.utils.HeadsetStateReceiver;

public class SelectAudioDevice extends BaseAppCompatActivity {
    ActivitySelectAudioDeviceBinding binding;
    final Handler handler = new Handler();
    private Runnable poll = new Runnable() {
        @Override
        public void run() {
            SelectAudioDevice.this.binding.getI().refresh();
            if (SelectAudioDevice.this.stopping) {
                return;
            }
            SelectAudioDevice.this.handler.postDelayed(this, 500L);
        }
    };
    private boolean stopping;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        ActivitySelectAudioDeviceBinding inflate = ActivitySelectAudioDeviceBinding.inflate(getLayoutInflater());
        this.binding = inflate;
        inflate.setI(new AudioDeviceOJO());
        this.binding.setVm(this);
        if (this.binding.getI().mac.get().equals("")) {
            JoH.static_toast_long(getString(2131755906));
            finish();
        } else {
            setContentView(this.binding.getRoot());
            JoH.fixActionBar(this);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        startPolling();
    }

    @Override
    protected void onPause() {
        stopPolling();
        super.onPause();
    }

    @Override
    protected void onDestroy() {
        stopPolling();
        super.onDestroy();
    }

    public class AudioDeviceOJO {
        public final ObservableField<String> name = new ObservableField<>();
        public final ObservableField<String> mac = new ObservableField<>();

        AudioDeviceOJO() {
            refresh();
        }

        public void refresh() {
            this.name.set(HeadsetStateReceiver.getLastConnectedName());
            this.mac.set(HeadsetStateReceiver.getLastConnectedMac());
        }
    }

    private void startPolling() {
        stopPolling();
        this.stopping = false;
        this.poll.run();
    }

    private void stopPolling() {
        this.stopping = true;
        this.handler.removeCallbacks(this.poll);
    }

    public void stop() {
        finish();
    }

    public void save() {
        String str = this.binding.getI().mac.get();
        setAudioMac(str);
        JoH.static_toast_long("Set to: " + this.binding.getI().name.get() + " " + str);
        HeadsetStateReceiver.reprocessConnectionIfAlreadyConnected(str);
        finish();
    }

    public static void setAudioMac(String str) {
        if (str == null || str.length() == 0) {
            return;
        }
        Pref.setString("vehicle-mode-audio-mac", str);
    }

    public static String getAudioMac() {
        return Pref.getString("vehicle-mode-audio-mac", "<NOT SET>");
    }
}