Poster嗖.png

UML图\用例图.uml
UML图\用例图(修改).uml
UML图\用例图(最终).uml
UML图\顺序图(普通用户).uml
UML图\顺序图(高级用户).uml
数据库设计.docx
模型\嗖藏-一键收藏顺序图.vsdx
模型\嗖藏-子系统类图.vsdx
模型\嗖藏-子系统顺序图.vsdx
模型\嗖藏-搜索顺序图.vsdx
模型\嗖藏-编辑顺序图.vsdx
模型\嗖藏-设计类图.vsdx
软件体系结构\嗖藏-类图详细设计.docx
软件体系结构\嗖藏-逻辑视图(修改版).vsdx
软件体系结构\嗖藏类详细设计模型(完善版本).docx
软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-开发视图.png
软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-物理视图.png
软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-逻辑视图.vsdx
软件体系结构\开发视图(修改版).png
软件体系结构\开发视图(包图)修改版.jpg
软件体系结构\物理视图(部署图最终版).png
软件体系结构\物理视图(部署图).png
软件体系结构\软件界面\嗖藏-界面流程图.png
软件体系结构\软件界面\嗖藏-界面类图.png
软件体系结构\软件界面\嗖藏-界面顺序图.vsdx
软件体系结构\软件界面\嗖藏-软件界面(修改后).zip
软件体系结构\软件界面\嗖藏-软件界面.zip
软件体系结构\软件界面\灵越Spark-图片列表界面.png
软件体系结构\软件界面\灵越Spark-图片浏览界面.png
软件体系结构\软件界面\灵越Spark-图片编辑界面.png
软件体系结构\软件界面\灵越Spark-搜索界面.png
软件体系结构\软件界面\灵越Spark-欢迎界面.png
软件体系结构\软件界面\灵越Spark-注册界面.png
软件体系结构\软件界面\灵越Spark-登陆界面.png
软件体系结构\软件界面\灵越Spark-笔记列表界面.png
软件体系结构\软件界面\灵越Spark-笔记浏览界面.png
软件体系结构\软件界面\灵越Spark-笔记编辑界面.png
软件体系结构\逻辑视图.png
软件体系结构\部署图(修改后).png
软件需求设计文档\AR软件创意.txt
软件需求设计文档\文档模板:软件需求规格说明书.doc
软件需求设计文档\文档模板:软件需求规格说明书(V1.5).doc
软件需求设计文档\文档:软件需求构想和描述10.17.docx
软件需求设计文档\软工软件需求构想(初步).docx
软工项目汇报.pptx
doc\数据库设计.docx
doc\软件需求设计文档\AR软件创意.txt
doc\软件需求设计文档\文档模板:软件需求规格说明书.doc
doc\软件需求设计文档\文档模板:软件需求规格说明书(V1.5).doc
doc\软件需求设计文档\文档:软件需求构想和描述10.17.docx
doc\软件需求设计文档\软工软件需求构想(初步).docx
doc\软工项目汇报.pptx
draft\Poster嗖.png
draft\UML图\用例图.uml
draft\UML图\用例图(修改).uml
draft\UML图\用例图(最终).uml
draft\UML图\顺序图(普通用户).uml
draft\UML图\顺序图(高级用户).uml
draft\模型\嗖藏-一键收藏顺序图.vsdx
draft\模型\嗖藏-子系统类图.vsdx
draft\模型\嗖藏-子系统顺序图.vsdx
draft\模型\嗖藏-搜索顺序图.vsdx
draft\模型\嗖藏-编辑顺序图.vsdx
draft\模型\嗖藏-设计类图.vsdx
draft\软件体系结构\嗖藏-类图详细设计.docx
draft\软件体系结构\嗖藏-逻辑视图(修改版).vsdx
draft\软件体系结构\嗖藏类详细设计模型(完善版本).docx
draft\软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-开发视图.png
draft\软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-物理视图.png
draft\软件体系结构\开发视图、逻辑视图、物理视图\嗖藏-逻辑视图.vsdx
draft\软件体系结构\开发视图(修改版).png
draft\软件体系结构\开发视图(包图)修改版.jpg
draft\软件体系结构\物理视图(部署图最终版).png
draft\软件体系结构\物理视图(部署图).png
draft\软件体系结构\软件界面\嗖藏-界面流程图.png
draft\软件体系结构\软件界面\嗖藏-界面类图.png
draft\软件体系结构\软件界面\嗖藏-界面顺序图.vsdx
draft\软件体系结构\软件界面\嗖藏-软件界面(修改后).zip
draft\软件体系结构\软件界面\嗖藏-软件界面.zip
draft\软件体系结构\软件界面\灵越Spark-图片列表界面.png
draft\软件体系结构\软件界面\灵越Spark-图片浏览界面.png
draft\软件体系结构\软件界面\灵越Spark-图片编辑界面.png
draft\软件体系结构\软件界面\灵越Spark-搜索界面.png
draft\软件体系结构\软件界面\灵越Spark-欢迎界面.png
draft\软件体系结构\软件界面\灵越Spark-注册界面.png
draft\软件体系结构\软件界面\灵越Spark-登陆界面.png
draft\软件体系结构\软件界面\灵越Spark-笔记列表界面.png
draft\软件体系结构\软件界面\灵越Spark-笔记浏览界面.png
draft\软件体系结构\软件界面\灵越Spark-笔记编辑界面.png
draft\软件体系结构\逻辑视图.png
draft\软件体系结构\部署图(修改后).png
src\MyApplication\.gitignore
src\MyApplication\.idea\codeStyleSettings.xml
src\MyApplication\.idea\compiler.xml
src\MyApplication\.idea\copyright\profiles_settings.xml
src\MyApplication\.idea\encodings.xml
src\MyApplication\.idea\gradle.xml
src\MyApplication\.idea\inspectionProfiles\Project_Default.xml
src\MyApplication\.idea\inspectionProfiles\profiles_settings.xml
src\MyApplication\.idea\misc.xml
src\MyApplication\.idea\modules.xml
src\MyApplication\.idea\runConfigurations.xml
src\MyApplication\.idea\sonarlint\issuestore\0\c\0c2f607fe7104db4aff5a972f67db47c8fc3a01a
src\MyApplication\.idea\sonarlint\issuestore\1\4\14d85ff7ad98d57e0b3d3d1342692c5fb59955a4
src\MyApplication\.idea\sonarlint\issuestore\1\e\1e127e509da20f358c272f78cfdaea4346e9199b
src\MyApplication\.idea\sonarlint\issuestore\7\7\77b0e160fe3b756580b20d005c789ac79935523a
src\MyApplication\.idea\sonarlint\issuestore\8\2\824db7b1941b2ab3f719e805a0d5d84f175b9127
src\MyApplication\.idea\sonarlint\issuestore\8\2\82d2fb9785192ddc21561f59fc59fc0e07e8a84c
src\MyApplication\.idea\sonarlint\issuestore\9\a\9a3b018c7a5556301c9f2b82bea49b0b3ceb2613
src\MyApplication\.idea\sonarlint\issuestore\f\0\f07866736216be0ee2aba49e392191aeae700a35
src\MyApplication\.idea\sonarlint\issuestore\f\6\f694bbb1d0ede28a56fa9364fe5df7136cda2823
src\MyApplication\.idea\sonarlint\issuestore\f\d\fd468597b3276a6c77a10eb393b17d78086669ae
src\MyApplication\.idea\sonarlint\issuestore\index.pb
src\MyApplication\app\.gitignore
src\MyApplication\app\build.gradle
src\MyApplication\app\proguard-rules.pro
src\MyApplication\app\src\androidTest\java\com\example\administrator\myapplication\ExampleInstrumentedTest.java
src\MyApplication\app\src\main\AndroidManifest.xml
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\AppCompatPreferenceActivity.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\EditImages.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\EditNotes.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\ImagesDisplay.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\ListActivity.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\LoginActivity.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\ScanImages.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\SearchActivity.java
src\MyApplication\app\src\main\java\com\example\administrator\myapplication\SignActivity.java
src\MyApplication\app\src\main\res\drawable\background1.png
src\MyApplication\app\src\main\res\drawable\background2.png
src\MyApplication\app\src\main\res\drawable\background_black.png
src\MyApplication\app\src\main\res\drawable\background_red.png
src\MyApplication\app\src\main\res\drawable\background_white.png
src\MyApplication\app\src\main\res\drawable\ic_add_circle_48pt_2x.png
src\MyApplication\app\src\main\res\drawable\ic_arrow_back_48pt.png
src\MyApplication\app\src\main\res\drawable\ic_content_cut_18pt_2x.png
src\MyApplication\app\src\main\res\drawable\ic_content_cut_black_18dp.png
src\MyApplication\app\src\main\res\drawable\ic_crop_square_black_36dp.png
src\MyApplication\app\src\main\res\drawable\ic_delete_18pt.png
src\MyApplication\app\src\main\res\drawable\ic_event_note_36pt_3x.png
src\MyApplication\app\src\main\res\drawable\ic_exit_to_app_black_18dp.png
src\MyApplication\app\src\main\res\drawable\ic_extension_36pt_3x.png
src\MyApplication\app\src\main\res\drawable\ic_extension_black_36dp.png
src\MyApplication\app\src\main\res\drawable\ic_info_black_24dp.xml
src\MyApplication\app\src\main\res\drawable\ic_list_black_36dp.png
src\MyApplication\app\src\main\res\drawable\ic_more_horiz_18pt.png
src\MyApplication\app\src\main\res\drawable\ic_notifications_black_24dp.xml
src\MyApplication\app\src\main\res\drawable\ic_search_black_48dp.png
src\MyApplication\app\src\main\res\drawable\ic_sync_black_24dp.xml
src\MyApplication\app\src\main\res\drawable\ic_zoom_in_18pt.png
src\MyApplication\app\src\main\res\drawable\ic_zoom_out_18pt.png
src\MyApplication\app\src\main\res\drawable\p1.png
src\MyApplication\app\src\main\res\drawable\p2.png
src\MyApplication\app\src\main\res\drawable\p3.png
src\MyApplication\app\src\main\res\drawable\p4.png
src\MyApplication\app\src\main\res\drawable\p5.png
src\MyApplication\app\src\main\res\drawable\p6.png
src\MyApplication\app\src\main\res\layout\activity_edit_images.xml
src\MyApplication\app\src\main\res\layout\activity_edit_notes.xml
src\MyApplication\app\src\main\res\layout\activity_images_display.xml
src\MyApplication\app\src\main\res\layout\activity_list.xml
src\MyApplication\app\src\main\res\layout\activity_login.xml
src\MyApplication\app\src\main\res\layout\activity_scan_images.xml
src\MyApplication\app\src\main\res\layout\activity_search.xml
src\MyApplication\app\src\main\res\layout\activity_sign.xml
src\MyApplication\app\src\main\res\mipmap-hdpi\ic_launcher.png
src\MyApplication\app\src\main\res\mipmap-hdpi\ic_launcher_round.png
src\MyApplication\app\src\main\res\mipmap-mdpi\ic_launcher.png
src\MyApplication\app\src\main\res\mipmap-mdpi\ic_launcher_round.png
src\MyApplication\app\src\main\res\mipmap-xhdpi\ic_launcher.png
src\MyApplication\app\src\main\res\mipmap-xhdpi\ic_launcher_round.png
src\MyApplication\app\src\main\res\mipmap-xxhdpi\ic_launcher.png
src\MyApplication\app\src\main\res\mipmap-xxhdpi\ic_launcher_round.png
src\MyApplication\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png
src\MyApplication\app\src\main\res\mipmap-xxxhdpi\ic_launcher_round.png
src\MyApplication\app\src\main\res\values\colors.xml
src\MyApplication\app\src\main\res\values\dimens.xml
src\MyApplication\app\src\main\res\values\strings.xml
src\MyApplication\app\src\main\res\values\styles.xml
src\MyApplication\app\src\main\res\xml\pref_data_sync.xml
src\MyApplication\app\src\main\res\xml\pref_general.xml
src\MyApplication\app\src\main\res\xml\pref_notification.xml
src\MyApplication\app\src\test\java\com\example\administrator\myapplication\ExampleUnitTest.java
src\MyApplication\build.gradle
src\MyApplication\gradle.properties
src\MyApplication\gradle\wrapper\gradle-wrapper.jar
src\MyApplication\gradle\wrapper\gradle-wrapper.properties
src\MyApplication\gradlew
src\MyApplication\gradlew.bat
src\MyApplication\settings.gradle
This commit is contained in:
Mr_Worldwide 2018-03-14 23:07:30 +08:00
parent 7d317d0fac
commit 3649ed6e39
144 changed files with 2578 additions and 0 deletions

