diff --git a/.gitignore b/.gitignore
index 622c6f0..ad4cb2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,6 @@
.gradle
-/local.properties
-/.idea
+local.properties
.DS_Store
/build
-*.iml
-/node_modules
-app/src/main/assets/node_modules/
-npm-debug.log
*.swp
+*.hprof
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..a7c382e
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1 @@
+workspace.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..3497cd5
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+MinimalBible
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..217af47
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..e206d70
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..5abd29a
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..cb93707
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..3b31283
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/accessibility_test_framework_1_0.xml b/.idea/libraries/accessibility_test_framework_1_0.xml
new file mode 100644
index 0000000..f1c9d12
--- /dev/null
+++ b/.idea/libraries/accessibility_test_framework_1_0.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/acra_4_6_2.xml b/.idea/libraries/acra_4_6_2.xml
new file mode 100644
index 0000000..311ee10
--- /dev/null
+++ b/.idea/libraries/acra_4_6_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/annotations_4_1_1_4.xml b/.idea/libraries/annotations_4_1_1_4.xml
new file mode 100644
index 0000000..f924ac6
--- /dev/null
+++ b/.idea/libraries/annotations_4_1_1_4.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/ant_1_8_0.xml b/.idea/libraries/ant_1_8_0.xml
new file mode 100644
index 0000000..67cb948
--- /dev/null
+++ b/.idea/libraries/ant_1_8_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/ant_launcher_1_8_0.xml b/.idea/libraries/ant_launcher_1_8_0.xml
new file mode 100644
index 0000000..2dce35f
--- /dev/null
+++ b/.idea/libraries/ant_launcher_1_8_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/appcompat_v7_22_0_0.xml b/.idea/libraries/appcompat_v7_22_0_0.xml
new file mode 100644
index 0000000..9cf5b1b
--- /dev/null
+++ b/.idea/libraries/appcompat_v7_22_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/asm_5_0_1.xml b/.idea/libraries/asm_5_0_1.xml
new file mode 100644
index 0000000..283ec5c
--- /dev/null
+++ b/.idea/libraries/asm_5_0_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/asm_analysis_5_0_1.xml b/.idea/libraries/asm_analysis_5_0_1.xml
new file mode 100644
index 0000000..6d8c202
--- /dev/null
+++ b/.idea/libraries/asm_analysis_5_0_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/asm_commons_5_0_1.xml b/.idea/libraries/asm_commons_5_0_1.xml
new file mode 100644
index 0000000..dc61cb1
--- /dev/null
+++ b/.idea/libraries/asm_commons_5_0_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/asm_tree_5_0_1.xml b/.idea/libraries/asm_tree_5_0_1.xml
new file mode 100644
index 0000000..cb7a1e8
--- /dev/null
+++ b/.idea/libraries/asm_tree_5_0_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/asm_util_5_0_1.xml b/.idea/libraries/asm_util_5_0_1.xml
new file mode 100644
index 0000000..e07f4ed
--- /dev/null
+++ b/.idea/libraries/asm_util_5_0_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/awaitility_1_6_3.xml b/.idea/libraries/awaitility_1_6_3.xml
new file mode 100644
index 0000000..22d6912
--- /dev/null
+++ b/.idea/libraries/awaitility_1_6_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/bcprov_jdk16_1_46.xml b/.idea/libraries/bcprov_jdk16_1_46.xml
new file mode 100644
index 0000000..2b9e094
--- /dev/null
+++ b/.idea/libraries/bcprov_jdk16_1_46.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/butterknife_6_1_0.xml b/.idea/libraries/butterknife_6_1_0.xml
new file mode 100644
index 0000000..8f05246
--- /dev/null
+++ b/.idea/libraries/butterknife_6_1_0.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/byte_buddy_0_6_8.xml b/.idea/libraries/byte_buddy_0_6_8.xml
new file mode 100644
index 0000000..33b9689
--- /dev/null
+++ b/.idea/libraries/byte_buddy_0_6_8.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/cardview_v7_22_0_0.xml b/.idea/libraries/cardview_v7_22_0_0.xml
new file mode 100644
index 0000000..48c674e
--- /dev/null
+++ b/.idea/libraries/cardview_v7_22_0_0.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/cglib_nodep_3_1.xml b/.idea/libraries/cglib_nodep_3_1.xml
new file mode 100644
index 0000000..049d175
--- /dev/null
+++ b/.idea/libraries/cglib_nodep_3_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/commons_codec_1_6.xml b/.idea/libraries/commons_codec_1_6.xml
new file mode 100644
index 0000000..0f7f614
--- /dev/null
+++ b/.idea/libraries/commons_codec_1_6.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/commons_compress_1_7.xml b/.idea/libraries/commons_compress_1_7.xml
new file mode 100644
index 0000000..198d5a7
--- /dev/null
+++ b/.idea/libraries/commons_compress_1_7.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/commons_lang3_3_4.xml b/.idea/libraries/commons_lang3_3_4.xml
new file mode 100644
index 0000000..e55d8a6
--- /dev/null
+++ b/.idea/libraries/commons_lang3_3_4.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/commons_logging_1_1_3.xml b/.idea/libraries/commons_logging_1_1_3.xml
new file mode 100644
index 0000000..5456415
--- /dev/null
+++ b/.idea/libraries/commons_logging_1_1_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/commons_net_3_3.xml b/.idea/libraries/commons_net_3_3.xml
new file mode 100644
index 0000000..b869b3f
--- /dev/null
+++ b/.idea/libraries/commons_net_3_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/dagger_1_2_2.xml b/.idea/libraries/dagger_1_2_2.xml
new file mode 100644
index 0000000..e7519f3
--- /dev/null
+++ b/.idea/libraries/dagger_1_2_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/dagger_compiler_1_2_2.xml b/.idea/libraries/dagger_compiler_1_2_2.xml
new file mode 100644
index 0000000..8ec3c86
--- /dev/null
+++ b/.idea/libraries/dagger_compiler_1_2_2.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/esperandro_2_2_0.xml b/.idea/libraries/esperandro_2_2_0.xml
new file mode 100644
index 0000000..f344b38
--- /dev/null
+++ b/.idea/libraries/esperandro_2_2_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/esperandro_api_2_2_0.xml b/.idea/libraries/esperandro_api_2_2_0.xml
new file mode 100644
index 0000000..18598eb
--- /dev/null
+++ b/.idea/libraries/esperandro_api_2_2_0.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/guava_15_0.xml b/.idea/libraries/guava_15_0.xml
new file mode 100644
index 0000000..dae8be1
--- /dev/null
+++ b/.idea/libraries/guava_15_0.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/hamcrest_core_1_3.xml b/.idea/libraries/hamcrest_core_1_3.xml
new file mode 100644
index 0000000..157e3f3
--- /dev/null
+++ b/.idea/libraries/hamcrest_core_1_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/hamcrest_library_1_3.xml b/.idea/libraries/hamcrest_library_1_3.xml
new file mode 100644
index 0000000..923d5fc
--- /dev/null
+++ b/.idea/libraries/hamcrest_library_1_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/httpclient_4_3_2.xml b/.idea/libraries/httpclient_4_3_2.xml
new file mode 100644
index 0000000..23fe2c7
--- /dev/null
+++ b/.idea/libraries/httpclient_4_3_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/httpcore_4_3_2.xml b/.idea/libraries/httpcore_4_3_2.xml
new file mode 100644
index 0000000..69f65f0
--- /dev/null
+++ b/.idea/libraries/httpcore_4_3_2.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/icu4j_53_1.xml b/.idea/libraries/icu4j_53_1.xml
new file mode 100644
index 0000000..1c73fa3
--- /dev/null
+++ b/.idea/libraries/icu4j_53_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/javawriter_2_5_1.xml b/.idea/libraries/javawriter_2_5_1.xml
new file mode 100644
index 0000000..3ca07ae
--- /dev/null
+++ b/.idea/libraries/javawriter_2_5_1.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/javax_inject_1.xml b/.idea/libraries/javax_inject_1.xml
new file mode 100644
index 0000000..eebeedd
--- /dev/null
+++ b/.idea/libraries/javax_inject_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/jdom2_2_0_5.xml b/.idea/libraries/jdom2_2_0_5.xml
new file mode 100644
index 0000000..5846107
--- /dev/null
+++ b/.idea/libraries/jdom2_2_0_5.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/jsword_minimalbible_jsword_minimalbible_1_0_SNAPSHOT.xml b/.idea/libraries/jsword_minimalbible_jsword_minimalbible_1_0_SNAPSHOT.xml
new file mode 100644
index 0000000..54db2d8
--- /dev/null
+++ b/.idea/libraries/jsword_minimalbible_jsword_minimalbible_1_0_SNAPSHOT.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/junit_4_11.xml b/.idea/libraries/junit_4_11.xml
new file mode 100644
index 0000000..40820ce
--- /dev/null
+++ b/.idea/libraries/junit_4_11.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/junit_4_12.xml b/.idea/libraries/junit_4_12.xml
new file mode 100644
index 0000000..305df30
--- /dev/null
+++ b/.idea/libraries/junit_4_12.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlin_runtime_0_12_213.xml b/.idea/libraries/kotlin_runtime_0_12_213.xml
new file mode 100644
index 0000000..6ec0568
--- /dev/null
+++ b/.idea/libraries/kotlin_runtime_0_12_213.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/kotlin_stdlib_0_12_213.xml b/.idea/libraries/kotlin_stdlib_0_12_213.xml
new file mode 100644
index 0000000..00fb3e7
--- /dev/null
+++ b/.idea/libraries/kotlin_stdlib_0_12_213.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/logger_1_10.xml b/.idea/libraries/logger_1_10.xml
new file mode 100644
index 0000000..da33134
--- /dev/null
+++ b/.idea/libraries/logger_1_10.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/lucene_analyzers_3_0_3.xml b/.idea/libraries/lucene_analyzers_3_0_3.xml
new file mode 100644
index 0000000..b74683d
--- /dev/null
+++ b/.idea/libraries/lucene_analyzers_3_0_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/lucene_core_3_0_3.xml b/.idea/libraries/lucene_core_3_0_3.xml
new file mode 100644
index 0000000..0b0d95d
--- /dev/null
+++ b/.idea/libraries/lucene_core_3_0_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/lucene_smartcn_3_0_3.xml b/.idea/libraries/lucene_smartcn_3_0_3.xml
new file mode 100644
index 0000000..eb78047
--- /dev/null
+++ b/.idea/libraries/lucene_smartcn_3_0_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/lucene_snowball_3_0_3.xml b/.idea/libraries/lucene_snowball_3_0_3.xml
new file mode 100644
index 0000000..ce25f86
--- /dev/null
+++ b/.idea/libraries/lucene_snowball_3_0_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/maven_ant_tasks_2_1_3.xml b/.idea/libraries/maven_ant_tasks_2_1_3.xml
new file mode 100644
index 0000000..22fe762
--- /dev/null
+++ b/.idea/libraries/maven_ant_tasks_2_1_3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/mockable_android_22.xml b/.idea/libraries/mockable_android_22.xml
new file mode 100644
index 0000000..cb2f110
--- /dev/null
+++ b/.idea/libraries/mockable_android_22.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/mockito_core_2_0_14_beta.xml b/.idea/libraries/mockito_core_2_0_14_beta.xml
new file mode 100644
index 0000000..3491005
--- /dev/null
+++ b/.idea/libraries/mockito_core_2_0_14_beta.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/objenesis_2_1.xml b/.idea/libraries/objenesis_2_1.xml
new file mode 100644
index 0000000..79967c7
--- /dev/null
+++ b/.idea/libraries/objenesis_2_1.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/recyclerview_v7_22_0_0.xml b/.idea/libraries/recyclerview_v7_22_0_0.xml
new file mode 100644
index 0000000..6772d39
--- /dev/null
+++ b/.idea/libraries/recyclerview_v7_22_0_0.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/robolectric_3_0_rc3.xml b/.idea/libraries/robolectric_3_0_rc3.xml
new file mode 100644
index 0000000..f35eb1f
--- /dev/null
+++ b/.idea/libraries/robolectric_3_0_rc3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/robolectric_annotations_3_0_rc3.xml b/.idea/libraries/robolectric_annotations_3_0_rc3.xml
new file mode 100644
index 0000000..87305d6
--- /dev/null
+++ b/.idea/libraries/robolectric_annotations_3_0_rc3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/robolectric_resources_3_0_rc3.xml b/.idea/libraries/robolectric_resources_3_0_rc3.xml
new file mode 100644
index 0000000..3cc2ca0
--- /dev/null
+++ b/.idea/libraries/robolectric_resources_3_0_rc3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/robolectric_utils_3_0_rc3.xml b/.idea/libraries/robolectric_utils_3_0_rc3.xml
new file mode 100644
index 0000000..b8914db
--- /dev/null
+++ b/.idea/libraries/robolectric_utils_3_0_rc3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/rxjava_android_0_20_7.xml b/.idea/libraries/rxjava_android_0_20_7.xml
new file mode 100644
index 0000000..7c16af0
--- /dev/null
+++ b/.idea/libraries/rxjava_android_0_20_7.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/rxjava_core_0_20_7.xml b/.idea/libraries/rxjava_core_0_20_7.xml
new file mode 100644
index 0000000..4ff98f8
--- /dev/null
+++ b/.idea/libraries/rxjava_core_0_20_7.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/shadows_core_3_0_rc3.xml b/.idea/libraries/shadows_core_3_0_rc3.xml
new file mode 100644
index 0000000..ca6b9d5
--- /dev/null
+++ b/.idea/libraries/shadows_core_3_0_rc3.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/slf4j_api_1_7_6.xml b/.idea/libraries/slf4j_api_1_7_6.xml
new file mode 100644
index 0000000..b568311
--- /dev/null
+++ b/.idea/libraries/slf4j_api_1_7_6.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/spek_0_1_165.xml b/.idea/libraries/spek_0_1_165.xml
new file mode 100644
index 0000000..fa8ed73
--- /dev/null
+++ b/.idea/libraries/spek_0_1_165.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/sqlite4java_0_282.xml b/.idea/libraries/sqlite4java_0_282.xml
new file mode 100644
index 0000000..8866bc2
--- /dev/null
+++ b/.idea/libraries/sqlite4java_0_282.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/support_annotations_22_0_0.xml b/.idea/libraries/support_annotations_22_0_0.xml
new file mode 100644
index 0000000..a03b075
--- /dev/null
+++ b/.idea/libraries/support_annotations_22_0_0.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/support_v4_22_0_0.xml b/.idea/libraries/support_v4_22_0_0.xml
new file mode 100644
index 0000000..785fa76
--- /dev/null
+++ b/.idea/libraries/support_v4_22_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/systembartint_1_0_4.xml b/.idea/libraries/systembartint_1_0_4.xml
new file mode 100644
index 0000000..32834d7
--- /dev/null
+++ b/.idea/libraries/systembartint_1_0_4.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/vtd_xml_2_11.xml b/.idea/libraries/vtd_xml_2_11.xml
new file mode 100644
index 0000000..fe8507f
--- /dev/null
+++ b/.idea/libraries/vtd_xml_2_11.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/xz_1_4.xml b/.idea/libraries/xz_1_4.xml
new file mode 100644
index 0000000..4a337e5
--- /dev/null
+++ b/.idea/libraries/xz_1_4.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..4f70543
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..283173e
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/qaplug_profiles.xml b/.idea/qaplug_profiles.xml
new file mode 100644
index 0000000..1b19f11
--- /dev/null
+++ b/.idea/qaplug_profiles.xml
@@ -0,0 +1,886 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100644
index 0000000..922003b
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..6655f2b
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MinimalBible.iml b/MinimalBible.iml
new file mode 100644
index 0000000..fb297e3
--- /dev/null
+++ b/MinimalBible.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app-test/.gitignore b/app-test/.gitignore
deleted file mode 100644
index 9f014db..0000000
--- a/app-test/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/build
-local.properties
diff --git a/app-test/build.gradle b/app-test/build.gradle
deleted file mode 100644
index 343f171..0000000
--- a/app-test/build.gradle
+++ /dev/null
@@ -1,96 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'kotlin'
-apply plugin: 'jacoco'
-apply plugin: 'com.github.kt3k.coveralls'
-
-evaluationDependsOn(":app")
-
-buildscript {
- repositories {
- mavenCentral()
- }
-
- dependencies {
- // Version lock for https://github.com/kt3k/coveralls-gradle-plugin/issues/27
- classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1x'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-repositories {
- maven {
- url 'http://repository.jetbrains.com/repo'
- }
- mavenCentral()
-}
-
-// TODO: Make sure we test against the Debug variant
-def androidModule = project(':app')
-def firstVariant = androidModule.android.applicationVariants.toList().first()
-
-def testIncludes = [
- '**/*Test.class',
- '**/*Spek.class'
-]
-def jacocoExcludes = [
- 'android/**',
- 'com/todddavies/**',
- 'com/cmwmobile/**',
- 'org/bspeice/minimalbible/R*',
- '**/BookAdapter$ChapterInfo*',
- '**/*$$*' // Dagger/Butterknife
-]
-
-dependencies {
- compile androidModule
-
- testCompile 'junit:junit:4.+'
- testCompile 'org.robolectric:robolectric:2.+'
- testCompile 'org.mockito:mockito-core:+'
- testCompile 'com.jayway.awaitility:awaitility:+'
- testCompile 'org.jetbrains.spek:spek:0.1-SNAPSHOT'
-
- testCompile firstVariant.javaCompile.classpath
- testCompile firstVariant.javaCompile.outputs.files
- testCompile files(androidModule.plugins.findPlugin("com.android.application").getBootClasspath())
- compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
-}
-
-def buildExcludeTree(path, excludes) {
- //noinspection GroovyAssignabilityCheck
- def tree = fileTree(path).exclude(excludes)
- tree
-}
-
-jacocoTestReport {
- doFirst {
- // First we build a list of our base directories
- def fileList = new ArrayList()
- def outputsList = firstVariant.javaCompile.outputs.files
- outputsList.each { fileList.add(it.absolutePath.toString()) }
-
- // And build a fileTree from those
- def outputTree = fileList.inject { tree1, tree2 ->
- buildExcludeTree(tree1, jacocoExcludes) +
- buildExcludeTree(tree2, jacocoExcludes)
- }
-
- // And finally tell Jacoco to only include said files in the report
- // For whatever reason, firstVariant.javaCompile.exclude(jacocoExcludes) doesn't work...
- classDirectories = outputTree
- sourceDirectories = files(androidModule.android.sourceSets.main.java.srcDirs)
- }
-
- reports {
- xml.enabled true
- }
-}
-
-coveralls {
- sourceDirs = files(androidModule.android.sourceSets.main.java.srcDirs).files.absolutePath
-}
-
-tasks.withType(Test) {
- scanForTestClasses = true
- includes = testIncludes
-}
diff --git a/app-test/src/test/java/org/bspeice/minimalbible/activity/search/BasicSearchTest.java b/app-test/src/test/java/org/bspeice/minimalbible/activity/search/BasicSearchTest.java
deleted file mode 100644
index ad9a866..0000000
--- a/app-test/src/test/java/org/bspeice/minimalbible/activity/search/BasicSearchTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.bspeice.minimalbible.activity.search;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import static org.junit.Assert.assertNotNull;
-
-/**
- * Right now this is the only Robolectric test. Some clarifications on this should be made:
- * There's an ongoing issue with the ActionBarDrawerToggle, meaning that the BasicSearch
- * activity is the only one eligible for testing
- * (https://github.com/robolectric/robolectric/issues/1424)
- *
- * Additionally, Robolectric only supports up to Jellybean, which is why the emulateSdk.
- * Finally, in Gradle, tests run relative to app-test, whereas the IDE may try and run
- * things in the project root. Be careful when changing the manifest location.
- */
-@RunWith(RobolectricTestRunner.class)
-@Config(emulateSdk = 18, manifest = "../app/src/main/AndroidManifest.xml")
-public class BasicSearchTest {
-
- @Test
- public void testBuildActivity() {
- BasicSearch activity = Robolectric.buildActivity(BasicSearch.class)
- .create().get();
- assertNotNull(activity);
- }
-}
diff --git a/app-test/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/BookManagerTest.java b/app-test/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/BookManagerTest.java
deleted file mode 100644
index 35ec8f0..0000000
--- a/app-test/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/BookManagerTest.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package org.bspeice.minimalbible.test.activity.downloader.manager;
-
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-
-import org.bspeice.minimalbible.Injector;
-import org.bspeice.minimalbible.activity.downloader.DownloadPrefs;
-import org.bspeice.minimalbible.activity.downloader.manager.BookManager;
-import org.bspeice.minimalbible.activity.downloader.manager.DLProgressEvent;
-import org.bspeice.minimalbible.activity.downloader.manager.RefreshManager;
-import org.bspeice.minimalbible.activity.search.MBIndexManager;
-import org.crosswire.common.progress.JobManager;
-import org.crosswire.common.progress.Progress;
-import org.crosswire.common.progress.WorkEvent;
-import org.crosswire.common.progress.WorkListener;
-import org.crosswire.jsword.book.Book;
-import org.crosswire.jsword.book.BookDriver;
-import org.crosswire.jsword.book.BookException;
-import org.crosswire.jsword.book.Books;
-import org.crosswire.jsword.book.BooksEvent;
-import org.crosswire.jsword.book.install.InstallManager;
-import org.crosswire.jsword.book.install.Installer;
-import org.crosswire.jsword.index.IndexManager;
-import org.crosswire.jsword.index.IndexManagerFactory;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import dagger.Module;
-import dagger.ObjectGraph;
-import dagger.Provides;
-import rx.Observable;
-import rx.functions.Action1;
-import rx.functions.Func1;
-import rx.subjects.PublishSubject;
-
-import static com.jayway.awaitility.Awaitility.await;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.internal.verification.VerificationModeFactory.times;
-
-// TODO: Fix @Ignore'd tests
-public class BookManagerTest implements Injector {
-
- ObjectGraph mObjectGraph;
- @Inject
- BookManager bookManager;
- @Inject
- RefreshManager refreshManager;
- @Inject
- Books installedBooks;
-
- @Override
- public void inject(Object o) {
- mObjectGraph.inject(o);
- }
-
- @Before
- public void setUp() {
- BookDownloadManagerTestModules modules = new BookDownloadManagerTestModules(this);
- mObjectGraph = ObjectGraph.create(modules);
- mObjectGraph.inject(this);
- }
-
- Observable installableBooks() {
- return refreshManager.getFlatModules()
- .filter(new Func1() {
- @Override
- public Boolean call(Book book) {
- return !installedBooks.getBooks().contains(book);
- }
- });
- }
-
- // TODO: Why doesn't this work?
- @Ignore("Should be working, but isn't...")
- @Test
- public void testInstallBook() throws Exception {
- final Book toInstall = installableBooks().toBlocking().first();
-
- final AtomicBoolean signal = new AtomicBoolean(false);
- bookManager.getDownloadEvents()
- .subscribe(new Action1() {
- @Override
- public void call(DLProgressEvent dlProgressEvent) {
- System.out.println(dlProgressEvent.getProgress());
- if (dlProgressEvent.getB().getInitials().equals(toInstall.getInitials())
- && dlProgressEvent.getProgress() == DLProgressEvent.PROGRESS_COMPLETE) {
- signal.set(true);
- }
- }
- });
-
- bookManager.downloadBook(toInstall);
-
- await().atMost(30, TimeUnit.SECONDS)
- .untilTrue(signal);
- }
-
- // TODO: Why doesn't this work?
- @Ignore("Should be working, but isn't...")
- @Test
- public void testJobIdMatch() {
- final Book toInstall = installableBooks().toBlocking().first();
- final String jobName = bookManager.getJobName(toInstall);
- final AtomicBoolean jobNameMatch = new AtomicBoolean(false);
-
- JobManager.addWorkListener(new WorkListener() {
- @Override
- public void workProgressed(WorkEvent ev) {
- if (ev.getJob().getJobID().equals(jobName)) {
- jobNameMatch.set(true);
- }
- }
-
- @Override
- public void workStateChanged(WorkEvent ev) {
- }
- });
-
- bookManager.downloadBook(toInstall);
- await().atMost(10, TimeUnit.SECONDS)
- .untilTrue(jobNameMatch);
- }
-
- @Test
- public void testLocalListUpdatedAfterAdd() {
- Book mockBook = mock(Book.class);
- BooksEvent event = mock(BooksEvent.class);
- when(event.getBook()).thenReturn(mockBook);
-
- bookManager.bookAdded(event);
- assertTrue(bookManager.getInstalledBooksList().contains(mockBook));
- }
-
- /**
- * This test requires deep knowledge of how to remove a book in order to test,
- * but the Kotlin interface is nice!
- */
- @Test
- public void testLocalListUpdatedAfterRemove() throws BookException {
- BookDriver driver = mock(BookDriver.class);
-
- Book mockBook = mock(Book.class);
- Book secondMockBook = mock(Book.class);
- when(mockBook.getDriver()).thenReturn(driver);
-
- BooksEvent event = mock(BooksEvent.class);
- when(event.getBook()).thenReturn(mockBook);
-
- bookManager.getInstalledBooksList().add(mockBook);
- assertTrue(bookManager.getInstalledBooksList().contains(mockBook));
- try {
- bookManager.removeBook(mockBook, secondMockBook);
- } catch (NullPointerException e) {
- // Nasty NPE shows up when testing because the index
- // isn't installed. Suppressing here.
- }
- assertFalse(bookManager.getInstalledBooksList().contains(mockBook));
- verify(driver, times(1)).delete(secondMockBook);
- }
-
- /**
- * Make sure that when workProgressed is fired, the correct progress event gets triggered
- * Previously, integer roundoff errors led to some strange results
- */
- @Test
- public void testWorkProgressedCorrectProgress() {
- Book mockBook = mock(Book.class);
- when(mockBook.getInitials()).thenReturn("mockBook");
- String bookJobName = bookManager.getJobName(mockBook);
- bookManager.getInProgressJobNames().put(bookJobName, mockBook);
-
- // Percent to degrees
- final int workDone = 50; // 50%
- final int circularProgress = 180;
- WorkEvent ev = mock(WorkEvent.class);
- Progress p = mock(Progress.class);
-
- when(p.getJobID()).thenReturn(bookJobName);
- when(p.getWork()).thenReturn(workDone);
- when(ev.getJob()).thenReturn(p);
-
- final AtomicBoolean progressCorrect = new AtomicBoolean(false);
- bookManager.getDownloadEvents()
- .subscribe(new Action1() {
- @Override
- public void call(DLProgressEvent dlProgressEvent) {
- progressCorrect.set(circularProgress == dlProgressEvent.toCircular());
- }
- });
-
- bookManager.workProgressed(ev);
-
- await().atMost(10, TimeUnit.SECONDS)
- .untilTrue(progressCorrect);
- }
-
- /**
- * Modules needed for this test case
- */
- @Module(injects = {BookManager.class,
- RefreshManager.class,
- BookManagerTest.class})
- @SuppressWarnings("unused")
- public static class BookDownloadManagerTestModules {
- Injector i;
- ConnectivityManager manager;
- DownloadPrefs prefs;
-
- BookDownloadManagerTestModules(Injector i) {
- this.i = i;
-
- // Set reasonable defaults for the manager and preferences, can over-ride if need-be
- manager = mock(ConnectivityManager.class);
- NetworkInfo mockNetworkInfo = Mockito.mock(NetworkInfo.class);
-
- when(manager.getActiveNetworkInfo()).thenReturn(mockNetworkInfo);
- when(mockNetworkInfo.getType()).thenReturn(ConnectivityManager.TYPE_WIFI);
-
- prefs = mock(DownloadPrefs.class);
- }
-
- @Provides
- @Singleton
- Books provideBooks() {
- return Books.installed();
- }
-
- @Provides
- @Singleton
- Collection provideInstallers() {
- return new InstallManager().getInstallers().values();
- }
-
- @Provides
- List excludeList() {
- return new ArrayList<>();
- }
-
- void setConnectivityManager(ConnectivityManager manager) {
- this.manager = manager;
- }
-
- void setPrefs(DownloadPrefs prefs) {
- this.prefs = prefs;
- }
-
- @Provides
- @Singleton
- RefreshManager refreshManager(Collection installers, List excludes) {
- return new RefreshManager(installers, excludes,
- prefs, manager);
- }
-
- @Provides
- @Singleton
- PublishSubject dlProgressEventPublisher() {
- return PublishSubject.create();
- }
-
- @Provides
- @Singleton
- IndexManager indexManager() {
- return IndexManagerFactory.getIndexManager();
- }
-
- @Provides
- @Singleton
- MBIndexManager mbIndexManager(IndexManager indexManager) {
- return new MBIndexManager(indexManager);
- }
-
- @Provides
- @Singleton
- BookManager bookDownloadManager(Books installed, RefreshManager rm,
- PublishSubject eventPublisher,
- MBIndexManager manager) {
- return new BookManager(installed, rm, eventPublisher, manager);
- }
- }
-}
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
new file mode 100644
index 0000000..87b80cb
--- /dev/null
+++ b/app/app.iml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 3c0b353..7ea1f74 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
buildscript {
repositories {
mavenCentral()
+
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
@@ -8,6 +9,12 @@ buildscript {
}
}
+repositories {
+ maven {
+ url "http://repository.jetbrains.com/all"
+ }
+}
+
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'play'
@@ -54,6 +61,7 @@ android {
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
+ test.java.srcDirs += 'src/test/kotlin'
}
}
@@ -63,7 +71,7 @@ play {
}
dependencies {
- compile project(path: ':jsword-minimalbible', configuration: 'buildJSword')
+ compile project(':jsword-minimalbible')
compile 'com.squareup.dagger:dagger:+'
provided 'com.squareup.dagger:dagger-compiler:+'
@@ -80,9 +88,16 @@ dependencies {
compile 'com.orhanobut:logger:+'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+ // Instrumentation Test dependencies
androidTestCompile 'com.jayway.awaitility:awaitility:+'
androidTestCompile 'org.mockito:mockito-core:+'
+ // Unit Test dependencies
+ testCompile 'junit:junit:4.12'
+ testCompile 'com.jayway.awaitility:awaitility:+'
+ testCompile 'org.mockito:mockito-core:+'
+ testCompile 'org.jetbrains.spek:spek:+'
+
// Email debug reports if I crash...
debugCompile('ch.acra:acra:+') {
exclude module: 'json'
diff --git a/app-test/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/RefreshManagerTest.java b/app/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/RefreshManagerTest.java
similarity index 100%
rename from app-test/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/RefreshManagerTest.java
rename to app/src/test/java/org/bspeice/minimalbible/test/activity/downloader/manager/RefreshManagerTest.java
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt b/app/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt
similarity index 82%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt
index 61ba61f..85e6cea 100644
--- a/app-test/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt
+++ b/app/src/test/kotlin/org/bspeice/minimalbible/SafeValDelegateKotlinTest.kt
@@ -12,12 +12,12 @@ class SafeValDelegateKotlinTest {
delegate = SafeValDelegate()
}
- Test(expected = javaClass())
+ Test(expected = IllegalStateException::class)
fun testDelegateNullSafety() {
delegate.get(null, PropertyMetadataImpl(""))
}
- Test(expected = javaClass())
+ Test(expected = IllegalStateException::class)
fun testDelegateAssignOnce() {
delegate.set(null, PropertyMetadataImpl(""), "")
delegate.set(null, PropertyMetadataImpl(""), "")
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/BookListFragmentTest.kt b/app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/BookListFragmentTest.kt
similarity index 100%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/BookListFragmentTest.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/BookListFragmentTest.kt
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/DLProgressEventSpek.kt b/app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/DLProgressEventSpek.kt
similarity index 100%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/DLProgressEventSpek.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/DLProgressEventSpek.kt
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/LocaleManagerSpek.kt b/app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/LocaleManagerSpek.kt
similarity index 100%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/LocaleManagerSpek.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/LocaleManagerSpek.kt
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/RefreshManagerSpek.kt b/app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/RefreshManagerSpek.kt
similarity index 100%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/RefreshManagerSpek.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/activity/downloader/manager/RefreshManagerSpek.kt
diff --git a/app-test/src/test/kotlin/org/bspeice/minimalbible/activity/search/MBIndexManagerSpek.kt b/app/src/test/kotlin/org/bspeice/minimalbible/activity/search/MBIndexManagerSpek.kt
similarity index 100%
rename from app-test/src/test/kotlin/org/bspeice/minimalbible/activity/search/MBIndexManagerSpek.kt
rename to app/src/test/kotlin/org/bspeice/minimalbible/activity/search/MBIndexManagerSpek.kt
diff --git a/build.gradle b/build.gradle
index 2975acb..71e1714 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,13 +1,13 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '0.11.91'
+ ext.kotlin_version = '0.12.213'
repositories {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:1.0.0'
+ classpath 'com.android.tools.build:gradle:1.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/jsword b/jsword
deleted file mode 160000
index 2dd8b0c..0000000
--- a/jsword
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2dd8b0c3038dafcebccfaf09e8452bc014c9e43d
diff --git a/jsword-minimalbible b/jsword-minimalbible
index 00b9da9..3da3166 160000
--- a/jsword-minimalbible
+++ b/jsword-minimalbible
@@ -1 +1 @@
-Subproject commit 00b9da93beac2d79f03c71b80c2b822fafa32a20
+Subproject commit 3da31666ef062b8b59a40492b7574f18b49f6f6d
diff --git a/settings.gradle b/settings.gradle
index 7aaccf7..91cdb59 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,2 +1 @@
-include ':app', ':app-test'
-include ':jsword-minimalbible'
+include ':app', ':jsword-minimalbible'