Browse Source

Make most Android Library callbacks optional to implement

Rod Hynes 6 years ago
parent
commit
7d11430e78

+ 24 - 22
MobileLibrary/Android/PsiphonTunnel/PsiphonTunnel.java

@@ -70,31 +70,33 @@ import psi.PsiphonProvider;
 public class PsiphonTunnel {
 
     public interface HostService {
+
         public String getAppName();
         public Context getContext();
-        public Object getVpnService(); // Object must be a VpnService (Android < 4 cannot reference this class name)
-        public Object newVpnServiceBuilder(); // Object must be a VpnService.Builder (Android < 4 cannot reference this class name)
         public String getPsiphonConfig();
-        public void onDiagnosticMessage(String message);
-        public void onAvailableEgressRegions(List<String> regions);
-        public void onSocksProxyPortInUse(int port);
-        public void onHttpProxyPortInUse(int port);
-        public void onListeningSocksProxyPort(int port);
-        public void onListeningHttpProxyPort(int port);
-        public void onUpstreamProxyError(String message);
-        public void onConnecting();
-        public void onConnected();
-        public void onHomepage(String url);
-        public void onClientRegion(String region);
-        public void onClientUpgradeDownloaded(String filename);
-        public void onClientIsLatestVersion();
-        public void onSplitTunnelRegion(String region);
-        public void onUntunneledAddress(String address);
-        public void onBytesTransferred(long sent, long received);
-        public void onStartedWaitingForNetworkConnectivity();
-        public void onStoppedWaitingForNetworkConnectivity();
-        public void onActiveAuthorizationIDs(List<String> authorizations);
-        public void onExiting();
+
+        default public Object getVpnService() {return null;} // Object must be a VpnService (Android < 4 cannot reference this class name)
+        default public Object newVpnServiceBuilder() {return null;} // Object must be a VpnService.Builder (Android < 4 cannot reference this class name)
+        default public void onDiagnosticMessage(String message) {}
+        default public void onAvailableEgressRegions(List<String> regions) {}
+        default public void onSocksProxyPortInUse(int port) {}
+        default public void onHttpProxyPortInUse(int port) {}
+        default public void onListeningSocksProxyPort(int port) {}
+        default public void onListeningHttpProxyPort(int port) {}
+        default public void onUpstreamProxyError(String message) {}
+        default public void onConnecting() {}
+        default public void onConnected() {}
+        default public void onHomepage(String url) {}
+        default public void onClientRegion(String region) {}
+        default public void onClientUpgradeDownloaded(String filename) {}
+        default public void onClientIsLatestVersion() {}
+        default public void onSplitTunnelRegion(String region) {}
+        default public void onUntunneledAddress(String address) {}
+        default public void onBytesTransferred(long sent, long received) {}
+        default public void onStartedWaitingForNetworkConnectivity() {}
+        default public void onStoppedWaitingForNetworkConnectivity() {}
+        default public void onActiveAuthorizationIDs(List<String> authorizations) {}
+        default public void onExiting() {}
     }
 
     private final HostService mHostService;

+ 1 - 1
MobileLibrary/Android/make.bash

@@ -73,7 +73,7 @@ yes | cp -f PsiphonTunnel/libs/arm64-v8a/libtun2socks.so build-tmp/psi/jni/arm64
 yes | cp -f PsiphonTunnel/libs/x86/libtun2socks.so build-tmp/psi/jni/x86/libtun2socks.so
 yes | cp -f PsiphonTunnel/libs/x86_64/libtun2socks.so build-tmp/psi/jni/x86_64/libtun2socks.so
 
-javac -d build-tmp -bootclasspath $ANDROID_HOME/platforms/android-23/android.jar -source 1.7 -target 1.7 -classpath build-tmp/psi/classes.jar:$ANDROID_HOME/platforms/android-23/optional/org.apache.http.legacy.jar PsiphonTunnel/PsiphonTunnel.java
+javac -d build-tmp -bootclasspath $ANDROID_HOME/platforms/android-23/android.jar -source 1.8 -target 1.8 -classpath build-tmp/psi/classes.jar PsiphonTunnel/PsiphonTunnel.java
 if [ $? != 0 ]; then
   echo "..'javac' compiling PsiphonTunnel failed, exiting"
   exit $?