View File

Before

Width:  |  Height:  |  Size: 15 MiB

After

Width:  |  Height:  |  Size: 15 MiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 239 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

9
src/MyApplication/.gitignore vendored Normal file
View File

@ -0,0 +1,9 @@
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

View File

@ -0,0 +1,228 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="99" />
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
<value />
</option>
<option name="IMPORT_LAYOUT_TABLE">
<value>
<package name="android" withSubpackages="true" static="false" />
<emptyLine />
<package name="com" withSubpackages="true" static="false" />
<emptyLine />
<package name="junit" withSubpackages="true" static="false" />
<emptyLine />
<package name="net" withSubpackages="true" static="false" />
<emptyLine />
<package name="org" withSubpackages="true" static="false" />
<emptyLine />
<package name="java" withSubpackages="true" static="false" />
<emptyLine />
<package name="javax" withSubpackages="true" static="false" />
<emptyLine />
<package name="" withSubpackages="true" static="false" />
<emptyLine />
<package name="" withSubpackages="true" static="true" />
<emptyLine />
</value>
</option>
<option name="RIGHT_MARGIN" value="100" />
<AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" />
</AndroidXmlCodeStyleSettings>
<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" />
<pair source="c" header="h" />
</extensions>
</Objective-C-extensions>
<XML>
<option name="XML_KEEP_LINE_BREAKS" value="false" />
<option name="XML_ALIGN_ATTRIBUTES" value="false" />
<option name="XML_SPACE_INSIDE_EMPTY_TAG" value="true" />
</XML>
<codeStyleSettings language="XML">
<option name="FORCE_REARRANGE_MODE" value="1" />
<indentOptions>
<option name="CONTINUATION_INDENT_SIZE" value="4" />
</indentOptions>
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_width</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_height</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:layout_.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:width</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:height</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</value>
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="glandroid" />
</component>
</project>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

