.gradle/4.1/fileHashes/fileHashes.binBinary files differ
.gradle/4.1/fileHashes/fileHashes.lockBinary files differ
.gradle/4.1/fileHashes/resourceHashesCache.binBinary files differ
.gradle/4.1/javaCompile/classAnalysis.binBinary files differ
.gradle/4.1/javaCompile/jarAnalysis.binBinary files differ
.gradle/4.1/javaCompile/javaCompile.lockBinary files differ
.gradle/4.1/javaCompile/taskHistory.binBinary files differ
.gradle/4.1/javaCompile/taskJars.binBinary files differ
.gradle/4.1/taskHistory/fileSnapshots.binBinary files differ
.gradle/4.1/taskHistory/taskHistory.binBinary files differ
.gradle/4.1/taskHistory/taskHistory.lockBinary files differ
.idea/libraries/Gradle__com_android_support_cardview_v7_25_3_1.xml
New file @@ -0,0 +1,12 @@ <component name="libraryTable"> <library name="Gradle: com.android.support:cardview-v7-25.3.1"> <CLASSES> <root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cardview-v7-25.3.1.aar/1f8af644fc17cfef1d5357e2b3facbb1/res" /> <root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/cardview-v7-25.3.1.aar/1f8af644fc17cfef1d5357e2b3facbb1/jars/classes.jar!/" /> </CLASSES> <JAVADOC /> <SOURCES> <root url="jar://$USER_HOME$/Library/Android/sdk/extras/android/m2repository/com/android/support/cardview-v7/25.3.1/cardview-v7-25.3.1-sources.jar!/" /> </SOURCES> </library> </component> .idea/libraries/__local_aars___F__project_pregnancy_guard_android_app_libs_BaiduLBS_Android_jar_unspecified_jar.xml
File was deleted .idea/libraries/com_afollestad_material_dialogs_commons_0_9_4_4.xml
File was deleted .idea/libraries/com_afollestad_material_dialogs_core_0_9_4_4.xml
File was deleted .idea/libraries/com_alibaba_fastjson_1_1_56_android_jar.xml
File was deleted .idea/libraries/com_android_support_animated_vector_drawable_25_3_1.xml
File was deleted .idea/libraries/com_android_support_appcompat_v7_25_3_1.xml
File was deleted .idea/libraries/com_android_support_cardview_v7_25_3_1.xml
File was deleted .idea/libraries/com_android_support_constraint_constraint_layout_1_0_2.xml
File was deleted .idea/libraries/com_android_support_constraint_constraint_layout_solver_1_0_2_jar.xml
File was deleted .idea/libraries/com_android_support_recyclerview_v7_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_annotations_25_3_1_jar.xml
File was deleted .idea/libraries/com_android_support_support_compat_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_core_ui_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_core_utils_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_fragment_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_media_compat_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_v13_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_v4_25_3_1.xml
File was deleted .idea/libraries/com_android_support_support_vector_drawable_25_3_1.xml
File was deleted .idea/libraries/com_android_support_test_espresso_espresso_core_2_2_2.xml
File was deleted .idea/libraries/com_android_support_test_espresso_espresso_idling_resource_2_2_2.xml
File was deleted .idea/libraries/com_android_support_test_exposed_instrumentation_api_publish_0_5.xml
File was deleted .idea/libraries/com_android_support_test_rules_0_5.xml
File was deleted .idea/libraries/com_android_support_test_runner_0_5.xml
File was deleted .idea/libraries/com_contrarywind_Android_PickerView_3_1_2.xml
File was deleted .idea/libraries/com_daimajia_numberprogressbar_library_1_4.xml
File was deleted .idea/libraries/com_github_bumptech_glide_glide_3_7_0_jar.xml
File was deleted .idea/libraries/com_github_lecho_hellocharts_library_1_5_8.xml
File was deleted .idea/libraries/com_google_code_findbugs_jsr305_2_0_1_jar.xml
File was deleted .idea/libraries/com_google_code_gson_gson_2_8_0_jar.xml
File was deleted .idea/libraries/com_lzy_net_okgo_2_1_4.xml
File was deleted .idea/libraries/com_lzy_net_okserver_1_1_3.xml
File was deleted .idea/libraries/com_pnikosis_materialish_progress_1_0.xml
File was deleted .idea/libraries/com_squareup_javawriter_2_1_1_jar.xml
File was deleted .idea/libraries/com_squareup_okhttp3_okhttp_3_4_1_jar.xml
File was deleted .idea/libraries/com_squareup_okio_okio_1_9_0_jar.xml
File was deleted .idea/libraries/in_srain_cube_ultra_ptr_1_0_11.xml
File was deleted .idea/libraries/javax_annotation_javax_annotation_api_1_2_jar.xml
File was deleted .idea/libraries/javax_inject_javax_inject_1_jar.xml
File was deleted .idea/libraries/junit_junit_4_12_jar.xml
File was deleted .idea/libraries/me_zhanghai_android_materialprogressbar_library_1_4_0.xml
File was deleted .idea/libraries/org_greenrobot_eventbus_3_0_0_jar.xml
File was deleted .idea/libraries/org_hamcrest_hamcrest_core_1_3_jar.xml
File was deleted .idea/libraries/org_hamcrest_hamcrest_integration_1_3_jar.xml
File was deleted .idea/libraries/org_hamcrest_hamcrest_library_1_3_jar.xml
File was deleted .idea/libraries/pub_devrel_easypermissions_0_4_0.xml
File was deleted .idea/misc.xml
@@ -1,15 +1,85 @@ <?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"> <PanelProvider> <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> </PanelProvider> </PreviewSettings> <ParserSettings gitHubSyntaxChange="false"> <PegdownExtensions> <option name="ABBREVIATIONS" value="false" /> <option name="ANCHORLINKS" value="true" /> <option name="ASIDE" value="false" /> <option name="ATXHEADERSPACE" value="true" /> <option name="AUTOLINKS" value="true" /> <option name="DEFINITIONS" value="false" /> <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" /> <option name="FENCED_CODE_BLOCKS" value="true" /> <option name="FOOTNOTES" value="false" /> <option name="HARDWRAPS" value="false" /> <option name="HTML_DEEP_PARSER" value="false" /> <option name="INSERTED" value="false" /> <option name="QUOTES" value="false" /> <option name="RELAXEDHRULES" value="true" /> <option name="SMARTS" value="false" /> <option name="STRIKETHROUGH" value="true" /> <option name="SUBSCRIPT" value="false" /> <option name="SUPERSCRIPT" value="false" /> <option name="SUPPRESS_HTML_BLOCKS" value="false" /> <option name="SUPPRESS_INLINE_HTML" value="false" /> <option name="TABLES" value="true" /> <option name="TASKLISTITEMS" value="true" /> <option name="TOC" value="false" /> <option name="WIKILINKS" value="true" /> </PegdownExtensions> <ParserOptions> <option name="COMMONMARK_LISTS" value="true" /> <option name="DUMMY" value="false" /> <option name="EMOJI_SHORTCUTS" value="true" /> <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="JEKYLL_FRONT_MATTER" 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"> <GeneratorProvider> <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> </GeneratorProvider> <headerTop /> <headerBottom /> <bodyTop /> <bodyBottom /> </HtmlSettings> <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true"> <StylesheetProvider> <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> </StylesheetProvider> <ScriptProviders /> <cssText /> </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" /> <LinkMapSettings> <textMaps /> </LinkMapSettings> </component> <component name="NullableNotNullManager"> <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> <option name="myNullables"> <value> <list size="4"> <list size="5"> <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="edu.umd.cs.findbugs.annotations.Nullable" /> <item index="3" class="java.lang.String" itemvalue="android.support.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" /> </list> </value> </option> .idea/vcs.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="$PROJECT_DIR$" vcs="Git" /> <mapping directory="" vcs="Git" /> </component> </project> FastBleLib/FastBleLib.iml
@@ -50,13 +50,6 @@ <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" /> @@ -64,6 +57,13 @@ <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" /> @@ -71,13 +71,6 @@ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" /> <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" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> @@ -85,24 +78,28 @@ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" /> <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/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" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/intermediate-jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> <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/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/typedefs.txt" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> FastBleLib/build.gradle
@@ -2,10 +2,10 @@ android { compileSdkVersion 25 buildToolsVersion '25.0.2' buildToolsVersion '26.0.2' defaultConfig { minSdkVersion 18 minSdkVersion 21 targetSdkVersion 22 versionCode 1 versionName "1.0.0" FastBleLib/src/main/java/com/clj/fastble/BleManager.java
@@ -22,7 +22,6 @@ public BleManager(Context context) { this.mContext = context; if (isSupportBle()) { if (bleBluetooth == null) { bleBluetooth = new BleBluetooth(context); @@ -30,6 +29,10 @@ } bleExceptionHandler = new DefaultBleExceptionHandler(); } public void setMtu(int mtu) { bleBluetooth.setMtu(mtu); } /** @@ -172,8 +175,8 @@ * cancel scan */ public void cancelScan() { if(bleBluetooth!=null) bleBluetooth.cancelScan(); if (bleBluetooth != null) bleBluetooth.cancelScan(); } /** @@ -342,19 +345,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(); } /** FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
@@ -10,6 +10,7 @@ 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; @@ -44,6 +45,7 @@ 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; @@ -56,11 +58,14 @@ 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; @@ -139,7 +144,8 @@ + "\nmac: " + scanResult.getDevice().getAddress() + "\nautoConnect: " + autoConnect); addConnectGattCallback(callback); return scanResult.getDevice().connectGatt(context, autoConnect, coreGattCallback); bluetoothGatt = scanResult.getDevice().connectGatt(context, autoConnect, coreGattCallback); return bluetoothGatt; } public void scanNameAndConnect(String name, long time_out, final boolean autoConnect, final BleGattCallback callback) { @@ -338,6 +344,21 @@ 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 @@ -347,9 +368,9 @@ @Override public void onConnecting(BluetoothGatt gatt, int status) { BleLog.i("BleGattCallback:onConnectSuccess "); BleLog.i("BleGattCallback:onConnecting "); bluetoothGatt = gatt; Iterator iterator = callbackHashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); @@ -363,7 +384,6 @@ @Override public void onConnectSuccess(BluetoothGatt gatt, int status) { BleLog.i("BleGattCallback:onConnectSuccess "); bluetoothGatt = gatt; Iterator iterator = callbackHashMap.entrySet().iterator(); while (iterator.hasNext()) { @@ -430,7 +450,7 @@ @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { BleLog.i("BleGattCallback:onServicesDiscovered "); bluetoothGatt.requestMtu(mtu); connectionState = STATE_SERVICES_DISCOVERED; Iterator iterator = callbackHashMap.entrySet().iterator(); while (iterator.hasNext()) { @@ -473,7 +493,6 @@ @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { BleLog.i("BleGattCallback:onCharacteristicChanged "); Iterator iterator = callbackHashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); @@ -539,5 +558,16 @@ } } } @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-------------------->设置成功"); } } }; } FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
@@ -102,6 +102,7 @@ descriptor = characteristic.getDescriptor(descriptorUUID); } return this; } @@ -117,7 +118,7 @@ /*------------------------------- main operation ----------------------------------- */ /*------------------------------- main operation ----------------------------------- */ /** @@ -341,21 +342,38 @@ final String uuid_notify) { if (bleCallback != null) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // bluetoothGatt.requestMtu(10); // } listenAndTimer(bleCallback, MSG_NOTIFY_CHA, uuid_notify, new BluetoothGattCallback() { AtomicBoolean msgRemoved = new AtomicBoolean(false); @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { super.onConnectionStateChange(gatt, status, newState); } @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { if (!msgRemoved.getAndSet(true)) { handler.removeMessages(MSG_NOTIFY_CHA, this); } if (characteristic.getUuid().equals(UUID.fromString(uuid_notify))) { bleCallback.onSuccess(characteristic); } } @Override public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) { super.onMtuChanged(gatt, mtu, status); System.out.println(String.format("onMtuChanged:mtu = %s", mtu)); } }); } } @@ -372,7 +390,6 @@ @Override public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) { if (!msgRemoved.getAndSet(true)) { handler.removeMessages(MSG_INDICATE_DES, this); } FastBleLib/src/main/java/com/clj/fastble/conn/BleGattCallback.java
@@ -21,5 +21,4 @@ public abstract void onConnectSuccess(BluetoothGatt gatt, int status); public abstract void onDisConnected(BluetoothGatt gatt, int status, BleException exception); } andbrickslib/andbrickslib.iml
@@ -50,13 +50,6 @@ <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" /> @@ -64,6 +57,13 @@ <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" /> @@ -71,13 +71,6 @@ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> @@ -85,64 +78,67 @@ <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" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> <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" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/intermediate-jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> <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/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/typedefs.txt" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" /> <orderEntry type="library" name="com.google.code.gson:gson:2.8.0@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-v13-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="junit:junit:4.12@jar" level="project" /> <orderEntry type="library" name="com.alibaba:fastjson:1.1.56.android@jar" level="project" /> <orderEntry type="library" scope="TEST" name="javax.inject:javax.inject:1@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-core-ui-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="com.squareup:javawriter:2.1.1@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-compat-25.3.1" level="project" /> <orderEntry type="library" name="me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" /> <orderEntry type="library" name="com.android.support:support-core-utils-25.3.1" level="project" /> <orderEntry type="library" name="com.lzy.net:okserver-1.1.3" level="project" /> <orderEntry type="library" name="com.android.support:support-v4-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support:support-fragment-25.3.1" level="project" /> <orderEntry type="library" name="com.afollestad.material-dialogs:core-0.9.4.4" level="project" /> <orderEntry type="library" name="com.android.support:support-media-compat-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="com.google.code.findbugs:jsr305:2.0.1@jar" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-core:1.3@jar" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-core-2.2.2" level="project" /> <orderEntry type="library" name="com.squareup.okhttp3:okhttp:3.4.1@jar" level="project" /> <orderEntry type="library" name="com.android.support:animated-vector-drawable-25.3.1" level="project" /> <orderEntry type="library" name="com.lzy.net:okgo-2.1.4" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:rules-0.5" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-library:1.3@jar" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-integration:1.3@jar" level="project" /> <orderEntry type="library" name="com.afollestad.material-dialogs:commons-0.9.4.4" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:runner-0.5" level="project" /> <orderEntry type="library" name="com.android.support:appcompat-v7-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="javax.annotation:javax.annotation-api:1.2@jar" level="project" /> <orderEntry type="library" name="com.pnikosis:materialish-progress-1.0" level="project" /> <orderEntry type="library" name="com.android.support:support-vector-drawable-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support:recyclerview-v7-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support:support-annotations:25.3.1@jar" level="project" /> <orderEntry type="library" name="com.squareup.okio:okio:1.9.0@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: 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" 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" 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.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" /> </component> </module> andbrickslib/build.gradle
@@ -2,7 +2,7 @@ android { compileSdkVersion 25 buildToolsVersion "25.0.2" buildToolsVersion '26.0.2' defaultConfig { minSdkVersion 15 andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java
@@ -13,261 +13,260 @@ /** * 字符串工具类 * * * @author Administrator * */ public class StringUtils { private static final int MAX_PASSWORD_LENGTH = 16; private static final int MIN_PASSWORD_LENGTH = 6; private static final int MAX_PASSWORD_LENGTH = 16; private static final int MIN_PASSWORD_LENGTH = 6; public static final String URL_REG_EXPRESSION = "^(https?://)?([a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+)+(/*[A-Za-z0-9/\\-_&:?\\+=//.%]*)*"; public static final String URL_REG_EXPRESSION = "^(https?://)?([a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+)+(/*[A-Za-z0-9/\\-_&:?\\+=//.%]*)*"; /** * is null or its length is 0 or it is made by space * * <pre> * isBlank(null) = true; * isBlank("") = true; * isBlank(" ") = true; * isBlank("a") = false; * isBlank("a ") = false; * isBlank(" a") = false; * isBlank("a b") = false; * </pre> * * @param str * @return if string is null or its size is 0 or it is made by space, return true, else return false. */ public static boolean isBlank(String str) { return (str == null || str.trim().length() == 0); } /** * is null or its length is 0 or it is made by space * * <pre> * isBlank(null) = true; * isBlank("") = true; * isBlank(" ") = true; * isBlank("a") = false; * isBlank("a ") = false; * isBlank(" a") = false; * isBlank("a b") = false; * </pre> * * @param str * @return if string is null or its size is 0 or it is made by space, return true, else return false. */ public static boolean isBlank(String str) { return (str == null || str.trim().length() == 0); } /** * is null or its length is 0 * * <pre> * isEmpty(null) = true; * isEmpty("") = true; * isEmpty(" ") = false; * </pre> * * @param str * @return if string is null or its size is 0, return true, else return false. */ public static boolean isEmpty(String str) { return (str == null || str.length() == 0) && isBlank(str); } /** * is null or its length is 0 * * <pre> * isEmpty(null) = true; * isEmpty("") = true; * isEmpty(" ") = false; * </pre> * * @param str * @return if string is null or its size is 0, return true, else return false. */ public static boolean isEmpty(String str) { return (str == null || str.length() == 0) && isBlank(str); } /** * 隐藏号码 * * @param mobileStr * @param subStr * @return */ public static String replacePhoneStr(String mobileStr, String subStr) { String resultStr = ""; if (resultStr != null) { resultStr = mobileStr.substring(0, 3) + subStr + mobileStr.substring(7, 11); } return resultStr; } /** * 隐藏号码 * * @param mobileStr * @param subStr * @return */ public static String replacePhoneStr(String mobileStr, String subStr) { String resultStr = ""; if (resultStr != null) { resultStr = mobileStr.substring(0, 3) + subStr + mobileStr.substring(7, 11); } return resultStr; } /** * 解码UTF-8 * * @param urlString * @return */ public static String decodeUTF8(String urlString) { return decodeUrl(urlString.replaceAll("%", ""), "utf-8"); } /** * 解码UTF-8 * @param urlString * @return */ public static String decodeUTF8(String urlString) { return decodeUrl(urlString.replaceAll("%", ""), "utf-8"); } public static String decodeUrl(String urlString, String decode) { String decodeStr = ""; if (urlString != null) { try { decodeStr = URLDecoder.decode(urlString, decode); } catch (UnsupportedEncodingException e) { } } return decodeStr; } public static String decodeUrl(String urlString, String decode) { String decodeStr = ""; if (urlString != null) { try { decodeStr = URLDecoder.decode(urlString, decode); } catch (UnsupportedEncodingException e) { } } return decodeStr; } /** * 编码UTF-8 * @param str * @return */ public static String utf8Encode(String str) { if (!isEmpty(str) && str.getBytes().length != str.length()) { try { return URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UnsupportedEncodingException occurred. ", e); } } return str; } /** * 编码UTF-8 * * @param str * @return */ public static String utf8Encode(String str) { if (!isEmpty(str) && str.getBytes().length != str.length()) { try { return URLEncoder.encode(str, "UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException("UnsupportedEncodingException occurred. ", e); } } return str; } /** * 判断密码是否符合要求 * * @param string * @return */ public static boolean isValidPassword(String string) { boolean isValid = true; if (string != null && !"".equals(string)) { if (string.length() >= MIN_PASSWORD_LENGTH && string.length() <= MAX_PASSWORD_LENGTH) { int length = string.length(); for (int i = 0; i < length; i++) { int a = string.charAt(i); if (a >= 32 && a <= 126) { // do nothing } else { isValid = false; } } } else { isValid = false; } } else { isValid = false; } return isValid; } /** * 判断密码是否符合要求 * * @param string * @return */ public static boolean isValidPassword(String string) { boolean isValid = true; if (string != null && !"".equals(string)) { if (string.length() >= MIN_PASSWORD_LENGTH && string.length() <= MAX_PASSWORD_LENGTH) { int length = string.length(); for (int i = 0; i < length; i++) { int a = string.charAt(i); if (a >= 32 && a <= 126) { // do nothing } else { isValid = false; } } } else { isValid = false; } } else { isValid = false; } return isValid; } /** * 校验邮箱地址是否合法 * * @param address * 邮箱地址 * * @return 结果 */ public static boolean isEmailAddressLegal(String address) { if (address .matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) { return true; } return false; } /** * 校验邮箱地址是否合法 * * @param address 邮箱地址 * @return 结果 */ public static boolean isEmailAddressLegal(String address) { if (address .matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) { return true; } return false; } /** * 描述:手机号格式验证. * * @param str * 指定的手机号码字符串 * @return 是否为手机号码格,是为true,否则false */ public static Boolean isMobilePhone(String str) { Boolean isMobileNo = false; try { Pattern p = Pattern .compile("^[1][0-9][0-9]{9}$"); Matcher m = p.matcher(str); isMobileNo = m.matches(); } catch (Exception e) { e.printStackTrace(); } return isMobileNo; } /** * 描述:手机号格式验证. * * @param str 指定的手机号码字符串 * @return 是否为手机号码格,是为true,否则false */ public static Boolean isMobilePhone(String str) { Boolean isMobileNo = false; try { Pattern p = Pattern .compile("^[1][0-9][0-9]{9}$"); Matcher m = p.matcher(str); isMobileNo = m.matches(); } catch (Exception e) { e.printStackTrace(); } return isMobileNo; } /** * 判断账号是否是有中文 * * @param account * @return 0 success, other error 1 for length error 2 context error 3 */ public static byte isValidAccount(String account) { byte _bReturnValue = 0; String chinese = "[\u0391-\uFFE5]"; String expr = "^[A-Za-z0-9_]+$"; do { if (account.length() < 2 || account.length() > 18) { _bReturnValue = 1; break; } // 验证内容 String temp = ""; for (int i = 0; i < account.length(); i++) { // 获取每个字符 temp = account.substring(i, i + 1); // 判断是否是中文 if (temp.matches(chinese)) continue; // 判断是否是字母 、数字、下划线 if (temp.matches(expr)) continue; /** * 判断账号是否是有中文 * * @param account * @return 0 success, other error 1 for length error 2 context error 3 */ public static byte isValidAccount(String account) { byte _bReturnValue = 0; String chinese = "[\u0391-\uFFE5]"; String expr = "^[A-Za-z0-9_]+$"; do { if (account.length() < 2 || account.length() > 18) { _bReturnValue = 1; break; } // 验证内容 String temp = ""; for (int i = 0; i < account.length(); i++) { // 获取每个字符 temp = account.substring(i, i + 1); // 判断是否是中文 if (temp.matches(chinese)) continue; // 判断是否是字母 、数字、下划线 if (temp.matches(expr)) continue; _bReturnValue = 2; _bReturnValue = 2; return _bReturnValue; } } while (false); return _bReturnValue; } } while (false); return _bReturnValue; } return _bReturnValue; } /** * 转换文件大小 * * @param fileS * @return */ public static String FormetFileSize(long fileS) {// 转换文件大小 DecimalFormat df = new DecimalFormat("#0.0"); String fileSizeString = ""; if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "B"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "K"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "M"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "G"; } return fileSizeString; } /** * 转换文件大小 * * @param fileS * @return */ public static String FormetFileSize(long fileS) {// 转换文件大小 DecimalFormat df = new DecimalFormat("#0.0"); String fileSizeString = ""; if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "B"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "K"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "M"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "G"; } return fileSizeString; } /** * 获取文件夹大小 * @param f * @return * @throws Exception */ public static long getFileSize(File f) throws Exception// 取得文件夹大小 { long size = 0; File flist[] = f.listFiles(); for (int i = 0; i < flist.length; i++) { if (flist[i].isDirectory()) { size = size + getFileSize(flist[i]); } else { size = size + flist[i].length(); } } return size; } /** * 获取文件夹大小 * * @param f * @return * @throws Exception */ public static long getFileSize(File f) throws Exception// 取得文件夹大小 { long size = 0; File flist[] = f.listFiles(); for (int i = 0; i < flist.length; i++) { if (flist[i].isDirectory()) { size = size + getFileSize(flist[i]); } else { size = size + flist[i].length(); } } return size; } /** * 判断是否是url * * @param s * @return */ public static boolean isUrl(String s) { if (s == null) { return false; } return Pattern.matches(URL_REG_EXPRESSION, s); } public static String getIMSI(Context context) { /** * 判断是否是url * * @param s * @return */ public static boolean isUrl(String s) { if (s == null) { return false; } return Pattern.matches(URL_REG_EXPRESSION, s); } public static String getIMSI(Context context) { try { if (context == null) { return ""; @@ -295,11 +294,13 @@ return ""; } /** * 获取设备唯一号 * @param context * @return */ /** * 获取设备唯一号 * * @param context * @return */ public static String getDeviceId(Context context) { try { String strIMEI = getIMEI(context); @@ -317,95 +318,141 @@ return ""; } /** * 富文本显示 * @param bodyHTML * @return */ public static String getHtmlData(String bodyHTML) { String head = "<head>" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " + "<style>img{max-width: 100%; width:auto; height:auto;}</style>" + "</head>"; return "<html>" + head + "<body>" + bodyHTML + "</body></html>"; } /** * 富文本显示 * * @param bodyHTML * @return */ public static String getHtmlData(String bodyHTML) { String head = "<head>" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " + "<style>img{max-width: 100%; width:auto; height:auto;}</style>" + "</head>"; return "<html>" + head + "<body>" + bodyHTML + "</body></html>"; } /** * html转String * @param source * @return */ public static String htmlEscapeCharsToString(String source) { return isEmpty(source) ? source : source.replaceAll("<", "<").replaceAll(">", ">") .replaceAll("&", "&").replaceAll(""", "\""); } /** * html转String * * @param source * @return */ public static String htmlEscapeCharsToString(String source) { return isEmpty(source) ? source : source.replaceAll("<", "<").replaceAll(">", ">") .replaceAll("&", "&").replaceAll(""", "\""); } /** * 将两个ASCII字符合成一个字节; 如:"EF"–> 0xEF * * @param src0 * byte * @param src1 * byte * @return byte */ public static byte uniteBytes(byte src0, byte src1) { byte _b0 = Byte.decode("0x" + new String(new byte[] {src0})).byteValue(); _b0 = (byte) (_b0 << 4); byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 })).byteValue(); byte ret = (byte) (_b0 ^ _b1); return ret; } /** * 将两个ASCII字符合成一个字节; 如:"EF"–> 0xEF * * @param src0 byte * @param src1 byte * @return byte */ public static byte uniteBytes(byte src0, byte src1) { byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue(); _b0 = (byte) (_b0 << 4); byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue(); byte ret = (byte) (_b0 ^ _b1); return ret; } /** * 将指定字符串src,以每两个字符分割转换为16进制形式 如:"2B44EFD9" –> byte[]{0x2B, 0×44, 0xEF, * 0xD9} * * @param src * String * @return byte[] */ public static byte[] HexString2Bytes(String src) { if (null == src || 0 == src.length()) { return null; } byte[] ret = new byte[src.length() / 2]; byte[] tmp = src.getBytes(); for (int i = 0; i < (tmp.length / 2); i++) { ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]); } return ret; } public static String byteArrayToHexStr(byte[] byteArray) { if (byteArray == null){ return null; } char[] hexArray = "0123456789ABCDEF".toCharArray(); char[] hexChars = new char[byteArray.length * 2]; for (int j = 0; j < byteArray.length; j++) { int v = byteArray[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; } return new String(hexChars); } /** * 将指定字符串src,以每两个字符分割转换为16进制形式 如:"2B44EFD9" –> byte[]{0x2B, 0×44, 0xEF, * 0xD9} * * @param src String * @return byte[] */ public static byte[] HexString2Bytes(String src) { if (null == src || 0 == src.length()) { return null; } byte[] ret = new byte[src.length() / 2]; byte[] tmp = src.getBytes(); for (int i = 0; i < (tmp.length / 2); i++) { ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]); } return ret; } public static String str2HexStr(String str) { public static String byteArrayToHexStr(byte[] byteArray) { if (byteArray == null) { return null; } char[] hexArray = "0123456789ABCDEF".toCharArray(); char[] hexChars = new char[byteArray.length * 2]; for (int j = 0; j < byteArray.length; j++) { int v = byteArray[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; } return new String(hexChars); } char[] chars = "0123456789ABCDEF".toCharArray(); StringBuilder sb = new StringBuilder(""); byte[] bs = str.getBytes(); int bit; 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(); } for (int i = 0; i < bs.length; i++) { bit = (bs[i] & 0x0f0) >> 4; sb.append(chars[bit]); bit = bs[i] & 0x0f; sb.append(chars[bit]); sb.append(' '); } return sb.toString().trim(); } public static String str2HexStr(String str) { char[] chars = "0123456789ABCDEF".toCharArray(); StringBuilder sb = new StringBuilder(""); byte[] bs = str.getBytes(); int bit; for (int i = 0; i < bs.length; i++) { bit = (bs[i] & 0x0f0) >> 4; sb.append(chars[bit]); bit = bs[i] & 0x0f; sb.append(chars[bit]); sb.append(' '); } return sb.toString().trim(); } /** * 按照字符串长度分段 * * @param msg * @param split * @return */ public static String[] splitString(String msg, int split) { msg = msg.replace(" ", ""); String[] strings = new String[msg.length() / split]; int j = 0; for (int i = 0; i < msg.length(); i++) { if (i % split == 1) { strings[j++] = msg.substring(i - (split - 1), i + 1); } } return strings; } /** * 指定字符串长度 * * @param strings * @param start * @param end * @return */ public static String subStrings(String[] strings, int start, int end) { StringBuffer buffer = new StringBuffer(); for (int i = start; i <= end; i++) { buffer.append(strings[i]); } return buffer.toString(); } } app/app.iml
@@ -70,13 +70,6 @@ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" /> <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" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> @@ -84,84 +77,77 @@ <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" /> <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/intermediates/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/build-info" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" /> <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/incremental-classes" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" /> <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/split-apk" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/splits-support" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/reports" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> </content> <orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="__local_aars__:F.\project\pregnancy_guard_android\app\libs\BaiduLBS_Android.jar:unspecified@jar" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" /> <orderEntry type="library" name="com.android.support:support-v13-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="junit:junit:4.12@jar" level="project" /> <orderEntry type="library" name="com.alibaba:fastjson:1.1.56.android@jar" level="project" /> <orderEntry type="library" name="com.contrarywind:Android-PickerView-3.1.2" level="project" /> <orderEntry type="library" name="com.android.support:cardview-v7-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="javax.inject:javax.inject:1@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-core-ui-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="com.squareup:javawriter:2.1.1@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-compat-25.3.1" level="project" /> <orderEntry type="library" name="me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" /> <orderEntry type="library" name="com.android.support.constraint:constraint-layout-solver:1.0.2@jar" level="project" /> <orderEntry type="library" name="com.android.support:support-core-utils-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support.constraint:constraint-layout-1.0.2" level="project" /> <orderEntry type="library" name="com.android.support:support-v4-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support:support-fragment-25.3.1" level="project" /> <orderEntry type="library" name="com.afollestad.material-dialogs:core-0.9.4.4" level="project" /> <orderEntry type="library" name="com.android.support:support-media-compat-25.3.1" level="project" /> <orderEntry type="library" scope="TEST" name="com.google.code.findbugs:jsr305:2.0.1@jar" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-core:1.3@jar" level="project" /> <orderEntry type="library" name="pub.devrel:easypermissions-0.4.0" level="project" /> <orderEntry type="library" name="com.squareup.okhttp3:okhttp:3.4.1@jar" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-core-2.2.2" level="project" /> <orderEntry type="library" name="com.android.support:animated-vector-drawable-25.3.1" level="project" /> <orderEntry type="library" name="com.lzy.net:okgo-2.1.4" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:rules-0.5" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-library:1.3@jar" level="project" /> <orderEntry type="library" scope="TEST" name="org.hamcrest:hamcrest-integration:1.3@jar" level="project" /> <orderEntry type="library" name="com.afollestad.material-dialogs:commons-0.9.4.4" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test:runner-0.5" level="project" /> <orderEntry type="library" name="com.android.support:appcompat-v7-25.3.1" level="project" /> <orderEntry type="library" name="in.srain.cube:ultra-ptr-1.0.11" level="project" /> <orderEntry type="library" scope="TEST" name="com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="javax.annotation:javax.annotation-api:1.2@jar" level="project" /> <orderEntry type="library" name="org.greenrobot:eventbus:3.0.0@jar" level="project" /> <orderEntry type="library" name="com.pnikosis:materialish-progress-1.0" level="project" /> <orderEntry type="library" name="com.github.lecho:hellocharts-library-1.5.8" level="project" /> <orderEntry type="library" name="com.android.support:support-vector-drawable-25.3.1" level="project" /> <orderEntry type="library" name="com.daimajia.numberprogressbar:library-1.4" level="project" /> <orderEntry type="library" name="com.android.support:recyclerview-v7-25.3.1" level="project" /> <orderEntry type="library" name="com.android.support:support-annotations:25.3.1@jar" level="project" /> <orderEntry type="library" name="com.github.bumptech.glide:glide:3.7.0@jar" level="project" /> <orderEntry type="library" name="com.squareup.okio:okio:1.9.0@jar" level="project" /> <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" 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" 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.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.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.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" 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.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" 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.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="module" module-name="andbrickslib" /> <orderEntry type="module" module-name="FastBleLib" /> </component> app/build.gradle
@@ -2,25 +2,25 @@ android { compileSdkVersion 25 buildToolsVersion "25.0.2" buildToolsVersion '26.0.2' defaultConfig { applicationId "com.moral.yunfushao" minSdkVersion 18 targetSdkVersion 22 minSdkVersion 21 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } signingConfigs { // your debug keystore debug { keyAlias 'moral' keyPassword 'moral123456' storeFile file("C:\\Users\\Administrator\\Desktop\\key\\key.jks") storePassword 'moral123456' } } // signingConfigs { // // your debug keystore //// debug { //// keyAlias 'chenqi' //// keyPassword '123456' //// storeFile file('/Users/chenqi/chenqi.jks') //// storePassword '123456' //// } // } sourceSets { main { app/src/main/AndroidManifest.xml
@@ -42,6 +42,7 @@ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <application android:allowBackup="true" android:name="com.moral.yunfushao.MainApp" app/src/main/java/com/moral/yunfushao/MainActivity.java
@@ -64,13 +64,14 @@ //定义fragments private Class fragments[] = {FragmentMonitor.class, FragmentShoppongMall.class, FragmentSettings.class}; //定义底部按钮图标数组 private int mIcons[] = {R.drawable.menu1, R.drawable.menu2,R.drawable.menu3}; private int mIcons[] = {R.drawable.menu1, R.drawable.menu2, R.drawable.menu3}; //Tab选项卡文字 private String mTextArray[] = {"辐射监测", "商城","设置"}; private String mTextArray[] = {"辐射监测", "商城", "设置"}; private int index = 0; private boolean islogin = false; private BluetoothService mBluetoothService; @Override protected void getBundleExtras(Bundle extras) { islogin = extras.getBoolean("islogin", false); @@ -134,13 +135,13 @@ @Override protected void initData() { prepare(); if(MainApp.theApp.bleManager!=null){ if(MainApp.theApp.bleManager.isSupportBle()){ if (MainApp.theApp.bleManager != null) { if (MainApp.theApp.bleManager.isSupportBle()) { MainApp.theApp.bleManager.enableBluetooth(); }else{ } else { mToatUtils.showSingletonToast("对不起,您的手机不支持BLE!"); } }else{ } else { mToatUtils.showSingletonToast("对不起,您的手机不支持BLE!"); } getAd(); @@ -254,7 +255,7 @@ return; String url = API.GET_INFO; Map<String, String> params = new HashMap<>(); params.put("phone",MainApp.theApp.sharedPreferencesUtil.getLoginInfo().getPhone()); params.put("phone", MainApp.theApp.sharedPreferencesUtil.getLoginInfo().getPhone()); HttpUtils.doPost(url, params, CacheMode.DEFAULT, false, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { @@ -271,12 +272,13 @@ } @Override public void onFail(int errno,String s) { public void onFail(int errno, String s) { } }); } } public BluetoothService getBluetoothService() { return mBluetoothService; } @@ -296,7 +298,7 @@ mBluetoothService = ((BluetoothService.BluetoothBinder) service).getService(); mBluetoothService.setScanCallback(callback); String mac = MainApp.theApp.sharedPreferencesUtil.getBLE(); if(!TextUtils.isEmpty(mac)){ if (!TextUtils.isEmpty(mac)) { mBluetoothService.scanAndConnect5(mac); } } @@ -360,11 +362,12 @@ private AlertDialog adDialog; private View adView; private TextView tv_content,tv_name; private TextView tv_content, tv_name; private ImageView iv_logo; private Button bt_cancel,bt_ok; private void showAd(String content,String logo,String name){ adView = LayoutInflater.from(this).inflate(R.layout.dialog_ad_layout,null); private Button bt_cancel, bt_ok; private void showAd(String content, String logo, String name) { adView = LayoutInflater.from(this).inflate(R.layout.dialog_ad_layout, null); tv_content = (TextView) adView.findViewById(R.id.tv_content); tv_name = (TextView) adView.findViewById(R.id.tv_name); bt_cancel = (Button) adView.findViewById(R.id.bt_cancel); @@ -372,7 +375,7 @@ iv_logo = (ImageView) adView.findViewById(R.id.iv_logo); tv_content.setText(content); tv_name.setText(name); ImageLoader.setCircleImageView(this,logo,iv_logo,R.mipmap.circle); ImageLoader.setCircleImageView(this, logo, iv_logo, R.mipmap.circle); bt_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -380,30 +383,30 @@ } }); adDialog = new AlertDialog.Builder(this).setView(adView).create(); Window window=adDialog.getWindow(); Window window = adDialog.getWindow(); window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); adDialog.show(); } private void getAd(){ private void getAd() { HttpUtils.doPost(API.GETAD, null, CacheMode.DEFAULT, false, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { if(TextUtils.isEmpty(res)){ if (TextUtils.isEmpty(res)) { return; } try { JSONObject json = new JSONObject(res); String time = MainApp.theApp.sharedPreferencesUtil.getShowAd(); if(TextUtils.isEmpty(time)){ showAd(json.optString("content"),json.optString("logo"),json.optString("name")); String time = MainApp.theApp.sharedPreferencesUtil.getShowAd(); if (TextUtils.isEmpty(time)) { showAd(json.optString("content"), json.optString("logo"), json.optString("name")); MainApp.theApp.sharedPreferencesUtil.saveShowAd(TimeUtil.getCurrentDate("yyyy-MM-dd")); }else{ if(time.equals(TimeUtil.getCurrentDate("yyyy-MM-dd"))){ } else { if (time.equals(TimeUtil.getCurrentDate("yyyy-MM-dd"))) { return; }else{ showAd(json.optString("content"),json.optString("logo"),json.optString("name")); } else { showAd(json.optString("content"), json.optString("logo"), json.optString("name")); MainApp.theApp.sharedPreferencesUtil.saveShowAd(TimeUtil.getCurrentDate("yyyy-MM-dd")); } } @@ -425,8 +428,8 @@ }); } public void resetBLECallBack(){ if(mBluetoothService!=null){ public void resetBLECallBack() { if (mBluetoothService != null) { mBluetoothService.setScanCallback(callback); } } app/src/main/java/com/moral/yunfushao/MainApp.java
@@ -12,7 +12,6 @@ import com.lzy.okgo.OkGo; import com.lzy.okgo.cookie.store.PersistentCookieStore; import com.moral.andbrickslib.utils.log.XLog; import com.moral.yunfushao.activity.VoiceSetActivity; import com.moral.yunfushao.common.AppConfig; import com.moral.yunfushao.utils.SharedPreferencesUtil; @@ -36,8 +35,9 @@ */ LocationClient mLocClient; public MyLocationListenner myListener; public static double mLat,mLon; public static double mLat, mLon; public static String address; @Override public void onCreate() { super.onCreate(); @@ -47,7 +47,7 @@ OkGo.init(this); OkGo.getInstance().setCookieStore(new PersistentCookieStore()); if(sharedPreferencesUtil == null){ if (sharedPreferencesUtil == null) { sharedPreferencesUtil = new SharedPreferencesUtil(this); } userId = sharedPreferencesUtil.getUserid(); @@ -71,7 +71,7 @@ option.setOpenGps(true); // 打开gps option.setCoorType("bd09ll"); // 设置坐标类型 option.setIsNeedAddress(true); option.setScanSpan(1000*60); option.setScanSpan(1000 * 60); mLocClient.setLocOption(option); mLocClient.start(); } @@ -90,7 +90,7 @@ mLat = location.getLatitude(); mLon = location.getLongitude(); address = location.getAddrStr(); XLog.d(mLat+"|"+mLon+"|"+address); XLog.d(mLat + "|" + mLon + "|" + address); } } } app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
@@ -105,7 +105,7 @@ if (MainApp.theApp.bleManager != null) { MainApp.theApp.bleManager.closeBluetoothGatt(); } mBluetoothService.connectDevice(scanResultList.get(position)); mBluetoothService.scanAndConnect5(scanResultList.get(position).getDevice().getAddress()); } } @@ -229,7 +229,7 @@ if (ActivityManager.getActivityManager().isActivityExist(BLESearchActivity.this.getClass().getName())) { progressDialog.dismiss(); } Log.d("chonglian","孕妇哨连接断开"); Log.d("chonglian", "孕妇哨连接断开"); mToatUtils.showSingletonToast("孕妇哨连接断开"); EventMessage msg = new EventMessage(); msg.setType(AppConfig.GET_BLE_DISCONNECT); @@ -238,7 +238,7 @@ @Override public void onServicesDiscovered() { Log.d("chonglian","孕妇哨连接成功"); Log.d("chonglian", "孕妇哨连接成功"); EventMessage msg = new EventMessage(); msg.setType(AppConfig.GET_BLE_SERVICE); EventBus.getDefault().postSticky(msg); app/src/main/java/com/moral/yunfushao/activity/ChartActivity.java
@@ -63,9 +63,10 @@ private List<AxisValue> mAxisXValues = new ArrayList<>(); private RadioGroup rg_time; private TextView tv_starttime,tv_endtime,tv_value,tv_status; private ImageView iv_pre,iv_next; private int type=2; private TextView tv_starttime, tv_endtime, tv_value, tv_status; private ImageView iv_pre, iv_next; private int type = 2; @Override protected void getBundleExtras(Bundle extras) { @@ -93,40 +94,40 @@ rg_time.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) { switch (i){ switch (i) { case R.id.rb_week: type = 0; axisX.setName("时间段(按周)"); //表格名称 data.setAxisXBottom(axisX); //x 轴在底部 chartView.setLineChartData(data); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),-1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-6)); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", TimeUtil.getCurrentDate("yyyy-MM-dd"), -1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), -6)); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); break; case R.id.rb_month: type = 1; axisX.setName("时间段(按月)"); //表格名称 data.setAxisXBottom(axisX); //x 轴在底部 chartView.setLineChartData(data); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),-1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-28)); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", TimeUtil.getCurrentDate("yyyy-MM-dd"), -1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), -28)); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); break; case R.id.rb_day: type = 2; axisX.setName("时间段(按日)"); //表格名称 data.setAxisXBottom(axisX); //x 轴在底部 chartView.setLineChartData(data); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),0)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", TimeUtil.getCurrentDate("yyyy-MM-dd"), 0)); tv_starttime.setText(tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); break; } } }); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",TimeUtil.getCurrentDate("yyyy-MM-dd"),0)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", TimeUtil.getCurrentDate("yyyy-MM-dd"), 0)); tv_starttime.setText(tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); } @Override @@ -143,44 +144,44 @@ @Override protected void processClick(View view) { switch (view.getId()){ switch (view.getId()) { case R.id.tv_left: finish(); break; case R.id.iv_pre: if(type==0){ tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-6)); }else if(type == 1){ tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),-28)); }else if(type == 2){ tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),-1)); if (type == 0) { tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), -1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), -6)); } else if (type == 1) { tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), -1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), -28)); } else if (type == 2) { tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), -1)); tv_starttime.setText(tv_endtime.getText().toString()); } getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); break; case R.id.iv_next: if(type==0){ if(TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1))){ if (type == 0) { if (TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 1))) { return; } tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),6)); }else if(type == 1){ if(TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1))){ tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 1)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), 6)); } else if (type == 1) { if (TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 1))) { return; } tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),28)); }else if(type == 2){ if(TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),0))){ tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 1)); tv_endtime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), 28)); } else if (type == 2) { if (TimeUtil.getCurrentDate("yyyy-MM-dd").equals(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 0))) { return; } tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd",tv_endtime.getText().toString(),1)); tv_starttime.setText(TimeUtil.getAfterDate("yyyy-MM-dd", tv_endtime.getText().toString(), 1)); tv_endtime.setText(tv_starttime.getText().toString()); } getData(tv_starttime.getText().toString(),tv_endtime.getText().toString()); getData(tv_starttime.getText().toString(), tv_endtime.getText().toString()); break; } @@ -226,7 +227,7 @@ //data.setAxisXTop(axisX); //x 轴在顶部 // Y轴是根据数据的大小自动设置Y轴上限(在下面我会给出固定Y轴数据个数的解决方案) axisY = Axis.generateAxisFromRange((float)0.0,(float)4.0, (float) 0.25); //Y轴 axisY = Axis.generateAxisFromRange((float) 0.0, (float) 4.0, (float) 0.25); //Y轴 axisY.setAutoGenerated(false); AxisValueFormatter yvalue = new SimpleAxisValueFormatter(1); axisY.setFormatter(yvalue); @@ -274,13 +275,13 @@ public void run() { mPointValues.clear(); mAxisXValues.clear(); for (int i=0;i<dataList.size();i++){ if(type == 2){ mPointValues.add(new PointValue(i,dataList.get(i).getHour_avg())); mAxisXValues.add(new AxisValue(i).setLabel((dataList.get(i).getTime_level()-1)*3+"时")); }else{ mPointValues.add(new PointValue(i,dataList.get(i).getDay_avg())); mAxisXValues.add(new AxisValue(i).setLabel(dataList.get(i).getDate().substring(5,10))); for (int i = 0; i < dataList.size(); i++) { if (type == 2) { mPointValues.add(new PointValue(i, dataList.get(i).getHour_avg())); mAxisXValues.add(new AxisValue(i).setLabel((dataList.get(i).getTime_level() - 1) * 3 + "时")); } else { mPointValues.add(new PointValue(i, dataList.get(i).getDay_avg())); mAxisXValues.add(new AxisValue(i).setLabel(dataList.get(i).getDate().substring(5, 10))); } // mAxisXValues.add(new AxisValue(i).setLabel(i+"")); @@ -306,28 +307,29 @@ } private ArrayList<UserData> dataList = new ArrayList<>(); private void getData(String startTime,String endTime){ HashMap<String,String> params = new HashMap<>(); private void getData(String startTime, String endTime) { HashMap<String, String> params = new HashMap<>(); params.put("user_id", MainApp.userId); params.put("start_time", startTime); params.put("end_time", endTime); HttpUtils.doPost(API.GETUSERDATALIST, params, CacheMode.DEFAULT, true, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { if(progressDialog.isShowing()){ if (progressDialog.isShowing()) { progressDialog.dismiss(); } try { JSONObject jsonObject = new JSONObject(res); String data = jsonObject.optString("data"); ArrayList<UserData> temp = (ArrayList<UserData>) FastJsonTools.getArrayJson(data,UserData.class); ArrayList<UserData> temp = (ArrayList<UserData>) FastJsonTools.getArrayJson(data, UserData.class); dataList.clear(); dataList.addAll(resetData(temp)); //重绘 reshowChart(dataList); tv_value.setText(NumberUtils.getBigDecimalValue(jsonObject.optDouble("avg"),3)+"uSv"); tv_value.setText(NumberUtils.getBigDecimalValue(jsonObject.optDouble("avg"), 3) + "uSv"); tv_status.setText(jsonObject.optString("status")); } catch (JSONException e) { e.printStackTrace(); @@ -341,7 +343,7 @@ @Override public void onFail(int errno, String s) { if(progressDialog.isShowing()){ if (progressDialog.isShowing()) { progressDialog.dismiss(); } dataList.clear(); @@ -356,42 +358,42 @@ } private ArrayList<UserData> resetData(ArrayList<UserData> tempList){ private ArrayList<UserData> resetData(ArrayList<UserData> tempList) { ArrayList<UserData> newList = new ArrayList<>(); if(type == 0){//周 for (int i=0;i<7;i++){ if (type == 0) {//周 for (int i = 0; i < 7; i++) { UserData data = new UserData(); data.setDate(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),i)); data.setDate(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), i)); data.setDay_avg(0); newList.add(data); } }else if(type == 1){//月 for (int i=0;i<7;i++){ } else if (type == 1) {//月 for (int i = 0; i < 7; i++) { UserData data = new UserData(); data.setDate(TimeUtil.getAfterDate("yyyy-MM-dd",tv_starttime.getText().toString(),i*4)); data.setDate(TimeUtil.getAfterDate("yyyy-MM-dd", tv_starttime.getText().toString(), i * 4)); data.setDay_avg(0); newList.add(data); } }else if(type == 2){//日 for (int i=0;i<8;i++){ } else if (type == 2) {//日 for (int i = 0; i < 8; i++) { UserData data = new UserData(); data.setTime_level(i+1); data.setTime_level(i + 1); data.setHour_avg(0); newList.add(data); } } //重构数据 float totalValues = 0; if(tempList!=null&&tempList.size()>0){ for (UserData data : tempList){ totalValues+= data.getDay_avg(); for(UserData data1 : newList){ if(type == 2){ if(data.getTime_level() == data1.getTime_level()){ if (tempList != null && tempList.size() > 0) { for (UserData data : tempList) { totalValues += data.getDay_avg(); for (UserData data1 : newList) { if (type == 2) { if (data.getTime_level() == data1.getTime_level()) { data1.setHour_avg(data.getHour_avg()); } }else{ if(data.getDate().equals(data1.getDate())){ } else { if (data.getDate().equals(data1.getDate())) { data1.setDay_avg(data.getDay_avg()); } } @@ -399,7 +401,7 @@ } } // tv_value.setText(totalValues/tempList.size()+"uSv"); }else{ } else { // tv_value.setText(0+"uSv"); } return newList; @@ -407,11 +409,12 @@ private AlertDialog adDialog; private View adView; private TextView tv_content,tv_name; private TextView tv_content, tv_name; private ImageView iv_logo; private Button bt_cancel,bt_ok; private void showAd(String content,String logo,String name){ adView = LayoutInflater.from(this).inflate(R.layout.dialog_ad_layout,null); private Button bt_cancel, bt_ok; private void showAd(String content, String logo, String name) { adView = LayoutInflater.from(this).inflate(R.layout.dialog_ad_layout, null); tv_content = (TextView) adView.findViewById(R.id.tv_content); tv_name = (TextView) adView.findViewById(R.id.tv_name); bt_cancel = (Button) adView.findViewById(R.id.bt_cancel); @@ -419,7 +422,7 @@ iv_logo = (ImageView) adView.findViewById(R.id.iv_logo); tv_content.setText(content); tv_name.setText(name); ImageLoader.setCircleImageView(this,logo,iv_logo,R.mipmap.circle); ImageLoader.setCircleImageView(this, logo, iv_logo, R.mipmap.circle); bt_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -427,22 +430,22 @@ } }); adDialog = new AlertDialog.Builder(this).setView(adView).create(); Window window=adDialog.getWindow(); Window window = adDialog.getWindow(); window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); adDialog.show(); } private void getAd(){ private void getAd() { HttpUtils.doPost(API.GETAD, null, CacheMode.DEFAULT, false, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { if(TextUtils.isEmpty(res)){ if (TextUtils.isEmpty(res)) { return; } try { JSONObject json = new JSONObject(res); showAd(json.optString("content"),json.optString("logo"),json.optString("name")); showAd(json.optString("content"), json.optString("logo"), json.optString("name")); } catch (JSONException e) { e.printStackTrace(); } app/src/main/java/com/moral/yunfushao/adapter/BleDeviceAdapter.java
@@ -25,14 +25,10 @@ protected void convert(ViewHolder holder, ScanResult scanResult, int position) { TextView tv_name = holder.getView(R.id.tv_name); BluetoothDevice device = scanResult.getDevice(); if(!StringUtils.isEmpty(device.getName())){ if(device.getName().contains("7drlb")){ tv_name.setText("孕妇哨"+"\n"+device.getAddress()); }else{ tv_name.setText(device.getName()+"\n"+device.getAddress()); } }else{ tv_name.setText("未知设备"+"\n"+device.getAddress()); if (!StringUtils.isEmpty(device.getName())) { tv_name.setText(device.getName() + "\n" + device.getAddress()); } else { tv_name.setText("未知设备" + "\n" + device.getAddress()); } } } app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
@@ -39,12 +39,13 @@ @Override public void onCreate() { if( MainApp.theApp.bleManager!=null){ if (MainApp.theApp.bleManager != null) { bleManager = MainApp.theApp.bleManager; }else{ } else { bleManager = new BleManager(MainApp.theApp); MainApp.theApp.bleManager = bleManager; } bleManager.setMtu(128);//给外部接口设置数据传输大小 bleManager.enableBluetooth(); } @@ -144,8 +145,8 @@ } public void cancelScan() { if(bleManager!=null) bleManager.cancelScan(); if (bleManager != null) bleManager.cancelScan(); } public void connectDevice(final ScanResult scanResult) { @@ -153,7 +154,10 @@ mCallback.onConnecting(); } bleManager.connectDevice(scanResult, true, new BleGattCallback() { System.out.println("BleGattCallback setting " + scanResult.getDevice().getAddress()); System.out.println("Ble onconnectSuccess"); bleManager.connectDevice(scanResult, false, new BleGattCallback() { @Override public void onFoundDevice(ScanResult scanResult) { @@ -180,9 +184,10 @@ @Override public void onConnectSuccess(BluetoothGatt gatt, int status) { //保存最近连接的蓝牙设备MAC MainApp.theApp.sharedPreferencesUtil.saveBLE(gatt.getDevice().getAddress()); //保存最近连接的蓝牙设备MAC MainApp.theApp.sharedPreferencesUtil.saveBLE(gatt.getDevice().getAddress()); } @Override public void onServicesDiscovered(final BluetoothGatt gatt, int status) { BluetoothService.this.gatt = gatt; @@ -555,7 +560,6 @@ } bleManager.scanMacAndConnect(mac, 5000, false, new BleGattCallback() { @Override public void onFoundDevice(ScanResult scanResult) { runOnMainThread(new Runnable() { @@ -580,7 +584,6 @@ @Override public void onConnecting(BluetoothGatt gatt, int status) { } @Override @@ -597,7 +600,6 @@ @Override public void onConnectSuccess(BluetoothGatt gatt, int status) { } @Override app/src/main/java/com/moral/yunfushao/common/API.java
@@ -26,5 +26,6 @@ public final static String GETUSERDATALIST = URL_HTTP + "Data.GetUserDataList";//历史记录 public final static String GETAD = URL_HTTP + "Ad.GetAd";//获取广告 public final static String UPDATE = "http://www.7drlb.com/apps/yfs_app.json";//获取版本号 } app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
@@ -1,7 +1,8 @@ package com.moral.yunfushao.fragment; import android.animation.Animator; import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.bluetooth.BluetoothGatt; import android.bluetooth.BluetoothGattCharacteristic; import android.bluetooth.BluetoothGattService; @@ -18,6 +19,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.View; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -38,7 +40,6 @@ import com.moral.yunfushao.R; import com.moral.yunfushao.activity.BLESearchActivity; import com.moral.yunfushao.activity.ChartActivity; import com.moral.yunfushao.activity.VoiceSetActivity; import com.moral.yunfushao.base.BaseFragment; import com.moral.yunfushao.ble.BLECommon; import com.moral.yunfushao.ble.BluetoothService; @@ -79,15 +80,12 @@ AssetManager am; MediaPlayer mp; private boolean isVirating = false; private LinearLayout ll_status; private TextView tv_ljjl, tv_tishi, tv_desc, tv_shishi, tv_status; private LinearLayout ll_status, lv_ljjl; private TextView tv_ljjl, tv_tishi, tv_desc, tv_shishi, tv_status, tv_dianliang2, tvLijiTitle, tvShishiTitle; private PanelView pv; private ImageView iv_his, iv_status, iv_search, iv_bottom_status, iv_dianliang; private BluetoothService mBluetoothService; // private ArrayList<String> realResult = new ArrayList<>(); // private ArrayList<String> realHourResult = new ArrayList<>(); // private ArrayList<String> realHisResult = new ArrayList<>(); private int type = 1; //上传数据 private ArrayList<RecData> submitResult = new ArrayList<>(); @@ -99,7 +97,7 @@ private Handler handler = new Handler(); private Runnable runnable = new Runnable(){ private Runnable runnable = new Runnable() { @Override public void run() { checkTime(); @@ -111,12 +109,12 @@ private int checkTimeCount = 0; private void doHandleData(String result) { if(StringUtils.isEmpty(result)) { if (StringUtils.isEmpty(result)) { return; } //如果包含"时间校准成功确认信号"或重试5次以上则停止继续校准时间操作 if(result.startsWith(BLECommon.BLE_REC_TIME) || checkTimeCount > 5) { if (result.startsWith(BLECommon.BLE_REC_TIME) || checkTimeCount > 5) { DebugUtils.sendData("data", result); handler.removeCallbacks(runnable); @@ -126,8 +124,8 @@ doHandleData(result); } if(result.startsWith("3A")) { if(result.length() >= 16) { if (result.startsWith("3A")) { if (result.length() >= 16) { DebugUtils.sendData("data", result); parseHisData(result.substring(0, 16)); @@ -138,10 +136,9 @@ } } if(result.startsWith("5A")) { if(result.length() >= 40) { if (result.startsWith("5A")) { if (result.length() >= 40) { DebugUtils.sendData("data", result); parseCurrentData(result.substring(0, 40)); result = result.substring(40); doHandleData(result); @@ -150,14 +147,12 @@ } } if(result.startsWith("7A")) { if(result.length() >= 8) { if (result.startsWith("7A")) { if (result.length() >= 76) { DebugUtils.sendData("data", result); parseHoutData(result.substring(0, 8)); parseHoutData(result.substring(0, 76)); mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_SEND_7A, null); result = result.substring(8); result = result.substring(76); doHandleData(result); } else { stringResult.append(result); @@ -213,31 +208,16 @@ mBluetoothService.getCharacteristic().getService().getUuid().toString(), mBluetoothService.getCharacteristic().getUuid().toString(), new BleCharacterCallback() { @Override public void onSuccess(final BluetoothGattCharacteristic characteristic) { getActivity().runOnUiThread(new Runnable() { @Override public void run() { Log.d("haijiang123", "收到消息====" + StringUtils.byteArrayToHexStr(characteristic.getValue())); String result = StringUtils.byteArrayToHexStr(characteristic.getValue()); //处理数据叠罗汉 stringResult.append(result); result = stringResult.toString(); doHandleData(result); stringResult = new StringBuilder(); //实时数据 // parseCurrentData(result); // parseHisData(result); // parseHoutData(result); // // if (result.startsWith("7A")) { // mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_SEND_7A, null); // } } }); } @@ -251,7 +231,6 @@ public void onInitiatedResult(boolean result) { } }); /** * 发送时间校准 @@ -292,7 +271,7 @@ doTask(); } else if (msg.getType() == AppConfig.SET_MAIN_CALL) { ((MainActivity) getActivity()).resetBLECallBack(); }else if (msg.getType() == AppConfig.SET_VOICE) { } else if (msg.getType() == AppConfig.SET_VOICE) { ArrayList<VoiceBean> temp = (ArrayList<VoiceBean>) FastJsonTools.getArrayJson(MainApp.theApp.sharedPreferencesUtil.getVideoList(), VoiceBean.class); if (temp != null) { voiceList.clear(); @@ -394,6 +373,25 @@ iv_search = findView(R.id.iv_search); iv_bottom_status = findView(R.id.iv_bottom_status); iv_dianliang = findView(R.id.iv_dianliang); tv_dianliang2 = findView(R.id.tv_dianliang2); tvShishiTitle = findView(R.id.tv_shishi_title); tvLijiTitle = findView(R.id.tv_ljjl_title); lv_ljjl = findView(R.id.lv_ljjl); iv_dianliang.bringToFront(); tv_dianliang2.bringToFront();//设置点击最上层 iv_dianliang.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FlipAnimatorXViewShow(iv_dianliang, tv_dianliang2, 200); } }); tv_dianliang2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FlipAnimatorXViewShow(tv_dianliang2, iv_dianliang, 200); } }); showStatus(-1); } @@ -579,7 +577,6 @@ up.setLon(MainApp.mLon); up.setData(submitTempResult); params.put("data", FastJsonTools.toJson(up)); // Log.d("haijiang","###################" + FastJsonTools.toJson(up)); HttpUtils.doPost(API.UPLOAD, params, CacheMode.DEFAULT, false, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { @@ -604,6 +601,22 @@ * @param level */ private void showStatus(int level) { int yanzhang = R.mipmap.icon_yanzhong; int danger = R.mipmap.icon_danger; if (type == 1) { //电离 yanzhang = R.mipmap.dianliyanyang; danger = R.mipmap.dianlidanger; lv_ljjl.setVisibility(View.VISIBLE); tvShishiTitle.setText("实时计量(uSv/h)"); } else if (type == 2) { //电磁 yanzhang = R.mipmap.icon_yanzhong; danger = R.mipmap.icon_danger; tvShishiTitle.setText("实时计量(V/m)"); lv_ljjl.setVisibility(View.GONE); } if (level == 0) { tv_tishi.setText("当前辐射安全"); tv_tishi.setBackgroundResource(R.mipmap.bt_green); @@ -634,9 +647,9 @@ } else if (level == 3) { tv_tishi.setText("当前辐射超标"); tv_tishi.setBackgroundResource(R.mipmap.bt_red); iv_bottom_status.setImageResource(R.mipmap.icon_yanzhong); iv_bottom_status.setImageResource(yanzhang); tv_desc.setText("您所处位置辐射超标\n不利于您的健康,请紧急撤离!"); iv_status.setImageResource(R.mipmap.icon_danger); iv_status.setImageResource(danger); tv_status.setText("撤离"); tv_status.setTextColor(getResources().getColor(R.color.red_txt)); ll_status.setBackgroundResource(R.mipmap.bg_conner_red); @@ -659,36 +672,115 @@ */ private int preLevel = -1; /** * data : 5A160000FA1C0400004100E7000700000071005B * format : 20个字节,5A开头 5B结尾 * 5A开头的是电离 * * @param nowResult */ //todo 解析实时数据 private void parseCurrentData(String nowResult) { // if (result.startsWith("5A")) { // realResult.clear(); // realResult.add(result); // } else { // realResult.add(result); // } // String nowResult = ""; // for (String s : realResult) { // nowResult += s; // } /** * 20个字节,5A开头 5B结尾 */ type = 1; if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 40 && nowResult.startsWith("5A") && nowResult.endsWith("5B")) { int shunshiValue = Integer.parseInt(nowResult.substring(24, 26), 16) * 256 + Integer.parseInt(nowResult.substring(26, 28), 16); int real = Integer.parseInt(nowResult.substring(24, 26), 16) * 256 + Integer.parseInt(nowResult.substring(26, 28), 16); int leijiValue = Integer.parseInt(nowResult.substring(28, 30), 16) * 1024 + Integer.parseInt(nowResult.substring(30, 32), 16) * 512 + Integer.parseInt(nowResult.substring(32, 34), 16) * 256 + Integer.parseInt(nowResult.substring(34, 36), 16); // float level = (float) (shunshiValue / 10 * 0.01); int b1 = Integer.parseInt(nowResult.substring(6, 8), 16); int b2 = Integer.parseInt(nowResult.substring(12, 14), 16); // XLog.d("辐射:" + shunshiValue + "|累计:" + leijiValue + "-----电量:" + b1 + "|" + b2); tv_ljjl.setText(NumberUtils.getBigDecimalValue(leijiValue * 0.01, 3) + ""); double shishiValue = NumberUtils.getBigDecimalValue((shunshiValue) / 100.0, 3); tv_shishi.setText(shishiValue + ""); double realValue = NumberUtils.getBigDecimalValue((real) / 100.0, 3); tv_shishi.setText(realValue + ""); /** * 保存数据至内存 */ RecData data = new RecData(); data.setValue(shishiValue); data.setValue(realValue); data.setTime(TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss")); data.setType(0); /** * 显示电量 */ showPower(b1, b2); if (realValue < 0.16) { data.setIs_warn(0); pv.setPercent((float) (realValue * (0.25 / 0.16))); showStatus(0); stop(); if (isVirating) { isVirating = false; AudioUtils.virateCancle(getActivity()); } preLevel = -1; } else if (realValue >= 0.16 && realValue < 0.8) { data.setIs_warn(1); pv.setPercent((float) (0.25 + realValue * (0.25 / 0.8))); showStatus(1); play(0); if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } } else if (realValue >= 0.8 && realValue < 2) { data.setIs_warn(1); showStatus(2); pv.setPercent((float) (0.5 + realValue * (0.25 / 2))); play(1); if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } } else if (realValue >= 2) { data.setIs_warn(1); showStatus(3); if ((0.75 + realValue / 30) < 1.0) { pv.setPercent((float) (0.75 + realValue / 30)); } else { pv.setPercent(1.0f); } play(2); if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } } submitResult.add(data); // realResult.clear(); } } /** * 7A开头的是电离 * 7A0024010002D8B04CE90E6300000003000003EE0000000000000EC6000000000017347B0D0A * 电磁辐射显示 */ private void parseHoutData(String nowResult) { if (TextUtils.isEmpty(nowResult)) { return; } type = 2; String[] strings = StringUtils.splitString(nowResult, 2); if (strings[0].startsWith("7A") && strings[35].endsWith("7B")) { String realString = StringUtils.subStrings(strings, 21, 23); int real = Integer.parseInt(realString, 16); int b1 = Integer.parseInt(strings[24], 16); int b2 = Integer.parseInt(strings[25], 16); double realValue = NumberUtils.getBigDecimalValue((real) / 100.0, 3); String power = StringUtils.subStrings(strings, 26, 27); double textPower = Integer.parseInt(power, 16) / 1000.0; tv_dianliang2.setText(textPower + "V"); tv_shishi.setText(realValue + ""); /** * 保存数据至内存 */ RecData data = new RecData(); data.setValue(realValue); data.setTime(TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss")); data.setType(0); @@ -696,62 +788,47 @@ /** * 电量显示 */ if (b1 == 1) { ImageLoader.setGIFByUrl(getActivity(), R.mipmap.icon_chong, iv_dianliang); } else if (b1 == 2) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_full, iv_dianliang); } else { if (b2 == 0) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b00, iv_dianliang); } else if (b2 == 1) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b01, iv_dianliang); } else if (b2 == 2) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b02, iv_dianliang); } else if (b2 == 3) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b03, iv_dianliang); } else if (b2 == 4) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b04, iv_dianliang); } } showPower(b1, b2); showStatus(Integer.parseInt(strings[21], 16)); if (shishiValue < 0.16) { if (realValue < 0.16) { data.setIs_warn(0); pv.setPercent((float) (shishiValue * (0.25 / 0.16))); pv.setPercent((float) (realValue * (0.25 / 0.16))); showStatus(0); stop(); if(isVirating){ if (isVirating) { isVirating = false; AudioUtils.virateCancle(getActivity()); } preLevel = -1; } else if (shishiValue >= 0.16 && shishiValue < 0.8) { } else if (realValue >= 0.16 && realValue < 0.8) { data.setIs_warn(1); pv.setPercent((float) (0.25 + shishiValue * (0.25 / 0.8))); pv.setPercent((float) (0.25 + realValue * (0.25 / 0.8))); showStatus(1); play(0); if(!isVirating){ if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } } else if (shishiValue >= 0.8 && shishiValue < 2) { } else if (realValue >= 0.8 && realValue < 2) { data.setIs_warn(1); showStatus(2); pv.setPercent((float) (0.5 + shishiValue * (0.25 / 2))); pv.setPercent((float) (0.5 + realValue * (0.25 / 2))); play(1); if(!isVirating){ if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } } else if (shishiValue >= 2) { } else if (realValue >= 2) { data.setIs_warn(1); showStatus(3); if ((0.75 + shishiValue / 30) < 1.0) { pv.setPercent((float) (0.75 + shishiValue / 30)); if ((0.75 + realValue / 30) < 1.0) { pv.setPercent((float) (0.75 + realValue / 30)); } else { pv.setPercent(1.0f); } play(2); if(!isVirating){ if (!isVirating) { isVirating = true; AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); } @@ -762,67 +839,13 @@ } /** * 解析小时数据 * * @param result */ private AlertDialog testDialog; private void parseHoutData(String nowResult) { // if (result.startsWith("7A")) { // realHourResult.clear(); // realHourResult.add(result); // } else { // realHourResult.add(result); // } // String nowResult = ""; // for (String s : realHourResult) { // nowResult += s; // } if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 8 && nowResult.startsWith("7A") && nowResult.endsWith("7B")) { if(DebugUtils.debug_mode) { //-----------------------Test------------------------------------------// String aaa = MainApp.theApp.sharedPreferencesUtil.getTest()+"\n"+nowResult+" 收到时间:"+TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss"); MainApp.theApp.sharedPreferencesUtil.saveTest(aaa); //-----------------------Test------------------------------------------// } test(nowResult, TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss")); int hourValue = Integer.parseInt(nowResult.substring(2, 4), 16) * 256 + Integer.parseInt(nowResult.substring(4, 6), 16); // Log.d("haijiang", "收到消息小时数据="+ nowResult+"高位:"+nowResult.substring(2, 4)+"|"+Integer.parseInt(nowResult.substring(2, 4), 16) * 256+"低位:"+nowResult.substring(4, 6)+"|"+Integer.parseInt(nowResult.substring(4, 6), 16) +"数值:"+(hourValue/100.0)); //sendHourDataRec(); RecData data = new RecData(); data.setType(1); data.setIs_warn(0); data.setTime(TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss")); data.setValue(hourValue / 100.0); ArrayList<RecData> temp = new ArrayList<>(); temp.add(data); submitHourData(temp); } } /** * 孕妇哨连接后上传的数据 */ private void parseHisData(String nowResult) { // if (result.startsWith("3A")) { // realHisResult.clear(); // realHisResult.add(result); // } else { // realHisResult.add(result); // } // String nowResult = ""; // for (String s : realHisResult) { // nowResult += s; // } if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 16 && nowResult.startsWith("3A") && nowResult.endsWith("3B")) { Log.d("hourdata", "=====nowResult=====" + nowResult); if(DebugUtils.debug_mode) { if (DebugUtils.debug_mode) { //-----------------------Test------------------------------------------// String aaa = MainApp.theApp.sharedPreferencesUtil.getTest() + "\n" + nowResult; MainApp.theApp.sharedPreferencesUtil.saveTest(aaa); @@ -848,6 +871,29 @@ Log.d("hourdata", "=====hourdata=====" + FastJsonTools.toJson(temp)); test(nowResult, time.toString()); submitHourData(temp); } } /** * 电量显示 */ private void showPower(int b1, int b2) { if (b1 == 1) { ImageLoader.setGIFByUrl(getActivity(), R.mipmap.icon_chong, iv_dianliang); } else if (b1 == 2) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_full, iv_dianliang); } else { if (b2 == 0) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b00, iv_dianliang); } else if (b2 == 1) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b01, iv_dianliang); } else if (b2 == 2) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b02, iv_dianliang); } else if (b2 == 3) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b03, iv_dianliang); } else if (b2 == 4) { ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_b04, iv_dianliang); } } } @@ -981,7 +1027,7 @@ HttpUtils.doPost(API.ORIGINALUPLOAD, params, CacheMode.DEFAULT, false, new HttpCallBack() { @Override public void onSuccess(String res, String msg) { Log.d("hourdata","历史上报"); Log.d("hourdata", "历史上报"); } @Override @@ -1017,4 +1063,36 @@ } FragmentMonitor.this.mBluetoothService.write(FragmentMonitor.this.mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), FragmentMonitor.this.mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_HOUR_REC, null); } public static void FlipAnimatorXViewShow(final View oldView, final View newView, final long time) { ObjectAnimator animator1 = ObjectAnimator.ofFloat(oldView, "rotationX", 0, 90); final ObjectAnimator animator2 = ObjectAnimator.ofFloat(newView, "rotationX", -90, 0); animator2.setInterpolator(new OvershootInterpolator(2.0f)); animator1.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { oldView.setVisibility(View.GONE); animator2.setDuration(time).start(); newView.setVisibility(View.VISIBLE); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); animator1.setDuration(time).start(); } } app/src/main/res/drawable/call_the_police.png
app/src/main/res/drawable/call_the_police2.png
app/src/main/res/layout/ac_charts_layout.xml
@@ -4,105 +4,126 @@ android:layout_height="match_parent" android:background="@color/ac_bg" android:orientation="vertical"> <include layout="@layout/top_bar_layout_txt"/> <include layout="@layout/top_bar_layout_txt" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:padding="@dimen/x16" android:gravity="center" android:orientation="horizontal"> android:orientation="horizontal" android:padding="@dimen/x16"> <ImageView android:id="@+id/iv_pre" android:layout_width="@dimen/x20" android:layout_height="@dimen/x20" android:src="@mipmap/icon_red_left"/> android:src="@mipmap/icon_red_left" /> <LinearLayout android:layout_width="@dimen/x160" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tv_starttime" android:layout_width="@dimen/x160" android:layout_height="wrap_content" android:textSize="16sp" android:gravity="center" android:text="2017年7月13日" android:textColor="@color/blue_txt" android:text="2017年7月13日"/> android:textSize="16sp" /> <TextView android:layout_width="@dimen/x160" android:layout_height="wrap_content" android:gravity="center" android:text="至"/> android:text="至" /> <TextView android:id="@+id/tv_endtime" android:layout_width="@dimen/x160" android:layout_height="wrap_content" android:textSize="16sp" android:gravity="center" android:text="2017年7月13日" android:textColor="@color/blue_txt" android:text="2017年7月13日"/> android:textSize="16sp" /> </LinearLayout> <ImageView android:id="@+id/iv_next" android:layout_width="@dimen/x20" android:layout_height="@dimen/x20" android:src="@mipmap/icon_red_right"/> android:src="@mipmap/icon_red_right" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@color/trans" android:visibility="gone" /> </LinearLayout> <lecho.lib.hellocharts.view.LineChartView android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="@dimen/y240"> </lecho.lib.hellocharts.view.LineChartView> android:layout_height="@dimen/y240"></lecho.lib.hellocharts.view.LineChartView> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@mipmap/bg_head"> android:background="@mipmap/bg_head" android:orientation="vertical"> <RadioGroup android:id="@+id/rg_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_gravity="center" android:layout_marginTop="@dimen/x16" android:layout_gravity="center"> android:orientation="horizontal"> <RadioButton android:id="@+id/rb_day" android:layout_width="@dimen/x80" android:layout_height="@dimen/x30" android:button="@null" android:background="@drawable/rb_bg" android:gravity="center" android:textSize="16sp" android:textColor="@color/rb_tv_color" android:button="@null" android:checked="true" android:text="日"/> android:gravity="center" android:text="日" android:textColor="@color/rb_tv_color" android:textSize="16sp" /> <RadioButton android:id="@+id/rb_week" android:layout_width="@dimen/x80" android:layout_height="@dimen/x30" android:button="@null" android:background="@drawable/rb_bg" android:textColor="@color/rb_tv_color" android:button="@null" android:gravity="center" android:textSize="16sp" android:text="周"/> android:text="周" android:textColor="@color/rb_tv_color" android:textSize="16sp" /> <RadioButton android:id="@+id/rb_month" android:layout_width="@dimen/x80" android:layout_height="@dimen/x30" android:button="@null" android:background="@drawable/rb_bg" android:textColor="@color/rb_tv_color" android:button="@null" android:gravity="center" android:textSize="16sp" android:text="月"/> android:text="月" android:textColor="@color/rb_tv_color" android:textSize="16sp" /> </RadioGroup> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/x10" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="@dimen/x48" @@ -113,8 +134,8 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/light_txt" android:text="平均值" /> android:text="平均值" android:textColor="@color/light_txt" /> <TextView android:id="@+id/tv_value" @@ -143,8 +164,8 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/light_txt" android:text="状况" /> android:text="状况" android:textColor="@color/light_txt" /> <TextView android:id="@+id/tv_status" app/src/main/res/layout/fragment_monitor_layout.xml
@@ -63,8 +63,8 @@ android:layout_width="@dimen/x52" android:layout_height="@dimen/x48" android:layout_alignParentRight="true" android:layout_marginRight="@dimen/x2" android:layout_marginTop="@dimen/x3" android:layout_marginRight="@dimen/x2" android:background="@mipmap/bg_conner_green" android:gravity="center" android:orientation="vertical"> @@ -95,6 +95,7 @@ android:orientation="horizontal"> <LinearLayout android:id="@+id/lv_ljjl" android:layout_width="0dp" android:layout_height="@dimen/x48" android:layout_weight="1" @@ -102,6 +103,7 @@ android:orientation="vertical"> <TextView android:id="@+id/tv_ljjl_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="累计计量(uSv)" @@ -132,6 +134,7 @@ android:orientation="vertical"> <TextView android:id="@+id/tv_shishi_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="实时计量(uSv/h)" @@ -151,85 +154,95 @@ </RelativeLayout> </FrameLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ScrollView <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="none"> android:layout_height="match_parent"> <LinearLayout <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:scrollbars="none"> <FrameLayout android:layout_width="@dimen/x280" android:layout_height="@dimen/x280" android:layout_gravity="center_horizontal" android:layout_marginTop="@dimen/x8"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.moral.yunfushao.ui.PanelView android:id="@+id/pv" android:layout_width="@dimen/x280" android:layout_height="@dimen/x280" /> <ImageView android:layout_width="@dimen/x30" android:layout_height="@dimen/x30" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="@dimen/x8" android:src="@mipmap/icon_fushe" /> </FrameLayout> <TextView android:id="@+id/tv_tishi" android:layout_width="@dimen/x180" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:background="@mipmap/bt_blue" android:gravity="center_horizontal" android:paddingTop="@dimen/x3" android:text="当前辐射安全" android:textColor="@color/white" android:textSize="16sp" /> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/x10" android:orientation="vertical"> android:layout_height="@dimen/x280" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/tv_desc" android:id="@+id/tv_tishi" android:layout_width="@dimen/x180" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:background="@mipmap/bt_blue" android:gravity="center_horizontal" android:text="当前辐射安全" android:textColor="@color/white" android:textSize="16sp" /> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/x15" android:background="@color/white" android:gravity="center" android:padding="@dimen/x15" android:text="您所处位置辐射安全\n您处于安全区域,可以长时间逗留!" android:textColor="#ae8082" /> android:layout_marginTop="@dimen/x10" android:orientation="vertical"> <ImageView android:id="@+id/iv_bottom_status" android:layout_width="@dimen/x30" android:layout_height="@dimen/x30" android:layout_gravity="center_horizontal" android:src="@mipmap/icon_qingwei" /> </FrameLayout> </LinearLayout> </ScrollView> <TextView android:id="@+id/tv_desc" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/x15" android:background="@color/white" android:gravity="center" android:padding="@dimen/x15" android:text="您所处位置辐射安全\n您处于安全区域,可以长时间逗留!" android:textColor="#ae8082" /> <ImageView android:id="@+id/iv_bottom_status" android:layout_width="@dimen/x30" android:layout_height="@dimen/x30" android:layout_gravity="center_horizontal" android:src="@mipmap/icon_qingwei" /> </FrameLayout> </LinearLayout> </ScrollView> </FrameLayout> <ImageView android:id="@+id/iv_dianliang" android:layout_width="@dimen/x30" android:layout_height="@dimen/x30" android:layout_alignParentRight="true" android:layout_gravity="right" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:layout_marginRight="20dp" android:src="@mipmap/icon_full" /> </FrameLayout> <TextView android:id="@+id/tv_dianliang2" android:layout_width="wrap_content" android:layout_height="@dimen/x30" android:layout_alignParentRight="true" android:layout_gravity="right" android:layout_marginTop="20dp" android:layout_marginRight="20dp" android:gravity="center" android:src="@mipmap/icon_full" android:textColor="@color/blue" android:textStyle="bold" android:visibility="gone" /> </RelativeLayout> </LinearLayout> app/src/main/res/mipmap-hdpi/dianlidanger.png
app/src/main/res/mipmap-hdpi/dianliyanyang.png
app/src/main/res/mipmap-xxhdpi/dianlidanger.png
app/src/main/res/mipmap-xxhdpi/dianliyanyang.png
build.gradle
@@ -4,6 +4,7 @@ repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' @@ -15,10 +16,11 @@ allprojects { repositories { maven { url "https://jitpack.io" } // maven { // url "https://jitpack.io" // } jcenter() google() } } build/android-profile/profile-2018-04-10-00-19-09-959.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-00-28-02-899.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-00-38-30-567.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-07-54-16-367.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-08-06-54-430.json
File was deleted build/android-profile/profile-2018-04-10-08-06-54-430.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-08-09-34-499.json
File was deleted build/android-profile/profile-2018-04-10-08-09-34-499.rawprotoBinary files differ
build/android-profile/profile-2018-04-10-12-31-46-556.json
File was deleted build/android-profile/profile-2018-04-10-12-31-46-556.rawprotoBinary files differ
build/android-profile/profile-2018-04-11-09-39-15-126.json
File was deleted build/android-profile/profile-2018-04-11-09-39-15-126.rawprotoBinary files differ
build/android-profile/profile-2018-04-11-09-39-36-356.json
File was deleted build/android-profile/profile-2018-04-11-09-39-36-356.rawprotoBinary files differ
build/android-profile/profile-2018-04-11-11-16-52-824.json
File was deleted build/android-profile/profile-2018-04-11-11-16-52-824.rawprotoBinary files differ
build/android-profile/profile-2018-04-11-11-16-58-249.json
File was deleted build/android-profile/profile-2018-04-11-11-16-58-249.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-08-38-25-943.json
File was deleted build/android-profile/profile-2018-04-12-08-38-25-943.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-08-38-35-156.json
File was deleted build/android-profile/profile-2018-04-12-08-38-35-156.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-09-12-35-790.json
File was deleted build/android-profile/profile-2018-04-12-09-12-35-790.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-37-28-106.json
File was deleted build/android-profile/profile-2018-04-12-10-37-28-106.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-38-55-635.json
File was deleted build/android-profile/profile-2018-04-12-10-38-55-635.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-45-39-830.json
File was deleted build/android-profile/profile-2018-04-12-10-45-39-830.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-46-20-565.json
File was deleted build/android-profile/profile-2018-04-12-10-46-20-565.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-49-19-823.json
File was deleted build/android-profile/profile-2018-04-12-10-49-19-823.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-10-52-03-176.json
File was deleted build/android-profile/profile-2018-04-12-10-52-03-176.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-01-51-533.json
File was deleted build/android-profile/profile-2018-04-12-11-01-51-533.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-28-09-318.json
File was deleted build/android-profile/profile-2018-04-12-11-28-09-318.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-32-46-195.json
File was deleted build/android-profile/profile-2018-04-12-11-32-46-195.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-35-22-785.json
File was deleted build/android-profile/profile-2018-04-12-11-35-22-785.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-39-00-368.json
File was deleted build/android-profile/profile-2018-04-12-11-39-00-368.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-41-24-429.json
File was deleted build/android-profile/profile-2018-04-12-11-41-24-429.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-47-50-336.json
File was deleted build/android-profile/profile-2018-04-12-11-47-50-336.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-57-33-822.json
File was deleted build/android-profile/profile-2018-04-12-11-57-33-822.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-11-58-06-373.json
File was deleted build/android-profile/profile-2018-04-12-11-58-06-373.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-12-01-28-201.json
File was deleted build/android-profile/profile-2018-04-12-12-01-28-201.rawprotoBinary files differ
build/android-profile/profile-2018-04-12-12-25-31-897.json
File was deleted build/android-profile/profile-2018-04-12-12-25-31-897.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-05-44-953.json
File was deleted build/android-profile/profile-2018-04-13-09-05-44-953.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-05-55-650.json
File was deleted build/android-profile/profile-2018-04-13-09-05-55-650.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-07-17-486.json
File was deleted build/android-profile/profile-2018-04-13-09-07-17-486.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-19-03-079.json
File was deleted build/android-profile/profile-2018-04-13-09-19-03-079.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-21-28-339.json
File was deleted build/android-profile/profile-2018-04-13-09-21-28-339.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-27-23-808.json
File was deleted build/android-profile/profile-2018-04-13-09-27-23-808.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-27-35-187.json
File was deleted build/android-profile/profile-2018-04-13-09-27-35-187.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-28-49-088.json
File was deleted build/android-profile/profile-2018-04-13-09-28-49-088.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-36-40-451.json
File was deleted build/android-profile/profile-2018-04-13-09-36-40-451.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-36-53-492.json
File was deleted build/android-profile/profile-2018-04-13-09-36-53-492.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-38-38-835.json
File was deleted build/android-profile/profile-2018-04-13-09-38-38-835.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-41-19-163.json
File was deleted build/android-profile/profile-2018-04-13-09-41-19-163.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-50-28-308.json
File was deleted build/android-profile/profile-2018-04-13-09-50-28-308.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-09-56-19-410.json
File was deleted build/android-profile/profile-2018-04-13-09-56-19-410.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-05-09-080.json
File was deleted build/android-profile/profile-2018-04-13-10-05-09-080.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-18-32-535.json
File was deleted build/android-profile/profile-2018-04-13-10-18-32-535.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-24-51-790.json
File was deleted build/android-profile/profile-2018-04-13-10-24-51-790.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-26-36-924.json
File was deleted build/android-profile/profile-2018-04-13-10-26-36-924.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-32-54-804.json
File was deleted build/android-profile/profile-2018-04-13-10-32-54-804.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-36-51-299.json
File was deleted build/android-profile/profile-2018-04-13-10-36-51-299.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-38-14-918.json
File was deleted build/android-profile/profile-2018-04-13-10-38-14-918.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-41-28-907.json
File was deleted build/android-profile/profile-2018-04-13-10-41-28-907.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-42-47-062.json
File was deleted build/android-profile/profile-2018-04-13-10-42-47-062.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-45-54-546.json
File was deleted build/android-profile/profile-2018-04-13-10-45-54-546.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-51-34-049.json
File was deleted build/android-profile/profile-2018-04-13-10-51-34-049.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-10-59-57-695.json
File was deleted build/android-profile/profile-2018-04-13-10-59-57-695.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-11-14-24-605.json
File was deleted build/android-profile/profile-2018-04-13-11-14-24-605.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-11-15-24-685.json
File was deleted build/android-profile/profile-2018-04-13-11-15-24-685.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-11-16-44-669.json
File was deleted build/android-profile/profile-2018-04-13-11-16-44-669.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-11-19-44-664.json
File was deleted build/android-profile/profile-2018-04-13-11-19-44-664.rawprotoBinary files differ
build/android-profile/profile-2018-04-13-11-20-37-409.json
File was deleted build/android-profile/profile-2018-04-13-11-20-37-409.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-10-31-54-368.json
File was deleted build/android-profile/profile-2018-04-16-10-31-54-368.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-10-32-10-143.json
File was deleted build/android-profile/profile-2018-04-16-10-32-10-143.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-15-02-08-142.json
File was deleted build/android-profile/profile-2018-04-16-15-02-08-142.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-15-05-26-620.json
File was deleted build/android-profile/profile-2018-04-16-15-05-26-620.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-15-07-45-058.json
File was deleted build/android-profile/profile-2018-04-16-15-07-45-058.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-16-38-05-794.json
File was deleted build/android-profile/profile-2018-04-16-16-38-05-794.rawprotoBinary files differ
build/android-profile/profile-2018-04-16-16-40-09-010.json
File was deleted build/android-profile/profile-2018-04-16-16-40-09-010.rawprotoBinary files differ
build/android-profile/profile-2018-04-17-15-38-53-616.json
File was deleted build/android-profile/profile-2018-04-17-15-38-53-616.rawprotoBinary files differ
build/android-profile/profile-2018-04-17-15-39-12-870.json
File was deleted build/android-profile/profile-2018-04-17-15-39-12-870.rawprotoBinary files differ
build/android-profile/profile-2018-04-17-16-17-48-956.json
File was deleted build/android-profile/profile-2018-04-17-16-17-48-956.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-08-34-48-469.json
File was deleted build/android-profile/profile-2018-04-18-08-34-48-469.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-08-35-02-062.json
File was deleted build/android-profile/profile-2018-04-18-08-35-02-062.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-09-10-56-139.json
File was deleted build/android-profile/profile-2018-04-18-09-10-56-139.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-09-11-08-379.json
File was deleted build/android-profile/profile-2018-04-18-09-11-08-379.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-11-17-17-804.json
File was deleted build/android-profile/profile-2018-04-18-11-17-17-804.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-14-20-02-354.json
File was deleted build/android-profile/profile-2018-04-18-14-20-02-354.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-14-23-09-756.json
File was deleted build/android-profile/profile-2018-04-18-14-23-09-756.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-14-28-30-978.json
File was deleted build/android-profile/profile-2018-04-18-14-28-30-978.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-14-31-24-613.json
File was deleted build/android-profile/profile-2018-04-18-14-31-24-613.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-17-18-56-272.json
File was deleted build/android-profile/profile-2018-04-18-17-18-56-272.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-17-19-12-988.json
File was deleted build/android-profile/profile-2018-04-18-17-19-12-988.rawprotoBinary files differ
build/android-profile/profile-2018-04-18-17-21-20-823.json
File was deleted build/android-profile/profile-2018-04-18-17-21-20-823.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-09-45-06-098.json
File was deleted build/android-profile/profile-2018-04-19-09-45-06-098.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-09-45-15-188.json
File was deleted build/android-profile/profile-2018-04-19-09-45-15-188.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-09-52-21-240.json
File was deleted build/android-profile/profile-2018-04-19-09-52-21-240.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-09-54-36-034.json
File was deleted build/android-profile/profile-2018-04-19-09-54-36-034.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-03-18-535.json
File was deleted build/android-profile/profile-2018-04-19-10-03-18-535.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-07-59-550.json
File was deleted build/android-profile/profile-2018-04-19-10-07-59-550.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-08-44-833.json
File was deleted build/android-profile/profile-2018-04-19-10-08-44-833.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-13-17-822.json
File was deleted build/android-profile/profile-2018-04-19-10-13-17-822.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-19-32-556.json
File was deleted build/android-profile/profile-2018-04-19-10-19-32-556.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-27-19-678.json
File was deleted build/android-profile/profile-2018-04-19-10-27-19-678.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-36-01-233.json
File was deleted build/android-profile/profile-2018-04-19-10-36-01-233.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-38-18-816.json
File was deleted build/android-profile/profile-2018-04-19-10-38-18-816.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-45-15-801.json
File was deleted build/android-profile/profile-2018-04-19-10-45-15-801.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-53-42-507.json
File was deleted build/android-profile/profile-2018-04-19-10-53-42-507.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-10-53-49-201.json
File was deleted build/android-profile/profile-2018-04-19-10-53-49-201.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-11-19-27-565.json
File was deleted build/android-profile/profile-2018-04-19-11-19-27-565.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-35-47-505.json
File was deleted build/android-profile/profile-2018-04-19-15-35-47-505.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-35-55-136.json
File was deleted build/android-profile/profile-2018-04-19-15-35-55-136.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-40-44-250.json
File was deleted build/android-profile/profile-2018-04-19-15-40-44-250.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-43-14-013.json
File was deleted build/android-profile/profile-2018-04-19-15-43-14-013.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-47-50-514.json
File was deleted build/android-profile/profile-2018-04-19-15-47-50-514.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-15-48-19-102.json
File was deleted build/android-profile/profile-2018-04-19-15-48-19-102.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-16-14-57-855.json
File was deleted build/android-profile/profile-2018-04-19-16-14-57-855.rawprotoBinary files differ
build/android-profile/profile-2018-04-19-16-15-02-912.json
File was deleted build/android-profile/profile-2018-04-19-16-15-02-912.rawprotoBinary files differ
build/android-profile/profile-2018-04-20-10-52-26-172.json
File was deleted build/android-profile/profile-2018-04-20-10-52-26-172.rawprotoBinary files differ
build/android-profile/profile-2018-04-20-10-52-33-341.json
File was deleted build/android-profile/profile-2018-04-20-10-52-33-341.rawprotoBinary files differ
build/android-profile/profile-2018-04-23-11-23-04-432.json
File was deleted build/android-profile/profile-2018-04-23-11-23-04-432.rawprotoBinary files differ
build/android-profile/profile-2018-04-23-11-23-11-977.json
File was deleted build/android-profile/profile-2018-04-23-11-23-11-977.rawprotoBinary files differ
build/android-profile/profile-2018-04-23-13-25-06-753.json
File was deleted build/android-profile/profile-2018-04-23-13-25-06-753.rawprotoBinary files differ
build/android-profile/profile-2018-04-23-13-25-12-306.json
File was deleted build/android-profile/profile-2018-04-23-13-25-12-306.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-09-02-04-805.json
File was deleted build/android-profile/profile-2018-04-24-09-02-04-805.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-09-02-15-970.json
File was deleted build/android-profile/profile-2018-04-24-09-02-15-970.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-16-04-27-091.json
File was deleted build/android-profile/profile-2018-04-24-16-04-27-091.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-16-04-34-868.json
File was deleted build/android-profile/profile-2018-04-24-16-04-34-868.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-17-18-48-566.json
File was deleted build/android-profile/profile-2018-04-24-17-18-48-566.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-17-18-55-200.json
File was deleted build/android-profile/profile-2018-04-24-17-18-55-200.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-17-20-05-487.json
File was deleted build/android-profile/profile-2018-04-24-17-20-05-487.rawprotoBinary files differ
build/android-profile/profile-2018-04-24-17-20-10-200.json
File was deleted build/android-profile/profile-2018-04-24-17-20-10-200.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-08-48-06-263.json
File was deleted build/android-profile/profile-2018-04-25-08-48-06-263.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-08-48-13-683.json
File was deleted build/android-profile/profile-2018-04-25-08-48-13-683.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-09-04-38-567.json
File was deleted build/android-profile/profile-2018-04-25-09-04-38-567.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-09-07-24-788.json
File was deleted build/android-profile/profile-2018-04-25-09-07-24-788.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-07-17-372.json
File was deleted build/android-profile/profile-2018-04-25-17-07-17-372.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-08-13-102.json
File was deleted build/android-profile/profile-2018-04-25-17-08-13-102.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-29-02-806.json
File was deleted build/android-profile/profile-2018-04-25-17-29-02-806.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-29-57-159.json
File was deleted build/android-profile/profile-2018-04-25-17-29-57-159.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-30-13-460.json
File was deleted build/android-profile/profile-2018-04-25-17-30-13-460.rawprotoBinary files differ
build/android-profile/profile-2018-04-25-17-30-55-265.json
File was deleted build/android-profile/profile-2018-04-25-17-30-55-265.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-08-45-18-270.json
File was deleted build/android-profile/profile-2018-04-26-08-45-18-270.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-08-45-32-156.json
File was deleted build/android-profile/profile-2018-04-26-08-45-32-156.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-08-49-34-849.json
File was deleted build/android-profile/profile-2018-04-26-08-49-34-849.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-09-21-683.json
File was deleted build/android-profile/profile-2018-04-26-09-09-21-683.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-11-50-675.json
File was deleted build/android-profile/profile-2018-04-26-09-11-50-675.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-18-08-162.json
File was deleted build/android-profile/profile-2018-04-26-09-18-08-162.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-19-56-748.json
File was deleted build/android-profile/profile-2018-04-26-09-19-56-748.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-24-12-093.json
File was deleted build/android-profile/profile-2018-04-26-09-24-12-093.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-09-25-54-723.json
File was deleted build/android-profile/profile-2018-04-26-09-25-54-723.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-15-12-30-457.json
File was deleted build/android-profile/profile-2018-04-26-15-12-30-457.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-15-21-27-458.json
File was deleted build/android-profile/profile-2018-04-26-15-21-27-458.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-15-39-56-795.json
File was deleted build/android-profile/profile-2018-04-26-15-39-56-795.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-16-32-19-500.json
File was deleted build/android-profile/profile-2018-04-26-16-32-19-500.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-16-38-15-624.json
File was deleted build/android-profile/profile-2018-04-26-16-38-15-624.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-16-42-47-378.json
File was deleted build/android-profile/profile-2018-04-26-16-42-47-378.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-17-04-53-773.json
File was deleted build/android-profile/profile-2018-04-26-17-04-53-773.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-21-51-04-047.json
File was deleted build/android-profile/profile-2018-04-26-21-51-04-047.rawprotoBinary files differ
build/android-profile/profile-2018-04-26-21-51-31-513.json
File was deleted build/android-profile/profile-2018-04-26-21-51-31-513.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-09-08-44-913.json
File was deleted build/android-profile/profile-2018-04-27-09-08-44-913.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-09-08-52-432.json
File was deleted build/android-profile/profile-2018-04-27-09-08-52-432.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-09-09-47-999.json
File was deleted build/android-profile/profile-2018-04-27-09-09-47-999.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-11-40-07-280.json
File was deleted build/android-profile/profile-2018-04-27-11-40-07-280.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-11-41-09-412.json
File was deleted build/android-profile/profile-2018-04-27-11-41-09-412.rawprotoBinary files differ
build/android-profile/profile-2018-04-27-13-51-15-576.json
File was deleted build/android-profile/profile-2018-04-27-13-51-15-576.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-08-32-31-900.json
File was deleted build/android-profile/profile-2018-04-28-08-32-31-900.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-08-32-51-933.json
File was deleted build/android-profile/profile-2018-04-28-08-32-51-933.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-08-33-38-733.json
File was deleted build/android-profile/profile-2018-04-28-08-33-38-733.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-09-38-06-178.json
File was deleted build/android-profile/profile-2018-04-28-09-38-06-178.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-14-46-36-802.json
File was deleted build/android-profile/profile-2018-04-28-14-46-36-802.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-15-03-34-300.json
File was deleted build/android-profile/profile-2018-04-28-15-03-34-300.rawprotoBinary files differ
build/android-profile/profile-2018-04-28-15-37-55-712.json
File was deleted build/android-profile/profile-2018-04-28-15-37-55-712.rawprotoBinary files differ
build/android-profile/profile-2018-05-02-08-53-50-171.json
File was deleted build/android-profile/profile-2018-05-02-08-53-50-171.rawprotoBinary files differ
build/android-profile/profile-2018-05-02-08-54-07-919.json
File was deleted build/android-profile/profile-2018-05-02-08-54-07-919.rawprotoBinary files differ
build/android-profile/profile-2018-05-03-13-04-56-469.json
File was deleted build/android-profile/profile-2018-05-03-13-04-56-469.rawprotoBinary files differ
build/android-profile/profile-2018-05-03-13-05-03-591.json
File was deleted build/android-profile/profile-2018-05-03-13-05-03-591.rawprotoBinary files differ
build/android-profile/profile-2018-05-03-13-34-21-307.json
File was deleted build/android-profile/profile-2018-05-03-13-34-21-307.rawprotoBinary files differ
build/android-profile/profile-2018-05-03-17-15-26-255.json
File was deleted build/android-profile/profile-2018-05-03-17-15-26-255.rawprotoBinary files differ
build/android-profile/profile-2018-05-03-17-15-33-189.json
File was deleted build/android-profile/profile-2018-05-03-17-15-33-189.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-08-48-20-167.json
File was deleted build/android-profile/profile-2018-05-04-08-48-20-167.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-08-48-30-749.json
File was deleted build/android-profile/profile-2018-05-04-08-48-30-749.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-08-54-40-130.json
File was deleted build/android-profile/profile-2018-05-04-08-54-40-130.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-09-04-31-068.json
File was deleted build/android-profile/profile-2018-05-04-09-04-31-068.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-17-31-49-579.json
File was deleted build/android-profile/profile-2018-05-04-17-31-49-579.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-17-32-04-425.json
File was deleted build/android-profile/profile-2018-05-04-17-32-04-425.rawprotoBinary files differ
build/android-profile/profile-2018-05-04-17-32-31-846.json
File was deleted build/android-profile/profile-2018-05-04-17-32-31-846.rawprotoBinary files differ
build/android-profile/profile-2018-05-08-16-03-09-246.json
File was deleted build/android-profile/profile-2018-05-08-16-03-09-246.rawprotoBinary files differ
build/android-profile/profile-2018-05-08-16-03-16-698.json
File was deleted build/android-profile/profile-2018-05-08-16-03-16-698.rawprotoBinary files differ
build/android-profile/profile-2018-05-08-16-20-56-102.json
File was deleted build/android-profile/profile-2018-05-08-16-20-56-102.rawprotoBinary files differ
build/android-profile/profile-2018-05-08-16-22-10-715.json
File was deleted build/android-profile/profile-2018-05-08-16-22-10-715.rawprotoBinary files differ
build/android-profile/profile-2018-05-10-19-00-58-857.json
File was deleted build/android-profile/profile-2018-05-10-19-00-58-857.rawprotoBinary files differ
build/android-profile/profile-2018-05-10-19-01-20-343.json
File was deleted build/android-profile/profile-2018-05-10-19-01-20-343.rawprotoBinary files differ
build/android-profile/profile-2018-05-11-20-51-50-242.json
File was deleted build/android-profile/profile-2018-05-11-20-51-50-242.rawprotoBinary files differ
build/android-profile/profile-2018-05-11-20-52-02-182.json
File was deleted build/android-profile/profile-2018-05-11-20-52-02-182.rawprotoBinary files differ
build/android-profile/profile-2018-05-17-20-58-26-266.json
File was deleted build/android-profile/profile-2018-05-17-20-58-26-266.rawprotoBinary files differ
build/android-profile/profile-2018-05-17-20-58-35-833.json
File was deleted build/android-profile/profile-2018-05-17-20-58-35-833.rawprotoBinary files differ
build/android-profile/profile-2018-05-24-00-00-12-670.json
File was deleted build/android-profile/profile-2018-05-24-00-00-12-670.rawprotoBinary files differ
build/android-profile/profile-2018-05-24-00-00-21-558.json
File was deleted build/android-profile/profile-2018-05-24-00-00-21-558.rawprotoBinary files differ
build/android-profile/profile-2018-05-25-16-41-15-651.json
File was deleted build/android-profile/profile-2018-05-25-16-41-15-651.rawprotoBinary files differ
build/android-profile/profile-2018-05-25-16-41-23-036.json
File was deleted build/android-profile/profile-2018-05-25-16-41-23-036.rawprotoBinary files differ
build/android-profile/profile-2018-05-28-08-57-55-035.json
File was deleted build/android-profile/profile-2018-05-28-08-57-55-035.rawprotoBinary files differ
build/android-profile/profile-2018-05-28-08-58-03-593.json
File was deleted build/android-profile/profile-2018-05-28-08-58-03-593.rawprotoBinary files differ
build/android-profile/profile-2018-05-28-09-40-24-414.json
File was deleted build/android-profile/profile-2018-05-28-09-40-24-414.rawprotoBinary files differ
build/android-profile/profile-2018-05-28-20-48-19-686.json
File was deleted build/android-profile/profile-2018-05-28-20-48-19-686.rawprotoBinary files differ
build/android-profile/profile-2018-05-28-20-48-40-622.json
File was deleted build/android-profile/profile-2018-05-28-20-48-40-622.rawprotoBinary files differ
build/android-profile/profile-2018-06-01-14-55-22-691.json
File was deleted build/android-profile/profile-2018-06-01-14-55-22-691.rawprotoBinary files differ
build/android-profile/profile-2018-06-01-14-55-31-046.json
File was deleted build/android-profile/profile-2018-06-01-14-55-31-046.rawprotoBinary files differ
build/android-profile/profile-2018-06-04-14-45-14-160.json
File was deleted build/android-profile/profile-2018-06-04-14-45-14-160.rawprotoBinary files differ
build/android-profile/profile-2018-06-04-14-45-20-535.json
File was deleted build/android-profile/profile-2018-06-04-14-45-20-535.rawprotoBinary files differ
build/android-profile/profile-2018-06-06-09-02-18-326.json
File was deleted build/android-profile/profile-2018-06-06-09-02-18-326.rawprotoBinary files differ
build/android-profile/profile-2018-06-06-09-02-27-224.json
File was deleted build/android-profile/profile-2018-06-06-09-02-27-224.rawprotoBinary files differ
build/android-profile/profile-2018-06-08-13-34-30-177.json
File was deleted build/android-profile/profile-2018-06-08-13-34-30-177.rawprotoBinary files differ
build/android-profile/profile-2018-06-08-13-34-42-824.json
File was deleted build/android-profile/profile-2018-06-08-13-34-42-824.rawprotoBinary files differ
build/android-profile/profile-2018-06-08-13-37-02-865.json
File was deleted build/android-profile/profile-2018-06-08-13-37-02-865.rawprotoBinary files differ
build/android-profile/profile-2018-06-08-13-37-41-265.json
File was deleted build/android-profile/profile-2018-06-08-13-37-41-265.rawprotoBinary files differ
build/android-profile/profile-2018-06-13-10-07-21-247.json
File was deleted build/android-profile/profile-2018-06-13-10-07-21-247.rawprotoBinary files differ
build/android-profile/profile-2018-06-13-10-07-29-991.json
File was deleted build/android-profile/profile-2018-06-13-10-07-29-991.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-10-07-54-363.json
File was deleted build/android-profile/profile-2018-06-14-10-07-54-363.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-10-08-03-618.json
File was deleted build/android-profile/profile-2018-06-14-10-08-03-618.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-10-56-14-263.json
File was deleted build/android-profile/profile-2018-06-14-10-56-14-263.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-10-57-22-136.json
File was deleted build/android-profile/profile-2018-06-14-10-57-22-136.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-18-18-835.json
File was deleted build/android-profile/profile-2018-06-14-11-18-18-835.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-25-21-183.json
File was deleted build/android-profile/profile-2018-06-14-11-25-21-183.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-25-43-375.json
File was deleted build/android-profile/profile-2018-06-14-11-25-43-375.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-26-50-873.json
File was deleted build/android-profile/profile-2018-06-14-11-26-50-873.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-30-40-346.json
File was deleted build/android-profile/profile-2018-06-14-11-30-40-346.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-31-07-444.json
File was deleted build/android-profile/profile-2018-06-14-11-31-07-444.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-32-19-127.json
File was deleted build/android-profile/profile-2018-06-14-11-32-19-127.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-38-38-854.json
File was deleted build/android-profile/profile-2018-06-14-11-38-38-854.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-11-40-26-849.json
File was deleted build/android-profile/profile-2018-06-14-11-40-26-849.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-13-24-55-376.json
File was deleted build/android-profile/profile-2018-06-14-13-24-55-376.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-13-26-15-980.json
File was deleted build/android-profile/profile-2018-06-14-13-26-15-980.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-13-28-53-911.json
File was deleted build/android-profile/profile-2018-06-14-13-28-53-911.rawprotoBinary files differ
build/android-profile/profile-2018-06-14-13-35-51-505.json
File was deleted build/android-profile/profile-2018-06-14-13-35-51-505.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-02-14-501.json
File was deleted build/android-profile/profile-2018-06-21-10-02-14-501.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-02-42-324.json
File was deleted build/android-profile/profile-2018-06-21-10-02-42-324.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-03-16-366.json
File was deleted build/android-profile/profile-2018-06-21-10-03-16-366.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-03-22-935.json
File was deleted build/android-profile/profile-2018-06-21-10-03-22-935.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-03-58-862.json
File was deleted build/android-profile/profile-2018-06-21-10-03-58-862.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-28-54-481.json
File was deleted build/android-profile/profile-2018-06-21-10-28-54-481.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-30-21-657.json
File was deleted build/android-profile/profile-2018-06-21-10-30-21-657.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-31-43-256.json
File was deleted build/android-profile/profile-2018-06-21-10-31-43-256.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-35-23-045.json
File was deleted build/android-profile/profile-2018-06-21-10-35-23-045.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-36-25-437.json
File was deleted build/android-profile/profile-2018-06-21-10-36-25-437.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-37-04-091.json
File was deleted build/android-profile/profile-2018-06-21-10-37-04-091.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-38-35-401.json
File was deleted build/android-profile/profile-2018-06-21-10-38-35-401.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-38-42-513.json
File was deleted build/android-profile/profile-2018-06-21-10-38-42-513.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-39-04-186.json
File was deleted build/android-profile/profile-2018-06-21-10-39-04-186.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-10-42-59-894.json
File was deleted build/android-profile/profile-2018-06-21-10-42-59-894.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-11-40-10-328.json
File was deleted build/android-profile/profile-2018-06-21-11-40-10-328.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-11-40-16-288.json
File was deleted build/android-profile/profile-2018-06-21-11-40-16-288.rawprotoBinary files differ
build/android-profile/profile-2018-06-21-11-48-57-234.json
File was deleted build/android-profile/profile-2018-06-21-11-48-57-234.rawprotoBinary files differ
build/android-profile/profile-2018-07-10-08-58-02-889.json
File was deleted build/android-profile/profile-2018-07-10-08-58-02-889.rawprotoBinary files differ
build/android-profile/profile-2018-07-10-08-58-21-141.json
File was deleted build/android-profile/profile-2018-07-10-08-58-21-141.rawprotoBinary files differ
build/android-profile/profile-2018-07-10-09-13-24-333.json
File was deleted build/android-profile/profile-2018-07-10-09-13-24-333.rawprotoBinary files differ
build/android-profile/profile-2018-07-10-09-27-18-706.json
File was deleted build/android-profile/profile-2018-07-10-09-27-18-706.rawprotoBinary files differ
build/android-profile/profile-2018-07-11-16-55-14-448.json
File was deleted build/android-profile/profile-2018-07-11-16-55-14-448.rawprotoBinary files differ
build/android-profile/profile-2018-07-11-16-55-29-739.json
File was deleted build/android-profile/profile-2018-07-11-16-55-29-739.rawprotoBinary files differ
build/android-profile/profile-2018-07-12-08-37-49-379.json
File was deleted build/android-profile/profile-2018-07-12-08-37-49-379.rawprotoBinary files differ
build/android-profile/profile-2018-07-12-08-38-01-279.json
File was deleted build/android-profile/profile-2018-07-12-08-38-01-279.rawprotoBinary files differ
build/android-profile/profile-2018-09-13-14-26-58-523.json
File was deleted build/android-profile/profile-2018-09-13-14-26-58-523.rawprotoBinary files differ
build/android-profile/profile-2018-09-13-14-27-42-847.json
File was deleted build/android-profile/profile-2018-09-13-14-27-42-847.rawprotoBinary files differ
build/android-profile/profile-2018-09-13-14-48-01-065.json
File was deleted build/android-profile/profile-2018-09-13-14-48-01-065.rawprotoBinary files differ
build/android-profile/profile-2018-09-13-14-48-06-716.json
File was deleted build/android-profile/profile-2018-09-13-14-48-06-716.rawprotoBinary files differ
build/android-profile/profile-2018-09-14-09-55-28-267.json
File was deleted build/android-profile/profile-2018-09-14-09-55-28-267.rawprotoBinary files differ
build/android-profile/profile-2018-09-14-09-55-36-961.json
File was deleted build/android-profile/profile-2018-09-14-09-55-36-961.rawprotoBinary files differ
build/android-profile/profile-2018-09-17-13-20-53-623.json
File was deleted build/android-profile/profile-2018-09-17-13-20-53-623.rawprotoBinary files differ
build/android-profile/profile-2018-09-17-13-21-03-830.json
File was deleted build/android-profile/profile-2018-09-17-13-21-03-830.rawprotoBinary files differ
build/android-profile/profile-2018-09-18-10-20-35-170.json
File was deleted build/android-profile/profile-2018-09-18-10-20-35-170.rawprotoBinary files differ
build/android-profile/profile-2018-09-18-10-20-48-126.json
File was deleted build/android-profile/profile-2018-09-18-10-20-48-126.rawprotoBinary files differ
build/android-profile/profile-2018-09-19-13-11-55-824.json
File was deleted build/android-profile/profile-2018-09-19-13-11-55-824.rawprotoBinary files differ
build/android-profile/profile-2018-09-19-13-12-02-542.json
File was deleted build/android-profile/profile-2018-09-19-13-12-02-542.rawprotoBinary files differ
build/intermediates/dex-cache/cache.xml
File was deleted build/intermediates/lint-cache/maven.google/com/android/support/constraint/group-index.xml
File was deleted build/intermediates/lint-cache/maven.google/com/android/support/group-index.xml
File was deleted build/intermediates/lint-cache/maven.google/master-index.xml
File was deleted gradle.properties
@@ -15,3 +15,4 @@ # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true local.properties
@@ -4,5 +4,6 @@ # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. #Mon Apr 09 21:18:05 CST 2018 sdk.dir=C\:\\Users\\Administrator\\AppData\\Local\\Android\\android-sdk #Fri Oct 26 16:16:07 CST 2018 ndk.dir=/Users/chenqi/Library/Android/sdk/ndk-bundle sdk.dir=/Users/chenqi/Library/Android/sdk pregnancy_guard_android.iml
@@ -13,7 +13,7 @@ <content url="file://$MODULE_DIR$"> <excludeFolder url="file://$MODULE_DIR$/.gradle" /> </content> <orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> <orderEntry type="sourceFolder" forTests="false" /> </component> </module>