kopia lustrzana https://github.com/sh123/codec2_talkie
192 wiersze
7.2 KiB
Java
192 wiersze
7.2 KiB
Java
package com.radio.codec2talkie.settings;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.text.InputType;
|
|
import android.view.MenuItem;
|
|
|
|
import androidx.appcompat.app.ActionBar;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.preference.EditTextPreference;
|
|
import androidx.preference.Preference;
|
|
import androidx.preference.PreferenceFragmentCompat;
|
|
import androidx.preference.PreferenceManager;
|
|
|
|
import com.radio.codec2talkie.R;
|
|
|
|
public class SettingsActivity extends AppCompatActivity
|
|
{
|
|
private static final String[] _numberSettings = {
|
|
"codec2_tx_frame_max_size",
|
|
"kiss_extension_radio_frequency",
|
|
"aprs_location_source_gps_update_time",
|
|
"aprs_location_source_gps_update_distance",
|
|
"aprs_location_source_manual_update_time",
|
|
"aprs_location_source_smart_fast_speed",
|
|
"aprs_location_source_smart_fast_rate",
|
|
"aprs_location_source_smart_slow_speed",
|
|
"aprs_location_source_smart_slow_rate",
|
|
"aprs_location_source_smart_min_turn_time",
|
|
"aprs_location_source_smart_min_turn_angle",
|
|
"aprs_location_source_smart_turn_slope",
|
|
"kiss_basic_persistence",
|
|
"kiss_basic_slot_time",
|
|
"kiss_basic_tx_delay",
|
|
"kiss_basic_tx_tail",
|
|
"kiss_scrambler_iterations",
|
|
"ports_tcp_ip_port",
|
|
"ports_tcp_ip_retry_count",
|
|
"ports_tcp_ip_retry_delay",
|
|
"ports_sound_modem_preamble",
|
|
"ports_sound_modem_ptt_off_delay_ms",
|
|
"aprs_is_tcpip_server_port",
|
|
"opus_bit_rate"
|
|
};
|
|
|
|
private static final String[] _signedDecimalSettings = {
|
|
"aprs_location_source_manual_lat",
|
|
"aprs_location_source_manual_lon"
|
|
};
|
|
|
|
public static void setNumberInputType(PreferenceManager preferenceManager) {
|
|
for (String key : _numberSettings) {
|
|
EditTextPreference editTextPreference = preferenceManager.findPreference(key);
|
|
if (editTextPreference != null)
|
|
editTextPreference.setOnBindEditTextListener(editText -> editText.setInputType(InputType.TYPE_CLASS_NUMBER));
|
|
}
|
|
for (String key : _signedDecimalSettings) {
|
|
EditTextPreference editTextPreference = preferenceManager.findPreference(key);
|
|
if (editTextPreference != null)
|
|
editTextPreference.setOnBindEditTextListener(editText -> editText.setInputType(
|
|
InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_FLAG_SIGNED));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
|
|
|
|
ActionBar actionBar = getSupportActionBar();
|
|
if (actionBar != null) actionBar.setDisplayHomeAsUpEnabled(true);
|
|
}
|
|
|
|
@Override
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
int itemId = item.getItemId();
|
|
|
|
if (itemId == android.R.id.home) {
|
|
onBackPressed();
|
|
return true;
|
|
}
|
|
return super.onOptionsItemSelected(item);
|
|
}
|
|
|
|
public static class SettingsFragment extends PreferenceFragmentCompat {
|
|
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences, rootKey);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsRadioFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_radio, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
|
|
Preference rebootPreference = findPreference("kiss_extension_reboot");
|
|
assert rebootPreference != null;
|
|
rebootPreference.setOnPreferenceClickListener(preference -> {
|
|
Intent intent = new Intent(PreferenceKeys.KISS_EXTENSIONS_ACTION_REBOOT_REQUESTED);
|
|
requireContext().sendBroadcast(intent);
|
|
return false;
|
|
});
|
|
}
|
|
}
|
|
|
|
public static class SettingsKissBasicFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_kiss, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsTncExtendedFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_tnc_extended, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsTcpIpFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_tcpip, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsSoundModemFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_sound_modem, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsUsbFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_usb, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsCodecFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_codec, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsAprsLocationFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_aprs_location, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsPositionPrivacyFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_aprs_privacy, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
|
|
public static class SettingsAprsIsFragment extends PreferenceFragmentCompat
|
|
{
|
|
@Override
|
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
|
setPreferencesFromResource(R.xml.preferences_aprs_is, null);
|
|
setNumberInputType(getPreferenceManager());
|
|
}
|
|
}
|
|
}
|