From 17d97f58265510ceda0b38959a90424ee07b6910 Mon Sep 17 00:00:00 2001
From: 陈奇 <1650699704@qq.com>
Date: Tue, 13 Nov 2018 11:42:07 +0800
Subject: [PATCH] 1.0.3-1测试版本 [*]修改重新连接的方式 [*]修改商城连接 [*]修改心跳机制 [*]主要针对oppo和vivo机型添加开启定位服务

---
 .idea/libraries/Gradle__com_github_lecho_hellocharts_library_1_5_8.xml                                                                               |   12 
 .idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_4_1_jar.xml                                                                                    |   11 
 .idea/libraries/Gradle__com_lzy_net_okserver_1_1_3.xml                                                                                               |   12 
 app/src/main/java/com/moral/yunfushao/ui/PanelView.java                                                                                              |    2 
 .idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml                                                                                        |   11 
 .idea/libraries/Gradle__com_squareup_okio_okio_1_9_0_jar.xml                                                                                         |   11 
 app/src/main/res/layout/ac_register_layout.xml                                                                                                       |   52 +
 FastBleLib/src/main/java/com/clj/fastble/BleManager.java                                                                                             |   17 
 .idea/misc.xml                                                                                                                                       |   32 
 app/src/main/java/com/moral/yunfushao/fragment/FragmentSettings.java                                                                                 |    3 
 .idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml                                                                                |   11 
 app/src/main/java/com/moral/yunfushao/SampleApplication.java                                                                                         |   17 
 .idea/libraries/Gradle__com_tencent_bugly_nativecrashreport_3_3_1.xml                                                                                |   12 
 .idea/libraries/Gradle__com_tencent_tinker_tinker_android_lib_1_9_9.xml                                                                              |   15 
 .idea/libraries/Gradle__com_tencent_tinker_tinker_commons_1_9_9_jar.xml                                                                              |   11 
 FastBleLib/FastBleLib.iml                                                                                                                            |   71 +
 .gradle/4.1/fileHashes/resourceHashesCache.bin                                                                                                       |    0 
 app/build.gradle                                                                                                                                     |   29 
 app/app.iml                                                                                                                                          |  128 ++-
 .idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5.xml                                                         |   14 
 FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java                                                                                 |   49 -
 .idea/libraries/Gradle__com_tencent_tinker_tinker_android_loader_1_9_9.xml                                                                           |   15 
 app/tinker-support.gradle                                                                                                                            |  100 +++
 .idea/libraries/Gradle__com_daimajia_numberprogressbar_library_1_4.xml                                                                               |   12 
 .idea/libraries/Gradle__com_tencent_tinker_tinker_ziputils_1_9_9_jar.xml                                                                             |   11 
 .idea/libraries/Gradle__com_github_bumptech_glide_glide_3_7_0_jar.xml                                                                                |   11 
 .idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml                                                                                    |   11 
 .idea/libraries/Gradle__com_android_support_recyclerview_v7_25_3_1.xml                                                                               |   15 
 .idea/libraries/Gradle__com_contrarywind_Android_PickerView_3_1_2.xml                                                                                |   12 
 conf.gradle                                                                                                                                          |   14 
 .idea/libraries/Gradle__com_android_support_animated_vector_drawable_25_3_1.xml                                                                      |   12 
 .idea/libraries/Gradle__com_android_support_support_v13_25_3_1.xml                                                                                   |   12 
 .idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_0.xml                                                                    |   15 
 .idea/libraries/Gradle____local_aars____Users_chenqi_AndroidStudioProjects_pregnancy_guard_android_app_libs_BaiduLBS_Android_jar_unspecified_jar.xml |    9 
 .idea/libraries/Gradle__com_alibaba_fastjson_1_1_56_android_jar.xml                                                                                  |   11 
 .idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0_jar.xml                                                                                        |   11 
 .gradle/4.1/fileHashes/fileHashes.bin                                                                                                                |    0 
 .idea/libraries/Gradle__com_lzy_net_okgo_2_1_4.xml                                                                                                   |   12 
 .idea/libraries/Gradle__com_tencent_bugly_crashreport_upgrade_1_3_6.xml                                                                              |   12 
 .idea/libraries/Gradle__in_srain_cube_ultra_ptr_1_0_11.xml                                                                                           |   12 
 app/src/main/res/layout/fragment_monitor_layout.xml                                                                                                  |    4 
 .idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_4_4.xml                                                                             |   12 
 .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml                                                                                       |   11 
 .gradle/4.1/taskHistory/taskHistory.lock                                                                                                             |    0 
 .gradle/4.1/javaCompile/taskHistory.bin                                                                                                              |    0 
 app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java                                                                                |  121 ++-
 .idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml                                                                                          |   11 
 .idea/libraries/Gradle__com_google_code_gson_gson_2_8_0_jar.xml                                                                                      |   11 
 .idea/libraries/Gradle__com_tencent_tinker_aosp_dexutils_1_9_9_jar.xml                                                                               |   11 
 .gradle/4.1/taskHistory/taskHistory.bin                                                                                                              |    0 
 .gradle/4.1/javaCompile/classAnalysis.bin                                                                                                            |    0 
 .idea/libraries/Gradle__com_tencent_tinker_bsdiff_util_1_9_9_jar.xml                                                                                 |   11 
 andbrickslib/andbrickslib.iml                                                                                                                        |  100 ++-
 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_0_2.xml                                                                   |   10 
 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2.xml                                                         |   14 
 .idea/libraries/Gradle__junit_junit_4_12_jar.xml                                                                                                     |   11 
 app/src/main/java/com/moral/yunfushao/SampleApplicationLike.java                                                                                     |  163 +++++
 app/src/main/java/com/moral/yunfushao/fragment/FragmentShoppongMall.java                                                                             |   21 
 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml                                                        |    9 
 .idea/libraries/Gradle__com_android_support_support_fragment_25_3_1.xml                                                                              |   15 
 app/src/main/java/com/moral/yunfushao/MainApp.java                                                                                                   |    8 
 .gradle/4.1/taskHistory/fileSnapshots.bin                                                                                                            |    0 
 build.gradle                                                                                                                                         |    2 
 .idea/libraries/Gradle__com_android_support_support_annotations_25_3_1_jar.xml                                                                       |   16 
 .idea/libraries/Gradle__com_pnikosis_materialish_progress_1_0.xml                                                                                    |   12 
 app/src/main/res/drawable/choose_button.xml                                                                                                          |   14 
 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2.xml                                                                    |   14 
 app/src/main/java/com/moral/yunfushao/base/BaseActivity.java                                                                                         |   17 
 .idea/libraries/Gradle__com_android_support_multidex_1_0_1.xml                                                                                       |   10 
 .gradle/4.1/javaCompile/jarAnalysis.bin                                                                                                              |    0 
 .gradle/4.1/fileHashes/fileHashes.lock                                                                                                               |    0 
 .idea/libraries/Gradle__com_android_support_appcompat_v7_25_3_1.xml                                                                                  |   15 
 app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java                                                                                      |   29 
 app/src/main/AndroidManifest.xml                                                                                                                     |   23 
 .idea/libraries/Gradle__com_android_support_test_rules_0_5.xml                                                                                       |   17 
 app/libs/bugly_crashreport_upgrade-1.3.5.aar                                                                                                         |    0 
 .gradle/4.1/javaCompile/taskJars.bin                                                                                                                 |    0 
 .idea/libraries/Gradle__com_android_support_support_compat_25_3_1.xml                                                                                |   15 
 .idea/libraries/Gradle__com_android_support_support_vector_drawable_25_3_1.xml                                                                       |   12 
 .idea/libraries/Gradle__pub_devrel_easypermissions_0_4_0.xml                                                                                         |   12 
 .idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_4_4.xml                                                                          |   15 
 .idea/libraries/Gradle__com_android_support_support_v4_25_3_1.xml                                                                                    |   10 
 .idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2_jar.xml                                                                            |   11 
 app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java                                                                                  |   71 +
 app/src/main/res/layout/fragment_setting_layout.xml                                                                                                  |    6 
 .gradle/4.1/javaCompile/javaCompile.lock                                                                                                             |    0 
 .idea/libraries/Gradle__com_android_support_support_media_compat_25_3_1.xml                                                                          |   15 
 .idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml                                                                                |    9 
 .idea/libraries/Gradle__com_android_support_support_core_ui_25_3_1.xml                                                                               |   15 
 app/src/main/java/com/moral/yunfushao/common/API.java                                                                                                |    3 
 .idea/libraries/Gradle__com_android_support_support_core_utils_25_3_1.xml                                                                            |   15 
 FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java                                                                                      |   35 
 app/src/main/java/com/moral/yunfushao/MainActivity.java                                                                                              |   26 
 .idea/libraries/Gradle__com_android_support_test_runner_0_5.xml                                                                                      |   17 
 94 files changed, 1,505 insertions(+), 321 deletions(-)

