codec2_talkie/codec2talkie/src/main/java/com/radio/codec2talkie/settings/SettingsActivity.java

173 wiersze
6.5 KiB
Java
Czysty Zwykły widok Historia

2021-01-24 17:56:46 +00:00
package com.radio.codec2talkie.settings;
2021-01-24 13:01:54 +00:00
2021-10-12 18:46:17 +00:00
import android.content.Intent;
2021-01-24 13:01:54 +00:00
import android.os.Bundle;
2022-07-04 12:53:25 +00:00
import android.text.InputType;
import android.view.MenuItem;
2021-01-24 13:01:54 +00:00
import androidx.appcompat.app.ActionBar;
2021-01-24 13:01:54 +00:00
import androidx.appcompat.app.AppCompatActivity;
2022-07-04 12:53:25 +00:00
import androidx.preference.EditTextPreference;
2021-10-12 18:46:17 +00:00
import androidx.preference.Preference;
2021-01-24 13:01:54 +00:00
import androidx.preference.PreferenceFragmentCompat;
2022-07-04 12:53:25 +00:00
import androidx.preference.PreferenceManager;
2021-01-24 13:01:54 +00:00
2021-01-24 17:56:46 +00:00
import com.radio.codec2talkie.R;
2021-01-24 13:01:54 +00:00
public class SettingsActivity extends AppCompatActivity
{
2022-07-04 12:53:25 +00:00
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",
2022-07-31 12:01:27 +00:00
"ports_tcp_ip_retry_delay",
2022-08-07 09:20:35 +00:00
"ports_sound_modem_preamble",
2023-11-12 14:42:08 +00:00
"ports_sound_modem_ptt_off_delay_ms",
"aprs_is_tcpip_server_port"
2022-07-04 12:53:25 +00:00
};
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));
}
}
2021-01-24 13:01:54 +00:00
@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);
2021-01-24 13:01:54 +00:00
}
2021-10-12 18:46:17 +00:00
public static class SettingsFragment extends PreferenceFragmentCompat {
2022-07-04 12:53:25 +00:00
2021-01-24 13:01:54 +00:00
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
2021-01-24 13:01:54 +00:00
}
}
public static class SettingsRadioFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_radio, null);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
2021-10-12 18:46:17 +00:00
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);
2021-10-12 18:57:05 +00:00
return false;
2021-10-12 18:46:17 +00:00
});
}
}
public static class SettingsKissBasicFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_kiss, null);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
}
}
2021-10-10 17:58:17 +00:00
public static class SettingsTcpIpFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_tcpip, null);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
2021-10-10 17:58:17 +00:00
}
}
2022-07-31 12:01:27 +00:00
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);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
}
}
2022-06-24 15:47:29 +00:00
public static class SettingsAprsLocationFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_aprs_location, null);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
2022-06-24 15:47:29 +00:00
}
}
public static class SettingsPositionPrivacyFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_aprs_privacy, null);
2022-07-04 12:53:25 +00:00
setNumberInputType(getPreferenceManager());
2022-06-24 15:47:29 +00:00
}
}
2022-08-18 19:14:25 +00:00
public static class SettingsAprsIsFragment extends PreferenceFragmentCompat
{
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences_aprs_is, null);
setNumberInputType(getPreferenceManager());
}
}
2021-01-24 13:01:54 +00:00
}