Selaa lähdekoodia

Use new AAR Android Library in Psibot

* Configure gradle to load AAR from a "flat repo" in Psibot/app/libs
  * Note: unlike the "File >> New Module >> Import .JAR or .AAR package" method,
    this configuration should use new versions of the AAR on every build, to
    assist with library development.
* Explicitly call System.loadLibrary("gojni") due to
  https://github.com/golang/mobile/commit/81444057629c7d095df98b4bdf5916362c07a149
Rod Hynes 10 vuotta sitten
vanhempi
sitoutus
6cc880408b

+ 2 - 0
SampleApps/Psibot/app/app.iml

@@ -71,6 +71,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/go.psi/psi/0.0.8/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
@@ -88,5 +89,6 @@
     </content>
     <orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" exported="" name="psi-0.0.8" level="project" />
   </component>
 </module>

+ 7 - 0
SampleApps/Psibot/app/build.gradle

@@ -19,6 +19,13 @@ android {
     }
 }
 
+repositories {
+    flatDir {
+        dirs 'libs'
+    }
+}
+
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
+    compile 'go.psi:psi:0.0.8@aar'
 }

+ 2 - 2
SampleApps/Psibot/app/src/main/java/ca/psiphon/PsiphonVpn.java

@@ -48,7 +48,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import go.Go;
 import go.psi.Psi;
 
 public class PsiphonVpn extends Psi.PsiphonProvider.Stub {
@@ -78,12 +77,13 @@ public class PsiphonVpn extends Psi.PsiphonProvider.Stub {
         if (mPsiphonVpn != null) {
             mPsiphonVpn.stop();
         }
+        // Load the native go code embedded in psi.aar
+        System.loadLibrary("gojni");
         mPsiphonVpn = new PsiphonVpn(hostService);
         return mPsiphonVpn;
     }
 
     private PsiphonVpn(HostService hostService) {
-        Go.init(hostService.getVpnService());
         mHostService = hostService;
         mLocalSocksProxyPort = 0;
         mRoutingThroughTunnel = false;