View File

@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="" />
</component>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

View File

@ -0,0 +1,10 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AndroidLintLintBaseline" enabled="false" level="INFO" enabled_by_default="false" />
<inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
<option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
<option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" 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>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/MyApplication.iml" filepath="$PROJECT_DIR$/MyApplication.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@ -0,0 +1,2 @@
isquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(…ÿÙ®úÿÿÿÿ

View File

@ -0,0 +1,2 @@
dsquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(€¥Û¬

View File

@ -0,0 +1,2 @@
dsquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(<28>ªÉç

View File

@ -0,0 +1,2 @@
dsquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(³Î¶î

View File

@ -0,0 +1,2 @@
isquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(‹†½íÿÿÿÿÿ

View File

@ -0,0 +1,2 @@
dsquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(úºé“

View File

@ -0,0 +1,13 @@
I squid:S1066"/Merge this if statement with the enclosing one.(¿±Ïßüÿÿÿÿ
[ squid:S2142"FEither re-interrupt this method or rethrow the "InterruptedException".(ä ¹€
G squid:S1135"2Complete the task associated to this TODO comment.(Àó‚´
G squid:S1135"2Complete the task associated to this TODO comment.(Ö¾ã¯
L squid:S1135"2Complete the task associated to this TODO comment.(ÉÓÈìýÿÿÿÿ
 squid:S1186"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ô¬ý¶ùÿÿÿÿ
O squid:S2386"5Move "PROJECTION" to a class and lower its visibility(‡ÎÌÑùÿÿÿÿ
< squid:S1214""Move constants to a class or enum.(×™´ªùÿÿÿÿ
G squid:S1135"2Complete the task associated to this TODO comment.(ž¼í 
g squid:S3776"RRefactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.(Æ¿ú„
dsquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(ôã©Ö
G squid:S1135"2Complete the task associated to this TODO comment.(ž¼í 

View File

@ -0,0 +1,2 @@
isquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.(´úÈ¢ùÿÿÿÿ

View File

@ -0,0 +1,3 @@
hsquid:MaximumInheritanceDepth"<This class has 7 parents which is greater than 5 authorized.(ž<> ¨ýÿÿÿÿ
T squid:S1161":Add the "@Override" annotation above this method signature(â¢çÊüÿÿÿÿ

View File

@ -0,0 +1,21 @@
<
build.gradle,f\0\f07866736216be0ee2aba49e392191aeae700a35
{
Kapp\src\main\java\com\example\administrator\myapplication\SignActivity.java,7\7\77b0e160fe3b756580b20d005c789ac79935523a
|
Lapp\src\main\java\com\example\administrator\myapplication\ImagesDisplay.java,f\6\f694bbb1d0ede28a56fa9364fe5df7136cda2823
{
Kapp\src\main\java\com\example\administrator\myapplication\ListActivity.java,0\c\0c2f607fe7104db4aff5a972f67db47c8fc3a01a
y
Iapp\src\main\java\com\example\administrator\myapplication\EditImages.java,1\e\1e127e509da20f358c272f78cfdaea4346e9199b
x
Happ\src\main\java\com\example\administrator\myapplication\EditNotes.java,8\2\824db7b1941b2ab3f719e805a0d5d84f175b9127
y
Iapp\src\main\java\com\example\administrator\myapplication\ScanImages.java,1\4\14d85ff7ad98d57e0b3d3d1342692c5fb59955a4
}
Mapp\src\main\java\com\example\administrator\myapplication\SearchActivity.java,8\2\82d2fb9785192ddc21561f59fc59fc0e07e8a84c
|
Lapp\src\main\java\com\example\administrator\myapplication\LoginActivity.java,9\a\9a3b018c7a5556301c9f2b82bea49b0b3ceb2613
Š
Zapp\src\main\java\com\example\administrator\myapplication\AppCompatPreferenceActivity.java,f\d\fd468597b3276a6c77a10eb393b17d78086669ae

1
src/MyApplication/app/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/build

View File

@ -0,0 +1,38 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.administrator.myapplication"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
cruncherEnabled = false
useNewCruncher = false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:26.+'
compile 'com.android.support:support-v4:26.+'
compile 'com.android.support:support-vector-drawable:26.+'
testCompile 'junit:junit:4.12'
}

View File

@ -0,0 +1,25 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\Users\Administrator\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@ -0,0 +1,26 @@
package com.example.administrator.myapplication;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumentation test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.example.administrator.myapplication", appContext.getPackageName());
}
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.administrator.myapplication">
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login">4
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".SignActivity"/>
<activity android:name=".ListActivity"/>
<activity android:name=".SearchActivity">
</activity>
<activity android:name=".EditImages">
</activity>
<activity android:name=".ScanImages">
</activity>
<activity android:name=".ImagesDisplay">
</activity>
<activity android:name=".EditNotes">
</activity>
</application>
</manifest>

View File

@ -0,0 +1,109 @@
package com.example.administrator.myapplication;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.Toolbar;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
* to be used with AppCompat.
*/
public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
private AppCompatDelegate mDelegate;
@Override
protected void onCreate(Bundle savedInstanceState) {
getDelegate().installViewFactory();
getDelegate().onCreate(savedInstanceState);
super.onCreate(savedInstanceState);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
getDelegate().onPostCreate(savedInstanceState);
}
public ActionBar getSupportActionBar() {
return getDelegate().getSupportActionBar();
}
public void setSupportActionBar(@Nullable Toolbar toolbar) {
getDelegate().setSupportActionBar(toolbar);
}
@Override
public MenuInflater getMenuInflater() {
return getDelegate().getMenuInflater();
}
@Override
public void setContentView(@LayoutRes int layoutResID) {
getDelegate().setContentView(layoutResID);
}
@Override
public void setContentView(View view) {
getDelegate().setContentView(view);
}
@Override
public void setContentView(View view, ViewGroup.LayoutParams params) {
getDelegate().setContentView(view, params);
}
@Override
public void addContentView(View view, ViewGroup.LayoutParams params) {
getDelegate().addContentView(view, params);
}
@Override
protected void onPostResume() {
super.onPostResume();
getDelegate().onPostResume();
}
@Override
protected void onTitleChanged(CharSequence title, int color) {
super.onTitleChanged(title, color);
getDelegate().setTitle(title);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
getDelegate().onConfigurationChanged(newConfig);
}
@Override
protected void onStop() {
super.onStop();
getDelegate().onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
getDelegate().onDestroy();
}
public void invalidateOptionsMenu() {
getDelegate().invalidateOptionsMenu();
}
private AppCompatDelegate getDelegate() {
if (mDelegate == null) {
mDelegate = AppCompatDelegate.create(this, null);
}
return mDelegate;
}
}

View File

@ -0,0 +1,13 @@
package com.example.administrator.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class EditImages extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_images);
}
}

View File

@ -0,0 +1,21 @@
package com.example.administrator.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class EditNotes extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_notes);
findViewById(R.id.picture_back).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(EditNotes.this, ListActivity.class));
}
});
}
}