diff --git a/.gradle/4.1/fileHashes/fileHashes.bin b/.gradle/4.1/fileHashes/fileHashes.bin
index 37aa106..92d68df 100644
--- a/.gradle/4.1/fileHashes/fileHashes.bin
+++ b/.gradle/4.1/fileHashes/fileHashes.bin
Binary files differ
diff --git a/.gradle/4.1/fileHashes/fileHashes.lock b/.gradle/4.1/fileHashes/fileHashes.lock
index b42e628..92ef62a 100644
--- a/.gradle/4.1/fileHashes/fileHashes.lock
+++ b/.gradle/4.1/fileHashes/fileHashes.lock
Binary files differ
diff --git a/.gradle/4.1/fileHashes/resourceHashesCache.bin b/.gradle/4.1/fileHashes/resourceHashesCache.bin
index 7555000..f9b7cbf 100644
--- a/.gradle/4.1/fileHashes/resourceHashesCache.bin
+++ b/.gradle/4.1/fileHashes/resourceHashesCache.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/classAnalysis.bin b/.gradle/4.1/javaCompile/classAnalysis.bin
index 9f709de..80286f3 100644
--- a/.gradle/4.1/javaCompile/classAnalysis.bin
+++ b/.gradle/4.1/javaCompile/classAnalysis.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/jarAnalysis.bin b/.gradle/4.1/javaCompile/jarAnalysis.bin
index 8c09110..64afd1f 100644
--- a/.gradle/4.1/javaCompile/jarAnalysis.bin
+++ b/.gradle/4.1/javaCompile/jarAnalysis.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/javaCompile.lock b/.gradle/4.1/javaCompile/javaCompile.lock
index aa1aed5..075ba56 100644
--- a/.gradle/4.1/javaCompile/javaCompile.lock
+++ b/.gradle/4.1/javaCompile/javaCompile.lock
Binary files differ
diff --git a/.gradle/4.1/javaCompile/taskHistory.bin b/.gradle/4.1/javaCompile/taskHistory.bin
index ba376eb..5ba0a1f 100644
--- a/.gradle/4.1/javaCompile/taskHistory.bin
+++ b/.gradle/4.1/javaCompile/taskHistory.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/taskJars.bin b/.gradle/4.1/javaCompile/taskJars.bin
index 68a7e63..e24d6cf 100644
--- a/.gradle/4.1/javaCompile/taskJars.bin
+++ b/.gradle/4.1/javaCompile/taskJars.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/fileSnapshots.bin b/.gradle/4.1/taskHistory/fileSnapshots.bin
index 0aae236..75e626b 100644
--- a/.gradle/4.1/taskHistory/fileSnapshots.bin
+++ b/.gradle/4.1/taskHistory/fileSnapshots.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/taskHistory.bin b/.gradle/4.1/taskHistory/taskHistory.bin
index 7874806..76cb865 100644
--- a/.gradle/4.1/taskHistory/taskHistory.bin
+++ b/.gradle/4.1/taskHistory/taskHistory.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/taskHistory.lock b/.gradle/4.1/taskHistory/taskHistory.lock
index c955dac..1eac5d6 100644
--- a/.gradle/4.1/taskHistory/taskHistory.lock
+++ b/.gradle/4.1/taskHistory/taskHistory.lock
Binary files differ
diff --git a/.idea/libraries/Gradle____local_aars____Users_chenqi_AndroidStudioProjects_pregnancy_guard_android_app_libs_BaiduLBS_Android_jar_unspecified_jar.xml b/.idea/libraries/Gradle____local_aars____Users_chenqi_AndroidStudioProjects_pregnancy_guard_android_app_libs_BaiduLBS_Android_jar_unspecified_jar.xml
new file mode 100644
index 0000000..131bf57
--- /dev/null
+++ b/.idea/libraries/Gradle____local_aars____Users_chenqi_AndroidStudioProjects_pregnancy_guard_android_app_libs_BaiduLBS_Android_jar_unspecified_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: __local_aars__:/Users/chenqi/AndroidStudioProjects/pregnancy_guard_android/app/libs/BaiduLBS_Android.jar:unspecified@jar">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/app/libs/BaiduLBS_Android.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_4_4.xml b/.idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_4_4.xml
new file mode 100644
index 0000000..3695aae
--- /dev/null
+++ b/.idea/libraries/Gradle__com_afollestad_material_dialogs_commons_0_9_4_4.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/commons-0.9.4.4.aar/fddeae04668658ba55286c5959082dde/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/commons-0.9.4.4.aar/fddeae04668658ba55286c5959082dde/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/commons-0.9.4.4.aar/fddeae04668658ba55286c5959082dde/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.afollestad.material-dialogs/commons/0.9.4.4/6f6f75b476078511f13fb7d08efa33414477838d/commons-0.9.4.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_4_4.xml b/.idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_4_4.xml
new file mode 100644
index 0000000..e5d95e9
--- /dev/null
+++ b/.idea/libraries/Gradle__com_afollestad_material_dialogs_core_0_9_4_4.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/core-0.9.4.4.aar/5808c912607c9c0fb6b286b9b73df3df/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/core-0.9.4.4.aar/5808c912607c9c0fb6b286b9b73df3df/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.afollestad.material-dialogs/core/0.9.4.4/23cbc9c17684233e5704844a176bbd4b75774eaa/core-0.9.4.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_alibaba_fastjson_1_1_56_android_jar.xml b/.idea/libraries/Gradle__com_alibaba_fastjson_1_1_56_android_jar.xml
new file mode 100644
index 0000000..5b2dafd
--- /dev/null
+++ b/.idea/libraries/Gradle__com_alibaba_fastjson_1_1_56_android_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.alibaba:fastjson:1.1.56.android@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.alibaba/fastjson/1.1.56.android/4eef0ac3ef5e18db7af5d44ca0228ca5c29dd2f6/fastjson-1.1.56.android.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.alibaba/fastjson/1.1.56.android/4b5bae918e858319857f429e397326f6b98793d4/fastjson-1.1.56.android-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_25_3_1.xml
new file mode 100644
index 0000000..3571e39
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_25_3_1.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:animated-vector-drawable-25.3.1">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-25.3.1.aar/c159abf01a50a246e9de7a0a9a9adf0a/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-25.3.1.aar/c159abf01a50a246e9de7a0a9a9adf0a/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/animated-vector-drawable/25.3.1/animated-vector-drawable-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_appcompat_v7_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_appcompat_v7_25_3_1.xml
new file mode 100644
index 0000000..2aad8cc
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_appcompat_v7_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:appcompat-v7-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.3.1.aar/03306f7c55bbcea5d1165fc1b466b7ee/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.3.1.aar/03306f7c55bbcea5d1165fc1b466b7ee/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-25.3.1.aar/03306f7c55bbcea5d1165fc1b466b7ee/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_0_2.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_0_2.xml
new file mode 100644
index 0000000..aacf634
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_0_2.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout-1.0.2">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.0.2.aar/df3a5952978da9d0f2bec9fe644dbf8d/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/constraint-layout-1.0.2.aar/df3a5952978da9d0f2bec9fe644dbf8d/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml
new file mode 100644
index 0000000..b5bafe9
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.0.2@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.2/constraint-layout-solver-1.0.2.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_multidex_1_0_1.xml b/.idea/libraries/Gradle__com_android_support_multidex_1_0_1.xml
new file mode 100644
index 0000000..ad06ba8
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_multidex_1_0_1.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:multidex-1.0.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/multidex-1.0.1.aar/b1501bdfebb153757df2c15eb485907c/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/multidex-1.0.1.aar/b1501bdfebb153757df2c15eb485907c/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_25_3_1.xml
new file mode 100644
index 0000000..7191692
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:recyclerview-v7-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-25.3.1.aar/0d2c5960817ddd389787732d61995687/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-25.3.1.aar/0d2c5960817ddd389787732d61995687/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-25.3.1.aar/0d2c5960817ddd389787732d61995687/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/recyclerview-v7/25.3.1/recyclerview-v7-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_annotations_25_3_1_jar.xml b/.idea/libraries/Gradle__com_android_support_support_annotations_25_3_1_jar.xml
new file mode 100644
index 0000000..94df532
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_annotations_25_3_1_jar.xml
@@ -0,0 +1,16 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-annotations:25.3.1@jar">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/25.3.1/support-annotations-25.3.1-annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/25.3.1/support-annotations-25.3.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/25.3.1/support-annotations-25.3.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-annotations/25.3.1/support-annotations-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_compat_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_compat_25_3_1.xml
new file mode 100644
index 0000000..0dc4e04
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_compat_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-compat-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-25.3.1.aar/f6fe5b88e919f2f233f16662b09121f4/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-25.3.1.aar/f6fe5b88e919f2f233f16662b09121f4/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-25.3.1.aar/f6fe5b88e919f2f233f16662b09121f4/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-compat/25.3.1/support-compat-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_ui_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_core_ui_25_3_1.xml
new file mode 100644
index 0000000..4ce5f4b
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_core_ui_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-ui-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-25.3.1.aar/0fd5530f2437c763ebc33721eb44068c/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-25.3.1.aar/0fd5530f2437c763ebc33721eb44068c/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-25.3.1.aar/0fd5530f2437c763ebc33721eb44068c/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-core-ui/25.3.1/support-core-ui-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_utils_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_core_utils_25_3_1.xml
new file mode 100644
index 0000000..945edf4
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_core_utils_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-core-utils-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-25.3.1.aar/42ec7f868c6d56691752965ca1bcb191/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-25.3.1.aar/42ec7f868c6d56691752965ca1bcb191/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-25.3.1.aar/42ec7f868c6d56691752965ca1bcb191/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-core-utils/25.3.1/support-core-utils-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_fragment_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_fragment_25_3_1.xml
new file mode 100644
index 0000000..2124538
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_fragment_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-fragment-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-25.3.1.aar/4091358fd996a8cbe9b0f4d51e9fe0e9/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-25.3.1.aar/4091358fd996a8cbe9b0f4d51e9fe0e9/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-25.3.1.aar/4091358fd996a8cbe9b0f4d51e9fe0e9/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-fragment/25.3.1/support-fragment-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_media_compat_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_media_compat_25_3_1.xml
new file mode 100644
index 0000000..3bf3469
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_media_compat_25_3_1.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-media-compat-25.3.1">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-25.3.1.aar/6d249c224fb3674af1b8cba02689742b/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-25.3.1.aar/6d249c224fb3674af1b8cba02689742b/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-25.3.1.aar/6d249c224fb3674af1b8cba02689742b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-media-compat/25.3.1/support-media-compat-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_v13_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_v13_25_3_1.xml
new file mode 100644
index 0000000..e891ff3
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_v13_25_3_1.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-v13-25.3.1">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v13-25.3.1.aar/ddcbb506878adf055b411c6b579eeb42/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v13-25.3.1.aar/ddcbb506878adf055b411c6b579eeb42/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-v13/25.3.1/support-v13-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_v4_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_v4_25_3_1.xml
new file mode 100644
index 0000000..05709bd
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_v4_25_3_1.xml
@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-v4-25.3.1">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-25.3.1.aar/c18892df0bf0298343eff658187baca5/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-25.3.1.aar/c18892df0bf0298343eff658187baca5/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_25_3_1.xml b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_25_3_1.xml
new file mode 100644
index 0000000..02ef29a
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_25_3_1.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support:support-vector-drawable-25.3.1">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-25.3.1.aar/5873f37203123af57396d823c55cbcf4/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-25.3.1.aar/5873f37203123af57396d823c55cbcf4/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/support-vector-drawable/25.3.1/support-vector-drawable-25.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2.xml
new file mode 100644
index 0000000..c08112a
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_2_2_2.xml
@@ -0,0 +1,14 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-2.2.2.aar/8582a660a4109e21b7e303682ea46a85/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-core-2.2.2.aar/8582a660a4109e21b7e303682ea46a85/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/espresso/espresso-core/2.2.2/espresso-core-2.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/espresso/espresso-core/2.2.2/espresso-core-2.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2.xml
new file mode 100644
index 0000000..e052d01
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_2_2_2.xml
@@ -0,0 +1,14 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-2.2.2.aar/be02ce9692e456eb6c9d786503ac3f3c/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/espresso-idling-resource-2.2.2.aar/be02ce9692e456eb6c9d786503ac3f3c/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/espresso/espresso-idling-resource/2.2.2/espresso-idling-resource-2.2.2-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/espresso/espresso-idling-resource/2.2.2/espresso-idling-resource-2.2.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5.xml b/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5.xml
new file mode 100644
index 0000000..734f100
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_exposed_instrumentation_api_publish_0_5.xml
@@ -0,0 +1,14 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/exposed-instrumentation-api-publish-0.5.aar/e5dcbe52691fe80af7f3f6e6774f08df/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/exposed-instrumentation-api-publish-0.5.aar/e5dcbe52691fe80af7f3f6e6774f08df/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/exposed-instrumentation-api-publish/0.5/exposed-instrumentation-api-publish-0.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/exposed-instrumentation-api-publish/0.5/exposed-instrumentation-api-publish-0.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_rules_0_5.xml b/.idea/libraries/Gradle__com_android_support_test_rules_0_5.xml
new file mode 100644
index 0000000..e6acff4
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_rules_0_5.xml
@@ -0,0 +1,17 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:rules-0.5">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/33c535b9bfeb0d0733d348f547617885/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/33c535b9bfeb0d0733d348f547617885/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/rules-0.5.aar/33c535b9bfeb0d0733d348f547617885/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/rules/0.5/rules-0.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/rules/0.5/rules-0.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_runner_0_5.xml b/.idea/libraries/Gradle__com_android_support_test_runner_0_5.xml
new file mode 100644
index 0000000..eccae77
--- /dev/null
+++ b/.idea/libraries/Gradle__com_android_support_test_runner_0_5.xml
@@ -0,0 +1,17 @@
+<component name="libraryTable">
+  <library name="Gradle: com.android.support.test:runner-0.5">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/51e2f325be732064d5a40958ceac211f/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/51e2f325be732064d5a40958ceac211f/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runner-0.5.aar/51e2f325be732064d5a40958ceac211f/res" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/runner/0.5/runner-0.5-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/test/runner/0.5/runner-0.5-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_contrarywind_Android_PickerView_3_1_2.xml b/.idea/libraries/Gradle__com_contrarywind_Android_PickerView_3_1_2.xml
new file mode 100644
index 0000000..da7d64d
--- /dev/null
+++ b/.idea/libraries/Gradle__com_contrarywind_Android_PickerView_3_1_2.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.contrarywind:Android-PickerView-3.1.2">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/Android-PickerView-3.1.2.aar/1abad93f184fb2e61fd67e128b2da37f/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/Android-PickerView-3.1.2.aar/1abad93f184fb2e61fd67e128b2da37f/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.contrarywind/Android-PickerView/3.1.2/3010441a4ebae09df147611c6d7c71e90218e6c4/Android-PickerView-3.1.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_daimajia_numberprogressbar_library_1_4.xml b/.idea/libraries/Gradle__com_daimajia_numberprogressbar_library_1_4.xml
new file mode 100644
index 0000000..42e26d1
--- /dev/null
+++ b/.idea/libraries/Gradle__com_daimajia_numberprogressbar_library_1_4.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.daimajia.numberprogressbar:library-1.4">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/library-1.4.aar/e8a706eaa0bbee30b9abdbc71c78abaf/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/library-1.4.aar/e8a706eaa0bbee30b9abdbc71c78abaf/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.daimajia.numberprogressbar/library/1.4/fcc2dd900e02a61ee357ada5e620bd9f9344a064/library-1.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_github_bumptech_glide_glide_3_7_0_jar.xml b/.idea/libraries/Gradle__com_github_bumptech_glide_glide_3_7_0_jar.xml
new file mode 100644
index 0000000..180a068
--- /dev/null
+++ b/.idea/libraries/Gradle__com_github_bumptech_glide_glide_3_7_0_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.github.bumptech.glide:glide:3.7.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.7.0/9e9eeaf9948ee4d6c3ab354e8dc14368f16994a4/glide-3.7.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.7.0/24a0b0e63af9530bcedd06ed1983a4f2f02155a3/glide-3.7.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_github_lecho_hellocharts_library_1_5_8.xml b/.idea/libraries/Gradle__com_github_lecho_hellocharts_library_1_5_8.xml
new file mode 100644
index 0000000..4017f11
--- /dev/null
+++ b/.idea/libraries/Gradle__com_github_lecho_hellocharts_library_1_5_8.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.github.lecho:hellocharts-library-1.5.8">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/hellocharts-library-1.5.8.aar/3efe85d3c8193133205e59a9b0ab7704/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/hellocharts-library-1.5.8.aar/3efe85d3c8193133205e59a9b0ab7704/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.lecho/hellocharts-library/1.5.8/51798d4793c333553a68292ee3a47b4758c2ec47/hellocharts-library-1.5.8-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
new file mode 100644
index 0000000..947e251
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
@@ -0,0 +1,9 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_0_jar.xml b/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_0_jar.xml
new file mode 100644
index 0000000..1b5f1e6
--- /dev/null
+++ b/.idea/libraries/Gradle__com_google_code_gson_gson_2_8_0_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.google.code.gson:gson:2.8.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/c4ba5371a29ac9b2ad6129b1d39ea38750043eff/gson-2.8.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.0/baf95d8519fc1a11d388f8543cb40cd2bb9d66dc/gson-2.8.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_lzy_net_okgo_2_1_4.xml b/.idea/libraries/Gradle__com_lzy_net_okgo_2_1_4.xml
new file mode 100644
index 0000000..af49698
--- /dev/null
+++ b/.idea/libraries/Gradle__com_lzy_net_okgo_2_1_4.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.lzy.net:okgo-2.1.4">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/okgo-2.1.4.aar/96f97a5f3317096675d235a351d4b0ee/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/okgo-2.1.4.aar/96f97a5f3317096675d235a351d4b0ee/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.lzy.net/okgo/2.1.4/c592fc30b9a9be1b3315af76dd69cfce5b09fae8/okgo-2.1.4-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_lzy_net_okserver_1_1_3.xml b/.idea/libraries/Gradle__com_lzy_net_okserver_1_1_3.xml
new file mode 100644
index 0000000..869caae
--- /dev/null
+++ b/.idea/libraries/Gradle__com_lzy_net_okserver_1_1_3.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.lzy.net:okserver-1.1.3">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/okserver-1.1.3.aar/4756b58038e66fa48f6f5a183970ad3c/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/okserver-1.1.3.aar/4756b58038e66fa48f6f5a183970ad3c/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.lzy.net/okserver/1.1.3/bad9ac00bed49d0837c2072b3b3de62b0efcbbc4/okserver-1.1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_pnikosis_materialish_progress_1_0.xml b/.idea/libraries/Gradle__com_pnikosis_materialish_progress_1_0.xml
new file mode 100644
index 0000000..5259262
--- /dev/null
+++ b/.idea/libraries/Gradle__com_pnikosis_materialish_progress_1_0.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.pnikosis:materialish-progress-1.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/materialish-progress-1.0.aar/b24cd27d4154b26e3d30f146b762e3a8/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/materialish-progress-1.0.aar/b24cd27d4154b26e3d30f146b762e3a8/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.pnikosis/materialish-progress/1.0/27fea1adaf2e3fca647208c0f5c65dff96eed495/materialish-progress-1.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
new file mode 100644
index 0000000..5c4dd4e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup:javawriter:2.1.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/67ff45d9ae02e583d0f9b3432a5ebbe05c30c966/javawriter-2.1.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.1.1/5b31387d839a5cdaf5b6de3990da01f7f2b963c5/javawriter-2.1.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_4_1_jar.xml b/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_4_1_jar.xml
new file mode 100644
index 0000000..18b4c5f
--- /dev/null
+++ b/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_4_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup.okhttp3:okhttp:3.4.1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.4.1/c7c4f9e35c2fd5900da24f9872e3971801f08ce0/okhttp-3.4.1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.4.1/70fca5cd856d0cc740e43affeb6f661204fdb2cc/okhttp-3.4.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_okio_okio_1_9_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okio_okio_1_9_0_jar.xml
new file mode 100644
index 0000000..d3e4934
--- /dev/null
+++ b/.idea/libraries/Gradle__com_squareup_okio_okio_1_9_0_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.squareup.okio:okio:1.9.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.9.0/f824591a0016efbaeddb8300bee54832a1398cfa/okio-1.9.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.9.0/3aaaf83694e8c88e8c33c71b609f0ad506007a4a/okio-1.9.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_bugly_crashreport_upgrade_1_3_6.xml b/.idea/libraries/Gradle__com_tencent_bugly_crashreport_upgrade_1_3_6.xml
new file mode 100644
index 0000000..985b8f4
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_bugly_crashreport_upgrade_1_3_6.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.bugly:crashreport_upgrade-1.3.6">
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/crashreport_upgrade-1.3.6.aar/41c79bfd3fe1ad8eeaf4312a672eb42c/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/crashreport_upgrade-1.3.6.aar/41c79bfd3fe1ad8eeaf4312a672eb42c/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.bugly/crashreport_upgrade/1.3.6/58cea176a0409b4e6f1085ed618b35b023955e7/crashreport_upgrade-1.3.6-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_bugly_nativecrashreport_3_3_1.xml b/.idea/libraries/Gradle__com_tencent_bugly_nativecrashreport_3_3_1.xml
new file mode 100644
index 0000000..4cbced8
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_bugly_nativecrashreport_3_3_1.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.bugly:nativecrashreport-3.3.1">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/nativecrashreport-3.3.1.aar/dbf30888a466adc38f72b3667bf822c2/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/nativecrashreport-3.3.1.aar/dbf30888a466adc38f72b3667bf822c2/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.bugly/nativecrashreport/3.3.1/485c1911d7eb2f37492639c39c32e4a0e5a5c11f/nativecrashreport-3.3.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_aosp_dexutils_1_9_9_jar.xml b/.idea/libraries/Gradle__com_tencent_tinker_aosp_dexutils_1_9_9_jar.xml
new file mode 100644
index 0000000..28870ee
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_aosp_dexutils_1_9_9_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:aosp-dexutils:1.9.9@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/aosp-dexutils/1.9.9/a63b69047bc0041cfb9b8f120eb81b7630eb224b/aosp-dexutils-1.9.9.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/aosp-dexutils/1.9.9/4859f992d8669838de1983236a0e066f3d24cdf8/aosp-dexutils-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_bsdiff_util_1_9_9_jar.xml b/.idea/libraries/Gradle__com_tencent_tinker_bsdiff_util_1_9_9_jar.xml
new file mode 100644
index 0000000..400572e
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_bsdiff_util_1_9_9_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:bsdiff-util:1.9.9@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/bsdiff-util/1.9.9/9ae926031682ef387ec5afdef12229b4f03270f5/bsdiff-util-1.9.9.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/bsdiff-util/1.9.9/3192409d81a578fa916a591acd261e3f51bf42ed/bsdiff-util-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_lib_1_9_9.xml b/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_lib_1_9_9.xml
new file mode 100644
index 0000000..ccafd94
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_lib_1_9_9.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:tinker-android-lib-1.9.9">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-lib-1.9.9.aar/a0020a86c4c2280c3480403bedb56e08/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-lib-1.9.9.aar/a0020a86c4c2280c3480403bedb56e08/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-lib-1.9.9.aar/a0020a86c4c2280c3480403bedb56e08/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-android-lib/1.9.9/5322d7cc44efb589e6b0c25edde821884e8b8583/tinker-android-lib-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_loader_1_9_9.xml b/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_loader_1_9_9.xml
new file mode 100644
index 0000000..72430d9
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_tinker_android_loader_1_9_9.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:tinker-android-loader-1.9.9">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-loader-1.9.9.aar/5132ed48694f724e8dac239d9f48c3a9/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-loader-1.9.9.aar/5132ed48694f724e8dac239d9f48c3a9/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/tinker-android-loader-1.9.9.aar/5132ed48694f724e8dac239d9f48c3a9/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-android-loader/1.9.9/f3fa9ccb5f7e75d94a8b6d307c450337edcadc38/tinker-android-loader-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_tinker_commons_1_9_9_jar.xml b/.idea/libraries/Gradle__com_tencent_tinker_tinker_commons_1_9_9_jar.xml
new file mode 100644
index 0000000..369bf16
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_tinker_commons_1_9_9_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:tinker-commons:1.9.9@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-commons/1.9.9/4af248b2b39ac366d6ca8b1f10a0630e092d92cf/tinker-commons-1.9.9.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-commons/1.9.9/af31ccf85a6c6379b73c3fe3e44cf4af8d8348cc/tinker-commons-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_tencent_tinker_tinker_ziputils_1_9_9_jar.xml b/.idea/libraries/Gradle__com_tencent_tinker_tinker_ziputils_1_9_9_jar.xml
new file mode 100644
index 0000000..debcb0c
--- /dev/null
+++ b/.idea/libraries/Gradle__com_tencent_tinker_tinker_ziputils_1_9_9_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: com.tencent.tinker:tinker-ziputils:1.9.9@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-ziputils/1.9.9/57894244db33610ceb85ed1f8751a8a6c814e385/tinker-ziputils-1.9.9.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-ziputils/1.9.9/734638e3c29eddb470a1659d6c121b6faff048f5/tinker-ziputils-1.9.9-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__in_srain_cube_ultra_ptr_1_0_11.xml b/.idea/libraries/Gradle__in_srain_cube_ultra_ptr_1_0_11.xml
new file mode 100644
index 0000000..af57517
--- /dev/null
+++ b/.idea/libraries/Gradle__in_srain_cube_ultra_ptr_1_0_11.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: in.srain.cube:ultra-ptr-1.0.11">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/ultra-ptr-1.0.11.aar/a1615e8c075418694cf92e560439e752/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/ultra-ptr-1.0.11.aar/a1615e8c075418694cf92e560439e752/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/in.srain.cube/ultra-ptr/1.0.11/48c7d061c113c372fb728c7e6702100faffd7d35/ultra-ptr-1.0.11-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2_jar.xml b/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2_jar.xml
new file mode 100644
index 0000000..568ea48
--- /dev/null
+++ b/.idea/libraries/Gradle__javax_annotation_javax_annotation_api_1_2_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.annotation:javax.annotation-api:1.2@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.2/479c1e06db31c432330183f5cae684163f186146/javax.annotation-api-1.2.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.annotation/javax.annotation-api/1.2/ad18a02db08eaee697f812e333f692fc51129e4a/javax.annotation-api-1.2-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
new file mode 100644
index 0000000..f9c9a30
--- /dev/null
+++ b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: javax.inject:javax.inject:1@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/a00123f261762a7c5e0ec916a2c7c8298d29c400/javax.inject-1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
new file mode 100644
index 0000000..f4f25a8
--- /dev/null
+++ b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: junit:junit:4.12@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/2973d150c0dc1fefe998f834810d68f278ea58ec/junit-4.12.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/junit/junit/4.12/a6c32b40bf3d76eca54e3c601e5d1470c86fcdfa/junit-4.12-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_0.xml b/.idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_0.xml
new file mode 100644
index 0000000..3279b29
--- /dev/null
+++ b/.idea/libraries/Gradle__me_zhanghai_android_materialprogressbar_library_1_4_0.xml
@@ -0,0 +1,15 @@
+<component name="libraryTable">
+  <library name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0">
+    <ANNOTATIONS>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/library-1.4.0.aar/874fd925032d2e919aec185d8ce5a313/annotations.zip!/" />
+    </ANNOTATIONS>
+    <CLASSES>
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/library-1.4.0.aar/874fd925032d2e919aec185d8ce5a313/res" />
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/library-1.4.0.aar/874fd925032d2e919aec185d8ce5a313/jars/classes.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/me.zhanghai.android.materialprogressbar/library/1.4.0/d518e296d1e67576916497bcecc2c7ca16db6467/library-1.4.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0_jar.xml b/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0_jar.xml
new file mode 100644
index 0000000..5946796
--- /dev/null
+++ b/.idea/libraries/Gradle__org_greenrobot_eventbus_3_0_0_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.greenrobot:eventbus:3.0.0@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.greenrobot/eventbus/3.0.0/ddd99896e9569eaababbe81b35d80e1b91c4ad85/eventbus-3.0.0.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.greenrobot/eventbus/3.0.0/777f0a941d3dd0f9988d4f22b42b36ce2fe64ea4/eventbus-3.0.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
new file mode 100644
index 0000000..50cf2b9
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-core:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/42a25dc3219429f0e5d060061f71acb49bf010a0/hamcrest-core-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-core/1.3/1dc37250fbc78e23a65a67fbbaf71d2e9cbc3c0b/hamcrest-core-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
new file mode 100644
index 0000000..a5eaca5
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/5de0c73fef18917cd85d0ab70bb23818685e4dfd/hamcrest-integration-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-integration/1.3/ae7787a563e6a1b1f17fd4ac43be3a3c8830cfda/hamcrest-integration-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
new file mode 100644
index 0000000..b4dabdc
--- /dev/null
+++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
@@ -0,0 +1,11 @@
+<component name="libraryTable">
+  <library name="Gradle: org.hamcrest:hamcrest-library:1.3@jar">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/4785a3c21320980282f9f33d0d1264a69040538f/hamcrest-library-1.3.jar!/" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-library/1.3/47a7ee46628ab7133129cd7cef1e92657bc275e/hamcrest-library-1.3-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__pub_devrel_easypermissions_0_4_0.xml b/.idea/libraries/Gradle__pub_devrel_easypermissions_0_4_0.xml
new file mode 100644
index 0000000..5e89458
--- /dev/null
+++ b/.idea/libraries/Gradle__pub_devrel_easypermissions_0_4_0.xml
@@ -0,0 +1,12 @@
+<component name="libraryTable">
+  <library name="Gradle: pub.devrel:easypermissions-0.4.0">
+    <CLASSES>
+      <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/easypermissions-0.4.0.aar/180f91394749c55f5209568adcee238b/jars/classes.jar!/" />
+      <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/easypermissions-0.4.0.aar/180f91394749c55f5209568adcee238b/res" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES>
+      <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/pub.devrel/easypermissions/0.4.0/bbc7c5db3a209a1b6419eb3c74db44329a44b25b/easypermissions-0.4.0-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9f11ac0..a245da9 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="MarkdownProjectSettings">
-    <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true">
+  <component name="MarkdownProjectSettings" wasCopied="true">
+    <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">
       <PanelProvider>
         <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
       </PanelProvider>
     </PreviewSettings>
