From 51f7dab93c4d0d9b029a7f2401af59c257164d22 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Fri, 23 Mar 2018 00:06:58 +0100
Subject: [PATCH] Refactored persistence into separate module

---
 app/build.gradle.kts                          |  7 +--
 persistence/build.gradle.kts                  | 62 +++++++++++++++++++
 persistence/proguard-rules.pro                |  0
 persistence/src/main/AndroidManifest.xml      |  2 +
 .../persistence/AccountDatabase.kt            |  0
 .../persistence/QuasselBacklogStorage.kt      |  0
 .../persistence/QuasselDatabase.kt            |  0
 settings.gradle                               |  2 +-
 8 files changed, 66 insertions(+), 7 deletions(-)
 create mode 100644 persistence/build.gradle.kts
 create mode 100644 persistence/proguard-rules.pro
 create mode 100644 persistence/src/main/AndroidManifest.xml
 rename {app => persistence}/src/main/java/de/kuschku/quasseldroid/persistence/AccountDatabase.kt (100%)
 rename {app => persistence}/src/main/java/de/kuschku/quasseldroid/persistence/QuasselBacklogStorage.kt (100%)
 rename {app => persistence}/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt (100%)

diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index bbc4069df..441ce2c73 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -49,12 +49,6 @@ android {
 
     setProperty("archivesBaseName", "QuasselDroidNG-$versionName")
 
-    javaCompileOptions {
-      annotationProcessorOptions {
-        arguments = mapOf("room.schemaLocation" to "$projectDir/schemas")
-      }
-    }
-
     // Disable test runner analytics
     testInstrumentationRunnerArguments = mapOf(
       "disableAnalytics" to "true"
@@ -134,6 +128,7 @@ dependencies {
 
   // Quassel
   implementation(project(":viewmodel"))
+  implementation(project(":persistence"))
   implementation(project(":lib")) {
     exclude(group = "org.threeten", module = "threetenbp")
   }
diff --git a/persistence/build.gradle.kts b/persistence/build.gradle.kts
new file mode 100644
index 000000000..591e1f709
--- /dev/null
+++ b/persistence/build.gradle.kts
@@ -0,0 +1,62 @@
+plugins {
+  id("com.android.library")
+  kotlin("android")
+  kotlin("kapt")
+}
+
+android {
+  compileSdkVersion(27)
+  buildToolsVersion("27.0.3")
+
+  defaultConfig {
+    minSdkVersion(16)
+    targetSdkVersion(27)
+
+    consumerProguardFiles("proguard-rules.pro")
+
+    javaCompileOptions {
+      annotationProcessorOptions {
+        arguments = mapOf("room.schemaLocation" to "$projectDir/schemas")
+      }
+    }
+  }
+}
+
+dependencies {
+  implementation(kotlin("stdlib", "1.2.30"))
+
+  // App Compat
+  withVersion("27.1.0") {
+    implementation("com.android.support", "appcompat-v7", version)
+  }
+
+  // App Arch Lifecycle
+  withVersion("1.1.0") {
+    implementation("android.arch.lifecycle", "extensions", version)
+    implementation("android.arch.lifecycle", "reactivestreams", version)
+    kapt("android.arch.lifecycle", "compiler", version)
+  }
+
+  // App Arch Persistence
+  withVersion("1.1.0-beta1") {
+    implementation("android.arch.persistence.room", "runtime", version)
+    implementation("android.arch.persistence.room", "rxjava2", version)
+    kapt("android.arch.persistence.room", "compiler", version)
+    testImplementation("android.arch.persistence.room", "testing", version)
+  }
+
+  // App Arch Paging
+  implementation("android.arch.paging", "runtime", "1.0.0-alpha7") {
+    exclude(group = "junit", module = "junit")
+  }
+
+  // Utility
+  implementation("io.reactivex.rxjava2", "rxjava", "2.1.9")
+  implementation("org.threeten", "threetenbp", "1.3.6", classifier = "no-tzdb")
+  implementation("org.jetbrains", "annotations", "15.0")
+
+  // Quassel
+  implementation(project(":lib")) {
+    exclude(group = "org.threeten", module = "threetenbp")
+  }
+}
\ No newline at end of file
diff --git a/persistence/proguard-rules.pro b/persistence/proguard-rules.pro
new file mode 100644
index 000000000..e69de29bb
diff --git a/persistence/src/main/AndroidManifest.xml b/persistence/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..e20834273
--- /dev/null
+++ b/persistence/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="de.kuschku.quasseldroid.persistence"></manifest>
diff --git a/app/src/main/java/de/kuschku/quasseldroid/persistence/AccountDatabase.kt b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/AccountDatabase.kt
similarity index 100%
rename from app/src/main/java/de/kuschku/quasseldroid/persistence/AccountDatabase.kt
rename to persistence/src/main/java/de/kuschku/quasseldroid/persistence/AccountDatabase.kt
diff --git a/app/src/main/java/de/kuschku/quasseldroid/persistence/QuasselBacklogStorage.kt b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselBacklogStorage.kt
similarity index 100%
rename from app/src/main/java/de/kuschku/quasseldroid/persistence/QuasselBacklogStorage.kt
rename to persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselBacklogStorage.kt
diff --git a/app/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
similarity index 100%
rename from app/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
rename to persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
diff --git a/settings.gradle b/settings.gradle
index c9875a387..8346cc68a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,3 +1,3 @@
-include ':invokerannotations', ':invokergenerator', ':lib', ':malheur', ':app', ":slidingpanel", ":viewmodel"
+include ':invokerannotations', ':invokergenerator', ':lib', ':malheur', ':app', ":slidingpanel", ":viewmodel", ":persistence"
 
 rootProject.buildFileName = 'build.gradle.kts'
-- 
GitLab