From 831cf252cd3855d96eaa97cdedbf200627db0ccc Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 09:42:29 +0800 Subject: [PATCH 1/8] add readme file --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..79ff3bc --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Android 平台下的智能代理 From 387a1ddeb7e6c6607ff4899e77730452a32849cc Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 10:24:08 +0800 Subject: [PATCH 2/8] rename module name remove space --- {Smart Proxy X => SmartProxyX}/.gitignore | 0 {Smart Proxy X => SmartProxyX}/build.gradle | 0 {Smart Proxy X => SmartProxyX}/proguard-rules.txt | 0 .../src/main/AndroidManifest.xml | 0 .../src/main/ic_launcher-web.png | Bin .../java/me/smartproxy/core/ChinaIpMaskManager.java | 0 .../src/main/java/me/smartproxy/core/DnsProxy.java | 0 .../me/smartproxy/core/HttpHostHeaderParser.java | 0 .../java/me/smartproxy/core/LocalVpnService.java | 0 .../main/java/me/smartproxy/core/NatSession.java | 0 .../java/me/smartproxy/core/NatSessionManager.java | 0 .../main/java/me/smartproxy/core/ProxyConfig.java | 0 .../java/me/smartproxy/core/TcpProxyServer.java | 0 .../main/java/me/smartproxy/core/TunnelFactory.java | 0 .../src/main/java/me/smartproxy/dns/DnsFlags.java | 0 .../src/main/java/me/smartproxy/dns/DnsHeader.java | 0 .../src/main/java/me/smartproxy/dns/DnsPacket.java | 0 .../src/main/java/me/smartproxy/dns/Question.java | 0 .../src/main/java/me/smartproxy/dns/Resource.java | 0 .../java/me/smartproxy/dns/ResourcePointer.java | 0 .../java/me/smartproxy/tcpip/CommonMethods.java | 0 .../src/main/java/me/smartproxy/tcpip/IPHeader.java | 0 .../main/java/me/smartproxy/tcpip/TCPHeader.java | 0 .../main/java/me/smartproxy/tcpip/UDPHeader.java | 0 .../src/main/java/me/smartproxy/tunnel/Config.java | 0 .../main/java/me/smartproxy/tunnel/IEncryptor.java | 0 .../main/java/me/smartproxy/tunnel/RawTunnel.java | 0 .../src/main/java/me/smartproxy/tunnel/Tunnel.java | 0 .../tunnel/httpconnect/HttpConnectConfig.java | 0 .../tunnel/httpconnect/HttpConnectTunnel.java | 0 .../tunnel/shadowsocks/EncryptorFactory.java | 0 .../tunnel/shadowsocks/ShadowsocksConfig.java | 0 .../tunnel/shadowsocks/ShadowsocksTunnel.java | 0 .../tunnel/shadowsocks/TableEncryptor.java | 0 .../main/java/me/smartproxy/ui/MainActivity.java | 0 .../src/main/res/drawable-hdpi/ic_launcher.png | Bin .../src/main/res/drawable-mdpi/ic_launcher.png | Bin .../src/main/res/drawable-xhdpi/ic_launcher.png | Bin .../src/main/res/drawable-xxhdpi/ic_launcher.png | Bin .../src/main/res/layout/activity_main.xml | 0 .../src/main/res/menu/main_activity_actions.xml | 0 .../src/main/res/raw/ipmask | Bin .../src/main/res/values-sw600dp/dimens.xml | 0 .../src/main/res/values-sw720dp-land/dimens.xml | 0 .../src/main/res/values-v11/styles.xml | 0 .../src/main/res/values-v14/styles.xml | 0 .../src/main/res/values-zh-rCN/strings.xml | 0 .../src/main/res/values/dimens.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/styles.xml | 0 50 files changed, 0 insertions(+), 0 deletions(-) rename {Smart Proxy X => SmartProxyX}/.gitignore (100%) rename {Smart Proxy X => SmartProxyX}/build.gradle (100%) rename {Smart Proxy X => SmartProxyX}/proguard-rules.txt (100%) rename {Smart Proxy X => SmartProxyX}/src/main/AndroidManifest.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/ic_launcher-web.png (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/ChinaIpMaskManager.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/DnsProxy.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/HttpHostHeaderParser.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/LocalVpnService.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/NatSession.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/NatSessionManager.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/ProxyConfig.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/TcpProxyServer.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/core/TunnelFactory.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/DnsFlags.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/DnsHeader.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/DnsPacket.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/Question.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/Resource.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/dns/ResourcePointer.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tcpip/CommonMethods.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tcpip/IPHeader.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tcpip/TCPHeader.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tcpip/UDPHeader.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/Config.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/IEncryptor.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/RawTunnel.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/Tunnel.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectConfig.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectTunnel.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/shadowsocks/EncryptorFactory.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksConfig.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksTunnel.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/tunnel/shadowsocks/TableEncryptor.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/java/me/smartproxy/ui/MainActivity.java (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/drawable-hdpi/ic_launcher.png (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/drawable-mdpi/ic_launcher.png (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/drawable-xhdpi/ic_launcher.png (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/drawable-xxhdpi/ic_launcher.png (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/layout/activity_main.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/menu/main_activity_actions.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/raw/ipmask (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values-sw600dp/dimens.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values-sw720dp-land/dimens.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values-v11/styles.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values-v14/styles.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values-zh-rCN/strings.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values/dimens.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values/strings.xml (100%) rename {Smart Proxy X => SmartProxyX}/src/main/res/values/styles.xml (100%) diff --git a/Smart Proxy X/.gitignore b/SmartProxyX/.gitignore similarity index 100% rename from Smart Proxy X/.gitignore rename to SmartProxyX/.gitignore diff --git a/Smart Proxy X/build.gradle b/SmartProxyX/build.gradle similarity index 100% rename from Smart Proxy X/build.gradle rename to SmartProxyX/build.gradle diff --git a/Smart Proxy X/proguard-rules.txt b/SmartProxyX/proguard-rules.txt similarity index 100% rename from Smart Proxy X/proguard-rules.txt rename to SmartProxyX/proguard-rules.txt diff --git a/Smart Proxy X/src/main/AndroidManifest.xml b/SmartProxyX/src/main/AndroidManifest.xml similarity index 100% rename from Smart Proxy X/src/main/AndroidManifest.xml rename to SmartProxyX/src/main/AndroidManifest.xml diff --git a/Smart Proxy X/src/main/ic_launcher-web.png b/SmartProxyX/src/main/ic_launcher-web.png similarity index 100% rename from Smart Proxy X/src/main/ic_launcher-web.png rename to SmartProxyX/src/main/ic_launcher-web.png diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/ChinaIpMaskManager.java b/SmartProxyX/src/main/java/me/smartproxy/core/ChinaIpMaskManager.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/ChinaIpMaskManager.java rename to SmartProxyX/src/main/java/me/smartproxy/core/ChinaIpMaskManager.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/DnsProxy.java b/SmartProxyX/src/main/java/me/smartproxy/core/DnsProxy.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/DnsProxy.java rename to SmartProxyX/src/main/java/me/smartproxy/core/DnsProxy.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/HttpHostHeaderParser.java b/SmartProxyX/src/main/java/me/smartproxy/core/HttpHostHeaderParser.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/HttpHostHeaderParser.java rename to SmartProxyX/src/main/java/me/smartproxy/core/HttpHostHeaderParser.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/LocalVpnService.java b/SmartProxyX/src/main/java/me/smartproxy/core/LocalVpnService.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/LocalVpnService.java rename to SmartProxyX/src/main/java/me/smartproxy/core/LocalVpnService.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/NatSession.java b/SmartProxyX/src/main/java/me/smartproxy/core/NatSession.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/NatSession.java rename to SmartProxyX/src/main/java/me/smartproxy/core/NatSession.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/NatSessionManager.java b/SmartProxyX/src/main/java/me/smartproxy/core/NatSessionManager.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/NatSessionManager.java rename to SmartProxyX/src/main/java/me/smartproxy/core/NatSessionManager.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/ProxyConfig.java b/SmartProxyX/src/main/java/me/smartproxy/core/ProxyConfig.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/ProxyConfig.java rename to SmartProxyX/src/main/java/me/smartproxy/core/ProxyConfig.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/TcpProxyServer.java b/SmartProxyX/src/main/java/me/smartproxy/core/TcpProxyServer.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/TcpProxyServer.java rename to SmartProxyX/src/main/java/me/smartproxy/core/TcpProxyServer.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/core/TunnelFactory.java b/SmartProxyX/src/main/java/me/smartproxy/core/TunnelFactory.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/core/TunnelFactory.java rename to SmartProxyX/src/main/java/me/smartproxy/core/TunnelFactory.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/DnsFlags.java b/SmartProxyX/src/main/java/me/smartproxy/dns/DnsFlags.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/DnsFlags.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/DnsFlags.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/DnsHeader.java b/SmartProxyX/src/main/java/me/smartproxy/dns/DnsHeader.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/DnsHeader.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/DnsHeader.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/DnsPacket.java b/SmartProxyX/src/main/java/me/smartproxy/dns/DnsPacket.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/DnsPacket.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/DnsPacket.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/Question.java b/SmartProxyX/src/main/java/me/smartproxy/dns/Question.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/Question.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/Question.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/Resource.java b/SmartProxyX/src/main/java/me/smartproxy/dns/Resource.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/Resource.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/Resource.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/dns/ResourcePointer.java b/SmartProxyX/src/main/java/me/smartproxy/dns/ResourcePointer.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/dns/ResourcePointer.java rename to SmartProxyX/src/main/java/me/smartproxy/dns/ResourcePointer.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tcpip/CommonMethods.java b/SmartProxyX/src/main/java/me/smartproxy/tcpip/CommonMethods.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tcpip/CommonMethods.java rename to SmartProxyX/src/main/java/me/smartproxy/tcpip/CommonMethods.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tcpip/IPHeader.java b/SmartProxyX/src/main/java/me/smartproxy/tcpip/IPHeader.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tcpip/IPHeader.java rename to SmartProxyX/src/main/java/me/smartproxy/tcpip/IPHeader.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tcpip/TCPHeader.java b/SmartProxyX/src/main/java/me/smartproxy/tcpip/TCPHeader.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tcpip/TCPHeader.java rename to SmartProxyX/src/main/java/me/smartproxy/tcpip/TCPHeader.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tcpip/UDPHeader.java b/SmartProxyX/src/main/java/me/smartproxy/tcpip/UDPHeader.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tcpip/UDPHeader.java rename to SmartProxyX/src/main/java/me/smartproxy/tcpip/UDPHeader.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/Config.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/Config.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/Config.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/Config.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/IEncryptor.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/IEncryptor.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/IEncryptor.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/IEncryptor.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/RawTunnel.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/RawTunnel.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/RawTunnel.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/RawTunnel.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/Tunnel.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/Tunnel.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/Tunnel.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/Tunnel.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectConfig.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectConfig.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectConfig.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectConfig.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectTunnel.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectTunnel.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectTunnel.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/httpconnect/HttpConnectTunnel.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/EncryptorFactory.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/EncryptorFactory.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/EncryptorFactory.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/EncryptorFactory.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksConfig.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksConfig.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksConfig.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksConfig.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksTunnel.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksTunnel.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksTunnel.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/ShadowsocksTunnel.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/TableEncryptor.java b/SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/TableEncryptor.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/tunnel/shadowsocks/TableEncryptor.java rename to SmartProxyX/src/main/java/me/smartproxy/tunnel/shadowsocks/TableEncryptor.java diff --git a/Smart Proxy X/src/main/java/me/smartproxy/ui/MainActivity.java b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java similarity index 100% rename from Smart Proxy X/src/main/java/me/smartproxy/ui/MainActivity.java rename to SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java diff --git a/Smart Proxy X/src/main/res/drawable-hdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from Smart Proxy X/src/main/res/drawable-hdpi/ic_launcher.png rename to SmartProxyX/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/Smart Proxy X/src/main/res/drawable-mdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from Smart Proxy X/src/main/res/drawable-mdpi/ic_launcher.png rename to SmartProxyX/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/Smart Proxy X/src/main/res/drawable-xhdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from Smart Proxy X/src/main/res/drawable-xhdpi/ic_launcher.png rename to SmartProxyX/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/Smart Proxy X/src/main/res/drawable-xxhdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from Smart Proxy X/src/main/res/drawable-xxhdpi/ic_launcher.png rename to SmartProxyX/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/Smart Proxy X/src/main/res/layout/activity_main.xml b/SmartProxyX/src/main/res/layout/activity_main.xml similarity index 100% rename from Smart Proxy X/src/main/res/layout/activity_main.xml rename to SmartProxyX/src/main/res/layout/activity_main.xml diff --git a/Smart Proxy X/src/main/res/menu/main_activity_actions.xml b/SmartProxyX/src/main/res/menu/main_activity_actions.xml similarity index 100% rename from Smart Proxy X/src/main/res/menu/main_activity_actions.xml rename to SmartProxyX/src/main/res/menu/main_activity_actions.xml diff --git a/Smart Proxy X/src/main/res/raw/ipmask b/SmartProxyX/src/main/res/raw/ipmask similarity index 100% rename from Smart Proxy X/src/main/res/raw/ipmask rename to SmartProxyX/src/main/res/raw/ipmask diff --git a/Smart Proxy X/src/main/res/values-sw600dp/dimens.xml b/SmartProxyX/src/main/res/values-sw600dp/dimens.xml similarity index 100% rename from Smart Proxy X/src/main/res/values-sw600dp/dimens.xml rename to SmartProxyX/src/main/res/values-sw600dp/dimens.xml diff --git a/Smart Proxy X/src/main/res/values-sw720dp-land/dimens.xml b/SmartProxyX/src/main/res/values-sw720dp-land/dimens.xml similarity index 100% rename from Smart Proxy X/src/main/res/values-sw720dp-land/dimens.xml rename to SmartProxyX/src/main/res/values-sw720dp-land/dimens.xml diff --git a/Smart Proxy X/src/main/res/values-v11/styles.xml b/SmartProxyX/src/main/res/values-v11/styles.xml similarity index 100% rename from Smart Proxy X/src/main/res/values-v11/styles.xml rename to SmartProxyX/src/main/res/values-v11/styles.xml diff --git a/Smart Proxy X/src/main/res/values-v14/styles.xml b/SmartProxyX/src/main/res/values-v14/styles.xml similarity index 100% rename from Smart Proxy X/src/main/res/values-v14/styles.xml rename to SmartProxyX/src/main/res/values-v14/styles.xml diff --git a/Smart Proxy X/src/main/res/values-zh-rCN/strings.xml b/SmartProxyX/src/main/res/values-zh-rCN/strings.xml similarity index 100% rename from Smart Proxy X/src/main/res/values-zh-rCN/strings.xml rename to SmartProxyX/src/main/res/values-zh-rCN/strings.xml diff --git a/Smart Proxy X/src/main/res/values/dimens.xml b/SmartProxyX/src/main/res/values/dimens.xml similarity index 100% rename from Smart Proxy X/src/main/res/values/dimens.xml rename to SmartProxyX/src/main/res/values/dimens.xml diff --git a/Smart Proxy X/src/main/res/values/strings.xml b/SmartProxyX/src/main/res/values/strings.xml similarity index 100% rename from Smart Proxy X/src/main/res/values/strings.xml rename to SmartProxyX/src/main/res/values/strings.xml diff --git a/Smart Proxy X/src/main/res/values/styles.xml b/SmartProxyX/src/main/res/values/styles.xml similarity index 100% rename from Smart Proxy X/src/main/res/values/styles.xml rename to SmartProxyX/src/main/res/values/styles.xml From 690749c18a7f7eb0225e7d99e667f9cc13edb63a Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 10:24:53 +0800 Subject: [PATCH 3/8] update gradle build config --- SmartProxyX/build.gradle | 28 +++++++++++----------------- build.gradle | 4 ++-- settings.gradle | 2 +- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/SmartProxyX/build.gradle b/SmartProxyX/build.gradle index 0bdfe1e..aca1d54 100644 --- a/SmartProxyX/build.gradle +++ b/SmartProxyX/build.gradle @@ -1,30 +1,21 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:0.9.+' - } -} -apply plugin: 'android' +apply plugin: 'com.android.application' repositories { - mavenCentral() - + jcenter() maven { url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/" } } android { - compileSdkVersion 19 - buildToolsVersion "19.0.3" + compileSdkVersion 21 + buildToolsVersion "21.1.1" defaultConfig { minSdkVersion 14 - targetSdkVersion 19 - versionCode 7 - versionName "1.6" + targetSdkVersion 21 + versionCode 8 + versionName "1.7" } signingConfigs { @@ -38,12 +29,15 @@ android { buildTypes { release { - runProguard false + minifyEnabled false // runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.release } } } +android.applicationVariants.all { variant -> + variant.outputs[0].outputFile = file("$project.buildDir/${variant.name}.apk") +} dependencies { compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar' diff --git a/build.gradle b/build.gradle index 80eec1a..0299b4a 100644 --- a/build.gradle +++ b/build.gradle @@ -5,12 +5,12 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.9.+' + classpath 'com.android.tools.build:gradle:0.14.4' } } allprojects { repositories { - mavenCentral() + jcenter() } } diff --git a/settings.gradle b/settings.gradle index 0abd40d..7ac3f43 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':Smart Proxy X' +include ':SmartProxyX' From 6e95dd43f90bc6ff3b74b2548fd8dabd432f9fa7 Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 10:48:36 +0800 Subject: [PATCH 4/8] update ic_launcher to material style --- .../main/res/drawable-hdpi/ic_launcher.png | Bin 3245 -> 3001 bytes .../main/res/drawable-mdpi/ic_launcher.png | Bin 2105 -> 1913 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 4162 -> 4089 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 6618 -> 6473 bytes .../src/main/res/values-v11/styles.xml | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 SmartProxyX/src/main/res/drawable-hdpi/ic_launcher.png mode change 100644 => 100755 SmartProxyX/src/main/res/drawable-mdpi/ic_launcher.png mode change 100644 => 100755 SmartProxyX/src/main/res/drawable-xhdpi/ic_launcher.png mode change 100644 => 100755 SmartProxyX/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/SmartProxyX/src/main/res/drawable-hdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-hdpi/ic_launcher.png old mode 100644 new mode 100755 index c0e83ad9da042b48e5bbfe314df438e8a74dcc28..db8d92154619b6a8ac8e8af9a690ba490e55b7d4 GIT binary patch literal 3001 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 literal 3245 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 M07*qoM6N<$f}39E2><{9 diff --git a/SmartProxyX/src/main/res/drawable-xxhdpi/ic_launcher.png b/SmartProxyX/src/main/res/drawable-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 index 2e18b24a2e7e1a8065a7c516bc405ddfcb29a94e..62eff6b5a261e23f71e8ff299e66c1da7176549f GIT binary patch literal 6473 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 O8-SjcA-qn*A?km?NQYej diff --git a/SmartProxyX/src/main/res/values-v11/styles.xml b/SmartProxyX/src/main/res/values-v11/styles.xml index 3c02242..935a89c 100644 --- a/SmartProxyX/src/main/res/values-v11/styles.xml +++ b/SmartProxyX/src/main/res/values-v11/styles.xml @@ -4,7 +4,7 @@ Base application theme for API 11+. This theme completely replaces AppBaseTheme from res/values/styles.xml on API 11+ devices. --> - From 42382a7b696b958ddf41c8655d5384e2ac4fe7a0 Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 11:24:51 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E9=80=82=E9=85=8DMeterial=20Design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SmartProxyX/build.gradle | 1 + .../java/me/smartproxy/ui/MainActivity.java | 9 +++++---- .../src/main/res/menu/main_activity_actions.xml | 17 +++++++++++++---- SmartProxyX/src/main/res/values-v11/styles.xml | 11 ----------- SmartProxyX/src/main/res/values-v14/styles.xml | 2 +- SmartProxyX/src/main/res/values-v21/styles.xml | 6 ++++++ SmartProxyX/src/main/res/values/styles.xml | 8 +++++++- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 8 files changed, 35 insertions(+), 23 deletions(-) delete mode 100644 SmartProxyX/src/main/res/values-v11/styles.xml create mode 100644 SmartProxyX/src/main/res/values-v21/styles.xml diff --git a/SmartProxyX/build.gradle b/SmartProxyX/build.gradle index aca1d54..f7a3bcd 100644 --- a/SmartProxyX/build.gradle +++ b/SmartProxyX/build.gradle @@ -40,6 +40,7 @@ android.applicationVariants.all { variant -> } dependencies { + compile "com.android.support:appcompat-v7:21.0.2" compile 'com.embarkmobile:zxing-android-minimal:2.0.0@aar' compile 'com.embarkmobile:zxing-android-integration:2.0.0@aar' compile 'com.google.zxing:core:3.0.1' diff --git a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java index 31d050b..2c24c34 100644 --- a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java +++ b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java @@ -1,7 +1,7 @@ package me.smartproxy.ui; import android.annotation.SuppressLint; -import android.app.Activity; +import android.support.v7.app.ActionBarActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; @@ -11,6 +11,7 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; +import android.support.v7.widget.SwitchCompat; import android.text.InputType; import android.text.TextUtils; import android.util.Log; @@ -27,7 +28,7 @@ import java.io.File; import java.util.Calendar; -public class MainActivity extends Activity implements +public class MainActivity extends ActionBarActivity implements View.OnClickListener, OnCheckedChangeListener, LocalVpnService.onStatusChangedListener { @@ -40,7 +41,7 @@ public class MainActivity extends Activity implements private static final int START_VPN_SERVICE_REQUEST_CODE = 1985; - private Switch switchProxy; + private SwitchCompat switchProxy; private TextView textViewLog; private ScrollView scrollViewLog; private TextView textViewConfigUrl; @@ -291,7 +292,7 @@ public boolean onCreateOptionsMenu(Menu menu) { return false; } - switchProxy = (Switch) menuItem.getActionView(); + switchProxy = (SwitchCompat) menuItem.getActionView(); if (switchProxy == null) { return false; } diff --git a/SmartProxyX/src/main/res/menu/main_activity_actions.xml b/SmartProxyX/src/main/res/menu/main_activity_actions.xml index 41277c7..8a82334 100644 --- a/SmartProxyX/src/main/res/menu/main_activity_actions.xml +++ b/SmartProxyX/src/main/res/menu/main_activity_actions.xml @@ -1,5 +1,14 @@ - - - - + + + + diff --git a/SmartProxyX/src/main/res/values-v11/styles.xml b/SmartProxyX/src/main/res/values-v11/styles.xml deleted file mode 100644 index 935a89c..0000000 --- a/SmartProxyX/src/main/res/values-v11/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - diff --git a/SmartProxyX/src/main/res/values-v14/styles.xml b/SmartProxyX/src/main/res/values-v14/styles.xml index 3e61a52..0cf2919 100644 --- a/SmartProxyX/src/main/res/values-v14/styles.xml +++ b/SmartProxyX/src/main/res/values-v14/styles.xml @@ -5,7 +5,7 @@ AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. --> - diff --git a/SmartProxyX/src/main/res/values-v21/styles.xml b/SmartProxyX/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..28fc72e --- /dev/null +++ b/SmartProxyX/src/main/res/values-v21/styles.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/SmartProxyX/src/main/res/values/styles.xml b/SmartProxyX/src/main/res/values/styles.xml index 7c28a60..1c0d24e 100644 --- a/SmartProxyX/src/main/res/values/styles.xml +++ b/SmartProxyX/src/main/res/values/styles.xml @@ -1,10 +1,13 @@ + #3f51e5 + #334ac5 + #009688 - diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5de946b..649bd03 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Apr 10 15:27:10 PDT 2013 +#Sun Nov 23 11:09:55 GMT+08:00 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip From 122d3ca34b7c1663bae9121b5cf40ef69ffea503 Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 11:33:26 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BD=BF=E7=94=A8apply=20=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3commit=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java index 2c24c34..9801a6b 100644 --- a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java +++ b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java @@ -80,7 +80,7 @@ void setConfigUrl(String configUrl) { SharedPreferences preferences = getSharedPreferences("SmartProxy", MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString(CONFIG_URL_KEY, configUrl); - editor.commit(); + editor.apply(); } String getVersionName() { From f14f17ffc5244e9fb9d7801bac24d2f34d2fdad3 Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 11:35:40 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8BuildCo?= =?UTF-8?q?nfig=20=E6=9D=A5=E7=BC=96=E8=AF=91=E7=9A=84=E8=8E=B7=E5=BE=97?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/smartproxy/ui/MainActivity.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java index 9801a6b..ea8f941 100644 --- a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java +++ b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java @@ -22,6 +22,8 @@ import android.widget.CompoundButton.OnCheckedChangeListener; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; + +import me.smartproxy.BuildConfig; import me.smartproxy.R; import me.smartproxy.core.LocalVpnService; @@ -83,21 +85,6 @@ void setConfigUrl(String configUrl) { editor.apply(); } - String getVersionName() { - PackageManager packageManager = getPackageManager(); - if (packageManager == null) { - Log.e(TAG, "null package manager is impossible"); - return null; - } - - try { - return packageManager.getPackageInfo(getPackageName(), 0).versionName; - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "package not found is impossible", e); - return null; - } - } - boolean isValidUrl(String url) { try { if (url == null || url.isEmpty()) @@ -308,7 +295,7 @@ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_about: new AlertDialog.Builder(this) - .setTitle(getString(R.string.app_name) + getVersionName()) + .setTitle(getString(R.string.app_name) + BuildConfig.VERSION_NAME) .setMessage(R.string.about_info) .setPositiveButton(R.string.btn_ok, null) .setNegativeButton(R.string.btn_more, new OnClickListener() { From 164ea76e3acfb87b83a30e2b4db17b12be7a3aaa Mon Sep 17 00:00:00 2001 From: banxi1988 Date: Sun, 23 Nov 2014 12:51:32 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=84=E7=90=86onActiv?= =?UTF-8?q?ityResult=20=E7=BB=93=E6=9E=9C=20=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=80=BB=E8=BE=91.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/me/smartproxy/ui/MainActivity.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java index ea8f941..d338aec 100644 --- a/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java +++ b/SmartProxyX/src/main/java/me/smartproxy/ui/MainActivity.java @@ -252,22 +252,23 @@ protected void onActivityResult(int requestCode, int resultCode, Intent intent) switchProxy.setEnabled(true); onLogReceived("canceled."); } - return; - } - - IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); - if (scanResult != null) { - String configUrl = scanResult.getContents(); - if (isValidUrl(configUrl)) { - setConfigUrl(configUrl); - textViewConfigUrl.setText(configUrl); - } else { - Toast.makeText(MainActivity.this, R.string.err_invalid_url, Toast.LENGTH_SHORT).show(); + }else if (requestCode == IntentIntegrator.REQUEST_CODE) { + IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent); + if (scanResult != null) { + String configUrl = scanResult.getContents(); + if (isValidUrl(configUrl)) { + setConfigUrl(configUrl); + textViewConfigUrl.setText(configUrl); + } else { + Toast.makeText(MainActivity.this, R.string.err_invalid_url, Toast.LENGTH_SHORT).show(); + } } - return; + }else{ + super.onActivityResult(requestCode, resultCode, intent); } - super.onActivityResult(requestCode, resultCode, intent); + + } @Override