Compare commits
45 Commits
android-0.
...
android-he
Author | SHA1 | Date | |
---|---|---|---|
9460e3202f | |||
5f388a7c6b | |||
39d5de7eb4 | |||
0fb1ef881c | |||
8230769191 | |||
19036a71cb | |||
40f3fbf9c5 | |||
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 |
14
CHANGELOG
14
CHANGELOG
@ -1,4 +1,16 @@
|
||||
0.9.25
|
||||
0.9.28 / 2017-01-02
|
||||
* Bug fixes and translation updates
|
||||
|
||||
0.9.27 / 2016-11-20 / 64ff68efe98c345acb6ba1d0432fa49d1d650358
|
||||
* 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
|
||||
* 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
|
||||
```
|
||||
|
||||
|
25
TODO
25
TODO
@ -19,38 +19,61 @@
|
||||
- Style for addressbook headers
|
||||
- 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?
|
||||
- Use Material design for LongPressButton
|
||||
- Highlight selected tunnel in two-pane mode
|
||||
|
||||
# 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
|
||||
<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
|
||||
- Improve tunnel list status indicators
|
||||
- Icon overlay to indicate which tunnels are shared
|
||||
- Or reorder / group tunnels?
|
||||
- Show all messages somewhere
|
||||
- Bottom toolbar?
|
||||
- Icons/header images for tunnel types on details page
|
||||
- Setting to close when not on WiFi
|
||||
- Progress feedback for addressbook subscriptions reload
|
||||
- Display release notes directly on new router version
|
||||
- Fill out help pages
|
||||
- Fix navigation to specific settings pages
|
||||
- Rewrite release notes to be release-specific
|
||||
- Fix release notes UI, either make back button use clear or add buttons
|
||||
- Notify user when autostart fails?
|
||||
- NetDB tablet view fixes
|
||||
- Refresh detail fragment when changing tab
|
||||
- Move list to correct item when changing tab
|
||||
- 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
|
||||
- Maybe change router-off mechanic for various pages? Enable as they become available?
|
||||
|
||||
# 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
|
||||
- User selects profile in settings
|
||||
- Change network participation etc. based on profile
|
||||
- Also look at connection type: Connectivity.isConnectionFast()
|
||||
- Expose log level overrides
|
||||
- Bug report feature
|
||||
- Replace peers page (native version)
|
||||
- Improve graphs
|
||||
- Show fixed x range, not only available data
|
||||
- Think about pan/zoom
|
||||
- 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
|
||||
|
||||
@ -98,6 +121,8 @@
|
||||
|
||||
# Long-term
|
||||
|
||||
- Reproducible builds
|
||||
- Extract RouterService into a library
|
||||
- Remote router support
|
||||
- Implement a "router wrapper" that can represent a local or 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)
|
||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||
defaultConfig {
|
||||
versionCode 4745232
|
||||
versionName '0.9.25'
|
||||
versionCode 4745235
|
||||
versionName "$I2P_VERSION"
|
||||
minSdkVersion 9
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
|
||||
@ -53,10 +53,11 @@ android {
|
||||
dependencies {
|
||||
// Local dependencies
|
||||
compile project(':lib:client')
|
||||
compile project(':lib:helper')
|
||||
compile project(':routerjars')
|
||||
|
||||
// Android Support Repository dependencies
|
||||
def supportVersion = '23.2.1'
|
||||
def supportVersion = '25.3.0'
|
||||
compile "com.android.support:support-v4:$supportVersion"
|
||||
compile "com.android.support:appcompat-v7:$supportVersion"
|
||||
compile "com.android.support:preference-v7:$supportVersion"
|
||||
@ -64,33 +65,32 @@ dependencies {
|
||||
compile "com.android.support:recyclerview-v7:$supportVersion"
|
||||
|
||||
// Remote dependencies
|
||||
compile 'com.androidplot:androidplot-core:0.9.6'
|
||||
compile 'com.androidplot:androidplot-core:1.4.1'
|
||||
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.inkapplications.viewpageindicator:library:2.4.4'
|
||||
compile 'com.pnikosis:materialish-progress:1.7'
|
||||
compile "net.i2p:router:$I2P_VERSION"
|
||||
compile 'net.i2p.android.ext:floatingactionbutton:1.10.1'
|
||||
compile 'org.sufficientlysecure:html-textview:1.3'
|
||||
compile 'org.sufficientlysecure:html-textview:3.1'
|
||||
|
||||
// Testing-only dependencies
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
|
||||
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
|
||||
}
|
||||
|
||||
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:9142d2f386eeb4483050d7f13fcaeddcd01011650f4216208376ff7d4d7a6bf1',
|
||||
'com.android.support:appcompat-v7:2841b0786c50018a14b6bbcdadb63d6b077ea9e2aadcc7611de1caeecaccf06a',
|
||||
'com.android.support:preference-v7:0eede78cace2404e107886a4eaf11c4b895df949a4f1deee58e2e60e25c73dd2',
|
||||
'com.android.support:preference-v14:19d384a0476cf6e03fc857a29c3d7f2055c701f828b502c78e80b66b2bfe5ef4',
|
||||
'com.android.support:recyclerview-v7:423b183809ef75051c150f5f401c4077ddedac26b2c515b6ee231c4c5724f5bf',
|
||||
'com.androidplot:androidplot-core:7670da5838ce2ae2b0b5faabeb9d6a1f2787d30d3fe9f0952adc5611910d18c0',
|
||||
'com.eowise:recyclerview-stickyheaders:7b236da49b33b840e9ba6e7e4182218d1a2d9047236fdbc3ca947352f9b0883b',
|
||||
'com.mcxiaoke.viewpagerindicator:library:1e8aad664137f68abdfee94889f6da3dc98be652a235176a403965a07a25de62',
|
||||
'com.inkapplications.viewpageindicator:library:77b26a7723cd10fa5e29480be239e8d68f431f4bc20d9144169c9ce06ebac2bf',
|
||||
'com.pnikosis:materialish-progress:da089a90d1dab61e9b50038c09081019398f81190d12b0b567ce94b83ef8cf93',
|
||||
'net.i2p:router:d5018bb262ab1e070efacb32811a72e149aaabe600dce32fb192d2ddadd285f3',
|
||||
'net.i2p.android.ext:floatingactionbutton:09d43e2d4ac04a91bf7a37e1ec48a8d220204e3a55dca72cd36cd9fa27461ade',
|
||||
'org.sufficientlysecure:html-textview:39048e35894e582adada388e6c00631803283f8defed8e07ad58a5f284f272ee',
|
||||
'org.sufficientlysecure:html-textview:ed740adf05cae2373999c7a3047c803183d9807b2cf66162902090d7c112a832',
|
||||
]
|
||||
}
|
||||
|
||||
|
9
app/proguard-rules.pro
vendored
9
app/proguard-rules.pro
vendored
@ -6,6 +6,10 @@
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
-dontobfuscate
|
||||
-dontoptimize
|
||||
-dontpreverify
|
||||
-dontshrink
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
@ -21,8 +25,5 @@
|
||||
# https://code.google.com/p/android/issues/detail?id=78377#c302
|
||||
-keepattributes **
|
||||
-keep class !android.support.v7.view.menu.**,** {*;}
|
||||
-dontpreverify
|
||||
-dontoptimize
|
||||
-dontshrink
|
||||
-dontwarn **
|
||||
-dontnote **
|
||||
-dontnote **
|
||||
|
@ -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.isDisplayed;
|
||||
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 org.hamcrest.Matchers.allOf;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
@ -57,13 +58,13 @@ public class I2PActivityTest extends ActivityInstrumentationTestCase2<I2PActivit
|
||||
public void testMainSwipe() {
|
||||
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(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
|
||||
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_router)).check(matches(isDisplayed()));
|
||||
// TODO: test addressbook ViewPager
|
||||
|
@ -30,7 +30,7 @@ public class HelpHtmlFragment extends Fragment {
|
||||
int padH = getResources().getDimensionPixelOffset(R.dimen.activity_horizontal_margin);
|
||||
int padV = getResources().getDimensionPixelOffset(R.dimen.activity_vertical_margin);
|
||||
text.setPadding(padH, padV, padH, padV);
|
||||
text.setHtmlFromRawResource(getActivity(), getArguments().getInt(ARG_HTML_FILE), true);
|
||||
text.setHtml(getArguments().getInt(ARG_HTML_FILE));
|
||||
return scroller;
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
}
|
||||
});
|
||||
|
@ -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) {
|
||||
|
@ -11,9 +11,10 @@ import android.view.ViewGroup;
|
||||
import com.androidplot.xy.BarFormatter;
|
||||
import com.androidplot.xy.BarRenderer;
|
||||
import com.androidplot.xy.BoundaryMode;
|
||||
import com.androidplot.xy.StepMode;
|
||||
import com.androidplot.xy.XYGraphWidget;
|
||||
import com.androidplot.xy.XYPlot;
|
||||
import com.androidplot.xy.XYSeries;
|
||||
import com.androidplot.xy.XYStepMode;
|
||||
|
||||
import net.i2p.android.router.I2PFragmentBase;
|
||||
import net.i2p.android.router.R;
|
||||
@ -120,26 +121,25 @@ public class RateGraphFragment extends I2PFragmentBase {
|
||||
|
||||
_ratePlot.addSeries(rateSeries, new BarFormatter(Color.argb(200, 0, 80, 0), Color.argb(200, 0, 80, 0)));
|
||||
_ratePlot.calculateMinMaxVals();
|
||||
long maxX = _ratePlot.getCalculatedMaxX().longValue();
|
||||
long maxX = _ratePlot.getBounds().getMaxX().longValue();
|
||||
|
||||
Util.d("Adding plot updater to listener");
|
||||
_listener.addObserver(_plotUpdater);
|
||||
|
||||
// Only one line, so hide the legend
|
||||
_ratePlot.getLegendWidget().setVisible(false);
|
||||
_ratePlot.getLegend().setVisible(false);
|
||||
|
||||
BarRenderer renderer = (BarRenderer) _ratePlot.getRenderer(BarRenderer.class);
|
||||
renderer.setBarWidthStyle(BarRenderer.BarWidthStyle.VARIABLE_WIDTH);
|
||||
renderer.setBarGap(0);
|
||||
BarRenderer renderer = _ratePlot.getRenderer(BarRenderer.class);
|
||||
renderer.setBarGroupWidth(BarRenderer.BarGroupWidthMode.FIXED_GAP, 0);
|
||||
|
||||
_ratePlot.setDomainUpperBoundary(maxX, BoundaryMode.GROW);
|
||||
_ratePlot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 15 * 60 * 1000);
|
||||
_ratePlot.setTicksPerDomainLabel(4);
|
||||
_ratePlot.setDomainStep(StepMode.INCREMENT_BY_VAL, 15 * 60 * 1000);
|
||||
_ratePlot.setLinesPerDomainLabel(4);
|
||||
|
||||
_ratePlot.setRangeLowerBoundary(0, BoundaryMode.FIXED);
|
||||
_ratePlot.setTicksPerRangeLabel(5);
|
||||
_ratePlot.setLinesPerRangeLabel(5);
|
||||
|
||||
_ratePlot.setDomainValueFormat(new Format() {
|
||||
_ratePlot.getGraph().getLineLabelStyle(XYGraphWidget.Edge.BOTTOM).setFormat(new Format() {
|
||||
private DateFormat dateFormat = SimpleDateFormat.getTimeInstance(DateFormat.SHORT);
|
||||
|
||||
@Override
|
||||
@ -157,13 +157,13 @@ public class RateGraphFragment extends I2PFragmentBase {
|
||||
});
|
||||
|
||||
final int finalK = _k;
|
||||
_ratePlot.setRangeValueFormat(new Format() {
|
||||
_ratePlot.getGraph().getLineLabelStyle(XYGraphWidget.Edge.LEFT).setFormat(new Format() {
|
||||
|
||||
@Override
|
||||
public StringBuffer format(Object obj, @NonNull StringBuffer toAppendTo,
|
||||
@NonNull FieldPosition pos) {
|
||||
double val = ((Number) obj).doubleValue();
|
||||
double maxY = _ratePlot.getCalculatedMaxY().doubleValue();
|
||||
double maxY = _ratePlot.getBounds().getMaxY().doubleValue();
|
||||
|
||||
if (val == 0 || maxY < finalK) {
|
||||
return new DecimalFormat("0").format(val, toAppendTo, pos);
|
||||
@ -194,8 +194,8 @@ public class RateGraphFragment extends I2PFragmentBase {
|
||||
|
||||
private void updatePlot() {
|
||||
_ratePlot.calculateMinMaxVals();
|
||||
double maxY = _ratePlot.getCalculatedMaxY().doubleValue();
|
||||
_ratePlot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, getRangeStep(maxY, _k));
|
||||
double maxY = _ratePlot.getBounds().getMaxY().doubleValue();
|
||||
_ratePlot.setRangeStep(StepMode.INCREMENT_BY_VAL, getRangeStep(maxY, _k));
|
||||
|
||||
_ratePlot.redraw();
|
||||
}
|
||||
|
@ -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"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="@dimen/listitem_height_one_line">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/host_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/listitem_height_one_line"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingEnd="@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.lengthVariance=0
|
||||
tunnel.4.option.outbound.priority=15
|
||||
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
|
||||
tunnel.4.startOnLoad=true
|
@ -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>
|
||||
|
@ -329,8 +329,8 @@
|
||||
<string name="tunnel_summ_proxy_auth">Login nécessaire pour utiliser ce proxy</string>
|
||||
<string name="username">Utilisateur</string>
|
||||
<string name="password">Mot de passe</string>
|
||||
<string name="outproxy_auth">Autorisation outproxy</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Login requis pour le outproxy</string>
|
||||
<string name="outproxy_auth">Autorisation proxy sortant</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Identification requise pour le proxy sortant</string>
|
||||
<string name="other">Autre</string>
|
||||
<string name="signature_type">Type de signature</string>
|
||||
<string name="custom_options">Options personnalisées</string>
|
||||
|
@ -340,8 +340,15 @@
|
||||
<plurals name="log_error_messages">
|
||||
<item quantity="one">Jeden komunikat o błędzie</item>
|
||||
<item quantity="few">%d komunikaty o błędach, od najnowszych</item>
|
||||
<item quantity="many">%d komunikatów o błędach, od najnowszych</item>
|
||||
<item quantity="other">%d komunikatów o błędach, od najnowszych</item>
|
||||
</plurals>
|
||||
<plurals name="log_messages">
|
||||
<item quantity="one">Jedna wiadomość</item>
|
||||
<item quantity="few">%d wiadomości, od najnowszych</item>
|
||||
<item quantity="many">%d wiadomości, od najnowszych</item>
|
||||
<item quantity="other">%d wiadomości, od najnowszych</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Wpis w logu</string>
|
||||
<string name="copy_logs">Kopiuj logi</string>
|
||||
<string name="i2p_android_error_logs">Logi Błędów I2P Android</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>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">I2P logga</string>
|
||||
<string name="desc_i2p_logo">I2P-logo</string>
|
||||
<string name="choose_language">Välj språk</string>
|
||||
<string name="welcome_new_install">Välkommen till I2P! Denhär appen är ALFA-mjukvara och erbjuder inte stark anonymitet.
|
||||
Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="welcome_new_install">Välkommen till I2P! Den här appen är ALFA-mjukvara och erbjuder inte stark anonymitet.
|
||||
Var god läs utgåvenoteringar och licens-information.</string>
|
||||
<string name="welcome_new_version">Ny version installerad. Var god läs release kommentarerna. Version: </string>
|
||||
<string name="label_tunnels">Tunnlar</string>
|
||||
<string name="label_status">Status</string>
|
||||
@ -37,11 +37,11 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="net_status_error_unresolved_tcp">Ej upplöst TCP-adress</string>
|
||||
<string name="net_status_error_private_tcp">Privat TCP-adress</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Bakom brandvägg med inåtgående TCP aktiverad</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Bakom brandvägg och floodfill</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Bakom brandvägg och \'floodfill\'</string>
|
||||
<string name="net_status_info_disconnected">Frånkopplad - kontrollera nätverksanslutning</string>
|
||||
<string name="net_status_error_udp_port">UDP-porten används - ändra i inställningar och start om</string>
|
||||
<string name="net_status_error_no_active_peers">Inga aktiva noder - kontrollera nätverksanslutning och brandvägg</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP deaktiverad och inåtgående TCP host/port inte angiven</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP deaktiverad och inåtgående TCP värd/port inte angiven</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Bakom brandvägg med UDP avaktiverad</string>
|
||||
<string name="shared_clients">Delade klienter</string>
|
||||
<string name="uptime">Upptid</string>
|
||||
@ -55,11 +55,11 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="download">Ladda ner</string>
|
||||
<string name="upload">Ladda upp</string>
|
||||
<string name="configure_browser_title">Konfigurera browsern?</string>
|
||||
<string name="configure_browser_for_i2p">Vill du konfigurera en browser för att se på I2P sidor? (Du kan också göra detta senare från hjälpmenyn.)</string>
|
||||
<string name="configure_browser_for_i2p">Vill du konfigurera en browser för att se på I2P-sidor? (Du kan också göra detta senare från hjälpmenyn.)</string>
|
||||
<string name="first_start_title">Gratulerar till din I2P installation!</string>
|
||||
<string name="first_start_welcome"><b>Välkommen till I2P!</b> Vänligen <b>ha tålamod</b> medan I2P startar och letar upp noder.</string>
|
||||
<string name="first_start_read">Medan du väntar, vänligen läs utgåvans meddelanden och välkomstsidan.</string>
|
||||
<string name="first_start_faq">När du har fått klienttunnlar, vänligen <b>kolla</b> vår FAQ:</string>
|
||||
<string name="first_start_faq">När du har fått klienttunnlar, vänligen <b>kolla</b> våra vanliga frågor:</string>
|
||||
<string name="first_start_faq_nonanon">Använd den här icke-anonyma länken om du inte vill vänta på tunnlar:</string>
|
||||
<string name="first_start_irc">Peka din IRCclient till <b>localhost:6668</b> och säg hej till oss på:</string>
|
||||
<string name="action_search">Sök</string>
|
||||
@ -249,7 +249,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="auto_start">Auto-start</string>
|
||||
<string name="tunnel_summ_auto_start">Start tunneln när routern startar.</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="target_destination">Måldestination</string>
|
||||
<string name="persistent_key">Beständig nyckel</string>
|
||||
@ -265,14 +265,14 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">Aktivera DCC</string>
|
||||
<string name="tunnel_summ_enable_dcc">Tillåt IRCklienter att använda DCC</string>
|
||||
<string name="website_domain_name">Webbsidas domännamn</string>
|
||||
<string name="website_domain_name">Webbplats domännamn</string>
|
||||
<string name="target_host">Målvärd</string>
|
||||
<string name="target_port">Målport</string>
|
||||
<string name="use_ssl">Använd SSL</string>
|
||||
<string name="tunnel_summ_use_ssl">Använd SSL för att ansluta till mål</string>
|
||||
<string name="tunnel_parameters">Tunnelparametrar</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="profile_bulk">Bulkanslutning (nedladdningar/webbsidor/BT)</string>
|
||||
<string name="profile_bulk">Bulkanslutning (nedladdningar/webbplatser/BT)</string>
|
||||
<string name="profile_interactive">Interaktiv förbindelse</string>
|
||||
<string name="delay_connect">Fördröj anslutning</string>
|
||||
<string name="tunnel_summ_delay_connect">Aktivera för request/response-anslutningar</string>
|
||||
@ -348,10 +348,10 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
</plurals>
|
||||
<string name="log_entry">Loggpost</string>
|
||||
<string name="copy_logs">Kopiera loggar</string>
|
||||
<string name="i2p_android_error_logs">I2P Android Error loggar</string>
|
||||
<string name="i2p_android_error_logs">I2P Android felloggar</string>
|
||||
<string name="i2p_android_logs">I2P Androidloggar</string>
|
||||
<string name="error_logs_copied_to_clipboard">Error loggar kopierade till clipboard</string>
|
||||
<string name="logs_copied_to_clipboard">Loggar kopierade till clipboard</string>
|
||||
<string name="error_logs_copied_to_clipboard">Error loggar kopierade till urklipp</string>
|
||||
<string name="logs_copied_to_clipboard">Loggar kopierade till urklipp</string>
|
||||
<string name="label_browser_configuration">Browser konfiguration</string>
|
||||
<string name="unset">Återställ</string>
|
||||
</resources>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">I2P logosu</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="label_tunnels">Tüneller</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_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_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="action_search">Arama</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_v_client">İstemci 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_desc">Açıklama</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_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_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_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>
|
||||
@ -332,7 +332,7 @@
|
||||
<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="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="all">Tümü</string>
|
||||
<string name="no_messages">Henüz bir ileti yok</string>
|
||||
|
@ -3,13 +3,12 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
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')
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
version = VERSION_NAME
|
||||
group = GROUP
|
||||
|
||||
repositories {
|
||||
|
@ -1,10 +1,9 @@
|
||||
VERSION_NAME=0.8
|
||||
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
|
||||
@ -12,6 +11,7 @@ POM_DEVELOPER_ID=str4d
|
||||
POM_DEVELOPER_NAME=str4d
|
||||
POM_DEVELOPER_EMAIL=str4d@i2pmail.org
|
||||
|
||||
I2P_VERSION=0.9.29
|
||||
ANDROID_BUILD_TARGET_SDK_VERSION=22
|
||||
ANDROID_BUILD_TOOLS_VERSION=23.0.1
|
||||
ANDROID_BUILD_SDK_VERSION=23
|
||||
ANDROID_BUILD_TOOLS_VERSION=25.0.0
|
||||
ANDROID_BUILD_SDK_VERSION=25
|
||||
|
@ -18,7 +18,7 @@ apply plugin: 'maven'
|
||||
apply plugin: 'signing'
|
||||
|
||||
def isReleaseBuild() {
|
||||
return VERSION_NAME.contains("SNAPSHOT") == false
|
||||
return project.version.contains("SNAPSHOT") == false
|
||||
}
|
||||
|
||||
def getReleaseRepositoryUrl() {
|
||||
@ -47,7 +47,7 @@ afterEvaluate { project ->
|
||||
|
||||
pom.groupId = GROUP
|
||||
pom.artifactId = POM_ARTIFACT_ID
|
||||
pom.version = VERSION_NAME
|
||||
pom.version = project.version
|
||||
|
||||
repository(url: getReleaseRepositoryUrl()) {
|
||||
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
|
||||
@ -95,7 +95,7 @@ afterEvaluate { project ->
|
||||
mavenDeployer {
|
||||
pom.groupId = GROUP
|
||||
pom.artifactId = POM_ARTIFACT_ID
|
||||
pom.version = VERSION_NAME
|
||||
pom.version = project.version
|
||||
|
||||
repository url: "file://${System.properties['user.home']}/.m2/repository"
|
||||
}
|
||||
|
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
|
||||
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.14.1-all.zip
|
||||
|
@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'witness'
|
||||
|
||||
version = "$I2P_VERSION"
|
||||
|
||||
android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||
@ -24,24 +26,9 @@ 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
|
||||
}
|
||||
// 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 "net.i2p:i2p:$I2P_VERSION"
|
||||
compile "net.i2p.client:streaming:$I2P_VERSION"
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
@ -49,14 +36,10 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
||||
'net.i2p:i2p:43f07888e5919a097a1b84efd32c220cd285485d3d39efaa343df90c025283ce',
|
||||
'net.i2p.client:mstreaming:4bb1177ce2a20769c24f7b7cd1a63c654e7e88cab3ffa1a1e1411f4e9a30ebeb',
|
||||
'net.i2p.client:streaming:d94c185e22360f994e9d6da22b3d6d5e40483b83312e47e853072b996a8a5447',
|
||||
]
|
||||
}
|
||||
|
||||
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>
|
@ -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);
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'witness'
|
||||
|
||||
version = '0.9.3'
|
||||
|
||||
android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||
@ -25,7 +27,7 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.android.support:support-v4:23.2.1'
|
||||
compile 'com.android.support:support-v4:25.3.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
@ -33,7 +35,7 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
|
||||
'com.android.support:support-v4:9142d2f386eeb4483050d7f13fcaeddcd01011650f4216208376ff7d4d7a6bf1',
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -24,25 +24,36 @@ 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();
|
||||
}
|
||||
|
||||
private final Context mContext;
|
||||
private final boolean mUseDebug;
|
||||
private boolean mTriedBindState;
|
||||
private IRouterState mStateService;
|
||||
private Callback mCallback;
|
||||
|
||||
public I2PAndroidHelper(Context 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);
|
||||
else
|
||||
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;
|
||||
}
|
||||
|
||||
@ -162,7 +177,8 @@ public class I2PAndroidHelper {
|
||||
* @return true if I2P Android is installed, false otherwise.
|
||||
*/
|
||||
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_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>
|
9
lib/helper/src/main/res/values-sr/strings.xml
Normal file
9
lib/helper/src/main/res/values-sr/strings.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="yes">Да</string>
|
||||
<string name="no">Не</string>
|
||||
<string name="install_i2p_android">Инсталирати И2П за Андроид?</string>
|
||||
<string name="you_must_have_i2p_android">Морате имати И2П за Андроид инсталиран и покренут. Хоћете да га инсталирате?</string>
|
||||
<string name="start_i2p_android">Покренути И2П Андроид?</string>
|
||||
<string name="would_you_like_to_start_i2p_android">Чини се да И2П за Андроид не ради. Желите да га покренете?</string>
|
||||
</resources>
|
@ -8,7 +8,6 @@ task buildRouter(type: Exec) {
|
||||
// TODO an empty routerjars.jar is added to the classpath
|
||||
|
||||
artifacts {
|
||||
'default' file: file('libs/router.jar'), builtBy: buildRouter
|
||||
'default' file: file('libs/newsxml.jar'), builtBy: buildRouter
|
||||
'default' file: file('libs/i2ptunnel.jar'), builtBy: buildRouter
|
||||
'default' file: file('libs/i2ptunnel-ui.jar'), builtBy: buildRouter
|
||||
|
@ -17,16 +17,11 @@
|
||||
<echo message="Using I2P source at ${i2pbase}" />
|
||||
<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.newsxml" file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" />
|
||||
<available property="have.i2ptunnel" file="${i2plib}/i2ptunnel-ui.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">
|
||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildNewsXMLJar" />
|
||||
</target>
|
||||
@ -41,12 +36,9 @@
|
||||
<ant dir="${i2pbase}" inheritall="false" useNativeBasedir="true" target="buildBOB" />
|
||||
</target>
|
||||
|
||||
<target name="buildrouter" depends="buildRouter, buildNewsXMLJar, buildI2PTunnelJar, buildAddressbook, buildBOB">
|
||||
<target name="buildrouter" depends="buildNewsXMLJar, buildI2PTunnelJar, buildAddressbook, buildBOB">
|
||||
<mkdir dir="${jar.libs.dir}" />
|
||||
|
||||
<!-- router -->
|
||||
<copy file="${i2plib}/router.jar" todir="${jar.libs.dir}" />
|
||||
|
||||
<!-- newsxml -->
|
||||
<copy file="${i2pbase}/apps/routerconsole/java/build/newsxml.jar" todir="${jar.libs.dir}" />
|
||||
|
||||
|
Reference in New Issue
Block a user