-    <ParserSettings gitHubSyntaxChange="false">
+    <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="0" emojiImages="0">
       <PegdownExtensions>
         <option name="ABBREVIATIONS" value="false" />
         <option name="ANCHORLINKS" value="true" />
@@ -34,21 +34,30 @@
         <option name="WIKILINKS" value="true" />
       </PegdownExtensions>
       <ParserOptions>
+        <option name="ADMONITION_EXT" value="false" />
+        <option name="ATTRIBUTES_EXT" value="false" />
         <option name="COMMONMARK_LISTS" value="true" />
         <option name="DUMMY" value="false" />
         <option name="EMOJI_SHORTCUTS" value="true" />
+        <option name="ENUMERATED_REFERENCES_EXT" value="false" />
         <option name="FLEXMARK_FRONT_MATTER" value="false" />
         <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
         <option name="GFM_TABLE_RENDERING" value="true" />
         <option name="GITBOOK_URL_ENCODING" value="false" />
-        <option name="GITHUB_EMOJI_URL" value="false" />
         <option name="GITHUB_LISTS" value="false" />
         <option name="GITHUB_WIKI_LINKS" value="true" />
+        <option name="GITLAB_EXT" value="false" />
+        <option name="GITLAB_MATH_EXT" value="false" />
+        <option name="GITLAB_MERMAID_EXT" value="false" />
+        <option name="HEADER_ID_NO_DUPED_DASHES" value="false" />
         <option name="JEKYLL_FRONT_MATTER" value="false" />
