kopia lustrzana https://github.com/sh123/codec2_talkie
Add ability to specify retries
rodzic
9fc376d882
commit
1a40d67db6
|
@ -8,6 +8,7 @@ import android.os.Bundle;
|
|||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.Toast;
|
||||
|
@ -28,17 +29,21 @@ public class TcpIpConnectActivity extends AppCompatActivity {
|
|||
private final int TCP_IP_CONNECTED = 1;
|
||||
private final int TCP_IP_FAILED = 2;
|
||||
|
||||
private final int MAX_RETRIES = 5;
|
||||
private final int RETRY_DELAY_MS = 5000;
|
||||
private final int DEFAULT_MAX_RETRIES = 5;
|
||||
private final int DEFAULT_RETRY_DELAY_MS = 5000;
|
||||
|
||||
private final String DEFAULT_ADDRESS = "127.0.0.1";
|
||||
private final String DEFAULT_PORT = "8081";
|
||||
|
||||
private String _address;
|
||||
private String _port;
|
||||
private int _maxRetries;
|
||||
private int _retryDelayMs;
|
||||
|
||||
private Socket _socket;
|
||||
|
||||
private Boolean _cancel = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
@ -47,6 +52,8 @@ public class TcpIpConnectActivity extends AppCompatActivity {
|
|||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
_address = sharedPreferences.getString(PreferenceKeys.PORTS_TCP_IP_ADDRESS, DEFAULT_ADDRESS);
|
||||
_port = sharedPreferences.getString(PreferenceKeys.PORTS_TCP_IP_PORT, DEFAULT_PORT);
|
||||
_maxRetries = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.PORTS_TCP_IP_RETRY_COUNT, String.valueOf(DEFAULT_MAX_RETRIES)));;
|
||||
_retryDelayMs = Integer.parseInt(sharedPreferences.getString(PreferenceKeys.PORTS_TCP_IP_RETRY_DELAY, String.valueOf(DEFAULT_RETRY_DELAY_MS)));
|
||||
|
||||
ProgressBar progressBarTcpIp = findViewById(R.id.progressBarTcpIp);
|
||||
progressBarTcpIp.setVisibility(View.VISIBLE);
|
||||
|
@ -61,21 +68,22 @@ public class TcpIpConnectActivity extends AppCompatActivity {
|
|||
new Thread() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
Message resultMsg = new Message();
|
||||
|
||||
int count = 0;
|
||||
int maxRetries = MAX_RETRIES;
|
||||
boolean connected = false;
|
||||
|
||||
while (true) {
|
||||
while (!_cancel) {
|
||||
try {
|
||||
_socket = new Socket();
|
||||
_socket.connect(new InetSocketAddress(_address, Integer.parseInt(_port)));
|
||||
connected = true;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
if (++count >= maxRetries) break;
|
||||
if (++count >= _maxRetries || _cancel) break;
|
||||
try {
|
||||
Thread.sleep(RETRY_DELAY_MS);
|
||||
Thread.sleep(_retryDelayMs);
|
||||
} catch (InterruptedException interruptedException) {
|
||||
interruptedException.printStackTrace();
|
||||
}
|
||||
|
@ -110,4 +118,13 @@ public class TcpIpConnectActivity extends AppCompatActivity {
|
|||
finish();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
|
||||
_cancel = true;
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ public final class PreferenceKeys {
|
|||
public static String PORTS_TCP_IP_ENABLED = "ports_tcp_ip_enable";
|
||||
public static String PORTS_TCP_IP_ADDRESS = "ports_tcp_ip_address";
|
||||
public static String PORTS_TCP_IP_PORT = "ports_tcp_ip_port";
|
||||
public static String PORTS_TCP_IP_RETRY_COUNT = "ports_tcp_ip_retry_count";
|
||||
public static String PORTS_TCP_IP_RETRY_DELAY = "ports_tcp_ip_retry_delay";
|
||||
|
||||
public static String CODEC2_MODE = "codec2_mode";
|
||||
public static String CODEC2_TEST_MODE = "codec2_test_mode";
|
||||
|
|
|
@ -124,7 +124,7 @@
|
|||
<string name="ports_tcp_ip_enable_title">Enable TCP/IP</string>
|
||||
<string name="ports_tcp_ip_enable_summary">Data will be sent and received through TCP/IP as a client</string>
|
||||
<string name="port_tcp_ip_prefs_title">TCP/IP parameters</string>
|
||||
<string name="port_tcp_ip_prefs_summary">Set TCP/IP parameters, such as IP address and port</string>
|
||||
<string name="port_tcp_ip_prefs_summary">Set TCP/IP parameters, such as IP address, port or number of reconnects</string>
|
||||
<string name="tcp_ip_basic_address_title">IP address</string>
|
||||
<string name="tcp_ip_basic_port_title">IP port number</string>
|
||||
<string name="tcp_ip_basic_address_summary">Set server IP address to connect</string>
|
||||
|
@ -141,4 +141,8 @@
|
|||
<string name="tcp_ip_connecting">Connecting to remote KISS server…</string>
|
||||
<string name="bt_connecting">Connecting bluetooth…</string>
|
||||
<string name="usb_connecting">Connecting USB…</string>
|
||||
<string name="tcp_ip_basic_retry_count_title">Connect retry count</string>
|
||||
<string name="tcp_ip_basic_retry_count_summary">Try to connect number of times when connecting for the first time or when connection is lost</string>
|
||||
<string name="tcp_ip_basic_retry_delay_title">Connect retry delay</string>
|
||||
<string name="tcp_ip_basic_retry_delay_summary">How many milliseonds to wait before trying to connect again</string>
|
||||
</resources>
|
|
@ -6,6 +6,8 @@
|
|||
app:title="@string/kiss_basic_title">
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_basic_persistence"
|
||||
app:title="@string/kiss_basic_p_title"
|
||||
app:summary="@string/kiss_basic_p_summary"
|
||||
|
@ -13,6 +15,8 @@
|
|||
</EditTextPreference>
|
||||
s
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_basic_slot_time"
|
||||
app:title="@string/kiss_basic_slot_time_title"
|
||||
app:summary="@string/kiss_basic_slot_time_summary"
|
||||
|
@ -20,6 +24,8 @@ s
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_basic_tx_delay"
|
||||
app:title="@string/kiss_basic_tx_delay_title"
|
||||
app:summary="@string/kiss_basic_tx_delay_summary"
|
||||
|
@ -27,6 +33,8 @@ s
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_basic_tx_tail"
|
||||
app:title="@string/kiss_basic_tx_tail_title"
|
||||
app:summary="@string/kiss_basic_tx_tail_summary"
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
app:title="@string/kiss_extensions_radio_control_title">
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_extension_radio_frequency"
|
||||
app:title="@string/kiss_extensions_radio_frequency_title"
|
||||
app:summary="@string/kiss_extensions_radio_frequency_summary"
|
||||
|
@ -13,6 +15,8 @@
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_extension_radio_bandwidth"
|
||||
app:title="@string/kiss_extensions_radio_bandwidth_title"
|
||||
app:summary="@string/kiss_extensions_radio_bandwidth_summary"
|
||||
|
@ -20,6 +24,8 @@
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_extension_radio_power"
|
||||
app:title="@string/kiss_extensions_radio_power_title"
|
||||
app:summary="@string/kiss_extensions_radio_power_summary"
|
||||
|
@ -27,6 +33,8 @@
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_extension_radio_sf"
|
||||
app:title="@string/kiss_extensions_radio_sf_title"
|
||||
app:summary="@string/kiss_extensions_radio_sf_summary"
|
||||
|
@ -34,6 +42,8 @@
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="kiss_extension_radio_cr"
|
||||
app:title="@string/kiss_extensions_radio_cr_title"
|
||||
app:summary="@string/kiss_extensions_radio_cr_summary"
|
||||
|
|
|
@ -14,11 +14,31 @@
|
|||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="ports_tcp_ip_port"
|
||||
app:title="@string/tcp_ip_basic_port_title"
|
||||
app:summary="@string/tcp_ip_basic_port_summary"
|
||||
app:defaultValue="8001">
|
||||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="ports_tcp_ip_retry_count"
|
||||
app:title="@string/tcp_ip_basic_retry_count_title"
|
||||
app:summary="@string/tcp_ip_basic_retry_count_summary"
|
||||
app:defaultValue="5">
|
||||
</EditTextPreference>
|
||||
|
||||
<EditTextPreference
|
||||
android:inputType="numberDecimal"
|
||||
android:digits="0123456789"
|
||||
app:key="ports_tcp_ip_retry_delay"
|
||||
app:title="@string/tcp_ip_basic_retry_delay_title"
|
||||
app:summary="@string/tcp_ip_basic_retry_delay_summary"
|
||||
app:defaultValue="5000">
|
||||
</EditTextPreference>
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
Ładowanie…
Reference in New Issue