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'