From bcf7488afd63ea9fbae474ea41ebfeff2bc3f1f0 Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Thu, 11 Aug 2016 14:15:39 -0300
Subject: [PATCH] Cleanup Gradle and Proguard to fix connectedCheck

---
 .idea/codeStyleSettings.xml            | 34 +++++---------------------
 briar-android-tests/build.gradle       | 33 ++++++-------------------
 briar-android-tests/proguard-rules.pro | 17 -------------
 briar-android/build.gradle             | 17 ++-----------
 briar-android/proguard-rules.txt       | 24 ++++++------------
 settings.gradle                        |  3 ++-
 6 files changed, 25 insertions(+), 103 deletions(-)
 delete mode 100644 briar-android-tests/proguard-rules.pro

diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
index 18cc2a1b70..0677e45dbd 100644
--- a/.idea/codeStyleSettings.xml
+++ b/.idea/codeStyleSettings.xml
@@ -37,37 +37,15 @@
         <JavaCodeStyleSettings>
           <option name="ANNOTATION_PARAMETER_WRAP" value="1" />
         </JavaCodeStyleSettings>
-        <Objective-C-extensions>
-          <option name="GENERATE_INSTANCE_VARIABLES_FOR_PROPERTIES" value="ASK" />
-          <option name="RELEASE_STYLE" value="IVAR" />
-          <option name="TYPE_QUALIFIERS_PLACEMENT" value="BEFORE" />
-          <file>
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
-          </file>
-          <class>
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
-            <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
-          </class>
-          <extensions>
-            <pair source="cpp" header="h" />
-            <pair source="c" header="h" />
-          </extensions>
-        </Objective-C-extensions>
         <XML>
           <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
         </XML>
+        <codeStyleSettings language="Groovy">
+          <indentOptions>
+            <option name="USE_TAB_CHARACTER" value="true" />
+            <option name="SMART_TABS" value="true" />
+          </indentOptions>
+        </codeStyleSettings>
         <codeStyleSettings language="JAVA">
           <option name="RIGHT_MARGIN" value="80" />
           <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
diff --git a/briar-android-tests/build.gradle b/briar-android-tests/build.gradle
index af9d13cbb6..d0594e9bc1 100644
--- a/briar-android-tests/build.gradle
+++ b/briar-android-tests/build.gradle
@@ -1,5 +1,4 @@
 apply plugin: 'com.android.library'
-apply plugin: 'witness'
 apply plugin: 'com.neenbedankt.android-apt'
 
 android {
@@ -7,20 +6,15 @@ android {
     buildToolsVersion "23.0.3"
 
     defaultConfig {
-        minSdkVersion 9
-        targetSdkVersion 22
-        versionCode 1
-        versionName "1.0"
-    }
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-        }
+        minSdkVersion 14
+        proguardFiles getDefaultProguardFile('proguard-android.txt'), '../briar-android/proguard-rules.txt'
+        consumerProguardFiles getDefaultProguardFile('proguard-android.txt'), '../briar-android/proguard-rules.txt'
     }
+
     dexOptions {
         incremental true
     }
+
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_7
         targetCompatibility JavaVersion.VERSION_1_7
@@ -28,23 +22,12 @@ android {
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile project(':briar-api')
-    compile project(':briar-core')
+    testCompile project(':briar-api')
+    testCompile project(':briar-core')
     testCompile 'junit:junit:4.12'
     testCompile 'net.jodah:concurrentunit:0.4.2'
-    compile 'com.android.support:appcompat-v7:23.2.1'
+    testCompile 'com.android.support:appcompat-v7:23.2.1'
     testApt 'com.google.dagger:dagger-compiler:2.0.2'
     provided 'javax.annotation:jsr250-api:1.0'
     testCompile project(':briar-tests')
 }