+        <option name="MACROS_EXT" value="false" />
+        <option name="NO_TEXT_ATTRIBUTES" value="false" />
+        <option name="PARSE_HTML_ANCHOR_ID" value="false" />
         <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
       </ParserOptions>
     </ParserSettings>
-    <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false">
+    <HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true">
       <GeneratorProvider>
         <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
       </GeneratorProvider>
@@ -57,14 +66,15 @@
       <bodyTop />
       <bodyBottom />
     </HtmlSettings>
-    <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true">
+    <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
       <StylesheetProvider>
         <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
       </StylesheetProvider>
       <ScriptProviders />
       <cssText />
+      <cssUriHistory />
     </CssSettings>
-    <HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
+    <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
     <LinkMapSettings>
       <textMaps />
     </LinkMapSettings>
@@ -74,22 +84,26 @@
     <option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
     <option name="myNullables">
       <value>
-        <list size="5">
+        <list size="7">
           <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
           <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
           <item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
           <item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
           <item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+          <item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
+          <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
         </list>
       </value>
     </option>
     <option name="myNotNulls">
       <value>
-        <list size="4">
+        <list size="6">
           <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
           <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
           <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
           <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+          <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
+          <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
         </list>
       </value>
     </option>
diff --git a/FastBleLib/FastBleLib.iml b/FastBleLib/FastBleLib.iml
index 71d5486..9a2ba05 100644
--- a/FastBleLib/FastBleLib.iml
+++ b/FastBleLib/FastBleLib.iml
@@ -8,11 +8,11 @@
     </facet>
     <facet type="android" name="Android">
       <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="release" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleRelease" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileReleaseSources" />
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
         <afterSyncTasks>
-          <task>generateReleaseSources</task>
+          <task>generateDebugSources</task>
         </afterSyncTasks>
         <option name="ALLOW_USER_CONFIGURATION" value="false" />
         <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
@@ -24,32 +24,46 @@
     </facet>
   </component>
   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/release" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/release" />
+    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
     <exclude-output />
     <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/release" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
