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;
|
2022-07-06 18:31:56 +00:00
|
|
|
import android.view.MenuItem;
|
2021-01-24 13:01:54 +00:00
|
|
|
|
2022-07-06 18:31:56 +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();
|
2022-07-06 18:31:56 +00:00
|
|
|
|
|
|
|
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) {
|
2022-07-07 05:49:44 +00:00
|
|
|
onBackPressed();
|
2022-07-06 18:31:56 +00:00
|
|
|
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
|
|
|
}
|
|
|
|
}
|
2021-02-05 19:55:12 +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
|
|
|
});
|
2021-02-05 19:55:12 +00:00
|
|
|
}
|
|
|
|
}
|
2021-02-12 16:28:46 +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-02-12 16:28:46 +00:00
|
|
|
}
|
|
|
|
}
|
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
|
|
|
}
|
|
|
|
}
|
2021-10-24 09:25:07 +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());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-24 09:25:07 +00:00
|
|
|
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());
|
2021-10-24 09:25:07 +00:00
|
|
|
}
|
|
|
|
}
|
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
|
|
|
}
|