-
-dependencyVerification {
-    verify = [
-            'com.android.support:appcompat-v7:00f9d93acacd6731f309724054bf51492814b4b2869f16d7d5c0038dcb8c9a0d',
-            'com.android.support:support-v4:81ce890f26d35c75ad17d0f998a7e3230330c3b41e0b629566bc744bee89e448',
-            'com.android.support:animated-vector-drawable:06d1963b85aa917099d7757e6a7b3e4dc06889413dc747f625ae8683606db3a1',
-            'com.android.support:support-vector-drawable:799bafe4c3de812386f0b291f744d5d6876452722dd40189b9ab87dbbf594ea1',
-            'com.android.support:support-annotations:786ab0d060774fb95cfdaf4878771e14b85733b1af9d72a4aae762dc7c1dff9f',
-    ]
-}
diff --git a/briar-android-tests/proguard-rules.pro b/briar-android-tests/proguard-rules.pro
deleted file mode 100644
index 2106d3d2c9..0000000000
--- a/briar-android-tests/proguard-rules.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /home/ernir/dev/sdk/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index 940f8cea52..aa7dcca487 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -48,11 +48,6 @@ dependencies {
 	testCompile project(path: ':briar-tests')
 	testCompile 'org.robolectric:robolectric:3.0'
 	testCompile 'org.mockito:mockito-core:1.10.19'
-
-	androidTestCompile 'org.robolectric:robolectric:3.0'
-	androidTestCompile 'org.mockito:mockito-core:1.10.19'
-	androidTestApt 'com.google.dagger:dagger-compiler:2.0.2'
-	androidTestCompile 'junit:junit:4.12'
 }
 
 dependencyVerification {
@@ -105,24 +100,16 @@ android {
 				unitTests.returnDefaultValues = true
 			}
 		}
-
-
-		// Move the build types to build-types/<type>
-		// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
-		// This moves them out of them default location under src/<type>/... which would
-		// conflict with src/ being used by the main source set.
-		// Adding new build types or product flavors should be accompanied
-		// by a similar customization.
-		debug.setRoot('build-types/debug')
-		release.setRoot('build-types/release')
 	}
 
 	buildTypes {
 		debug {
+			shrinkResources false
 			minifyEnabled true
 			proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
 		}
 		release {
+			shrinkResources true
 			minifyEnabled true
 			proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
 		}
diff --git a/briar-android/proguard-rules.txt b/briar-android/proguard-rules.txt
index d570d88c69..6a936b7e88 100644
--- a/briar-android/proguard-rules.txt
+++ b/briar-android/proguard-rules.txt
@@ -4,17 +4,16 @@
 -dontobfuscate
 -verbose
 -useuniqueclassmembernames
--optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 # For comfortability in case we do obfuscate
 # -renamesourcefileattribute SourceFile
--keepattributes SourceFile,LineNumberTable,*Annotation*,Signature, InnerClasses, EnclosingMethod
+-keepattributes SourceFile, LineNumberTable, *Annotation*, Signature, InnerClasses, EnclosingMethod
 
 -keep public class * extends android.app.Activity
 -keep public class * extends android.app.Application
 -keep public class * extends android.app.Service
 -keep public class * extends android.content.BroadcastReceiver
 -keep public class * extends android.content.ContentProvider
--keep public class com.android.vending.licensing.ILicensingService
 -keepclasseswithmembers class * { native <methods>; }
 -keepclasseswithmembers class * {  
 	public <init> (android.content.Context, android.util.AttributeSet); 
@@ -32,39 +31,30 @@
 -keepclassmembers class * extends android.app.Activity { 
 	public void *(android.view.View); 
 }
--keepclassmembers class * { 
-	@com.google.inject.Inject <init>(...);
-	@com.google.inject.Inject <fields>; 
-}
-# Just in case Roboguice events are used
--keepclassmembers class * {
-	void *(**On*Event);
-}
 
 -keep class org.h2.** { *; }
 -keep class org.briarproject.** { *; }
--keep class com.google.inject.** { *; }
 -keep class javax.inject.** { *; }
--keep class javax.annotation.** { *; }
--keep class roboguice.** { *; }
 -keep class dagger.** { *; }
--keep class com.google.** { *; }
+-keep class com.google.zxing.Result
 
 -dontwarn org.h2.**
 -dontnote org.h2.**
 -dontwarn net.sf.cglib.**
 -dontwarn org.briarproject.plugins.tcp.**
--dontwarn roboguice.**
+-dontnote org.briarproject.crypto.**
+-dontnote org.spongycastle.crypto.parsers.ECIESPublicKeyParser
 -dontwarn net.sourceforge.jsocks.**
 -dontnote android.support.**
 -dontnote dagger.**
 -dontwarn dagger.**
+-dontnote com.google.common.**
 -dontwarn com.google.common.**
 
-
 # RSS libraries
 -keep class com.rometools.rome.feed.synd.impl.** { *;}
 -keep class com.rometools.rome.io.impl.** { *;}
+-dontnote com.rometools.rome.**
 -dontwarn javax.xml.stream.**
 -dontwarn org.jaxen.**
 -dontwarn java.nio.**
diff --git a/settings.gradle b/settings.gradle
index 6de5aebc60..b167af5b93 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,5 +1,6 @@
-include ':briar-api', ':briar-android-tests'
+include ':briar-api'
 include ':briar-core'
 include ':briar-desktop'
 include ':briar-tests'
 include ':briar-android'
+include ':briar-android-tests'
\ No newline at end of file
-- 
GitLab