From e6a8bdd23d6f5cb46ac650285829573280edcdf6 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期一, 15 七月 2019 16:51:11 +0800
Subject: [PATCH] a
---
app/src/main/java/com/basic/security/utils/AudioPlayer.java | 1
app/src/main/res/drawable/check_box_selector.xml | 6
app/src/main/java/com/basic/security/fragment/HomeFragment.java | 35
app/src/main/java/com/basic/security/activity/WelcomeActivity.java | 46
app/src/main/res/drawable/checkbox_on_background.png | 0
app/libs/sdkapi.jar | 0
.idea/encodings.xml | 5
app/CMakeLists.txt | 1
app/src/main/cpp/native-lib.cpp | 32
app/.externalNativeBuild/cmake/release/armeabi-v7a/build.ninja | 10
.idea/misc.xml | 5
app/.externalNativeBuild/cmake/debug/armeabi-v7a/CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o | 0
app/src/main/java/com/basic/security/utils/Constants.java | 7
.idea/workspace.xml | 3282 +++++++++++++++++++++++------
app/src/main/res/drawable/radiobutton_on_background_focus_yellow.png | 0
app/src/main/res/layout/activity_main.xml | 4
app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java | 178 +
app/src/main/res/drawable/pulldown.png | 0
app/src/main/java/com/basic/security/utils/SocketServer.java | 45
app/app.iml | 140
app/src/main/cpp/TCPClient.h | 36
app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java | 254 +
app/src/main/res/drawable/ic_arrow_down.png | 0
app/src/main/java/com/basic/security/manager/SettingManager.java | 89
app/src/main/cpp/csrc/thirdparty/ffmpeg/bin/ffmpeg | 0
app/src/main/java/com/basic/security/utils/CrashHandler.java | 50
app/src/main/res/drawable/radiobutton_off_background_focus_yellow.png | 0
app/src/main/java/com/basic/security/utils/SocketClient.java | 189 +
app/src/main/java/com/basic/security/dao/SqliteManager.java | 23
app/src/main/java/com/basic/security/fragment/helper/HomeBase.java | 2
app/src/main/java/com/basic/security/widget/AuthDialog.java | 150 +
app/src/main/res/layout/activity_welcome.xml | 10
app/src/main/java/com/basic/security/utils/PermissionHelper.java | 88
app/src/main/java/com/basic/security/model/Alarm.java | 19
app/src/main/res/layout/auth_dialog.xml | 63
app/src/main/java/com/basic/security/activity/MainActivity.java | 16
.gitignore | 36
app/src/main/res/values/styles.xml | 11
app/.externalNativeBuild/cmake/release/armeabi-v7a/android_gradle_build.json | 6
app/src/main/res/drawable/radiobutton_on_background.png | 0
app/src/main/res/drawable/radiobutton.xml | 28
app/src/main/java/com/basic/security/dao/DatabaseManager.java | 50
app/src/main/res/drawable/radiobutton_off_background.png | 0
.idea/vcs.xml | 2
app/src/main/java/com/basic/security/model/Setting.java | 15
app/src/main/java/com/basic/security/widget/CustomSpinner.java | 19
app/src/main/res/drawable/logo1.png | 0
app/debug/output.json | 1
app/src/main/res/drawable/checkbox_off_background.png | 0
app/src/main/AndroidManifest.xml | 36
app/src/main/java/com/basic/security/utils/KeyboardUtil.java | 2
app/src/main/java/com/basic/security/utils/IpUtils.java | 84
app/src/main/res/drawable/bg_edittext1_color.xml | 5
.idea/caches/build_file_checksums.ser | 0
app/src/main/java/com/basic/security/utils/JnanomsgServer.java | 54
app/.externalNativeBuild/cmake/debug/armeabi-v7a/android_gradle_build.json | 6
app/src/main/cpp/TCPClient.cpp | 83
app/src/main/jniLibs/armeabi-v7a/libnanomsg.so | 0
.idea/codeStyles/Project.xml | 49
app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_deps | 0
app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_log | 31
app/.externalNativeBuild/cmake/debug/armeabi-v7a/build.ninja | 10
app/src/main/java/com/basic/security/fragment/SettingFragment.java | 361 ++
app/src/main/java/com/basic/security/manager/AlarmManager.java | 17
app/src/main/res/drawable/u41.png | 0
.idea/caches/gradle_models.ser | 0
app/src/main/res/drawable/spinner_arrow_down.xml | 4
app/src/main/res/drawable/u259_gray.png | 0
app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java | 102
app/src/main/res/layout/fragment_setting.xml | 714 ++++-
app/src/main/java/com/basic/security/utils/LztekAndroidRoot.java | 54
71 files changed, 5,245 insertions(+), 1,321 deletions(-)
diff --git a/.gitignore b/.gitignore
index 3a36c6e..5edb4ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,26 +1,10 @@
-# Built application files
-*.apk
-*.ap_
-
-# Files for the Dalvik VM
-*.dex
-
-# Java class files
-*.class
-
-# Generated files
-bin/
-gen/
-
-# Gradle files
-.gradle/
-build/
-
-# Local configuration file (sdk path, etc)
-local.properties
-
-# Proguard folder generated by Eclipse
-proguard/
-
-#Log Files
-*.log
+*.iml
+.gradle
+/local.properties
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index be6dfee..d18ba72 100644
--- a/.idea/caches/build_file_checksums.ser
+++ b/.idea/caches/build_file_checksums.ser
Binary files differ
diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
index a8e2abb..f78c042 100644
--- a/.idea/caches/gradle_models.ser
+++ b/.idea/caches/gradle_models.ser
Binary files differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 565c347..30aa626 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -1,28 +1,29 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
- <DBN-PSQL>
- <case-options enabled="false">
- <option name="KEYWORD_CASE" value="lower" />
- <option name="FUNCTION_CASE" value="lower" />
- <option name="PARAMETER_CASE" value="lower" />
- <option name="DATATYPE_CASE" value="lower" />
- <option name="OBJECT_CASE" value="preserve" />
- </case-options>
- <formatting-settings enabled="false" />
- </DBN-PSQL>
- <DBN-SQL>
- <case-options enabled="false">
- <option name="KEYWORD_CASE" value="lower" />
- <option name="FUNCTION_CASE" value="lower" />
- <option name="PARAMETER_CASE" value="lower" />
- <option name="DATATYPE_CASE" value="lower" />
- <option name="OBJECT_CASE" value="preserve" />
- </case-options>
- <formatting-settings enabled="false">
- <option name="STATEMENT_SPACING" value="one_line" />
- <option name="CLAUSE_CHOP_DOWN" value="chop_down_if_statement_long" />
- <option name="ITERATION_ELEMENTS_WRAPPING" value="chop_down_if_not_single" />
- </formatting-settings>
- </DBN-SQL>
+ <Objective-C-extensions>
+ <file>
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
+ </file>
+ <class>
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
+ <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
+ </class>
+ <extensions>
+ <pair source="cpp" header="h" fileNamingConvention="NONE" />
+ <pair source="c" header="h" fileNamingConvention="NONE" />
+ </extensions>
+ </Objective-C-extensions>
</code_scheme>
</component>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 0dc2146..15a15b2 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="Encoding">
- <file url="file://F:/workspace/termux-app-master/gradle.properties" charset="UTF-8" />
- <file url="file://F:/workspace/termux-app-master/gradle/wrapper/gradle-wrapper.properties" charset="UTF-8" />
- </component>
+ <component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 733acdd..c0f68ed 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -25,13 +25,10 @@
</value>
</option>
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
- </component>
- <component name="SvnBranchConfigurationManager">
- <option name="mySupportsUserInfoFilter" value="true" />
</component>
</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 45cf85c..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
- <mapping directory="" vcs="svn" />
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 98de605..a48287b 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,18 +2,22 @@
<project version="4">
<component name="AndroidLayouts">
<shared>
- <config />
+ <config>
+ <devices>
+ <device id="pixel" />
+ </devices>
+ </config>
</shared>
</component>
<component name="AndroidLogFilters">
- <option name="TOOL_WINDOW_CUSTOM_FILTER" value="msg" />
- <option name="TOOL_WINDOW_LOG_LEVEL" value="verbose" />
<option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
</component>
<component name="ChangeListManager">
- <list default="true" id="d69f261f-a6c6-4e7b-864f-3db63fafeb3b" name="Default" comment="" />
- <list id="7dd41599-b337-44fb-8749-e920104f4996" name="ignore-on-commit" comment="" />
+ <list default="true" id="73e46e7a-0efa-4011-8434-aa3922a61ab9" name="Default" comment="">
+ <change beforePath="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java" afterPath="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java" />
+ </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+ <option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -27,57 +31,18 @@
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
- <projects_view>
- <tree_state>
- <expand>
- <path>
- <item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
- <item name="Security_alarm" type="f1a62948:ProjectNode" />
- </path>
- </expand>
- <select />
- </tree_state>
- </projects_view>
+ <projects_view />
</state>
</system>
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
- <file pinned="false" current-in-tab="true">
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketClient.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="227">
- <caret line="153" column="1652" selection-start-line="153" selection-start-column="1652" selection-end-line="153" selection-end-column="1652" />
- </state>
- </provider>
- </entry>
- </file>
- <file pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/HomeFragment.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="123">
- <caret line="61" column="42" selection-start-line="61" selection-start-column="24" selection-end-line="61" selection-end-column="42" />
- </state>
- </provider>
- </entry>
- </file>
- <file pinned="false" current-in-tab="false">
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1424">
- <caret line="195" selection-start-line="195" selection-end-line="195" />
- </state>
- </provider>
- </entry>
- </file>
- <file pinned="false" current-in-tab="false">
+ <file leaf-file-name="AlarmManager.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/AlarmManager.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="135">
- <caret line="51" column="35" selection-start-line="51" selection-start-column="26" selection-end-line="51" selection-end-column="35" />
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state relative-caret-position="27">
+ <caret line="50" column="56" lean-forward="false" selection-start-line="50" selection-start-column="44" selection-end-line="50" selection-end-column="56" />
+ <folding />
</state>
</provider>
</entry>
@@ -87,234 +52,2142 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
- <option value="Interface" />
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
- <find>stopAllVideoPlays</find>
- <find>alarmVideoGestureOverlayView</find>
- <find>resu</find>
- <find>alarmVideoOverlay.setVI</find>
- <find>initMilliSecond</find>
- <find>secondArray</find>
- <find>mainActivityView</find>
- <find>setupUI</find>
- <find>KeyboardUtil.setupUI</find>
- <find>haveVideoPlay</find>
- <find>FileScanThread</find>
- <find>AudioPlayer</find>
- <find>stopVideo</find>
- <find>buildToolsVersion</find>
- <find>refreshGrid</find>
- <find>28.0.0-rc02</find>
- <find>overLa</find>
- <find>overLay</find>
- <find>matchPersonList</find>
- <find>androidannotations</find>
- <find>CMAKE_CPP_DIR</find>
- <find>LINK_LIB</find>
- <find>SDL_android_main</find>
- <find>link</find>
- <find>ip</find>
- <find>new Socket</find>
- <find>setOnSearchClickedListener</find>
- <find>matchPerson</find>
- <find>match</find>
- <find>搴曞簱</find>
+ <find>setCanceledOnTouchOutside</find>
+ <find>mWindow</find>
+ <find>closeOtherSockets</find>
+ <find>receive</find>
+ <find>setup</find>
+ <find>playAlarmSound</find>
+ <find>oldPassword</find>
+ <find>mLztek.</find>
+ <find>mLztek.setEthIpAddress</find>
+ <find>onBtnConfirm</find>
+ <find>refreshAddrInfo</find>
+ <find>byteArrayOutputStream</find>
+ <find>mapComparator</find>
+ <find>ffmpeg</find>
+ <find>db</find>
+ <find>DebugDBInitProvider</find>
+ <find>setCustomDatabaseFiles</find>
+ <find>amitshekhar</find>
+ <find>alarmLargePicture</find>
</findStrings>
- <replaceStrings>
- <replace><dimen name="h</replace>
- <replace><dimen name="w</replace>
- <replace>id</replace>
- <replace>viewHolder.alarmVideo</replace>
- </replaceStrings>
- <dirStrings>
- <dir>C:\workspace\Security_alarm\app\src\main\java\com\basic\security\fragment\helper</dir>
- </dirStrings>
+ </component>
+ <component name="Git.Settings">
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+ </component>
+ <component name="GradleLocalSettings">
+ <option name="myGradleHomes">
+ <map>
+ <entry key="$PROJECT_DIR$" value="C:\Users\xiuxi\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1\gradle-4.4" />
+ </map>
+ </option>
+ <option name="myGradleVersions">
+ <map>
+ <entry key="$PROJECT_DIR$" value="4.4" />
+ </map>
+ </option>
+ <option name="availableProjects">
+ <map>
+ <entry>
+ <key>
+ <ExternalProjectPojo>
+ <option name="name" value="Security_alarm" />
+ <option name="path" value="$PROJECT_DIR$" />
+ </ExternalProjectPojo>
+ </key>
+ <value>
+ <list>
+ <ExternalProjectPojo>
+ <option name="name" value="Security_alarm" />
+ <option name="path" value="$PROJECT_DIR$" />
+ </ExternalProjectPojo>
+ <ExternalProjectPojo>
+ <option name="name" value=":app" />
+ <option name="path" value="$PROJECT_DIR$/app" />
+ </ExternalProjectPojo>
+ </list>
+ </value>
+ </entry>
+ </map>
+ </option>
+ <option name="availableTasks">
+ <map>
+ <entry key="$PROJECT_DIR$">
+ <value>
+ <list>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the sub-projects of root project 'Security_alarm'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="projects" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleAppClassesRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="validateSigningDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformClassesWithDexBuilderForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processReleaseJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateReleaseAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="lintDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="reportBuildArtifactsRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the configuration model of root project 'Security_alarm'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="model" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="createReleaseCompatibleScreenManifests" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Creates a version of android.jar that's suitable for unit tests." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mockableAndroidJar" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_DEXReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleAppClassesDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the tasks runnable from root project 'Security_alarm' (some of the displayed tasks may belong to subprojects)." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="tasks" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Initializes a new Gradle build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="init" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all device checks using Device Providers and Test Servers." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="deviceCheck" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays all dependencies declared in root project 'Security_alarm'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="dependencies" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformNativeLibsWithStripDebugSymbolForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on all variants." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="lint" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="packageDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformClassesWithDexBuilderForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleAppClassesReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mainApkListPersistenceDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project and all projects it depends on." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="buildNeeded" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAndroidTestBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugUnitTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for the release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="testReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Deletes the build cache directory." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="cleanBuildCache" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAndroidTestShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAndroidTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the components produced by root project 'Security_alarm'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="components" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all Debug builds." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugAndroidTestManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugUnitTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateJsonModelRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformResourcesWithMergeJavaResForReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preDebugAndroidTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugAndroidTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processReleaseUnitTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="reportBuildArtifactsDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="javaPreCompileDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="splitsDiscoveryTaskDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleAppClassesDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the Release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="uninstallRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAndroidTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="checkReleaseManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="javaPreCompileDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAndroidTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="createDebugCompatibleScreenManifests" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeReleaseJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="prepareLintJar" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs instrumentation tests using all Device Providers." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="deviceAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugAndroidTestAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processReleaseManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the android (on device) tests for the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="uninstallDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the insight into a specific dependency in root project 'Security_alarm'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="dependencyInsight" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateReleaseSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithDexMergerForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preReleaseBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="writeDebugApplicationId" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all variants of all applications and secondary packages." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assemble" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays a help message." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="help" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseUnitTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs the android (on device) tests for the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="installDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mainApkListPersistenceDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformClassesWithDexBuilderForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="javaPreCompileReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateJsonModelDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_DEXDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="javaPreCompileRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="splitsDiscoveryTaskRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all device checks on currently connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="connectedCheck" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs the tests for debug on connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="connectedDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithDexMergerForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstall all applications." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="uninstallAll" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all the Test applications." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_DEXDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="packageRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="validateSigningDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Generates Gradle wrapper files." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="wrapper" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preDebugUnitTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileLint" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAndroidTestResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mainApkListPersistenceRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeReleaseShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the Android dependencies of the project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="androidDependencies" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugUnitTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugAndroidTestJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="extractProguardFiles" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="externalNativeBuildCleanDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="consumeConfigAttr" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAndroidTestAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for all variants." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="test" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformNativeLibsWithStripDebugSymbolForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preReleaseUnitTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all checks." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="check" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="javaPreCompileDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for the debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="testDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="connectedAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="installDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformResourcesWithMergeJavaResForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseUnitTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileReleaseAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on the Release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="lintRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project and all projects that depend on it." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="buildDependents" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithDexMergerForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the dependent components of components in root project 'Security_alarm'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="dependentComponents" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays all buildscript dependencies declared in root project 'Security_alarm'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="buildEnvironment" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="checkDebugManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Prints out all the source sets defined in this project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="sourceSets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeReleaseAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateReleaseBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="externalNativeBuildDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on just the fatal issues in the release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="lintVitalRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="platformAttrExtractor" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="uninstallDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the signing info for each variant." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="signingReport" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAndroidTestAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="externalNativeBuildCleanRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="mergeDebugAndroidTestShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="bundleAppClassesDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="clean" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="preDebugBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="externalNativeBuildRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="build" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all Release builds." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="assembleRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="resolveConfigAttr" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="compileDebugAndroidTestRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="processDebugManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="writeReleaseApplicationId" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="packageDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="generateReleaseResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the properties of root project 'Security_alarm'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" />
+ <option name="name" value="properties" />
+ </ExternalTaskPojo>
+ </list>
+ </value>
+ </entry>
+ <entry key="$PROJECT_DIR$/app">
+ <value>
+ <list>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the sub-projects of project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="projects" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleAppClassesRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="validateSigningDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformClassesWithDexBuilderForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processReleaseJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateReleaseAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="lintDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="reportBuildArtifactsRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="createReleaseCompatibleScreenManifests" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Creates a version of android.jar that's suitable for unit tests." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mockableAndroidJar" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the configuration model of project ':app'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="model" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_DEXReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleAppClassesDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the tasks runnable from project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="tasks" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all device checks using Device Providers and Test Servers." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="deviceCheck" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays all dependencies declared in project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="dependencies" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformNativeLibsWithStripDebugSymbolForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on all variants." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="lint" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="packageDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformClassesWithDexBuilderForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleAppClassesReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mainApkListPersistenceDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project and all projects it depends on." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="buildNeeded" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAndroidTestBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugUnitTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for the release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="testReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Deletes the build cache directory." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="cleanBuildCache" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAndroidTestShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAndroidTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the components produced by project ':app'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="components" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all Debug builds." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugAndroidTestManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugUnitTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateJsonModelRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformResourcesWithMergeJavaResForReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preDebugAndroidTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugAndroidTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processReleaseUnitTestJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="reportBuildArtifactsDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="javaPreCompileDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="splitsDiscoveryTaskDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleAppClassesDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the Release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="uninstallRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAndroidTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="checkReleaseManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="javaPreCompileDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAndroidTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="createDebugCompatibleScreenManifests" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSReleaseForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeReleaseJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="prepareLintJar" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs instrumentation tests using all Device Providers." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="deviceAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugAndroidTestAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processReleaseManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the android (on device) tests for the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="uninstallDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the insight into a specific dependency in project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="dependencyInsight" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateReleaseSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithDexMergerForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preReleaseBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="writeDebugApplicationId" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all variants of all applications and secondary packages." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assemble" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays a help message." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="help" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseUnitTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs the android (on device) tests for the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="installDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mainApkListPersistenceDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformClassesWithDexBuilderForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="javaPreCompileReleaseUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateJsonModelDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_DEXDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="javaPreCompileRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="splitsDiscoveryTaskRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all device checks on currently connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="connectedCheck" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs the tests for debug on connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="connectedDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithDexMergerForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstall all applications." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="uninstallAll" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all the Test applications." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_DEXDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="packageRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="validateSigningDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preDebugUnitTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileLint" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAndroidTestResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mainApkListPersistenceRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeReleaseShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the Android dependencies of the project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="androidDependencies" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugUnitTestSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformNativeLibsWithMergeJniLibsForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugAndroidTestJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="extractProguardFiles" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="externalNativeBuildCleanDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_JAVA_RESDebugForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugJavaRes" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="consumeConfigAttr" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAndroidTestAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for all variants." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="test" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformNativeLibsWithStripDebugSymbolForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preReleaseUnitTestBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs all checks." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="check" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="javaPreCompileDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Run unit tests for the debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="testDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="connectedAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Installs the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="installDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformResourcesWithMergeJavaResForRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseSources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseUnitTestJavaWithJavac" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileReleaseAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on the Release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="lintRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project and all projects that depend on it." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="buildDependents" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithDexMergerForDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the dependent components of components in project ':app'. [incubating]" />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="dependentComponents" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays all buildscript dependencies declared in project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="buildEnvironment" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="checkDebugManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugJniLibFolders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Prints out all the source sets defined in this project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="sourceSets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformResourcesWithMergeJavaResForDebugUnitTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleDebugResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeReleaseAssets" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateReleaseBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preparePUBLISHED_NATIVE_LIBSDebugAndroidTestForPublishing" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="externalNativeBuildDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateReleaseResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Runs lint on just the fatal issues in the release build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="lintVitalRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="platformAttrExtractor" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Uninstalls the Debug build." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="uninstallDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the signing info for each variant." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="signingReport" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAndroidTestAidl" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="externalNativeBuildCleanRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="mergeDebugAndroidTestShaders" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="bundleAppClassesDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Deletes the build directory." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="clean" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="preDebugBuild" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="externalNativeBuildRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugBuildConfig" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="transformDexArchiveWithExternalLibsDexMergerForDebug" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles and tests this project." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="build" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Assembles all Release builds." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="assembleRelease" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="resolveConfigAttr" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="compileDebugAndroidTestRenderscript" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateDebugAndroidTestResources" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="processDebugManifest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="writeReleaseApplicationId" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="packageDebugAndroidTest" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="generateReleaseResValues" />
+ </ExternalTaskPojo>
+ <ExternalTaskPojo>
+ <option name="description" value="Displays the properties of project ':app'." />
+ <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" />
+ <option name="name" value="properties" />
+ </ExternalTaskPojo>
+ </list>
+ </value>
+ </entry>
+ </map>
+ </option>
+ <option name="projectBuildClasspath">
+ <map>
+ <entry key="$PROJECT_DIR$">
+ <value>
+ <ExternalProjectBuildClasspathPojo>
+ <option name="modulesBuildClasspath">
+ <map>
+ <entry key="$PROJECT_DIR$">
+ <value>
+ <ExternalModuleBuildClasspathPojo>
+ <option name="entries">
+ <list>
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/3.1.2/79231e42158f711cbe81eb766d7c3578e38557a4/gradle-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/3.1.2/1608fa49add4d13366db7844998c6e59711f7e2a/gradle-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-core/3.1.2/36e59348ddd26cbed10061dd4760e8ee030b88e4/gradle-core-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-core/3.1.2/ccab33656c1baa6514d88f4d9356db19d0e9823b/gradle-core-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/bundletool/0.1.0-alpha01/f7c303e37818223bd98566fcbea29aa0964c4d06/bundletool-0.1.0-alpha01.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder/3.1.2/84b5fe203cd814a6a48fac7902c7b0bf0d455451/builder-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder/3.1.2/133b1f665104f0ebf01f71b61e4794385d7b5f1b/builder-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/2e0f2d982094f220ddc62f94180ee5187c9c0cdf/lint-gradle-api-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/8c54aedfe9da66e64402de04883cee083c127a3b/lint-gradle-api-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-api/3.1.2/7239d441f5d79f12ff8f6066703e86ddd16a29cf/gradle-api-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-api/3.1.2/427e25639a55911cadcf70657c9b2ded2ad6af2b/gradle-api-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/compilerCommon/3.1.2/a77b04ed519b3ac7c0e8946ee7e0eb156808f661/compilerCommon-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/compilerCommon/3.1.2/be65c11ded4242932046f23ecfa5c7ccb0e98f46/compilerCommon-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.2.0/3d425bfaaa7f8b1affb652c4257aa57e6597e163/kotlin-stdlib-jre8-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.2.0/505f55b9619bbc5f5e26c77427dd24a6a441eef1/kotlin-stdlib-jre8-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/transform-api/2.0.0-deprecated-use-gradle-api/f18536c1fe08673c69e869be170759616a9df16/transform-api-2.0.0-deprecated-use-gradle-api-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/transform-api/2.0.0-deprecated-use-gradle-api/47f6c56527c42425742fa9b56ffd3fd80763fe03/transform-api-2.0.0-deprecated-use-gradle-api.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/5.1/5ef31c4fe953b1fd00b8a88fa1d6820e8785bb45/asm-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-analysis-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/5.1/6d1bf8989fc7901f868bee3863c44f21aa63d110/asm-analysis-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-commons-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/5.1/25d8a575034dd9cfcb375a39b5334f0ba9c8474e/asm-commons-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-util-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/5.1/b60e33a6bd0d71831e0c249816d01e6c1dd90a47/asm-util-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.9/d965219b87f79e81b07116d451e684ab2f3acc27/jopt-simple-4.9-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.9/ee9e9eaa0a35360dcfeac129ff4923215fd65904/jopt-simple-4.9.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-gradle/5.3.3/186a5a9fd2f4fee04dced62b8d4d97c88337b53d/proguard-gradle-5.3.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-gradle/5.3.3/ad23a0505f58d0dfc95bb1472decc397460406c9/proguard-gradle-5.3.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value/1.5.2/e96b1f4a9e6630a405434fca857c6b8f777163cf/auto-value-1.5.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value/1.5.2/1b94ab7ec707e2220a0d1a7517488d1843236345/auto-value-1.5.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/22.0/55edc69e4fc937f4e58e577bb144b824c0ec7c55/guava-22.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/22.0/3564ef3803de51fb0530a8377ec6100b33b0d073/guava-22.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.4.0/c57c9f6bcbdb783260d00b80c455d82a6a8b02db/protobuf-java-3.4.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.4.0/b32aba0cbe737a4ca953f71688725972e3ee927c/protobuf-java-3.4.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java-util/3.4.0/6d5f8e6d209c309d9ef3e30aa81135ee94cc7d49/protobuf-java-util-3.4.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java-util/3.4.0/96aba8ab71c16018c6adf66771ce15c6491bc0fe/protobuf-java-util-3.4.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.2/380fceb109283ad515a05ca6955f97290e392cd8/error_prone_annotations-2.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.2/6dcc08f90f678ac33e5ef78c3c752b6f59e63e0c/error_prone_annotations-2.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/aapt2-proto/0.1.0/d1eb93a21a8d3590c3bfac574a8b6dffb2dbd21c/aapt2-proto-0.1.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-model/3.1.2/e74f8c12d313fb638cd3e199ea13a544870636d5/builder-model-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-model/3.1.2/4504b655fa8fe72302020ca9a2387f3f23fbfb57/builder-model-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-test-api/3.1.2/57f0b608e34a9493508d21f6a07cf34989901602/builder-test-api-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-test-api/3.1.2/ffb00b786822df6538377a90df9f2d11c022efc3/builder-test-api-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdklib/26.1.2/eeb14343985046cf8c8504a06327db5a50e740ea/sdklib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdklib/26.1.2/94697a9dff499b64b6e101bedb89a89825150af/sdklib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdk-common/26.1.2/569e3d1db94b053b15c81f7662ff8cecc4df785/sdk-common-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdk-common/26.1.2/2cf773af3fb0e1bbd56a80fc6903a9d2a40a248/sdk-common-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.1.2/fb215315bdbd152415f1fab7358015da3928d7ff/common-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.1.2/c31bbd68c51ed0ef3b8d7cdd5615acf762473887/common-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/manifest-merger/26.1.2/58ada075a3be42ac5afe8a752a3fdebfcfdaae2b/manifest-merger-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/manifest-merger/26.1.2/79f398427650c76f0c66c89f10e4886a1fe68c26/manifest-merger-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.ddms/ddmlib/26.1.2/8753f005a819994ebc56c3e567168c1fea745cc3/ddmlib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.ddms/ddmlib/26.1.2/1d423e621fb5c89fed13e41d0ed026cf5d8d7e7b/ddmlib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/protos/26.1.2/2791dabd9906f673a77b755ca2f4950fd5248729/protos-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/protos/26.1.2/ba53bcde9703b2bf9871128952dce844c5d743fa/protos-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/shared/26.1.2/eb4223fe1e164a7c37cd1448f3d89fdc016901de/shared-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/shared/26.1.2/bc21fe64fdaa64e59672e7d546d373f430e7557c/shared-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/tracker/26.1.2/37aae3a59f7220f45f85336f7374d5eaf37e5f7/tracker-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/tracker/26.1.2/2d2260da92e50ac072f89d60a596d03aab3a8757/tracker-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/apksig/3.1.2/93d9b522f74c2096cbaf84b088526f205d6b4a89/apksig-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/apksig/3.1.2/5af360dd30015a9a47c8ab0af0e6b05f64760edc/apksig-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.5.0/1b2a0925ff06220c0261b6fd468183cd9e9a9a47/javawriter-2.5.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.5.0/81241ff7078ef14f42ea2a8995fa09c096256e6b/javawriter-2.5.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-jdk15on/1.56/118b4633c59394749b2b2f278138beb31c930663/bcpkix-jdk15on-1.56-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-jdk15on/1.56/4648af70268b6fdb24674fb1fd7c1fcc73db1231/bcpkix-jdk15on-1.56.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.56/93c7b191596378df51c31b7d8717f71b0aeee53c/bcprov-jdk15on-1.56-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.56/a153c6f9744a3e9dd6feab5e210e1c9861362ec7/bcprov-jdk15on-1.56.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-tree-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/5.1/87b38c12a0ea645791ead9d3e74ae5268d1d6c34/asm-tree-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.2.0/a1a8e178d7813bb9596ee4e3d5e07b90ebe660af/fastutil-7.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.2.0/5ad3a2bb04143f70aa0765fc29fc29571a7d6b34/fastutil-7.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1/19c6d8dee6803c520d855ff7e8a8c3d97f1271ec/json-simple-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1/5e303a03d04e6788dddfa3655272580ae0fc13bb/json-simple-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.2.0/7fb1210ceec26e7e5195894fa83e9e67ea4d2ba/kotlin-reflect-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.2.0/4bbda3b5425aa38a9f6960468a29c5ef3e8a28c9/kotlin-reflect-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/baseLibrary/3.1.2/83a5696fb290f745f291d24d3b794beb267e124b/baseLibrary-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/baseLibrary/3.1.2/1b6a1add6a577708b62737dc31c479549f77750d/baseLibrary-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.5.3/e836b2a7348320a86c3bbd91a032486798e6ab98/antlr4-4.5.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.5.3/f35db7e4b2446e4174ba6a73db7bd6b3e6bb5da1/antlr4-4.5.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/f2d8698c46d1167ff24b06a840a87d91a02db891/commons-io-2.4-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/b1b6ea3b7e4aa4f492509a4952029cd8e48019ad/commons-io-2.4.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.juniversalchardet/juniversalchardet/1.0.3/77979eaa98f90806f984155f44f63cc1fb60ac25/juniversalchardet-1.0.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.juniversalchardet/juniversalchardet/1.0.3/cd49678784c46aa8789c060538e0154013bb421b/juniversalchardet-1.0.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javapoet/1.8.0/499341a875fe72e8fcf4ba856ba15f498d348e38/javapoet-1.8.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javapoet/1.8.0/e858dc62ef484048540d27d36f3ec2177a3fa9b1/javapoet-1.8.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.7/bbb63ca253b483da8ee53a50374593923e3de2e2/gson-2.7-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.7/751f548c85fa49f330cecbb1875893f971b33c4e/gson-2.7.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/annotations/26.1.2/7bc3fd2df32838e5b9b59804cc4c139bb89d26a5/annotations-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/annotations/26.1.2/4f4e0ee71b9ccaa4a70cc86e40fb84ada2ed99a3/annotations-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-base/5.3.3/6c73d839fa1603c38b067bc04d7950e05aef3d22/proguard-base-5.3.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-base/5.3.3/988b6b0636ce343d4962b3b37f6319dcc6e99a61/proguard-base-5.3.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.layoutlib/layoutlib-api/26.1.2/63d02e9088ee06e7b37f7314c145b5db7f39812e/layoutlib-api-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.layoutlib/layoutlib-api/26.1.2/3697abf628d30042c1082ea846454dfd1e8da3e/layoutlib-api-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/dvlib/26.1.2/2a9e859006c73fc73b7642cd6560b6daac0b183f/dvlib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/dvlib/26.1.2/eb39925fee6e726468fc10344ec988c086301ed7/dvlib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/repository/26.1.2/ee0b2246a08385bd55f034c90ba0998b6d3a4213/repository-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/repository/26.1.2/c8209ccb8ee0e5e3f293fd71d2a827f440ab811c/repository-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.12/1fdd1a2fed15cdf08780ed564279c0ddbff46419/commons-compress-1.12-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.12/84caa68576e345eb5e7ae61a0e5a9229eb100d7b/commons-compress-1.12.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.2.6/b4e00fa279b1d45af3cb6daebcc1fee3f5402392/httpclient-4.2.6-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.2.6/e4ca30a6a3a075053a61c6fc850d2432dc012ba7/httpclient-4.2.6.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.1/3ac83213baeab2b21fde6c0bf47ed68ea3e6a8da/httpmime-4.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.1/9ba2dcdf94ce35c8a8e9bff242db0618ca932e92/httpmime-4.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/309cd2cff7260e465792fda3dcbb063b730d8050/kxml2-2.3.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/5991ca87ef1fb5544943d9abc5a9a37583fabe03/annotations-13.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.activation/javax.activation/1.2.0/5b034823866d38f38f02bdad7ed8a14e650c61b6/javax.activation-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.activation/javax.activation/1.2.0/bf744c1e2776ed1de3c55c8dac1057ec331ef744/javax.activation-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.2.11/29441ae1840574f4ca07a72cd1785ea8a4b8457e/jaxb-runtime-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.2.11/65510afc78679e347b0d774617a97fedac94f8/jaxb-runtime-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.jimfs/jimfs/1.1/a2e6f6d75b7fa7e8eedb3062e5bfd24cc9fe8591/jimfs-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.jimfs/jimfs/1.1/8fbd0579dc68aba6186935cc1bee21d2f3e7ec1c/jimfs-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.2.5/4fd9ac94cd3c26551bc7aecd62fce8e49f076635/httpcore-4.2.5-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.2.5/472f0f5f8dba5d1962cb9d7739feed739a31c30d/httpcore-4.2.5.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.1/f3f156cbff0e0fb0d64bfce31a352cce4a33bc19/commons-logging-1.1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.1/5043bfebc3db072ed80fbd362e7caf00e885d8ae/commons-logging-1.1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.6/61e9f9d11fe3e12ec62f633006e99d75fd7f19c8/commons-codec-1.6-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.6/b7f0fc8f61ecadeb3695f0b9464755eee44374d4/commons-codec-1.6.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.0/180a4946e471f9f47d4b6139c5dbc5e7603a8424/kotlin-stdlib-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.0/25eb440d6eeb9fc60299121020fe726eb2100d03/kotlin-stdlib-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-core/2.2.11/57f27d326da0d4eddc4077933a4cc77cb50002d2/jaxb-core-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-core/2.2.11/f5745049f5fb9cb9d9b5f513c207727f475983e9/jaxb-core-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jvnet.staxex/stax-ex/1.7.7/555d23df1be863aeda3846afcb76444fa17880d2/stax-ex-1.7.7-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jvnet.staxex/stax-ex/1.7.7/18bed5a0da27a6b43efe01282f2dc911b1cb3a72/stax-ex-1.7.7.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.xml.fastinfoset/FastInfoset/1.2.13/7e43a54348e59360ebcaa73d34f0ecb122f1c741/FastInfoset-1.2.13-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.xml.fastinfoset/FastInfoset/1.2.13/98f56b9354e27bd2941cc5d461344e240ae51ae/FastInfoset-1.2.13.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.0/d6ced6c0bf21af19fb83f24bb6ff28ea43ddc61f/kotlin-stdlib-jre7-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.0/ec8b969e26fbcf2265a4d1a1539c4d1d4c5af380/kotlin-stdlib-jre7-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/1efdf5b737b02f9b72ebdec4f72c37ec411302ff/j2objc-annotations-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/886474da3f761d39fcbb723d97ecc5089e731f42/animal-sniffer-annotations-1.14-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.2.12-b140109.1041/d59f43002d3d07c6adaaeedd93e7944c273821d2/jaxb-api-2.2.12-b140109.1041-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.2.12-b140109.1041/7ed0e0d01198614194d56dfb03d9d95aa311824c/jaxb-api-2.2.12-b140109.1041.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.2.11/7745afc4dcc863b724f4a21fb3fc517cd5aaf891/txw2-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.2.11/2df047d8c187a62f2177bf6013f1f9786cdfc8a2/txw2-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/2.21/5d42dda44aa68ff87756e93ae0042cd66d2daa78/istack-commons-runtime-2.21-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/2.21/c969d8f15c467f0ef7d7b04889afbe7b5d48e22f/istack-commons-runtime-2.21.jar" />
+ </list>
+ </option>
+ <option name="path" value="$PROJECT_DIR$" />
+ </ExternalModuleBuildClasspathPojo>
+ </value>
+ </entry>
+ <entry key="$PROJECT_DIR$/app">
+ <value>
+ <ExternalModuleBuildClasspathPojo>
+ <option name="entries">
+ <list>
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/3.1.2/79231e42158f711cbe81eb766d7c3578e38557a4/gradle-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/3.1.2/1608fa49add4d13366db7844998c6e59711f7e2a/gradle-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-core/3.1.2/36e59348ddd26cbed10061dd4760e8ee030b88e4/gradle-core-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-core/3.1.2/ccab33656c1baa6514d88f4d9356db19d0e9823b/gradle-core-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/bundletool/0.1.0-alpha01/f7c303e37818223bd98566fcbea29aa0964c4d06/bundletool-0.1.0-alpha01.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder/3.1.2/84b5fe203cd814a6a48fac7902c7b0bf0d455451/builder-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder/3.1.2/133b1f665104f0ebf01f71b61e4794385d7b5f1b/builder-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/2e0f2d982094f220ddc62f94180ee5187c9c0cdf/lint-gradle-api-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.lint/lint-gradle-api/26.1.2/8c54aedfe9da66e64402de04883cee083c127a3b/lint-gradle-api-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-api/3.1.2/7239d441f5d79f12ff8f6066703e86ddd16a29cf/gradle-api-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle-api/3.1.2/427e25639a55911cadcf70657c9b2ded2ad6af2b/gradle-api-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/compilerCommon/3.1.2/a77b04ed519b3ac7c0e8946ee7e0eb156808f661/compilerCommon-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/compilerCommon/3.1.2/be65c11ded4242932046f23ecfa5c7ccb0e98f46/compilerCommon-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.2.0/3d425bfaaa7f8b1affb652c4257aa57e6597e163/kotlin-stdlib-jre8-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre8/1.2.0/505f55b9619bbc5f5e26c77427dd24a6a441eef1/kotlin-stdlib-jre8-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/transform-api/2.0.0-deprecated-use-gradle-api/f18536c1fe08673c69e869be170759616a9df16/transform-api-2.0.0-deprecated-use-gradle-api-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/transform-api/2.0.0-deprecated-use-gradle-api/47f6c56527c42425742fa9b56ffd3fd80763fe03/transform-api-2.0.0-deprecated-use-gradle-api.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/5.1/5ef31c4fe953b1fd00b8a88fa1d6820e8785bb45/asm-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-analysis-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/5.1/6d1bf8989fc7901f868bee3863c44f21aa63d110/asm-analysis-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-commons-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/5.1/25d8a575034dd9cfcb375a39b5334f0ba9c8474e/asm-commons-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-util-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/5.1/b60e33a6bd0d71831e0c249816d01e6c1dd90a47/asm-util-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.9/d965219b87f79e81b07116d451e684ab2f3acc27/jopt-simple-4.9-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.9/ee9e9eaa0a35360dcfeac129ff4923215fd65904/jopt-simple-4.9.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-gradle/5.3.3/186a5a9fd2f4fee04dced62b8d4d97c88337b53d/proguard-gradle-5.3.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-gradle/5.3.3/ad23a0505f58d0dfc95bb1472decc397460406c9/proguard-gradle-5.3.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value/1.5.2/e96b1f4a9e6630a405434fca857c6b8f777163cf/auto-value-1.5.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value/1.5.2/1b94ab7ec707e2220a0d1a7517488d1843236345/auto-value-1.5.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/22.0/55edc69e4fc937f4e58e577bb144b824c0ec7c55/guava-22.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/22.0/3564ef3803de51fb0530a8377ec6100b33b0d073/guava-22.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.4.0/c57c9f6bcbdb783260d00b80c455d82a6a8b02db/protobuf-java-3.4.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java/3.4.0/b32aba0cbe737a4ca953f71688725972e3ee927c/protobuf-java-3.4.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java-util/3.4.0/6d5f8e6d209c309d9ef3e30aa81135ee94cc7d49/protobuf-java-util-3.4.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java-util/3.4.0/96aba8ab71c16018c6adf66771ce15c6491bc0fe/protobuf-java-util-3.4.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.2/380fceb109283ad515a05ca6955f97290e392cd8/error_prone_annotations-2.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.1.2/6dcc08f90f678ac33e5ef78c3c752b6f59e63e0c/error_prone_annotations-2.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/aapt2-proto/0.1.0/d1eb93a21a8d3590c3bfac574a8b6dffb2dbd21c/aapt2-proto-0.1.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-model/3.1.2/e74f8c12d313fb638cd3e199ea13a544870636d5/builder-model-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-model/3.1.2/4504b655fa8fe72302020ca9a2387f3f23fbfb57/builder-model-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-test-api/3.1.2/57f0b608e34a9493508d21f6a07cf34989901602/builder-test-api-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/builder-test-api/3.1.2/ffb00b786822df6538377a90df9f2d11c022efc3/builder-test-api-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdklib/26.1.2/eeb14343985046cf8c8504a06327db5a50e740ea/sdklib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdklib/26.1.2/94697a9dff499b64b6e101bedb89a89825150af/sdklib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdk-common/26.1.2/569e3d1db94b053b15c81f7662ff8cecc4df785/sdk-common-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/sdk-common/26.1.2/2cf773af3fb0e1bbd56a80fc6903a9d2a40a248/sdk-common-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.1.2/fb215315bdbd152415f1fab7358015da3928d7ff/common-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/common/26.1.2/c31bbd68c51ed0ef3b8d7cdd5615acf762473887/common-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/manifest-merger/26.1.2/58ada075a3be42ac5afe8a752a3fdebfcfdaae2b/manifest-merger-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/manifest-merger/26.1.2/79f398427650c76f0c66c89f10e4886a1fe68c26/manifest-merger-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.ddms/ddmlib/26.1.2/8753f005a819994ebc56c3e567168c1fea745cc3/ddmlib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.ddms/ddmlib/26.1.2/1d423e621fb5c89fed13e41d0ed026cf5d8d7e7b/ddmlib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/protos/26.1.2/2791dabd9906f673a77b755ca2f4950fd5248729/protos-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/protos/26.1.2/ba53bcde9703b2bf9871128952dce844c5d743fa/protos-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/shared/26.1.2/eb4223fe1e164a7c37cd1448f3d89fdc016901de/shared-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/shared/26.1.2/bc21fe64fdaa64e59672e7d546d373f430e7557c/shared-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/tracker/26.1.2/37aae3a59f7220f45f85336f7374d5eaf37e5f7/tracker-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.analytics-library/tracker/26.1.2/2d2260da92e50ac072f89d60a596d03aab3a8757/tracker-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/apksig/3.1.2/93d9b522f74c2096cbaf84b088526f205d6b4a89/apksig-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.build/apksig/3.1.2/5af360dd30015a9a47c8ab0af0e6b05f64760edc/apksig-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.5.0/1b2a0925ff06220c0261b6fd468183cd9e9a9a47/javawriter-2.5.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javawriter/2.5.0/81241ff7078ef14f42ea2a8995fa09c096256e6b/javawriter-2.5.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-jdk15on/1.56/118b4633c59394749b2b2f278138beb31c930663/bcpkix-jdk15on-1.56-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-jdk15on/1.56/4648af70268b6fdb24674fb1fd7c1fcc73db1231/bcpkix-jdk15on-1.56.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.56/93c7b191596378df51c31b7d8717f71b0aeee53c/bcprov-jdk15on-1.56-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-jdk15on/1.56/a153c6f9744a3e9dd6feab5e210e1c9861362ec7/bcprov-jdk15on-1.56.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/5.1/81e81bd6c20b965f88d0462e2559f8759fc6c26d/asm-tree-5.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/5.1/87b38c12a0ea645791ead9d3e74ae5268d1d6c34/asm-tree-5.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.2.0/a1a8e178d7813bb9596ee4e3d5e07b90ebe660af/fastutil-7.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/7.2.0/5ad3a2bb04143f70aa0765fc29fc29571a7d6b34/fastutil-7.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1/19c6d8dee6803c520d855ff7e8a8c3d97f1271ec/json-simple-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.json-simple/json-simple/1.1/5e303a03d04e6788dddfa3655272580ae0fc13bb/json-simple-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.2.0/7fb1210ceec26e7e5195894fa83e9e67ea4d2ba/kotlin-reflect-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.2.0/4bbda3b5425aa38a9f6960468a29c5ef3e8a28c9/kotlin-reflect-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/baseLibrary/3.1.2/83a5696fb290f745f291d24d3b794beb267e124b/baseLibrary-3.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.databinding/baseLibrary/3.1.2/1b6a1add6a577708b62737dc31c479549f77750d/baseLibrary-3.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.5.3/e836b2a7348320a86c3bbd91a032486798e6ab98/antlr4-4.5.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.5.3/f35db7e4b2446e4174ba6a73db7bd6b3e6bb5da1/antlr4-4.5.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/f2d8698c46d1167ff24b06a840a87d91a02db891/commons-io-2.4-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/b1b6ea3b7e4aa4f492509a4952029cd8e48019ad/commons-io-2.4.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.juniversalchardet/juniversalchardet/1.0.3/77979eaa98f90806f984155f44f63cc1fb60ac25/juniversalchardet-1.0.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.googlecode.juniversalchardet/juniversalchardet/1.0.3/cd49678784c46aa8789c060538e0154013bb421b/juniversalchardet-1.0.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javapoet/1.8.0/499341a875fe72e8fcf4ba856ba15f498d348e38/javapoet-1.8.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.squareup/javapoet/1.8.0/e858dc62ef484048540d27d36f3ec2177a3fa9b1/javapoet-1.8.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.7/bbb63ca253b483da8ee53a50374593923e3de2e2/gson-2.7-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.7/751f548c85fa49f330cecbb1875893f971b33c4e/gson-2.7.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/annotations/26.1.2/7bc3fd2df32838e5b9b59804cc4c139bb89d26a5/annotations-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/annotations/26.1.2/4f4e0ee71b9ccaa4a70cc86e40fb84ada2ed99a3/annotations-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-base/5.3.3/6c73d839fa1603c38b067bc04d7950e05aef3d22/proguard-base-5.3.3-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.proguard/proguard-base/5.3.3/988b6b0636ce343d4962b3b37f6319dcc6e99a61/proguard-base-5.3.3.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.layoutlib/layoutlib-api/26.1.2/63d02e9088ee06e7b37f7314c145b5db7f39812e/layoutlib-api-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools.layoutlib/layoutlib-api/26.1.2/3697abf628d30042c1082ea846454dfd1e8da3e/layoutlib-api-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/dvlib/26.1.2/2a9e859006c73fc73b7642cd6560b6daac0b183f/dvlib-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/dvlib/26.1.2/eb39925fee6e726468fc10344ec988c086301ed7/dvlib-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/repository/26.1.2/ee0b2246a08385bd55f034c90ba0998b6d3a4213/repository-26.1.2-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.tools/repository/26.1.2/c8209ccb8ee0e5e3f293fd71d2a827f440ab811c/repository-26.1.2.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.12/1fdd1a2fed15cdf08780ed564279c0ddbff46419/commons-compress-1.12-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.12/84caa68576e345eb5e7ae61a0e5a9229eb100d7b/commons-compress-1.12.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.2.6/b4e00fa279b1d45af3cb6daebcc1fee3f5402392/httpclient-4.2.6-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.2.6/e4ca30a6a3a075053a61c6fc850d2432dc012ba7/httpclient-4.2.6.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.1/3ac83213baeab2b21fde6c0bf47ed68ea3e6a8da/httpmime-4.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.1/9ba2dcdf94ce35c8a8e9bff242db0618ca932e92/httpmime-4.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/309cd2cff7260e465792fda3dcbb063b730d8050/kxml2-2.3.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.sf.kxml/kxml2/2.3.0/ccbc77a5fd907ef863c29f3596c6f54ffa4e9442/kxml2-2.3.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/5991ca87ef1fb5544943d9abc5a9a37583fabe03/annotations-13.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.activation/javax.activation/1.2.0/5b034823866d38f38f02bdad7ed8a14e650c61b6/javax.activation-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.activation/javax.activation/1.2.0/bf744c1e2776ed1de3c55c8dac1057ec331ef744/javax.activation-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.2.11/29441ae1840574f4ca07a72cd1785ea8a4b8457e/jaxb-runtime-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-runtime/2.2.11/65510afc78679e347b0d774617a97fedac94f8/jaxb-runtime-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.jimfs/jimfs/1.1/a2e6f6d75b7fa7e8eedb3062e5bfd24cc9fe8591/jimfs-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.jimfs/jimfs/1.1/8fbd0579dc68aba6186935cc1bee21d2f3e7ec1c/jimfs-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.2.5/4fd9ac94cd3c26551bc7aecd62fce8e49f076635/httpcore-4.2.5-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.2.5/472f0f5f8dba5d1962cb9d7739feed739a31c30d/httpcore-4.2.5.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.1/f3f156cbff0e0fb0d64bfce31a352cce4a33bc19/commons-logging-1.1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.1/5043bfebc3db072ed80fbd362e7caf00e885d8ae/commons-logging-1.1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.6/61e9f9d11fe3e12ec62f633006e99d75fd7f19c8/commons-codec-1.6-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.6/b7f0fc8f61ecadeb3695f0b9464755eee44374d4/commons-codec-1.6.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.0/180a4946e471f9f47d4b6139c5dbc5e7603a8424/kotlin-stdlib-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.2.0/25eb440d6eeb9fc60299121020fe726eb2100d03/kotlin-stdlib-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-core/2.2.11/57f27d326da0d4eddc4077933a4cc77cb50002d2/jaxb-core-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-core/2.2.11/f5745049f5fb9cb9d9b5f513c207727f475983e9/jaxb-core-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jvnet.staxex/stax-ex/1.7.7/555d23df1be863aeda3846afcb76444fa17880d2/stax-ex-1.7.7-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jvnet.staxex/stax-ex/1.7.7/18bed5a0da27a6b43efe01282f2dc911b1cb3a72/stax-ex-1.7.7.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.xml.fastinfoset/FastInfoset/1.2.13/7e43a54348e59360ebcaa73d34f0ecb122f1c741/FastInfoset-1.2.13-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.xml.fastinfoset/FastInfoset/1.2.13/98f56b9354e27bd2941cc5d461344e240ae51ae/FastInfoset-1.2.13.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.0/d6ced6c0bf21af19fb83f24bb6ff28ea43ddc61f/kotlin-stdlib-jre7-1.2.0-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.0/ec8b969e26fbcf2265a4d1a1539c4d1d4c5af380/kotlin-stdlib-jre7-1.2.0.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/1efdf5b737b02f9b72ebdec4f72c37ec411302ff/j2objc-annotations-1.1-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/1.1/ed28ded51a8b1c6b112568def5f4b455e6809019/j2objc-annotations-1.1.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/886474da3f761d39fcbb723d97ecc5089e731f42/animal-sniffer-annotations-1.14-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.codehaus.mojo/animal-sniffer-annotations/1.14/775b7e22fb10026eed3f86e8dc556dfafe35f2d5/animal-sniffer-annotations-1.14.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.2.12-b140109.1041/d59f43002d3d07c6adaaeedd93e7944c273821d2/jaxb-api-2.2.12-b140109.1041-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/javax.xml.bind/jaxb-api/2.2.12-b140109.1041/7ed0e0d01198614194d56dfb03d9d95aa311824c/jaxb-api-2.2.12-b140109.1041.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.2.11/7745afc4dcc863b724f4a21fb3fc517cd5aaf891/txw2-2.2.11-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/txw2/2.2.11/2df047d8c187a62f2177bf6013f1f9786cdfc8a2/txw2-2.2.11.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/2.21/5d42dda44aa68ff87756e93ae0042cd66d2daa78/istack-commons-runtime-2.21-sources.jar" />
+ <option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-runtime/2.21/c969d8f15c467f0ef7d7b04889afbe7b5d48e22f/istack-commons-runtime-2.21.jar" />
+ </list>
+ </option>
+ <option name="path" value="$PROJECT_DIR$/app" />
+ </ExternalModuleBuildClasspathPojo>
+ </value>
+ </entry>
+ </map>
+ </option>
+ <option name="name" value="Security_alarm" />
+ <option name="projectBuildClasspath">
+ <list>
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/announce" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/antlr" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/base-services" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/base-services-groovy" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/build-cache" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/build-cache-http" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/build-comparison" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/build-init" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/build-option" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/cli" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/code-quality" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/composite-builds" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/core" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/core-api" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/dependency-management" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/diagnostics" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/ear" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/ide" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/ide-native" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/ide-play" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/installation-beacon" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/internal-android-performance-testing" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/internal-integ-testing" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/internal-performance-testing" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/internal-testing" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/ivy" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/jacoco" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/javascript" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/jvm-services" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/language-groovy" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/language-java" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/language-jvm" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/language-native" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/language-scala" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/launcher" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/logging" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/maven" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/messaging" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/model-core" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/model-groovy" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/native" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/osgi" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/persistent-cache" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/platform-base" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/platform-jvm" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/platform-native" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/platform-play" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/plugin-development" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/plugin-use" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/plugins" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/process-services" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/publish" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/reporting" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/resources" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/resources-gcs" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/resources-http" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/resources-s3" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/resources-sftp" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/scala" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/signing" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/test-kit" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/testing-base" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/testing-jvm" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/testing-native" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/tooling-api" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/tooling-api-builders" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/version-control" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/workers" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/src/wrapper" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/ant-1.9.9.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/ant-launcher-1.9.9.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-base-services-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-base-services-groovy-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-build-cache-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-build-option-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-cli-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-core-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-core-api-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-docs-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-installation-beacon-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-jvm-services-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-kotlin-dsl-0.13.1.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-kotlin-dsl-tooling-builders-0.13.1.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-kotlin-dsl-tooling-models-0.13.1.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-launcher-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-logging-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-messaging-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-model-core-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-model-groovy-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-native-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-persistent-cache-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-process-services-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-resources-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-runtime-api-info-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-tooling-api-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/gradle-wrapper-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/groovy-all-2.4.12.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-announce-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-antlr-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-build-cache-http-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-build-comparison-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-build-init-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-code-quality-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-composite-builds-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-dependency-management-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-diagnostics-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-ear-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-ide-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-ide-native-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-ide-play-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-ivy-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-jacoco-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-javascript-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-language-groovy-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-language-java-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-language-jvm-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-language-native-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-language-scala-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-maven-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-osgi-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-platform-base-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-platform-jvm-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-platform-native-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-platform-play-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-plugin-development-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-plugin-use-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-plugins-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-publish-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-reporting-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-resources-gcs-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-resources-http-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-resources-s3-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-resources-sftp-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-scala-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-signing-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-test-kit-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-testing-base-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-testing-jvm-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-testing-native-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-tooling-api-builders-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-version-control-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/gradle-workers-4.4.jar" />
+ <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4/lib/plugins/ivy-2.2.0.jar" />
+ <option value="$PROJECT_DIR$/buildSrc/src/main/java" />
+ <option value="$PROJECT_DIR$/buildSrc/src/main/groovy" />
+ </list>
+ </option>
+ </ExternalProjectBuildClasspathPojo>
+ </value>
+ </entry>
+ </map>
+ </option>
+ <option name="externalProjectsViewState">
+ <projects_view />
+ </option>
+ <option name="projectSyncType">
+ <map>
+ <entry key="$PROJECT_DIR$" value="RE_IMPORT" />
+ </map>
+ </option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
- <option value="$PROJECT_DIR$/app/src/main/java/tv/danmaku/ijk/media/example/fragments/RecentMediaListFragment.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/tv/danmaku/ijk/media/example/fragments/SampleMediaListFragment.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/tv/danmaku/ijk/media/example/fragments/SettingsFragment.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/tv/danmaku/ijk/media/example/fragments/TracksFragment.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/ccx/evideoview/EVideoView.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/EVideoView.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/VideoViewAdapter.java" />
- <option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
- <option value="$PROJECT_DIR$/app/CMakeLists.txt" />
- <option value="$PROJECT_DIR$/app/src/main/cpp/native-lib.cpp" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/OnPreparedListener.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/XY.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/VideoPlayerListener.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/FFmpegVideoView.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/IjkVideoView.java" />
- <option value="$PROJECT_DIR$/app/src/main/res/drawable/spinner_arrow_down.xml" />
- <option value="$PROJECT_DIR$/app/src/main/res/drawable/spinner_arrow_down2.xml" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/WatchedView.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/WatchedTextView.java" />
- <option value="$PROJECT_DIR$/app/src/main/res/anim/slide_down.xml" />
- <option value="$PROJECT_DIR$/app/src/main/res/values/styles.xml" />
- <option value="$PROJECT_DIR$/app/src/main/res/anim/popup_hide.xml" />
- <option value="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" />
- <option value="$PROJECT_DIR$/app/src/main/res/layout/spinner_item_small_text2.xml" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/AlarmManager.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/rest/MyErrorHandler.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/base/Config.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/base/BaseApplication.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/dao/DatabaseManager.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/dao/SqliteManager.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeSaveAlarmVideoPlayPosition.java" />
- <option value="$PROJECT_DIR$/app/src/main/res/anim/popup_show.xml" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/MyVideoView.java" />
- <option value="$PROJECT_DIR$/app/build.gradle" />
- <option value="$PROJECT_DIR$/app/src/main/res/layout/alarm_view.xml" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/KeyboardUtil.java" />
- <option value="$PROJECT_DIR$/app/src/main/java_bak/com/basic/security/activity/MainActivity.java" />
- <option value="$PROJECT_DIR$/app/src/main/java_bak/com/basic/security/fragment/helper/HomeGridViewAdapter.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/activity/MainActivity.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/AudioPlayer.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmVideo.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/CustomSpinner2.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java" />
+ <option value="$PROJECT_DIR$/app/src/main/cpp/TCPClient.cpp" />
<option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java" />
- <option value="$PROJECT_DIR$/app/src/main/res/layout/fragment_setting.xml" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/HomeFragment.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/SettingManager.java" />
- <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/SettingFragment.java" />
<option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketClient.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/KeyboardUtil.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/AuthDialog.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/CrashHandler.java" />
+ <option value="$PROJECT_DIR$/app/src/main/cpp/native-lib.cpp" />
+ <option value="$PROJECT_DIR$/app/src/main/res/drawable/spinner_arrow_down.xml" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/SettingFragment.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketServer.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java" />
+ <option value="$PROJECT_DIR$/app/build.gradle" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/ReqRep.java" />
+ <option value="$PROJECT_DIR$/app/CMakeLists.txt" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/activity/MainActivity.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/dao/DatabaseManager.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/JnanomsgServer.java" />
+ <option value="$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java" />
</list>
</option>
</component>
- <component name="ProjectFrameBounds" extendedState="7">
- <option name="x" value="-8" />
- <option name="y" value="-8" />
- <option name="width" value="1936" />
- <option name="height" value="1056" />
+ <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
+ <component name="ProjectFrameBounds" extendedState="6">
+ <option name="x" value="215" />
+ <option name="y" value="15" />
+ <option name="width" value="1658" />
+ <option name="height" value="1000" />
</component>
- <component name="ProjectLevelVcsManager">
+ <component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="1" id="Add" />
- <ConfirmationsSetting value="1" id="Remove" />
</component>
<component name="ProjectView">
- <navigator proportions="" version="1">
+ <navigator currentView="AndroidView" proportions="" version="1">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ <manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
- <pane id="ProjectPane">
- <subPane>
- <expand>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="src" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="src" type="462c0819:PsiDirectoryNode" />
- <item name="main" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="src" type="462c0819:PsiDirectoryNode" />
- <item name="main" type="462c0819:PsiDirectoryNode" />
- <item name="cpp" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="b2602c69:ProjectViewProjectNode" />
- <item name="Security_alarm" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
- <item name="src" type="462c0819:PsiDirectoryNode" />
- <item name="main" type="462c0819:PsiDirectoryNode" />
- <item name="jniLibs" type="462c0819:PsiDirectoryNode" />
- </path>
- </expand>
- <select />
- </subPane>
- </pane>
+ <pane id="PackagesPane" />
<pane id="AndroidView">
<subPane>
<expand>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- <item name="security" type="cbb59c9e:AndroidPsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- <item name="security" type="cbb59c9e:AndroidPsiDirectoryNode" />
- <item name="activity" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- <item name="security" type="cbb59c9e:AndroidPsiDirectoryNode" />
- <item name="fragment" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- <item name="security" type="cbb59c9e:AndroidPsiDirectoryNode" />
- <item name="fragment" type="462c0819:PsiDirectoryNode" />
- <item name="helper" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="java" type="edd41e36:AndroidSourceTypeNode" />
- <item name="security" type="cbb59c9e:AndroidPsiDirectoryNode" />
- <item name="manager" type="462c0819:PsiDirectoryNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="cpp" type="9a30073f:AndroidJniFolderNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="res" type="d4f16f75:AndroidResFolderNode" />
- </path>
- <path>
- <item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
- <item name="app" type="feadf853:AndroidModuleNode" />
- <item name="res" type="d4f16f75:AndroidResFolderNode" />
- <item name="layout" type="ddeffd01:AndroidResFolderTypeNode" />
- </path>
<path>
<item name="Security_alarm" type="1abcf292:AndroidViewProjectNode" />
<item name="Gradle Scripts" type="ae0cef3a:AndroidBuildScriptsGroupNode" />
@@ -323,8 +2196,9 @@
<select />
</subPane>
</pane>
+ <pane id="ProjectPane" />
+ <pane id="Scratches" />
<pane id="Scope" />
- <pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -332,31 +2206,23 @@
<property name="DEBUGGABLE_PROCESS" value="com.basic.security" />
<property name="DEBUGGER_ID" value="Auto" />
<property name="SHOW_ALL_PROCESSES" value="false" />
- <property name="android.profiler.active" value="true" />
+ <property name="android.project.structure.last.selected" value="app" />
+ <property name="android.project.structure.proportion" value="0.15" />
<property name="android.sdk.path" value="$USER_HOME$/AppData/Local/Android/Sdk" />
<property name="device.picker.selection" value="GB8ZA3N6PJ" />
- <property name="extract.method.default.visibility" value="private" />
- <property name="last_directory_selection" value="$PROJECT_DIR$/app/src/main/res/drawable" />
- <property name="last_opened_file_path" value="$PROJECT_DIR$/../BasicTv/Video" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$/../Security_simplify_office" />
<property name="not.eligible.for.single.variant.sync" value="true" />
- <property name="run.code.analysis.last.selected.profile" value="pProject Default" />
- <property name="settings.editor.selected.configurable" value="preferences.lookFeel" />
- <property name="sync.plugin.last.upgrade.timestamp" value="1558948471672" />
+ <property name="sync.plugin.last.upgrade.timestamp" value="1560496442762" />
+ <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1561536176337" />
+ <property name="last_directory_selection" value="$PROJECT_DIR$/app/src/main/res/drawable" />
</component>
<component name="RecentsManager">
<key name="CopyClassDialog.RECENTS_KEY">
- <recent name="com.basic.security.widget" />
<recent name="com.basic.security.utils" />
- <recent name="com.basic.security.model" />
- <recent name="com.basic.security.fragment" />
- <recent name="com.basic.security.manager" />
</key>
<key name="CopyFile.RECENT_KEYS">
- <recent name="C:\workspace\Security_alarm\app\src\main\res\raw" />
<recent name="C:\workspace\Security_alarm\app\src\main\java\com\basic\security\utils" />
- <recent name="C:\workspace\Security_alarm\app\src\main\res\anim" />
<recent name="C:\workspace\Security_alarm\app\src\main\res\drawable" />
- <recent name="C:\workspace\Security_alarm\app\src\main\res\layout" />
</key>
</component>
<component name="RunDashboard">
@@ -372,39 +2238,34 @@
</option>
</component>
<component name="RunManager">
- <configuration name="<template>" type="Applet" default="true" selected="false">
+ <configuration default="true" type="AndroidJUnit" factoryName="Android JUnit">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
- <option name="HTML_FILE_NAME" />
- <option name="HTML_USED" value="false" />
- <option name="WIDTH" value="400" />
- <option name="HEIGHT" value="300" />
- <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
- <option name="VM_PARAMETERS" />
- </configuration>
- <configuration name="<template>" type="JUnit" default="true" selected="false">
- <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
- <option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
- </configuration>
- <configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false">
- <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
- </configuration>
- <configuration default="true" type="AndroidJUnit" factoryName="Android JUnit">
- <option name="TEST_OBJECT" value="class" />
- <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
- <method v="2">
+ <option name="WORKING_DIRECTORY" value="file://$MODULE_DIR$" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <envs />
+ <patterns />
+ <method>
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="app" type="AndroidRunConfigurationType" factoryName="Android App" activateToolWindowBeforeRun="false">
<module name="app" />
<option name="DEPLOY" value="true" />
- <option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
- <option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
- <option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
@@ -441,546 +2302,537 @@
</Native>
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
- <option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
- <option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
- <method v="2">
+ <method>
+ <option name="com.android.instantApps.provision.BeforeRunTask" enabled="true" clearCache="false" clearProvisionedDevices="false" />
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" />
+ <option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
- <method v="2">
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <module name="" />
+ <envs />
+ <method>
<option name="Make" enabled="true" />
</method>
</configuration>
- <configuration default="true" type="TestNG">
+ <configuration default="true" type="TestNG" factoryName="TestNG">
+ <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
+ <module name="" />
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+ <option name="ALTERNATIVE_JRE_PATH" />
+ <option name="SUITE_NAME" />
+ <option name="PACKAGE_NAME" />
+ <option name="MAIN_CLASS_NAME" />
+ <option name="METHOD_NAME" />
+ <option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
+ <option name="VM_PARAMETERS" />
+ <option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
+ <option name="OUTPUT_DIRECTORY" />
+ <option name="ANNOTATION_TYPE" />
+ <option name="ENV_VARIABLES" />
+ <option name="PASS_PARENT_ENVS" value="true" />
+ <option name="TEST_SEARCH_SCOPE">
+ <value defaultName="singleModule" />
+ </option>
+ <option name="USE_DEFAULT_REPORTERS" value="false" />
+ <option name="PROPERTIES_FILE" />
+ <envs />
<properties />
<listeners />
- <method v="2">
+ <method>
<option name="Make" enabled="true" />
</method>
</configuration>
+ <configuration name="<template>" type="Applet" default="true" selected="false">
+ <option name="MAIN_CLASS_NAME" />
+ <option name="HTML_FILE_NAME" />
+ <option name="HTML_USED" value="false" />
+ <option name="WIDTH" value="400" />
+ <option name="HEIGHT" value="300" />
+ <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
+ <option name="VM_PARAMETERS" />
+ </configuration>
+ <configuration name="<template>" type="JUnit" default="true" selected="false">
+ <option name="MAIN_CLASS_NAME" />
+ <option name="VM_PARAMETERS" value="-ea" />
+ <option name="PARAMETERS" />
+ <option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
+ </configuration>
+ <configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false">
+ <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
+ </configuration>
</component>
- <component name="SvnConfiguration" cleanupOnStartRun="true">
- <configuration>C:\Users\xiuxi\AppData\Roaming\Subversion</configuration>
- <supportedVersion>125</supportedVersion>
+ <component name="ShelveChangesManager" show_recycled="false">
+ <option name="remove_strategy" value="false" />
+ </component>
+ <component name="SvnConfiguration">
+ <configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
- <changelist id="d69f261f-a6c6-4e7b-864f-3db63fafeb3b" name="Default" comment="" />
- <created>1536030146197</created>
+ <changelist id="73e46e7a-0efa-4011-8434-aa3922a61ab9" name="Default" comment="" />
+ <created>1560389335140</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
- <updated>1536030146197</updated>
+ <updated>1560389335140</updated>
</task>
+ <task id="LOCAL-00001" summary="a">
+ <created>1560480435810</created>
+ <option name="number" value="00001" />
+ <option name="presentableId" value="LOCAL-00001" />
+ <option name="project" value="LOCAL" />
+ <updated>1560480435810</updated>
+ </task>
+ <option name="localTasksCounter" value="2" />
<servers />
</component>
- <component name="TodoView">
- <todo-panel id="selected-file">
- <is-autoscroll-to-source value="true" />
- </todo-panel>
- <todo-panel id="all">
- <are-packages-shown value="true" />
- <is-autoscroll-to-source value="true" />
- </todo-panel>
- </component>
<component name="ToolWindowManager">
- <frame x="-8" y="-8" width="1936" height="1056" extended-state="7" />
+ <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<layout>
- <window_info id="Build Variants" order="0" sideWeight="0.50869566" side_tool="true" weight="0.18884121" />
- <window_info id="Capture Tool" order="1" />
- <window_info id="Designer" order="2" />
- <window_info id="DB Browser" order="3" weight="0.3299356" />
- <window_info id="Favorites" order="4" side_tool="true" />
- <window_info content_ui="combo" id="Project" order="5" sideWeight="0.49130434" visible="true" weight="0.20118026" />
- <window_info id="Structure" order="6" weight="0.25" />
- <window_info id="Captures" order="7" side_tool="true" weight="0.25" />
- <window_info id="Image Layers" order="8" />
- <window_info id="Resources Explorer" order="9" />
- <window_info anchor="bottom" id="Android Profiler" order="0" sideWeight="0.6223176" weight="0.63616073" />
- <window_info anchor="bottom" id="Event Log" order="1" sideWeight="0.090665236" side_tool="true" weight="0.24277456" />
- <window_info active="true" anchor="bottom" id="Logcat" order="2" sideWeight="0.9093348" visible="true" weight="0.39306358" />
- <window_info anchor="bottom" id="Build" order="3" sideWeight="0.5064378" weight="0.36416185" />
- <window_info anchor="bottom" id="Version Control" order="4" sideWeight="0.49785408" weight="0.32924107" />
- <window_info anchor="bottom" id="Terminal" order="5" sideWeight="0.49785408" weight="0.19515012" />
- <window_info anchor="bottom" id="Message" order="6" />
- <window_info anchor="bottom" id="DB Execution Console" order="7" />
- <window_info anchor="bottom" id="Find" order="8" sideWeight="0.49356222" weight="0.30635837" />
- <window_info anchor="bottom" id="Run" order="9" weight="0.12702079" />
- <window_info anchor="bottom" id="Debug" order="10" sideWeight="0.6915236" weight="0.47861272" />
- <window_info anchor="bottom" id="Cvs" order="11" weight="0.25" />
- <window_info anchor="bottom" id="Inspection" order="12" weight="0.4" />
- <window_info anchor="bottom" id="TODO" order="13" sideWeight="0.49785408" weight="0.3290993" />
- <window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
- <window_info anchor="right" id="Capture Analysis" order="1" />
- <window_info anchor="right" id="Gradle" order="2" weight="0.08959228" />
- <window_info anchor="right" id="Theme Preview" order="3" />
- <window_info anchor="right" id="Commander" order="4" weight="0.4" />
- <window_info anchor="right" id="Palette	" order="5" />
- <window_info anchor="right" id="Ant Build" order="6" weight="0.25" />
- <window_info anchor="right" id="Preview" order="7" weight="0.23015021" />
- <window_info anchor="right" content_ui="combo" id="Hierarchy" order="8" weight="0.25" />
- <window_info anchor="right" id="Assistant" order="9" />
+ <window_info id="Android Profiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Palette	" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+ <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Logcat" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21651785" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.22961374" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+ <window_info id="Build" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37388393" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Device File Explorer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
+ <window_info id="Theme Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
- <layout-to-restore>
- <window_info id="Build Variants" order="0" sideWeight="0.50869566" side_tool="true" weight="0.18884121" />
- <window_info id="Capture Tool" order="1" />
- <window_info id="Designer" order="2" />
- <window_info id="DB Browser" order="3" weight="0.3299356" />
- <window_info id="Favorites" order="4" side_tool="true" />
- <window_info active="true" content_ui="combo" id="Project" order="5" sideWeight="0.49130434" visible="true" weight="0.20118026" />
- <window_info id="Structure" order="6" weight="0.25" />
- <window_info id="Captures" order="7" side_tool="true" weight="0.25" />
- <window_info id="Image Layers" order="8" />
- <window_info id="Resources Explorer" order="9" />
- <window_info anchor="bottom" id="Android Profiler" order="0" sideWeight="0.6223176" weight="0.63616073" />
- <window_info anchor="bottom" id="Event Log" order="1" sideWeight="0.090665236" side_tool="true" visible="true" weight="0.24277456" />
- <window_info anchor="bottom" id="Logcat" order="2" sideWeight="0.9093348" visible="true" weight="0.24277456" />
- <window_info anchor="bottom" id="Build" order="3" sideWeight="0.5064378" weight="0.36416185" />
- <window_info anchor="bottom" id="Version Control" order="4" sideWeight="0.49785408" weight="0.32924107" />
- <window_info anchor="bottom" id="Terminal" order="5" sideWeight="0.49785408" weight="0.19515012" />
- <window_info anchor="bottom" id="Message" order="6" />
- <window_info anchor="bottom" id="DB Execution Console" order="7" />
- <window_info anchor="bottom" id="Find" order="8" sideWeight="0.49356222" weight="0.30635837" />
- <window_info anchor="bottom" id="Run" order="9" weight="0.12702079" />
- <window_info anchor="bottom" id="Debug" order="10" sideWeight="0.6915236" weight="0.47861272" />
- <window_info anchor="bottom" id="Cvs" order="11" weight="0.25" />
- <window_info anchor="bottom" id="Inspection" order="12" weight="0.4" />
- <window_info anchor="bottom" id="TODO" order="13" sideWeight="0.49785408" weight="0.3290993" />
- <window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
- <window_info anchor="right" id="Capture Analysis" order="1" />
- <window_info anchor="right" id="Gradle" order="2" weight="0.08959228" />
- <window_info anchor="right" id="Theme Preview" order="3" />
- <window_info anchor="right" id="Commander" order="4" weight="0.4" />
- <window_info anchor="right" id="Palette	" order="5" />
- <window_info anchor="right" id="Ant Build" order="6" weight="0.25" />
- <window_info anchor="right" id="Preview" order="7" weight="0.23015021" />
- <window_info anchor="right" content_ui="combo" id="Hierarchy" order="8" weight="0.25" />
- <window_info anchor="right" id="Assistant" order="9" />
- </layout-to-restore>
+ </component>
+ <component name="VcsContentAnnotationSettings">
+ <option name="myLimit" value="2678400000" />
+ </component>
+ <component name="VcsManagerConfiguration">
+ <MESSAGE value="a" />
+ <option name="LAST_COMMIT_MESSAGE" value="a" />
</component>
<component name="XDebuggerManager">
- <breakpoint-manager>
- <breakpoints>
- <line-breakpoint enabled="true" type="java-line">
- <url>file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/CrashHandler.java</url>
- <line>94</line>
- <properties />
- <option name="timeStamp" value="478" />
- </line-breakpoint>
- </breakpoints>
- </breakpoint-manager>
+ <breakpoint-manager />
+ <watches-manager />
</component>
<component name="debuggerHistoryManager">
<expressions id="evaluateExpression">
<expression>
- <expression-string>viewHolder.alarmVideo.getHeight()</expression-string>
+ <expression-string>rootView.getParent()</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
- <expression-string>viewHolder.alarmVideo.mVideoHeight</expression-string>
+ <expression-string>rootView.getParent().getParent()</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
- <expression-string>mp.getVideoWidth()</expression-string>
+ <expression-string>rootView.getHeight()</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
<expression>
- <expression-string>mp.getVideoHeight()</expression-string>
- <language-id>JAVA</language-id>
- <evaluation-mode>EXPRESSION</evaluation-mode>
- </expression>
- <expression>
- <expression-string>sql</expression-string>
- <language-id>JAVA</language-id>
- <evaluation-mode>EXPRESSION</evaluation-mode>
- </expression>
- <expression>
- <expression-string>getDatabase()</expression-string>
- <language-id>JAVA</language-id>
- <evaluation-mode>EXPRESSION</evaluation-mode>
- </expression>
- <expression>
- <expression-string>insertSql</expression-string>
- <language-id>JAVA</language-id>
- <evaluation-mode>EXPRESSION</evaluation-mode>
- </expression>
- <expression>
- <expression-string>viewHolder1.alarm.get("matchPersonListStr")</expression-string>
- <language-id>JAVA</language-id>
- <evaluation-mode>EXPRESSION</evaluation-mode>
- </expression>
- <expression>
- <expression-string>listPopupWindow</expression-string>
+ <expression-string>rootView.getWidth()</expression-string>
<language-id>JAVA</language-id>
<evaluation-mode>EXPRESSION</evaluation-mode>
</expression>
</expressions>
</component>
<component name="editorHistoryManager">
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/receiver/StartMyServiceAtBootReceiver.java">
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/model/Setting.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="297">
- <caret line="15" column="9" lean-forward="true" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
+ <state relative-caret-position="270">
+ <caret line="10" column="53" lean-forward="false" selection-start-line="10" selection-start-column="53" selection-end-line="10" selection-end-column="53" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/anim/popup_show.xml">
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/text/TextUtils.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="216">
- <caret line="8" column="24" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="24" />
+ <state relative-caret-position="331">
+ <caret line="482" column="0" lean-forward="true" selection-start-line="482" selection-start-column="0" selection-end-line="482" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/values/styles.xml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="256">
- <caret line="85" column="63" lean-forward="true" selection-start-line="85" selection-start-column="63" selection-end-line="85" selection-end-column="63" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/AbsSpinner.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="-1271">
- <caret line="444" column="41" selection-start-line="444" selection-start-column="41" selection-end-line="444" selection-end-column="41" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/Spinner.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="192">
- <caret line="100" column="24" selection-start-line="100" selection-start-column="12" selection-end-line="100" selection-end-column="24" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/ListPopupWindow.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="138">
- <caret line="117" column="15" selection-start-line="117" selection-start-column="4" selection-end-line="117" selection-end-column="15" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/captures/com.basic.security_2019.05.21_08.48.li">
- <provider selected="true" editor-type-id="capture-editor" />
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/PopupWindow.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="58833">
- <caret line="2349" column="36" selection-start-line="2349" selection-start-column="30" selection-end-line="2349" selection-end-column="36" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/ViewRootImpl.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="188">
- <caret line="2275" selection-start-line="2275" selection-end-line="2275" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/Choreographer.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="233">
- <caret line="688" selection-start-line="688" selection-end-line="688" />
- </state>
- </provider>
- </entry>
- <entry file="jar://$USER_HOME$/AppData/Local/Android/Sdk/platforms/android-28/android.jar!/android/media/MediaMetadataRetriever.class">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="162">
- <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/gesture/GestureOverlayView.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="222">
- <caret line="55" column="44" selection-start-line="55" selection-start-column="44" selection-end-line="55" selection-end-column="44" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/ViewGroup.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="222">
- <caret line="119" column="22" selection-start-line="119" selection-start-column="22" selection-end-line="119" selection-end-column="22" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/FrameLayout.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="222">
- <caret line="56" column="39" selection-start-line="56" selection-start-column="39" selection-end-line="56" selection-end-column="39" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/MyVideoView.java" />
- <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/confirm_dialog_background.xml">
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/SuccessDialog.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
- <caret line="4" column="30" selection-start-line="4" selection-start-column="23" selection-end-line="4" selection-end-column="30" />
+ <caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/widget/VideoView.java">
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/ConfirmDialog.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="-58">
- <caret line="459" column="35" selection-start-line="459" selection-start-column="35" selection-end-line="459" selection-end-column="35" />
+ <state relative-caret-position="270">
+ <caret line="23" column="0" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/my_toast.xml">
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/values/colors.xml">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="351">
- <caret line="13" column="27" selection-start-line="13" selection-start-column="27" selection-end-line="13" selection-end-column="27" />
+ <state relative-caret-position="216">
+ <caret line="8" column="45" lean-forward="false" selection-start-line="8" selection-start-column="45" selection-end-line="8" selection-end-column="45" />
</state>
</provider>
- <provider editor-type-id="android-designer2" />
</entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/media/MediaPlayer.java">
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/model/Alarm.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="215">
- <caret line="952" selection-start-line="952" selection-end-line="953" selection-end-column="59" />
+ <state relative-caret-position="486">
+ <caret line="18" column="1" lean-forward="false" selection-start-line="18" selection-start-column="1" selection-end-line="18" selection-end-column="1" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java_bak/com/basic/security/activity/MainActivity.java" />
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/KeyboardUtil.java">
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/java/util/GregorianCalendar.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="122">
- <caret line="22" selection-start-line="22" selection-end-line="22" />
+ <state relative-caret-position="181">
+ <caret line="624" column="11" lean-forward="false" selection-start-line="624" selection-start-column="11" selection-end-line="624" selection-end-column="11" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java_bak/com/basic/security/fragment/helper/HomeGridViewAdapter.java" />
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/java/util/Calendar.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="279">
+ <caret line="1683" column="31" lean-forward="false" selection-start-line="1683" selection-start-column="31" selection-end-line="1683" selection-end-column="31" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/dao/SqliteManager.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="-10">
+ <caret line="58" column="5" lean-forward="false" selection-start-line="58" selection-start-column="5" selection-end-line="58" selection-end-column="5" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/auth_dialog.xml" />
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/SettingManager.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="702">
+ <caret line="38" column="0" lean-forward="true" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="249">
- <caret line="50" column="34" selection-start-line="50" selection-start-column="25" selection-end-line="50" selection-end-column="34" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmVideo.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="344">
- <caret line="96" column="54" selection-start-line="96" selection-start-column="54" selection-end-line="96" selection-end-column="54" />
+ <state relative-caret-position="233">
+ <caret line="37" column="0" lean-forward="false" selection-start-line="37" selection-start-column="0" selection-end-line="37" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/AudioPlayer.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="149">
- <caret line="18" column="69" selection-start-line="18" selection-start-column="68" selection-end-line="18" selection-end-column="69" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="108">
- <caret line="4" column="42" selection-start-line="4" selection-start-column="42" selection-end-line="4" selection-end-column="42" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties">
- <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="135">
- <caret line="5" column="77" selection-start-line="5" selection-start-column="59" selection-end-line="5" selection-end-column="77" />
+ <caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
</state>
</provider>
</entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/java/util/Map.java">
+ <entry file="file://$PROJECT_DIR$/captures/com.basic.security_2019.06.13_09.35.li" />
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/app/Dialog.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="277">
- <caret line="324" column="11" selection-start-line="324" selection-start-column="11" selection-end-line="324" selection-end-column="11" />
+ <state relative-caret-position="-1702">
+ <caret line="306" column="19" lean-forward="false" selection-start-line="306" selection-start-column="12" selection-end-line="306" selection-end-column="19" />
</state>
</provider>
</entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/View.java">
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/Window.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="222">
- <caret line="9589" column="19" selection-start-line="9589" selection-start-column="19" selection-end-line="9589" selection-end-column="19" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/build.gradle">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="325">
- <caret line="21" column="42" selection-start-line="21" selection-start-column="8" selection-end-line="21" selection-end-column="42" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/CrashHandler.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="800">
- <caret line="89" column="6" selection-start-line="89" selection-start-column="6" selection-end-line="89" selection-end-column="6" />
- </state>
- </provider>
- </entry>
- <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fresco/fresco/1.1.0/d556802c848ae4d5392bed9b17b65c875b7b2f1a/fresco-1.1.0-sources.jar!/com/facebook/drawee/backends/pipeline/Fresco.java" />
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/base/BaseApplication.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="324">
- <caret line="34" column="13" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml">
- <provider editor-type-id="android-manifest" />
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="243">
- <caret line="28" column="34" selection-start-line="28" selection-start-column="34" selection-end-line="29" selection-end-column="44" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/alarm_view.xml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="351">
- <caret line="13" column="47" selection-start-line="13" selection-start-column="35" selection-end-line="13" selection-end-column="47" />
- </state>
- </provider>
- <provider editor-type-id="android-designer2" />
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="189">
- <caret line="7" column="37" selection-start-line="7" selection-start-column="21" selection-end-line="7" selection-end-column="37" />
- </state>
- </provider>
- <provider editor-type-id="android-designer2" />
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1836">
- <caret line="97" column="117" selection-start-line="97" selection-start-column="117" selection-end-line="97" selection-end-column="117" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/CustomSpinner2.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="539">
- <caret line="100" selection-start-line="100" selection-end-line="100" />
- <folding>
- <element signature="e#3952#3953#0" />
- </folding>
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/local.properties">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="243">
- <caret line="9" selection-start-line="9" selection-end-line="9" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/build.gradle">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1053">
- <caret line="39" column="63" selection-start-line="39" selection-start-column="63" selection-end-line="39" selection-end-column="63" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/cpp/native-lib.cpp">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1890">
- <caret line="70" column="47" selection-start-line="70" selection-start-column="47" selection-end-line="70" selection-end-column="47" />
- <folding>
- <element signature="e#0#16#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/CMakeLists.txt">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="206">
- <caret line="35" column="32" selection-start-line="35" selection-start-column="32" selection-end-line="35" selection-end-column="32" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/SettingManager.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="-623">
- <caret line="41" column="20" lean-forward="true" selection-start-line="41" selection-start-column="20" selection-end-line="41" selection-end-column="20" />
- </state>
- </provider>
- </entry>
- <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/androidx/navigation/testapp/MainFragment.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="-354">
- <folding>
- <element signature="e#0#1939#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/SettingFragment.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="329">
- <caret line="163" column="10" selection-start-line="163" selection-start-column="10" selection-end-line="163" selection-end-column="10" />
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/activity/MainActivity.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="118">
- <caret line="67" column="13" lean-forward="true" selection-start-line="67" selection-start-column="13" selection-end-line="67" selection-end-column="13" />
- <folding>
- <element signature="e#2808#3002#0" expanded="true" />
- <element signature="e#3001#3002#0" expanded="true" />
- </folding>
- </state>
- </provider>
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_setting.xml">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="279">
- <caret line="98" column="34" selection-start-line="98" selection-start-column="34" selection-end-line="98" selection-end-column="34" />
- <folding>
- <element signature="e#3550#3562#0" expanded="true" />
- <element signature="e#3766#3779#0" expanded="true" />
- <element signature="e#3990#4002#0" expanded="true" />
- <element signature="e#4103#4116#0" expanded="true" />
- <element signature="e#4155#4167#0" expanded="true" />
- <element signature="e#4264#4276#0" expanded="true" />
- <element signature="e#4401#4413#0" expanded="true" />
- </folding>
- </state>
- </provider>
- <provider editor-type-id="android-designer2" />
- </entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/AlarmManager.java">
- <provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="135">
- <caret line="51" column="35" selection-start-line="51" selection-start-column="26" selection-end-line="51" selection-end-column="35" />
- <folding>
- <element signature="imports" expanded="true" />
- </folding>
+ <state relative-caret-position="203">
+ <caret line="1663" column="24" lean-forward="false" selection-start-line="1663" selection-start-column="20" selection-end-line="1663" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/HomeFragment.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="123">
- <caret line="61" column="42" selection-start-line="61" selection-start-column="24" selection-end-line="61" selection-end-column="42" />
+ <state relative-caret-position="257">
+ <caret line="102" column="26" lean-forward="true" selection-start-line="102" selection-start-column="26" selection-end-line="102" selection-end-column="26" />
</state>
</provider>
</entry>
- <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java">
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeSaveAlarmVideoPlayPosition.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="1424">
- <caret line="195" selection-start-line="195" selection-end-line="195" />
+ <state relative-caret-position="187">
+ <caret line="14" column="0" lean-forward="false" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmVideo.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="135">
+ <caret line="10" column="22" lean-forward="false" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="668">
+ <caret line="60" column="31" lean-forward="false" selection-start-line="60" selection-start-column="31" selection-end-line="60" selection-end-column="31" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/build/generated/source/apt/debug/com/basic/security/fragment/HomeFragment_.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="548">
+ <caret line="109" column="46" lean-forward="false" selection-start-line="109" selection-start-column="46" selection-end-line="109" selection-end-column="46" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/media/MediaPlayer.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="246">
+ <caret line="1667" column="36" lean-forward="false" selection-start-line="1667" selection-start-column="15" selection-end-line="1667" selection-end-column="36" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/cpp/TCPClient.cpp">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="273">
+ <caret line="72" column="25" lean-forward="false" selection-start-line="72" selection-start-column="19" selection-end-line="72" selection-end-column="25" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0-rc02.aar/0b2d52b42c5f75d5663787350b038cbf/res/values/values.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="530">
+ <caret line="1447" column="52" lean-forward="true" selection-start-line="1447" selection-start-column="52" selection-end-line="1447" selection-end-column="52" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/CrashHandler.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="206">
+ <caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/KeyboardUtil.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="256">
+ <caret line="47" column="43" lean-forward="false" selection-start-line="47" selection-start-column="43" selection-end-line="47" selection-end-column="43" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/string">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="198">
+ <caret line="626" column="18" lean-forward="true" selection-start-line="626" selection-start-column="18" selection-end-line="626" selection-end-column="18" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/cpp/native-lib.cpp">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="378">
+ <caret line="107" column="36" lean-forward="false" selection-start-line="107" selection-start-column="36" selection-end-line="107" selection-end-column="36" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/pulldown.png">
+ <provider selected="true" editor-type-id="images">
+ <state />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/fragment_setting.xml">
+ <provider editor-type-id="android-designer2">
+ <state />
+ </provider>
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1458">
+ <caret line="54" column="64" lean-forward="false" selection-start-line="54" selection-start-column="64" selection-end-line="54" selection-end-column="64" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/ic_arrow_down.png">
+ <provider selected="true" editor-type-id="images">
+ <state />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/res/drawable/spinner_arrow_down.xml">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="270">
+ <caret line="10" column="29" lean-forward="true" selection-start-line="10" selection-start-column="29" selection-end-line="10" selection-end-column="29" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/SettingFragment.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="780">
+ <caret line="290" column="37" lean-forward="false" selection-start-line="290" selection-start-column="37" selection-end-line="290" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketClient.java">
<provider selected="true" editor-type-id="text-editor">
- <state relative-caret-position="227">
- <caret line="153" column="1652" selection-start-line="153" selection-start-column="1652" selection-end-line="153" selection-end-column="1652" />
+ <state relative-caret-position="223">
+ <caret line="42" column="0" lean-forward="true" selection-start-line="42" selection-start-column="0" selection-end-line="42" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="248">
+ <caret line="103" column="30" lean-forward="false" selection-start-line="103" selection-start-column="30" selection-end-line="103" selection-end-column="30" />
+ <folding>
+ <element signature="imports" expanded="false" />
+ <element signature="e#1266#1267#0" expanded="false" />
+ <element signature="e#1298#1299#0" expanded="false" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/SocketServer.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="185">
+ <caret line="21" column="21" lean-forward="false" selection-start-line="21" selection-start-column="21" selection-end-line="21" selection-end-column="21" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.androidannotations/androidannotations-api/4.5.2/74136c2ea18426ea0899bf9d8c9b21baf9ed328a/androidannotations-api-4.5.2-sources.jar!/org/androidannotations/annotations/EActivity.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="268">
+ <caret line="92" column="18" lean-forward="false" selection-start-line="92" selection-start-column="18" selection-end-line="92" selection-end-column="18" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.amitshekhar.android/debug-db/1.0.4/bc55f708add085095e49aa13a443dc09ecc4b225/debug-db-1.0.4-sources.jar!/com/amitshekhar/DebugDBInitProvider.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="-81">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/CMakeLists.txt">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1404">
+ <caret line="52" column="25" lean-forward="false" selection-start-line="52" selection-start-column="25" selection-end-line="52" selection-end-column="25" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/dao/DatabaseManager.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1772">
+ <caret line="119" column="9" lean-forward="false" selection-start-line="119" selection-start-column="0" selection-end-line="119" selection-end-column="9" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/JnanomsgServer.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="189">
+ <caret line="7" column="2" lean-forward="true" selection-start-line="7" selection-start-column="2" selection-end-line="7" selection-end-column="2" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/build.gradle">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="1485">
+ <caret line="55" column="50" lean-forward="false" selection-start-line="55" selection-start-column="50" selection-end-line="55" selection-end-column="50" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/local.properties">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="216">
+ <caret line="8" column="0" lean-forward="false" selection-start-line="8" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/widget/AuthDialog.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="-949">
+ <caret line="96" column="9" lean-forward="true" selection-start-line="96" selection-start-column="9" selection-end-line="96" selection-end-column="9" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/activity/MainActivity.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="-2191">
+ <caret line="105" column="32" lean-forward="false" selection-start-line="105" selection-start-column="19" selection-end-line="105" selection-end-column="32" />
+ <folding>
+ <element signature="e#3979#3980#0" expanded="false" />
+ <element signature="e#4038#4039#0" expanded="false" />
+ <element signature="e#7413#7414#0" expanded="false" />
+ <element signature="e#7446#7447#0" expanded="false" />
+ <element signature="e#7498#7499#0" expanded="false" />
+ <element signature="e#7531#7532#0" expanded="false" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/java/lang/String.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="2329">
+ <caret line="642" column="15" lean-forward="false" selection-start-line="642" selection-start-column="15" selection-end-line="642" selection-end-column="15" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/utils/Constants.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="162">
+ <caret line="6" column="0" lean-forward="true" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/java/lang/Thread.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="331">
+ <caret line="759" column="7" lean-forward="true" selection-start-line="759" selection-start-column="7" selection-end-line="759" selection-end-column="7" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$USER_HOME$/AppData/Local/Android/Sdk/sources/android-28/android/view/View.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="206">
+ <caret line="777" column="13" lean-forward="false" selection-start-line="777" selection-start-column="13" selection-end-line="777" selection-end-column="13" />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="3894">
+ <caret line="331" column="68" lean-forward="false" selection-start-line="331" selection-start-column="68" selection-end-line="331" selection-end-column="68" />
+ <folding>
+ <element signature="e#15554#16817#0" expanded="false" />
+ <element signature="e#16816#16817#0" expanded="false" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/src/main/java/com/basic/security/manager/AlarmManager.java">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="27">
+ <caret line="50" column="56" lean-forward="false" selection-start-line="50" selection-start-column="44" selection-end-line="50" selection-end-column="56" />
+ <folding />
</state>
</provider>
</entry>
diff --git a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_deps b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_deps
index c2caa07..8adb714 100644
--- a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_deps
+++ b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_deps
Binary files differ
diff --git a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_log b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_log
index c2f3775..af53687 100644
--- a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_log
+++ b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/.ninja_log
@@ -25,3 +25,34 @@
1326 1411 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so abb56e0a74a0f245
1 389 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
389 492 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so abb56e0a74a0f245
+3 2191 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+2192 2530 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+2 1659 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+1659 1923 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+2 588 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+4 661 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+662 821 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+1 538 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+538 675 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+1 614 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+614 748 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+1 621 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+621 760 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+2 710 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+2 133 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+99 1209 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+101 1452 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+1452 9124 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+5 899 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+3 965 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+965 1235 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+3 958 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+4 1012 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+1012 1229 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+2 2023 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+2024 2399 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+4 2610 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+2611 3033 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
+6 1068 0 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o ea4d0b8fc97c3253
+4 1135 0 CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o c986ccb50902b63d
+1136 1436 0 ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so b71dd75d5fab42f8
diff --git a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
index 0e11c42..77acefa 100644
--- a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
+++ b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
Binary files differ
diff --git a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/android_gradle_build.json b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/android_gradle_build.json
index cd9cfca..0f593d8 100644
--- a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/android_gradle_build.json
+++ b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/android_gradle_build.json
@@ -21,6 +21,12 @@
"flags" : " --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot -Dnative_lib_EXPORTS -I..\\..\\..\\..\\src\\main\\cpp -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\whereami -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\ffmpeg\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\android\\support\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++abi\\include -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O0 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC -c ",
"src" : "C:/workspace/Security_alarm/app/src/main/cpp/native-lib.cpp",
"workingDirectory" : "C:/workspace/Security_alarm/app/.externalNativeBuild/cmake/debug/armeabi-v7a"
+ },
+
+ {
+ "flags" : " --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot -Dnative_lib_EXPORTS -I..\\..\\..\\..\\src\\main\\cpp -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\whereami -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\ffmpeg\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\android\\support\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++abi\\include -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O0 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC -c ",
+ "src" : "C:/workspace/Security_alarm/app/src/main/cpp/TCPClient.cpp",
+ "workingDirectory" : "C:/workspace/Security_alarm/app/.externalNativeBuild/cmake/debug/armeabi-v7a"
}
],
"output" : "C:/workspace/Security_alarm/app/build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so",
diff --git a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/build.ninja b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/build.ninja
index 304a836..dc12eff 100644
--- a/app/.externalNativeBuild/cmake/debug/armeabi-v7a/build.ninja
+++ b/app/.externalNativeBuild/cmake/debug/armeabi-v7a/build.ninja
@@ -40,6 +40,14 @@
IN_ABS = C:\workspace\Security_alarm\app\src\main\cpp\native-lib.cpp
OBJECT_DIR = CMakeFiles\native-lib.dir
OBJECT_FILE_DIR = CMakeFiles\native-lib.dir\src\main\cpp
+build CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o: CXX_COMPILER__native-lib ../../../../src/main/cpp/TCPClient.cpp
+ DEFINES = -Dnative_lib_EXPORTS
+ DEP_FILE = CMakeFiles\native-lib.dir\src\main\cpp\TCPClient.cpp.o.d
+ FLAGS = -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O0 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC
+ INCLUDES = -I../../../../src/main/cpp -I../../../../src/main/cpp/csrc/thirdparty -I../../../../src/main/cpp/csrc/thirdparty/whereami -I../../../../src/main/cpp/csrc/thirdparty/ffmpeg/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/android/support/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include
+ IN_ABS = C:\workspace\Security_alarm\app\src\main\cpp\TCPClient.cpp
+ OBJECT_DIR = CMakeFiles\native-lib.dir
+ OBJECT_FILE_DIR = CMakeFiles\native-lib.dir\src\main\cpp
# =============================================================================
# Link build statements for SHARED_LIBRARY target native-lib
@@ -48,7 +56,7 @@
#############################################
# Link the shared library ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libnative-lib.so
-build ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so: CXX_SHARED_LIBRARY_LINKER__native-lib CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o | C$:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib/liblog.so
+build ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so: CXX_SHARED_LIBRARY_LINKER__native-lib CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o | C$:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib/liblog.so
LANGUAGE_COMPILE_FLAGS = -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O0 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions
LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a -LC:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now
LINK_LIBRARIES = -llog -latomic -lm "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a" "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a" "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a" "-ldl"
diff --git a/app/.externalNativeBuild/cmake/release/armeabi-v7a/android_gradle_build.json b/app/.externalNativeBuild/cmake/release/armeabi-v7a/android_gradle_build.json
index b63bcc5..2dad617 100644
--- a/app/.externalNativeBuild/cmake/release/armeabi-v7a/android_gradle_build.json
+++ b/app/.externalNativeBuild/cmake/release/armeabi-v7a/android_gradle_build.json
@@ -21,6 +21,12 @@
"flags" : " --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot -Dnative_lib_EXPORTS -I..\\..\\..\\..\\src\\main\\cpp -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\whereami -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\ffmpeg\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\android\\support\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++abi\\include -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O2 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC -c ",
"src" : "C:/workspace/Security_alarm/app/src/main/cpp/native-lib.cpp",
"workingDirectory" : "C:/workspace/Security_alarm/app/.externalNativeBuild/cmake/release/armeabi-v7a"
+ },
+
+ {
+ "flags" : " --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot -Dnative_lib_EXPORTS -I..\\..\\..\\..\\src\\main\\cpp -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\whereami -I..\\..\\..\\..\\src\\main\\cpp\\csrc\\thirdparty\\ffmpeg\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\android\\support\\include -isystem C:\\Users\\xiuxi\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\sources\\cxx-stl\\llvm-libc++abi\\include -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O2 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC -c ",
+ "src" : "C:/workspace/Security_alarm/app/src/main/cpp/TCPClient.cpp",
+ "workingDirectory" : "C:/workspace/Security_alarm/app/.externalNativeBuild/cmake/release/armeabi-v7a"
}
],
"output" : "C:/workspace/Security_alarm/app/build/intermediates/cmake/release/obj/armeabi-v7a/libnative-lib.so",
diff --git a/app/.externalNativeBuild/cmake/release/armeabi-v7a/build.ninja b/app/.externalNativeBuild/cmake/release/armeabi-v7a/build.ninja
index d5ccada..0fae237 100644
--- a/app/.externalNativeBuild/cmake/release/armeabi-v7a/build.ninja
+++ b/app/.externalNativeBuild/cmake/release/armeabi-v7a/build.ninja
@@ -40,6 +40,14 @@
IN_ABS = C:\workspace\Security_alarm\app\src\main\cpp\native-lib.cpp
OBJECT_DIR = CMakeFiles\native-lib.dir
OBJECT_FILE_DIR = CMakeFiles\native-lib.dir\src\main\cpp
+build CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o: CXX_COMPILER__native-lib ../../../../src/main/cpp/TCPClient.cpp
+ DEFINES = -Dnative_lib_EXPORTS
+ DEP_FILE = CMakeFiles\native-lib.dir\src\main\cpp\TCPClient.cpp.o.d
+ FLAGS = -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O2 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fPIC
+ INCLUDES = -I../../../../src/main/cpp -I../../../../src/main/cpp/csrc/thirdparty -I../../../../src/main/cpp/csrc/thirdparty/whereami -I../../../../src/main/cpp/csrc/thirdparty/ffmpeg/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/android/support/include -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include
+ IN_ABS = C:\workspace\Security_alarm\app\src\main\cpp\TCPClient.cpp
+ OBJECT_DIR = CMakeFiles\native-lib.dir
+ OBJECT_FILE_DIR = CMakeFiles\native-lib.dir\src\main\cpp
# =============================================================================
# Link build statements for SHARED_LIBRARY target native-lib
@@ -48,7 +56,7 @@
#############################################
# Link the shared library ..\..\..\..\build\intermediates\cmake\release\obj\armeabi-v7a\libnative-lib.so
-build ../../../../build/intermediates/cmake/release/obj/armeabi-v7a/libnative-lib.so: CXX_SHARED_LIBRARY_LINKER__native-lib CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o | C$:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib/liblog.so
+build ../../../../build/intermediates/cmake/release/obj/armeabi-v7a/libnative-lib.so: CXX_SHARED_LIBRARY_LINKER__native-lib CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o CMakeFiles/native-lib.dir/src/main/cpp/TCPClient.cpp.o | C$:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/lib/liblog.so
LANGUAGE_COMPILE_FLAGS = -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -w -g -O2 -std=c++11 -DLIB_CFFMPEG -fPIC -Wl,-Bsymbolic -isystem C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions
LINK_FLAGS = -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a -LC:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now
LINK_LIBRARIES = -llog -latomic -lm "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a" "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a" "C:/Users/xiuxi/AppData/Local/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a" "-ldl"
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 4b2e513..b56c1bf 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -42,6 +42,7 @@
add_library(native-lib
SHARED
src/main/cpp/native-lib.cpp
+ src/main/cpp/TCPClient.cpp
#${FFMPEG_LIST}
)
find_library(
diff --git a/app/app.iml b/app/app.iml
index ba18027..bd2f2ed 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -8,7 +8,7 @@
</facet>
<facet type="native-android-gradle" name="Native-Android-Gradle">
<configuration>
- <option name="SELECTED_BUILD_VARIANT" value="debug-armeabi-v7a" />
+ <option name="SELECTED_BUILD_VARIANT" value="debug" />
</configuration>
</facet>
<facet type="android" name="Android">
@@ -22,8 +22,7 @@
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
- <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/build/generated/res/rs/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
- <option name="TEST_RES_FOLDERS_RELATIVE_PATH" value="" />
+ <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
</configuration>
</facet>
@@ -35,12 +34,14 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
+ <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
@@ -95,9 +96,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" 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$/.externalNativeBuild" />
- <excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
- <excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
<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" />
@@ -113,7 +111,6 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
<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/manifest-checker" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
@@ -131,111 +128,114 @@
</content>
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" name="Gradle: com.android.support:cardview-v7:28.0.0-rc01@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.facebook.fresco:drawee-1.1.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:documentfile-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:28.0.0-rc02@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:interpolator-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.beardedhen:androidbootstrap-2.3.2" level="project" />
<orderEntry type="library" name="Gradle: org.androidannotations:androidannotations-api:4.5.2@jar" level="project" />
<orderEntry type="library" name="Gradle: org.springframework.android:spring-android-core:2.0.0.M3@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:loader-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: org.androidannotations:rest-spring-api:4.5.2@jar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline:1.1.0@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-1.1.2" level="project" />
+ <orderEntry type="library" name="Gradle: net.java.dev.jna:jna:4.2.1@jar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:annotations:4.8.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: de.hdodenhof:circleimageview:2.2.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.makeramen:roundedimageview:2.3.0@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
<orderEntry type="library" name="Gradle: org.springframework.android:spring-android-rest-template:2.0.0.M3@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.wdullaer:materialdatetimepicker:3.6.3@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:viewpager:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.core:runtime-1.1.1" level="project" />
+ <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView-4.1.6" level="project" />
+ <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor-1.0.2" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:converter-gson:2.4.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7:28.0.0-rc01@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.amitshekhar.android:debug-db:1.0.4@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder-4.8.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:cursoradapter-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime-1.1.1" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxjava:2.1.17@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide:4.8.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0-rc02@aar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\slf4j-api-1.7.9.jar:unspecified@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.kyleduo.switchbutton:library:2.0.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-fragment:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.github.angads25:toggle:1.0.0@aar" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel-1.1.1" level="project" />
+ <orderEntry type="library" name="Gradle: net.zetetic:android-database-sqlcipher-3.5.7" level="project" />
<orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.2@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.persistence:db:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:design:28.0.0-rc01@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:interpolator:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.persistence:db-framework:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.contrarywind:wheelview:4.0.8@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.github.bumptech.glide:glide-4.8.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.github.ybq:Android-SpinKit-1.2.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.contrarywind:wheelview-4.0.8" level="project" />
+ <orderEntry type="library" name="Gradle: com.facebook.fresco:fresco-1.1.0" 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.rengwuxian.materialedittext:library:2.1.4@aar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\slf4j-android-1.7.9.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-core:2.9.7@jar" level="project" />
<orderEntry type="library" name="Gradle: com.nineoldandroids:library:2.4.0@jar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.1@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:drawerlayout:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.persistence:db-framework-1.1.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.wdullaer:materialdatetimepicker-3.6.3" 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-compat:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.persistence.room:runtime-1.1.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:viewpager-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.10.0@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-compat-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:collections:28.0.0-rc02@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:print:28.0.0-rc02@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.8.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-v13:28.0.0-rc02@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.1@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.nightonke:jellytogglebutton-1.0.2" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:adapter-rxjava:2.4.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:print-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\universal-image-loader-1.9.2-SNAPSHOT-with-sources.jar:unspecified@jar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.1@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater:28.0.0-rc02@aar" level="project" />
<orderEntry type="library" name="Gradle: org.apache.httpcomponents:httpclient-android:4.3.5.1@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.nightonke:jellytogglebutton:1.0.2@aar" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource:3.0.2@aar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.1@aar" level="project" />
- <orderEntry type="library" name="Gradle: org.xutils:xutils:3.5.0@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: org.xutils:xutils-3.5.0" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:retrofit:2.4.0@jar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex:rxjava:1.3.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner:1.0.2@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:versionedparcelable:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: de.hdodenhof:circleimageview-2.2.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-28.0.0-rc02" 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:support-v4:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\sdkapi.jar:unspecified@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:multidex-1.0.3" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.14.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.9.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: android.arch.persistence.room:runtime:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\libthrift-0.9.1.jar:unspecified@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.rengwuxian.materialedittext:library-2.1.4" level="project" />
<orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.2@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.github.angads25:toggle-1.0.0" level="project" />
<orderEntry type="library" name="Gradle: com.fasterxml.jackson.core:jackson-databind:2.9.7@jar" level="project" />
- <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.8.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:customview-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:transition-28.0.0-rc01" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: jnanomsg:jnanomsg:0.4.3@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.amitshekhar.android:debug-db-1.0.4" level="project" />
<orderEntry type="library" name="Gradle: org.jsoup:jsoup:1.11.3@jar" level="project" />
- <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.0.2@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.facebook.fresco:fresco:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support.constraint:constraint-layout:1.1.2@aar" level="project" />
+ <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-1.0.2" level="project" />
+ <orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore-1.1.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.makeramen:roundedimageview-2.3.0" level="project" />
<orderEntry type="library" name="Gradle: com.parse.bolts:bolts-tasks:1.4.0@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:drawerlayout-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-v4-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: android.arch.persistence.room:common:1.1.0@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:transition:28.0.0-rc01@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.facebook.fresco:drawee:1.1.0@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:customview:28.0.0-rc02@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.kyleduo.switchbutton:library-2.0.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\xUtils-2.6.14.jar:unspecified@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.github.ybq:Android-SpinKit:1.2.0@aar" level="project" />
+ <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-3.0.2" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base-1.1.0" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:asynclayoutinflater-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid-2.0.2" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView:4.1.6@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:support-core-ui:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.beardedhen:androidbootstrap:2.3.2@aar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:cardview-v7-28.0.0-rc01" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.persistence:db-1.1.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-3.0.2" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7-28.0.0-rc01" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager-28.0.0-rc02" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.2@jar" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-fragment-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:design-28.0.0-rc01" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:C.\workspace\Security_alarm\app\libs\FRICPayToolV20P.jar:unspecified@jar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0-rc02@aar" level="project" />
- <orderEntry type="library" name="Gradle: net.zetetic:android-database-sqlcipher:3.5.7@aar" level="project" />
- <orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.3@aar" level="project" />
+ <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core-1.1.1" level="project" />
+ <orderEntry type="library" name="Gradle: com.android.support:support-v13-28.0.0-rc02" level="project" />
+ <orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-1.1.0" level="project" />
<orderEntry type="library" name="Gradle: org.apache.http.legacy-android-28" level="project" />
</component>
</module>
\ No newline at end of file
diff --git a/app/debug/output.json b/app/debug/output.json
new file mode 100644
index 0000000..f20a39f
--- /dev/null
+++ b/app/debug/output.json
@@ -0,0 +1 @@
+[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"app-debug.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/libs/sdkapi.jar b/app/libs/sdkapi.jar
new file mode 100644
index 0000000..c269276
--- /dev/null
+++ b/app/libs/sdkapi.jar
Binary files differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4276596..f2b92fb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.basic.security">
+ package="com.basic.security"
+ android:versionCode="5"
+ android:versionName="5.0.1.20180801">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@@ -16,6 +18,28 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+ <uses-permission android:name="android.permission.DEVICE_POWER" />
+ <uses-permission android:name="android.permission.GET_TASKS" />
+ <uses-permission android:name="android.permission.INTERNET" />
+ <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <uses-permission android:name="android.permission.READFRAMEBUFFER" />
+ <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
+ <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+ <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
+
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
@@ -30,8 +54,10 @@
android:name=".base.BaseApplication"
android:theme="@style/AppTheme"
>
- <activity android:name=".activity.MainActivity_" android:screenOrientation="landscape"
- android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
+ <activity
+ android:name=".activity.WelcomeActivity"
+ android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -39,6 +65,10 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+ <activity android:name=".activity.MainActivity_" android:screenOrientation="landscape"
+ android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
+ >
+ </activity>
<receiver
android:name=".receiver.StartMyServiceAtBootReceiver"
android:label="StartMyServiceAtBootReceiver">
diff --git a/app/src/main/cpp/TCPClient.cpp b/app/src/main/cpp/TCPClient.cpp
new file mode 100644
index 0000000..faa6406
--- /dev/null
+++ b/app/src/main/cpp/TCPClient.cpp
@@ -0,0 +1,83 @@
+#include "TCPClient.h"
+
+TCPClient::TCPClient() {
+ sock = -1;
+ port = 0;
+ address = "";
+}
+
+bool TCPClient::setup(string address, int port) {
+ if (sock == -1) {
+ sock = socket(AF_INET, SOCK_STREAM, 0);
+ if (sock == -1) {
+ cout << "Could not create socket" << endl;
+ }
+ }
+ if ((signed) inet_addr(address.c_str()) == -1) {
+ struct hostent *he;
+ struct in_addr **addr_list;
+ if ((he = gethostbyname(address.c_str())) == NULL) {
+ herror("gethostbyname");
+ cout << "Failed to resolve hostname\n";
+ return false;
+ }
+ addr_list = (struct in_addr **) he->h_addr_list;
+ for (int i = 0; addr_list[i] != NULL; i++) {
+ server.sin_addr = *addr_list[i];
+ break;
+ }
+ } else {
+ server.sin_addr.s_addr = inet_addr(address.c_str());
+ }
+ server.sin_family = AF_INET;
+ server.sin_port = htons(port);
+ if (connect(sock, (struct sockaddr *) &server, sizeof(server)) < 0) {
+ perror("connect failed. Error");
+ return false;
+ }
+ return true;
+}
+
+bool TCPClient::Send(string data) {
+ if (sock != -1) {
+ if (send(sock, data.c_str(), strlen(data.c_str()), 0) < 0) {
+ cout << "Send failed : " << data << endl;
+ return false;
+ }
+ } else
+ return false;
+ return true;
+}
+
+string TCPClient::receive(int size) {
+ char buffer[size];
+ memset(&buffer[0], 0, sizeof(buffer));
+
+ string reply;
+ if (recv(sock, buffer, size, 0) < 0) {
+ cout << "receive failed!" << endl;
+ return nullptr;
+ }
+ buffer[size - 1] = '\0';
+ reply = buffer;
+ return reply;
+}
+
+string TCPClient::read() {
+ char buffer[1] = {};
+ buffer[0] = '\1';
+ string reply;
+ while (buffer[0] != '\0') {
+ if (recv(sock, buffer, sizeof(buffer), 0) < 0) {
+ cout << "receive failed!" << endl;
+ return string("-1");
+ }
+ reply += buffer[0];
+ }
+ return reply;
+}
+
+void TCPClient::exit() {
+ close(sock);
+ sock = -1;
+}
diff --git a/app/src/main/cpp/TCPClient.h b/app/src/main/cpp/TCPClient.h
new file mode 100644
index 0000000..19964d8
--- /dev/null
+++ b/app/src/main/cpp/TCPClient.h
@@ -0,0 +1,36 @@
+#ifndef TCP_CLIENT_H
+#define TCP_CLIENT_H
+
+#include <iostream>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <netdb.h>
+#include <vector>
+
+using namespace std;
+
+class TCPClient
+{
+ private:
+ int sock;
+ std::string address;
+ int port;
+ struct sockaddr_in server;
+
+ public:
+ TCPClient();
+ bool setup(string address, int port);
+ bool Send(string data);
+ string receive(int size = 4096);
+ string read();
+ void exit();
+};
+
+#endif
diff --git a/app/src/main/cpp/csrc/thirdparty/ffmpeg/bin/ffmpeg b/app/src/main/cpp/csrc/thirdparty/ffmpeg/bin/ffmpeg
new file mode 100644
index 0000000..10ebd3b
--- /dev/null
+++ b/app/src/main/cpp/csrc/thirdparty/ffmpeg/bin/ffmpeg
Binary files differ
diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/cpp/native-lib.cpp
index 9e90a7d..2a3a20c 100644
--- a/app/src/main/cpp/native-lib.cpp
+++ b/app/src/main/cpp/native-lib.cpp
@@ -12,6 +12,11 @@
}
#endif
+
+
+
+
+
extern "C" JNIEXPORT jstring
JNICALL
@@ -75,4 +80,31 @@
// XLOGD("%d\n", wid);
// printf("%d\n", wid);
+}
+
+#include <signal.h>
+#include "TCPClient.h"
+
+TCPClient tcp;
+
+extern "C"
+JNIEXPORT void JNICALL
+Java_com_basic_security_utils_SocketClient_setup(JNIEnv *env, jobject instance, jstring ip_,
+ jint port) {
+ const char *ip = env->GetStringUTFChars(ip_, 0);
+ tcp.exit();
+ tcp.setup(ip, port);
+
+ env->ReleaseStringUTFChars(ip_, ip);
+}
+//extern "C"
+//JNIEXPORT jstring JNICALL
+//Java_com_basic_security_utils_SocketClient_receive(JNIEnv *env, jobject instance) {
+// return env->NewStringUTF(tcp.read().c_str());
+//}
+extern "C"
+JNIEXPORT jstring JNICALL
+Java_com_basic_security_utils_SocketClient_receive(JNIEnv *env, jobject instance) {
+ const char* str = tcp.read().c_str();
+ return env->NewStringUTF(str);
}
\ No newline at end of file
diff --git a/app/src/main/java/com/basic/security/activity/MainActivity.java b/app/src/main/java/com/basic/security/activity/MainActivity.java
index 3406507..cf9c539 100644
--- a/app/src/main/java/com/basic/security/activity/MainActivity.java
+++ b/app/src/main/java/com/basic/security/activity/MainActivity.java
@@ -19,6 +19,8 @@
import com.basic.security.fragment.SettingFragment;
import com.basic.security.utils.FFmpeg;
import com.basic.security.utils.KeyboardUtil;
+import com.basic.security.utils.LztekAndroidRoot;
+import com.basic.security.widget.AuthDialog;
import com.basic.security.widget.MyMediaController;
import com.bumptech.glide.Glide;
@@ -95,8 +97,6 @@
fragment_home.pullAlarmDataList();
fragment_home.playAlarmSound();
KeyboardUtil.setupUI(fragment_setting.getView());
-// KeyboardUtil.setupUI(mainActivityView);
-// ffmpeg();
}
@Background
@@ -141,6 +141,14 @@
@Click
public void goto_setting() {
+ if (currentFragment == fragment_home) {
+// do_goto_setting();
+ AuthDialog authDialog = new AuthDialog(this);
+ authDialog.show();
+ }
+ }
+
+ public void do_goto_setting() {
exit_fullscreen();
hideOneFragment(fragment_home);
showOneFragment(fragment_setting);
@@ -223,7 +231,8 @@
@Override
public void onBackPressed() {
- exit_fullscreen();
+ android.os.Process.killProcess(android.os.Process.myPid());
+ System.exit(0);
}
public boolean notInFullscreenMode() {
@@ -233,4 +242,5 @@
}
return true;
}
+
}
diff --git a/app/src/main/java/com/basic/security/activity/WelcomeActivity.java b/app/src/main/java/com/basic/security/activity/WelcomeActivity.java
new file mode 100644
index 0000000..021a172
--- /dev/null
+++ b/app/src/main/java/com/basic/security/activity/WelcomeActivity.java
@@ -0,0 +1,46 @@
+package com.basic.security.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.SystemClock;
+import android.support.v4.app.FragmentActivity;
+import android.view.View;
+
+import com.basic.security.R;
+import com.basic.security.utils.PermissionHelper;
+
+public class WelcomeActivity extends FragmentActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_welcome);
+
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+ | View.SYSTEM_UI_FLAG_IMMERSIVE);
+
+ if (!PermissionHelper.hasWriteStoragePermission(WelcomeActivity.this) ) {
+ PermissionHelper.requestWriteStoragePermission(this);
+ }
+ new Thread(){
+ @Override
+ public void run() {
+ while (true) {
+ if (PermissionHelper.hasWriteStoragePermission(WelcomeActivity.this) ) {
+ Intent intent = new Intent(WelcomeActivity.this, MainActivity_.class);
+ WelcomeActivity.this.startActivity(intent);
+ WelcomeActivity.this.finish();
+ break;
+ }
+ SystemClock.sleep(200);
+ }
+ }
+ }.start();
+ }
+
+}
diff --git a/app/src/main/java/com/basic/security/dao/DatabaseManager.java b/app/src/main/java/com/basic/security/dao/DatabaseManager.java
index bf9cb8f..918d5cd 100644
--- a/app/src/main/java/com/basic/security/dao/DatabaseManager.java
+++ b/app/src/main/java/com/basic/security/dao/DatabaseManager.java
@@ -6,9 +6,11 @@
import android.util.Pair;
import com.basic.security.base.BaseApplication;
+import com.basic.security.model.Setting;
import com.basic.security.utils.Constants;
import java.io.File;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
@@ -25,16 +27,55 @@
public static final Lock databaseLock = new ReentrantLock();
public static final Lock databaseExecSqlLock = new ReentrantLock();
public static Map<String, SQLiteDatabase> databaseMap = new HashMap<>();
-
+ public static Class[] tableClasses = new Class[] {
+ Setting.class
+ };
public static SQLiteDatabase getDatabase() {
return getDatabase(Constants.databaseName);
}
public static void intiTables() {
+ for (Class tableClass : tableClasses) {
+ String table = tableClass.getSimpleName();
+ Map<String, String> columns = new HashMap<>();
+ Field[] declaredFields = tableClass.getDeclaredFields();
+ for (Field field : declaredFields) {
+ try {
+ String fieldName = field.getName();
+ String value = (String)field.get(null);
+ if (value != null) {
+ if ("table".equals(fieldName)) {
+ table = value;
+ } else {
+ columns.put(value, value);
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("reflect "+e.getMessage());
+ }
+ }
+ columns.put("id", "id");
+
+ String createTable = "CREATE TABLE IF NOT EXISTS " + table + " (";
+ for (String column : columns.keySet()) {
+ createTable += column + " TEXT, ";
+ }
+ createTable += " PRIMARY KEY(id))";
+ if (table.equals("RealTimeMetrics")) {
+ createTable = createTable.replace("TEXT", "INTEGER");
+ createTable = createTable.replace("id INTEGER", "id TEXT");
+// System.out.println("createTable="+createTable);
+ }
+ DatabaseManager.execSQL(createTable);
+ String createIndex = "CREATE UNIQUE INDEX IF NOT EXISTS idx_"+table+" ON "+table+"(id)";
+ DatabaseManager.execSQL(createIndex);
+ }
+
+
DatabaseManager.execSQL("CREATE TABLE IF NOT EXISTS alarm (\"matchPersonListStr\" TEXT, property TEXT, \"alarmLargePicture\" TEXT,\"alarmPerson\" TEXT,\"alarmPicture\" TEXT,\"alarmVideo\" TEXT,\"alarmTime\" TEXT,\"alarmAddress\" TEXT,\"alarmType\" TEXT,\"id\" TEXT, \"createTime\" TEXT, \"closeAlarm\" TEXT, \"mute\" TEXT, PRIMARY KEY(id))");
DatabaseManager.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS idx_alarm ON alarm(id)");
- DatabaseManager.execSQL("CREATE TABLE IF NOT EXISTS setting (\"id\" TEXT, \"name\" TEXT, PRIMARY KEY(id))");
- DatabaseManager.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS idx_setting ON setting (id)");
+// DatabaseManager.execSQL("CREATE TABLE IF NOT EXISTS setting (\"id\" TEXT, \"name\" TEXT, PRIMARY KEY(id))");
+// DatabaseManager.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS idx_setting ON setting (id)");
}
public static SQLiteDatabase getDatabase(String databaseName) {
@@ -42,7 +83,8 @@
try {
databaseLock.lock();
if (database == null) {
- database = BaseApplication.getApplication().openOrCreateDatabase(Constants.databaseName, MODE_PRIVATE, null);
+// database = BaseApplication.getApplication().openOrCreateDatabase(Constants.databaseName, MODE_PRIVATE, null);
+ database = SQLiteDatabase.openOrCreateDatabase(databaseName, null);
databaseMap.put(databaseName, database);
intiTables();
setCustomDatabaseFiles(BaseApplication.getApplication());
diff --git a/app/src/main/java/com/basic/security/dao/SqliteManager.java b/app/src/main/java/com/basic/security/dao/SqliteManager.java
index b001f54..c890766 100644
--- a/app/src/main/java/com/basic/security/dao/SqliteManager.java
+++ b/app/src/main/java/com/basic/security/dao/SqliteManager.java
@@ -135,4 +135,27 @@
return this;
}
}
+
+
+ public static Map<String, String> findById(String table, String id) {
+ Cursor cursor = null;
+ try {
+ String sql = "select * from "+table+" where id = '" + id + "'";
+ if (Constants.printSql) {
+ System.out.println("findById="+sql);
+ }
+ cursor = DatabaseManager.getDatabase().rawQuery(sql, null);
+ if (cursor.moveToFirst()) {
+ return cursorToModelAdapter(cursor, table);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (cursor != null)
+ cursor.close();
+ }
+ return null;
+ }
+
+
}
diff --git a/app/src/main/java/com/basic/security/fragment/HomeFragment.java b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
index 3d30b51..dd63bec 100644
--- a/app/src/main/java/com/basic/security/fragment/HomeFragment.java
+++ b/app/src/main/java/com/basic/security/fragment/HomeFragment.java
@@ -22,6 +22,7 @@
import org.androidannotations.annotations.UiThread;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -47,6 +48,15 @@
// homeRestClient.setRootUrl("http://"+ipStr+":8000/data/api-v/realTime");
// }
}
+ static List<SocketClient> socketClientList = new ArrayList<>();
+
+ public static void startNewSocketClient() {
+ System.out.println("鍚姩鏂拌繛鎺�");
+ SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
+ socketClient.start();
+ socketClientList.add(socketClient);
+ SystemClock.sleep(10*1000);
+ }
@Background
public void pullAlarmDataList() {
@@ -54,16 +64,23 @@
refreshGridView();
while (true) {
try{
- Map<String, String> requestBody = new HashMap<String, String>();
- requestBody.put("sec", "15");
- List<Map<String, String>> newRemoteAlarmList = null;
try {
- if (localServer) {
- newRemoteAlarmList = (List<Map<String, String>>)homeRestClient.list1();
- } else {
- SocketClient socketClient = new SocketClient(SettingManager.getIpStr(), SettingManager.getPort());
- socketClient.start();
+ if (1!=1) {
+ startNewSocketClient();
break;
+ } else {
+ List<SocketClient> socketClientListToRemove = new ArrayList<>();
+ for (SocketClient socketClient1 : socketClientList) {
+ if (System.currentTimeMillis() - socketClient1.lastUpdateTime > 1000*60*2) {
+// socketClient1.closeSocket();
+ socketClient1.interrupt();
+ socketClientListToRemove.add(socketClient1);
+ }
+ }
+ socketClientList.removeAll(socketClientListToRemove);
+ if (socketClientList.size() == 0) {
+ startNewSocketClient();
+ }
}
} catch (Exception e) {
System.out.println("pullAlarmDataList, " + e.getMessage());
@@ -71,7 +88,7 @@
} catch (Exception e) {
e.printStackTrace();
} finally {
- SystemClock.sleep(8000);
+ SystemClock.sleep(3000);
}
}
}
diff --git a/app/src/main/java/com/basic/security/fragment/SettingFragment.java b/app/src/main/java/com/basic/security/fragment/SettingFragment.java
index e4b56c1..fd9f303 100644
--- a/app/src/main/java/com/basic/security/fragment/SettingFragment.java
+++ b/app/src/main/java/com/basic/security/fragment/SettingFragment.java
@@ -1,19 +1,29 @@
package com.basic.security.fragment;
import android.media.MediaPlayer;
+import android.text.TextUtils;
import android.view.View;
-import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.EditText;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
import com.basic.security.R;
import com.basic.security.base.BaseFragment;
import com.basic.security.fragment.helper.HomePlayAlarmSound;
import com.basic.security.manager.SettingManager;
+import com.basic.security.model.Setting;
import com.basic.security.utils.AudioPlayer;
+import com.basic.security.utils.Constants;
+import com.basic.security.utils.CrashHandler;
import com.basic.security.utils.SocketClient;
import com.basic.security.utils.ToastUtil;
+import com.basic.security.widget.CustomSpinner;
import com.basic.security.widget.SuccessDialog;
import org.androidannotations.annotations.AfterViews;
@@ -23,11 +33,11 @@
import org.androidannotations.annotations.UiThread;
import org.androidannotations.annotations.ViewById;
+import java.util.Map;
+
@EFragment(R.layout.fragment_setting)
public class SettingFragment extends BaseFragment {
- @ViewById
- public EditText password;
@ViewById
public EditText ip;
@ViewById
@@ -35,25 +45,74 @@
@ViewById
public Spinner second;
@ViewById
- public Spinner alarmAudio;
+ public CustomSpinner alarmAudio;
+
+ @ViewById
+ public Spinner keepTime;
+ @ViewById
+ public Spinner keepTimeType;
+ @ViewById
+ public EditText oldPassword;
+ @ViewById
+ public EditText newPassword;
+ @ViewById
+ public EditText newPassword2;
+
+
+ private com.lztek.toolkit.Lztek mLztek;
+
+ @ViewById
+ public CheckBox switch_ethernet;
+ @ViewById
+ public RadioGroup ip_mode;
+ @ViewById
+ public RadioButton dhcp;
+ @ViewById
+ public RadioButton staticip;
+ @ViewById
+ public EditText ip_address;
+ @ViewById
+ public EditText net_mask;
+ @ViewById
+ public EditText gate_way;
+ @ViewById
+ public EditText dns_server;
+
+ @ViewById
+ public TextView error;
public String[] secondArray = new String[]{"5", "10", "20", "30", "40", "50", "60"};
public static String[] alarmAudioArray = new String[]{"1", "2", "3", "4", "5"};
+ public static String[] keepTimeArray = new String[]{"1", "2", "3","4","5","6","7","8","9","10"};
+ public static String[] keepTimeTypeArray = new String[]{"鍛�", "鏈�"};
public MediaPlayer mp;
+ boolean notSkipPlay = false;
+
+ boolean saved = false;
+
@Background
public void show() {
- initData(SettingManager.getIpStr(), SettingManager.getSecondStr(), SettingManager.getAlarmAudioStr(), SettingManager.getPortStr());
+ saved = false;
+ initData(SettingManager.getIpStr(), SettingManager.getSecondStr(),
+ SettingManager.getAlarmAudioStr(), SettingManager.getPortStr(), SettingManager.getKeepTime(), SettingManager.getKeepTimeType());
}
@UiThread
- public void initData(String ipStr, String secondStr, String alarmAudioStr, String portStr) {
+ public void initData(String ipStr, String secondStr, String alarmAudioStr, String portStr, String keepTimeStr, String keepTimeTypeStr) {
if (second != null) {
second.setSelection(getSelectedIndex(secondArray, secondStr));
}
if (alarmAudio != null) {
+ notSkipPlay = false;
alarmAudio.setSelection(getSelectedIndex(alarmAudioArray, alarmAudioStr));
+ }
+ if (keepTime != null) {
+ keepTime.setSelection(getSelectedIndex(keepTimeArray, keepTimeStr));
+ }
+ if (keepTimeType != null) {
+ keepTimeType.setSelection(getSelectedIndex(keepTimeTypeArray, keepTimeTypeStr));
}
if (ipStr != null) {
ip.setText(ipStr);
@@ -61,7 +120,16 @@
if (portStr != null) {
port.setText(portStr);
}
- password.setText("");
+ oldPassword.setText("");
+ newPassword.setText("");
+ newPassword2.setText("");
+ try {
+ if (Constants.NativeLib) {
+ refreshAddrInfo(mLztek.getEthEnable());
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
}
public int getSelectedIndex(String[] array, String value) {
@@ -102,46 +170,246 @@
@AfterViews
public void afterViews() {
- second.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, secondArray));
- second.setPopupBackgroundResource(R.drawable.round_border);
+ try {
+ second.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, secondArray));
+ second.setPopupBackgroundResource(R.drawable.round_border);
- alarmAudio.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, alarmAudioArray));
- alarmAudio.setPopupBackgroundResource(R.drawable.round_border);
- alarmAudio.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- final int position1 = position;
- new Thread(){
+ keepTime.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, keepTimeArray));
+ keepTime.setPopupBackgroundResource(R.drawable.round_border);
+
+ keepTimeType.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, keepTimeTypeArray));
+ keepTimeType.setPopupBackgroundResource(R.drawable.round_border);
+
+ alarmAudio.setAdapter(new ArrayAdapter<>(getContext(), R.layout.spinner_item_small_text, alarmAudioArray));
+ alarmAudio.setPopupBackgroundResource(R.drawable.round_border);
+
+
+ alarmAudio.selection = new CustomSpinner.Selection() {
+ @Override
+ public void selected(int position) {
+ final int position1 = position;
+ new Thread(){
+ @Override
+ public void run() {
+ if (notSkipPlay) {
+ mp = AudioPlayer.play(mp, alarmAudioArray[position1], false);
+ }
+ if (!notSkipPlay) {
+ notSkipPlay = true;
+ }
+ }
+ }.start();
+ }
+ };
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ try {
+ if (Constants.NativeLib) {
+ String errorMsg = CrashHandler.getErrorContent();
+ System.out.println("errorMsg="+errorMsg);
+ mLztek = com.lztek.toolkit.Lztek.create(mainActivity());
+ switch_ethernet.setText(switch_ethernet.getText() + " [" + mLztek.getEthMac().toUpperCase() + "]");
+ boolean ethEnalbe = mLztek.getEthEnable();
+ switch_ethernet.setChecked(ethEnalbe);
+ switch_ethernet.setEnabled(ethEnalbe);
+ //refreshAddrInfo(ethEnalbe);
+ switch_ethernet.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
- public void run() {
- //AudioPlayer.stop(mp);
- mp = AudioPlayer.play(mp, alarmAudioArray[position1], false);
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ mLztek.setEthEnable(isChecked);
+ refreshAddrInfo(isChecked);
}
- }.start();
+ });
+ ip_mode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ if (group == ip_mode) {
+ setAddrInput(staticip.isChecked());
+ }
+ }
+ });
+ ip_address.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ if (!hasFocus) {
+ String ip = ip_address.getText().toString().trim();
+ if (!ipCheck(ip)) {
+ return;
+ }
+ if (net_mask.getText().toString().trim().length() == 0) {
+ int type = Integer.parseInt(ip.substring(0, ip.indexOf('.')));
+ String mask = 1 <= type && type <= 126? "255.0.0.0" :
+ (128 <= type && type <= 191? "255.255.0.0" : "255.255.255.0");
+ net_mask.setText(mask);
+ }
+ if (gate_way.getText().toString().trim().length() == 0) {
+ gate_way.setText(ip.substring(0, ip.lastIndexOf('.')) + ".1");
+ }
+ if (dns_server.getText().toString().trim().length() == 0) {
+ dns_server.setText(ip.substring(0, ip.lastIndexOf('.')) + ".1");
+ }
+ }
+ }
+ });
+ gate_way.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ if (!hasFocus) {
+ String gateway = gate_way.getText().toString().trim();
+ if (!ipCheck(gateway)) {
+ return;
+ }
+ if (dns_server.getText().toString().trim().length() == 0) {
+ dns_server.setText(gateway);
+ }
+ }
+ }
+ });
}
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
- }
- });
}
+
+
+ private void refreshAddrInfo(boolean ethEnalbe) {
+ if (ethEnalbe) {
+ setRadioButton(true);
+ com.lztek.toolkit.AddrInfo addrInfo = mLztek.getEthAddrInfo();
+ if (null != addrInfo) {
+ boolean dhcpv = addrInfo.getIpMode() == com.lztek.toolkit.AddrInfo.DHCP;
+ dhcp.setChecked(dhcpv);
+ staticip.setChecked(!dhcpv);
+ ip_address.setText(addrInfo.getIpAddress());
+ net_mask.setText(addrInfo.getNetmask());
+ gate_way.setText(addrInfo.getGateway());
+ dns_server.setText(addrInfo.getDns());
+ setAddrInput(!dhcpv);
+ } else {
+ setAddrInput(false);
+ Toast.makeText(mainActivity(), "Cannot get ethernet info", Toast.LENGTH_LONG).show();
+ }
+ } else {
+ ip_address.setText("");
+ net_mask.setText("");
+ gate_way.setText("");
+ dns_server.setText("");
+ setRadioButton(false);
+ setAddrInput(false);
+ }
+ setButton(ethEnalbe);
+ }
+
+ private void setRadioButton(boolean enable) {
+ ip_mode.setEnabled(enable);
+ dhcp.setEnabled(enable);
+ staticip.setEnabled(enable);
+ }
+
+ private void setButton(boolean enable) {
+// mBtOk.setEnabled(enable);
+// mBtRefresh.setEnabled(enable);
+ }
+
+ private void setAddrInput(boolean enable) {
+ ip_address.setEnabled(enable);
+ net_mask.setEnabled(enable);
+ gate_way.setEnabled(enable);
+ dns_server.setEnabled(enable);
+
+ ip_address.setFocusable(enable);
+ net_mask.setFocusable(enable);
+ gate_way.setFocusable(enable);
+ dns_server.setFocusable(enable);
+
+ ip_address.setFocusableInTouchMode(enable);
+ net_mask.setFocusableInTouchMode(enable);
+ gate_way.setFocusableInTouchMode(enable);
+ dns_server.setFocusableInTouchMode(enable);
+ }
+
+
+ public static boolean ipCheck(String text) {
+ if (text != null && !text.isEmpty()) {
+ String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+ + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ + "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
+ if (text.matches(regex)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ return false;
+ }
+
+ private boolean validateDate() {// 楠岃瘉杈撳叆鐨勪俊鎭槸鍚︽纭�
+ String ip = ip_address.getText().toString();
+ if (ip.equals("") || !ipCheck(ip)) {
+ ip_address.setFocusable(true);
+ ip_address.requestFocus();
+ return false;
+ }
+ String net = net_mask.getText().toString();
+ if (net.equals("") || !ipCheck(net)) {
+ net_mask.setFocusable(true);
+ net_mask.requestFocus();
+ return false;
+ }
+ return true;
+ }
+
+ private void onBtnConfirm() {
+
+ if (staticip.isChecked()) {
+ if (!validateDate()) {
+ return;
+ }
+ String ip = ip_address.getText().toString();
+ String mask = net_mask.getText().toString();
+ String gate = gate_way.getText().toString();
+ String dns = dns_server.getText().toString();
+ mLztek.setEthIpAddress(ip, mask, gate, dns);
+ } else {
+ mLztek.setEthDhcpMode();
+ }
+ }
+
+ long lastClick = System.currentTimeMillis();
@Click
public void save() {
String secondStr = second.getSelectedItem().toString();
String alarmAudioStr = alarmAudio.getSelectedItem().toString();
+ String keepTimeStr = keepTime.getSelectedItem().toString();
+ String keepTimeTypeStr = keepTimeType.getSelectedItem().toString();
String ipStr = ip.getText().toString().trim();
String portStr = port.getText().toString().trim();
- String passwordStr = password.getText().toString().trim();
- if (passwordStr.length() == 0) {
- ToastUtil.show("瀵嗙爜涓嶈兘涓虹┖");
- return;
+ String oldPasswordStr = oldPassword.getText().toString().trim();
+ String newPasswordStr = newPassword.getText().toString().trim();
+ String newPassword2Str = newPassword2.getText().toString().trim();
+ String password = SettingManager.oldPassword();
+ if (!TextUtils.isEmpty(newPasswordStr) || !TextUtils.isEmpty(newPassword2Str) ) {
+ if (oldPasswordStr.length() == 0) {
+ ToastUtil.show("瀵嗙爜涓嶈兘涓虹┖");
+ return;
+ }
+ if(!password.equals(oldPasswordStr)) {
+ ToastUtil.show("鏃у瘑鐮佷笉姝g‘");
+ return;
+ }
+ if(!newPasswordStr.equals(newPassword2Str)) {
+ ToastUtil.show("涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�");
+ return;
+ }
+ password = newPasswordStr;
}
- if(!"basic".equals(passwordStr)) {
- ToastUtil.show("瀵嗙爜涓嶆纭�");
- return;
- }
+
if (ipStr.length() == 0) {
ToastUtil.show("IP涓嶈兘涓虹┖");
return;
@@ -150,7 +418,26 @@
ToastUtil.show("绔彛涓嶈兘涓虹┖");
return;
}
- if (SettingManager.saveSetting(secondStr, ipStr, alarmAudioStr,portStr)) {
+ if (saved) {
+ return;
+ }
+ saved = true;
+ if (Constants.NativeLib) {
+ boolean ethEnalbe = mLztek.getEthEnable();
+ if (ethEnalbe) {
+ onBtnConfirm();
+ }
+ }
+
+ Map<String, String> setting = SettingManager.findSetting();
+ setting.put(Setting.alarmAudio, alarmAudioStr);
+ setting.put(Setting.ip, ipStr);
+ setting.put(Setting.second, secondStr);
+ setting.put(Setting.port, portStr);
+ setting.put(Setting.password, password);
+ setting.put(Setting.keepTime, keepTimeStr);
+ setting.put(Setting.keepTimeType, keepTimeTypeStr);
+ if (SettingManager.saveSetting(setting)) {
mainActivity().fragment_home.setRootUrl();
SuccessDialog successDialog = new SuccessDialog(mainActivity());
successDialog.show();
@@ -164,7 +451,15 @@
@Click
public void goto_home() {
mainActivity().fragment_home.stopAllVideoPlays(null);
+ AudioPlayer.stopInNewThread(mp);
+ mp = null;
mainActivity().goto_home();
}
+ @Click
+ public void exit() {
+ android.os.Process.killProcess(android.os.Process.myPid());
+ System.exit(0);
+ }
+
}
diff --git a/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java b/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java
index 4f67b9b..0a493d6 100644
--- a/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java
+++ b/app/src/main/java/com/basic/security/fragment/helper/HomeBase.java
@@ -36,7 +36,7 @@
@ViewById
public GridView alarmListGridView;
- public MediaPlayer mp;
+
public List<Map<String, String>> sqliteAlarmList = Collections.synchronizedList(new ArrayList<Map<String, String>>());
public Lock sqliteAlarmListLock = new ReentrantLock();
diff --git a/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java b/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java
index 41e2197..1a1e71a 100644
--- a/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java
+++ b/app/src/main/java/com/basic/security/fragment/helper/HomeGridViewAdapter.java
@@ -15,6 +15,7 @@
import com.basic.security.R;
import com.basic.security.manager.AlarmManager;
+import com.basic.security.model.Alarm;
import com.basic.security.utils.KeyboardUtil;
import com.basic.security.utils.ToastUtil;
import com.basic.security.widget.CustomSpinner2;
@@ -135,19 +136,36 @@
viewHolder1.highlightBorder.setBackgroundResource(R.drawable.highlight_border);
viewHolder1.highlightShadow.setVisibility(View.VISIBLE);
}
- viewHolder.closeAlarm.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- viewHolder1.alarm.put("closeAlarm", "true");
- AlarmManager.deleteAlarm(viewHolder1.alarm);
- stopVideo(viewHolder1);
- sqliteAlarmListLock.lock();
- sqliteAlarmList.remove(viewHolder1.alarm);
- sqliteAlarmListLock.unlock();
- alarmListAdapter.notifyDataSetChanged();
- ToastUtil.show("鎶ヨ宸茬‘璁わ紒");
- }
- });
+ if ("true".equals(viewHolder1.alarm.get("canClose"))) {
+ viewHolder1.closeAlarm.setImageResource(R.drawable.u259);
+ viewHolder.closeAlarm.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ viewHolder1.alarm.put(Alarm.mute, "true");
+ viewHolder1.alarm.put("closeAlarm", "true");
+ new Thread(){
+ @Override
+ public void run() {
+ AlarmManager.deleteAlarm(viewHolder1.alarm);
+ }
+ }.start();
+ stopVideo(viewHolder1);
+ sqliteAlarmListLock.lock();
+ sqliteAlarmList.remove(viewHolder1.alarm);
+ sqliteAlarmListLock.unlock();
+ alarmListAdapter.notifyDataSetChanged();
+ ToastUtil.show("鎶ヨ宸茬‘璁わ紒");
+ }
+ });
+ } else {
+ viewHolder1.closeAlarm.setImageResource(R.drawable.u259_gray);
+ viewHolder.closeAlarm.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ }
+ });
+ }
+
viewHolder.alarmPicture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -292,35 +310,39 @@
}
}
public void goto_video_fullscreen(final AlarmListAdapter.ViewHolder viewHolder) {
- for (AlarmListAdapter.ViewHolder vh : viewHolderSet.keySet()) {
- if ("true".equals(vh.alarm.get("videoPlaying"))) {
- vh.alarmVideoOverlay.setVisibility(View.VISIBLE);
+ if ("true".equals(viewHolder.alarm.get("alarmVideoValid"))) {
+ for (AlarmListAdapter.ViewHolder vh : viewHolderSet.keySet()) {
+ if ("true".equals(vh.alarm.get("videoPlaying"))) {
+ vh.alarmVideoOverlay.setVisibility(View.VISIBLE);
+ }
}
+ new Thread(){
+ @Override
+ public void run() {
+ SystemClock.sleep(100);
+ mainActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ currentVideoPlayTimeMap.remove(viewHolder.alarm.get("id"));
+ playVideo(viewHolder);
+ if (!"true".equals(viewHolder.alarm.get("alarmVideoValid"))) {
+ ToastUtil.show("鎾斁澶辫触, 瑙嗛璺緞閿欒銆�");
+ }
+ if ("true".equals(viewHolder.alarm.get("alarmVideoValid"))) {
+ viewHolder.alarmVideo.setVisibility(View.INVISIBLE);
+ viewHolder.alarmVideoGestureOverlayView.setVisibility(View.INVISIBLE);
+ stopAllVideoPlays(viewHolder.alarmVideo);
+ mainActivity().goto_fullscreenVideoView(viewHolder.alarm.get("alarmVideo"));
+ } else {
+ ToastUtil.show("鎾斁澶辫触, 瑙嗛璺緞閿欒銆�");
+ }
+ }
+ });
+ }
+ }.start();
+ } else {
+ ToastUtil.show("鎾斁澶辫触, 瑙嗛璺緞閿欒銆�");
}
- new Thread(){
- @Override
- public void run() {
- SystemClock.sleep(100);
- mainActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- currentVideoPlayTimeMap.remove(viewHolder.alarm.get("id"));
- playVideo(viewHolder);
- if (!"true".equals(viewHolder.alarm.get("alarmVideoValid"))) {
- ToastUtil.show("鎾斁澶辫触, 瑙嗛璺緞閿欒銆�");
- }
- if ("true".equals(viewHolder.alarm.get("alarmVideoValid"))) {
- viewHolder.alarmVideo.setVisibility(View.INVISIBLE);
- viewHolder.alarmVideoGestureOverlayView.setVisibility(View.INVISIBLE);
- stopAllVideoPlays(viewHolder.alarmVideo);
- mainActivity().goto_fullscreenVideoView(viewHolder.alarm.get("alarmVideo"));
- } else {
- ToastUtil.show("鎾斁澶辫触, 瑙嗛璺緞閿欒銆�");
- }
- }
- });
- }
- }.start();
}
}
diff --git a/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java b/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java
index a2582f8..5543c34 100644
--- a/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java
+++ b/app/src/main/java/com/basic/security/fragment/helper/HomePlayAlarmSound.java
@@ -16,91 +16,151 @@
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.EFragment;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
@EFragment
public abstract class HomePlayAlarmSound extends HomeBase {
public static boolean shouldRestartSound = false;
- @Background
- public void playAlarmSound() {
- SettingManager.initMilliSecond();
- SettingManager.initAlarmAudio();
- while (true) {
- try {
- class Helper {
- public int getAlarmAudio() {
- String alarmAudio = SettingManager.alarmAudio;
- return SettingFragment.getAudioRawIndex(alarmAudio);
+ public static List<MediaPlayer> mediaPlayers = new ArrayList<>();
+ public static Lock mediaPlayersLock = new ReentrantLock();
+ public static MediaPlayer mp;
+ public static MediaPlayer playAlarm(String alarmAudio) {
+ mediaPlayersLock.lock();
+ boolean looping = true;
+ try {
+ if (mp == null ) {
+ stopAlarm();
+ mp = MediaPlayer.create(BaseApplication.getApplication().activity, SettingFragment.getAudioRawIndex(alarmAudio));
+ mp.setLooping(looping);
+ mp.start();
+ mediaPlayers.add(mp);
+ } else {
+ boolean isPlaying = false;
+ try {
+ isPlaying = mp.isPlaying();
+ } catch (Exception e) {
+ System.out.println("HomePlayAlarmSound.playAlarm " + e.getMessage());
+ }
+ if (!isPlaying || !looping || HomePlayAlarmSound.shouldRestartSound) {
+ if (HomePlayAlarmSound.shouldRestartSound) {
+ HomePlayAlarmSound.shouldRestartSound = false;
}
- public boolean shouldPlayAlarmSound(){
- boolean hasSound = false;
- boolean mutedAlarms = false;
- final Set<HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderSet =
- ((MainActivity)BaseApplication.getApplication().activity).fragment_home.viewHolderSet.keySet();
- Map<String, HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderMap = new HashMap<>();
+ stopAlarm();
+ mp = MediaPlayer.create(BaseApplication.getApplication().activity, SettingFragment.getAudioRawIndex(alarmAudio));
+ mp.setLooping(looping);
+ mp.start();
+ mediaPlayers.add(mp);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ mediaPlayersLock.unlock();
+ return mp;
+ }
- final Set<HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderMuteSet = new HashSet<>();
- sqliteAlarmListLock.lock();
- for (Map<String, String> sqliteAlarm : sqliteAlarmList) {
- long currentTime = System.currentTimeMillis();
- try{
- if ("false".equals(sqliteAlarm.get("mute"))) {
- long createTime = Long.parseLong(sqliteAlarm.get("createTime"));
- if ((currentTime - createTime) < SettingManager.milliSeconds) {
- hasSound = true;
- } else {
- mutedAlarms = true;
- sqliteAlarm.put("mute", "true");
+ public static void stopAlarm() {
+ mediaPlayersLock.lock();
+ for (MediaPlayer mediaPlayer : mediaPlayers) {
+ try {
+ mediaPlayer.stop();
+ mediaPlayer.release();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ mediaPlayers.clear();
+ mediaPlayersLock.unlock();
+ }
+
+
+ public void playAlarmSound() {
+ new Thread(){
+ @Override
+ public void run() {
+ SettingManager.initMilliSecond();
+ SettingManager.initAlarmAudio();
+ while (true) {
+ try {
+ class Helper {
+ public int getAlarmAudio() {
+ String alarmAudio = SettingManager.alarmAudio;
+ return SettingFragment.getAudioRawIndex(alarmAudio);
+ }
+ public boolean shouldPlayAlarmSound(){
+ boolean hasSound = false;
+ try {
+ boolean mutedAlarms = false;
+ final Set<HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderSet =
+ ((MainActivity)BaseApplication.getApplication().activity).fragment_home.viewHolderSet.keySet();
+ Map<String, HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderMap = new HashMap<>();
+
+ final Set<HomeGridViewAdapter.AlarmListAdapter.ViewHolder> viewHolderMuteSet = new HashSet<>();
+ sqliteAlarmListLock.lock();
+ for (Map<String, String> sqliteAlarm : sqliteAlarmList) {
+ long currentTime = System.currentTimeMillis();
+ try{
+ if ("false".equals(sqliteAlarm.get("mute"))) {
+ long createTime = Long.parseLong(sqliteAlarm.get("createTime"));
+ if ((currentTime - createTime) < SettingManager.milliSeconds) {
+ hasSound = true;
+ } else {
+ mutedAlarms = true;
+ sqliteAlarm.put("mute", "true");
// final HomeGridViewAdapter.AlarmListAdapter.ViewHolder viewHolder = viewHolderMap.get(sqliteAlarm.get("id"));
// viewHolderMuteSet.add(viewHolder);
- AlarmManager.save(sqliteAlarm);
- }
- }
- } catch (Exception e){
- e.printStackTrace();
- }
- }
- sqliteAlarmListLock.unlock();
- BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- for (final HomeGridViewAdapter.AlarmListAdapter.ViewHolder viewHolder: viewHolderSet) {
- try{
- if (viewHolder != null) {
- if ("true".equals(viewHolder.alarm.get("mute"))) {
- if (viewHolder.highlightBorder != null) {
- viewHolder.highlightBorder.setBackgroundResource(R.drawable.confirm_dialog_background);
- }
- if (viewHolder.highlightShadow != null) {
- viewHolder.highlightShadow.setVisibility(View.INVISIBLE);
- }
- if (viewHolder.toggleSound != null) {
- viewHolder.toggleSound.setImageResource(R.drawable.u258);
+ AlarmManager.save(sqliteAlarm);
}
}
+ } catch (Exception e){
+ e.printStackTrace();
}
- if (!"浜鸿劯".equals(viewHolder.alarm.get("alarmType"))) {
- if (viewHolder.showMatchPersonList.getVisibility() == View.VISIBLE) {
- viewHolder.showMatchPersonList.setVisibility(View.INVISIBLE);
- }
- } else {
- try {
- if (viewHolder.matchPersonList.getAdapter() != null) {
- if (viewHolder.matchPersonList.getAdapter().getCount() > 1) {
- viewHolder.showMatchPersonList.setVisibility(View.VISIBLE);
- } else {
- viewHolder.showMatchPersonList.setVisibility(View.INVISIBLE);
+ }
+ sqliteAlarmListLock.unlock();
+ BaseApplication.getApplication().activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ for (final HomeGridViewAdapter.AlarmListAdapter.ViewHolder viewHolder: viewHolderSet) {
+ try{
+ if (viewHolder != null) {
+ if ("true".equals(viewHolder.alarm.get("mute"))) {
+ if (viewHolder.highlightBorder != null) {
+ viewHolder.highlightBorder.setBackgroundResource(R.drawable.confirm_dialog_background);
+ }
+ if (viewHolder.highlightShadow != null) {
+ viewHolder.highlightShadow.setVisibility(View.INVISIBLE);
+ }
+ if (viewHolder.toggleSound != null) {
+ viewHolder.toggleSound.setImageResource(R.drawable.u258);
+ }
+ }
}
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
+ if (!"浜鸿劯".equals(viewHolder.alarm.get("alarmType"))) {
+ if (viewHolder.showMatchPersonList.getVisibility() == View.VISIBLE) {
+ viewHolder.showMatchPersonList.setVisibility(View.INVISIBLE);
+ }
+ } else {
+ try {
+ if (viewHolder.matchPersonList.getAdapter() != null) {
+ if (viewHolder.matchPersonList.getAdapter().getCount() > 1) {
+ viewHolder.showMatchPersonList.setVisibility(View.VISIBLE);
+ } else {
+ viewHolder.showMatchPersonList.setVisibility(View.INVISIBLE);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
// String[] matchPersonArray = null;
// String matchPersonListStr = viewHolder.alarm.get("matchPersonListStr");
@@ -114,52 +174,34 @@
// viewHolder.showMatchPersonList.setVisibility(View.VISIBLE);
// }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
- } catch (Exception e) {
- e.printStackTrace();
- }
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return hasSound;
+ }
+ public void execute() {
+ if (shouldPlayAlarmSound()) {
+ playAlarm(SettingManager.alarmAudio);
+ } else {
+ stopAlarm();
}
}
- });
-
-// if (mutedAlarms) {
-// refreshGridView();
-// }
- return hasSound;
- }
- public void execute() {
- if (shouldPlayAlarmSound()) {
- mp = AudioPlayer.play(mp, SettingManager.alarmAudio, true);
-// if (mp == null ) {
-// mp = MediaPlayer.create(mainActivity(), getAlarmAudio());
-// mp.setLooping(true);
-// mp.start();
-// } else {
-// if (!mp.isPlaying()) {
-// mp.stop();
-// mp.release();
-// mp = MediaPlayer.create(mainActivity(), getAlarmAudio());
-// mp.setLooping(true);
-// mp.start();
-// }
-// }
- } else {
- AudioPlayer.stop(mp);
-// if (mp != null && mp.isPlaying()) {
-// mp.stop();
-// mp.release();
-// mp = null;
-// }
- mp = null;
}
+ new Helper().execute();
+ SystemClock.sleep(500);
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
- new Helper().execute();
- SystemClock.sleep(500);
- } catch (Exception e) {
- e.printStackTrace();
}
- }
- }
+ }.start();
+ }
}
diff --git a/app/src/main/java/com/basic/security/manager/AlarmManager.java b/app/src/main/java/com/basic/security/manager/AlarmManager.java
index a918c4b..e25eb0b 100644
--- a/app/src/main/java/com/basic/security/manager/AlarmManager.java
+++ b/app/src/main/java/com/basic/security/manager/AlarmManager.java
@@ -4,6 +4,7 @@
import com.basic.security.dao.DatabaseManager;
import com.basic.security.dao.SqliteManager;
+import com.basic.security.model.Alarm;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -99,10 +100,21 @@
} else {
sqliteAlarmList.addAll(dbSqliteAlarmList);
}
+ long keepStartTime = SettingManager.getKeepStartTime();
for (Map<String, String> alarm : sqliteAlarmList) {
String alarmVideo = alarm.get("alarmVideo");
String alarmPicture = alarm.get("alarmPicture");
String alarmLargePicture = alarm.get("alarmLargePicture");
+ String alarmTimeStr = alarm.get(Alarm.alarmTime);
+ long alarmTime = new Date().getTime();
+ if (alarmTimeStr != null && alarmTimeStr.length() > "yyyy-MM-dd HH:mm:ss".length()) {
+ alarmTimeStr = alarmTimeStr.substring(0, "yyyy-MM-dd HH:mm:ss".length());
+ }
+ try {
+ alarmTime = sdf.parse(alarmTimeStr).getTime();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
if (alarmVideo != null && alarmVideo.startsWith("http:")) {
alarm.put("alarmVideoValid", "true");
@@ -119,6 +131,11 @@
} else {
alarm.put("alarmLargePictureValid", "false");
}
+ if (alarmTime < keepStartTime ) {
+ alarm.put("canClose", "true");
+ } else {
+ alarm.put("canClose", "false");
+ }
}
return sqliteAlarmList;
}
diff --git a/app/src/main/java/com/basic/security/manager/SettingManager.java b/app/src/main/java/com/basic/security/manager/SettingManager.java
index 5f6f562..495d3d3 100644
--- a/app/src/main/java/com/basic/security/manager/SettingManager.java
+++ b/app/src/main/java/com/basic/security/manager/SettingManager.java
@@ -3,43 +3,60 @@
import android.content.SharedPreferences;
import com.basic.security.base.BaseApplication;
+import com.basic.security.dao.SqliteManager;
import com.basic.security.fragment.SettingFragment;
+import com.basic.security.model.Setting;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
import static android.content.Context.MODE_PRIVATE;
-public class SettingManager {
+public class SettingManager extends SqliteManager {
public static long milliSeconds = 10*1000;
public static String alarmAudio;
- public static boolean saveSetting(String secondStr, String ipStr, String alarmAudioStr, String portStr) {
- SharedPreferences.Editor editor = BaseApplication.getApplication().activity.getSharedPreferences("setting", MODE_PRIVATE).edit();
- editor.putString("second", secondStr);
- editor.putString("alarmAudio", alarmAudioStr);
- editor.putString("ip", ipStr);
- editor.putString("port", portStr);
- editor.apply();
+ public static Map<String, String> findSetting() {
+ Map<String, String> setting = findById(Setting.table, "1");
+ if (setting == null) {
+ setting = new HashMap<>();
+ setting.put(Setting.id , "1");
+ setting.put(Setting.port, "53692");
+ setting.put(Setting.ip, "58.118.225.79");
+ setting.put(Setting.second, "10");
+ setting.put(Setting.alarmAudio, SettingFragment.alarmAudioArray[0]);
+ setting.put(Setting.keepTime, SettingFragment.keepTimeArray[0]);
+ setting.put(Setting.keepTimeType, SettingFragment.keepTimeTypeArray[0]);
+ setting.put(Setting.password, "basic");
+ setting.put("table", Setting.table);
+ save(setting);
+ }
+ return setting;
+ }
+
+ public static boolean saveSetting(Map<String, String> setting) {
+ setting.put(Setting.id, "1");
+ setting.put("table", Setting.table);
+
+ save(setting);
initMilliSecond();
initAlarmAudio();
return true;
}
public static String getSecondStr() {
- SharedPreferences prefs = BaseApplication.getApplication().activity.getSharedPreferences("setting", MODE_PRIVATE);
- String second = prefs.getString("second", "10");
- return second;
+ return findSetting().get(Setting.second);
}
public static String getIpStr() {
- SharedPreferences prefs = BaseApplication.getApplication().activity.getSharedPreferences("setting", MODE_PRIVATE);
- String ip = prefs.getString("ip", "192.168.1.124");
- return ip;
+ return findSetting().get(Setting.ip);
}
public static String getPortStr() {
- SharedPreferences prefs = BaseApplication.getApplication().activity.getSharedPreferences("setting", MODE_PRIVATE);
- String prot = prefs.getString("port", "6000");
- return prot;
+ return findSetting().get(Setting.port);
}
public static int getPort() {
@@ -74,8 +91,40 @@
}
public static String getAlarmAudioStr() {
- SharedPreferences prefs = BaseApplication.getApplication().activity.getSharedPreferences("setting", MODE_PRIVATE);
- String alarmAudio = prefs.getString("alarmAudio", SettingFragment.alarmAudioArray[0]);
- return alarmAudio;
+ return findSetting().get(Setting.alarmAudio);
+ }
+
+ public static String getKeepTime() {
+ return findSetting().get(Setting.keepTime);
+ }
+
+
+ public static String getKeepTimeType() {
+ return findSetting().get(Setting.keepTimeType);
+ }
+
+ public static String oldPassword() {
+ String password = findSetting().get(Setting.password);
+ System.out.println("oldPassword="+password);
+ return password;
+ }
+
+ public static long getKeepStartTime() {
+ Calendar cal = Calendar.getInstance();
+
+ try {
+ Map<String, String> setting = findSetting();
+ String keepTimeType = setting.get(Setting.keepTimeType);
+ int keepTime = Integer.parseInt(setting.get(Setting.keepTime));
+ if ("鏈�".equals(keepTimeType)) {
+ cal.add(Calendar.MONTH, -1*keepTime);
+ }
+ if ("鍛�".equals(keepTimeType)) {
+ cal.add(Calendar.DATE, -1*keepTime*7);
+ }
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ return cal.getTime().getTime();
}
}
diff --git a/app/src/main/java/com/basic/security/model/Alarm.java b/app/src/main/java/com/basic/security/model/Alarm.java
new file mode 100644
index 0000000..97f4418
--- /dev/null
+++ b/app/src/main/java/com/basic/security/model/Alarm.java
@@ -0,0 +1,19 @@
+package com.basic.security.model;
+
+public class Alarm {
+ public static String id = "id";
+ public static String matchPersonListStr = "matchPersonListStr";
+ public static String property = "property";
+ public static String alarmLargePicture = "alarmLargePicture";
+ public static String alarmPerson = "alarmPerson";
+ public static String alarmPicture = "alarmPicture";
+ public static String alarmVideo = "alarmVideo";
+ public static String alarmTime = "alarmTime";
+ public static String alarmAddress = "alarmAddress";
+ public static String alarmType = "alarmType";
+ public static String createTime = "createTime";
+ public static String closeAlarm = "closeAlarm";
+ public static String mute = "mute";
+ public static String table = "Alarm";
+
+}
diff --git a/app/src/main/java/com/basic/security/model/Setting.java b/app/src/main/java/com/basic/security/model/Setting.java
new file mode 100644
index 0000000..b206737
--- /dev/null
+++ b/app/src/main/java/com/basic/security/model/Setting.java
@@ -0,0 +1,15 @@
+package com.basic.security.model;
+
+public class Setting {
+
+ public static String id = "id";
+ public static String second = "second";
+ public static String ip = "ip";
+ public static String port = "port";
+ public static String alarmAudio = "alarmAudio";
+ public static String keepTime = "keepTime";
+ public static String keepTimeType = "keepTimeType";
+ public static String password = "password";
+ public static String table = "Setting";
+
+}
diff --git a/app/src/main/java/com/basic/security/utils/AudioPlayer.java b/app/src/main/java/com/basic/security/utils/AudioPlayer.java
index 1c898e5..898719a 100644
--- a/app/src/main/java/com/basic/security/utils/AudioPlayer.java
+++ b/app/src/main/java/com/basic/security/utils/AudioPlayer.java
@@ -9,6 +9,7 @@
public class AudioPlayer {
+
public static MediaPlayer play(MediaPlayer mp, String alarmAudio, boolean looping) {
try {
if (mp == null ) {
diff --git a/app/src/main/java/com/basic/security/utils/Constants.java b/app/src/main/java/com/basic/security/utils/Constants.java
index 1dad2f6..f984f1a 100644
--- a/app/src/main/java/com/basic/security/utils/Constants.java
+++ b/app/src/main/java/com/basic/security/utils/Constants.java
@@ -1,6 +1,9 @@
package com.basic.security.utils;
public class Constants {
- public static String databaseName = "alarm.db";
- public static boolean printSql = false;
+ public static String databaseName = "/sdcard/alarm.db";
+ public static boolean printSql = true;
+ public static boolean autoRestart = false;
+
+ public static boolean NativeLib = false;
}
diff --git a/app/src/main/java/com/basic/security/utils/CrashHandler.java b/app/src/main/java/com/basic/security/utils/CrashHandler.java
index 0a1829e..6d43e8f 100644
--- a/app/src/main/java/com/basic/security/utils/CrashHandler.java
+++ b/app/src/main/java/com/basic/security/utils/CrashHandler.java
@@ -15,9 +15,14 @@
import com.basic.security.activity.MainActivity_;
import com.basic.security.base.BaseApplication;
+import com.facebook.common.file.FileUtils;
+
+import org.springframework.util.FileCopyUtils;
+import org.xutils.common.util.FileUtil;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.FileReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
@@ -48,7 +53,7 @@
private Map<String, String> infos = new HashMap<String, String>();
// 鐢ㄤ簬鏍煎紡鍖栨棩鏈�,浣滀负鏃ュ織鏂囦欢鍚嶇殑涓�閮ㄥ垎
- private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ private static DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
/**
* 淇濊瘉鍙湁涓�涓狢rashHandler瀹炰緥
@@ -99,17 +104,20 @@
e.printStackTrace();
}
try {
- new Thread() {
+ if (Constants.autoRestart) {
+ new Thread() {
- @Override
- public void run() {
- Intent intent = new Intent(mContext, MainActivity_.class);
- PendingIntent restartIntent = PendingIntent.getActivity(mContext, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
- AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
- mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- }.start();
+ @Override
+ public void run() {
+ Intent intent = new Intent(mContext, MainActivity_.class);
+ PendingIntent restartIntent = PendingIntent.getActivity(mContext, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
+ AlarmManager mgr = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
+ mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+ }.start();
+ }
+
} catch (Exception e) {
e.printStackTrace();
}
@@ -208,6 +216,26 @@
return fileName;
}
+
+ public static String getErrorContent() {
+ String time = formatter.format(new Date());
+ String fileName = "crash-" + time + ".log";
+ String content = "";
+ try {
+ String path = getGlobalpath();
+ File dir = new File(path);
+ if (!dir.exists())
+ dir.mkdirs();
+ File file = new File(path+fileName);
+ if (file.exists()) {
+ content = FileCopyUtils.copyToString(new FileReader(file));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return content;
+ }
+
public static String getGlobalpath() {
return BaseApplication.getApplication().getFilesDir().getAbsolutePath();
// return Environment.getExternalStorageDirectory().getAbsolutePath()
diff --git a/app/src/main/java/com/basic/security/utils/IpUtils.java b/app/src/main/java/com/basic/security/utils/IpUtils.java
new file mode 100644
index 0000000..9f2d768
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/IpUtils.java
@@ -0,0 +1,84 @@
+package com.basic.security.utils;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
+
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.util.Enumeration;
+
+public class IpUtils {
+ /**
+ * 鑾峰彇鏈満璁惧Ip
+ * @param context
+ * @return
+ */
+ public static String getIpAddress(Context context) {
+ NetworkInfo info = ((ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
+ if (info != null && info.isConnected()) {
+ // 3/4g缃戠粶
+ if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
+ try {
+ for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
+ NetworkInterface intf = en.nextElement();
+ for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
+ InetAddress inetAddress = enumIpAddr.nextElement();
+ if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
+ return inetAddress.getHostAddress();
+ }
+ }
+ }
+ } catch (SocketException e) {
+ e.printStackTrace();
+ }
+
+ } else if (info.getType() == ConnectivityManager.TYPE_WIFI) {
+ // wifi缃戠粶
+ WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());
+ return ipAddress;
+ } else if (info.getType() == ConnectivityManager.TYPE_ETHERNET) {
+ // 鏈夐檺缃戠粶
+ return getLocalIp();
+ }
+ }
+ return null;
+ }
+
+ private static String intIP2StringIP(int ip) {
+ return (ip & 0xFF) + "." +
+ ((ip >> 8) & 0xFF) + "." +
+ ((ip >> 16) & 0xFF) + "." +
+ (ip >> 24 & 0xFF);
+ }
+
+
+ // 鑾峰彇鏈夐檺缃慖P
+ private static String getLocalIp() {
+ try {
+ for (Enumeration<NetworkInterface> en = NetworkInterface
+ .getNetworkInterfaces(); en.hasMoreElements(); ) {
+ NetworkInterface intf = en.nextElement();
+ for (Enumeration<InetAddress> enumIpAddr = intf
+ .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
+ InetAddress inetAddress = enumIpAddr.nextElement();
+ if (!inetAddress.isLoopbackAddress()
+ && inetAddress instanceof Inet4Address) {
+ return inetAddress.getHostAddress();
+ }
+ }
+ }
+ } catch (SocketException ex) {
+
+ }
+ return "0.0.0.0";
+
+ }
+}
diff --git a/app/src/main/java/com/basic/security/utils/JnanomsgServer.java b/app/src/main/java/com/basic/security/utils/JnanomsgServer.java
new file mode 100644
index 0000000..e5fb418
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/JnanomsgServer.java
@@ -0,0 +1,54 @@
+package com.basic.security.utils;
+
+//import nanomsg.reqrep.RepSocket;
+//import nanomsg.reqrep.ReqSocket;
+//
+//public class JnanomsgServer {
+// private static String url = "tcp://0.0.0.0:7789";
+//
+// public static void main(String[] args) {
+// receive();
+//// send();
+// }
+// public static void receive() {
+// System.out.println("JnanomsgServer.receive");
+// final RepSocket socket = new RepSocket();
+// socket.setRecvTimeout(-1);
+// socket.bind(url);
+// new Thread(new Runnable() {
+// public void run() {
+// while (true) {
+// try {
+// System.out.println( "received:" + socket.recvString()); // 闃诲socket锛岀洿鍒拌秴鏃舵垨鑰呮湁鍝嶅簲
+// Thread.sleep(1000);
+// socket.send("received");
+//
+// } catch (Exception e) { // 蹇界暐瓒呮椂
+//// e.printStackTrace();
+// System.out.println(e.getMessage());
+// }
+// }
+// }
+// }).start();
+// }
+//
+//// private static void send() {
+//// final ReqSocket socket = new ReqSocket();
+//// socket.connect(url);
+//// new Thread(new Runnable() {
+//// public void run() {
+//// while (true) {
+//// try {
+//// socket.send("hello");
+//// Thread.sleep(1000);
+//// System.out.println( "node0:" + socket.recvString()); // 闃诲socket锛岀洿鍒拌秴鏃舵垨鑰呮湁鍝嶅簲
+//// } catch (InterruptedException e) {
+//// e.printStackTrace();
+//// } catch (Exception e) {
+//// // e.printStackTrace();
+//// }
+//// }
+//// }
+//// }).start();
+//// }
+//}
\ No newline at end of file
diff --git a/app/src/main/java/com/basic/security/utils/KeyboardUtil.java b/app/src/main/java/com/basic/security/utils/KeyboardUtil.java
index 341b5a2..26b3f07 100644
--- a/app/src/main/java/com/basic/security/utils/KeyboardUtil.java
+++ b/app/src/main/java/com/basic/security/utils/KeyboardUtil.java
@@ -29,6 +29,7 @@
if (!(view instanceof EditText)) {
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
+ System.out.println("KeyboardUtil.onTouch setOnTouchListener view="+v);
KeyboardUtil.hideSoftKeyboard();
return false;
}
@@ -56,4 +57,5 @@
}
}
+
}
diff --git a/app/src/main/java/com/basic/security/utils/LztekAndroidRoot.java b/app/src/main/java/com/basic/security/utils/LztekAndroidRoot.java
new file mode 100644
index 0000000..80a885c
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/LztekAndroidRoot.java
@@ -0,0 +1,54 @@
+package com.basic.security.utils;
+
+public class LztekAndroidRoot{
+/* It is sample code for Lztek Android 7.1 and 8.1 root
+
+ */
+ public static void SafeClose(java.io.Closeable closeable) {
+ if (null != closeable) {
+ try {
+ closeable.close();
+ } catch (java.io.IOException e) {
+ }
+ }
+ }
+
+ /* The command sequence is like "su root chmod 666 /dev/i2c-1".
+ * Each command should be executed in this strange way :-)
+ */
+
+ public static String SuExec(String command, java.io.File workingDirectory) {
+ if (null == command || (command=command.trim()).length() == 0) {
+ return null;
+ }
+ if (null == workingDirectory) {
+ workingDirectory = new java.io.File("/");
+ }
+ java.io.OutputStream out = null;
+ java.io.InputStream in = null;
+ java.io.InputStream err = null;
+ try {
+ Runtime runtime = Runtime.getRuntime();
+ Process process = runtime.exec("su root " + command, null, workingDirectory);
+ StringBuffer inString = new StringBuffer();
+ StringBuffer errString = new StringBuffer();
+ out = process.getOutputStream();
+
+ in = process.getInputStream();
+ err = process.getErrorStream();
+ while (in.available() > 0) {
+ inString.append((char)in.read());
+ }
+ while (err.available() > 0) {
+ errString.append((char)err.read());
+ }
+ return inString.toString();
+ } catch (Exception ioex) {
+ return null;
+ } finally {
+ SafeClose(out);
+ SafeClose(in);
+ SafeClose(err);
+ }
+ }
+}
diff --git a/app/src/main/java/com/basic/security/utils/PermissionHelper.java b/app/src/main/java/com/basic/security/utils/PermissionHelper.java
new file mode 100644
index 0000000..a1d0fef
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/PermissionHelper.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2018 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.basic.security.utils;
+
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.provider.Settings;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+import android.widget.Toast;
+
+/**
+ * Helper class for handling dangerous permissions for Android API level >= 23 which
+ * requires user consent at runtime to access the camera.
+ */
+public class PermissionHelper {
+ public static final int RC_PERMISSION_REQUEST = 9222;
+ public static boolean hasCameraPermission(Activity activity) {
+ return ContextCompat.checkSelfPermission(activity,
+ Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
+ }
+ public static boolean hasWriteStoragePermission(Activity activity) {
+ return ContextCompat.checkSelfPermission(activity,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED;
+ }
+ public static void requestCameraPermission(Activity activity, boolean requestWritePermission) {
+
+ boolean showRationale = ActivityCompat.shouldShowRequestPermissionRationale(activity,
+ Manifest.permission.CAMERA) || (requestWritePermission &&
+ ActivityCompat.shouldShowRequestPermissionRationale(activity,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE));
+ if (showRationale) {
+ Toast.makeText(activity,
+ "Camera permission is needed to run this application", Toast.LENGTH_LONG).show();
+ } else {
+
+ // No explanation needed, we can request the permission.
+
+ String permissions[] = requestWritePermission ? new String[]{Manifest.permission.CAMERA,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE}: new String[]{Manifest.permission.CAMERA};
+ ActivityCompat.requestPermissions(activity,permissions,RC_PERMISSION_REQUEST);
+ }
+ }
+
+ public static void requestWriteStoragePermission(Activity activity) {
+ boolean showRationale = ActivityCompat.shouldShowRequestPermissionRationale(activity,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE);
+ if (showRationale) {
+ Toast.makeText(activity,
+ "Writing to external storage permission is needed to run this application",
+ Toast.LENGTH_LONG).show();
+ } else {
+
+ // No explanation needed, we can request the permission.
+
+ String permissions[] = new String[]{ Manifest.permission.WRITE_EXTERNAL_STORAGE};
+
+ ActivityCompat.requestPermissions(activity,permissions,RC_PERMISSION_REQUEST);
+ }
+ }
+
+ /** Launch Application Setting to grant permission. */
+ public static void launchPermissionSettings(Activity activity) {
+ Intent intent = new Intent();
+ intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ intent.setData(Uri.fromParts("package", activity.getPackageName(), null));
+ activity.startActivity(intent);
+ }
+
+}
diff --git a/app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java b/app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java
new file mode 100644
index 0000000..a14d934
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/SocketAcceptedClient.java
@@ -0,0 +1,178 @@
+package com.basic.security.utils;
+import android.os.SystemClock;
+import android.text.TextUtils;
+
+import com.basic.security.activity.MainActivity;
+import com.basic.security.base.BaseApplication;
+import com.basic.security.manager.AlarmManager;
+import com.basic.security.utils.Constants;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+import com.google.gson.JsonParser;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+public class SocketAcceptedClient extends Thread {
+
+ Socket mSocket;
+ byte[] buff = new byte[1*1024*1024];
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ public static boolean needRestart = false;
+ List<Map<String, String>> newRemoteAlarmList = null;
+
+ private static final int MAX_BUFFER = 15;
+
+ private static LinkedList<byte[]> mRgbCameraQueue = new LinkedList<byte[]>();
+
+ public SocketAcceptedClient(Socket client) {
+ mSocket = client;
+ }
+
+ public Comparator<Map<String, String>> mapComparator = new Comparator<Map<String, String>>() {
+ public int compare(Map<String, String> m1, Map<String, String> m2) {
+ try {
+ double score1 = Double.parseDouble(m1.get("likePer"));
+ double score2 = Double.parseDouble(m2.get("likePer"));
+ return (int)(score1 - score2);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+ };
+
+ public void parseJson(String msg) {
+
+ JsonParser parser = new JsonParser();
+ boolean isJSON = true;
+ JsonElement element = null;
+ try {
+ element = parser.parse(msg);
+ } catch (JsonParseException e) {
+ System.out.println("exception: "+ msg + " " + e);
+ isJSON = false;
+ }
+ newRemoteAlarmList = new ArrayList<>();
+ if (isJSON && element != null) {
+ Object obj = element.getAsJsonObject();
+ JsonArray dataList = (JsonArray) ((JsonObject) obj).get("datalist");
+ for (int i = 0; i < dataList.size(); i++) {
+ JsonObject je = (JsonObject)dataList.get(i);
+ Map<String, String> newRemoteAlarm = new HashMap<>();
+ for(Map.Entry<String, JsonElement> entry : je.entrySet()) {
+ Object value = entry.getValue();
+ String key = entry.getKey();
+ if (value != null) {
+ if ("baseInfo".equals(key)) {
+ List<Map<String, String>> matchPersonMapList = new ArrayList<>();
+ List<String> matchPersonStrList = new ArrayList<>();
+ String matchPersonListStr = "";
+ if (value instanceof JsonArray) {
+ JsonArray matchPersonList = (JsonArray)value;
+ for (int ii = 0; ii < matchPersonList.size(); ii++ ) {
+ JsonObject matchPerson = (JsonObject)matchPersonList.get(ii);
+ Map<String, String> matchPersonMap = new HashMap<>();
+
+ for(Map.Entry<String, JsonElement> matchPersonEntry : matchPerson.entrySet()) {
+ String matchPersonKey = matchPersonEntry.getKey();
+ Object matchPersonValue = matchPersonEntry.getValue();
+ if (matchPersonValue != null) {
+ String matchPersonValueStr = matchPersonValue.toString();
+ if (matchPersonValueStr.startsWith("\"")) {
+ matchPersonValueStr = matchPersonValueStr.substring(1);
+ }
+ if (matchPersonValueStr.endsWith("\"")) {
+ matchPersonValueStr = matchPersonValueStr.substring(0, matchPersonValueStr.length() - 1);
+ }
+ matchPersonMap.put(matchPersonKey, matchPersonValueStr);
+ } else {
+ matchPersonMap.put(matchPersonKey, "");
+ }
+ }
+ matchPersonMap.put("mathPersonStr", matchPersonMap.get("tableName")+ " " + matchPersonMap.get("personName"));
+ matchPersonMapList.add(matchPersonMap);
+ }
+ Collections.sort(matchPersonMapList, mapComparator);
+ for (Map<String, String> matchPersonMap : matchPersonMapList) {
+ matchPersonStrList.add(matchPersonMap.get("mathPersonStr"));
+ }
+ matchPersonListStr = TextUtils.join("`", matchPersonStrList);
+ }
+ newRemoteAlarm.put("matchPersonListStr", matchPersonListStr);
+ } else {
+ newRemoteAlarm.put(entry.getKey(), value.toString());
+ }
+ }
+ }
+ newRemoteAlarmList.add(newRemoteAlarm);
+ }
+//
+ if (newRemoteAlarmList != null && newRemoteAlarmList.size() > 0) {
+// System.out.println("receive");
+// if (1==1) {
+// return;
+// }
+ AlarmManager.renameKeys(newRemoteAlarmList);
+ if (AlarmManager.saveRemoteAlarmListToSqlite(newRemoteAlarmList) > 0) {
+ ((MainActivity) BaseApplication.getApplication().activity).fragment_home.refreshGridView();
+ }
+ } else {
+ if (((MainActivity)BaseApplication.getApplication().activity).currentFragment ==
+ ((MainActivity)BaseApplication.getApplication().activity).fragment_home) {
+ ToastUtil.show("鑾峰彇鎶ヨ鏁版嵁澶辫触");
+ }
+ }
+ }
+ }
+
+ @Override
+ public void run() {
+ try {
+ BufferedOutputStream outputStream = new BufferedOutputStream(mSocket.getOutputStream());
+ BufferedInputStream inputStream = new BufferedInputStream(mSocket.getInputStream());
+ String msg = "";
+ int len = 0;
+ while ((len = inputStream.read(buff)) != -1) {
+ for (int i1 = 0; i1 <len; i1++) {
+ if (buff[i1] == '\0') {
+ try {
+ byte[] msgBuf = byteArrayOutputStream.toByteArray();
+ byteArrayOutputStream.reset();
+ msg = new String(msgBuf, 0, msgBuf.length);
+ msg = msg.substring(0, msg.lastIndexOf("}") + 1);
+ System.out.println("msg="+msg);
+ if (msg.length() > 3) {
+ parseJson(msg);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ } else {
+ byteArrayOutputStream.write(buff[i1]);
+ }
+ }
+ if (needRestart) {
+ needRestart = false;
+ break;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/basic/security/utils/SocketClient.java b/app/src/main/java/com/basic/security/utils/SocketClient.java
index a2aac19..d1c6353 100644
--- a/app/src/main/java/com/basic/security/utils/SocketClient.java
+++ b/app/src/main/java/com/basic/security/utils/SocketClient.java
@@ -20,6 +20,7 @@
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
+import java.io.InterruptedIOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
@@ -28,9 +29,10 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
public class SocketClient extends Thread {
- Socket socket;
private String ip;
private int port;
@@ -53,6 +55,11 @@
return 0;
}
};
+
+ public native void setup(String ip, int port);
+ public native String receive();
+
+ public static long lastUpdateTime = System.currentTimeMillis();
public void parseJson(String msg) {
@@ -139,67 +146,127 @@
}
List<Map<String, String>> newRemoteAlarmList = null;
+
+ public Socket socket = null;
+ byte[] buff = new byte[1*1024*1024];
@Override
public void run() {
super.run();
BufferedInputStream inputStream = null;
BufferedOutputStream outputStream = null;
- Socket socket = null;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
String msg = null;
try {
while (true) {
- try {
- if (1!=1) {
- msg = "{ \t\"datalist\": [ \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"8a769d1c-886c-487c-a934-e92b09d8f189\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典腑鍚戜笢 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:26\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6n2AFGElABQIY3pylXU412.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典腑鍚戜笢 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid3\" \t\t}, \t\t{ \t\t\t\"ID\": \"68a6fe5c-1cb1-4e3c-bc4a-22d678f76e8d\", \t\t\t\"IDCard\": [ \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\", \t\t\t\t\"54319001310104514563\", \t\t\t\t\"54319001100121231977\", \t\t\t\t\"54319001202319872643\", \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\" \t\t\t], \t\t\t\"ageDescription\": \"闈掑勾\", \t\t\t\"baseInfo\": [ \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"43\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"80a5935d-c6b4-4678-9c76-a6b01c07725b\", \t\t\t\t\t\"tableName\": \"搴曞簱124\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"41\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"5a544e15-2c40-4e54-a12b-f6a0f71f3fbd\", \t\t\t\t\t\"tableName\": \"搴曞簱123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001310104514563\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"78\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"83a42f98-ad21-466f-97aa-24bff1b0340f\", \t\t\t\t\t\"personName\": \"榛勯楦縗", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbb19faece3\", \t\t\t\t\t\"phoneNum\": \"11067854653\", \t\t\t\t\t\"tableId\": \"0cb7f275-9fb3-434e-9122-e59f551443ea\", \t\t\t\t\t\"tableName\": \"搴曞簱123412\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001100121231977\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"20\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"fed7b71c-d5eb-4feb-86d9-0522d7034412\", \t\t\t\t\t\"personName\": \"鏉庨�嶉仴\", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/11,06dfb71c698169\", \t\t\t\t\t\"phoneNum\": \"11012344321\", \t\t\t\t\t\"tableId\": \"f008bf89-9406-490d-868b-6dd679cae954\", \t\t\t\t\t\"tableName\": \"鍚屾搴�2\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"40\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"ce228150-448b-4e70-9b08-374ed7c5bc3e\", \t\t\t\t\t\"tableName\": \"123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"86\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"af6dd3b3-dc94-42ee-8347-f12214c2562f\", \t\t\t\t\t\"tableName\": \"鍚屾搴�3\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"66\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"2e0640d0-33e5-45e6-b024-3fe165c6f9e9\", \t\t\t\t\t\"tableName\": \"娴嬭瘯搴曞簱鍚嶇О瓒呴暱瀛楁暟娴嬭瘯\" \t\t\t\t} \t\t\t], \t\t\t\"content\": \"\", \t\t\t\"gender\": \"鐢穃", \t\t\t\"id\": \"68a6fe5c-1cb1-4e3c-bc4a-22d678f76e8d\", \t\t\t\"indeviceName\": \"瑙嗛鍒嗘瀽璁惧244\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"娴嬭瘯鍦板潃\", \t\t\t\"picDate\": \"2019-05-17 12:19:21\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/6A/rBEy8VzbhTaABvYpAAgn7hKYC2g311.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group2/M00/00/B4/rBEy9Fx1Bn2ASQ6FAABDPo9CwFw073.jpg\", \t\t\t\"race\": \"榛勪汉\", \t\t\t\"sdkType\": \"浜鸿劯\", \t\t\t\"taskName\": \"run\", \t\t\t\"videoIp\": \"172.17.50.244\", \t\t\t\"videoNum\": \"http://192.168.1.203:9600/12,017dae9d21ac08\", \t\t\t\"videoReqNum\": \"cid3\" \t\t}, \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"fea3e88f-a2c4-4a07-a19d-89c336f446ee\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:21\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6Y-AORXtABZqoERSp9I640.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid2\" \t\t}, \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"5fa82d38-b725-45dc-907e-a7ee0ad3e803\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:16\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6Y2AHleCABVr-OZBNps388.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid1\" \t\t}, \t\t{ \t\t\t\"ID\": \"3bce3eef-2062-456e-b5cb-d1a4cc63c158\", \t\t\t\"IDCard\": [ \t\t\t\t\"54319001202319872643\", \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\", \t\t\t\t\"54319001310104514563\", \t\t\t\t\"54319001100121231977\", \t\t\t\t\"54319001202319872643\" \t\t\t], \t\t\t\"ageDescription\": \"闈掑勾\", \t\t\t\"baseInfo\": [ \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"3\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"2e0640d0-33e5-45e6-b024-3fe165c6f9e9\", \t\t\t\t\t\"tableName\": \"娴嬭瘯搴曞簱鍚嶇О瓒呴暱瀛楁暟娴嬭瘯\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"31\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"80a5935d-c6b4-4678-9c76-a6b01c07725b\", \t\t\t\t\t\"tableName\": \"搴曞簱124\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"1\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"5a544e15-2c40-4e54-a12b-f6a0f71f3fbd\", \t\t\t\t\t\"tableName\": \"搴曞簱123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001310104514563\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"1\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"83a42f98-ad21-466f-97aa-24bff1b0340f\", \t\t\t\t\t\"personName\": \"榛勯楦縗", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbb19faece3\", \t\t\t\t\t\"phoneNum\": \"11067854653\", \t\t\t\t\t\"tableId\": \"0cb7f275-9fb3-434e-9122-e59f551443ea\", \t\t\t\t\t\"tableName\": \"搴曞簱123412\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001100121231977\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"48\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"fed7b71c-d5eb-4feb-86d9-0522d7034412\", \t\t\t\t\t\"personName\": \"鏉庨�嶉仴\", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/11,06dfb71c698169\", \t\t\t\t\t\"phoneNum\": \"11012344321\", \t\t\t\t\t\"tableId\": \"f008bf89-9406-490d-868b-6dd679cae954\", \t\t\t\t\t\"tableName\": \"鍚屾搴�2\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"97\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"ce228150-448b-4e70-9b08-374ed7c5bc3e\", \t\t\t\t\t\"tableName\": \"123\" \t\t\t\t} \t\t\t], \t\t\t\"content\": \"\", \t\t\t\"gender\": \"鐢穃", \t\t\t\"id\": \"3bce3eef-2062-456e-b5cb-d1a4cc63c158\", \t\t\t\"indeviceName\": \"瑙嗛鍒嗘瀽璁惧244\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"娴嬭瘯鍦板潃\", \t\t\t\"picDate\": \"2019-05-17 12:19:16\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/6A/rBEy8VzbhTaABvYpAAgn7hKYC2g311.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group2/M00/00/B4/rBEy9Fx1Bn-AS7idAAAgkMt8drY443.jpg\", \t\t\t\"race\": \"榛戜汉\", \t\t\t\"sdkType\": \"浜鸿劯\", \t\t\t\"taskName\": \"face\", \t\t\t\"videoIp\": \"172.17.50.244\", \t\t\t\"videoNum\": \"http://192.168.1.203:9600/12,017dae9d21ac08\", \t\t\t\"videoReqNum\": \"cid2\" \t\t} \t], \t\"total\": 5 }";
- parseJson(msg);
- SystemClock.sleep(2000);
- continue;
- }
- ip = SettingManager.getIpStr();
- port = SettingManager.getPort();
- socket = new Socket();
- socket.connect(new InetSocketAddress(ip, port), 3000);
-// socket.connect(new InetSocketAddress(ip, 7000), 3000);
- inputStream = new BufferedInputStream(socket.getInputStream());
- outputStream = new BufferedOutputStream(socket.getOutputStream());
-
- byte[] buff = new byte[10*1024*1024];
- int len = 0;
- while ((len = inputStream.read(buff)) != -1) {
- for (int i1 = 0; i1 <len; i1++) {
- if (buff[i1] == '\0') {
- byte[] msgBuf = byteArrayOutputStream.toByteArray();
- msg = new String(msgBuf, 0, msgBuf.length);
- msg = msg.substring(0, msg.lastIndexOf("}") + 1);
- byteArrayOutputStream.reset();
- System.out.println("msg="+msg);
- parseJson(msg);
- } else {
- byteArrayOutputStream.write(buff[i1]);
- }
- }
- if (needRestart) {
- needRestart = false;
- break;
- }
- }
- } catch (Exception e) {
- System.out.println("SocketClient:110, " + e.getMessage());
- } finally {
- if (socket != null) {
+ if (1!=1) {
+ System.out.println("SocketClient.run setup 閲嶈繛");
+ setup(ip, port);
+ while(true) {
try {
- socket.close();
+ String json = receive();
+ System.out.println("json=" + json);
+ lastUpdateTime = System.currentTimeMillis();
+ if (json.length() > 0) {
+ if (json.equals("-1")) {
+ System.out.println("SocketClient.run setup 閿欒");
+ SystemClock.sleep(100);
+ break;
+ }
+ parseJson(json);
+ } else {
+ SystemClock.sleep(100);
+ }
} catch (Exception e) {
e.printStackTrace();
}
}
- SystemClock.sleep(2000);
+ SystemClock.sleep(1000);
+// continue;
+ } else {
+
+ try {
+ if (1!=1) {
+ msg = "{ \t\"datalist\": [ \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"8a769d1c-886c-487c-a934-e92b09d8f189\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典腑鍚戜笢 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:26\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6n2AFGElABQIY3pylXU412.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典腑鍚戜笢 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid3\" \t\t}, \t\t{ \t\t\t\"ID\": \"68a6fe5c-1cb1-4e3c-bc4a-22d678f76e8d\", \t\t\t\"IDCard\": [ \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\", \t\t\t\t\"54319001310104514563\", \t\t\t\t\"54319001100121231977\", \t\t\t\t\"54319001202319872643\", \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\" \t\t\t], \t\t\t\"ageDescription\": \"闈掑勾\", \t\t\t\"baseInfo\": [ \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"43\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"80a5935d-c6b4-4678-9c76-a6b01c07725b\", \t\t\t\t\t\"tableName\": \"搴曞簱124\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"41\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"5a544e15-2c40-4e54-a12b-f6a0f71f3fbd\", \t\t\t\t\t\"tableName\": \"搴曞簱123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001310104514563\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"78\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"83a42f98-ad21-466f-97aa-24bff1b0340f\", \t\t\t\t\t\"personName\": \"榛勯楦縗", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbb19faece3\", \t\t\t\t\t\"phoneNum\": \"11067854653\", \t\t\t\t\t\"tableId\": \"0cb7f275-9fb3-434e-9122-e59f551443ea\", \t\t\t\t\t\"tableName\": \"搴曞簱123412\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001100121231977\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"20\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"fed7b71c-d5eb-4feb-86d9-0522d7034412\", \t\t\t\t\t\"personName\": \"鏉庨�嶉仴\", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/11,06dfb71c698169\", \t\t\t\t\t\"phoneNum\": \"11012344321\", \t\t\t\t\t\"tableId\": \"f008bf89-9406-490d-868b-6dd679cae954\", \t\t\t\t\t\"tableName\": \"鍚屾搴�2\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"40\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"ce228150-448b-4e70-9b08-374ed7c5bc3e\", \t\t\t\t\t\"tableName\": \"123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"86\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"af6dd3b3-dc94-42ee-8347-f12214c2562f\", \t\t\t\t\t\"tableName\": \"鍚屾搴�3\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"66\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"2e0640d0-33e5-45e6-b024-3fe165c6f9e9\", \t\t\t\t\t\"tableName\": \"娴嬭瘯搴曞簱鍚嶇О瓒呴暱瀛楁暟娴嬭瘯\" \t\t\t\t} \t\t\t], \t\t\t\"content\": \"\", \t\t\t\"gender\": \"鐢穃", \t\t\t\"id\": \"68a6fe5c-1cb1-4e3c-bc4a-22d678f76e8d\", \t\t\t\"indeviceName\": \"瑙嗛鍒嗘瀽璁惧244\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"娴嬭瘯鍦板潃\", \t\t\t\"picDate\": \"2019-05-17 12:19:21\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/6A/rBEy8VzbhTaABvYpAAgn7hKYC2g311.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group2/M00/00/B4/rBEy9Fx1Bn2ASQ6FAABDPo9CwFw073.jpg\", \t\t\t\"race\": \"榛勪汉\", \t\t\t\"sdkType\": \"浜鸿劯\", \t\t\t\"taskName\": \"run\", \t\t\t\"videoIp\": \"172.17.50.244\", \t\t\t\"videoNum\": \"http://192.168.1.203:9600/12,017dae9d21ac08\", \t\t\t\"videoReqNum\": \"cid3\" \t\t}, \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"fea3e88f-a2c4-4a07-a19d-89c336f446ee\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:21\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6Y-AORXtABZqoERSp9I640.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid2\" \t\t}, \t\t{ \t\t\t\"content\": \"\", \t\t\t\"id\": \"5fa82d38-b725-45dc-907e-a7ee0ad3e803\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"picDate\": \"2019-05-17 12:19:16\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/4E/rBEy8VzbdN2AVqJIABGqRF1VFR0033.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group3/M00/05/18/rBEy81yy6Y2AHleCABVr-OZBNps388.jpg\", \t\t\t\"sdkType\": \"鍏ヤ镜\", \t\t\t\"taskName\": \"taskName鍒樻\", \t\t\t\"videoIp\": \"瀛︽牎鍗楀洿澧欒タ娈典笢鍚戣タ 鍛ㄧ晫\", \t\t\t\"videoNum\": \"http://58.118.225.79:44480/videosource/210235C23NF187000168/201905/15/2019051510/210235C23NF187000168$2019-05-15-10-09-37_454639_454888.mp4\", \t\t\t\"videoReqNum\": \"cid1\" \t\t}, \t\t{ \t\t\t\"ID\": \"3bce3eef-2062-456e-b5cb-d1a4cc63c158\", \t\t\t\"IDCard\": [ \t\t\t\t\"54319001202319872643\", \t\t\t\t\"54319001230310455431\", \t\t\t\t\"54319001102134569375\", \t\t\t\t\"54319001310104514563\", \t\t\t\t\"54319001100121231977\", \t\t\t\t\"54319001202319872643\" \t\t\t], \t\t\t\"ageDescription\": \"闈掑勾\", \t\t\t\"baseInfo\": [ \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"3\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"2e0640d0-33e5-45e6-b024-3fe165c6f9e9\", \t\t\t\t\t\"tableName\": \"娴嬭瘯搴曞簱鍚嶇О瓒呴暱瀛楁暟娴嬭瘯\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001230310455431\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"31\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"70171c10-d8ba-4b7c-a7ec-94d4f89a8d7d\", \t\t\t\t\t\"personName\": \"鐭崇牬澶‐", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfb968957dfa\", \t\t\t\t\t\"phoneNum\": \"11093456217\", \t\t\t\t\t\"tableId\": \"80a5935d-c6b4-4678-9c76-a6b01c07725b\", \t\t\t\t\t\"tableName\": \"搴曞簱124\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001102134569375\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"1\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"68d89b3e-e4db-42eb-ac75-aa8c1082a087\", \t\t\t\t\t\"personName\": \"瀛欐偀绌篭", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbaa2516ad2\", \t\t\t\t\t\"phoneNum\": \"11031248765\", \t\t\t\t\t\"tableId\": \"5a544e15-2c40-4e54-a12b-f6a0f71f3fbd\", \t\t\t\t\t\"tableName\": \"搴曞簱123\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001310104514563\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"1\", \t\t\t\t\t\"monitorLevel\": \"1\", \t\t\t\t\t\"personId\": \"83a42f98-ad21-466f-97aa-24bff1b0340f\", \t\t\t\t\t\"personName\": \"榛勯楦縗", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9600/12,06dfbb19faece3\", \t\t\t\t\t\"phoneNum\": \"11067854653\", \t\t\t\t\t\"tableId\": \"0cb7f275-9fb3-434e-9122-e59f551443ea\", \t\t\t\t\t\"tableName\": \"搴曞簱123412\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001100121231977\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"鐢穃", \t\t\t\t\t\"likePer\": \"48\", \t\t\t\t\t\"monitorLevel\": \"2\", \t\t\t\t\t\"personId\": \"fed7b71c-d5eb-4feb-86d9-0522d7034412\", \t\t\t\t\t\"personName\": \"鏉庨�嶉仴\", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/11,06dfb71c698169\", \t\t\t\t\t\"phoneNum\": \"11012344321\", \t\t\t\t\t\"tableId\": \"f008bf89-9406-490d-868b-6dd679cae954\", \t\t\t\t\t\"tableName\": \"鍚屾搴�2\" \t\t\t\t}, \t\t\t\t{ \t\t\t\t\t\"IDCard\": \"54319001202319872643\", \t\t\t\t\t\"content\": \"\", \t\t\t\t\t\"gender\": \"濂砛", \t\t\t\t\t\"likePer\": \"97\", \t\t\t\t\t\"monitorLevel\": \"3\", \t\t\t\t\t\"personId\": \"f290bb54-4de8-496b-8612-a8c563ab45e1\", \t\t\t\t\t\"personName\": \"浠ょ嫄鍐瞈", \t\t\t\t\t\"personPicUrl\": \"http://192.168.1.203:9601/8,06dfb8facdaf8a\", \t\t\t\t\t\"phoneNum\": \"11039876431\", \t\t\t\t\t\"tableId\": \"ce228150-448b-4e70-9b08-374ed7c5bc3e\", \t\t\t\t\t\"tableName\": \"123\" \t\t\t\t} \t\t\t], \t\t\t\"content\": \"\", \t\t\t\"gender\": \"鐢穃", \t\t\t\"id\": \"3bce3eef-2062-456e-b5cb-d1a4cc63c158\", \t\t\t\"indeviceName\": \"瑙嗛鍒嗘瀽璁惧244\", \t\t\t\"personIsHub\": \"1\", \t\t\t\"picAddress\": \"娴嬭瘯鍦板潃\", \t\t\t\"picDate\": \"2019-05-17 12:19:16\", \t\t\t\"picMaxUrl\": \"http://58.118.225.79:44280/group4/M00/07/6A/rBEy8VzbhTaABvYpAAgn7hKYC2g311.jpg\", \t\t\t\"picSmUrl\": \"http://58.118.225.79:44280/group2/M00/00/B4/rBEy9Fx1Bn-AS7idAAAgkMt8drY443.jpg\", \t\t\t\"race\": \"榛戜汉\", \t\t\t\"sdkType\": \"浜鸿劯\", \t\t\t\"taskName\": \"face\", \t\t\t\"videoIp\": \"172.17.50.244\", \t\t\t\"videoNum\": \"http://192.168.1.203:9600/12,017dae9d21ac08\", \t\t\t\"videoReqNum\": \"cid2\" \t\t} \t], \t\"total\": 5 }";
+ parseJson(msg);
+ SystemClock.sleep(2000);
+ continue;
+ }
+ if (System.currentTimeMillis() - lastUpdateTime < 30*1000) {
+ SystemClock.sleep(10 * 1000);
+ continue;
+ }
+ ip = SettingManager.getIpStr();
+ port = SettingManager.getPort();
+ try {
+ closeAllSockets();
+ System.out.println("鏂紑鍘熸潵鎵�鏈夎繛鎺�");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ SystemClock.sleep(10*1000);
+ socket = new Socket();
+ socketAdd(socket);
+ socket.connect(new InetSocketAddress(ip, port), 3000);
+ System.out.println("杩炴帴鎴愬姛");
+// socket.connect(new InetSocketAddress(ip, 7000), 3000);
+ inputStream = new BufferedInputStream(socket.getInputStream());
+ outputStream = new BufferedOutputStream(socket.getOutputStream());
+ int len = 0;
+ lastUpdateTime = System.currentTimeMillis();
+ while ((len = inputStream.read(buff)) != -1) {
+ for (int i1 = 0; i1 <len; i1++) {
+ if (buff[i1] == '\0') {
+ try {
+ byte[] msgBuf = byteArrayOutputStream.toByteArray();
+ byteArrayOutputStream.reset();
+ msg = new String(msgBuf, 0, msgBuf.length);
+ msg = msg.substring(0, msg.lastIndexOf("}") + 1);
+ System.out.println("msg="+msg);
+ if (msg.length() > 3) {
+ parseJson(msg);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ lastUpdateTime = System.currentTimeMillis();
+ } else {
+ byteArrayOutputStream.write(buff[i1]);
+ }
+ }
+ if (needRestart) {
+ needRestart = false;
+ break;
+ }
+ }
+ } catch (Exception e) {
+ System.out.println("SocketClient:110, " + e.getMessage());
+ if (e instanceof InterruptedException ) {
+ System.out.println("涓柇寮傚父锛� 閫�鍑虹▼搴�");
+ return;
+ }
+ } finally {
+ if (socket != null) {
+ try {
+ socket.close();
+ socket = null;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ System.out.println("鍑嗗20绉掑悗閲嶈繛");
+ SystemClock.sleep(20*1000);
+ }
}
+
}
} catch (Exception e) {
e.printStackTrace();
+ if (e instanceof InterruptedException) {
+ System.out.println("涓柇寮傚父锛� 閫�鍑虹▼搴�");
+ return;
+ }
} finally {
try {
if (outputStream != null) {
@@ -222,4 +289,40 @@
}
+ static Lock socketLock = new ReentrantLock();
+ static List<Socket> sockets = new ArrayList<>();
+
+ static List<Socket> connectedSockets = new ArrayList<>();
+ static Lock connectedSocketsLock = new ReentrantLock();
+
+ public static void closeAllSockets () {
+ socketLock.lock();
+ for (Socket socket : sockets) {
+ try {
+ if (socket != null) {
+ socket.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ sockets.clear();
+ socketLock.unlock();
+ }
+
+ public static void socketAdd(Socket socket) {
+ socketLock.lock();
+ sockets.add(socket);
+ socketLock.unlock();
+ }
+
+ public void closeSocket() {
+ try {
+ if (socket != null) {
+ socket.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/app/src/main/java/com/basic/security/utils/SocketServer.java b/app/src/main/java/com/basic/security/utils/SocketServer.java
new file mode 100644
index 0000000..f97adbf
--- /dev/null
+++ b/app/src/main/java/com/basic/security/utils/SocketServer.java
@@ -0,0 +1,45 @@
+package com.basic.security.utils;
+
+import android.os.SystemClock;
+
+import com.basic.security.manager.SettingManager;
+
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SocketServer {
+
+ public static List socketAcceptedClientList = new ArrayList();
+
+ public static void startYuvSocketServer() {
+ new Thread(){
+ @Override
+ public void run() {
+ ServerSocket server = null;
+ try {
+ server = new ServerSocket(8888);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ while (true) {
+ try {
+ if (server == null) {
+ break;
+ }
+ Socket client = server.accept();
+ SocketAcceptedClient socketAcceptedClient = new SocketAcceptedClient(client);
+ socketAcceptedClient.start();
+// socketAcceptedClientList.add(socketAcceptedClient);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ SystemClock.sleep(3000);
+ }
+ }
+ }
+ }.start();
+
+ }
+}
diff --git a/app/src/main/java/com/basic/security/widget/AuthDialog.java b/app/src/main/java/com/basic/security/widget/AuthDialog.java
new file mode 100644
index 0000000..54b6245
--- /dev/null
+++ b/app/src/main/java/com/basic/security/widget/AuthDialog.java
@@ -0,0 +1,150 @@
+package com.basic.security.widget;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.util.DisplayMetrics;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.basic.security.R;
+import com.basic.security.activity.MainActivity;
+import com.basic.security.base.BaseApplication;
+import com.basic.security.manager.SettingManager;
+import com.basic.security.utils.KeyboardUtil;
+import com.basic.security.utils.ToastUtil;
+
+public class AuthDialog extends Dialog {
+
+ private Context context;
+ private ClickListenerInterface clickListenerInterface;
+ public EditText password;
+
+ public interface ClickListenerInterface {
+
+ void doConfirm();
+
+ void doCancel();
+ }
+
+ public AuthDialog(Context context) {
+ super(context, R.style.ConfirmDialogStyle);
+ this.context = context;
+ this.setCanceledOnTouchOutside(false);
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ init();
+ }
+
+ public void init() {
+
+ LayoutInflater inflater = LayoutInflater.from(context);
+
+ View view = inflater.inflate(R.layout.auth_dialog, null);
+ setContentView(view);
+
+ TextView tvTitle = view.findViewById(R.id.title);
+ Button tvConfirm = view.findViewById(R.id.ok);
+ Button cancel = view.findViewById(R.id.cancel);
+ password = view.findViewById(R.id.password);
+
+ tvConfirm.setOnClickListener(new clickListener());
+ cancel.setOnClickListener(new clickListener());
+
+ Window dialogWindow = getWindow();
+ WindowManager.LayoutParams lp = dialogWindow.getAttributes();
+ DisplayMetrics d = context.getResources().getDisplayMetrics(); // 鑾峰彇灞忓箷瀹姐�侀珮鐢�
+ //lp.width = (int) (d.widthPixels * 0.8); // 楂樺害璁剧疆涓哄睆骞曠殑0.6
+ //dialogWindow.setAttributes(lp);
+ hideSystemUI();
+ initSystemUIListener();
+ }
+
+ private void initSystemUIListener() {
+ if (getWindow() != null) {
+ getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
+ @Override
+ public void onSystemUiVisibilityChange(int visibility) {
+ hideSystemUI();
+ }
+ });
+
+ }
+ }
+
+ private void hideSystemUI() {
+ if (getWindow() != null) {
+ getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
+ | View.SYSTEM_UI_FLAG_IMMERSIVE);
+ }
+ }
+
+ @Override
+ public void show() {
+
+ try {
+ hideSystemUI();
+ super.show();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void setClickListener(ClickListenerInterface clickListenerInterface) {
+ this.clickListenerInterface = clickListenerInterface;
+ }
+
+ private class clickListener implements View.OnClickListener {
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+ switch (id) {
+ case R.id.ok:
+ String passwordStr = password.getText().toString();
+ String dbPassword = SettingManager.oldPassword();
+ if (passwordStr.length() == 0) {
+ ToastUtil.show("瀵嗙爜涓嶈兘涓虹┖");
+ return;
+ }
+ if (!dbPassword.equals(passwordStr)) {
+ ToastUtil.show("瀵嗙爜涓嶆纭�");
+ return;
+ }
+ AuthDialog.this.dismiss();
+ ((MainActivity)BaseApplication.getApplication().activity).do_goto_setting();
+ break;
+ case R.id.cancel:
+ AuthDialog.this.dismiss();
+ break;
+ }
+ }
+
+ }
+
+ @Override
+ public boolean onTouchEvent(@NonNull MotionEvent event) {
+ InputMethodManager imm = (InputMethodManager)BaseApplication.getApplication().getSystemService(context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(password.getWindowToken(), 0);
+ return super.onTouchEvent(event);
+ }
+
+}
diff --git a/app/src/main/java/com/basic/security/widget/CustomSpinner.java b/app/src/main/java/com/basic/security/widget/CustomSpinner.java
index 1980ee2..e3795a6 100644
--- a/app/src/main/java/com/basic/security/widget/CustomSpinner.java
+++ b/app/src/main/java/com/basic/security/widget/CustomSpinner.java
@@ -42,4 +42,23 @@
return true;
}
+
+ public interface Selection {
+ public void selected(int position);
+ }
+
+ public Selection selection;
+
+ @Override
+ public void setSelection(int position) {
+ if (selection != null) {
+ selection.selected(position);
+ }
+ super.setSelection(position);
+ }
+
+ @Override
+ public void setSelection(int position, boolean animate) {
+ super.setSelection(position, animate);
+ }
}
\ No newline at end of file
diff --git a/app/src/main/jniLibs/armeabi-v7a/libnanomsg.so b/app/src/main/jniLibs/armeabi-v7a/libnanomsg.so
new file mode 100644
index 0000000..e2cc4a5
--- /dev/null
+++ b/app/src/main/jniLibs/armeabi-v7a/libnanomsg.so
Binary files differ
diff --git a/app/src/main/res/drawable/bg_edittext1_color.xml b/app/src/main/res/drawable/bg_edittext1_color.xml
new file mode 100644
index 0000000..26b3804
--- /dev/null
+++ b/app/src/main/res/drawable/bg_edittext1_color.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false" android:color="@color/colorText_b"/>
+ <item android:color="@color/black"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/check_box_selector.xml b/app/src/main/res/drawable/check_box_selector.xml
new file mode 100644
index 0000000..433624b
--- /dev/null
+++ b/app/src/main/res/drawable/check_box_selector.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@drawable/checkbox_on_background" android:state_checked="true" />
+ <item android:drawable="@drawable/checkbox_off_background" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/checkbox_off_background.png b/app/src/main/res/drawable/checkbox_off_background.png
new file mode 100644
index 0000000..6b2124f
--- /dev/null
+++ b/app/src/main/res/drawable/checkbox_off_background.png
Binary files differ
diff --git a/app/src/main/res/drawable/checkbox_on_background.png b/app/src/main/res/drawable/checkbox_on_background.png
new file mode 100644
index 0000000..56495fc
--- /dev/null
+++ b/app/src/main/res/drawable/checkbox_on_background.png
Binary files differ
diff --git a/app/src/main/res/drawable/ic_arrow_down.png b/app/src/main/res/drawable/ic_arrow_down.png
new file mode 100644
index 0000000..85e2437
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_down.png
Binary files differ
diff --git a/app/src/main/res/drawable/logo1.png b/app/src/main/res/drawable/logo1.png
new file mode 100644
index 0000000..048d92f
--- /dev/null
+++ b/app/src/main/res/drawable/logo1.png
Binary files differ
diff --git a/app/src/main/res/drawable/pulldown.png b/app/src/main/res/drawable/pulldown.png
index 49af147..0a2e26b 100644
--- a/app/src/main/res/drawable/pulldown.png
+++ b/app/src/main/res/drawable/pulldown.png
Binary files differ
diff --git a/app/src/main/res/drawable/radiobutton.xml b/app/src/main/res/drawable/radiobutton.xml
new file mode 100644
index 0000000..efefdda
--- /dev/null
+++ b/app/src/main/res/drawable/radiobutton.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/res/drawable/radiobutton.xml
+**
+** Copyright 2007, Google Inc.
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_checked="false" android:state_focused="true"
+ android:drawable="@drawable/radiobutton_off_background_focus_yellow" />
+ <item android:state_checked="true" android:state_focused="true"
+ android:drawable="@drawable/radiobutton_on_background_focus_yellow" />
+ <item android:state_checked="false" android:drawable="@drawable/radiobutton_off_background" />
+ <item android:state_checked="true" android:drawable="@drawable/radiobutton_on_background" />
+</selector>
diff --git a/app/src/main/res/drawable/radiobutton_off_background.png b/app/src/main/res/drawable/radiobutton_off_background.png
new file mode 100644
index 0000000..1b94e21
--- /dev/null
+++ b/app/src/main/res/drawable/radiobutton_off_background.png
Binary files differ
diff --git a/app/src/main/res/drawable/radiobutton_off_background_focus_yellow.png b/app/src/main/res/drawable/radiobutton_off_background_focus_yellow.png
new file mode 100644
index 0000000..1a092e3
--- /dev/null
+++ b/app/src/main/res/drawable/radiobutton_off_background_focus_yellow.png
Binary files differ
diff --git a/app/src/main/res/drawable/radiobutton_on_background.png b/app/src/main/res/drawable/radiobutton_on_background.png
new file mode 100644
index 0000000..636a803
--- /dev/null
+++ b/app/src/main/res/drawable/radiobutton_on_background.png
Binary files differ
diff --git a/app/src/main/res/drawable/radiobutton_on_background_focus_yellow.png b/app/src/main/res/drawable/radiobutton_on_background_focus_yellow.png
new file mode 100644
index 0000000..aa59771
--- /dev/null
+++ b/app/src/main/res/drawable/radiobutton_on_background_focus_yellow.png
Binary files differ
diff --git a/app/src/main/res/drawable/spinner_arrow_down.xml b/app/src/main/res/drawable/spinner_arrow_down.xml
index 5d008b0..cb1cfde 100644
--- a/app/src/main/res/drawable/spinner_arrow_down.xml
+++ b/app/src/main/res/drawable/spinner_arrow_down.xml
@@ -8,7 +8,9 @@
android:color="#d9d9d9" />
</shape>
</item>
- <item android:right="10dp">
+ <item android:right="5dp"
+ android:padding="10px"
+ >
<bitmap
android:gravity="end"
android:src="@drawable/pulldown" />
diff --git a/app/src/main/res/drawable/u259_gray.png b/app/src/main/res/drawable/u259_gray.png
new file mode 100644
index 0000000..1ac9612
--- /dev/null
+++ b/app/src/main/res/drawable/u259_gray.png
Binary files differ
diff --git a/app/src/main/res/drawable/u41.png b/app/src/main/res/drawable/u41.png
new file mode 100644
index 0000000..c8e21a7
--- /dev/null
+++ b/app/src/main/res/drawable/u41.png
Binary files differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index ad7d7f6..5cad9dc 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -24,7 +24,8 @@
>
<ImageView
android:scaleType="centerInside"
- android:src="@drawable/u4"
+ android:focusable="false"
+ android:src="@drawable/logo1"
android:layout_width="@dimen/h33"
android:layout_height="wrap_content" />
<TextView
@@ -41,6 +42,7 @@
android:layout_height="1dp"
android:layout_weight="1"/>
<ImageView
+ android:focusable="false"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/setting"
diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml
new file mode 100644
index 0000000..18c88ed
--- /dev/null
+++ b/app/src/main/res/layout/activity_welcome.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".activity.WelcomeActivity">
+
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/auth_dialog.xml b/app/src/main/res/layout/auth_dialog.xml
new file mode 100644
index 0000000..5f34546
--- /dev/null
+++ b/app/src/main/res/layout/auth_dialog.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="@dimen/w165"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@drawable/confirm_dialog_background"
+ >
+
+ <TextView
+ android:layout_marginTop="@dimen/h26"
+ android:layout_gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="璇疯緭鍏ュ瘑鐮�"
+ android:gravity="right"
+ android:textSize="@dimen/h13"
+ android:textColor="@color/black"/>
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:layout_marginTop="@dimen/h30"
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:id="@+id/password"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:inputType="textPassword"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h30"
+ android:layout_marginRight="@dimen/w100"
+ android:layout_marginLeft="@dimen/w100"
+ android:layout_marginBottom="@dimen/h25"
+ >
+ <Button
+ android:id="@+id/ok"
+ android:layout_width="@dimen/w57"
+ android:layout_height="@dimen/h22"
+ android:textSize="@dimen/h10"
+ android:textColor="@color/white"
+ android:layout_gravity="center"
+ android:background="@drawable/blue_button"
+ android:text="纭畾"/>
+ <Button
+ android:layout_marginLeft="@dimen/w28"
+ android:id="@+id/cancel"
+ android:layout_width="@dimen/w57"
+ android:layout_height="@dimen/h22"
+ android:textSize="@dimen/h10"
+ android:textColor="@color/white"
+ android:layout_gravity="center"
+ android:background="@drawable/blue_button"
+ android:text="鍙栨秷"/>
+ </LinearLayout>
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml
index b2bb795..c3c07d4 100644
--- a/app/src/main/res/layout/fragment_setting.xml
+++ b/app/src/main/res/layout/fragment_setting.xml
@@ -9,199 +9,529 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
- <TextView
- android:layout_marginLeft="@dimen/w34"
- android:layout_marginTop="@dimen/h57"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="鎶ヨ澹伴煶鎸佺画鏃堕棿閰嶇疆"
- android:textColor="@color/black"
- android:textSize="@dimen/h15"/>
<LinearLayout
- android:layout_marginTop="@dimen/h26"
- android:layout_width="wrap_content"
+ android:layout_gravity="center"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:text="鎸佺画鏃堕棿锛�"
- android:gravity="right"
- android:layout_gravity="center_vertical"
- android:textColor="@color/black"
- android:textSize="@dimen/h13"/>
- <com.basic.security.widget.CustomSpinner
- android:id="@+id/second"
- android:layout_width="@dimen/w175"
- android:layout_height="@dimen/h32"
- android:background="@drawable/spinner_arrow_down"
- android:dropDownSelector="@color/transparent"
- android:paddingBottom="2dp"
- android:paddingTop="2dp"
- android:spinnerMode="dropdown"
- android:dropDownVerticalOffset="0dp"
- />
- <TextView
- android:layout_marginLeft="@dimen/w6"
+ android:orientation="horizontal">
+ <Space
+ android:layout_width="1dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"/>
+ <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@color/black"
- android:textSize="@dimen/h13"
- android:text="绉�"
- />
- </LinearLayout>
+ android:orientation="vertical">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="@dimen/w34"
- android:layout_marginTop="@dimen/h63"
- android:text="鏈嶅姟鍣ㄩ厤缃�"
- android:textColor="@color/black"
- android:textSize="@dimen/h15" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h57"
+ android:text="鎶ヨ澹伴煶鎸佺画鏃堕棿閰嶇疆"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
- <LinearLayout
- android:layout_marginTop="@dimen/h24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h26"
+ android:orientation="horizontal">
- <TextView
- android:layout_width="@dimen/w108"
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:gravity="right"
+ android:text="鎸佺画鏃堕棿锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <com.basic.security.widget.CustomSpinner
+ android:id="@+id/second"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h32"
+ android:background="@drawable/spinner_arrow_down"
+ android:dropDownSelector="@color/transparent"
+ android:dropDownVerticalOffset="0dp"
+ android:paddingBottom="2dp"
+ android:paddingTop="2dp"
+ android:spinnerMode="dropdown" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="@dimen/w6"
+ android:text="绉�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h63"
+ android:text="鏈嶅姟鍣ㄩ厤缃�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="IP锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/ip"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="绔彛锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/port"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h63"
+ android:text="澹伴煶閰嶇疆"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_gravity="center_vertical"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="澹伴煶锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <com.basic.security.widget.CustomSpinner
+ android:id="@+id/alarmAudio"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h32"
+ android:background="@drawable/spinner_arrow_down"
+ android:dropDownSelector="@color/transparent"
+ android:dropDownVerticalOffset="0dp"
+ android:paddingBottom="2dp"
+ android:paddingTop="2dp"
+ android:spinnerMode="dropdown" />
+ </LinearLayout>
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h63"
+ android:text="淇濈暀鎶ヨ鏁版嵁"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:gravity="right"
+ android:text="鏃堕棿锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <com.basic.security.widget.CustomSpinner
+ android:id="@+id/keepTime"
+ android:layout_width="@dimen/w90"
+ android:layout_height="@dimen/h32"
+ android:background="@drawable/spinner_arrow_down"
+ android:dropDownSelector="@color/transparent"
+ android:dropDownVerticalOffset="0dp"
+ android:paddingBottom="2dp"
+ android:paddingTop="2dp"
+ android:spinnerMode="dropdown" />
+
+ <com.basic.security.widget.CustomSpinner
+ android:id="@+id/keepTimeType"
+ android:layout_width="@dimen/w90"
+ android:layout_height="@dimen/h32"
+ android:layout_marginLeft="@dimen/w6"
+ android:background="@drawable/spinner_arrow_down"
+ android:dropDownSelector="@color/transparent"
+ android:dropDownVerticalOffset="0dp"
+ android:paddingBottom="2dp"
+ android:paddingTop="2dp"
+ android:spinnerMode="dropdown" />
+ </LinearLayout>
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h63"
+ android:text="淇敼瀵嗙爜"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="鏃у瘑鐮侊細"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/oldPassword"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:inputType="textPassword"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="鏂板瘑鐮侊細"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/newPassword"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:inputType="textPassword"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="纭瀵嗙爜锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/newPassword2"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:inputType="textPassword"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+
+ <TextView
+ android:visibility="gone"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h63"
+ android:text="鎺堟潈"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
+
+ <LinearLayout
+ android:visibility="gone"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="瀵嗙爜锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/password"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:inputType="textPassword"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal"
+ android:visibility="gone">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="纭瀵嗙爜锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/confirmNewPassword"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+ </LinearLayout>
+ <Space
+ android:layout_width="1dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"/>
+ <LinearLayout
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="right"
- android:text="IP锛�"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
+ android:orientation="vertical">
- <EditText
- android:id="@+id/ip"
- android:layout_width="@dimen/w185"
- android:layout_height="@dimen/h33"
- android:background="@drawable/bg_edittext1"
- android:paddingLeft="@dimen/w15"
- android:singleLine="true"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
- </LinearLayout>
- <LinearLayout
- android:layout_marginTop="@dimen/h24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h57"
+ android:text="鏈満IP璁剧疆"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h15" />
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:gravity="right"
- android:text="绔彛锛�"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
+ <CheckBox
+ android:id="@+id/switch_ethernet"
+ android:layout_marginLeft="@dimen/w34"
+ android:layout_marginTop="@dimen/h26"
+ style="@style/setting_checkbox"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginRight="@dimen/w46"
+ android:text="浠ュお缃戝紑鍏�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ <RadioGroup
+ android:id="@+id/ip_mode"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+ <RadioButton
+ android:id="@+id/dhcp"
+ android:layout_marginLeft="@dimen/w108"
+ android:layout_marginTop="@dimen/h24"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:button="@drawable/radiobutton"
+ android:text="DHCP鑷姩鑾峰彇鍦板潃"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
- <EditText
- android:id="@+id/port"
- android:layout_width="@dimen/w185"
- android:layout_height="@dimen/h33"
- android:background="@drawable/bg_edittext1"
- android:paddingLeft="@dimen/w15"
- android:singleLine="true"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
- </LinearLayout>
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="@dimen/w34"
- android:layout_marginTop="@dimen/h63"
- android:text="澹伴煶閰嶇疆"
- android:textColor="@color/black"
- android:textSize="@dimen/h15" />
+ <RadioButton
+ android:id="@+id/staticip"
+ android:layout_marginLeft="@dimen/w108"
+ android:layout_marginTop="@dimen/h24"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:button="@drawable/radiobutton"
+ android:text="鎵嬪姩璁剧疆濡備笅鍦板潃"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+ </RadioGroup>
- <LinearLayout
- android:layout_marginTop="@dimen/h24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:gravity="right"
- android:text="澹伴煶锛�"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
- <com.basic.security.widget.CustomSpinner
- android:id="@+id/alarmAudio"
- android:layout_width="@dimen/w175"
- android:layout_height="@dimen/h32"
- android:background="@drawable/spinner_arrow_down"
- android:dropDownSelector="@color/transparent"
- android:paddingBottom="2dp"
- android:paddingTop="2dp"
- android:spinnerMode="dropdown"
- android:dropDownVerticalOffset="0dp"
- />
- </LinearLayout>
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="IP鍦板潃锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="@dimen/w34"
- android:layout_marginTop="@dimen/h63"
- android:text="鎺堟潈"
- android:textColor="@color/black"
- android:textSize="@dimen/h15" />
- <LinearLayout
- android:layout_marginTop="@dimen/h24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/ip_address"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@drawable/bg_edittext1_color"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:gravity="right"
- android:text="瀵嗙爜锛�"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
- <EditText
- android:id="@+id/password"
- android:inputType="textPassword"
- android:layout_width="@dimen/w185"
- android:layout_height="@dimen/h33"
- android:background="@drawable/bg_edittext1"
- android:paddingLeft="@dimen/w15"
- android:singleLine="true"
- android:textColor="@color/black"
- android:textSize="@dimen/h13" />
- </LinearLayout>
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="瀛愮綉鎺╃爜锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
- <LinearLayout
- android:layout_marginTop="@dimen/h24"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:visibility="gone"
- >
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:text="纭瀵嗙爜锛�"
- android:gravity="right"
- android:textSize="@dimen/h13"
- android:textColor="@color/black"/>
- <EditText
- android:id="@+id/confirmNewPassword"
- android:singleLine="true"
- android:background="@drawable/bg_edittext1"
- android:layout_width="@dimen/w185"
- android:textSize="@dimen/h13"
- android:paddingLeft="@dimen/w15"
- android:layout_height="@dimen/h33" />
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/net_mask"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@drawable/bg_edittext1_color"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="缃戝叧鍦板潃锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:textCursorDrawable="@null"
+ android:id="@+id/gate_way"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@drawable/bg_edittext1_color"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/h24"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="@dimen/w108"
+ android:layout_height="wrap_content"
+ android:gravity="right"
+ android:text="鍩熷悕鏈嶅姟鍣細"
+ android:textColor="@color/black"
+ android:textSize="@dimen/h13" />
+
+ <EditText
+ android:id="@+id/dns_server"
+ android:textCursorDrawable="@null"
+ android:layout_width="@dimen/w185"
+ android:layout_height="@dimen/h33"
+ android:background="@drawable/bg_edittext1"
+ android:paddingLeft="@dimen/w15"
+ android:singleLine="true"
+ android:textColor="@drawable/bg_edittext1_color"
+ android:textSize="@dimen/h13" />
+ </LinearLayout>
+ </LinearLayout>
+ <Space
+ android:layout_width="1dp"
+ android:layout_height="0dp"
+ android:layout_weight="1"/>
</LinearLayout>
<Space
android:layout_width="0dp"
@@ -231,37 +561,25 @@
android:layout_gravity="center"
android:background="@drawable/blue_button"
android:text="杩斿洖"/>
- </LinearLayout>
- </LinearLayout>
- <LinearLayout
- android:visibility="gone"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:id="@+id/confirmDialogParent"
- >
- <LinearLayout
- android:layout_gravity="center_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <TextView
- android:layout_width="@dimen/w108"
- android:layout_height="wrap_content"
- android:text="淇濆瓨鎴愬姛锛�"
- android:gravity="right"
- android:textSize="@dimen/h13"
- android:textColor="@color/black"/>
<Button
- android:id="@+id/ok"
+ android:id="@+id/exit"
+ android:layout_marginLeft="@dimen/w28"
android:layout_width="@dimen/w65"
android:layout_height="@dimen/h40"
android:textSize="@dimen/h13"
android:textColor="@color/white"
android:layout_gravity="center"
android:background="@drawable/blue_button"
- android:text="纭畾"/>
+ android:text="閫�鍑�"
+ android:visibility="gone"
+ />
</LinearLayout>
-
</LinearLayout>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/error"
+ android:visibility="invisible"
+ />
</RelativeLayout>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6b9f95f..796ab4f 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -10,6 +10,17 @@
<!-- Customize picker mode here. -->
<item name="mdtp_theme_dark">true</item>
</style>
+ <style name="setting_text">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:textColor">@color/black</item>
+ <item name="android:textSize">@dimen/h13</item>
+ </style>
+ <style name="setting_checkbox" parent="setting_text">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:button">@drawable/check_box_selector</item>
+ </style>
<style name="bigButton">
<item name="android:textColor">#ffffff</item>
--
Gitblit v1.8.0