Compare commits
17 Commits
android-cl
...
android-0.
Author | SHA1 | Date | |
---|---|---|---|
bd0455c413 | |||
97f3d937ee | |||
ff102bfe73 | |||
e31a350398 | |||
43a8f29794 | |||
bbca783b20 | |||
6d4fe52f8e | |||
ecb08a54fb | |||
7bd4524fd8 | |||
40f08d56f6 | |||
fe61e35146 | |||
be3f74d71f | |||
8dcfa816e3 | |||
ae05e22670 | |||
79a4fa0407 | |||
bb958b969a | |||
02030454d1 |
@ -1,4 +1,8 @@
|
||||
0.9.25
|
||||
0.9.26
|
||||
* Fixed "I2CP already listening" bug
|
||||
* Fixed crash when adding tunnel to empty list
|
||||
|
||||
0.9.25 / 2016-04-17 / 46d45a878a2b73394b26ca27dbe6c696dedcf1c3
|
||||
* Fixed a bug on Samsung Android 4.2 devices
|
||||
* Dependency improvements
|
||||
* Translation updates
|
||||
|
@ -51,7 +51,6 @@ systemProp.socksProxyPort=9150
|
||||
3. Create a `local.properties` file in `i2p.android.base/lib/client` containing:
|
||||
|
||||
```
|
||||
i2psrc=/path/to/i2p.i2p
|
||||
ndk.dir=/path/to/ndk
|
||||
```
|
||||
|
||||
|
@ -5,8 +5,8 @@ android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||
defaultConfig {
|
||||
versionCode 4745231
|
||||
versionName '0.9.22'
|
||||
versionCode 4745233
|
||||
versionName '0.9.26'
|
||||
minSdkVersion 9
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
|
||||
@ -56,7 +56,7 @@ dependencies {
|
||||
compile project(':routerjars')
|
||||
|
||||
// Android Support Repository dependencies
|
||||
def supportVersion = '23.2.1'
|
||||
def supportVersion = '23.4.0'
|
||||
compile "com.android.support:support-v4:$supportVersion"
|
||||
compile "com.android.support:appcompat-v7:$supportVersion"
|
||||
compile "com.android.support:preference-v7:$supportVersion"
|
||||
@ -64,14 +64,14 @@ dependencies {
|
||||
compile "com.android.support:recyclerview-v7:$supportVersion"
|
||||
|
||||
// Remote dependencies
|
||||
compile 'com.androidplot:androidplot-core:0.9.6'
|
||||
compile 'com.androidplot:androidplot-core:0.9.8'
|
||||
compile 'com.eowise:recyclerview-stickyheaders:0.5.2@aar'
|
||||
compile ('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
|
||||
exclude group: 'com.android.support', module: 'support-v4'
|
||||
}
|
||||
compile 'com.pnikosis:materialish-progress:1.7'
|
||||
compile 'net.i2p.android.ext:floatingactionbutton:1.10.1'
|
||||
compile 'org.sufficientlysecure:html-textview:1.3'
|
||||
compile 'org.sufficientlysecure:html-textview:1.6'
|
||||
|
||||
// Testing-only dependencies
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
|
||||
@ -80,17 +80,17 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
||||
'com.android.support:appcompat-v7:00f9d93acacd6731f309724054bf51492814b4b2869f16d7d5c0038dcb8c9a0d',
|
||||
'com.android.support:preference-v7:775101bd07bd052e455761c5c5d9523d7ad59f2f320e3e8cbde241fd6b1d6025',
|
||||
'com.android.support:preference-v14:44881bb46094e86d0bc2426f205419674a5b4eb514b44b5a4659b5de29f71eb7',
|
||||
'com.android.support:recyclerview-v7:44040a888e23e0c93162a3377cfe06751080e3c22d369ab0d4301ef60d63b0fe',
|
||||
'com.androidplot:androidplot-core:1aaa931974da9d351976ed3d4b67170ac2a78be6c6afd13559ded5534eefc264',
|
||||
'com.android.support:support-v4:a0d002465c0f611eedaaef2b2530707d2e9fb3a5c7ed66f53c556a12f714f43a',
|
||||
'com.android.support:appcompat-v7:d3d96637b0e8e61046567b8c87b667dcf3cd31c7447f651cb58d6e6e744adfba',
|
||||
'com.android.support:preference-v7:b834787ee64db6c7c53ed7490537eeef52245b7862d4069c06e12b24b77ebbc4',
|
||||
'com.android.support:preference-v14:21c55edf74928a96fa816e32c0c4d0c98e2280002e84d2b10b458b4a36be9615',
|
||||
'com.android.support:recyclerview-v7:24465b2ba90dc5ed7e2c05f1c87fe4256c27df6d3cd69b6177f3cb447b05c021',
|
||||
'com.androidplot:androidplot-core:e44d9e59e06f025330831f7d3c987d2778a3302025184cf0cef05714b5171212',
|
||||
'com.eowise:recyclerview-stickyheaders:7b236da49b33b840e9ba6e7e4182218d1a2d9047236fdbc3ca947352f9b0883b',
|
||||
'com.mcxiaoke.viewpagerindicator:library:1e8aad664137f68abdfee94889f6da3dc98be652a235176a403965a07a25de62',
|
||||
'com.pnikosis:materialish-progress:da089a90d1dab61e9b50038c09081019398f81190d12b0b567ce94b83ef8cf93',
|
||||
'net.i2p.android.ext:floatingactionbutton:09d43e2d4ac04a91bf7a37e1ec48a8d220204e3a55dca72cd36cd9fa27461ade',
|
||||
'org.sufficientlysecure:html-textview:39048e35894e582adada388e6c00631803283f8defed8e07ad58a5f284f272ee',
|
||||
'org.sufficientlysecure:html-textview:c409b471618b675e3d2a8588f883c5fe8f3369d00df61ec84b29f29c648370ae',
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -65,8 +65,13 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
}
|
||||
|
||||
public void addTunnel(TunnelEntry tunnel) {
|
||||
boolean wasEmpty = mTunnels.isEmpty();
|
||||
mTunnels.add(tunnel);
|
||||
notifyItemInserted(mTunnels.size()-1);
|
||||
if (wasEmpty) {
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyItemInserted(mTunnels.size() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public TunnelEntry getTunnel(int position) {
|
||||
|
@ -0,0 +1,50 @@
|
||||
package net.i2p.router.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
|
||||
import net.i2p.client.DomainSocketFactory;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
/**
|
||||
* Unix domain socket version of ClientListenerRunner.
|
||||
*
|
||||
* @author str4d
|
||||
* @since 0.9.14
|
||||
*/
|
||||
public class DomainClientListenerRunner extends ClientListenerRunner {
|
||||
private final DomainSocketFactory factory;
|
||||
private final Log _log;
|
||||
|
||||
public DomainClientListenerRunner(RouterContext context, ClientManager manager) {
|
||||
super(context, manager, -1);
|
||||
factory = new DomainSocketFactory(_context);
|
||||
_log = context.logManager().getLog(getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
protected ServerSocket getServerSocket() throws IOException {
|
||||
return factory.createServerSocket(DomainSocketFactory.I2CP_SOCKET_ADDRESS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopListening() {
|
||||
_running = false;
|
||||
// LocalServerSocket.close() fails silently if the socket is blocking in accept(), so we
|
||||
// trick the socket by opening a new connection and then immediately closing it.
|
||||
// http://stackoverflow.com/questions/8007982/java-serversocket-and-android-localserversocket
|
||||
try {
|
||||
_log.debug("Connecting to domain socket to trigger close");
|
||||
Socket s = factory.createSocket(DomainSocketFactory.I2CP_SOCKET_ADDRESS);
|
||||
s.close();
|
||||
} catch (IOException e) {
|
||||
_log.error("Failed to connect to domain socket to trigger close", e);
|
||||
}
|
||||
// runServer() will close the LocalServerSocket.
|
||||
}
|
||||
}
|
@ -76,7 +76,7 @@
|
||||
<string name="action_reload_subscriptions">Volver a cargar suscripciones</string>
|
||||
<string name="news_last_updated">Última actualización de las noticias hace %s</string>
|
||||
<string name="news_last_checked">Última comprobación de las noticias hace %s</string>
|
||||
<string name="news_updated">Noticias actualizadas</string>
|
||||
<string name="news_updated">Se han actualizado las noticias</string>
|
||||
<string name="view_news">Pulse para ver las últimas noticias de I2P</string>
|
||||
<string name="router_not_running">El router I2P no está en marcha.</string>
|
||||
<string name="router_shutting_down">El router I2P se está cerrando.</string>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">I2P-logo</string>
|
||||
<string name="choose_language">Valitse kieli</string>
|
||||
<string name="welcome_new_install">Tervetuloa I2P-sovellukseen! Täsmä sovellus on ALFA-ohjelmisto ja se ei tarjoa vahvaa nimettömyyttä. Lue julkaisutiedot ja linsessitiedot.</string>
|
||||
<string name="welcome_new_install">Tervetuloa I2P-sovellukseen! Tämä sovellus on ALFA-ohjelmisto ja se ei tarjoa vahvaa nimettömyyttä. Lue julkaisutiedot ja lisenssitiedot.</string>
|
||||
<string name="welcome_new_version">Uusi versio asennettu. Lue julkaisutiedot. Versio:</string>
|
||||
<string name="label_tunnels">Tunnelit</string>
|
||||
<string name="label_status">Tila</string>
|
||||
@ -24,16 +24,20 @@
|
||||
<string name="button_router_graceful">I2P sulkeutuu %s</string>
|
||||
<string name="button_shutdown_now">Pitkä painallus nyt pysäyttämiseksi</string>
|
||||
<string name="button_cancel_graceful">Pitkä painallus sulkemisen perumiseksi</string>
|
||||
<string name="no_internet">Internet-yhteys ei ole käytettävissä</string>
|
||||
<string name="hidden">Piilotettu</string>
|
||||
<string name="testing">Testataan</string>
|
||||
<string name="firewalled">Palomuuritettu</string>
|
||||
<string name="symmetric_nat">Symmetrinen NAT</string>
|
||||
<string name="net_status_error_i2cp">Asiakasohjelmahallinnan I2CP-virhe - tarkista lokitiedostot</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_unresolved_tcp">Ratkaisematon TCP-osoite</string>
|
||||
<string name="net_status_error_private_tcp">Ykstyinen TCP-osoite</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Palomuuritettu tuleva TCP otettu käyttöön</string>
|
||||
<string name="net_status_info_disconnected">Yhteys poikki - tarkista verkkoyhteys</string>
|
||||
<string name="net_status_error_udp_port">UDP-portti käytössä - vaihda asetukset ja käynnistä uudelleen</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP poissa käytöstä ja tuleva TCP-verkkotietokone/-portti ei ole asetettu</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Palomuuritettu UDP-poiskytkettynä</string>
|
||||
<string name="shared_clients">Jaetut asiakkaat</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">A</string>
|
||||
@ -65,6 +69,7 @@
|
||||
<string name="news_updated">Uutiset päivitetty</string>
|
||||
<string name="router_not_running">Reititin ei ole käynnissä.</string>
|
||||
<string name="router_shutting_down">Reititin sulkeutuu.</string>
|
||||
<string name="select_an_address">Valitse osoite.</string>
|
||||
<string name="statistics">Tilastot</string>
|
||||
<string name="routers">Reitittimet</string>
|
||||
<string name="countries">Maat</string>
|
||||
|
@ -220,6 +220,7 @@
|
||||
<string name="i2ptunnel_wizard_desc_target_host">Esse é o IP no qual o serviço está rodando, isto está geralmente na mesma maquina então 127.0.0.1 é autopreenchido.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">Essa é a porta pela qual o serviço está aceitando conexões.</string>
|
||||
<string name="i2ptunnel_wizard_desc_reachable_on">Isso limita quais computadores ou smartphones podem acessar esse túnel</string>
|
||||
<string name="i2ptunnel_wizard_desc_binding_port">Esta é a porta para o túnel cliente ser acessado localmente. Esta também é a porta para o túnel servidor de HTTP.</string>
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">O túnel deve iniciar automaticamente quando o roteador iniciar?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Criar túnel?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Criar túnel</string>
|
||||
@ -233,6 +234,7 @@
|
||||
<string name="tunnel_summ_auto_start">Iniciar o túnel na inicialização do roteador.</string>
|
||||
<string name="tunnel_cat_ports">Portas locais</string>
|
||||
<string name="shared_client">Cliente compartilhado</string>
|
||||
<string name="tunnel_summ_shared_client">Usar mesmo Destino e túneis para demais clientes compartilhados</string>
|
||||
<string name="target_destination">Destino alvo</string>
|
||||
<string name="persistent_key">Chave persistente</string>
|
||||
<string name="persistent_key_conflict_title">Desativar novas chaves na reabertura?</string>
|
||||
@ -240,6 +242,7 @@
|
||||
<string name="tunnel_summ_persistent_key">Manter o destino desse túnel quando ele reiniciar</string>
|
||||
<string name="reachable_on">Ao alcance em</string>
|
||||
<string name="listen_port">Porta de escuta</string>
|
||||
<string name="client_ssl">Cliente SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Os clientes devem usar SSL para se conectar</string>
|
||||
<string name="outproxies">Proxies de saída</string>
|
||||
<string name="ssl_outproxies">Proxies de saida com SSL</string>
|
||||
@ -255,6 +258,7 @@
|
||||
<string name="profile">Perfil</string>
|
||||
<string name="profile_bulk">Conexão em massa (downloads/websites/BT)</string>
|
||||
<string name="profile_interactive">Conexão interativa</string>
|
||||
<string name="delay_connect">Atrasar conexão</string>
|
||||
<string name="tunnel_summ_delay_connect">Ativar para conexões de pedidos/respostas</string>
|
||||
<string name="access_control">Controle de acesso</string>
|
||||
<string name="restricted_access">Acesso restrito</string>
|
||||
@ -268,9 +272,11 @@
|
||||
<string name="tunnel_summ_unique_local">Usar IPs de host locais únicos para cada cliente</string>
|
||||
<string name="multihome">Multihome</string>
|
||||
<string name="tunnel_summ_multihome">Ativar otimizações de multihoming</string>
|
||||
<string name="client_connection_limits">Limites de conexões de cliente</string>
|
||||
<string name="connections_per_minute">Conexões por minuto</string>
|
||||
<string name="connections_per_hour">Conexões por hora</string>
|
||||
<string name="connections_per_day">Conexões por dia</string>
|
||||
<string name="total_connection_limits">Limites totais de conexões</string>
|
||||
<string name="total_connections_per_minute">Total de conexões por minuto</string>
|
||||
<string name="total_connections_per_hour">Total de conexões por hora</string>
|
||||
<string name="total_connections_per_day">Total de conexões por dia</string>
|
||||
@ -280,6 +286,11 @@
|
||||
<string name="num_per_day">%s por dia</string>
|
||||
<string name="unlimited">Ilimitado</string>
|
||||
<string name="set_zero_for_unlimited">Especifique 0 para ilimitado</string>
|
||||
<string name="post_limits">Limites de POST</string>
|
||||
<string name="limit_period">Período limite</string>
|
||||
<string name="power_saving">Economia de energia</string>
|
||||
<string name="delay_open">Atrasar a abertura</string>
|
||||
<string name="tunnel_summ_delay_open">Atrasar a abertura do túnel até ser utilizado</string>
|
||||
<string name="reduce_quantity">Reduzir quantidade</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Reduzir quantidade de túneis quando ocioso</string>
|
||||
<string name="idle_time">Tempo ocioso</string>
|
||||
@ -288,6 +299,11 @@
|
||||
<string name="close_tunnels">Fechar túneis quando ociosos</string>
|
||||
<string name="new_keys_on_reopen">Novas chaves na reabertura</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Desativar chaves persistentes?</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Você não pode habilitar novas chaves enquanto o túnel estiver configurado para ter chaves permanentes. Deseja desabilitar as chaves permanentes?</string>
|
||||
<string name="http_client">Cliente HTTP</string>
|
||||
<string name="tunnel_summ_user_agent">Passar o cabeçalho original \'User-Agent\'</string>
|
||||
<string name="tunnel_summ_referer">Passar o cabeçalho original \'Referer\'</string>
|
||||
<string name="tunnel_summ_accept">Passar o cabeçalho original \'Accept-*\'</string>
|
||||
<string name="tunnel_summ_allow_ssl">Permitir SSL para endereços I2P</string>
|
||||
<string name="jump_url_list">Pular lista de URLs</string>
|
||||
<string name="proxy_auth">Autorização de proxy</string>
|
||||
@ -295,6 +311,7 @@
|
||||
<string name="username">Nome de usuário</string>
|
||||
<string name="password">Senha</string>
|
||||
<string name="outproxy_auth">Autorização de proxy de saída</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Autenticação necessária para o proxy de saída</string>
|
||||
<string name="other">Outros</string>
|
||||
<string name="signature_type">Tipo de assinatura</string>
|
||||
<string name="custom_options">Opções personalizadas</string>
|
||||
@ -310,4 +327,5 @@
|
||||
<string name="error_logs_copied_to_clipboard">Logs de erro copiados para a área de transferência</string>
|
||||
<string name="logs_copied_to_clipboard">Logs copiados para a área de transferência</string>
|
||||
<string name="label_browser_configuration">Configuração do navegador</string>
|
||||
<string name="unset">Desligado</string>
|
||||
</resources>
|
||||
|
@ -2,16 +2,16 @@
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">Logótipo I2P</string>
|
||||
<string name="choose_language">Escolher língua</string>
|
||||
<string name="welcome_new_install">Bem-vindo à I2P! Esta app é um programa ALPHA e não proporciona um anonimato forte. Por favor, leia as notas de lançamento e a informação da licença.</string>
|
||||
<string name="choose_language">Escolha o idioma</string>
|
||||
<string name="welcome_new_install">Bem-vindo à I2P! Esta aplicação é um software ALPHA e não proporciona um anonimato forte. Por favor, leia as notas de lançamento e a informação da licença.</string>
|
||||
<string name="welcome_new_version">Nova versão instalada. Por favor, leia as notas de lançamento. Versão:</string>
|
||||
<string name="label_tunnels">Tuneis</string>
|
||||
<string name="label_status">Estado</string>
|
||||
<string name="label_console">Consola</string>
|
||||
<string name="label_addresses">Endereços</string>
|
||||
<string name="label_addressbook">Livro de Endereços</string>
|
||||
<string name="label_i2ptunnel_client">Tuneis cliente</string>
|
||||
<string name="label_i2ptunnel_server">Tuneis servidor</string>
|
||||
<string name="label_i2ptunnel_client">Túneis de cliente</string>
|
||||
<string name="label_i2ptunnel_server">Tuneis de servidor</string>
|
||||
<string name="label_logs">Registos</string>
|
||||
<string name="label_error_logs">Registos de Erros</string>
|
||||
<string name="label_news">Notícias</string>
|
||||
@ -26,11 +26,11 @@
|
||||
<string name="button_shutdown_now">Pressionar longo para parar imediatamente</string>
|
||||
<string name="button_cancel_graceful">Pressionar longo para não desligar</string>
|
||||
<string name="no_internet">Sem ligação à Internet</string>
|
||||
<string name="hidden">Escondido</string>
|
||||
<string name="testing">Em teste</string>
|
||||
<string name="hidden">Oculto</string>
|
||||
<string name="testing">A testar</string>
|
||||
<string name="firewalled">Atrás de uma firewall</string>
|
||||
<string name="symmetric_nat">NAT simétrico</string>
|
||||
<string name="net_status_error_i2cp">Erro no gestor de cliente I2CP - veja os registos</string>
|
||||
<string name="symmetric_nat">NAT Simétrico</string>
|
||||
<string name="net_status_error_i2cp">Erro no gestor de cliente I2CP - consulte os registos</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Deriva de relógio de %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Endereços TCP por resolver</string>
|
||||
@ -40,8 +40,8 @@
|
||||
<string name="net_status_info_disconnected">Desligado - verifique a sua ligação de rede</string>
|
||||
<string name="net_status_error_udp_port">Porta UDP em uso - mude as configurações e reinicie</string>
|
||||
<string name="net_status_error_no_active_peers">Não existem nós ativos - verifique a sua ligação de rede e firewall</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP desligado e máquina/porta TCP de entrada não definida</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Atrás de firewall com UDP desligado</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP desativado e hospedeiro/porta TCP de entrada não definida</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Atrás de firewall com UDP desativado</string>
|
||||
<string name="shared_clients">Cliente partilhados</string>
|
||||
<string name="uptime">Tempo de atividade</string>
|
||||
<string name="active_peers">Nós ativos</string>
|
||||
@ -50,10 +50,10 @@
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Ainda não tem túneis ativos.</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="configure_browser_title">Configurar navegador?</string>
|
||||
<string name="no_tunnels_running">Ainda não tem túneis em execução.</string>
|
||||
<string name="download">Transferir</string>
|
||||
<string name="upload">Enviar</string>
|
||||
<string name="configure_browser_title">Configurar o navegador?</string>
|
||||
<string name="configure_browser_for_i2p">Gostaria de configurar um navegador para ver sites I2P? (Pode fazê-lo mais tarde através do menu de ajuda.)</string>
|
||||
<string name="first_start_title">Parabéns por ter instalado o I2P!</string>
|
||||
<string name="first_start_welcome"><b>Bem vindo ao I2P!</b> Por favor <b>tenha paciência</b> enquanto o I2P arranca e encontra outros nós na rede.</string>
|
||||
@ -64,12 +64,12 @@
|
||||
<string name="action_search">Procurar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="action_edit">Editar</string>
|
||||
<string name="action_delete">Apagar</string>
|
||||
<string name="action_i2ptunnel_start">Começar túneis</string>
|
||||
<string name="action_delete">Eliminar</string>
|
||||
<string name="action_i2ptunnel_start">Iniciar túneis</string>
|
||||
<string name="action_i2ptunnel_stop">Parar túneis </string>
|
||||
<string name="action_i2ptunnel_start_all">Começar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_start_all">Iniciar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_stop_all">Parar todos os túneis</string>
|
||||
<string name="action_i2ptunnel_restart_all">Recomeçar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_restart_all">Reiniciar todos os túneis </string>
|
||||
<string name="action_reload">Recarregar</string>
|
||||
<string name="action_refresh">Atualizar</string>
|
||||
<string name="hint_search_addressbook">Procurar no livro de endereços</string>
|
||||
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">O router não está em execução.</string>
|
||||
<string name="router_shutting_down">O router está a desligar.</string>
|
||||
<string name="stats_not_ready">O gestor de estatísticas ainda não está pronto. Tente de novo mais tarde.</string>
|
||||
<string name="select_an_address">Escolha um endereço</string>
|
||||
<string name="no_graphs_configured">Não foram configurados quaisquer gráficos. Pode escolher as estatísticas que deseja representar no menu de configuração. Qualquer mudança terá efeito após 60 segundos.</string>
|
||||
<string name="configure_graphs">Configurar gráficos</string>
|
||||
<string name="graphs_not_ready">Os gráficos não estão pronto. Tente de novo mais tarde.</string>
|
||||
@ -93,25 +94,25 @@
|
||||
<string name="versions">Versões</string>
|
||||
<string name="version">Versão</string>
|
||||
<string name="count">Contagem</string>
|
||||
<string name="tname_0">Escondido ao iniciar</string>
|
||||
<string name="tname_0">Oculto ou a iniciar</string>
|
||||
<string name="netdb_routers_empty">Não tem router na sua NetDB.</string>
|
||||
<string name="netdb_leases_empty">Não tem LeaseSets na sua NetDB.</string>
|
||||
<string name="notification_status_starting">O I2P está a ligar</string>
|
||||
<string name="notification_status_starting">O I2P está a iniciar</string>
|
||||
<string name="notification_status_restarting">O I2P está a reiniciar</string>
|
||||
<string name="notification_status_waiting">O I2P está à espera de uma ligação à rede</string>
|
||||
<string name="notification_status_starting_after_waiting">Deteta ligação à rede, o I2P está a ligar</string>
|
||||
<string name="notification_status_running">O I2P está ligado</string>
|
||||
<string name="notification_status_client_ready">Os túneis cliente estão prontos</string>
|
||||
<string name="notification_status_client_down">Os túneis clientes estão desligados</string>
|
||||
<string name="notification_status_waiting">O I2P está a aguardar por uma ligação à rede</string>
|
||||
<string name="notification_status_starting_after_waiting">Rede ligada, I2P está a iniciar</string>
|
||||
<string name="notification_status_running">O I2P está em execução</string>
|
||||
<string name="notification_status_client_ready">Os túneis de cliente estão prontos</string>
|
||||
<string name="notification_status_client_down">Os túneis de clientes estão desligados</string>
|
||||
<string name="notification_status_graceful">A parar I2P dentro de %s</string>
|
||||
<string name="notification_status_stopping">A parar o I2P</string>
|
||||
<string name="notification_status_stopping_after_net">Sem ligação à rede, a parar o I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Cancelada a ordem para desligar</string>
|
||||
<string name="notification_status_shutting_down">O I2P está a desligar</string>
|
||||
<string name="notification_status_stopping_after_net">Ligação desligada, a parar o I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Encerramento cancelado</string>
|
||||
<string name="notification_status_shutting_down">O I2P está a encerrar</string>
|
||||
<string name="notification_status_bw">Largura de banda: %1$sBps down / %2$sBps up</string>
|
||||
<string name="notification_status_peers">Nós: %1$d ativos, %2$d conhecidos</string>
|
||||
<string name="notification_status_expl">Túneis exploratórios: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneis cliente: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneis de cliente: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Configurações</string>
|
||||
<string name="settings_enable">Ativar</string>
|
||||
<string name="settings_desc_subscriptions">URLs de Subscrição</string>
|
||||
|
@ -3,7 +3,7 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:1.5.0'
|
||||
classpath 'com.android.tools.build:gradle:2.1.0'
|
||||
classpath files('gradle/libs/gradle-witness.jar')
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
VERSION_NAME=0.8
|
||||
VERSION_NAME=0.9
|
||||
GROUP=net.i2p.android
|
||||
|
||||
POM_URL=https://github.com/i2p/i2p.android.base
|
||||
POM_SCM_URL=https://github.com/i2p/i2p.android.base
|
||||
POM_SCM_CONNECTION=scm:git@github.com:i2p/i2p.android.base.git
|
||||
POM_SCM_DEV_CONNECTION=scm:git@github.com:i2p/i2p.android.base.git
|
||||
POM_SCM_CONNECTION=scm:git:git@github.com:i2p/i2p.android.base.git
|
||||
POM_SCM_DEV_CONNECTION=scm:git:git@github.com:i2p/i2p.android.base.git
|
||||
POM_LICENCE_NAME=The Apache Software License, Version 2.0
|
||||
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
|
||||
POM_LICENCE_DIST=repo
|
||||
|
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
#Mon Mar 28 23:30:12 NZDT 2016
|
||||
#Mon May 02 16:55:47 NZST 2016
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip
|
||||
|
@ -24,24 +24,12 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
task buildClient(type: Exec) {
|
||||
outputs.dir('libs')
|
||||
commandLine 'ant', 'buildclient'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile files('libs/i2p.jar') {
|
||||
builtBy tasks.buildClient
|
||||
}
|
||||
compile files('libs/mstreaming.jar') {
|
||||
builtBy tasks.buildClient
|
||||
}
|
||||
compile files('libs/streaming.jar') {
|
||||
builtBy tasks.buildClient
|
||||
}
|
||||
compile 'net.i2p:i2p:0.9.26'
|
||||
compile 'net.i2p.client:streaming:0.9.26'
|
||||
// No direct dependencies on the helper lib, but this ensures consistent library behavior
|
||||
compile project(':lib:helper')
|
||||
compile 'com.android.support:support-v4:23.2.1'
|
||||
compile 'com.android.support:support-v4:23.4.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
@ -49,14 +37,11 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
||||
'com.android.support:support-v4:a0d002465c0f611eedaaef2b2530707d2e9fb3a5c7ed66f53c556a12f714f43a',
|
||||
'net.i2p:i2p:5e0f5efa8849e2abe72efaf1530bdf4a090717d49acfdfbe92911a14d4b4e511',
|
||||
'net.i2p.client:mstreaming:1f343a640f79707f6652bbf344f65b42215ae3f7a221a3ee8ddd70ff59e812ae',
|
||||
'net.i2p.client:streaming:5add7390de089f3c3c4f4005f0daa83014418416e890ed6c475e15cef51ba3c7',
|
||||
]
|
||||
}
|
||||
|
||||
clean << {
|
||||
exec {
|
||||
commandLine 'ant', 'clean'
|
||||
}
|
||||
}
|
||||
|
||||
apply from: "${project.rootDir}/gradle/maven-push.gradle"
|
||||
|
@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="routerjars">
|
||||
<property file="local.properties" />
|
||||
<property name="jar.libs.dir" value="libs" />
|
||||
|
||||
<!-- override with i2psrc=path/to/source in local.properties -->
|
||||
<property name="i2psrc" value="../../i2p.i2p" />
|
||||
<property name="i2pbase" location="${i2psrc}" />
|
||||
<available file="${i2pbase}" property="i2p.present" />
|
||||
<fail message="I2P source directory ${i2pbase} was not found. Install it there or set i2psrc=/path/to/source in local.properties" >
|
||||
<condition>
|
||||
<not>
|
||||
<isset property="i2p.present" />
|
||||
</not>
|
||||
</condition>
|
||||
</fail>
|
||||
<echo message="Using I2P source at ${i2pbase}" />
|
||||
<property name="i2plib" location="${i2pbase}/build" />
|
||||
|
||||
<available property="have.streaming" file="${i2plib}/streaming.jar" />
|
||||
|
||||
<!-- builds core, ministreaming and streaming -->
|
||||
<target name="buildStreaming" unless="have.streaming">
|
||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildStreaming" />
|
||||
</target>
|
||||
|
||||
<target name="buildclient" depends="buildStreaming">
|
||||
<mkdir dir="${jar.libs.dir}" />
|
||||
|
||||
<!-- core -->
|
||||
<!-- lots of unneeded stuff could be deleted here -->
|
||||
<jar destfile="${jar.libs.dir}/i2p.jar" >
|
||||
<zipfileset src="${i2plib}/i2p.jar" >
|
||||
<exclude name="net/i2p/client/DomainSocketFactory.class" />
|
||||
<exclude name="net/i2p/util/LogWriter.class" />
|
||||
</zipfileset>
|
||||
</jar>
|
||||
|
||||
<!-- streaming -->
|
||||
<copy file="${i2plib}/mstreaming.jar" todir="${jar.libs.dir}" />
|
||||
<copy file="${i2plib}/streaming.jar" todir="${jar.libs.dir}" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<ant dir="${i2pbase}" target="distclean" />
|
||||
<delete dir="${jar.libs.dir}" />
|
||||
</target>
|
||||
|
||||
</project>
|
@ -73,7 +73,9 @@ class DomainServerSocket extends ServerSocket {
|
||||
*/
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
mDomainSocketFactory._log.debug("Closing DomainServerSocket");
|
||||
mLocalServerSocket.close();
|
||||
mDomainSocketFactory._log.debug("DomainServerSocket closed");
|
||||
mClosed = true;
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package net.i2p.client;
|
||||
import android.net.LocalSocket;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
@ -17,10 +18,15 @@ import java.net.Socket;
|
||||
public class DomainSocketFactory {
|
||||
public static String I2CP_SOCKET_ADDRESS = "net.i2p.android.client.i2cp";
|
||||
|
||||
public final Log _log;
|
||||
|
||||
public DomainSocketFactory(I2PAppContext context) {
|
||||
_log = context.logManager().getLog(getClass());
|
||||
}
|
||||
|
||||
public Socket createSocket(String name) throws IOException {
|
||||
if (_log.shouldDebug())
|
||||
_log.debug("Connecting to domain socket " + name);
|
||||
return new DomainSocket(name);
|
||||
}
|
||||
|
||||
@ -29,6 +35,8 @@ public class DomainSocketFactory {
|
||||
}
|
||||
|
||||
public ServerSocket createServerSocket(String name) throws IOException {
|
||||
if (_log.shouldDebug())
|
||||
_log.debug("Listening on domain socket " + name);
|
||||
return new DomainServerSocket(name, this);
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@ package net.i2p.util;
|
||||
*
|
||||
* @author zzz
|
||||
*/
|
||||
class LogWriter extends LogWriterBase {
|
||||
public LogWriter(LogManager manager) {
|
||||
class AndroidLogWriter extends LogWriter {
|
||||
public AndroidLogWriter(LogManager manager) {
|
||||
super(manager);
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.android.support:support-v4:23.2.1'
|
||||
compile 'com.android.support:support-v4:23.4.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
@ -33,7 +33,7 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
||||
'com.android.support:support-v4:a0d002465c0f611eedaaef2b2530707d2e9fb3a5c7ed66f53c556a12f714f43a',
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -24,13 +24,14 @@ import net.i2p.android.router.service.State;
|
||||
public class I2PAndroidHelper {
|
||||
public static final String URI_I2P_ANDROID = "net.i2p.android";
|
||||
public static final String URI_I2P_ANDROID_DONATE = "net.i2p.android.donate";
|
||||
public static final String URI_I2P_ANDROID_LEGACY = "net.i2p.android.legacy";
|
||||
public static final String URI_I2P_ANDROID_LEGACY = "net.i2p.android.router";
|
||||
public static final String URI_I2P_ANDROID_DEBUG = "net.i2p.android.debug";
|
||||
|
||||
public static final int REQUEST_START_I2P = 9857;
|
||||
|
||||
private static final String ROUTER_SERVICE_CLASS = "net.i2p.android.router.service.RouterService";
|
||||
|
||||
private static final String LOG_TAG = "I2PClientLib";
|
||||
private static final String LOG_TAG = "I2PHelperLib";
|
||||
|
||||
public interface Callback {
|
||||
void onI2PAndroidBound();
|
||||
@ -123,7 +124,10 @@ public class I2PAndroidHelper {
|
||||
intent.setClassName(URI_I2P_ANDROID_DONATE, ROUTER_SERVICE_CLASS);
|
||||
else if (isAppInstalled(URI_I2P_ANDROID_LEGACY))
|
||||
intent.setClassName(URI_I2P_ANDROID_LEGACY, ROUTER_SERVICE_CLASS);
|
||||
else
|
||||
else if (isAppInstalled(URI_I2P_ANDROID_DEBUG)) {
|
||||
Log.w(LOG_TAG, "Using debug build of I2P Android");
|
||||
intent.setClassName(URI_I2P_ANDROID_DEBUG, ROUTER_SERVICE_CLASS);
|
||||
} else
|
||||
intent = null;
|
||||
return intent;
|
||||
}
|
||||
|
6
lib/helper/src/main/res/values-fa/strings.xml
Normal file
6
lib/helper/src/main/res/values-fa/strings.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="yes">بله</string>
|
||||
<string name="no">خیر</string>
|
||||
<string name="install_i2p_android">نصب I2P اندروید؟</string>
|
||||
</resources>
|
9
lib/helper/src/main/res/values-it/strings.xml
Normal file
9
lib/helper/src/main/res/values-it/strings.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="yes">Si</string>
|
||||
<string name="no">No</string>
|
||||
<string name="install_i2p_android">Installare I2P Android?</string>
|
||||
<string name="you_must_have_i2p_android">È necessario aver installato ed in esecuzione I2P Android. Vuoi installarlo?</string>
|
||||
<string name="start_i2p_android">Avviare I2P Android?</string>
|
||||
<string name="would_you_like_to_start_i2p_android">I2P Android non sembra essere in esecuzione. Vuoi lanciarlo?</string>
|
||||
</resources>
|
Reference in New Issue
Block a user