View File

@ -0,0 +1,33 @@
package com.example.administrator.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class ImagesDisplay extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_images_display);
findViewById(R.id.note_btn).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ImagesDisplay.this, ListActivity.class));
}
});
findViewById(R.id.search_btn).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ImagesDisplay.this, SearchActivity.class));
}
});
findViewById(R.id.p5).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ImagesDisplay.this, ScanImages.class));
}
});
}
}

View File

@ -0,0 +1,34 @@
package com.example.administrator.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class ListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
findViewById(R.id.note_btn).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ListActivity.this, ImagesDisplay.class));
}
});
findViewById(R.id.search_btn).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ListActivity.this, SearchActivity.class));
}
});
findViewById(R.id.textView3).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ListActivity.this, EditNotes.class));
}
});
}
}

View File

@ -0,0 +1,365 @@
package com.example.administrator.myapplication;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import static android.Manifest.permission.READ_CONTACTS;
/**
* A login screen that offers login via email/password.
*/
public class LoginActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
/**
* Id to identity READ_CONTACTS permission request.
*/
private static final int REQUEST_READ_CONTACTS = 0;
/**
* A dummy authentication store containing known user names and passwords.
* TODO: remove after connecting to a real authentication system.
*/
private static final String[] DUMMY_CREDENTIALS = new String[]{
"foo@example.com:hello", "bar@example.com:world"
};
/**
* Keep track of the login task to ensure we can cancel it if requested.
*/
private UserLoginTask mAuthTask = null;
// UI references.
private AutoCompleteTextView mEmailView;
private EditText mPasswordView;
private View mProgressView;
private View mLoginFormView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Set up the login form.
findViewById(R.id.sign_in_button).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick (View v){
startActivity(new Intent(LoginActivity.this, SignActivity.class));
}
});
findViewById(R.id.log_in_button).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(LoginActivity.this, ListActivity.class));
}
});
mEmailView = (AutoCompleteTextView) findViewById(R.id.account);
populateAutoComplete();
mPasswordView = (EditText) findViewById(R.id.password);
mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
if (id == R.id.login || id == EditorInfo.IME_NULL) {
attemptLogin();
return true;
}
return false;
}
});
Button mEmailSignInButton = (Button) findViewById(R.id.log_in_button);
mEmailSignInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
attemptLogin();
}
});
mLoginFormView = findViewById(R.id.login_form);
mProgressView = findViewById(R.id.login_progress);
}
private void populateAutoComplete() {
if (!mayRequestContacts()) {
return;
}
getLoaderManager().initLoader(0, null, this);
}
private boolean mayRequestContacts() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return true;
}
if (checkSelfPermission(READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
return true;
}
if (shouldShowRequestPermissionRationale(READ_CONTACTS)) {
Snackbar.make(mEmailView, R.string.permission_rationale, Snackbar.LENGTH_INDEFINITE)
.setAction(android.R.string.ok, new View.OnClickListener() {
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onClick(View v) {
requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
}
});
} else {
requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
}
return false;
}
/**
* Callback received when a permissions request has been completed.
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == REQUEST_READ_CONTACTS) {
if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
populateAutoComplete();
}
}
}
/**
* Attempts to sign in or register the account specified by the login form.
* If there are form errors (invalid email, missing fields, etc.), the
* errors are presented and no actual login attempt is made.
*/
private void attemptLogin() {
if (mAuthTask != null) {
return;
}
// Reset errors.
mEmailView.setError(null);
mPasswordView.setError(null);
// Store values at the time of the login attempt.
String email = mEmailView.getText().toString();
String password = mPasswordView.getText().toString();
boolean cancel = false;
View focusView = null;
// Check for a valid password, if the user entered one.
if (!TextUtils.isEmpty(password) && !isPasswordValid(password)) {
mPasswordView.setError(getString(R.string.error_invalid_password));
focusView = mPasswordView;
cancel = true;
}
// Check for a valid email address.
if (TextUtils.isEmpty(email)) {
mEmailView.setError(getString(R.string.error_field_required));
focusView = mEmailView;
cancel = true;
} else if (!isEmailValid(email)) {
mEmailView.setError(getString(R.string.error_invalid_email));
focusView = mEmailView;
cancel = true;
}
if (cancel) {
// There was an error; don't attempt login and focus the first
// form field with an error.
focusView.requestFocus();
} else {
// Show a progress spinner, and kick off a background task to
// perform the user login attempt.
showProgress(true);
mAuthTask = new UserLoginTask(email, password);
mAuthTask.execute((Void) null);
}
}
private boolean isEmailValid(String email) {
//TODO: Replace this with your own logic
return email.contains("@");
}
private boolean isPasswordValid(String password) {
//TODO: Replace this with your own logic
return password.length() > 4;
}
/**
* Shows the progress UI and hides the login form.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private void showProgress(final boolean show) {
// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
// for very easy animations. If available, use these APIs to fade-in
// the progress spinner.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
int shortAnimTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
mLoginFormView.animate().setDuration(shortAnimTime).alpha(
show ? 0 : 1).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
}
});
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
mProgressView.animate().setDuration(shortAnimTime).alpha(
show ? 1 : 0).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
}
});
} else {
// The ViewPropertyAnimator APIs are not available, so simply show
// and hide the relevant UI components.
mProgressView.setVisibility(show ? View.VISIBLE : View.GONE);
mLoginFormView.setVisibility(show ? View.GONE : View.VISIBLE);
}
}
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return new CursorLoader(this,
// Retrieve data rows for the device user's 'profile' contact.
Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI,
ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION,
// Select only email addresses.
ContactsContract.Contacts.Data.MIMETYPE +
" = ?", new String[]{ContactsContract.CommonDataKinds.Email
.CONTENT_ITEM_TYPE},
// Show primary email addresses first. Note that there won't be
// a primary email address if the user hasn't specified one.
ContactsContract.Contacts.Data.IS_PRIMARY + " DESC");
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
List<String> emails = new ArrayList<>();
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
emails.add(cursor.getString(ProfileQuery.ADDRESS));
cursor.moveToNext();
}
addEmailsToAutoComplete(emails);
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
}
private void addEmailsToAutoComplete(List<String> emailAddressCollection) {
//Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
ArrayAdapter<String> adapter =
new ArrayAdapter<>(LoginActivity.this,
android.R.layout.simple_dropdown_item_1line, emailAddressCollection);
mEmailView.setAdapter(adapter);
}
private interface ProfileQuery {
String[] PROJECTION = {
ContactsContract.CommonDataKinds.Email.ADDRESS,
ContactsContract.CommonDataKinds.Email.IS_PRIMARY,
};
int ADDRESS = 0;
int IS_PRIMARY = 1;
}
/**
* Represents an asynchronous login/registration task used to authenticate
* the user.
*/
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
private final String mEmail;
private final String mPassword;
UserLoginTask(String email, String password) {
mEmail = email;
mPassword = password;
}
@Override
protected Boolean doInBackground(Void... params) {
// TODO: attempt authentication against a network service.
try {
// Simulate network access.
Thread.sleep(2000);
} catch (InterruptedException e) {
return false;
}
for (String credential : DUMMY_CREDENTIALS) {
String[] pieces = credential.split(":");
if (pieces[0].equals(mEmail)) {
// Account exists, return true if the password matches.
return pieces[1].equals(mPassword);
}
}
// TODO: register the new account here.
return true;
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if (success) {
finish();
} else {
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
showProgress(false);
}
}
}

View File

@ -0,0 +1,21 @@
package com.example.administrator.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class ScanImages extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan_images);
findViewById(R.id.picture_show_cut).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(ScanImages.this, EditImages.class));
}
});
}
}

View File

@ -0,0 +1,13 @@
package com.example.administrator.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class SearchActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
}
}

View File

@ -0,0 +1,28 @@
package com.example.administrator.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
public class SignActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign);
findViewById(R.id.return_button).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(SignActivity.this, LoginActivity.class));
}
});
findViewById(R.id.sign_up_button).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(SignActivity.this, ListActivity.class));
}
});
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm1,15h-2v-6h2v6zm0,-8h-2V7h2v2z"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Some files were not shown because too many files have changed in this diff Show More