Commit e5ca4722 authored by Max Lv's avatar Max Lv

Merge branch 'master' of github.com:shadowsocks/shadowsocks-android

parents a5014a62 26f87584
...@@ -2,7 +2,7 @@ language: java ...@@ -2,7 +2,7 @@ language: java
before_install: before_install:
- wget http://dl.google.com/android/android-sdk_r21-linux.tgz - wget http://dl.google.com/android/android-sdk_r21-linux.tgz
- tar -zxf android-sdk_r21-linux.tgz - tar -zxf android-sdk_r21-linux.tgz
- export ANDROID_HOME=~/builds/madeye/shadowsocks-android/android-sdk-linux - export ANDROID_HOME=~/builds/shadowsocks/shadowsocks-android/android-sdk-linux
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
- android update sdk --filter tools,platform-tools,android-16,addon-google_apis-google-16,extra-android-support,extra-google-admob_ads_sdk,extra-google-analytics_sdk,extra-google-gcm,extra-google-play_apk_expansion,extra-google-play_billing,extra-google-play_licensing --no-ui --force --no-https -a - android update sdk --filter tools,platform-tools,android-16,addon-google_apis-google-16,extra-android-support,extra-google-admob_ads_sdk,extra-google-analytics_sdk,extra-google-gcm,extra-google-play_apk_expansion,extra-google-play_billing,extra-google-play_licensing --no-ui --force --no-https -a
install: install:
......
...@@ -4,7 +4,7 @@ A shadowsocks client for Android, powered by amazing nodejs/golang/libev. ...@@ -4,7 +4,7 @@ A shadowsocks client for Android, powered by amazing nodejs/golang/libev.
## TRAVIS CI STATUS ## TRAVIS CI STATUS
[![Build Status](https://secure.travis-ci.org/madeye/shadowsocks-android.png)](http://travis-ci.org/madeye/shadowsocks-android) [![Build Status](https://secure.travis-ci.org/shadowsocks/shadowsocks-android.png)](http://travis-ci.org/shadowsocks/shadowsocks-android)
[Nightly Builds](http://buildbot.sinaapp.com) [Nightly Builds](http://buildbot.sinaapp.com)
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/image" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:src="@drawable/ic_launcher" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/down_tv" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:textSize="14sp"
android:paddingBottom="4dp" android:text="@string/downloading" />
<ProgressBar android:id="@+id/pb" android:layout_width="200dp"
android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" />
</LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="service_running">Running in the background.</string>
<string name="app_name">Shadowsocks</string> <string name="app_name">Shadowsocks</string>
<string name="forward_success">Service started.</string>
<string name="forward_fail">Service failed to start.</string> <!-- function category -->
<string name="service_stopped">Shadowsocks service stopped.</string>
<string name="auto_reconnected">Auto Reconnected</string>
<string name="reconnect_success">Reconnected successfully.</string>
<string name="already_stopped">Service has been stopped already.</string>
<string name="already_running">Service has been started already.</string>
<string name="forward_stop">Proxy Service Stopped</string>
<string name="service_failed">Please check your network and login information</string>
<string name="reconnect_fail">Cannot reconnect</string>
<string name="ok_iknow">OK, I know</string>
<string name="proxy">Server</string>
<string name="port">Local Port</string>
<string name="sitekey">Password</string>
<string name="auto_connect">Auto Connect</string>
<string name="auto_reconnect">Auto reconnect</string>
<string name="auto_set_proxy">Global Proxy</string>
<string name="disconnect">Disconnect</string>
<string name="connect">Connect</string>
<string name="feedback">Feedback @ofmax</string>
<string name="proxy_cat">Shadowsocks Settings</string>
<string name="fearute_cat">Feature Settings</string>
<string name="service_controller">Proxy Switch</string>
<string name="function_cat">Service Controller</string> <string name="function_cat">Service Controller</string>
<string name="service_controller">Proxy Switch</string>
<string name="service_summary">Enable / Disable Proxy</string> <string name="service_summary">Enable / Disable Proxy</string>
<!-- proxy category -->
<string name="proxy_cat">Shadowsocks Settings</string>
<string name="proxy">Server</string>
<string name="proxy_summary">Hostname of your Shadowsocks server</string> <string name="proxy_summary">Hostname of your Shadowsocks server</string>
<string name="remote_port">Remote Port</string>
<string name="remote_port_summary">Remote port of shadowsocks server.</string>
<string name="port">Local Port</string>
<string name="port_summary">Local port listening on</string> <string name="port_summary">Local port listening on</string>
<string name="sitekey">Password</string>
<string name="sitekey_summary">Password of your Shadowsocks server</string> <string name="sitekey_summary">Password of your Shadowsocks server</string>
<string name="port_alert">The port number should be greater than 1024</string>
<string name="auto_connect_summary">Start Shadowsocks at the startup</string>
<string name="auto_set_proxy_summary">Set up system wide proxy (require ROOT permission and
IPTABLES)
</string>
<string name="port_empty">Port should not be empty</string>
<string name="proxy_empty">Proxy should not be empty</string>
<string name="install_cat">Package configure</string>
<string name="isInstalled">Install / Uninstall</string>
<string name="download">Downloading</string>
<string name="downloading">Downloading, Patient Please...</string>
<string name="isInstalled_summary">Install / Uninstall extra packages (need SD card)</string>
<string name="install_alert">Please install dependent module first! (Scroll to
the bottom, and select to install)
</string>
<string name="sdcard_alert">Please make sure you have a SD CARD!</string>
<string name="recovery">Reset</string>
<string name="unzip">Unzipping...</string>
<string name="proxyed_apps">Individual Proxy</string>
<string name="proxyed_apps_summary">Set individual proxy for apps (needs ROOT permission and IPTABLES support)
</string>
<string name="bypass_apps">Bypass Mode</string>
<string name="bypass_apps_summary">Enable this option to bypass selected apps</string>
<string name="proxyed_help">Select apps to use with Shadowsocks:</string>
<string name="crash_alert">An unexpected exit detected, context has been
recovered
</string>
<string name="copy_rights">Shadowsocks is an open source socks proxy.\n\nYou can find more details here:\ngithub.com/shadowsocks
</string>
<string name="about">About</string>
<string name="enc_method">Encrypt Method</string> <string name="enc_method">Encrypt Method</string>
<array name="enc_method_entry"> <array name="enc_method_entry">
<item>Table</item> <item>Table</item>
...@@ -72,105 +28,98 @@ ...@@ -72,105 +28,98 @@
<item>rc4</item> <item>rc4</item>
</array> </array>
<!-- feature category -->
<string name="fearute_cat">Feature Settings</string>
<string name="http_proxy">HTTP Proxy</string> <string name="http_proxy">HTTP Proxy</string>
<string name="http_proxy_summary">Local HTTP Proxy</string> <string name="http_proxy_summary">Local HTTP Proxy</string>
<string name="dns_proxy">DNS Proxy</string>
<string name="dns_proxy_summary">Redirect DNS queries to remote server.</string>
<string name="auto_set_gfwlist">CHN Route</string>
<string name="auto_set_gfwlist_summary">Bypass all sites located in China
</string>
<string name="auto_set_proxy">Global Proxy</string>
<string name="auto_set_proxy_summary">Set up system wide proxy
</string>
<string name="proxyed_apps">Individual Proxy</string>
<string name="proxyed_apps_summary">Set individual proxy for apps
</string>
<string name="proxyed_help">Select apps to use with Shadowsocks:</string>
<string name="bypass_apps">Bypass Mode</string>
<string name="bypass_apps_summary">Enable this option to bypass selected apps</string>
<string name="auto_connect">Auto Connect</string>
<string name="auto_connect_summary">Start Shadowsocks at the startup</string>
<string-array name="gfw_list"> <!-- notification category -->
<item>209.0.0.0/8</item> <string name="forward_success">Shadowsocks started</string>
<item>72.0.0.0/8</item> <string name="service_running">Running in the background</string>
<item>74.0.0.0/8</item> <string name="forward_fail">Shadowsocks failed to start</string>
<item>68.0.0.0/8</item> <string name="service_stopped">Shadowsocks stopped</string>
<item>69.0.0.0/8</item> <string name="forward_stop">Shadowsocks stopped</string>
<item>66.0.0.0/8</item> <string name="service_failed">Please check your network status and try again.</string>
<item>64.0.0.0/8</item>
<item>199.0.0.0/8</item> <!-- alert category -->
<item>168.0.0.0/8</item> <string name="ok_iknow">OK</string>
<item>67.0.0.0/8</item> <string name="port_alert">The port number should be greater than 1024</string>
<item>173.0.0.0/8</item> <string name="port_empty">Port should not be empty</string>
<item>202.248.0.0/16</item> <string name="proxy_empty">Proxy should not be empty</string>
</string-array> <string name="crash_alert">An unexpected exit detected, context has been recovered
</string>
<string name="connecting">Connecting…</string>
<string name="initializing">Initializing…</string>
<string name="recovering">Reseting…</string>
<string name="loading">Loading app list…</string>
<!-- menu category -->
<string name="recovery">Reset</string>
<string name="about">About</string>
<string name="copy_rights">Shadowsocks is an open source socks proxy.\n\nYou can find more details
here:\ngithub.com/shadowsocks
</string>
<!-- array category -->
<string-array name="chn_list"> <string-array name="chn_list">
<item>1.0.0.0/8</item> <item>0.0.0.0/7</item>
<item>14.0.0.0/8</item> <item>14.0.0.0/8</item>
<item>27.0.0.0/8</item> <item>27.0.0.0/8</item>
<item>36.0.0.0/8</item> <item>36.0.0.0/8</item>
<item>39.0.0.0/8</item> <item>39.0.0.0/8</item>
<item>42.0.0.0/8</item> <item>42.0.0.0/7</item>
<item>49.0.0.0/8</item> <item>49.0.0.0/8</item>
<item>58.0.0.0/7</item> <item>58.0.0.0/7</item>
<item>60.0.0.0/7</item> <item>60.0.0.0/7</item>
<item>96.0.0.0/3</item> <item>101.0.0.0/8</item>
<item>128.0.0.0/4</item> <item>103.0.0.0/8</item>
<item>106.0.0.0/8</item>
<item>110.0.0.0/7</item>
<item>112.0.0.0/4</item>
<item>134.128.0.0/9</item>
<item>139.0.0.0/9</item>
<item>139.128.0.0/9</item>
<item>140.0.0.0/9</item>
<item>140.128.0.0/9</item>
<item>144.0.0.0/9</item>
<item>144.128.0.0/9</item>
<item>150.0.0.0/8</item>
<item>153.0.0.0/8</item>
<item>157.0.0.0/9</item>
<item>157.128.0.0/9</item>
<item>159.128.0.0/9</item>
<item>161.128.0.0/9</item>
<item>162.0.0.0/9</item>
<item>163.0.0.0/8</item>
<item>166.0.0.0/9</item>
<item>167.128.0.0/9</item>
<item>168.128.0.0/9</item>
<item>171.0.0.0/8</item> <item>171.0.0.0/8</item>
<item>175.0.0.0/8</item> <item>175.0.0.0/8</item>
<item>180.0.0.0/8</item> <item>180.0.0.0/8</item>
<item>182.0.0.0/8</item> <item>182.0.0.0/7</item>
<item>183.0.0.0/8</item> <item>192.112.0.0/12</item>
<item>202.0.0.0/8</item> <item>192.128.0.0/9</item>
<item>203.0.0.0/8</item> <item>202.0.0.0/7</item>
<item>210.0.0.0/8</item> <item>210.0.0.0/7</item>
<item>211.0.0.0/8</item> <item>218.0.0.0/7</item>
<item>216.0.0.0/5</item> <item>220.0.0.0/6</item>
<item>192.168.0.0/16</item>
<item>10.0.0.0/8</item>
<item>172.16.0.0/12</item>
</string-array> </string-array>
<string name="mirror_list">
d3dxZ3R4eHByb3h5LTF8d3dxZ3R4eHByb3h5LTJ8d3dxZ3R4eHByb3h5LTN8d3dxZ3R4eHByb3h5LTR8d3dxZ3R4eHByb3h5LTV8d3dxZ3R4eHByb3h5LTZ8d3dxZ3R4eHByb3h5LTd8d3dxZ3R4eHByb3h5LTh8d3dxZ3R4eHByb3h5LTl8d3dxZ3R4eHByb3h5LTEwfHd3cWd0eHhwcm94eTEtMXx3d3FndHh4cHJveHkxLTJ8d3dxZ3R4eHByb3h5MS0zfHd3cWd0eHhwcm94eTEtNHx3d3FndHh4cHJveHkxLTV8d3dxZ3R4eHByb3h5MS02fHd3cWd0eHhwcm94eTEtN3x3d3FndHh4cHJveHkxLTh8d3dxZ3R4eHByb3h5MS05fHd3cWd0eHhwcm94eTEtMTB8d3dxZ3R4eHByb3h5Mi0xfHd3cWd0eHhwcm94eTItMnx3d3FndHh4cHJveHkyLTN8d3dxZ3R4eHByb3h5Mi00fHd3cWd0eHhwcm94eTItNXx3d3FndHh4cHJveHkyLTZ8d3dxZ3R4eHByb3h5Mi03fHd3cWd0eHhwcm94eTItOHx3d3FndHh4cHJveHkyLTl8d3dxZ3R4eHByb3h5Mi0xMA==
</string>
<string name="mirror_path">2</string>
<string name="mirror_sitekey">wwqgtxx-goagent</string>
<string name="connecting">Connecting…</string>
<string name="initializing">Initializing…</string>
<string name="recovering">Reseting…</string>
<string name="https_alert">Please modify your proxy host to start with
"https://"
</string>
<string name="https_proxy">HTTPS Proxy</string>
<string name="https_proxy_summary">Proxy HTTPS through GAE, not compatible with most
apps
</string>
<!-- settings notification category -->
<string name="notif_cat">Notification Settings</string>
<string name="notif_ringtone_title">Ringtone</string>
<string name="notif_ringtone_summary">Select the notification\'s ringtone</string>
<string name="notif_vibrate_title">Vibrate</string>
<string name="notif_vibrate_summary">Also vibrate when connection status changes</string>
<string name="loading">Loading app list…</string>
<string name="enable_market">Market Proxy</string>
<string name="enable_market_summary">Only for users in China, help to update app from
Android Market (need reboot)
</string>
<string name="auto_set_gfwlist">CHN Route</string>
<string name="auto_set_gfwlist_summary">Bypass all sites located in China (needs ROOT
permission and
IPTABLES support)
</string>
<string name="toast_start">Connecting to Shadowsocks</string>
<string name="toast_restart">Reconnecting to Shadowsocks</string>
<string name="browser">GAE Browser</string>
<string name="browser_summary">Start a browser through GAE proxy, for users
without root permission or iptables support
</string>
<string name="default_proxy_alert">You are using the default proxy, which has a quota
of only 10G bandwidth every day. Please deploy your own
servers to get
more free bandwidth quota with Google App Engine.\n\nYou can find more
information here: https://github.com/phus/goagent
</string>
<string name="warning">Warning</string>
<string name="system_proxy">System Proxy</string>
<string name="system_proxy_summary">Enable system wide proxy automatically without ROOT permission,
only works for Wifi on Android 4.0 and above.</string>
<string name="remote_port">Remote Port</string>
<string name="remote_port_summary">Remote port of shadowsocks server.</string>
<string name="dns_proxy">DNS Proxy</string>
<string name="dns_proxy_summary">Redirect DNS queries to remote server.</string>
</resources> </resources>
...@@ -176,12 +176,10 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -176,12 +176,10 @@ public class Shadowsocks extends PreferenceActivity implements
isBypassAppsCheck = (CheckBoxPreference) findPreference("isBypassApps"); isBypassAppsCheck = (CheckBoxPreference) findPreference("isBypassApps");
isRunningCheck = (CheckBoxPreference) findPreference("isRunning"); isRunningCheck = (CheckBoxPreference) findPreference("isRunning");
if (mProgressDialog == null) if (mProgressDialog == null) {
mProgressDialog = ProgressDialog.show(this, "", mProgressDialog = ProgressDialog.show(this, "",
getString(R.string.initializing), true, true); getString(R.string.initializing), true, true);
}
final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(this);
new Thread() { new Thread() {
@Override @Override
...@@ -197,14 +195,14 @@ public class Shadowsocks extends PreferenceActivity implements ...@@ -197,14 +195,14 @@ public class Shadowsocks extends PreferenceActivity implements
versionName = "NONE"; versionName = "NONE";
} }
if (!settings.getBoolean(versionName, false)) { final SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(Shadowsocks.this);
if (!settings.getBoolean(versionName, false)) {
Editor edit = settings.edit(); Editor edit = settings.edit();
edit.putBoolean(versionName, true); edit.putBoolean(versionName, true);
edit.commit(); edit.commit();
reset(); reset();
} }
handler.sendEmptyMessage(MSG_INITIAL_FINISH); handler.sendEmptyMessage(MSG_INITIAL_FINISH);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment