Compare commits
38 Commits
android-0.
...
android-he
Author | SHA1 | Date | |
---|---|---|---|
1127fb0195 | |||
df81efe6bc | |||
784ca3691b | |||
0fa4241ce6 | |||
5063d276de | |||
81d0e43f0f | |||
1637a9007d | |||
ce0f01cf46 | |||
dd579d4f5b | |||
5703d8cc6d | |||
b8768ae9fe | |||
54dc2c88bf | |||
dba01b8c18 | |||
b7b3eb7019 | |||
430e2ab826 | |||
87383a2ec8 | |||
f63bfe1dea | |||
ff2021c0aa | |||
51f7e07080 | |||
7797e067a5 | |||
cf09a21f1e | |||
914294927d | |||
bd0455c413 | |||
97f3d937ee | |||
ff102bfe73 | |||
e31a350398 | |||
43a8f29794 | |||
bbca783b20 | |||
6d4fe52f8e | |||
ecb08a54fb | |||
7bd4524fd8 | |||
40f08d56f6 | |||
fe61e35146 | |||
be3f74d71f | |||
8dcfa816e3 | |||
ae05e22670 | |||
79a4fa0407 | |||
bb958b969a |
11
CHANGELOG
11
CHANGELOG
@ -1,4 +1,13 @@
|
|||||||
0.9.25
|
0.9.27 / 2016-11-20
|
||||||
|
* Removed kytv's IRC server from default tunnel list
|
||||||
|
* Translation updates
|
||||||
|
|
||||||
|
0.9.26 / 2016-06-13 / b003272c8b504bb0d904edca2e95359a57c9a52c
|
||||||
|
* Fixed "I2CP already listening" bug
|
||||||
|
* Fixed crash when adding tunnel to empty list
|
||||||
|
* Translation updates
|
||||||
|
|
||||||
|
0.9.25 / 2016-04-17 / 46d45a878a2b73394b26ca27dbe6c696dedcf1c3
|
||||||
* Fixed a bug on Samsung Android 4.2 devices
|
* Fixed a bug on Samsung Android 4.2 devices
|
||||||
* Dependency improvements
|
* Dependency improvements
|
||||||
* Translation updates
|
* Translation updates
|
||||||
|
@ -51,7 +51,6 @@ systemProp.socksProxyPort=9150
|
|||||||
3. Create a `local.properties` file in `i2p.android.base/lib/client` containing:
|
3. Create a `local.properties` file in `i2p.android.base/lib/client` containing:
|
||||||
|
|
||||||
```
|
```
|
||||||
i2psrc=/path/to/i2p.i2p
|
|
||||||
ndk.dir=/path/to/ndk
|
ndk.dir=/path/to/ndk
|
||||||
```
|
```
|
||||||
|
|
||||||
|
25
TODO
25
TODO
@ -19,38 +19,61 @@
|
|||||||
- Style for addressbook headers
|
- Style for addressbook headers
|
||||||
- Change console FAM icon when possible
|
- Change console FAM icon when possible
|
||||||
<zzz> on the bottom right, the + and x icons might be better as a double-up arrow and double-down arrow?
|
<zzz> on the bottom right, the + and x icons might be better as a double-up arrow and double-down arrow?
|
||||||
|
- Use Material design for LongPressButton
|
||||||
|
- Highlight selected tunnel in two-pane mode
|
||||||
|
|
||||||
# Short-term
|
# Short-term
|
||||||
|
|
||||||
|
- Remove peers page (HTML version)
|
||||||
|
- Add firewall help page showing current port settings
|
||||||
|
- GMP 6
|
||||||
|
- Fetch all JARs from Maven Central (ie. upload everything that I2P Android uses)
|
||||||
- Disable uPnP when on cell networks
|
- Disable uPnP when on cell networks
|
||||||
<zzz> spewing UPnP out into cell networks is a waste of time at best and a security risk at worst, but you really want it for wifi
|
<zzz> spewing UPnP out into cell networks is a waste of time at best and a security risk at worst, but you really want it for wifi
|
||||||
|
- Rewrite settings config handling
|
||||||
|
- Rewrite InitActivities
|
||||||
- I2PTunnel
|
- I2PTunnel
|
||||||
- Improve tunnel list status indicators
|
- Improve tunnel list status indicators
|
||||||
|
- Icon overlay to indicate which tunnels are shared
|
||||||
|
- Or reorder / group tunnels?
|
||||||
- Show all messages somewhere
|
- Show all messages somewhere
|
||||||
|
- Bottom toolbar?
|
||||||
- Icons/header images for tunnel types on details page
|
- Icons/header images for tunnel types on details page
|
||||||
|
- Setting to close when not on WiFi
|
||||||
- Progress feedback for addressbook subscriptions reload
|
- Progress feedback for addressbook subscriptions reload
|
||||||
- Display release notes directly on new router version
|
- Display release notes directly on new router version
|
||||||
- Fill out help pages
|
- Fill out help pages
|
||||||
|
- Fix navigation to specific settings pages
|
||||||
- Rewrite release notes to be release-specific
|
- Rewrite release notes to be release-specific
|
||||||
- Fix release notes UI, either make back button use clear or add buttons
|
- Fix release notes UI, either make back button use clear or add buttons
|
||||||
|
- Notify user when autostart fails?
|
||||||
- NetDB tablet view fixes
|
- NetDB tablet view fixes
|
||||||
- Refresh detail fragment when changing tab
|
- Refresh detail fragment when changing tab
|
||||||
- Move list to correct item when changing tab
|
- Move list to correct item when changing tab
|
||||||
- Create nav history when viewing RI from LS
|
- Create nav history when viewing RI from LS
|
||||||
|
- Handle NetDB null cases (failed lookup of requested hash in detail page)
|
||||||
- Include GeoIP db for country info
|
- Include GeoIP db for country info
|
||||||
- Maybe change router-off mechanic for various pages? Enable as they become available?
|
- Maybe change router-off mechanic for various pages? Enable as they become available?
|
||||||
|
|
||||||
# Medium-term
|
# Medium-term
|
||||||
|
|
||||||
|
- SQLite naming service backend to store addresses more effectively
|
||||||
|
- Leverage for name completion in e.g. browsers
|
||||||
|
- Create/edit tunnels while router is not running
|
||||||
|
- Separate out shared tunnel config
|
||||||
|
- Convey to users that one config controls all shared tunnels
|
||||||
- Network profiles
|
- Network profiles
|
||||||
- User selects profile in settings
|
- User selects profile in settings
|
||||||
- Change network participation etc. based on profile
|
- Change network participation etc. based on profile
|
||||||
- Also look at connection type: Connectivity.isConnectionFast()
|
- Also look at connection type: Connectivity.isConnectionFast()
|
||||||
- Expose log level overrides
|
- Expose log level overrides
|
||||||
|
- Bug report feature
|
||||||
|
- Replace peers page (native version)
|
||||||
- Improve graphs
|
- Improve graphs
|
||||||
- Show fixed x range, not only available data
|
- Show fixed x range, not only available data
|
||||||
- Think about pan/zoom
|
- Think about pan/zoom
|
||||||
- How to persist data across restarts?
|
- How to persist data across restarts?
|
||||||
|
- Enable apps to specify when they don't need the router anymore
|
||||||
|
|
||||||
# Silent Store approval checks to confirm/implement
|
# Silent Store approval checks to confirm/implement
|
||||||
|
|
||||||
@ -98,6 +121,8 @@
|
|||||||
|
|
||||||
# Long-term
|
# Long-term
|
||||||
|
|
||||||
|
- Reproducible builds
|
||||||
|
- Extract RouterService into a library
|
||||||
- Remote router support
|
- Remote router support
|
||||||
- Implement a "router wrapper" that can represent a local or remote router
|
- Implement a "router wrapper" that can represent a local or remote router
|
||||||
- Implement/use client APIs to talk to remote router
|
- Implement/use client APIs to talk to remote router
|
||||||
|
@ -5,8 +5,8 @@ android {
|
|||||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
versionCode 4745232
|
versionCode 4745234
|
||||||
versionName '0.9.25'
|
versionName '0.9.27'
|
||||||
minSdkVersion 9
|
minSdkVersion 9
|
||||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||||
|
|
||||||
@ -53,10 +53,11 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Local dependencies
|
// Local dependencies
|
||||||
compile project(':lib:client')
|
compile project(':lib:client')
|
||||||
|
compile project(':lib:helper')
|
||||||
compile project(':routerjars')
|
compile project(':routerjars')
|
||||||
|
|
||||||
// Android Support Repository dependencies
|
// Android Support Repository dependencies
|
||||||
def supportVersion = '23.2.1'
|
def supportVersion = '25.0.1'
|
||||||
compile "com.android.support:support-v4:$supportVersion"
|
compile "com.android.support:support-v4:$supportVersion"
|
||||||
compile "com.android.support:appcompat-v7:$supportVersion"
|
compile "com.android.support:appcompat-v7:$supportVersion"
|
||||||
compile "com.android.support:preference-v7:$supportVersion"
|
compile "com.android.support:preference-v7:$supportVersion"
|
||||||
@ -64,33 +65,34 @@ dependencies {
|
|||||||
compile "com.android.support:recyclerview-v7:$supportVersion"
|
compile "com.android.support:recyclerview-v7:$supportVersion"
|
||||||
|
|
||||||
// Remote dependencies
|
// 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.eowise:recyclerview-stickyheaders:0.5.2@aar'
|
||||||
compile ('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
|
compile ('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
|
||||||
exclude group: 'com.android.support', module: 'support-v4'
|
exclude group: 'com.android.support', module: 'support-v4'
|
||||||
}
|
}
|
||||||
compile 'com.pnikosis:materialish-progress:1.7'
|
compile 'com.pnikosis:materialish-progress:1.7'
|
||||||
|
compile 'net.i2p:router:0.9.28'
|
||||||
compile 'net.i2p.android.ext:floatingactionbutton:1.10.1'
|
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
|
// Testing-only dependencies
|
||||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
|
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
|
||||||
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
'com.android.support:support-v4:50da261acc4ca3d2dea9a43106bf65488711ca97b20a4daa095dba381c205c98',
|
||||||
'com.android.support:appcompat-v7:00f9d93acacd6731f309724054bf51492814b4b2869f16d7d5c0038dcb8c9a0d',
|
'com.android.support:appcompat-v7:7fead560a22ea4b15848ce3000f312ef611fac0953bf90ca8710a72a1f6e36ea',
|
||||||
'com.android.support:preference-v7:775101bd07bd052e455761c5c5d9523d7ad59f2f320e3e8cbde241fd6b1d6025',
|
'com.android.support:preference-v7:d7e3fcb6d5427aa25bfd56c51c24786dbb6f06d998b8b6691e9449e1b11cc205',
|
||||||
'com.android.support:preference-v14:44881bb46094e86d0bc2426f205419674a5b4eb514b44b5a4659b5de29f71eb7',
|
'com.android.support:preference-v14:9d0269913033d97d8edb29003e1ea19021f2e8f36df4035f819bb948f9a23ed2',
|
||||||
'com.android.support:recyclerview-v7:44040a888e23e0c93162a3377cfe06751080e3c22d369ab0d4301ef60d63b0fe',
|
'com.android.support:recyclerview-v7:803baba7be537ace8c5cb8a775e37547c22a04c4b028833796c45c26ec1deca2',
|
||||||
'com.androidplot:androidplot-core:1aaa931974da9d351976ed3d4b67170ac2a78be6c6afd13559ded5534eefc264',
|
'com.androidplot:androidplot-core:e44d9e59e06f025330831f7d3c987d2778a3302025184cf0cef05714b5171212',
|
||||||
'com.eowise:recyclerview-stickyheaders:7b236da49b33b840e9ba6e7e4182218d1a2d9047236fdbc3ca947352f9b0883b',
|
'com.eowise:recyclerview-stickyheaders:7b236da49b33b840e9ba6e7e4182218d1a2d9047236fdbc3ca947352f9b0883b',
|
||||||
'com.mcxiaoke.viewpagerindicator:library:1e8aad664137f68abdfee94889f6da3dc98be652a235176a403965a07a25de62',
|
'com.mcxiaoke.viewpagerindicator:library:1e8aad664137f68abdfee94889f6da3dc98be652a235176a403965a07a25de62',
|
||||||
'com.pnikosis:materialish-progress:da089a90d1dab61e9b50038c09081019398f81190d12b0b567ce94b83ef8cf93',
|
'com.pnikosis:materialish-progress:da089a90d1dab61e9b50038c09081019398f81190d12b0b567ce94b83ef8cf93',
|
||||||
|
'net.i2p:router:de3cf0a0e99823662c938d6a1083f201f8feba7d0ebebaf3179fed7040863b7c',
|
||||||
'net.i2p.android.ext:floatingactionbutton:09d43e2d4ac04a91bf7a37e1ec48a8d220204e3a55dca72cd36cd9fa27461ade',
|
'net.i2p.android.ext:floatingactionbutton:09d43e2d4ac04a91bf7a37e1ec48a8d220204e3a55dca72cd36cd9fa27461ade',
|
||||||
'org.sufficientlysecure:html-textview:39048e35894e582adada388e6c00631803283f8defed8e07ad58a5f284f272ee',
|
'org.sufficientlysecure:html-textview:c409b471618b675e3d2a8588f883c5fe8f3369d00df61ec84b29f29c648370ae',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ import static android.support.test.espresso.matcher.ViewMatchers.hasSibling;
|
|||||||
import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA;
|
import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA;
|
||||||
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
|
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||||
|
import static android.support.test.espresso.matcher.ViewMatchers.withParent;
|
||||||
import static android.support.test.espresso.matcher.ViewMatchers.withText;
|
import static android.support.test.espresso.matcher.ViewMatchers.withText;
|
||||||
import static org.hamcrest.Matchers.allOf;
|
import static org.hamcrest.Matchers.allOf;
|
||||||
import static org.hamcrest.Matchers.not;
|
import static org.hamcrest.Matchers.not;
|
||||||
@ -57,13 +58,13 @@ public class I2PActivityTest extends ActivityInstrumentationTestCase2<I2PActivit
|
|||||||
public void testMainSwipe() {
|
public void testMainSwipe() {
|
||||||
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
|
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
|
||||||
|
|
||||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||||
onView(withId(R.id.router_onoff_button)).check(matches(not(isDisplayed())));
|
onView(withId(R.id.router_onoff_button)).check(matches(not(isDisplayed())));
|
||||||
onView(withText(R.string.label_i2ptunnel_client)).check(matches(isDisplayed()));
|
onView(withText(R.string.label_i2ptunnel_client)).check(matches(isDisplayed()));
|
||||||
|
|
||||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||||
// TODO: test tunnels ViewPager
|
// TODO: test tunnels ViewPager
|
||||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||||
onView(withText(R.string.label_i2ptunnel_client)).check(matches(not(isDisplayed())));
|
onView(withText(R.string.label_i2ptunnel_client)).check(matches(not(isDisplayed())));
|
||||||
onView(withText(R.string.label_router)).check(matches(isDisplayed()));
|
onView(withText(R.string.label_router)).check(matches(isDisplayed()));
|
||||||
// TODO: test addressbook ViewPager
|
// TODO: test addressbook ViewPager
|
||||||
|
@ -208,7 +208,7 @@ public class TunnelDetailFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(net.i2p.android.lib.client.R.string.no, new DialogInterface.OnClickListener() {
|
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -65,8 +65,13 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addTunnel(TunnelEntry tunnel) {
|
public void addTunnel(TunnelEntry tunnel) {
|
||||||
|
boolean wasEmpty = mTunnels.isEmpty();
|
||||||
mTunnels.add(tunnel);
|
mTunnels.add(tunnel);
|
||||||
notifyItemInserted(mTunnels.size()-1);
|
if (wasEmpty) {
|
||||||
|
notifyDataSetChanged();
|
||||||
|
} else {
|
||||||
|
notifyItemInserted(mTunnels.size() - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public TunnelEntry getTunnel(int position) {
|
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.
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="@dimen/listitem_height_one_line">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/host_name"
|
android:id="@+id/host_name"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/listitem_height_one_line"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:paddingEnd="@dimen/listitem_horizontal_margin"
|
android:paddingEnd="@dimen/listitem_horizontal_margin"
|
||||||
android:paddingLeft="@dimen/listitem_horizontal_margin"
|
android:paddingLeft="@dimen/listitem_horizontal_margin"
|
||||||
|
@ -124,29 +124,4 @@ tunnel.4.option.inbound.lengthVariance=0
|
|||||||
tunnel.4.option.outbound.length=2
|
tunnel.4.option.outbound.length=2
|
||||||
tunnel.4.option.outbound.lengthVariance=0
|
tunnel.4.option.outbound.lengthVariance=0
|
||||||
tunnel.4.option.outbound.priority=15
|
tunnel.4.option.outbound.priority=15
|
||||||
tunnel.4.startOnLoad=true
|
tunnel.4.startOnLoad=true
|
||||||
|
|
||||||
# irc irc.killyourtv.i2p
|
|
||||||
tunnel.5.name=KYTV IRC
|
|
||||||
tunnel.5.description=IRC tunnel to KillYourTV's network
|
|
||||||
tunnel.5.type=ircclient
|
|
||||||
tunnel.5.sharedClient=true
|
|
||||||
tunnel.5.interface=127.0.0.1
|
|
||||||
tunnel.5.listenPort=6670
|
|
||||||
tunnel.5.targetDestination=irc.killyourtv.i2p
|
|
||||||
tunnel.5.i2cpHost=127.0.0.1
|
|
||||||
tunnel.5.i2cpPort=7654
|
|
||||||
tunnel.5.option.inbound.nickname=shared clients
|
|
||||||
tunnel.5.option.outbound.nickname=shared clients
|
|
||||||
tunnel.5.option.i2cp.delayOpen=true
|
|
||||||
tunnel.5.option.i2cp.reduceIdleTime=600000
|
|
||||||
tunnel.5.option.i2cp.reduceOnIdle=true
|
|
||||||
tunnel.5.option.i2cp.reduceQuantity=1
|
|
||||||
tunnel.5.option.i2p.streaming.connectDelay=1000
|
|
||||||
tunnel.5.option.i2p.streaming.maxWindowSize=16
|
|
||||||
tunnel.5.option.inbound.length=2
|
|
||||||
tunnel.5.option.inbound.lengthVariance=0
|
|
||||||
tunnel.5.option.outbound.length=2
|
|
||||||
tunnel.5.option.outbound.lengthVariance=0
|
|
||||||
tunnel.5.option.outbound.priority=15
|
|
||||||
tunnel.5.startOnLoad=true
|
|
@ -76,7 +76,7 @@
|
|||||||
<string name="action_reload_subscriptions">Volver a cargar suscripciones</string>
|
<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_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_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="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_not_running">El router I2P no está en marcha.</string>
|
||||||
<string name="router_shutting_down">El router I2P se está cerrando.</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="app_name">I2P</string>
|
||||||
<string name="desc_i2p_logo">I2P-logo</string>
|
<string name="desc_i2p_logo">I2P-logo</string>
|
||||||
<string name="choose_language">Valitse kieli</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="welcome_new_version">Uusi versio asennettu. Lue julkaisutiedot. Versio:</string>
|
||||||
<string name="label_tunnels">Tunnelit</string>
|
<string name="label_tunnels">Tunnelit</string>
|
||||||
<string name="label_status">Tila</string>
|
<string name="label_status">Tila</string>
|
||||||
@ -24,16 +24,20 @@
|
|||||||
<string name="button_router_graceful">I2P sulkeutuu %s</string>
|
<string name="button_router_graceful">I2P sulkeutuu %s</string>
|
||||||
<string name="button_shutdown_now">Pitkä painallus nyt pysäyttämiseksi</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="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="hidden">Piilotettu</string>
|
||||||
<string name="testing">Testataan</string>
|
<string name="testing">Testataan</string>
|
||||||
<string name="firewalled">Palomuuritettu</string>
|
<string name="firewalled">Palomuuritettu</string>
|
||||||
<string name="symmetric_nat">Symmetrinen NAT</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-->
|
<!--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_unresolved_tcp">Ratkaisematon TCP-osoite</string>
|
||||||
<string name="net_status_error_private_tcp">Ykstyinen 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_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_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_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>
|
<string name="shared_clients">Jaetut asiakkaat</string>
|
||||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||||
<string name="char_client_tunnel">A</string>
|
<string name="char_client_tunnel">A</string>
|
||||||
@ -65,6 +69,7 @@
|
|||||||
<string name="news_updated">Uutiset päivitetty</string>
|
<string name="news_updated">Uutiset päivitetty</string>
|
||||||
<string name="router_not_running">Reititin ei ole käynnissä.</string>
|
<string name="router_not_running">Reititin ei ole käynnissä.</string>
|
||||||
<string name="router_shutting_down">Reititin sulkeutuu.</string>
|
<string name="router_shutting_down">Reititin sulkeutuu.</string>
|
||||||
|
<string name="select_an_address">Valitse osoite.</string>
|
||||||
<string name="statistics">Tilastot</string>
|
<string name="statistics">Tilastot</string>
|
||||||
<string name="routers">Reitittimet</string>
|
<string name="routers">Reitittimet</string>
|
||||||
<string name="countries">Maat</string>
|
<string name="countries">Maat</string>
|
||||||
|
@ -329,8 +329,8 @@
|
|||||||
<string name="tunnel_summ_proxy_auth">Login nécessaire pour utiliser ce proxy</string>
|
<string name="tunnel_summ_proxy_auth">Login nécessaire pour utiliser ce proxy</string>
|
||||||
<string name="username">Utilisateur</string>
|
<string name="username">Utilisateur</string>
|
||||||
<string name="password">Mot de passe</string>
|
<string name="password">Mot de passe</string>
|
||||||
<string name="outproxy_auth">Autorisation outproxy</string>
|
<string name="outproxy_auth">Autorisation proxy sortant</string>
|
||||||
<string name="tunnel_summ_outproxy_auth">Login requis pour le outproxy</string>
|
<string name="tunnel_summ_outproxy_auth">Identification requise pour le proxy sortant</string>
|
||||||
<string name="other">Autre</string>
|
<string name="other">Autre</string>
|
||||||
<string name="signature_type">Type de signature</string>
|
<string name="signature_type">Type de signature</string>
|
||||||
<string name="custom_options">Options personnalisées</string>
|
<string name="custom_options">Options personnalisées</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_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_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_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_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_message">Criar túnel?</string>
|
||||||
<string name="i2ptunnel_wizard_submit_confirm_button">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_summ_auto_start">Iniciar o túnel na inicialização do roteador.</string>
|
||||||
<string name="tunnel_cat_ports">Portas locais</string>
|
<string name="tunnel_cat_ports">Portas locais</string>
|
||||||
<string name="shared_client">Cliente compartilhado</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="target_destination">Destino alvo</string>
|
||||||
<string name="persistent_key">Chave persistente</string>
|
<string name="persistent_key">Chave persistente</string>
|
||||||
<string name="persistent_key_conflict_title">Desativar novas chaves na reabertura?</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="tunnel_summ_persistent_key">Manter o destino desse túnel quando ele reiniciar</string>
|
||||||
<string name="reachable_on">Ao alcance em</string>
|
<string name="reachable_on">Ao alcance em</string>
|
||||||
<string name="listen_port">Porta de escuta</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="tunnel_summ_client_ssl">Os clientes devem usar SSL para se conectar</string>
|
||||||
<string name="outproxies">Proxies de saída</string>
|
<string name="outproxies">Proxies de saída</string>
|
||||||
<string name="ssl_outproxies">Proxies de saida com SSL</string>
|
<string name="ssl_outproxies">Proxies de saida com SSL</string>
|
||||||
@ -255,6 +258,7 @@
|
|||||||
<string name="profile">Perfil</string>
|
<string name="profile">Perfil</string>
|
||||||
<string name="profile_bulk">Conexão em massa (downloads/websites/BT)</string>
|
<string name="profile_bulk">Conexão em massa (downloads/websites/BT)</string>
|
||||||
<string name="profile_interactive">Conexão interativa</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="tunnel_summ_delay_connect">Ativar para conexões de pedidos/respostas</string>
|
||||||
<string name="access_control">Controle de acesso</string>
|
<string name="access_control">Controle de acesso</string>
|
||||||
<string name="restricted_access">Acesso restrito</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="tunnel_summ_unique_local">Usar IPs de host locais únicos para cada cliente</string>
|
||||||
<string name="multihome">Multihome</string>
|
<string name="multihome">Multihome</string>
|
||||||
<string name="tunnel_summ_multihome">Ativar otimizações de multihoming</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_minute">Conexões por minuto</string>
|
||||||
<string name="connections_per_hour">Conexões por hora</string>
|
<string name="connections_per_hour">Conexões por hora</string>
|
||||||
<string name="connections_per_day">Conexões por dia</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_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_hour">Total de conexões por hora</string>
|
||||||
<string name="total_connections_per_day">Total de conexões por dia</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="num_per_day">%s por dia</string>
|
||||||
<string name="unlimited">Ilimitado</string>
|
<string name="unlimited">Ilimitado</string>
|
||||||
<string name="set_zero_for_unlimited">Especifique 0 para 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="reduce_quantity">Reduzir quantidade</string>
|
||||||
<string name="tunnel_summ_reduce_quantity">Reduzir quantidade de túneis quando ocioso</string>
|
<string name="tunnel_summ_reduce_quantity">Reduzir quantidade de túneis quando ocioso</string>
|
||||||
<string name="idle_time">Tempo 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="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">Novas chaves na reabertura</string>
|
||||||
<string name="new_keys_on_reopen_conflict_title">Desativar chaves persistentes?</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="tunnel_summ_allow_ssl">Permitir SSL para endereços I2P</string>
|
||||||
<string name="jump_url_list">Pular lista de URLs</string>
|
<string name="jump_url_list">Pular lista de URLs</string>
|
||||||
<string name="proxy_auth">Autorização de proxy</string>
|
<string name="proxy_auth">Autorização de proxy</string>
|
||||||
@ -295,6 +311,7 @@
|
|||||||
<string name="username">Nome de usuário</string>
|
<string name="username">Nome de usuário</string>
|
||||||
<string name="password">Senha</string>
|
<string name="password">Senha</string>
|
||||||
<string name="outproxy_auth">Autorização de proxy de saída</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="other">Outros</string>
|
||||||
<string name="signature_type">Tipo de assinatura</string>
|
<string name="signature_type">Tipo de assinatura</string>
|
||||||
<string name="custom_options">Opções personalizadas</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="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="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="label_browser_configuration">Configuração do navegador</string>
|
||||||
|
<string name="unset">Desligado</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">I2P</string>
|
<string name="app_name">I2P</string>
|
||||||
<string name="desc_i2p_logo">Logótipo I2P</string>
|
<string name="desc_i2p_logo">Logótipo I2P</string>
|
||||||
<string name="choose_language">Escolher língua</string>
|
<string name="choose_language">Escolha o idioma</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="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="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_tunnels">Tuneis</string>
|
||||||
<string name="label_status">Estado</string>
|
<string name="label_status">Estado</string>
|
||||||
<string name="label_console">Consola</string>
|
<string name="label_console">Consola</string>
|
||||||
<string name="label_addresses">Endereços</string>
|
<string name="label_addresses">Endereços</string>
|
||||||
<string name="label_addressbook">Livro de Endereços</string>
|
<string name="label_addressbook">Livro de Endereços</string>
|
||||||
<string name="label_i2ptunnel_client">Tuneis cliente</string>
|
<string name="label_i2ptunnel_client">Túneis de cliente</string>
|
||||||
<string name="label_i2ptunnel_server">Tuneis servidor</string>
|
<string name="label_i2ptunnel_server">Tuneis de servidor</string>
|
||||||
<string name="label_logs">Registos</string>
|
<string name="label_logs">Registos</string>
|
||||||
<string name="label_error_logs">Registos de Erros</string>
|
<string name="label_error_logs">Registos de Erros</string>
|
||||||
<string name="label_news">Notícias</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_shutdown_now">Pressionar longo para parar imediatamente</string>
|
||||||
<string name="button_cancel_graceful">Pressionar longo para não desligar</string>
|
<string name="button_cancel_graceful">Pressionar longo para não desligar</string>
|
||||||
<string name="no_internet">Sem ligação à Internet</string>
|
<string name="no_internet">Sem ligação à Internet</string>
|
||||||
<string name="hidden">Escondido</string>
|
<string name="hidden">Oculto</string>
|
||||||
<string name="testing">Em teste</string>
|
<string name="testing">A testar</string>
|
||||||
<string name="firewalled">Atrás de uma firewall</string>
|
<string name="firewalled">Atrás de uma firewall</string>
|
||||||
<string name="symmetric_nat">NAT simétrico</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="net_status_error_i2cp">Erro no gestor de cliente I2CP - consulte os registos</string>
|
||||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
<!--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_skew">Deriva de relógio de %s</string>
|
||||||
<string name="net_status_error_unresolved_tcp">Endereços TCP por resolver</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_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_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_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_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 desligado</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="shared_clients">Cliente partilhados</string>
|
||||||
<string name="uptime">Tempo de atividade</string>
|
<string name="uptime">Tempo de atividade</string>
|
||||||
<string name="active_peers">Nós ativos</string>
|
<string name="active_peers">Nós ativos</string>
|
||||||
@ -50,10 +50,10 @@
|
|||||||
<string name="char_client_tunnel">C</string>
|
<string name="char_client_tunnel">C</string>
|
||||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||||
<string name="char_server_tunnel">S</string>
|
<string name="char_server_tunnel">S</string>
|
||||||
<string name="no_tunnels_running">Ainda não tem túneis ativos.</string>
|
<string name="no_tunnels_running">Ainda não tem túneis em execução.</string>
|
||||||
<string name="download">Download</string>
|
<string name="download">Transferir</string>
|
||||||
<string name="upload">Upload</string>
|
<string name="upload">Enviar</string>
|
||||||
<string name="configure_browser_title">Configurar navegador?</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="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_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>
|
<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_search">Procurar</string>
|
||||||
<string name="action_add">Adicionar</string>
|
<string name="action_add">Adicionar</string>
|
||||||
<string name="action_edit">Editar</string>
|
<string name="action_edit">Editar</string>
|
||||||
<string name="action_delete">Apagar</string>
|
<string name="action_delete">Eliminar</string>
|
||||||
<string name="action_i2ptunnel_start">Começar túneis</string>
|
<string name="action_i2ptunnel_start">Iniciar túneis</string>
|
||||||
<string name="action_i2ptunnel_stop">Parar 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_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_reload">Recarregar</string>
|
||||||
<string name="action_refresh">Atualizar</string>
|
<string name="action_refresh">Atualizar</string>
|
||||||
<string name="hint_search_addressbook">Procurar no livro de endereços</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_not_running">O router não está em execução.</string>
|
||||||
<string name="router_shutting_down">O router está a desligar.</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="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="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="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>
|
<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="versions">Versões</string>
|
||||||
<string name="version">Versão</string>
|
<string name="version">Versão</string>
|
||||||
<string name="count">Contagem</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_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="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_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_waiting">O I2P está a aguardar por 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_starting_after_waiting">Rede ligada, I2P está a iniciar</string>
|
||||||
<string name="notification_status_running">O I2P está ligado</string>
|
<string name="notification_status_running">O I2P está em execução</string>
|
||||||
<string name="notification_status_client_ready">Os túneis cliente estão prontos</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 clientes estão desligados</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_graceful">A parar I2P dentro de %s</string>
|
||||||
<string name="notification_status_stopping">A parar o I2P</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_stopping_after_net">Ligação desligada, a parar o I2P</string>
|
||||||
<string name="notification_status_shutdown_cancelled">Cancelada a ordem para desligar</string>
|
<string name="notification_status_shutdown_cancelled">Encerramento cancelado</string>
|
||||||
<string name="notification_status_shutting_down">O I2P está a desligar</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_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_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_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="menu_settings">Configurações</string>
|
||||||
<string name="settings_enable">Ativar</string>
|
<string name="settings_enable">Ativar</string>
|
||||||
<string name="settings_desc_subscriptions">URLs de Subscrição</string>
|
<string name="settings_desc_subscriptions">URLs de Subscrição</string>
|
||||||
|
@ -249,7 +249,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
|||||||
<string name="auto_start">Auto-start</string>
|
<string name="auto_start">Auto-start</string>
|
||||||
<string name="tunnel_summ_auto_start">Start tunneln när routern startar.</string>
|
<string name="tunnel_summ_auto_start">Start tunneln när routern startar.</string>
|
||||||
<string name="tunnel_cat_ports">Lokala portar</string>
|
<string name="tunnel_cat_ports">Lokala portar</string>
|
||||||
<string name="shared_client">Delade klienter</string>
|
<string name="shared_client">Delad klient</string>
|
||||||
<string name="tunnel_summ_shared_client">Använd samma Destination och tunnlar som andra klienter</string>
|
<string name="tunnel_summ_shared_client">Använd samma Destination och tunnlar som andra klienter</string>
|
||||||
<string name="target_destination">Måldestination</string>
|
<string name="target_destination">Måldestination</string>
|
||||||
<string name="persistent_key">Beständig nyckel</string>
|
<string name="persistent_key">Beständig nyckel</string>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<string name="app_name">I2P</string>
|
<string name="app_name">I2P</string>
|
||||||
<string name="desc_i2p_logo">I2P logosu</string>
|
<string name="desc_i2p_logo">I2P logosu</string>
|
||||||
<string name="choose_language">Dil seçin</string>
|
<string name="choose_language">Dil seçin</string>
|
||||||
<string name="welcome_new_install">I2P dünyasına hoş geldiniz. Bu uygulama henüz ALPHA geliştirme düzeyindedir ve yaygın olarak herkese açılmamıştır. Lütfen notları ve lisans bilgilerini okuyun.</string>
|
<string name="welcome_new_install">I2P dünyasına hoş geldiniz. Bu uygulama henüz ALPHA geliştirme düzeyindedir ve güçlü bir isimsiz kalma özelliği sağlamamaktadır. Lütfen yayım notlarını ve lisans bilgilerini okuyun.</string>
|
||||||
<string name="welcome_new_version">Yeni sürüm yüklendi. Lütfen yayım notlarını okuyun. Sürüm:</string>
|
<string name="welcome_new_version">Yeni sürüm yüklendi. Lütfen yayım notlarını okuyun. Sürüm:</string>
|
||||||
<string name="label_tunnels">Tüneller</string>
|
<string name="label_tunnels">Tüneller</string>
|
||||||
<string name="label_status">Durum</string>
|
<string name="label_status">Durum</string>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
<string name="first_start_welcome"><b>I2P Yazılımına Hoşgeldiniz</b> Lütfen I2P yüklenip eşleri bulana kadar <b>sabırlı olun</b>.</string>
|
<string name="first_start_welcome"><b>I2P Yazılımına Hoşgeldiniz</b> Lütfen I2P yüklenip eşleri bulana kadar <b>sabırlı olun</b>.</string>
|
||||||
<string name="first_start_read">Beklerken, lütfen sürüm notları ve hoş geldiniz sayfalarını okuyun.</string>
|
<string name="first_start_read">Beklerken, lütfen sürüm notları ve hoş geldiniz sayfalarını okuyun.</string>
|
||||||
<string name="first_start_faq">İstemci tünelleri bulunduğunda, lütfen Sık Sorulan Sorular bölümüne <b>bakın</b>:</string>
|
<string name="first_start_faq">İstemci tünelleri bulunduğunda, lütfen Sık Sorulan Sorular bölümüne <b>bakın</b>:</string>
|
||||||
<string name="first_start_faq_nonanon">Ya da tünelleri beklemek istemiyorsanız anonim olmayan şu bağlantıyı kullanın:</string>
|
<string name="first_start_faq_nonanon">Ya da tünelleri beklemek istemiyorsanız isimsiz olmayan şu bağlantıyı kullanın:</string>
|
||||||
<string name="first_start_irc">IRC istemcinizi <b>localhost:6668</b> adresine yönlendirip şuradan bize merhaba deyin:</string>
|
<string name="first_start_irc">IRC istemcinizi <b>localhost:6668</b> adresine yönlendirip şuradan bize merhaba deyin:</string>
|
||||||
<string name="action_search">Arama</string>
|
<string name="action_search">Arama</string>
|
||||||
<string name="action_add">Ekle</string>
|
<string name="action_add">Ekle</string>
|
||||||
@ -213,7 +213,7 @@
|
|||||||
<string name="i2ptunnel_wizard_k_client_server">İstemci ya da Sunucu</string>
|
<string name="i2ptunnel_wizard_k_client_server">İstemci ya da Sunucu</string>
|
||||||
<string name="i2ptunnel_wizard_v_client">İstemci tüneli</string>
|
<string name="i2ptunnel_wizard_v_client">İstemci tüneli</string>
|
||||||
<string name="i2ptunnel_wizard_v_server">Sunucu tüneli</string>
|
<string name="i2ptunnel_wizard_v_server">Sunucu tüneli</string>
|
||||||
<string name="i2ptunnel_wizard_k_type">Tünel tipi</string>
|
<string name="i2ptunnel_wizard_k_type">Tünel türü</string>
|
||||||
<string name="i2ptunnel_wizard_k_name">Ad</string>
|
<string name="i2ptunnel_wizard_k_name">Ad</string>
|
||||||
<string name="i2ptunnel_wizard_k_desc">Açıklama</string>
|
<string name="i2ptunnel_wizard_k_desc">Açıklama</string>
|
||||||
<string name="i2ptunnel_wizard_k_dest">Hedef</string>
|
<string name="i2ptunnel_wizard_k_dest">Hedef</string>
|
||||||
@ -231,7 +231,7 @@
|
|||||||
<string name="i2ptunnel_wizard_desc_name">Tünel listesinde görüntülenecek tünel adı.</string>
|
<string name="i2ptunnel_wizard_desc_name">Tünel listesinde görüntülenecek tünel adı.</string>
|
||||||
<string name="i2ptunnel_wizard_desc_desc">İsteğe bağlı olarak yazılabilecek tünel açıklaması.</string>
|
<string name="i2ptunnel_wizard_desc_desc">İsteğe bağlı olarak yazılabilecek tünel açıklaması.</string>
|
||||||
<string name="i2ptunnel_wizard_desc_dest">Bu istemci tünelinin bağlanacağı hizmetin I2P hedefini yazın. Tam Base 64 hedef anahtarı ya da adres defterinizden bir sunucu adı olabilir.</string>
|
<string name="i2ptunnel_wizard_desc_dest">Bu istemci tünelinin bağlanacağı hizmetin I2P hedefini yazın. Tam Base 64 hedef anahtarı ya da adres defterinizden bir sunucu adı olabilir.</string>
|
||||||
<string name="i2ptunnel_wizard_desc_outproxies">Bu tünel tipi için bildiğiniz çıkış sunucuları varsa (HTTP ya da SOCKS) buraya virgül ile ayırarak yazın. </string>
|
<string name="i2ptunnel_wizard_desc_outproxies">Bu tünel türü için bildiğiniz çıkış sunucuları varsa (HTTP ya da SOCKS) buraya virgül ile ayırarak yazın. </string>
|
||||||
<string name="i2ptunnel_wizard_desc_target_host">Çalıştırdığınız hizmetin IP adresi. Genellikle aynı bilgisayarda olduğundan otomatik olarak 127.0.0.1 yazılır.</string>
|
<string name="i2ptunnel_wizard_desc_target_host">Çalıştırdığınız hizmetin IP adresi. Genellikle aynı bilgisayarda olduğundan otomatik olarak 127.0.0.1 yazılır.</string>
|
||||||
<string name="i2ptunnel_wizard_desc_target_port">Hizmetin bağlantıları kabul edeceği kapı numarası.</string>
|
<string name="i2ptunnel_wizard_desc_target_port">Hizmetin bağlantıları kabul edeceği kapı numarası.</string>
|
||||||
<string name="i2ptunnel_wizard_desc_reachable_on">Bu seçenek bu tünele erişebilecek bilgisayar ve akıllı telefonları sınırlar.</string>
|
<string name="i2ptunnel_wizard_desc_reachable_on">Bu seçenek bu tünele erişebilecek bilgisayar ve akıllı telefonları sınırlar.</string>
|
||||||
@ -332,7 +332,7 @@
|
|||||||
<string name="outproxy_auth">Giden vekil sunucu kimlik doğrulaması</string>
|
<string name="outproxy_auth">Giden vekil sunucu kimlik doğrulaması</string>
|
||||||
<string name="tunnel_summ_outproxy_auth">Giden vekil sunucu için oturum açılması gerekiyor</string>
|
<string name="tunnel_summ_outproxy_auth">Giden vekil sunucu için oturum açılması gerekiyor</string>
|
||||||
<string name="other">Diğer</string>
|
<string name="other">Diğer</string>
|
||||||
<string name="signature_type">İmza tipi</string>
|
<string name="signature_type">İmza türü</string>
|
||||||
<string name="custom_options">Uyarlanmış seçenekler</string>
|
<string name="custom_options">Uyarlanmış seçenekler</string>
|
||||||
<string name="all">Tümü</string>
|
<string name="all">Tümü</string>
|
||||||
<string name="no_messages">Henüz bir ileti yok</string>
|
<string name="no_messages">Henüz bir ileti yok</string>
|
||||||
|
@ -3,16 +3,19 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:1.5.0'
|
classpath 'com.android.tools.build:gradle:2.2.3'
|
||||||
classpath files('gradle/libs/gradle-witness.jar')
|
classpath files('gradle/libs/gradle-witness.jar')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
version = VERSION_NAME
|
|
||||||
group = GROUP
|
group = GROUP
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configure(project(':lib').subprojects) {
|
||||||
|
version = VERSION_NAME
|
||||||
|
}
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
VERSION_NAME=0.8
|
|
||||||
GROUP=net.i2p.android
|
GROUP=net.i2p.android
|
||||||
|
|
||||||
POM_URL=https://github.com/i2p/i2p.android.base
|
POM_URL=https://github.com/i2p/i2p.android.base
|
||||||
POM_SCM_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_CONNECTION=scm:git:git@github.com:i2p/i2p.android.base.git
|
||||||
POM_SCM_DEV_CONNECTION=scm: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_NAME=The Apache Software License, Version 2.0
|
||||||
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
|
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
|
||||||
POM_LICENCE_DIST=repo
|
POM_LICENCE_DIST=repo
|
||||||
@ -13,5 +12,5 @@ POM_DEVELOPER_NAME=str4d
|
|||||||
POM_DEVELOPER_EMAIL=str4d@i2pmail.org
|
POM_DEVELOPER_EMAIL=str4d@i2pmail.org
|
||||||
|
|
||||||
ANDROID_BUILD_TARGET_SDK_VERSION=22
|
ANDROID_BUILD_TARGET_SDK_VERSION=22
|
||||||
ANDROID_BUILD_TOOLS_VERSION=23.0.1
|
ANDROID_BUILD_TOOLS_VERSION=25.0.0
|
||||||
ANDROID_BUILD_SDK_VERSION=23
|
ANDROID_BUILD_SDK_VERSION=25
|
||||||
|
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
|
#Sun Nov 06 10:33:19 CST 2016
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||||
|
@ -24,24 +24,9 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task buildClient(type: Exec) {
|
|
||||||
outputs.dir('libs')
|
|
||||||
commandLine 'ant', 'buildclient'
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile files('libs/i2p.jar') {
|
compile "net.i2p:i2p:$VERSION_NAME"
|
||||||
builtBy tasks.buildClient
|
compile "net.i2p.client:streaming:$VERSION_NAME"
|
||||||
}
|
|
||||||
compile files('libs/mstreaming.jar') {
|
|
||||||
builtBy tasks.buildClient
|
|
||||||
}
|
|
||||||
compile files('libs/streaming.jar') {
|
|
||||||
builtBy tasks.buildClient
|
|
||||||
}
|
|
||||||
// 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'
|
|
||||||
|
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||||
@ -49,14 +34,10 @@ dependencies {
|
|||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
'net.i2p:i2p:c9629c90341fd274516813e57f71a3c1ff5021ffc4999eec97ff2863cb57612e',
|
||||||
|
'net.i2p.client:mstreaming:8e656e4c782886a33e7a4245acc0d5c8ab1e461164576eaec4b2fbc52ef6f4eb',
|
||||||
|
'net.i2p.client:streaming:ee04fbbeb6525fa086a275c71d533f967c99f54118acf267bf0291bbe85f5cc5',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
clean << {
|
|
||||||
exec {
|
|
||||||
commandLine 'ant', 'clean'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "${project.rootDir}/gradle/maven-push.gradle"
|
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>
|
|
@ -1,3 +1,5 @@
|
|||||||
|
VERSION_NAME=0.9.28
|
||||||
|
|
||||||
POM_NAME=I2P Android client library
|
POM_NAME=I2P Android client library
|
||||||
POM_DESCRIPTION=A client library enabling Android developers to add native I2P support to their apps.
|
POM_DESCRIPTION=A client library enabling Android developers to add native I2P support to their apps.
|
||||||
POM_ARTIFACT_ID=client
|
POM_ARTIFACT_ID=client
|
||||||
|
@ -3,6 +3,7 @@ package net.i2p.client;
|
|||||||
import android.net.LocalSocket;
|
import android.net.LocalSocket;
|
||||||
|
|
||||||
import net.i2p.I2PAppContext;
|
import net.i2p.I2PAppContext;
|
||||||
|
import net.i2p.util.Log;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
@ -17,10 +18,15 @@ import java.net.Socket;
|
|||||||
public class DomainSocketFactory {
|
public class DomainSocketFactory {
|
||||||
public static String I2CP_SOCKET_ADDRESS = "net.i2p.android.client.i2cp";
|
public static String I2CP_SOCKET_ADDRESS = "net.i2p.android.client.i2cp";
|
||||||
|
|
||||||
|
public final Log _log;
|
||||||
|
|
||||||
public DomainSocketFactory(I2PAppContext context) {
|
public DomainSocketFactory(I2PAppContext context) {
|
||||||
|
_log = context.logManager().getLog(getClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Socket createSocket(String name) throws IOException {
|
public Socket createSocket(String name) throws IOException {
|
||||||
|
if (_log.shouldDebug())
|
||||||
|
_log.debug("Connecting to domain socket " + name);
|
||||||
return new DomainSocket(name);
|
return new DomainSocket(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +35,8 @@ public class DomainSocketFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ServerSocket createServerSocket(String name) throws IOException {
|
public ServerSocket createServerSocket(String name) throws IOException {
|
||||||
|
if (_log.shouldDebug())
|
||||||
|
_log.debug("Listening on domain socket " + name);
|
||||||
return new DomainServerSocket(name, this);
|
return new DomainServerSocket(name, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,8 @@ package net.i2p.util;
|
|||||||
*
|
*
|
||||||
* @author zzz
|
* @author zzz
|
||||||
*/
|
*/
|
||||||
class LogWriter extends LogWriterBase {
|
class AndroidLogWriter extends LogWriter {
|
||||||
public LogWriter(LogManager manager) {
|
public AndroidLogWriter(LogManager manager) {
|
||||||
super(manager);
|
super(manager);
|
||||||
}
|
}
|
||||||
|
|
@ -25,7 +25,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'com.android.support:support-v4:23.2.1'
|
compile 'com.android.support:support-v4:25.0.1'
|
||||||
|
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||||
@ -33,7 +33,7 @@ dependencies {
|
|||||||
|
|
||||||
dependencyVerification {
|
dependencyVerification {
|
||||||
verify = [
|
verify = [
|
||||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
'com.android.support:support-v4:50da261acc4ca3d2dea9a43106bf65488711ca97b20a4daa095dba381c205c98',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
VERSION_NAME=0.9.2
|
||||||
|
|
||||||
POM_NAME=I2P Android helper library
|
POM_NAME=I2P Android helper library
|
||||||
POM_DESCRIPTION=A helper library enabling Android developers to easily add I2P Android support to their apps.
|
POM_DESCRIPTION=A helper library enabling Android developers to easily add I2P Android support to their apps.
|
||||||
POM_ARTIFACT_ID=helper
|
POM_ARTIFACT_ID=helper
|
||||||
|
@ -24,25 +24,36 @@ import net.i2p.android.router.service.State;
|
|||||||
public class I2PAndroidHelper {
|
public class I2PAndroidHelper {
|
||||||
public static final String URI_I2P_ANDROID = "net.i2p.android";
|
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_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;
|
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 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 {
|
public interface Callback {
|
||||||
void onI2PAndroidBound();
|
void onI2PAndroidBound();
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
private final boolean mUseDebug;
|
||||||
private boolean mTriedBindState;
|
private boolean mTriedBindState;
|
||||||
private IRouterState mStateService;
|
private IRouterState mStateService;
|
||||||
private Callback mCallback;
|
private Callback mCallback;
|
||||||
|
|
||||||
public I2PAndroidHelper(Context context) {
|
public I2PAndroidHelper(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
|
mUseDebug = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param useDebug Enable usage against debug builds of I2P Android.
|
||||||
|
*/
|
||||||
|
public I2PAndroidHelper(Context context, boolean useDebug) {
|
||||||
|
mContext = context;
|
||||||
|
mUseDebug = useDebug;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -125,6 +136,10 @@ public class I2PAndroidHelper {
|
|||||||
intent.setClassName(URI_I2P_ANDROID_LEGACY, ROUTER_SERVICE_CLASS);
|
intent.setClassName(URI_I2P_ANDROID_LEGACY, ROUTER_SERVICE_CLASS);
|
||||||
else
|
else
|
||||||
intent = null;
|
intent = null;
|
||||||
|
if (mUseDebug && isAppInstalled(URI_I2P_ANDROID_DEBUG)) {
|
||||||
|
Log.w(LOG_TAG, "Using debug build of I2P Android");
|
||||||
|
intent.setClassName(URI_I2P_ANDROID_DEBUG, ROUTER_SERVICE_CLASS);
|
||||||
|
}
|
||||||
return intent;
|
return intent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,7 +177,8 @@ public class I2PAndroidHelper {
|
|||||||
* @return true if I2P Android is installed, false otherwise.
|
* @return true if I2P Android is installed, false otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isI2PAndroidInstalled() {
|
public boolean isI2PAndroidInstalled() {
|
||||||
return isAppInstalled(URI_I2P_ANDROID) ||
|
return (mUseDebug && isAppInstalled(URI_I2P_ANDROID_DEBUG)) ||
|
||||||
|
isAppInstalled(URI_I2P_ANDROID) ||
|
||||||
isAppInstalled(URI_I2P_ANDROID_DONATE) ||
|
isAppInstalled(URI_I2P_ANDROID_DONATE) ||
|
||||||
isAppInstalled(URI_I2P_ANDROID_LEGACY);
|
isAppInstalled(URI_I2P_ANDROID_LEGACY);
|
||||||
}
|
}
|
||||||
|
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-gl/strings.xml
Normal file
9
lib/helper/src/main/res/values-gl/strings.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<resources>
|
||||||
|
<string name="yes">Si</string>
|
||||||
|
<string name="no">Non</string>
|
||||||
|
<string name="install_i2p_android">Instalar I2P Android?</string>
|
||||||
|
<string name="you_must_have_i2p_android">É preciso que teñas I2P Android instalado e funcionando. Queres instalalo?</string>
|
||||||
|
<string name="start_i2p_android">Lanzar I2P Android?</string>
|
||||||
|
<string name="would_you_like_to_start_i2p_android">Semella que I2P Android non está a correr. Desexar lanzalo?</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>
|
@ -8,7 +8,6 @@ task buildRouter(type: Exec) {
|
|||||||
// TODO an empty routerjars.jar is added to the classpath
|
// TODO an empty routerjars.jar is added to the classpath
|
||||||
|
|
||||||
artifacts {
|
artifacts {
|
||||||
'default' file: file('libs/router.jar'), builtBy: buildRouter
|
|
||||||
'default' file: file('libs/newsxml.jar'), builtBy: buildRouter
|
'default' file: file('libs/newsxml.jar'), builtBy: buildRouter
|
||||||
'default' file: file('libs/i2ptunnel.jar'), builtBy: buildRouter
|
'default' file: file('libs/i2ptunnel.jar'), builtBy: buildRouter
|
||||||
'default' file: file('libs/i2ptunnel-ui.jar'), builtBy: buildRouter
|
'default' file: file('libs/i2ptunnel-ui.jar'), builtBy: buildRouter
|
||||||
|
@ -17,16 +17,11 @@
|
|||||||
<echo message="Using I2P source at ${i2pbase}" />
|
<echo message="Using I2P source at ${i2pbase}" />
|
||||||
<property name="i2plib" location="${i2pbase}/build" />
|
<property name="i2plib" location="${i2pbase}/build" />
|
||||||
|
|
||||||
<available property="have.router" file="${i2plib}/router.jar" />
|
|
||||||
<available property="have.bob" file="${i2plib}/BOB.jar" />
|
<available property="have.bob" file="${i2plib}/BOB.jar" />
|
||||||
<available property="have.newsxml" file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" />
|
<available property="have.newsxml" file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" />
|
||||||
<available property="have.i2ptunnel" file="${i2plib}/i2ptunnel-ui.jar" />
|
<available property="have.i2ptunnel" file="${i2plib}/i2ptunnel-ui.jar" />
|
||||||
<available property="have.addressbook" file="${i2plib}/addressbook.jar" />
|
<available property="have.addressbook" file="${i2plib}/addressbook.jar" />
|
||||||
|
|
||||||
<target name="buildRouter" unless="have.router">
|
|
||||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildRouter" />
|
|
||||||
</target>
|
|
||||||
|
|
||||||
<target name="buildNewsXMLJar" unless="have.newsxml">
|
<target name="buildNewsXMLJar" unless="have.newsxml">
|
||||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildNewsXMLJar" />
|
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildNewsXMLJar" />
|
||||||
</target>
|
</target>
|
||||||
@ -41,12 +36,9 @@
|
|||||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildBOB" />
|
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildBOB" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="buildrouter" depends="buildRouter, buildNewsXMLJar, buildI2PTunnelJar, buildAddressbook, buildBOB">
|
<target name="buildrouter" depends="buildNewsXMLJar, buildI2PTunnelJar, buildAddressbook, buildBOB">
|
||||||
<mkdir dir="${jar.libs.dir}" />
|
<mkdir dir="${jar.libs.dir}" />
|
||||||
|
|
||||||
<!-- router -->
|
|
||||||
<copy file="${i2plib}/router.jar" todir="${jar.libs.dir}" />
|
|
||||||
|
|
||||||
<!-- newsxml -->
|
<!-- newsxml -->
|
||||||
<copy file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" todir="${jar.libs.dir}" />
|
<copy file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" todir="${jar.libs.dir}" />
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user