@@ -73,7 +87,6 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
diff --git a/FastBleLib/src/main/java/com/clj/fastble/BleManager.java b/FastBleLib/src/main/java/com/clj/fastble/BleManager.java
index 9bd3b41..03c263e 100644
--- a/FastBleLib/src/main/java/com/clj/fastble/BleManager.java
+++ b/FastBleLib/src/main/java/com/clj/fastble/BleManager.java
@@ -22,6 +22,7 @@
 
     public BleManager(Context context) {
         this.mContext = context;
+
         if (isSupportBle()) {
             if (bleBluetooth == null) {
                 bleBluetooth = new BleBluetooth(context);
@@ -29,10 +30,6 @@
         }
 
         bleExceptionHandler = new DefaultBleExceptionHandler();
-    }
-
-    public void setMtu(int mtu) {
-        bleBluetooth.setMtu(mtu);
     }
 
     /**
@@ -175,8 +172,8 @@
      * cancel scan
      */
     public void cancelScan() {
-        if (bleBluetooth != null)
-            bleBluetooth.cancelScan();
+        if(bleBluetooth!=null)
+           bleBluetooth.cancelScan();
     }
 
     /**
@@ -345,19 +342,19 @@
     }
 
     public boolean isInScanning() {
-        return bleBluetooth != null && bleBluetooth.isInScanning();
+        return bleBluetooth != null &&bleBluetooth.isInScanning();
     }
 
     public boolean isConnectingOrConnected() {
-        return bleBluetooth != null && bleBluetooth.isConnectingOrConnected();
+        return bleBluetooth != null &&bleBluetooth.isConnectingOrConnected();
     }
 
     public boolean isConnected() {
-        return bleBluetooth != null && bleBluetooth.isConnected();
+        return bleBluetooth != null &&bleBluetooth.isConnected();
     }
 
     public boolean isServiceDiscovered() {
-        return bleBluetooth != null && bleBluetooth.isServiceDiscovered();
+        return bleBluetooth != null &&bleBluetooth.isServiceDiscovered();
     }
 
     /**
diff --git a/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java b/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
index 003c7af..a0abb9a 100644
--- a/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
+++ b/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
@@ -10,7 +10,6 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.clj.fastble.conn.BleConnector;
 import com.clj.fastble.conn.BleGattCallback;
@@ -45,7 +44,6 @@
     private Context context;
     private BluetoothAdapter bluetoothAdapter;
     private BluetoothGatt bluetoothGatt;
-    private int mtu = 20;
     private Handler handler = new Handler(Looper.getMainLooper());
     private HashMap<String, BluetoothGattCallback> callbackHashMap = new HashMap<>();
     private PeriodScanCallback periodScanCallback;
@@ -58,14 +56,11 @@
         bluetoothAdapter = bluetoothManager.getAdapter();
     }
 
-    public void setMtu(int mtu) {
-        this.mtu = mtu;
-    }
-
 
     public BleConnector newBleConnector() {
         return new BleConnector(this);
     }
+
 
     public boolean isInScanning() {
         return connectionState == STATE_SCANNING;
@@ -144,8 +139,7 @@
                 + "\nmac: " + scanResult.getDevice().getAddress()
                 + "\nautoConnect: " + autoConnect);
         addConnectGattCallback(callback);
-        bluetoothGatt = scanResult.getDevice().connectGatt(context, autoConnect, coreGattCallback);
-        return bluetoothGatt;
+        return scanResult.getDevice().connectGatt(context, autoConnect, coreGattCallback);
     }
 
     public void scanNameAndConnect(String name, long time_out, final boolean autoConnect, final BleGattCallback callback) {
@@ -344,21 +338,6 @@
         return connectionState;
     }
 
-
-    public static String dumpHex(byte[] src) {
-        String num = "0123456789ABCDEF";
-        StringBuilder sb = new StringBuilder();
-        sb.append("[ ");
-        for (byte aSrc : src) {
-            int high = aSrc >> 4 & 0x0f;
-            int low = aSrc & 0x0f;
-            sb.append(num.charAt(high)).append(num.charAt(low)).append(" ");
-        }
-        sb.append(" ]");
-
-        return sb.toString();
-    }
-
     private BleGattCallback coreGattCallback = new BleGattCallback() {
 
         @Override
@@ -368,9 +347,8 @@
 
         @Override
         public void onConnecting(BluetoothGatt gatt, int status) {
-            BleLog.i("BleGattCallback���onConnecting ");
+            BleLog.i("BleGattCallback���onConnectSuccess ");
             bluetoothGatt = gatt;
-
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry entry = (Map.Entry) iterator.next();
@@ -384,6 +362,7 @@
         @Override
         public void onConnectSuccess(BluetoothGatt gatt, int status) {
             BleLog.i("BleGattCallback���onConnectSuccess ");
+
             bluetoothGatt = gatt;
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
@@ -399,6 +378,7 @@
         @Override
         public void onDisConnected(BluetoothGatt gatt, int status, BleException exception) {
             BleLog.i("BleGattCallback���onConnectFailure ");
+
             closeBluetoothGatt();
             bluetoothGatt = null;
             Iterator iterator = callbackHashMap.entrySet().iterator();
@@ -422,7 +402,6 @@
                     + '\n' + "status: " + status
                     + '\n' + "newState: " + newState
                     + '\n' + "currentThread: " + Thread.currentThread().getId());
-
             if (newState == BluetoothGatt.STATE_CONNECTED) {
                 connectionState = STATE_CONNECTED;
                 onConnectSuccess(gatt, status);
@@ -448,17 +427,18 @@
 
         @Override
         public void onServicesDiscovered(BluetoothGatt gatt, int status) {
-            BleLog.i("BleGattCallback���onServicesDiscovered " + mtu);
+            BleLog.i("BleGattCallback���onServicesDiscovered ");
+
             connectionState = STATE_SERVICES_DISCOVERED;
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry entry = (Map.Entry) iterator.next();
                 Object call = entry.getValue();
                 if (call instanceof BluetoothGattCallback) {
+                    gatt.requestMtu(64);
                     ((BluetoothGattCallback) call).onServicesDiscovered(gatt, status);
                 }
             }
-            bluetoothGatt.requestMtu(mtu);
         }
 
         @Override
@@ -490,7 +470,7 @@
 
         @Override
         public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
-            BleLog.i("BleGattCallback���onCharacteristicChanged " + characteristic.getValue().length);
+            BleLog.i("BleGattCallback���onCharacteristicChanged ");
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry entry = (Map.Entry) iterator.next();
@@ -554,17 +534,6 @@
                 if (call instanceof BluetoothGattCallback) {
                     ((BluetoothGattCallback) call).onReadRemoteRssi(gatt, rssi, status);
                 }
-            }
-        }
-
-        @Override
-        public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
-            super.onMtuChanged(gatt, mtu, status);
-            Log.d("BLE", "onMtuChanged mtu=" + mtu + ",status=" + status);
-
-            System.out.println("onMtuChanged-------------------->size:" + mtu);
-            if (status == 0) {
-                System.out.println("onMtuChanged-------------------->������������");
             }
         }
     };
diff --git a/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java b/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
index 0707b79..e97e782 100644
--- a/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
+++ b/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
@@ -102,7 +102,6 @@
             descriptor = characteristic.getDescriptor(descriptorUUID);
         }
 
-
         return this;
     }
 
@@ -118,7 +117,7 @@
 
 
 
-    /*------------------------------- main operation ----------------------------------- */
+     /*------------------------------- main operation ----------------------------------- */
 
 
     /**
@@ -129,8 +128,6 @@
         if (getCharacteristic() != null
                 && (getCharacteristic().getProperties() | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
             BleLog.w(TAG, "characteristic.getProperties():" + getCharacteristic().getProperties());
-
-            System.out.println("chenqi enableCharacteristicNotify =>" + uuid_notify);
 
             handleCharacteristicNotificationCallback(bleCallback, uuid_notify);
 
@@ -346,23 +343,34 @@
 
             listenAndTimer(bleCallback, MSG_NOTIFY_CHA, uuid_notify, new BluetoothGattCallback() {
                 AtomicBoolean msgRemoved = new AtomicBoolean(false);
+
                 @Override
                 public void onCharacteristicChanged(BluetoothGatt gatt,
                                                     BluetoothGattCharacteristic characteristic) {
+
                     if (!msgRemoved.getAndSet(true)) {
                         handler.removeMessages(MSG_NOTIFY_CHA, this);
                     }
-
-                    System.out.println("chenqi Notify Hex ->" + BleBluetooth.dumpHex(characteristic.getValue()));
-
                     if (characteristic.getUuid().equals(UUID.fromString(uuid_notify))) {
+                        System.out.println("chenqi Hex ->" + dumpHex(characteristic.getValue()));
                         bleCallback.onSuccess(characteristic);
                     }
                 }
             });
-
-
         }
+    }
+
+    public String dumpHex(byte[] src) {
+        String num = "0123456789ABCDEF";
+        StringBuilder sb = new StringBuilder();
+//		sb.append("[ ");
+        for (byte aSrc : src) {
+            int high = aSrc >> 4 & 0x0f;
+            int low = aSrc & 0x0f;
+            sb.append(num.charAt(high)).append(num.charAt(low)).append(" ");
+        }
+//		sb.append(" ]");
+        return sb.toString();
     }
 
     /**
@@ -378,7 +386,7 @@
                 @Override
                 public void onCharacteristicChanged(BluetoothGatt gatt,
                                                     BluetoothGattCharacteristic characteristic) {
-                    System.out.println("chenqi Notify Hex indicate->" + BleBluetooth.dumpHex(characteristic.getValue()));
+
                     if (!msgRemoved.getAndSet(true)) {
                         handler.removeMessages(MSG_INDICATE_DES, this);
                     }
@@ -402,8 +410,6 @@
                 public void onCharacteristicWrite(BluetoothGatt gatt,
                                                   BluetoothGattCharacteristic characteristic, int status) {
                     handler.removeMessages(MSG_WRITE_CHA, this);
-                    System.out.println("chenqi Notify Hex write->" + BleBluetooth.dumpHex(characteristic.getValue()));
-
 
                     if (status == BluetoothGatt.GATT_SUCCESS) {
                         if (characteristic.getUuid().equals(UUID.fromString(uuid_write))) {
@@ -429,8 +435,6 @@
                 @Override
                 public void onCharacteristicRead(BluetoothGatt gatt,
                                                  BluetoothGattCharacteristic characteristic, int status) {
-                    System.out.println("chenqi Notify Hex indicate read->" + BleBluetooth.dumpHex(characteristic.getValue()));
-
                     if (!msgRemoved.getAndSet(true)) {
                         handler.removeMessages(MSG_READ_CHA, this);
                     }
@@ -456,8 +460,6 @@
                 @Override
                 public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
                     handler.removeMessages(MSG_READ_RSSI, this);
-                    System.out.println("chenqi Notify Hex rssi->" + BleBluetooth.dumpHex(characteristic.getValue()));
-
                     if (status == BluetoothGatt.GATT_SUCCESS) {
                         bleCallback.onSuccess(rssi);
                     } else {
@@ -485,6 +487,7 @@
     private void listenAndTimer(BleCallback bleCallback, int what, String uuid, BluetoothGattCallback callback) {
         bleCallback.setBluetoothGattCallback(callback);
         bleBluetooth.addGattCallback(uuid, callback);
+
         Message msg = handler.obtainMessage(what, bleCallback);
         handler.sendMessageDelayed(msg, timeOutMillis);
     }
diff --git a/andbrickslib/andbrickslib.iml b/andbrickslib/andbrickslib.iml
index 4c2e7ee..1cfb37d 100644
--- a/andbrickslib/andbrickslib.iml
+++ b/andbrickslib/andbrickslib.iml
@@ -8,11 +8,11 @@
     </facet>
     <facet type="android" name="Android">
       <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="release" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleRelease" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileReleaseSources" />
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
         <afterSyncTasks>
-          <task>generateReleaseSources</task>
+          <task>generateDebugSources</task>
         </afterSyncTasks>
         <option name="ALLOW_USER_CONFIGURATION" value="false" />
         <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
@@ -24,32 +24,46 @@
     </facet>
   </component>
   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/release" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/release" />
+    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
     <exclude-output />
     <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/release" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
@@ -73,7 +87,6 @@
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
@@ -94,27 +107,38 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-fragment-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.3.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.lzy.net:okserver-1.1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
+    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v4-25.3.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
     <orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.56.android@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.lzy.net:okserver-1.1.3" level="project" />
-    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.lzy.net:okgo-2.1.4" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.4.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.9.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
index 9736502..8433497 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -8,11 +8,11 @@
     </facet>
     <facet type="android" name="Android">
       <configuration>
-        <option name="SELECTED_BUILD_VARIANT" value="release" />
-        <option name="ASSEMBLE_TASK_NAME" value="assembleRelease" />
-        <option name="COMPILE_JAVA_TASK_NAME" value="compileReleaseSources" />
+        <option name="SELECTED_BUILD_VARIANT" value="debug" />
+        <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
+        <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
         <afterSyncTasks>
-          <task>generateReleaseSources</task>
+          <task>generateDebugSources</task>
         </afterSyncTasks>
         <option name="ALLOW_USER_CONFIGURATION" value="false" />
         <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
@@ -23,32 +23,46 @@
     </facet>
   </component>
   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
-    <output url="file://$MODULE_DIR$/build/intermediates/classes/release" />
-    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/release" />
+    <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
+    <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
     <exclude-output />
     <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/release" isTestSource="false" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/release" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/release" isTestSource="true" generated="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/res" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/assets" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/aidl" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/rs" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/release/shaders" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/res" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/resources" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/assets" type="java-test-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/aidl" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/rs" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/testRelease/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
@@ -70,22 +84,24 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/build/.DS_Store" />
+      <excludeFolder url="file://$MODULE_DIR$/build/bakApk" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bugly_intermediates" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
-      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tinker_intermediates" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
       <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
       <excludeFolder url="file://$MODULE_DIR$/build/reports" />
@@ -94,38 +110,58 @@
     <orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.0.2@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-fragment-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.3.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
     <orderEntry type="library" name="Gradle: pub.devrel:easypermissions-0.4.0" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
-    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:bsdiff-util:1.9.9@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:multidex-1.0.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.bugly:nativecrashreport-3.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView-3.1.2" level="project" />
-    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v4-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-1.0.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-25.3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:cardview-v7-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: in.srain.cube:ultra-ptr-1.0.11" level="project" />
     <orderEntry type="library" name="Gradle: org.greenrobot:eventbus:3.0.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.56.android@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.github.lecho:hellocharts-library-1.5.8" level="project" />
-    <orderEntry type="library" name="Gradle: __local_aars__:/Users/chenqi/AndroidStudioProjects/pregnancy_guard_android/app/libs/BaiduLBS_Android.jar:unspecified@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.daimajia.numberprogressbar:library-1.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.lzy.net:okgo-2.1.4" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.4.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:aosp-dexutils:1.9.9@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:3.7.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.9.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:tinker-android-lib-1.9.9" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-fragment-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.bugly:crashreport_upgrade-1.3.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
+    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:tinker-ziputils:1.9.9@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-1.0.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: in.srain.cube:ultra-ptr-1.0.11" level="project" />
+    <orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.56.android@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:tinker-android-loader-1.9.9" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.github.lecho:hellocharts-library-1.5.8" level="project" />
+    <orderEntry type="library" name="Gradle: com.tencent.tinker:tinker-commons:1.9.9@jar" level="project" />
+    <orderEntry type="library" name="Gradle: __local_aars__:/Users/chenqi/AndroidStudioProjects/pregnancy_guard_android/app/libs/BaiduLBS_Android.jar:unspecified@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.daimajia.numberprogressbar:library-1.4" level="project" />
     <orderEntry type="module" module-name="andbrickslib" />
     <orderEntry type="module" module-name="FastBleLib" />
   </component>
diff --git a/app/build.gradle b/app/build.gradle
index 6afc232..7d96e13 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,14 +1,15 @@
 apply plugin: 'com.android.application'
+apply from: 'tinker-support.gradle'
 
 android {
-    compileSdkVersion 25
-    buildToolsVersion '26.0.2'
+    compileSdkVersion rootProject.ext.android.compileSdkVersion
+    buildToolsVersion rootProject.ext.android.buildToolsVersion
     defaultConfig {
         applicationId "com.moral.yunfushao"
-        minSdkVersion 21
-        targetSdkVersion 25
-        versionCode 2
-        versionName "1.0.2_sp10"
+        minSdkVersion rootProject.ext.android.minSdkVersion
+        targetSdkVersion rootProject.ext.android.targetSdkVersion
+        versionCode rootProject.ext.android.versionCode
+        versionName rootProject.ext.android.versionName
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         signingConfig signingConfigs.debug
     }
@@ -25,6 +26,12 @@
     sourceSets {
         main {
             jniLibs.srcDirs = ['libs']
+        }
+    }
+
+    repositories {
+        flatDir {
+            dirs 'libs'
         }
     }
     //���������������
@@ -74,4 +81,14 @@
     implementation 'org.greenrobot:eventbus:3.0.0'
     implementation 'com.github.lecho:hellocharts-library:1.5.8@aar'
     implementation 'com.contrarywind:Android-PickerView:3.1.2'
+
+    //bugly
+    implementation 'com.android.support:multidex:1.0.1'
+    // ���dex������
+    //���������������bugly���������
+    //compile 'com.tencent.bugly:crashreport:latest.release'//������latest.release������������������������������������������������������������������1.3.4
+    implementation 'com.tencent.bugly:crashreport_upgrade:1.3.6'
+    // ������tinker���������������������������������1.3.5������������������������tinker���
+    implementation 'com.tencent.tinker:tinker-android-lib:1.9.9'
+    implementation 'com.tencent.bugly:nativecrashreport:latest.release'
 }
diff --git a/app/libs/bugly_crashreport_upgrade-1.3.5.aar b/app/libs/bugly_crashreport_upgrade-1.3.5.aar
new file mode 100644
index 0000000..09262ed
--- /dev/null
+++ b/app/libs/bugly_crashreport_upgrade-1.3.5.aar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cac457a..6c1f951 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -73,6 +73,7 @@
             android:screenOrientation="portrait" />
         <activity
             android:name="com.moral.yunfushao.activity.BLESearchActivity"
+            android:launchMode="singleInstance"
             android:screenOrientation="portrait" />
         <activity
             android:name="com.moral.yunfushao.activity.VoiceSetActivity"
@@ -95,6 +96,26 @@
             android:name="com.baidu.location.f"
             android:enabled="true"
             android:process=":remote"></service>
-    </application>
 
+        <!-- Bugly������SDK������������  -->
+        <activity
+            android:name="com.tencent.bugly.beta.ui.BetaActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize|locale"
+            android:theme="@android:style/Theme.Translucent" />
+
+
+        <!--API 24������������-->
+        <provider
+            android:name="android.support.v4.content.FileProvider"
+            android:authorities="com.moral.yunfushao.fileProvider"
+            android:exported="false"
+            android:grantUriPermissions="true"
+            tools:replace="name,authorities,exported,grantUriPermissions">
+            <meta-data
+                android:name="android.support.FILE_PROVIDER_PATHS"
+                android:resource="@xml/provider_paths"
+                tools:replace="name,resource" />
+        </provider>
+        <!-- Bugly������SDK������������-->
+    </application>
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/moral/yunfushao/MainActivity.java b/app/src/main/java/com/moral/yunfushao/MainActivity.java
index 3887a73..6ba2e11 100644
--- a/app/src/main/java/com/moral/yunfushao/MainActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/MainActivity.java
@@ -72,7 +72,7 @@
     private int index = 0;
     private boolean islogin = false;
 
-    private BluetoothService mBluetoothService;
+    public static BluetoothService mBluetoothService;
 
     @Override
     protected void getBundleExtras(Bundle extras) {
@@ -85,10 +85,15 @@
     }
 
     @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    protected void onStart() {
+        super.onStart();
         bindService();
         PermissionUtil.verifyStoragePermissions(this);
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
     }
 
     @Override
@@ -315,6 +320,7 @@
             mBluetoothService = ((BluetoothService.BluetoothBinder) service).getService();
             mBluetoothService.setScanCallback(callback);
             String mac = MainApp.theApp.sharedPreferencesUtil.getBLE();
+            System.out.println("BleGattCallback init");
             if (!TextUtils.isEmpty(mac)) {
                 mBluetoothService.scanAndConnect5(mac);
             }
@@ -322,6 +328,7 @@
 
         @Override
         public void onServiceDisconnected(ComponentName name) {
+            System.out.println("BleGattCallback onServiceDisconnected");
             mBluetoothService = null;
         }
     };
@@ -329,29 +336,32 @@
     private BluetoothService.Callback callback = new BluetoothService.Callback() {
         @Override
         public void onStartScan() {
-
+            System.out.println("MainActivity onStartScan");
         }
 
         @Override
         public void onScanning(ScanResult result) {
-
+            System.out.println("MainActivity onScanning");
         }
 
         @Override
         public void onScanComplete() {
-
+            System.out.println("MainActivity onScanComplete");
         }
 
         @Override
         public void onConnecting() {
+            System.out.println("MainActivity onConnecting");
+
             progressDialog.setTitleText("������������...");
             progressDialog.show();
         }
 
         @Override
         public void onConnectFail() {
+            System.out.println("MainActivity onConnectFail");
             progressDialog.dismiss();
-            mToatUtils.showSingletonToast("������������");
+            mBluetoothService.closeConnect();
             EventMessage msg = new EventMessage();
             msg.setType(AppConfig.GET_BLE_DISCONNECT);
             EventBus.getDefault().postSticky(msg);
@@ -359,6 +369,7 @@
 
         @Override
         public void onDisConnected() {
+            System.out.println("MainActivity onDisConnected");
             progressDialog.dismiss();
             mToatUtils.showSingletonToast("���������������������");
             EventMessage msg = new EventMessage();
@@ -368,6 +379,7 @@
 
         @Override
         public void onServicesDiscovered() {
+            System.out.println("MainActivity onServicesDiscovered");
             progressDialog.dismiss();
             EventMessage msg = new EventMessage();
             msg.setType(AppConfig.GET_BLE_SERVICE);
diff --git a/app/src/main/java/com/moral/yunfushao/MainApp.java b/app/src/main/java/com/moral/yunfushao/MainApp.java
index 403c979..2ea0394 100644
--- a/app/src/main/java/com/moral/yunfushao/MainApp.java
+++ b/app/src/main/java/com/moral/yunfushao/MainApp.java
@@ -1,6 +1,5 @@
 package com.moral.yunfushao;
 
-import android.app.Application;
 import android.bluetooth.BluetoothGattService;
 
 import com.baidu.location.BDLocation;
@@ -19,7 +18,7 @@
  * Created by haijiang on 2017/5/2.
  */
 
-public class MainApp extends Application {
+public class MainApp extends SampleApplication {
     public static MainApp theApp;
     //������id
     public static String userId;
@@ -60,6 +59,10 @@
             AppConfig.voideUrl1 = "http://yfsapi.7drlb.com/video/girl/music.mp3";
             AppConfig.voideUrl2 = "http://yfsapi.7drlb.com/video/girl/music1.mp3";
             AppConfig.voideUrl3 = "http://yfsapi.7drlb.com/video/girl/music2.mp3";
+        } else if (MainApp.theApp.sharedPreferencesUtil.getVoiceType() == 2) {
+            AppConfig.voideUrl1 = null;
+            AppConfig.voideUrl2 = null;
+            AppConfig.voideUrl3 = null;
         }
         bleManager = new BleManager(this);
 
@@ -76,6 +79,7 @@
         mLocClient.start();
     }
 
+
     /**
      * ������SDK������������
      */
diff --git a/app/src/main/java/com/moral/yunfushao/SampleApplication.java b/app/src/main/java/com/moral/yunfushao/SampleApplication.java
new file mode 100644
index 0000000..8749f47
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/SampleApplication.java
@@ -0,0 +1,17 @@
+package com.moral.yunfushao;
+
+import com.tencent.tinker.loader.app.TinkerApplication;
+import com.tencent.tinker.loader.shareutil.ShareConstants;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/10/26.
+ * @Package_name: Bugly2
+ */
+public class SampleApplication extends TinkerApplication {
+    public SampleApplication() {
+        super(ShareConstants.TINKER_ENABLE_ALL, "com.moral.yunfushao.SampleApplicationLike",
+                "com.tencent.tinker.loader.TinkerLoader", false);
+    }
+}
diff --git a/app/src/main/java/com/moral/yunfushao/SampleApplicationLike.java b/app/src/main/java/com/moral/yunfushao/SampleApplicationLike.java
new file mode 100644
index 0000000..54a434e
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/SampleApplicationLike.java
@@ -0,0 +1,163 @@
+package com.moral.yunfushao;
+
+import android.annotation.TargetApi;
+import android.app.Application;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.text.TextUtils;
+import android.widget.Toast;
+
+import com.tencent.bugly.Bugly;
+import com.tencent.bugly.beta.Beta;
+import com.tencent.bugly.beta.interfaces.BetaPatchListener;
+import com.tencent.bugly.crashreport.CrashReport;
+import com.tencent.tinker.entry.DefaultApplicationLike;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Locale;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/10/26.
+ * @Package_name: Bugly2
+ */
+public class SampleApplicationLike extends DefaultApplicationLike {
+
+    public static final String TAG = "Tinker.SampleApplicationLike";
+
+    public SampleApplicationLike(Application application, int tinkerFlags,
+                                 boolean tinkerLoadVerifyFlag, long applicationStartElapsedTime,
+                                 long applicationStartMillisTime, Intent tinkerResultIntent) {
+        super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
+    }
+
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        // ���������������������������������������������true
+        Beta.enableHotfix = true;
+        // ������������������������������������������true
+        Beta.canAutoDownloadPatch = true;
+        // ������������������������������������������true
+        Beta.canAutoPatch = true;
+        // ������������������������������������������false
+        Beta.canNotifyUserRestart = true;
+        // ���������������������������60s(���������������������0s)���60s���SDK������������������������������);
+        Beta.upgradeCheckPeriod = 60 * 1000;
+        //  ���������������������1s���������������3s������APP������1s������������SDK���������������APP������������;
+        Beta.initDelay = 1 * 1000;
+
+        // ���������������������������������banner
+        Beta.defaultBannerId = R.mipmap.icon;
+
+        //������������������������������UI������
+//        Beta.upgradeDialogLayoutId = R.layout.upgrade_dialog;
+
+        // ������������������
+        Beta.betaPatchListener = new BetaPatchListener() {
+            @Override
+            public void onPatchReceived(String patchFile) {
+//                Toast.makeText(getApplication(), "������������������" + patchFile, Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onDownloadReceived(long savedLength, long totalLength) {
+                Toast.makeText(getApplication(),
+                        String.format(Locale.getDefault(), "%s %d%%",
+                                Beta.strNotificationDownloading,
+                                (int) (totalLength == 0 ? 0 : savedLength * 100 / totalLength)),
+                        Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onDownloadSuccess(String msg) {
+                Toast.makeText(getApplication(), "������������������", Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onDownloadFailure(String msg) {
+                Toast.makeText(getApplication(), "������������������", Toast.LENGTH_SHORT).show();
+
+            }
+
+            @Override
+            public void onApplySuccess(String msg) {
+                Toast.makeText(getApplication(), "������������������", Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onApplyFailure(String msg) {
+                Toast.makeText(getApplication(), "������������������", Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onPatchRollback() {
+
+            }
+        };
+
+        Context context = getApplication().getApplicationContext();
+        // ������������������
+        String packageName = context.getPackageName();
+        // ���������������������
+        String processName = getProcessName(android.os.Process.myPid());
+        // ���������������������������
+        CrashReport.UserStrategy strategy = new CrashReport.UserStrategy(context);
+        strategy.setUploadProcess(processName == null || processName.equals(packageName));
+        // ������������������������������false���������������������������������������������������������������������������������������������������������
+        Bugly.setIsDevelopmentDevice(context, false);
+        // ���������Bugly ���������������������true
+        Bugly.init(getApplication(), "6c3f03f59c", false, strategy);
+    }
+
+    /**
+     * ���������������������������������
+     *
+     * @param pid ���������
+     * @return ���������
+     */
+    private static String getProcessName(int pid) {
+        BufferedReader reader = null;
+        try {
+            reader = new BufferedReader(new FileReader("/proc/" + pid + "/cmdline"));
+            String processName = reader.readLine();
+            if (!TextUtils.isEmpty(processName)) {
+                processName = processName.trim();
+            }
+            return processName;
+        } catch (Throwable throwable) {
+            throwable.printStackTrace();
+        } finally {
+            try {
+                if (reader != null) {
+                    reader.close();
+                }
+            } catch (IOException exception) {
+                exception.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+
+    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+    @Override
+    public void onBaseContextAttached(Context base) {
+        super.onBaseContextAttached(base);
+
+        // ������tinker
+        // TinkerManager.installTinker(this); ���������������Bugly���������������
+        Beta.installTinker(this);
+    }
+
+    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+    public void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {
+        getApplication().registerActivityLifecycleCallbacks(callbacks);
+    }
+
+}
diff --git a/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java b/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
index 913fd46..d534b49 100644
--- a/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
@@ -6,14 +6,17 @@
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
+import android.location.LocationManager;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.v4.app.ActivityCompat;
+import android.support.v13.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
@@ -35,7 +38,6 @@
 import org.greenrobot.eventbus.EventBus;
 
 import java.util.ArrayList;
-import java.util.List;
 
 /**
  * ������������
@@ -61,6 +63,7 @@
         super.onCreate(savedInstanceState);
         bindService();
     }
+
 
     @Override
     protected void onDestroy() {
@@ -105,10 +108,8 @@
                     if (MainApp.theApp.bleManager != null) {
                         MainApp.theApp.bleManager.closeBluetoothGatt();
                     }
+                    sendEventMessage(AppConfig.BLUETOOCH_CHANGE_CONNECT);
                     mBluetoothService.connectDevice(scanResultList.get(position));
-                    EventMessage eventMessage = new EventMessage();
-                    eventMessage.setType(AppConfig.BLUETOOCH_CHANGE_CONNECT);
-                    EventBus.getDefault().post(eventMessage);
                 }
             }
 
@@ -121,7 +122,7 @@
 
     @Override
     protected void initListener() {
-//        iv_search.setOnClickListener(this);
+        iv_search.setOnClickListener(this);
         iv_searchpic.setOnClickListener(this);
     }
 
@@ -175,6 +176,7 @@
         public void onServiceConnected(ComponentName name, IBinder service) {
             mBluetoothService = ((BluetoothService.BluetoothBinder) service).getService();
             mBluetoothService.setScanCallback(callback);
+            mBluetoothService.openBlueTooth();
 //            mBluetoothService.scanDevice();
         }
 
@@ -199,12 +201,21 @@
 
         @Override
         public void onScanning(ScanResult result) {
-            scanResultList.add(result);
-            adapter.notifyDataSetChanged();
+            System.out.println("chenqi ScanResule " + result.getDevice().getName());
+            if (!TextUtils.isEmpty(result.getDevice().getName())) {
+                if (result.getDevice().getName().equals("���������") ||
+                        result.getDevice().getName().equals("yunfushao") ||
+                        result.getDevice().getName().equals("7drlb") ||
+                        result.getDevice().getName().contains("FEI-D")) {
+                    scanResultList.add(result);
+                    adapter.notifyDataSetChanged();
+                }
+            }
         }
 
         @Override
         public void onScanComplete() {
+            System.out.println("chenqi onScanComplete ");
             iv_search.setImageResource(R.mipmap.bt_start);
             iv_searchpic.setImageResource(R.mipmap.bg_end);
         }
@@ -222,11 +233,8 @@
             if (ActivityManager.getActivityManager().isActivityExist(BLESearchActivity.this.getClass().getName())) {
                 progressDialog.dismiss();
             }
-//            Log.d("chonglian","������������");
             mToatUtils.showSingletonToast("������������");
-            EventMessage msg = new EventMessage();
-            msg.setType(AppConfig.GET_BLE_DISCONNECT);
-            EventBus.getDefault().postSticky(msg);
+            sendEventMessage(AppConfig.GET_BLE_DISCONNECT);
         }
 
         @Override
@@ -236,23 +244,26 @@
             }
             Log.d("chonglian", "���������������������");
             mToatUtils.showSingletonToast("���������������������");
-            EventMessage msg = new EventMessage();
-            msg.setType(AppConfig.GET_BLE_DISCONNECT);
-            EventBus.getDefault().postSticky(msg);
+
         }
 
         @Override
         public void onServicesDiscovered() {
             Log.d("chonglian", "���������������������");
-            EventMessage msg = new EventMessage();
-            msg.setType(AppConfig.GET_BLE_SERVICE);
-            EventBus.getDefault().postSticky(msg);
+            sendEventMessage(AppConfig.GET_BLE_SERVICE);
             if (ActivityManager.getActivityManager().isActivityExist(BLESearchActivity.this.getClass().getName())) {
                 progressDialog.dismiss();
                 finish();
             }
+
         }
     };
+
+    private void sendEventMessage(int type) {
+        EventMessage msg = new EventMessage();
+        msg.setType(type);
+        EventBus.getDefault().postSticky(msg);
+    }
 
     @Override
     public final void onRequestPermissionsResult(int requestCode,
@@ -260,44 +271,60 @@
                                                  @NonNull int[] grantResults) {
         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
         switch (requestCode) {
-            case 12:
-                if (grantResults.length > 0) {
-                    for (int i = 0; i < grantResults.length; i++) {
-                        if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
-                            onPermissionGranted(permissions[i]);
-                        }
-                    }
-                }
+            case 200:
+                onPermissionGranted();
                 break;
         }
     }
 
     private void checkPermissions() {
-        String[] permissions = {Manifest.permission.ACCESS_COARSE_LOCATION};
-        List<String> permissionDeniedList = new ArrayList<>();
-        for (String permission : permissions) {
-            int permissionCheck = ContextCompat.checkSelfPermission(this, permission);
-            if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
-                onPermissionGranted(permission);
-            } else {
-                permissionDeniedList.add(permission);
+        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
+                != PackageManager.PERMISSION_GRANTED) {//���������������������
+            //������������������,200������������
+            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 200);
+        } else {
+            if (!isLocationEnable(this)){
+                Intent locationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+                this.startActivityForResult(locationIntent, 2);
             }
-        }
-        if (!permissionDeniedList.isEmpty()) {
-            String[] deniedPermissions = permissionDeniedList.toArray(new String[permissionDeniedList.size()]);
-            ActivityCompat.requestPermissions(this, deniedPermissions, 12);
+            onPermissionGranted();
         }
     }
 
-    private void onPermissionGranted(String permission) {
-        switch (permission) {
-            case Manifest.permission.ACCESS_COARSE_LOCATION:
-                if (mBluetoothService == null) {
-                    bindService();
-                } else {
-                    mBluetoothService.scanDevice();
-                }
-                break;
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == 2) {
+            if (isLocationEnable(this)) {
+                //������������������������
+                return;
+            } else {
+                Intent locationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+                this.startActivityForResult(locationIntent, 2);
+                //���������������������������������
+            }
+        } else super.onActivityResult(requestCode, resultCode, data);
+    }
+
+    /**
+     * ������������������������������������������������
+     *
+     * @param context
+     * @return
+     */
+    public static final boolean isLocationEnable(Context context) {
+        LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+        boolean networkProvider = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
+        boolean gpsProvider = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
+        if (networkProvider || gpsProvider) return true;
+        return false;
+    }
+
+
+    private void onPermissionGranted() {
+        if (mBluetoothService == null) {
+            bindService();
+        } else {
+            mBluetoothService.scanDevice();
         }
     }
 }
diff --git a/app/src/main/java/com/moral/yunfushao/base/BaseActivity.java b/app/src/main/java/com/moral/yunfushao/base/BaseActivity.java
index 3e3d149..492cf0e 100644
--- a/app/src/main/java/com/moral/yunfushao/base/BaseActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/base/BaseActivity.java
@@ -24,7 +24,7 @@
  * Created by haijiang on 2017/5/2.
  */
 
-public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener{
+public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
     /**
      * ���������������
      */
@@ -42,6 +42,7 @@
      * ���������������
      */
     protected ToastUtils mToatUtils;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -50,7 +51,7 @@
         if (null != extras) {
             getBundleExtras(extras);
         }
-        progressDialog = SweetDialogUtils.showProgressDialog(this,"������������������...",R.color.colorAccent);
+        progressDialog = SweetDialogUtils.showProgressDialog(this, "������������������...", R.color.colorAccent);
 
         mToatUtils = new ToastUtils(this);
 
@@ -134,7 +135,7 @@
      * ���������
      */
     public void setEmptyView() {
-        if(mEmptyLayout == null){
+        if (mEmptyLayout == null) {
             return;
         }
         mEmptyLayout.setErrorType(EmptyLayout.NODATA);
@@ -144,7 +145,7 @@
      * ������������
      */
     public void setErrorView() {
-        if(mEmptyLayout == null){
+        if (mEmptyLayout == null) {
             return;
         }
         mEmptyLayout.setErrorType(EmptyLayout.NETWORK_ERROR);
@@ -154,7 +155,7 @@
      * ������������
      */
     public void setNormalView() {
-        if(mEmptyLayout == null){
+        if (mEmptyLayout == null) {
             return;
         }
         mEmptyLayout.dismiss();
@@ -164,7 +165,7 @@
      * ���������������
      */
     public void setLoadingView() {
-        if(mEmptyLayout == null){
+        if (mEmptyLayout == null) {
             return;
         }
         mEmptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING);
@@ -172,6 +173,7 @@
 
     /**
      * ������findViewById
+     *
      * @param viewId
      * @param <E>
      * @return
@@ -201,12 +203,13 @@
 
     /**
      * ������getActivity���null
+     *
      * @param outState
      */
     @Override
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
-        if(outState != null) {
+        if (outState != null) {
             String FRAGMENTS_TAG = "android:support:fragments";
             // remove������������Fragment
             outState.remove(FRAGMENTS_TAG);
diff --git a/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java b/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
index de3d4bc..58ce82d 100644
--- a/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
+++ b/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
@@ -6,6 +6,7 @@
 import android.bluetooth.BluetoothGattCharacteristic;
 import android.bluetooth.BluetoothGattService;
 import android.content.Intent;
+import android.content.ServiceConnection;
 import android.os.Binder;
 import android.os.Handler;
 import android.os.IBinder;
@@ -39,19 +40,21 @@
 
     @Override
     public void onCreate() {
+        System.out.println("chenqi onCreate service" + MainApp.theApp.bleManager);
         if (MainApp.theApp.bleManager != null) {
             bleManager = MainApp.theApp.bleManager;
         } else {
             bleManager = new BleManager(MainApp.theApp);
             MainApp.theApp.bleManager = bleManager;
         }
-        bleManager.setMtu(128);//���������������������������������������
+//        bleManager.setMtu(128);//���������������������������������������
         bleManager.enableBluetooth();
     }
 
     @Override
     public void onDestroy() {
         super.onDestroy();
+        System.out.println("chenqi onDestroy service ");
         bleManager = null;
         mCallback = null;
         mCallback2 = null;
@@ -62,11 +65,20 @@
         return mBinder;
     }
 
+
+    @Override
+    public void unbindService(ServiceConnection conn) {
+        System.out.println("chenqi unbindService service");
+        super.unbindService(conn);
+    }
+
     @Override
     public boolean onUnbind(Intent intent) {
-        bleManager.closeBluetoothGatt();
+        System.out.println("chenqi unbinding service");
+        closeConnect();
         return super.onUnbind(intent);
     }
+
 
     public class BluetoothBinder extends Binder {
         public BluetoothService getService() {
@@ -154,9 +166,9 @@
             mCallback.onConnecting();
         }
 
-        System.out.println("chenqi blename old = "+ MainApp.theApp.sharedPreferencesUtil.getBLE());
+        System.out.println("chenqi blename old = " + MainApp.theApp.sharedPreferencesUtil.getBLE());
 
-        System.out.println("chenqi blename = "+ scanResult.getDevice().getAddress());
+        System.out.println("chenqi blename = " + scanResult.getDevice().getAddress());
 
         openBlueTooth();
 
@@ -210,7 +222,7 @@
 
             @Override
             public void onDisConnected(BluetoothGatt gatt, int status, BleException exception) {
-                System.out.println("chenqi blueTooth connect state -> onDisConnected");
+                System.out.println("chenqi blueTooth connect state -> onDisConnected" + exception);
                 runOnMainThread(new Runnable() {
                     @Override
                     public void run() {
@@ -563,6 +575,8 @@
     public void scanAndConnect5(String mac) {
         resetInfo();
 
+        System.out.println("chenqi mCallback" + mCallback);
+
         if (mCallback != null) {
             mCallback.onStartScan();
         }
@@ -598,7 +612,6 @@
 
             @Override
             public void onConnectError(BleException exception) {
-                System.out.println("chenqi chenqi" + exception.getDescription()) ;
                 runOnMainThread(new Runnable() {
                     @Override
                     public void run() {
@@ -615,6 +628,7 @@
 
             @Override
             public void onDisConnected(BluetoothGatt gatt, int status, BleException exception) {
+                System.out.println("chenqi onConnectError " + exception.getDescription());
                 runOnMainThread(new Runnable() {
                     @Override
                     public void run() {
@@ -673,7 +687,8 @@
     }
 
     public void closeConnect() {
-        bleManager.closeBluetoothGatt();
+        if (bleManager != null)
+            bleManager.closeBluetoothGatt();
     }
 
 
diff --git a/app/src/main/java/com/moral/yunfushao/common/API.java b/app/src/main/java/com/moral/yunfushao/common/API.java
index a72596a..4c50cb6 100644
--- a/app/src/main/java/com/moral/yunfushao/common/API.java
+++ b/app/src/main/java/com/moral/yunfushao/common/API.java
@@ -7,8 +7,9 @@
 public class API {
     public static final String URL_HTTP = "http://yfsapi.7drlb.com/yfs/?service=";
 
+    //http://yfsapi.7drlb.com/yfs/?service=Send.Sms
     public final static String REQUEST_CODE = URL_HTTP  + "Send.Sms";//���������������
-
+//http://yfsapi.7drlb.com/yfs/?service=User.Register
     public final static String REGISTER = URL_HTTP  + "User.Register";//������������
 
     public final static String LOGIN = URL_HTTP  + "User.Login";//������������
diff --git a/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java b/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
index c4c4445..86ef576 100644
--- a/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
+++ b/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
@@ -55,6 +55,7 @@
 import com.moral.yunfushao.ui.PanelView;
 import com.moral.yunfushao.utils.AudioUtils;
 import com.moral.yunfushao.utils.DebugUtils;
+import com.moral.yunfushao.utils.T;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -98,11 +99,12 @@
 
     //������������
     private int HEARTTIMES = 2;
-    //������������
-    private int RECONNECTTIMES = 8000;
+
+    //������������������
+    private boolean isMySelfPage = false;
+
     //handler������������
     private Handler handler = new Handler();
-
 
     private Runnable heartRunnable = new Runnable() {
         @Override
@@ -126,15 +128,17 @@
             FragmentMonitor.this.mBluetoothService.write(FragmentMonitor.this.mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(),
                     FragmentMonitor.this.mBluetoothService.getWirteCharacteristic().getUuid().toString(),
                     BLECommon.BLE_HEART, null);
-            Log.d(TGA, "������������");
             heart();
         }
     };
+
+
     private Runnable reconnectRunnable = new Runnable() {
         @Override
         public void run() {
+            System.out.println("chenqi ������������");
             //������
-            if (FragmentMonitor.this.mBluetoothService == null) {
+            if (mBluetoothService == null) {
                 return;
             }
             String mac = MainApp.theApp.sharedPreferencesUtil.getBLE();
@@ -142,10 +146,8 @@
                 if (MainApp.theApp.bleManager.isConnectingOrConnected()) {
                     return;
                 }
-                Log.d(TGA, "������������");
-                FragmentMonitor.this.mBluetoothService.scanAndConnect5(mac);
+                mBluetoothService.scanAndConnect5(mac);
             }
-            reconnect();
         }
     };
 
@@ -196,11 +198,11 @@
      */
     @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
     public void eventComing(EventMessage msg) {
+        mBluetoothService = ((MainActivity) getActivity()).getBluetoothService();
         if (msg.getType() == AppConfig.GET_BLE_SERVICE) {
             resetHandler();
             pv.setStatusStr("���������");
             //������������
-            mBluetoothService = ((MainActivity) getActivity()).getBluetoothService();
             ((MainActivity) getActivity()).resetBLECallBack();
             if (mBluetoothService != null) {
                 BluetoothGatt gatt = mBluetoothService.getGatt();
@@ -211,8 +213,8 @@
                             mBluetoothService.setService(service);
                             break;
                         }
-                    }
-                    //������������
+
+                    }//������������
                     for (BluetoothGattCharacteristic characteristic : mBluetoothService.getService().getCharacteristics()) {
                         int charaProp = characteristic.getProperties();
                         if ((charaProp & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
@@ -249,26 +251,25 @@
 
                             @Override
                             public void onFailure(final BleException exception) {
+
                             }
 
                             @Override
                             public void onInitiatedResult(boolean result) {
                             }
                         });
-                /**
-                 * ������������������
-                 */
-//                handler.postDelayed(runnable, 5000);
+                //������handler
+                resetHandler();
+                //������������
                 heart();
             }
         } else if (msg.getType() == AppConfig.GET_BLE_DISCONNECT) {
             preLevel = -1;
             showStatus(-1);
-            handler.postDelayed(reconnectRunnable, RECONNECTTIMES);
+            reconnect();
             stop();
             isVirating = false;
             AudioUtils.virateCancle(getActivity());
-
         } else if (msg.getType() == AppConfig.CHANGE_SETTING) {
             if (timer != null) {
                 timer.cancel();
@@ -304,6 +305,7 @@
             }
         } else if (msg.getType() == AppConfig.BLUETOOCH_CHANGE_CONNECT) {
             showStatus(-1);
+            stopReconnect();
         }
     }
 
@@ -339,13 +341,24 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        FragmentMonitor.this.mBluetoothService = ((MainActivity) getActivity()).getBluetoothService();
+        mBluetoothService = ((MainActivity) getActivity()).getBluetoothService();
     }
 
     @Override
     public void onResume() {
         super.onResume();
+        isMySelfPage = true;
+        reconnect();
         textShowMac();
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        //������������������������
+        T.show("onPause");
+        isMySelfPage = false;
+        stopReconnect();
     }
 
     @Override
@@ -404,6 +417,7 @@
             }
         });
         showStatus(-1);
+
     }
 
     @Override
@@ -502,14 +516,29 @@
         handler.postDelayed(heartRunnable, 1000 * HEARTTIMES);
     }
 
+    /**
+     * ������������
+     */
     private void reconnect() {
-        handler.postDelayed(reconnectRunnable, RECONNECTTIMES);
+        if (isMySelfPage) {
+            stopReconnect();
+            //���������������������
+            handler.postDelayed(reconnectRunnable, 0);
+        }
+    }
+
+    /**
+     * ������������
+     */
+    private void stopReconnect() {
+        handler.removeCallbacks(reconnectRunnable);
+        if (mBluetoothService != null)
+            mBluetoothService.closeConnect();
     }
 
     private void resetHandler() {
         handler.removeCallbacks(reconnectRunnable);
         handler.removeCallbacks(heartRunnable);
-        HEARTTIMES = 2;
     }
 
     private void submitData() {
@@ -637,7 +666,7 @@
 
     private void textShowMac() {
         if (BuildConfig.BUILD_TYPE.equals(VersionConstants.DEBUG)) {
-            final TextView tv_text_mac = (TextView) findView(R.id.tv_text_mac);
+            final TextView tv_text_mac = findView(R.id.tv_text_mac);
             tv_desc.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
diff --git a/app/src/main/java/com/moral/yunfushao/fragment/FragmentSettings.java b/app/src/main/java/com/moral/yunfushao/fragment/FragmentSettings.java
index 40922d2..dd34366 100644
--- a/app/src/main/java/com/moral/yunfushao/fragment/FragmentSettings.java
+++ b/app/src/main/java/com/moral/yunfushao/fragment/FragmentSettings.java
@@ -66,9 +66,6 @@
         sc_male = findView(R.id.sc_male);
         tv_version = findView(R.id.tv_version);
         tv_version.setText("������������V" + getVersion());
-
-
-//        bt_look.setVisibility(DebugUtils.debug_mode ? View.VISIBLE : View.GONE);
         bt_look.setVisibility(View.GONE);
     }
 
diff --git a/app/src/main/java/com/moral/yunfushao/fragment/FragmentShoppongMall.java b/app/src/main/java/com/moral/yunfushao/fragment/FragmentShoppongMall.java
index beb2d33..f1de8b8 100644
--- a/app/src/main/java/com/moral/yunfushao/fragment/FragmentShoppongMall.java
+++ b/app/src/main/java/com/moral/yunfushao/fragment/FragmentShoppongMall.java
@@ -16,6 +16,7 @@
 
 public class FragmentShoppongMall extends BaseFragment {
     private WebView mWebView;
+
     @Override
     protected int getLayoutId() {
         return R.layout.fragment_shoppingmall_layout;
@@ -28,6 +29,14 @@
     }
 
     @Override
+    public void onResume() {
+        super.onResume();
+        String url = "https://qixingboshi.tmall.com/shop/view_shop.htm?spm=a220m.1000862.1000730.3.4e577fdaFH6RLh&user_number_id=4065460231&rn=e4ad4c4924aa673e9a82566d92483890";
+        mWebView.loadUrl(url);
+//        mWebView.loadUrl("https://shop459070069.m.taobao.com/");
+    }
+
+    @Override
     protected void initListener() {
 
     }
@@ -35,7 +44,7 @@
     @Override
     protected void initData() {
 //        mWebView.loadUrl("http://www.7drlb.cn");
-        mWebView.loadUrl("https://shop459070069.m.taobao.com/");
+
     }
 
     @Override
@@ -56,7 +65,7 @@
         mWebView.getSettings().setAppCacheEnabled(true);
         mWebView.getSettings().setDomStorageEnabled(true);
         mWebView.getSettings().setDatabaseEnabled(true);
-        if(Build.VERSION.SDK_INT >= 0x13) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
             mWebView.getSettings().setLoadsImagesAutomatically(true);
         } else {
             mWebView.getSettings().setLoadsImagesAutomatically(false);
@@ -67,19 +76,23 @@
                 progressDialog.show();
                 return false;
             }
+
             @Override
             public void onPageFinished(WebView view, String url) {
                 super.onPageFinished(view, url);
-                if(!mWebView.getSettings().getLoadsImagesAutomatically()) {
+                if (!mWebView.getSettings().getLoadsImagesAutomatically()) {
                     mWebView.getSettings().setLoadsImagesAutomatically(true);
                 }
             }
+
         });
+
+
         mWebView.setWebChromeClient(new WebChromeClient() {
             @Override
             public void onProgressChanged(WebView view, int newProgress) {
                 super.onProgressChanged(view, newProgress);
-                if(newProgress >= 64) {
+                if (newProgress >= 64) {
                     progressDialog.dismiss();
                 }
             }
diff --git a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
index 29056eb..5929488 100644
--- a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
+++ b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
@@ -60,7 +60,7 @@
     private Paint drawTextPaint;
     private int textColor = Color.GRAY;
     private int textSize = 36;
-    private String[] level = {"������", "������������", "������������", "������������"};
+    private String[] level = {"������������", "������������", "������������", "������������"};
 
     //������������
     private Paint mCirclePaint;
diff --git a/app/src/main/res/drawable/choose_button.xml b/app/src/main/res/drawable/choose_button.xml
new file mode 100644
index 0000000..abbb220
--- /dev/null
+++ b/app/src/main/res/drawable/choose_button.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="10dp" />
+    <solid android:color="@color/trans" />
+    <stroke
+        android:width="1dp"
+        android:color="@color/blue_btn_bg_color" />
+
+    <padding
+        android:bottom="5dp"
+        android:left="10dp"
+        android:right="10dp"
+        android:top="5dp" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/ac_register_layout.xml b/app/src/main/res/layout/ac_register_layout.xml
index 1f111e5..57618ba 100644
--- a/app/src/main/res/layout/ac_register_layout.xml
+++ b/app/src/main/res/layout/ac_register_layout.xml
@@ -6,6 +6,7 @@
     android:background="@mipmap/bg_login"
     android:fitsSystemWindows="true"
     android:orientation="vertical">
+
     <ImageView
         android:layout_width="100dp"
         android:layout_height="100dp"
@@ -17,8 +18,8 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="@dimen/x20"
-        android:layout_marginRight="@dimen/x20"
         android:layout_marginTop="@dimen/x16"
+        android:layout_marginRight="@dimen/x20"
         android:background="@mipmap/bg_edit"
         android:padding="@dimen/x14">
 
@@ -60,10 +61,10 @@
             android:layout_alignParentRight="true"
             android:background="@mipmap/bt_red_small"
             android:gravity="center"
-            android:paddingBottom="@dimen/x2"
             android:paddingLeft="@dimen/x8"
-            android:paddingRight="@dimen/x8"
             android:paddingTop="@dimen/x2"
+            android:paddingRight="@dimen/x8"
+            android:paddingBottom="@dimen/x2"
             android:text="���������������"
             android:textColor="@color/white" />
     </RelativeLayout>
@@ -71,17 +72,19 @@
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@mipmap/bg_edit"
         android:layout_marginLeft="@dimen/x20"
-        android:layout_marginRight="@dimen/x20"
         android:layout_marginTop="@dimen/x16"
+        android:layout_marginRight="@dimen/x20"
+        android:background="@mipmap/bg_edit"
         android:padding="@dimen/x14">
+
         <ImageView
             android:id="@+id/iv2"
             android:layout_width="@dimen/x16"
             android:layout_height="@dimen/x16"
             android:layout_centerVertical="true"
-            android:src="@mipmap/icon_code"/>
+            android:src="@mipmap/icon_code" />
+
         <View
             android:id="@+id/line2"
             android:layout_width="1dp"
@@ -90,34 +93,38 @@
             android:layout_marginLeft="@dimen/x8"
             android:layout_toRightOf="@+id/iv2"
             android:background="@color/blue_txt" />
+
         <EditText
             android:id="@+id/et_code"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_toRightOf="@id/line2"
+            android:background="@null"
             android:hint="������������������"
             android:inputType="number"
-            android:textColorHint="@color/blue_txt"
-            android:textColor="@color/blue_txt"
-            android:background="@null"
-            android:textSize="16sp"
             android:paddingLeft="@dimen/x10"
             android:paddingRight="@dimen/x10"
-           android:layout_toRightOf="@id/line2"/>
+            android:textColor="@color/blue_txt"
+            android:textColorHint="@color/blue_txt"
+            android:textSize="16sp" />
     </RelativeLayout>
+
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="@dimen/x20"
-        android:layout_marginRight="@dimen/x20"
         android:layout_marginTop="@dimen/x14"
+        android:layout_marginRight="@dimen/x20"
         android:background="@mipmap/bg_edit"
         android:padding="@dimen/x14">
+
         <ImageView
             android:id="@+id/iv3"
             android:layout_width="@dimen/x16"
             android:layout_height="@dimen/x16"
             android:layout_centerVertical="true"
-            android:src="@mipmap/icon_password"/>
+            android:src="@mipmap/icon_password" />
+
         <View
             android:id="@+id/line3"
             android:layout_width="1dp"
@@ -126,41 +133,44 @@
             android:layout_marginLeft="@dimen/x8"
             android:layout_toRightOf="@+id/iv3"
             android:background="@color/blue_txt" />
+
         <EditText
             android:id="@+id/et_pwd"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_toRightOf="@+id/line3"
             android:layout_centerVertical="true"
-            android:hint="���������������"
-            android:textColorHint="@color/blue_txt"
-            android:textColor="@color/blue_txt"
+            android:layout_toRightOf="@+id/line3"
             android:background="@null"
+            android:hint="���������������"
             android:inputType="textPassword"
             android:paddingLeft="@dimen/x10"
             android:paddingRight="@dimen/x10"
+            android:textColor="@color/blue_txt"
+            android:textColorHint="@color/blue_txt"
             android:textSize="16sp" />
     </RelativeLayout>
+
     <Button
         android:id="@+id/bt_sure"
         android:layout_width="match_parent"
         android:layout_height="@dimen/x40"
         android:layout_marginLeft="@dimen/x20"
-        android:layout_marginRight="@dimen/x20"
         android:layout_marginTop="@dimen/x20"
+        android:layout_marginRight="@dimen/x20"
         android:background="@mipmap/bt_blue"
         android:gravity="center"
         android:text="������"
         android:textColor="@color/white"
         android:textColorHint="@color/white"
         android:textSize="16sp" />
+
     <TextView
         android:id="@+id/tv_login"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:text="���������������������������"
-        android:gravity="bottom|center_horizontal"
-        android:textColor="@color/blue_txt"
         android:layout_marginBottom="@dimen/x30"
+        android:gravity="bottom|center_horizontal"
+        android:text="���������������������������"
+        android:textColor="@color/blue_txt"
         android:textSize="16sp" />
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_monitor_layout.xml b/app/src/main/res/layout/fragment_monitor_layout.xml
index 653352c..c860adb 100644
--- a/app/src/main/res/layout/fragment_monitor_layout.xml
+++ b/app/src/main/res/layout/fragment_monitor_layout.xml
@@ -116,7 +116,7 @@
                         android:layout_marginTop="@dimen/x4"
                         android:text="0"
                         android:textColor="@color/green_txt"
-                        android:textSize="18sp"
+                        android:textSize="14sp"
                         android:textStyle="bold" />
                 </LinearLayout>
 
@@ -147,7 +147,7 @@
                         android:layout_marginTop="@dimen/x4"
                         android:text="0"
                         android:textColor="@color/yellow_txt"
-                        android:textSize="18sp"
+                        android:textSize="14sp"
                         android:textStyle="bold" />
                 </LinearLayout>
             </LinearLayout>
diff --git a/app/src/main/res/layout/fragment_setting_layout.xml b/app/src/main/res/layout/fragment_setting_layout.xml
index 65f653e..a1f3697 100644
--- a/app/src/main/res/layout/fragment_setting_layout.xml
+++ b/app/src/main/res/layout/fragment_setting_layout.xml
@@ -121,8 +121,8 @@
             android:layout_marginRight="@dimen/x20"
             android:background="@drawable/choose_button"
             android:stateListAnimator="@anim/progress"
-            android:textColor="@color/dark_gray_txt"
-            android:text="������" />
+            android:text="������"
+            android:textColor="@color/dark_gray_txt" />
     </RelativeLayout>
 
     <View
@@ -138,7 +138,7 @@
         android:layout_marginTop="@dimen/x24"
         android:layout_marginRight="@dimen/x40"
         android:background="@mipmap/bt_blue"
-        android:gravity="center"
+        android:paddingBottom="@dimen/x10"
         android:text="������������"
         android:textColor="@color/white"
         android:textSize="16sp" />
diff --git a/app/tinker-support.gradle b/app/tinker-support.gradle
new file mode 100644
index 0000000..5b87e39
--- /dev/null
+++ b/app/tinker-support.gradle
@@ -0,0 +1,100 @@
+apply plugin: 'com.tencent.bugly.tinker-support'
+
+def bakPath = file("${buildDir}/bakApk/")
+
+/**
+ * ������������������������������������������������
+ */
+def baseApkDir = "app-1109-16-53-16"
+
+def outputFile = "Dev_yfs_v.${rootProject.ext.android.versionName}.apk"
+
+//def outputFile = "yfs_v.${rootProject.ext.android.versionName}.apk"
+
+
+
+
+/**
+ * ���������������������������������������������
+ */
+tinkerSupport {
+
+    // ������tinker-support������������������true
+    enable = true
+
+    // ������������������������������������module������������tinker
+    autoBackupApkDir = "${bakPath}"
+
+    // ������������������tinkerPatch������������������������false
+    // ���������tinkerPatch���������������������������������tinkerPatch
+    overrideTinkerPatchConfiguration = true
+
+    // ������������������������������������������������apk������������������
+    // ������������������������������������������������������
+
+
+
+    // @{link tinkerPatch.oldApk }
+    baseApk = "${bakPath}/${baseApkDir}/${outputFile}"
+
+    // ������tinker������applyMapping
+    baseApkProguardMapping = "${bakPath}/${baseApkDir}/${outputFile}-mapping.txt"
+
+    // ������tinker������applyResourceMapping
+    baseApkResourceMapping = "${bakPath}/${baseApkDir}/${outputFile}-R.txt"
+
+    // ������������������������������������������������tinkerId������������������������������
+    tinkerId = "dev_patch-1.0.1"
+
+    // ������������������������������
+    // buildAllFlavorsDir = "${bakPath}/${baseApkDir}"
+
+    // ������������������������������������false.(tinker-spport 1.0.7������������
+    // isProtectedApp = true
+
+    // ������������������Application������
+    enableProxyApplication = false
+
+    // ���������������������export���Activity���������������������true������������AndroidManifest���������
+    supportHotplugComponent = true
+
+}
+
+/**
+ * ������������,������������������������������������������������
+ * ���������������������������������������:
+ * https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
+ */
+tinkerPatch {
+    //oldApk ="${bakPath}/${appName}/app-release.apk"
+    ignoreWarning = false
+    useSign = true
+    dex {
+        dexMode = "jar"
+        pattern = ["classes*.dex"]
+        loader = []
+    }
+    lib {
+        pattern = ["lib/*/*.so"]
+    }
+
+    res {
+        pattern = ["res/*", "r/*", "assets/*", "resources.arsc", "AndroidManifest.xml"]
+        ignoreChange = []
+        largeModSize = 100
+    }
+
+    packageConfig {
+    }
+    sevenZip {
+        zipArtifact = "com.tencent.mm:SevenZip:1.1.10"
+//        path = "/usr/local/bin/7za"
+    }
+    buildConfig {
+        keepDexApply = false
+        //tinkerId = "1.0.1-base"
+        //applyMapping = "${bakPath}/${appName}/app-release-mapping.txt" //  ���������������mapping������������������������apk���proguard������������
+        //applyResourceMapping = "${bakPath}/${appName}/app-release-R.txt" // ���������������R.txt������������������apk������������ResId���������
+    }
+}
+
diff --git a/build.gradle b/build.gradle
index d9a13c7..bb35b5a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,5 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
+apply from: 'conf.gradle'
 
 buildscript {
     repositories {
@@ -8,6 +9,7 @@
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:3.0.1'
+        classpath "com.tencent.bugly:tinker-support:1.1.5"
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
diff --git a/conf.gradle b/conf.gradle
new file mode 100644
index 0000000..7508977
--- /dev/null
+++ b/conf.gradle
@@ -0,0 +1,14 @@
+ext {
+    android = [
+            compileSdkVersion: 25,
+            buildToolsVersion: "26.0.2",
+            versionCode      : 4,
+            versionName      : "1.0.3.1",
+            minSdkVersion    : 21,
+            targetSdkVersion : 25,
+            debugVersion     : "sp1",
+    ]
+
+    dependencies = [
+    ]
+}
\ No newline at end of file

--
Gitblit v1.8.0