diff --git a/.gradle/7.5/checksums/checksums.lock b/.gradle/7.5/checksums/checksums.lock index 5a003e3..50f4d27 100644 Binary files a/.gradle/7.5/checksums/checksums.lock and b/.gradle/7.5/checksums/checksums.lock differ diff --git a/.gradle/7.5/checksums/md5-checksums.bin b/.gradle/7.5/checksums/md5-checksums.bin index 754d9b6..e47e009 100644 Binary files a/.gradle/7.5/checksums/md5-checksums.bin and b/.gradle/7.5/checksums/md5-checksums.bin differ diff --git a/.gradle/7.5/checksums/sha1-checksums.bin b/.gradle/7.5/checksums/sha1-checksums.bin index 6cb5cc6..684f4c3 100644 Binary files a/.gradle/7.5/checksums/sha1-checksums.bin and b/.gradle/7.5/checksums/sha1-checksums.bin differ diff --git a/.gradle/7.5/executionHistory/executionHistory.bin b/.gradle/7.5/executionHistory/executionHistory.bin index 3b1c93c..be514e9 100644 Binary files a/.gradle/7.5/executionHistory/executionHistory.bin and b/.gradle/7.5/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.5/executionHistory/executionHistory.lock b/.gradle/7.5/executionHistory/executionHistory.lock index ca28234..00bf098 100644 Binary files a/.gradle/7.5/executionHistory/executionHistory.lock and b/.gradle/7.5/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.5/fileHashes/fileHashes.bin b/.gradle/7.5/fileHashes/fileHashes.bin index d4f7841..4c50cb0 100644 Binary files a/.gradle/7.5/fileHashes/fileHashes.bin and b/.gradle/7.5/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.5/fileHashes/fileHashes.lock b/.gradle/7.5/fileHashes/fileHashes.lock index 52ed19b..66dcdbf 100644 Binary files a/.gradle/7.5/fileHashes/fileHashes.lock and b/.gradle/7.5/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.5/fileHashes/resourceHashesCache.bin b/.gradle/7.5/fileHashes/resourceHashesCache.bin index fb59edb..e6319dd 100644 Binary files a/.gradle/7.5/fileHashes/resourceHashesCache.bin and b/.gradle/7.5/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 57caba1..0781ce7 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index d6b106f..4660cd4 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 7ac3595..c5ece43 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 221f91b..9a1830f 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -23,6 +23,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 909fe14..c5642bf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -53,6 +53,8 @@ android { implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1' implementation 'mysql:mysql-connector-java:8.0.27' implementation("com.squareup.okhttp3:okhttp:4.9.3") + implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.9.1' + } } diff --git a/app/build/intermediates/apk/debug/app-debug.apk b/app/build/intermediates/apk/debug/app-debug.apk index 8a2563e..c3e365c 100644 Binary files a/app/build/intermediates/apk/debug/app-debug.apk and b/app/build/intermediates/apk/debug/app-debug.apk differ diff --git a/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar b/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar index 0b9af53..cabfc26 100644 Binary files a/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar and b/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar differ diff --git a/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex b/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex index cd6cf57..bb26b77 100644 Binary files a/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex and b/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex differ diff --git a/app/build/intermediates/dex_archive_input_jar_hashes/debug/out b/app/build/intermediates/dex_archive_input_jar_hashes/debug/out index 2e46ea2..da9bd68 100644 Binary files a/app/build/intermediates/dex_archive_input_jar_hashes/debug/out and b/app/build/intermediates/dex_archive_input_jar_hashes/debug/out differ diff --git a/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex b/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex index 0495f67..ff5ccfa 100644 Binary files a/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex and b/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state index ed3be3f..1f4bd61 100644 Binary files a/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state and b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/7rtPpScSVILPRSrgg9CBv_vNznw= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/7rtPpScSVILPRSrgg9CBv_vNznw= new file mode 100644 index 0000000..be5c585 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/7rtPpScSVILPRSrgg9CBv_vNznw= differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/JD6pnD8KSE9SGfQGmI812_St5_U= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/JD6pnD8KSE9SGfQGmI812_St5_U= new file mode 100644 index 0000000..4626be6 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/JD6pnD8KSE9SGfQGmI812_St5_U= differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/RMbjDZUuJsS5IZjJpjTnECT2lug= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/RMbjDZUuJsS5IZjJpjTnECT2lug= new file mode 100644 index 0000000..9fef6ad Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/RMbjDZUuJsS5IZjJpjTnECT2lug= differ diff --git a/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties b/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties index 5df590b..109794e 100644 --- a/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties +++ b/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties @@ -1,4 +1,4 @@ -#Sat May 13 15:18:53 CST 2023 +#Sun May 14 15:35:59 CST 2023 net.micode.notes.app-main-7\:/drawable-hdpi/call_record.png=E\:\\andriodProj\\my_note\\gitProject\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_call_record.png.flat net.micode.notes.app-main-7\:/drawable-hdpi/edit_title_green.9.png=E\:\\andriodProj\\my_note\\gitProject\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_green.9.png.flat net.micode.notes.app-main-7\:/drawable-hdpi/edit_title_yellow.9.png=E\:\\andriodProj\\my_note\\gitProject\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_yellow.9.png.flat diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt index eeaab90..a1adef5 100644 --- a/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt +++ b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt @@ -1,4 +1,4 @@ -#Sat May 13 15:18:53 CST 2023 +#Sun May 14 19:26:17 CST 2023 base.0=E\:\\andriodProj\\my_note\\gitProject\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex renamed.0=classes.dex path.0=classes.dex diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources index 29f003d..5af8082 100644 Binary files a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources and b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/callback/NoteCallback.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/callback/NoteCallback.class new file mode 100644 index 0000000..db14d5a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/callback/NoteCallback.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class index 7be3b8a..80f79cd 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskClient.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$1.class new file mode 100644 index 0000000..6ffa5f9 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$BodyType.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$BodyType.class new file mode 100644 index 0000000..7558718 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer$BodyType.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer.class index 0d67a78..e4b83c8 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteHttpServer.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteRemoteConfig.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteRemoteConfig.class new file mode 100644 index 0000000..167676f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/NoteRemoteConfig.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils$1.class new file mode 100644 index 0000000..276b1de Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils.class new file mode 100644 index 0000000..e8814ec Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/UIUtils.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/Validator.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/Validator.class new file mode 100644 index 0000000..0f3a3af Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/Validator.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class index f29a7eb..96646dc 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class index ad0f99f..dd66e63 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class index 2462066..1e7f3d9 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1$1.class deleted file mode 100644 index 8f69d5a..0000000 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1$1.class and /dev/null differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1.class index 2cd911a..e3e528c 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2$1.class index ff24f01..fdb0481 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2$1.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2.class index a0b0870..819a802 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3$1.class new file mode 100644 index 0000000..ae6b129 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3.class new file mode 100644 index 0000000..7b1acab Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity.class index aec53a2..3544129 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteLoginActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$1.class index 4e4c916..92ea632 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$1.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$2.class index 75918da..0bf36ff 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$2.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$3.class new file mode 100644 index 0000000..8ccc4ca Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$4.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$4.class new file mode 100644 index 0000000..14e8975 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$4.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$5.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$5.class new file mode 100644 index 0000000..18e781c Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton$5.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton.class index 0a2df8f..1aa037a 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteMenuButton.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$1.class new file mode 100644 index 0000000..522ff3f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$2.class new file mode 100644 index 0000000..f313788 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1.class new file mode 100644 index 0000000..35d06bb Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$2.class new file mode 100644 index 0000000..ebfe79b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$3.class new file mode 100644 index 0000000..47bc86e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton.class new file mode 100644 index 0000000..a8dbafc Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteVerificationButton.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class index 3f9f251..4b91e3d 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class index 20f181c..41fa36e 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class index ff2bf37..416e9e5 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class index c76179b..861535d 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class index 3134798..73d4261 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class index 2eebbdd..65194f0 100644 Binary files a/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class and b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class differ diff --git a/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt index e8eb4f5..522040e 100644 --- a/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +++ b/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt @@ -53,232 +53,237 @@ 34 34-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:34:5-81 34-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:34:22-78 -35 -36 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:36:5-158:19 -37 android:debuggable="true" -38 android:icon="@drawable/icon_app" -38-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:37:9-42 -39 android:label="@string/app_name" -39-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:38:9-41 -40 android:testOnly="true" > -41 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:39:9-52:20 -42 android:name="net.micode.notes.ui.NotesListActivity" -42-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:40:13-49 -43 android:configChanges="keyboardHidden|orientation|screenSize" -43-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:41:13-74 -44 android:label="@string/app_name" -44-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:42:13-45 -45 android:launchMode="singleTop" -45-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:43:13-43 -46 android:theme="@style/NoteTheme" -46-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:44:13-45 -47 android:uiOptions="splitActionBarWhenNarrow" -47-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:45:13-57 -48 android:windowSoftInputMode="adjustPan" > -48-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:46:13-52 -49 -49-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:48:13-51:29 -50 -50-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:49:17-69 -50-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:49:25-66 -51 -52 -52-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:50:17-77 -52-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:50:27-74 -53 -54 -55 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:54:9-83:20 -56 android:name="net.micode.notes.ui.NoteEditActivity" -56-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:55:13-48 -57 android:configChanges="keyboardHidden|orientation|screenSize" -57-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:56:13-74 -58 android:launchMode="singleTop" -58-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:57:13-43 -59 android:theme="@style/NoteTheme" > -59-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:58:13-45 -60 -60-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:60:13-66:29 -60-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:60:28-49 -61 -61-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:62:17-69 -61-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:62:25-66 -62 -63 -63-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:17-76 -63-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:27-73 +35 +35-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:28:5-67 +35-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:28:22-64 +36 +37 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:37:5-163:19 +38 android:debuggable="true" +39 android:icon="@drawable/icon_app" +39-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:38:9-42 +40 android:label="@string/app_name" +40-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:39:9-41 +41 android:networkSecurityConfig="@xml/network_security_config" +41-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:40:9-69 +42 android:testOnly="true" > +43 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:42:9-57:20 +44 android:name="net.micode.notes.ui.NotesListActivity" +44-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:43:13-49 +45 android:configChanges="keyboardHidden|orientation|screenSize" +45-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:44:13-74 +46 android:label="@string/app_name" +46-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:45:13-45 +47 android:launchMode="singleTop" +47-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:46:13-43 +48 android:theme="@style/NoteTheme" +48-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:47:13-45 +49 android:uiOptions="splitActionBarWhenNarrow" +49-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:48:13-57 +50 android:windowSoftInputMode="adjustPan" > +50-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:49:13-52 +51 +51-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:53:13-56:29 +52 +52-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:54:17-69 +52-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:54:25-66 +53 +54 +54-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:55:17-77 +54-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:55:27-74 +55 +56 +57 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:59:9-88:20 +58 android:name="net.micode.notes.ui.NoteEditActivity" +58-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:60:13-48 +59 android:configChanges="keyboardHidden|orientation|screenSize" +59-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:61:13-74 +60 android:launchMode="singleTop" +60-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:62:13-43 +61 android:theme="@style/NoteTheme" > +61-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:13-45 +62 +62-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:65:13-71:29 +62-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:65:28-49 +63 +63-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:67:17-69 +63-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:67:25-66 64 -65 -65-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:17-78 -65-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:23-75 -66 -66-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:17-78 -66-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:23-75 -67 -68 -68-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:13-73:29 -69 -69-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:17-79 -69-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:25-76 -70 -71 -71-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:17-76 -71-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:27-73 +65 +65-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:17-76 +65-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:27-73 +66 +67 +67-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:17-78 +67-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:23-75 +68 +68-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:17-78 +68-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:23-75 +69 +70 +70-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:73:13-78:29 +71 +71-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:74:17-79 +71-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:74:25-76 72 -73 -73-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:17-78 -73-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:23-75 -74 -74-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:17-78 -74-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:64:23-75 -75 -76 -76-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:75:13-78:29 -77 -77-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:76:17-71 -77-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:76:25-68 -78 -79 -79-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:17-76 -79-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:63:27-73 -80 -81 -82 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:80:13-82:54 -83 android:name="android.app.searchable" -83-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:81:17-54 -84 android:resource="@xml/searchable" /> -84-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:82:17-51 -85 -86 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:85:9-90:20 -87 android:name="net.micode.notes.ui.AlarmAlertActivity" -87-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:86:17-54 -88 android:label="@string/app_name" -88-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:87:17-49 -89 android:launchMode="singleInstance" -89-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:88:17-52 -90 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" > -90-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:89:17-79 -91 -92 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:92:9-97:20 -93 android:name="net.micode.notes.ui.NotesPreferenceActivity" -93-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:93:17-75 -94 android:label="@string/preferences_title" -94-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:94:17-58 -95 android:launchMode="singleTop" -95-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:95:17-47 -96 android:theme="@android:style/Theme.Holo.Light" > -96-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:96:17-64 -97 -98 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:99:9-104:20 -99 android:name="net.micode.notes.ui.NoteLoginActivity" -99-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:99:19-55 -100 android:label="@string/login_title" -100-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:100:13-48 -101 android:launchMode="singleTop" -101-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:101:13-43 -102 android:theme="@style/NoteTheme" > -102-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:102:13-45 -103 -104 -105 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:106:9-109:43 -106 android:name="net.micode.notes.data.NotesProvider" -106-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:107:13-63 -107 android:authorities="micode_notes" -107-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:108:13-47 -108 android:multiprocess="true" /> -108-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:109:13-40 -109 -110 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:111:9-123:20 -111 android:name="net.micode.notes.widget.NoteWidgetProvider_2x" -111-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:112:13-57 -112 android:label="@string/app_widget2x2" > -112-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:113:13-50 -113 -113-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:114:13-118:29 -114 -114-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:115:17-84 -114-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:115:25-81 -115 -115-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:116:17-85 -115-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:116:25-82 -116 -116-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:117:17-85 -116-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:117:25-82 -117 -118 -119 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:13-122:58 -120 android:name="android.appwidget.provider" -120-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:17-58 -121 android:resource="@xml/widget_2x_info" /> -121-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:17-55 -122 -123 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:124:9-137:20 -124 android:name="net.micode.notes.widget.NoteWidgetProvider_4x" -124-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:125:13-57 -125 android:label="@string/app_widget4x4" > -125-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:126:13-50 -126 -126-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:114:13-118:29 -127 -127-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:115:17-84 -127-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:115:25-81 -128 -128-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:116:17-85 -128-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:116:25-82 -129 -129-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:117:17-85 -129-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:117:25-82 -130 -131 -132 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:13-122:58 -133 android:name="android.appwidget.provider" -133-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:17-58 -134 android:resource="@xml/widget_4x_info" /> -134-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:17-55 -135 -136 -136-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:139:9-143:20 -136-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:139:19-55 -137 -137-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:140:13-142:29 -138 -138-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:141:17-79 -138-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:141:25-76 -139 -140 -141 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:145:9-148:20 -142 android:name="net.micode.notes.ui.AlarmReceiver" -142-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:146:13-61 -143 android:process=":remote" > -143-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:147:13-38 -144 -145 -146 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:150:9-153:19 -147 android:name="net.micode.notes.gtask.remote.GTaskSyncService" -147-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:151:13-74 -148 android:exported="false" > -148-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:152:13-37 -149 -150 -151 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:155:9-157:52 -152 android:name="android.app.default_searchable" -152-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:156:13-58 -153 android:value=".ui.NoteEditActivity" /> -153-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:157:13-49 -154 -155 -156 +73 +73-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:17-76 +73-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:27-73 +74 +75 +75-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:17-78 +75-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:23-75 +76 +76-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:17-78 +76-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:69:23-75 +77 +78 +78-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:80:13-83:29 +79 +79-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:81:17-71 +79-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:81:25-68 +80 +81 +81-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:17-76 +81-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:68:27-73 +82 +83 +84 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:85:13-87:54 +85 android:name="android.app.searchable" +85-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:86:17-54 +86 android:resource="@xml/searchable" /> +86-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:87:17-51 +87 +88 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:90:9-95:20 +89 android:name="net.micode.notes.ui.AlarmAlertActivity" +89-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:91:17-54 +90 android:label="@string/app_name" +90-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:92:17-49 +91 android:launchMode="singleInstance" +91-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:93:17-52 +92 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" > +92-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:94:17-79 +93 +94 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:97:9-102:20 +95 android:name="net.micode.notes.ui.NotesPreferenceActivity" +95-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:98:17-75 +96 android:label="@string/preferences_title" +96-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:99:17-58 +97 android:launchMode="singleTop" +97-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:100:17-47 +98 android:theme="@android:style/Theme.Holo.Light" > +98-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:101:17-64 +99 +100 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:104:9-109:20 +101 android:name="net.micode.notes.ui.NoteLoginActivity" +101-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:104:19-55 +102 android:label="@string/login_title" +102-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:105:13-48 +103 android:launchMode="singleTop" +103-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:106:13-43 +104 android:theme="@style/NoteTheme" > +104-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:107:13-45 +105 +106 +107 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:111:9-114:43 +108 android:name="net.micode.notes.data.NotesProvider" +108-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:112:13-63 +109 android:authorities="micode_notes" +109-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:113:13-47 +110 android:multiprocess="true" /> +110-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:114:13-40 +111 +112 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:116:9-128:20 +113 android:name="net.micode.notes.widget.NoteWidgetProvider_2x" +113-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:117:13-57 +114 android:label="@string/app_widget2x2" > +114-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:118:13-50 +115 +115-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:119:13-123:29 +116 +116-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:17-84 +116-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:25-81 +117 +117-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:17-85 +117-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:25-82 +118 +118-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:17-85 +118-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:25-82 +119 +120 +121 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:125:13-127:58 +122 android:name="android.appwidget.provider" +122-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:126:17-58 +123 android:resource="@xml/widget_2x_info" /> +123-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:127:17-55 +124 +125 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:129:9-142:20 +126 android:name="net.micode.notes.widget.NoteWidgetProvider_4x" +126-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:130:13-57 +127 android:label="@string/app_widget4x4" > +127-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:131:13-50 +128 +128-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:119:13-123:29 +129 +129-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:17-84 +129-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:120:25-81 +130 +130-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:17-85 +130-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:121:25-82 +131 +131-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:17-85 +131-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:122:25-82 +132 +133 +134 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:125:13-127:58 +135 android:name="android.appwidget.provider" +135-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:126:17-58 +136 android:resource="@xml/widget_4x_info" /> +136-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:127:17-55 +137 +138 +138-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:144:9-148:20 +138-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:144:19-55 +139 +139-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:145:13-147:29 +140 +140-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:146:17-79 +140-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:146:25-76 +141 +142 +143 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:150:9-153:20 +144 android:name="net.micode.notes.ui.AlarmReceiver" +144-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:151:13-61 +145 android:process=":remote" > +145-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:152:13-38 +146 +147 +148 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:155:9-158:19 +149 android:name="net.micode.notes.gtask.remote.GTaskSyncService" +149-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:156:13-74 +150 android:exported="false" > +150-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:157:13-37 +151 +152 +153 E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:160:9-162:52 +154 android:name="android.app.default_searchable" +154-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:161:13-58 +155 android:value=".ui.NoteEditActivity" /> +155-->E:\andriodProj\my_note\gitProject\app\src\main\AndroidManifest.xml:162:13-49 +156 +157 +158 diff --git a/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml index 468e734..2b5edce 100644 --- a/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml +++ b/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml @@ -32,11 +32,13 @@ + + + + + android:label="@string/app_name" + android:networkSecurityConfig="@xml/network_security_config" + > + android:windowSoftInputMode="adjustPan" + + > diff --git a/app/src/main/java/net/micode/notes/callback/NoteCallback.java b/app/src/main/java/net/micode/notes/callback/NoteCallback.java new file mode 100644 index 0000000..415e2b9 --- /dev/null +++ b/app/src/main/java/net/micode/notes/callback/NoteCallback.java @@ -0,0 +1,5 @@ +package net.micode.notes.callback; + +public interface NoteCallback { + public void execute(); +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java index c67dfdf..f6fec4d 100644 --- a/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -23,7 +23,6 @@ import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; - import net.micode.notes.gtask.data.Node; import net.micode.notes.gtask.data.Task; import net.micode.notes.gtask.data.TaskList; @@ -31,34 +30,13 @@ import net.micode.notes.gtask.exception.ActionFailureException; import net.micode.notes.gtask.exception.NetworkFailureException; import net.micode.notes.tool.GTaskStringUtils; import net.micode.notes.ui.NotesPreferenceActivity; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.cookie.Cookie; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.HttpConnectionParams; -import org.apache.http.params.HttpParams; -import org.apache.http.params.HttpProtocolParams; +import okhttp3.*; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.List; -import java.util.zip.GZIPInputStream; -import java.util.zip.Inflater; -import java.util.zip.InflaterInputStream; +import java.util.concurrent.TimeUnit; public class GTaskClient { @@ -72,7 +50,7 @@ public class GTaskClient { private static GTaskClient mInstance = null; - private DefaultHttpClient mHttpClient; + private OkHttpClient okHttpClient; private String mGetUrl; @@ -91,7 +69,7 @@ public class GTaskClient { private JSONArray mUpdateArray; private GTaskClient() { - mHttpClient = null; + okHttpClient = null; mGetUrl = GTASK_GET_URL; mPostUrl = GTASK_POST_URL; mClientVersion = -1; @@ -225,38 +203,31 @@ public class GTaskClient { return true; } + private boolean loginGtask(String authToken) { - int timeoutConnection = 10000; - int timeoutSocket = 15000; - HttpParams httpParameters = new BasicHttpParams(); - HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); - HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); - mHttpClient = new DefaultHttpClient(httpParameters); - BasicCookieStore localBasicCookieStore = new BasicCookieStore(); - mHttpClient.setCookieStore(localBasicCookieStore); - HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false); - - // login gtask try { + int timeoutConnection = 10; + int timeoutSocket = 15; + + + okHttpClient = new OkHttpClient.Builder() + .connectTimeout(timeoutConnection, TimeUnit.SECONDS) + .readTimeout(timeoutSocket, TimeUnit.SECONDS) + .build(); + String loginUrl = mGetUrl + "?auth=" + authToken; - HttpGet httpGet = new HttpGet(loginUrl); - HttpResponse response = null; - response = mHttpClient.execute(httpGet); - - // get the cookie now - List cookies = mHttpClient.getCookieStore().getCookies(); - boolean hasAuthCookie = false; - for (Cookie cookie : cookies) { - if (cookie.getName().contains("GTL")) { - hasAuthCookie = true; - } - } - if (!hasAuthCookie) { + Request request = new Request.Builder() + .url(loginUrl) + .build(); + + Response response = okHttpClient.newCall(request).execute(); + + if (!response.isSuccessful()) { Log.w(TAG, "it seems that there is no auth cookie"); + return false; } - // get the client version - String resString = getResponseContent(response.getEntity()); + String resString = response.body().string(); String jsBegin = "_setup("; String jsEnd = ")}"; int begin = resString.indexOf(jsBegin); @@ -265,8 +236,11 @@ public class GTaskClient { if (begin != -1 && end != -1 && begin < end) { jsString = resString.substring(begin + jsBegin.length(), end); } + JSONObject js = new JSONObject(jsString); mClientVersion = js.getLong("v"); + return true; + } catch (JSONException e) { Log.e(TAG, e.toString()); e.printStackTrace(); @@ -276,75 +250,63 @@ public class GTaskClient { Log.e(TAG, "httpget gtask_url failed"); return false; } - - return true; } + + private int getActionId() { return mActionId++; } - private HttpPost createHttpPost() { - HttpPost httpPost = new HttpPost(mPostUrl); - httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - httpPost.setHeader("AT", "1"); - return httpPost; - } - private String getResponseContent(HttpEntity entity) throws IOException { - String contentEncoding = null; - if (entity.getContentEncoding() != null) { - contentEncoding = entity.getContentEncoding().getValue(); - Log.d(TAG, "encoding: " + contentEncoding); - } + private Request createHttpPost(String json) { + MediaType JSON = MediaType.parse("application/x-www-form-urlencoded; charset=utf-8"); + RequestBody body = RequestBody.create(JSON, json); - InputStream input = entity.getContent(); - if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) { - input = new GZIPInputStream(entity.getContent()); - } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) { - Inflater inflater = new Inflater(true); - input = new InflaterInputStream(entity.getContent(), inflater); - } + Request request = new Request.Builder() + .url(mPostUrl) + .post(body) + .addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") + .addHeader("AT", "1") + .build(); + return request; + } + + + private String getResponseContent(Response response) throws IOException { try { - InputStreamReader isr = new InputStreamReader(input); - BufferedReader br = new BufferedReader(isr); - StringBuilder sb = new StringBuilder(); - - while (true) { - String buff = br.readLine(); - if (buff == null) { - return sb.toString(); - } - sb = sb.append(buff); - } + return response.body().string(); } finally { - input.close(); + response.close(); } } + private JSONObject postRequest(JSONObject js) throws NetworkFailureException { if (!mLoggedin) { Log.e(TAG, "please login first"); throw new ActionFailureException("not logged in"); } - HttpPost httpPost = createHttpPost(); try { - LinkedList list = new LinkedList(); - list.add(new BasicNameValuePair("r", js.toString())); - UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); - httpPost.setEntity(entity); - - // execute the post - HttpResponse response = mHttpClient.execute(httpPost); - String jsString = getResponseContent(response.getEntity()); + okHttpClient = new OkHttpClient(); + + MediaType JSON = MediaType.parse("application/json; charset=utf-8"); + RequestBody body = RequestBody.create(JSON, js.toString()); + + Request request = new Request.Builder() + .url(mPostUrl) + .post(body) + .build(); + + Response response = okHttpClient.newCall(request).execute(); + + if (!response.isSuccessful()) throw new NetworkFailureException("postRequest failed"); + + String jsString = response.body().string(); return new JSONObject(jsString); - } catch (ClientProtocolException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("postRequest failed"); } catch (IOException e) { Log.e(TAG, e.toString()); e.printStackTrace(); @@ -360,6 +322,8 @@ public class GTaskClient { } } + + public void createTask(Task task) throws NetworkFailureException { commitUpdate(); try { @@ -516,12 +480,14 @@ public class GTaskClient { } try { - HttpGet httpGet = new HttpGet(mGetUrl); - HttpResponse response = null; - response = mHttpClient.execute(httpGet); + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url(mGetUrl).build(); + + Response response = client.newCall(request).execute(); + if (!response.isSuccessful()) throw new NetworkFailureException("gettasklists: httpget failed"); // get the task list - String resString = getResponseContent(response.getEntity()); + String resString = response.body().string(); String jsBegin = "_setup("; String jsEnd = ")}"; int begin = resString.indexOf(jsBegin); @@ -532,10 +498,6 @@ public class GTaskClient { } JSONObject js = new JSONObject(jsString); return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); - } catch (ClientProtocolException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("gettasklists: httpget failed"); } catch (IOException e) { Log.e(TAG, e.toString()); e.printStackTrace(); @@ -547,6 +509,7 @@ public class GTaskClient { } } + public JSONArray getTaskList(String listGid) throws NetworkFailureException { commitUpdate(); try { diff --git a/app/src/main/java/net/micode/notes/tool/NoteHttpServer.java b/app/src/main/java/net/micode/notes/tool/NoteHttpServer.java index 3d9b192..0d5d201 100644 --- a/app/src/main/java/net/micode/notes/tool/NoteHttpServer.java +++ b/app/src/main/java/net/micode/notes/tool/NoteHttpServer.java @@ -1,38 +1,45 @@ package net.micode.notes.tool; import okhttp3.*; +import org.json.JSONException; +import org.json.JSONObject; import java.io.IOException; +import java.util.Iterator; public class NoteHttpServer { - private final OkHttpClient client = new OkHttpClient(); + public enum BodyType { + JSON, FORM_DATA + } + + private final OkHttpClient client = new OkHttpClient(); + public static final String FROM_DATA = "formdata"; + public static final String JSON = "json"; /** - * sync get - * @param url the url to send the request to - * @return the response body as a string - * @throws IOException if the request fails - * - * */ - - public String sendSyncGetRequest(String url) throws IOException { + * sync get + * + * @param url the url to send the request to + * @return the response body as a string + * @throws IOException if the request fails + */ + + public String sendSyncGetRequest(HttpUrl url) throws IOException { Request req = new Request.Builder() .url(url) .build(); - try(Response res = client.newCall(req).execute()){ + try (Response res = client.newCall(req).execute()) { return res.body().string(); } } /** - * - * @param url the url to send the request to - * @param callback the callback to be executed *when the request is complete + * @param url the url to send the request to + * @param callback the callback to be executed *when the request is complete * @return the response body as a string - * - * */ - public void sendAsyncGetRequest(String url, Callback callback){ + */ + public void sendAsyncGetRequest(HttpUrl url, Callback callback) { Request req = new Request.Builder() .url(url) .build(); @@ -41,28 +48,74 @@ public class NoteHttpServer { /** - * sync post - * - * @param url the url to send the request to - * @param jsonBody the json body to send with the request - * @return the response body as a string - * - * */ - public String sendSyncPostRequest(String url,String jsonBody)throws IOException{ - RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonBody); + * sync post + * + * @param url the url to send the request to + * @param body the body of the request + * @param bodyType the type of the body + * @return the response body as a string + */ + public String sendSyncPostRequest(HttpUrl url, String body, BodyType bodyType) throws IOException { + RequestBody requestBody; + switch (bodyType) { + case JSON: + requestBody = RequestBody.create(MediaType.parse("application/json"), body); + break; + case FORM_DATA: + FormBody.Builder formBuilder = new FormBody.Builder(); + try { + JSONObject jsonObject = new JSONObject(body); + Iterator keys = jsonObject.keys(); + while (keys.hasNext()) { + String key = keys.next(); + String value = jsonObject.getString(key); + formBuilder.add(key, value); + } + } catch (JSONException e) { + // Handle exception + return null; + } + requestBody = formBuilder.build(); + default: + // Invalid body type + return null; + } Request req = new Request.Builder() .url(url) .post(requestBody) .build(); - try(Response res = client.newCall(req).execute()){ + try (Response res = client.newCall(req).execute()) { return res.body().string(); } } - public void sendAsyncPostRequest(String url,String jsonBody,Callback callback){ - RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonBody); + /** + * @param url the url to send the request to + * @param body the body of the request + * @param bodyType the type of the body + */ + public void sendAsyncPostRequest(HttpUrl url, String body, BodyType bodyType, Callback callback) throws JSONException, IllegalArgumentException { + RequestBody requestBody; + switch (bodyType) { + case JSON: + requestBody = RequestBody.create(MediaType.parse("application/json"), body); + break; + case FORM_DATA: + FormBody.Builder formBuilder = new FormBody.Builder(); + JSONObject jsonObject = new JSONObject(body); + Iterator keysIterator = jsonObject.keys(); + while (keysIterator.hasNext()) { + String key = keysIterator.next(); + String value = jsonObject.getString(key); + formBuilder.add(key, value); + } + requestBody = formBuilder.build(); + break; + default: + throw new IllegalArgumentException("Invalid content type: " + bodyType); + } Request req = new Request.Builder() .url(url) @@ -72,4 +125,5 @@ public class NoteHttpServer { client.newCall(req).enqueue(callback); } + } diff --git a/app/src/main/java/net/micode/notes/tool/NoteRemoteConfig.java b/app/src/main/java/net/micode/notes/tool/NoteRemoteConfig.java new file mode 100644 index 0000000..eb6004d --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/NoteRemoteConfig.java @@ -0,0 +1,21 @@ +package net.micode.notes.tool; + +public class NoteRemoteConfig { + + //private + public static final String VERIFICATION_HOST = "192.168.13.123"; + private static final int VERIFICATION_PORT = 3000; + private static final String PROTOCOL = "http"; + private static final String GLOBAL_PREFIX = "/api"; + private static final String verification_url = PROTOCOL + "://" + VERIFICATION_HOST + ":" + VERIFICATION_PORT+ GLOBAL_PREFIX; + + + //public + public static final int RESPONSE_SUCCESS = 200; + public static final int RESPONSE_FAIL = 400; + + public static String generateUrl(String endpoint) { + return verification_url + endpoint; + } + +} diff --git a/app/src/main/java/net/micode/notes/tool/UIUtils.java b/app/src/main/java/net/micode/notes/tool/UIUtils.java new file mode 100644 index 0000000..582d0e0 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/UIUtils.java @@ -0,0 +1,17 @@ +package net.micode.notes.tool; + +import android.app.Activity; +import net.micode.notes.callback.NoteCallback; + +public class UIUtils { + public static void runInUI(Activity activity, NoteCallback callback){ + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + callback.execute(); + } + }); + } + +} + diff --git a/app/src/main/java/net/micode/notes/tool/Validator.java b/app/src/main/java/net/micode/notes/tool/Validator.java new file mode 100644 index 0000000..e21d45f --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/Validator.java @@ -0,0 +1,11 @@ +package net.micode.notes.tool; + +public class Validator { + + //利用正则校验手机号是否是中国大陆手机号 + public static boolean isPhoneNum(String phoneNum) { + String regex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(16[6])|(17[0-8])|(18[0-9])|(19[1,8,9]))\\d{8}$"; + return phoneNum.matches(regex); + } + +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteLoginActivity.java b/app/src/main/java/net/micode/notes/ui/NoteLoginActivity.java index 4b3d792..9dfd33c 100644 --- a/app/src/main/java/net/micode/notes/ui/NoteLoginActivity.java +++ b/app/src/main/java/net/micode/notes/ui/NoteLoginActivity.java @@ -6,20 +6,39 @@ import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.util.Log; import android.view.View; import android.view.ViewAnimationUtils; import android.widget.Button; +import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.Toast; import net.micode.notes.R; +import net.micode.notes.callback.NoteCallback; +import net.micode.notes.tool.NoteHttpServer; +import net.micode.notes.tool.NoteRemoteConfig; +import net.micode.notes.tool.UIUtils; +import okhttp3.*; +import org.jetbrains.annotations.NotNull; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; public class NoteLoginActivity extends Activity { + //tag + private static final String TAG = "chenqy"; + private NoteHttpServer server; private NbButton btn_login; + private Button btn_verification; + private EditText note_login_phone_num; + private EditText note_verification_code; private RelativeLayout rlContent; private Handler handler; private Animator animator; private long lastClickTime = 0; + private static final String VERIFICATION_CODE_URL = "/verify/verifycode"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -30,27 +49,82 @@ public class NoteLoginActivity extends Activity { } - private void bindViews(){ + private void bindViews() { btn_login = (NbButton) findViewById(R.id.btn_login); + note_verification_code = (EditText) findViewById(R.id.note_verification_code); + note_login_phone_num = (EditText) findViewById(R.id.note_login_phone_num); rlContent = (RelativeLayout) findViewById(R.id.btn_login_area); - rlContent.getBackground().setAlpha(0); - handler=new Handler(); + handler = new Handler(); + + } - private void initResources(){ + private void initResources() { + server = new NoteHttpServer(); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - btn_login.startAnim(); - handler.postDelayed(new Runnable() { - @Override - public void run() { + //check verifycode是否合法 合法就跳转 + try { + checkVerifyCode(); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (JSONException e) { + throw new RuntimeException(e); + } + } + }); + } - //跳转 - gotoNew(); + private void checkVerifyCode() throws IOException, JSONException { + HttpUrl url = HttpUrl.parse(NoteRemoteConfig.generateUrl(VERIFICATION_CODE_URL)); + String phone_num = note_login_phone_num.getText().toString(); + String verify_code = note_verification_code.getText().toString(); + Log.e(TAG, "checkVerifyCode: " + phone_num + " " + verify_code); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("phone", phone_num); + jsonObject.put("verifycode", verify_code); + String status = ""; + server.sendAsyncPostRequest(url, jsonObject.toString(), NoteHttpServer.BodyType.FORM_DATA, new Callback() { + @Override + public void onFailure(@NotNull Call call, @NotNull IOException e) { + UIUtils.runInUI(NoteLoginActivity.this, new NoteCallback() { + @Override + public void execute() { + Toast.makeText(getApplicationContext(), "网络错误", Toast.LENGTH_SHORT).show(); } - },500); + }); + } + + @Override + public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { + JSONObject responseJson = null; + try { + responseJson = new JSONObject(response.body().string()); + } catch (JSONException e) { + throw new RuntimeException(e); + } + int code = -1; + try { + code = responseJson.getInt("code"); + } catch (JSONException e) { + throw new RuntimeException(e); + } + if(code == NoteRemoteConfig.RESPONSE_SUCCESS){ + UIUtils.runInUI(NoteLoginActivity.this, () -> { + btn_login.startAnim(); + handler.postDelayed(() -> { + //跳转 + gotoNew(); + }, 500); + }); + }else{ + UIUtils.runInUI(NoteLoginActivity.this, () -> { + Toast.makeText(getApplicationContext(), "验证码错误", Toast.LENGTH_SHORT).show(); + }); + } + } }); @@ -58,12 +132,12 @@ public class NoteLoginActivity extends Activity { private void gotoNew() { btn_login.gotoNew(); - int xc=(btn_login.getLeft()+btn_login.getRight())/2; - int yc=(btn_login.getTop()+btn_login.getBottom())/2; + int xc = (btn_login.getLeft() + btn_login.getRight()) / 2; + int yc = (btn_login.getTop() + btn_login.getBottom()) / 2; float startRadius = 0; float endRadus = 1111; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - animator= ViewAnimationUtils.createCircularReveal(rlContent,xc,yc,0,1111); + animator = ViewAnimationUtils.createCircularReveal(rlContent, xc, yc, 0, 1111); } animator.setDuration(300); animator.addListener(new Animator.AnimatorListener() { @@ -74,10 +148,10 @@ public class NoteLoginActivity extends Activity { public void run() { // startActivity(intent); finish(); - overridePendingTransition(R.anim.anim_in,R.anim.anim_out); + overridePendingTransition(R.anim.anim_in, R.anim.anim_out); } - },200); + }, 200); } @Override diff --git a/app/src/main/java/net/micode/notes/ui/NoteMenuButton.java b/app/src/main/java/net/micode/notes/ui/NoteMenuButton.java index e4b275b..c78d5b9 100644 --- a/app/src/main/java/net/micode/notes/ui/NoteMenuButton.java +++ b/app/src/main/java/net/micode/notes/ui/NoteMenuButton.java @@ -1,5 +1,7 @@ package net.micode.notes.ui; +import android.animation.Animator; +import android.animation.ValueAnimator; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; @@ -21,6 +23,7 @@ public class NoteMenuButton extends Button implements View.OnClickListener { //TODO 定制menu private PopupWindow popupWindow; private Context context; + private boolean isClickable = true; public NoteMenuButton(Context context) { super(context); @@ -47,12 +50,24 @@ public class NoteMenuButton extends Button implements View.OnClickListener { setOnClickListener(this); } +// @Override +// public void onClick(View v) { +// if(!isClickable) return; +// Log.e(TAG, "onClick"); +// initPopMenu(v); +// } + @Override public void onClick(View v) { + if (!isClickable) return; Log.e(TAG, "onClick"); initPopMenu(v); + // 添加渐变动画效果 + addStartAnimation(); } + + private void initPopMenu(View v) { //这一步是为了获取屏幕的宽高,便于用来设置PopupWindow的大小 DisplayMetrics dm = getResources().getDisplayMetrics(); @@ -79,10 +94,63 @@ public class NoteMenuButton extends Button implements View.OnClickListener { @Override public void onClick(View v) { popupWindow.dismiss(); + addEndAnimation(); } }); + popupWindow.showAtLocation(((Activity)context).getWindow().getDecorView(), Gravity.CENTER,0,0); + isClickable = false; + } + + public void addStartAnimation(){ + ValueAnimator valueAnimator = ValueAnimator.ofFloat(1f, 0.8f); + valueAnimator.setDuration(300); + valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float scale = (float) animation.getAnimatedValue(); + NoteMenuButton.this.setScaleX(scale); + NoteMenuButton.this.setScaleY(scale); + } + }); + valueAnimator.start(); + } + + public void addEndAnimation(){ + // 添加渐变动画效果 + ValueAnimator valueAnimator = ValueAnimator.ofFloat(0.8f, 1f); + valueAnimator.setDuration(300); + valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + float scale = (float) animation.getAnimatedValue(); + NoteMenuButton.this.setScaleX(scale); + NoteMenuButton.this.setScaleY(scale); + } + }); + valueAnimator.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + + } + + @Override + public void onAnimationEnd(Animator animation) { + isClickable = true; + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + valueAnimator.start(); } } diff --git a/app/src/main/java/net/micode/notes/ui/NoteVerificationButton.java b/app/src/main/java/net/micode/notes/ui/NoteVerificationButton.java new file mode 100644 index 0000000..00562f8 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteVerificationButton.java @@ -0,0 +1,149 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.content.Context; +import android.os.CountDownTimer; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; +import net.micode.notes.R; +import net.micode.notes.callback.NoteCallback; +import net.micode.notes.tool.NoteHttpServer; +import net.micode.notes.tool.NoteRemoteConfig; +import net.micode.notes.tool.UIUtils; +import net.micode.notes.tool.Validator; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.HttpUrl; +import okhttp3.Response; +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; +import java.util.Locale; + + +public class NoteVerificationButton extends Button implements View.OnClickListener { + private static final String TAG = "chenqy"; + private NoteHttpServer server; + private EditText note_login_phone_num; + private EditText note_verification_code; + + private boolean isClickable = true; // flag to check if the button is clickable or not + private CountDownTimer countDownTimer; // timer to count down + + private static final String VERIFICATION_ENDPOINT = "/verify/getverifycode"; + + + public NoteVerificationButton(Context context) { + super(context); + } + + public NoteVerificationButton(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public NoteVerificationButton(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + init(); + } + + private void init() { + note_login_phone_num = ((Activity) getContext()).findViewById(R.id.note_login_phone_num); + note_verification_code = ((Activity) getContext()).findViewById(R.id.note_verification_code); + server = new NoteHttpServer(); + this.setOnClickListener(this); + } + + + + + @Override + public void onClick(View v) { + Log.e(TAG, "onClick: "); + if (isClickable) { // only execute if the button is clickable + HttpUrl url = HttpUrl.parse(NoteRemoteConfig.generateUrl(VERIFICATION_ENDPOINT)); + String phone = note_login_phone_num.getText().toString(); + //验证手机号是否合法 + if (!Validator.isPhoneNum(phone)) { + UIUtils.runInUI((Activity) getContext(),() -> Toast.makeText(getContext(), "手机号不合法", Toast.LENGTH_SHORT).show()); + return; + } + disableButton(); // disable the button and start the countdown timer + + //发送验证码 + sendVerificationCode(phone); + //输入框聚焦在验证码输入框 + note_verification_code.requestFocus(); + } + } + + private void sendVerificationCode(String phone) { + HttpUrl url = HttpUrl.parse(NoteRemoteConfig.generateUrl(VERIFICATION_ENDPOINT)); + url = url.newBuilder().addQueryParameter("phone", phone).build(); + server.sendAsyncGetRequest(url, new Callback() { + @Override + public void onFailure(@NotNull Call call, @NotNull IOException e) { + enableButton(); // enable the button if the request fails + ((Activity) getContext()).runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getContext(), "发送失败", Toast.LENGTH_SHORT).show(); + } + }); + } + + @Override + public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException { + enableButton(); // enable the button if the request succeeds + ((Activity) getContext()).runOnUiThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getContext(), "发生成功", Toast.LENGTH_SHORT).show(); + } + }); + } + }); + } + + private void disableButton() { + isClickable = false; + countDownTimer = new CountDownTimer(5000, 1000) { // start a countdown timer for 60 seconds + @Override + public void onTick(long millisUntilFinished) { + long remainingSeconds = (millisUntilFinished + 999) / 1000; // round up the remaining milliseconds to seconds + long seconds = remainingSeconds % 60; + UIUtils.runInUI((Activity) getContext(), () -> { + setText(String.format(Locale.getDefault(), "%ds", seconds)); // set the button text to show the remaining time + }); + + } + + @Override + public void onFinish() { + enableButton(); // enable the button when the timer finishes + } + }.start(); + } + + private void enableButton() { + isClickable = true; + countDownTimer.cancel(); // cancel the countdown timer if it's still running + UIUtils.runInUI((Activity) getContext(), new NoteCallback() { + @Override + public void execute() { + setText("获取验证码"); // set the button text back to its original text + } + }); + } + + +} diff --git a/app/src/main/res/layout/note_login.xml b/app/src/main/res/layout/note_login.xml index 9515b73..23c27f1 100644 --- a/app/src/main/res/layout/note_login.xml +++ b/app/src/main/res/layout/note_login.xml @@ -1,6 +1,7 @@ + + + android:layout_height="match_parent" + > - -