Add on-the-fly blocklist controls. https://redmine.stoutner.com/issues/279
[PrivacyBrowser.git] / app / build.gradle
index 7d29b94e53bb8792c1696d47601a244649daf3d2..80662c0dc93a783127b0eecce6deebab7b68ed65 100644 (file)
@@ -1,5 +1,5 @@
-/**
- * Copyright 2016 Soren Stoutner <soren@stoutner.com>.
+/*
+ * Copyright © 2016-2018 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
  *
 apply plugin: 'com.android.application'
 
 android {
-    signingConfigs {
-    }
+    compileSdkVersion 27
+    buildToolsVersion '27.0.3'
 
-    compileSdkVersion 23
-    buildToolsVersion "23.0.2"
     defaultConfig {
-        applicationId "com.stoutner.privacybrowser"
-        minSdkVersion 10
-        targetSdkVersion 23
-        versionCode 1
-        versionName "1.0"
+        minSdkVersion 19
+        targetSdkVersion 27
+        versionCode 34
+        versionName "2.11"
     }
 
     buildTypes {
-        release {
+        debug {
             minifyEnabled false
+            shrinkResources false
+        }
+
+        release {
+            minifyEnabled true
+            shrinkResources true
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
 
+    // Gradle requires a `flavorDimension`, but it isn't used for anything in Privacy Browser.
+    flavorDimensions "basic"
+
     productFlavors {
         standard {
             applicationId "com.stoutner.privacybrowser.standard"
-            versionName "1.0-standard"
+            dimension "basic"
         }
 
         free {
             applicationId "com.stoutner.privacybrowser.free"
-            versionName "1.0-free"
+            dimension "basic"
         }
     }
 
-    // `lintOptions abortOnError false` is required for F-Droid to build correctly.
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+
+    // Allow the releases to be built even though the versions of the support and consent libraries don't match (Privacy Browser doesn't use the consent library form, so it doesn't matter).
     lintOptions {
         abortOnError false
     }
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile 'com.android.support:appcompat-v7:23.2.0'
-    compile 'com.android.support:design:23.2.0'
-    compile 'com.android.support:support-v4:23.2.0'
-    // Only compile com.google.android.gms:play-services-ads for the free version so that the standard version can build of F-Droid.
-    freeCompile 'com.google.android.gms:play-services-ads:8.4.0'
-}
+    implementation fileTree(include: ['*.jar'], dir: 'libs')
+    implementation 'com.android.support:design:27.0.2'
+
+    // Only compile Firebase ads for the free flavor.
+    freeImplementation 'com.google.firebase:firebase-ads:15.0.1'
+
+    // Only compile the consent library for the free flavor.  It is used to comply with the GDPR in Europe.
+    freeImplementation 'com.google.android.ads.consent:consent-library:1.0.6'
+}
\ No newline at end of file