diff --git a/.gradle/7.5/checksums/checksums.lock b/.gradle/7.5/checksums/checksums.lock new file mode 100644 index 0000000..5ea88a4 Binary files /dev/null and b/.gradle/7.5/checksums/checksums.lock differ diff --git a/.gradle/7.5/dependencies-accessors/dependencies-accessors.lock b/.gradle/7.5/dependencies-accessors/dependencies-accessors.lock new file mode 100644 index 0000000..26afa6b Binary files /dev/null and b/.gradle/7.5/dependencies-accessors/dependencies-accessors.lock differ diff --git a/.gradle/7.5/dependencies-accessors/gc.properties b/.gradle/7.5/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/7.5/executionHistory/executionHistory.bin b/.gradle/7.5/executionHistory/executionHistory.bin new file mode 100644 index 0000000..04cc7bd Binary files /dev/null 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 new file mode 100644 index 0000000..76d5f40 Binary files /dev/null and b/.gradle/7.5/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.5/fileChanges/last-build.bin b/.gradle/7.5/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/.gradle/7.5/fileChanges/last-build.bin differ diff --git a/.gradle/7.5/fileHashes/fileHashes.bin b/.gradle/7.5/fileHashes/fileHashes.bin new file mode 100644 index 0000000..629d61c Binary files /dev/null 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 new file mode 100644 index 0000000..6349c99 Binary files /dev/null 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 new file mode 100644 index 0000000..e4c7c43 Binary files /dev/null and b/.gradle/7.5/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/7.5/gc.properties b/.gradle/7.5/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..318d796 Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..f6e600f --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Tue Apr 18 17:24:08 CST 2023 +gradle.version=7.5 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000..e4a4080 Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe new file mode 100644 index 0000000..a9ead50 Binary files /dev/null and b/.gradle/file-system.probe differ diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..3e5b267 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..a5f05cd --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5969c4d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..a3e420e --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,35 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 33 + buildToolsVersion "33.0.2" + useLibrary 'org.apache.http.legacy' + + defaultConfig { + applicationId "net.micode.notes" + minSdkVersion 14 + targetSdkVersion 33 /*目标版本与当先版本对应*/ + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } + packagingOptions{ + exclude 'META-INF/DEPENDENCIES' + } + dependencies { + //noinspection GradleCompatible + implementation 'com.android.support:appcompat-v7:28.0.0' //导入向下兼容包 + } +} + +dependencies { + implementation fileTree(dir: 'C:\\Users\\Re11a\\AndroidStudioProjects\\mi\\MiNotes\\httpcomponents-client-4.5.14-bin\\lib', + include: ['*.aar', '*.jar'], + exclude: ['commons-codec-1.11.jar','httpcomponents-4.5.14.jar','httpclient-cache-4.5.14.jar', + 'fluent-hc-4.5.14.jar','httpmime-4.5.14.jar','httpclient-4.5.14.jar']) + //Duplicate class found!类重复!,exclude忽略jar包 +} diff --git a/app/build/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.java b/app/build/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.java new file mode 100644 index 0000000..db17690 --- /dev/null +++ b/app/build/generated/source/buildConfig/debug/net/micode/notes/BuildConfig.java @@ -0,0 +1,12 @@ +/** + * Automatically generated file. DO NOT MODIFY + */ +package net.micode.notes; + +public final class BuildConfig { + public static final boolean DEBUG = Boolean.parseBoolean("true"); + public static final String APPLICATION_ID = "net.micode.notes"; + public static final String BUILD_TYPE = "debug"; + public static final int VERSION_CODE = 1; + public static final String VERSION_NAME = "0.1"; +} diff --git a/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/build/intermediates/apk/debug/app-debug.apk b/app/build/intermediates/apk/debug/app-debug.apk new file mode 100644 index 0000000..695bb03 Binary files /dev/null and b/app/build/intermediates/apk/debug/app-debug.apk differ diff --git a/app/build/intermediates/apk/debug/output-metadata.json b/app/build/intermediates/apk/debug/output-metadata.json new file mode 100644 index 0000000..b2231b9 --- /dev/null +++ b/app/build/intermediates/apk/debug/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "net.micode.notes", + "variantName": "debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "0.1", + "outputFile": "app-debug.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt b/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt new file mode 100644 index 0000000..46dacc6 --- /dev/null +++ b/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt @@ -0,0 +1,2 @@ +#- File Locator - +listingFile=../../apk/debug/output-metadata.json diff --git a/app/build/intermediates/app_metadata/debug/app-metadata.properties b/app/build/intermediates/app_metadata/debug/app-metadata.properties new file mode 100644 index 0000000..260f1ee --- /dev/null +++ b/app/build/intermediates/app_metadata/debug/app-metadata.properties @@ -0,0 +1,2 @@ +appMetadataVersion=1.1 +androidGradlePluginVersion=7.4.2 diff --git a/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json b/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json new file mode 100644 index 0000000..714f651 --- /dev/null +++ b/app/build/intermediates/compatible_screen_manifest/debug/output-metadata.json @@ -0,0 +1,10 @@ +{ + "version": 3, + "artifactType": { + "type": "COMPATIBLE_SCREEN_MANIFEST", + "kind": "Directory" + }, + "applicationId": "net.micode.notes", + "variantName": "debug", + "elements": [] +} \ No newline at end of file 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 new file mode 100644 index 0000000..ce62ae3 Binary files /dev/null and b/app/build/intermediates/compile_and_runtime_not_namespaced_r_class_jar/debug/R.jar differ diff --git a/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin new file mode 100644 index 0000000..601f245 Binary files /dev/null and b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin differ diff --git a/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin new file mode 100644 index 0000000..601f245 Binary files /dev/null and b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_1/graph.bin differ diff --git a/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin new file mode 100644 index 0000000..601f245 Binary files /dev/null and b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_2/graph.bin differ diff --git a/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin new file mode 100644 index 0000000..601f245 Binary files /dev/null and b/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin differ diff --git a/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex b/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex new file mode 100644 index 0000000..e7518be Binary files /dev/null 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 new file mode 100644 index 0000000..09edf64 Binary files /dev/null and b/app/build/intermediates/dex_archive_input_jar_hashes/debug/out differ diff --git a/app/build/intermediates/dex_number_of_buckets_file/debug/out b/app/build/intermediates/dex_number_of_buckets_file/debug/out new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/app/build/intermediates/dex_number_of_buckets_file/debug/out @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex b/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/classes.dex new file mode 100644 index 0000000..354d669 Binary files /dev/null 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 new file mode 100644 index 0000000..c749895 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state 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 new file mode 100644 index 0000000..aaf8db5 --- /dev/null +++ b/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties @@ -0,0 +1,96 @@ +#Thu May 18 16:03:26 CST 2023 +net.micode.notes.app-main-10\:/layout/settings_header.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_settings_header.xml.flat +net.micode.notes.app-main-10\:/layout/note_edit_list_item.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit_list_item.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_white.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_white.9.png.flat +net.micode.notes.app-main-10\:/menu/call_note_edit.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_call_note_edit.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/call_record.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_call_record.png.flat +net.micode.notes.app-main-10\:/color/secondary_text_dark.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\color_secondary_text_dark.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_green_down.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_down.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/bg_color_btn_mask.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_color_btn_mask.png.flat +net.micode.notes.app-main-10\:/layout/note_edit.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_blue_up.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_up.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_white_single.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_single.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/title_bar_bg.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_bar_bg.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_title_blue.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_blue.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/selected.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_selected.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_4x_red.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_red.png.flat +net.micode.notes.app-main-10\:/layout/widget_4x.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_4x.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_white_middle.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_middle.9.png.flat +net.micode.notes.app-main-10\:/xml/preferences.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\xml_preferences.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_red_up.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_up.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_title_green.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_green.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_blue_down.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_down.9.png.flat +net.micode.notes.app-main-10\:/xml/widget_4x_info.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_4x_info.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/font_small.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_small.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_2x_blue.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_blue.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/font_normal.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_normal.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_folder.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_folder.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_4x_white.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_white.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_red.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_red.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/title_alert.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_alert.png.flat +net.micode.notes.app-main-10\:/menu/sub_folder.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_sub_folder.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/font_super.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_super.png.flat +net.micode.notes.app-main-10\:/layout/datetime_picker.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_datetime_picker.xml.flat +net.micode.notes.app-main-10\:/drawable/new_note.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable_new_note.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_yellow_up.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_up.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_background.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_background.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_green.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_green.9.png.flat +net.micode.notes.app-main-10\:/color/primary_text_dark.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat +net.micode.notes.app-main-10\:/menu/note_list.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list.xml.flat +net.micode.notes.app-main-10\:/layout/dialog_edit_text.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_dialog_edit_text.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_yellow_single.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_single.9.png.flat +net.micode.notes.app-main-10\:/layout/note_list_dropdown_menu.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_dropdown_menu.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/icon_app.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_icon_app.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_blue.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_blue.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_title_yellow.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_yellow.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_2x_white.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_white.png.flat +net.micode.notes.app-main-10\:/menu/note_list_dropdown.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_dropdown.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/clock.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_clock.png.flat +net.micode.notes.app-main-10\:/raw-zh-rCN/introduction=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\raw-zh-rCN_introduction.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_red_down.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_down.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_white_down.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_down.9.png.flat +net.micode.notes.app-main-10\:/layout/widget_2x.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_2x.xml.flat +net.micode.notes.app-main-10\:/raw/introduction=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\raw_introduction.flat +net.micode.notes.app-main-10\:/drawable-hdpi/font_size_selector_bg.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_size_selector_bg.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_green_single.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_single.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/notification.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_notification.png.flat +net.micode.notes.app-main-10\:/layout/folder_list_item.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_folder_list_item.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_blue_middle.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_middle.9.png.flat +net.micode.notes.app-main-10\:/layout/add_account_text.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_add_account_text.xml.flat +net.micode.notes.app-main-10\:/layout/note_list_footer.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_footer.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_red_middle.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_middle.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/delete.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_delete.png.flat +net.micode.notes.app-main-10\:/layout/account_dialog_title.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_account_dialog_title.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_title_red.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_red.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_2x_green.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_green.png.flat +net.micode.notes.app-main-10\:/layout/note_item.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_item.xml.flat +net.micode.notes.app-main-10\:/menu/call_record_folder.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_call_record_folder.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_red_single.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_single.9.png.flat +net.micode.notes.app-main-10\:/xml/widget_2x_info.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_2x_info.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_4x_blue.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_blue.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/note_edit_color_selector_panel.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_note_edit_color_selector_panel.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_blue_single.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_single.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/new_note_normal.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_normal.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_white_up.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_up.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/font_large.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_large.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_yellow.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_yellow.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_green_up.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_up.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/bg_btn_set_color.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_yellow_down.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_down.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_footer_bg.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_footer_bg.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/edit_title_white.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_white.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/dropdown_icon.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_dropdown_icon.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_4x_green.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_green.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/new_note_pressed.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_pressed.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_green_middle.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_middle.9.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_2x_red.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_red.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/search_result.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_search_result.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_4x_yellow.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_yellow.png.flat +net.micode.notes.app-main-10\:/drawable-hdpi/widget_2x_yellow.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_yellow.png.flat +net.micode.notes.app-main-10\:/layout/note_list.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list.xml.flat +net.micode.notes.app-main-10\:/menu/note_list_options.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_options.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/menu_move.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_move.png.flat +net.micode.notes.app-main-10\:/xml/searchable.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\xml_searchable.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/menu_delete.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_delete.png.flat +net.micode.notes.app-main-10\:/menu/note_edit.xml=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\menu_note_edit.xml.flat +net.micode.notes.app-main-10\:/drawable-hdpi/list_yellow_middle.9.png=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_middle.9.png.flat diff --git a/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml b/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml new file mode 100644 index 0000000..14bdacb --- /dev/null +++ b/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml @@ -0,0 +1,3833 @@ + +#ffffffff#ff9e9e9e#1f000000#8a000000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4dp6dp8dp4dp2dp320dp320dp32dp13sp12dp8dp64dp64dp10dp@dimen/notification_content_margin_start16dp2dp3dp24dp13sp10dp5dp#3333B5E5#0cffffff999999+"999+""999+""999+""999+""999+" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + truefalsetrue@android:color/black#7fa87f@android:color/black@android:color/black@color/material_deep_teal_200@color/material_deep_teal_500@color/material_grey_800@android:color/white@color/material_grey_850@color/material_grey_50#80ffffff#80000000@color/bright_foreground_material_light@color/bright_foreground_material_dark@android:color/white@android:color/black#ff5a595b#ffd6d7d7#80bebebe#80323232#ffbebebe#ff323232#ff7043#ff5722@android:color/white@android:color/black#6680cbc4#66009688#ff37474f#ff263238#ff21272b#ff80cbc4#ff009688#fff5f5f5#ffe0e0e0#fffafafa#ff757575#ff424242#ff303030#ff212121@android:color/black@color/material_grey_600@color/material_grey_900@color/material_grey_100#ffffffff#de000000#4Dffffff#39000000#33ffffff#1f000000#b3ffffff#8a000000#36ffffff#24000000#ff616161#ffbdbdbd#ffbdbdbd#fff1f1f1#e6616161#e6FFFFFF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 16dp72dp56dp0dp0dp4dp16dp10dp6dp48dp180dp5dp-3dp48dp48dp36dp48dp48dp@dimen/abc_control_inset_material6dp8dp@dimen/abc_control_padding_material720dp320dp2dp4dp4dp2dp80%100%320dp320dp8dp8dp65%95%24dp18dp8dp0.300.2632dip8dip8dip7dp4dp10dp16dp@dimen/abc_action_bar_content_inset_material296dp4dp48dip320dip2dp2dp20dp3dp14sp14sp14sp12sp34sp45sp56sp112sp24sp22sp18sp14sp16sp14sp16sp16dp20sp20dp0.300.260.260.200.120.500.380.700.542dp16dp8dp8dp96dp6.5dp0dp16dp220150127150Navigate homeNavigate upMore optionsDoneSee allChoose an appOFFONsans-serifsans-serif-mediumsans-serif-mediumsans-serifsans-serifsans-serifsans-serifsans-serif-lightsans-serifsans-serifsans-serifsans-serif-mediumAlt+Ctrl+deleteenterFunction+Meta+Shift+spaceSym+Menu+Search…Clear querySearch querySearchSubmit queryVoice searchShare withShare with %sCollapseSearch"होम पेज पर जाएं""ऊपर जाएं""ज़्यादा विकल्प""हो गया""सभी देखें""कोई एप्‍लिकेशन चुनें""बंद""चालू""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""space""Sym+""Menu+""खोजा जा रहा है…""क्‍वेरी साफ़ करें""सर्च क्वेरी""सर्च करें""क्वेरी सबमिट करें""आवाज़ सर्च""इसके साथ शेयर करें""%s के साथ शेयर करें""छोटा करें""सर्च""Idi na početnu""Idi gore""Dodatne opcije""Gotovo""Prikaži sve""Odabir aplikacije""ISKLJUČENO""UKLJUČENO""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""razmaknica""Sym+""Menu+""Pretražite…""Izbriši upit""Upit za pretraživanje""Pretraživanje""Pošalji upit""Glasovno pretraživanje""Dijeljenje sa""Dijeli putem aplikacije %s""Sažmi""Pretraživanje""Ugrás a főoldalra""Felfelé mozgatás""További lehetőségek""Kész""Összes megtekintése""Válasszon ki egy alkalmazást""KI""BE""Alt+""Ctrl+""Delete""Enter""Function+""Meta+""Shift+""Szóköz""Sym+""Menu+""Keresés…""Lekérdezés törlése""Keresési lekérdezés""Keresés""Lekérdezés küldése""Hangalapú keresés""Megosztás a következővel:""Megosztás a következő alkalmazással: %s""Összecsukás""Keresés""Ուղղվել տուն""Ուղղվել վերև""Այլ ընտրանքներ""Պատրաստ է""Տեսնել բոլորը""Ընտրել ծրագիր""ԱՆՋԱՏՎԱԾ""ՄԻԱՑՎԱԾ""Alt+""Ctrl+""Delete""Enter""Function+""Meta+""Shift+""բացատ""Sym+""Menu+""Որոնում...""Մաքրել հարցումը""Որոնման հարցում""Որոնել""Ուղարկել հարցումը""Ձայնային որոնում""Կիսվել""Ուղարկել %s-ին""Թաքցնել""Որոնել""Navigasi ke beranda""Navigasi naik""Opsi lain""Selesai""Lihat semua""Pilih aplikasi""NONAKTIF""AKTIF""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""spasi""Sym+""Menu+""Telusuri...""Hapus kueri""Kueri penelusuran""Telusuri""Kirim kueri""Penelusuran suara""Bagikan dengan""Bagikan ke %s""Ciutkan""Telusuri""Fara heim""Fara upp""Fleiri valkostir""Lokið""Sjá allt""Veldu forrit""SLÖKKT""KVEIKT""Alt+""Ctrl+""delete""enter""Aðgerðarlykill+""Meta+""Shift+""bilslá""Sym+""Valmynd+""Leita…""Hreinsa fyrirspurn""Leitarfyrirspurn""Leita""Senda fyrirspurn""Raddleit""Deila með""Deila með %s""Minnka""Leita""Vai alla home page""Vai in alto""Altre opzioni""Fine""Visualizza tutte""Scegli un\'applicazione""OFF""ON""ALT +""CTRL +""CANC""INVIO""FUNZIONE +""META +""MAIUSC +""barra spaziatrice""SYM +""MENU +""Cerca…""Cancella query""Query di ricerca""Cerca""Invia query""Ricerca vocale""Condividi con""Condividi tramite %s""Comprimi""Ricerca""נווט לדף הבית""נווט למעלה""עוד אפשרויות""בוצע""ראה הכל""בחר אפליקציה""כבוי""פועל""Alt+""Ctrl+‎""delete""Enter""Function+""Meta+""Shift+""מקש רווח""Sym+""תפריט+""חיפוש…""מחק שאילתה""שאילתת חיפוש""חיפוש""שלח שאילתה""חיפוש קולי""שתף עם""שתף עם %s""כווץ""חיפוש""ホームへ移動""上へ移動""その他のオプション""完了""すべて表示""アプリの選択""OFF""ON""Alt+""Ctrl+""Delete""Enter""Function+""Meta+""Shift+""Space""Sym+""Menu+""検索…""検索キーワードを削除""検索キーワード""検索""検索キーワードを送信""音声検索""共有""%sと共有""折りたたむ""検索""მთავარზე ნავიგაცია""ზემოთ ნავიგაცია""მეტი ვარიანტები""დასრულდა""ყველას ნახვა""აპის არჩევა""გამორთულია""ჩართულია""Alt+""Ctrl+""წაშლა""შეყვანა""Function+""Meta+""Shift+""space""Sym+""Menu+""ძიება...""მოთხოვნის გასუფთავება""ძიების მოთხოვნა""ძიება""მოთხოვნის გადაგზავნა""ხმოვანი ძიება""გაზიარება:""გაუზიარეთ %s-ს""აკეცვა""ძიება""Негізгі бетте қозғалу""Жоғары қозғалу""Басқа опциялар""Дайын""Барлығын көру""Қолданбаны таңдау""ӨШІРУЛІ""ҚОСУЛЫ""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""бос орын""Sym+""Mәзір+""Іздеу…""Сұрақты жою""Сұрақты іздеу""Іздеу""Сұрақты жіберу""Дауыс арқылы іздеу""Бөлісу""%s қолданбасымен бөлісу""Тасалау""Іздеу""រកមើល​ទៅ​ដើម""រកមើល​ឡើងលើ""ជម្រើស​ច្រើន​ទៀត""រួចរាល់""មើល​ទាំងអស់""ជ្រើស​កម្មវិធី​​""បិទ""បើក""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""space""Sym+""Menu+""ស្វែងរក…""សម្អាត​សំណួរ""ស្វែងរក​សំណួរ""ស្វែងរក""ដាក់​​​ស្នើ​សំណួរ""ការស្វែងរក​សំឡេង""ចែករំលែក​ជាមួយ""ចែក​រំលែក​ជា​មួយ %s""បង្រួម""ស្វែងរក""ಮುಖಪುಟವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ""ಮೇಲಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ""ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು""ಮುಗಿದಿದೆ""ಎಲ್ಲವನ್ನೂ ನೋಡಿ""ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆಮಾಡಿ""ಆಫ್""ಆನ್""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""space""Sym+""Menu+""ಹುಡುಕಿ…""ಪ್ರಶ್ನೆಯನ್ನು ತೆರವುಗೊಳಿಸು""ಪ್ರಶ್ನೆಯನ್ನು ಹುಡುಕಿ""ಹುಡುಕಿ""ಪ್ರಶ್ನೆಯನ್ನು ಸಲ್ಲಿಸು""ಧ್ವನಿ ಹುಡುಕಾಟ""ಇವರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ""%s ನೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಿ""ಸಂಕುಚಿಸು""ಹುಡುಕಿ""홈 탐색""위로 탐색""옵션 더보기""완료""전체 보기""앱 선택""사용 안함""사용""Alt+""Ctrl+""삭제""입력""Function+""Meta+""Shift+""스페이스바""Sym+""Menu+""검색...""검색어 삭제""검색어""검색""검색어 보내기""음성 검색""공유 대상""%s와(과) 공유""접기""검색""Үйгө багыттоо""Жогору""Көбүрөөк мүмкүнчүлүктөр""Даяр""Бардыгын көрүү""Колдонмо тандоо""ӨЧҮК""КҮЙҮК""Alt+""Ctrl+""Delete""Enter""Function+""Meta+""Shift+""боштук""Sym+""Menu+""Издөө…""Талаптарды тазалоо""Издөө талаптары""Издөө""Талап жөнөтүү""Үн аркылуу издөө""Бөлүшүү""%s аркылуу бөлүшүү""Жыйнап коюу""Издөө"48dp12dp14dp440dp60%90%60%90%55%80%0px"Điều hướng về trang chủ""Điều hướng lên trên""Tùy chọn khác""Xong""Xem tất cả""Chọn một ứng dụng""TẮT""BẬT""Alt+""Ctrl+""delete""enter""Function+""Meta+""Shift+""phím cách""Sym+""Menu+""Tìm kiếm…""Xóa truy vấn""Tìm kiếm truy vấn""Tìm kiếm""Gửi truy vấn""Tìm kiếm bằng giọng nói""Chia sẻ với""Chia sẻ với %s""Thu gọn""Tìm kiếm"60%90%50%70%45%72%"转到主屏幕""转到上一层级""更多选项""完成""查看全部""选择应用""关闭""开启""Alt+""Ctrl+""Delete 键""Enter 键""Fn+""Meta+""Shift+""空格键""Sym+""Menu+""搜索…""清除查询""搜索查询""搜索""提交查询""语音搜索""分享方式""使用%s分享""收起""搜索""瀏覽主頁""向上瀏覽""更多選項""完成""顯示全部""選擇應用程式""關閉""開啟""Alt +""Ctrl +""刪除""Enter 鍵""Fn +""Meta +""Shift +""空白鍵""Sym +""Menu +""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""分享對象""使用「%s」分享""收合""搜尋""瀏覽首頁""向上瀏覽""更多選項""完成""查看全部""選擇應用程式""關閉""開啟""Alt +""Ctrl +""Delete 鍵""Enter 鍵""Fn +""Meta +""Shift +""空格鍵""Sym +""Menu +""搜尋…""清除查詢""搜尋查詢""搜尋""提交查詢""語音搜尋""選擇分享對象""與「%s」分享""收合""搜尋""Zulazulela ekhaya""Zulazulela phezulu""Izinketho eziningi""Kwenziwe""Buka konke""Khetha uhlelo lokusebenza""VALIWE""VULIWE""Alt+""Ctrl+""susa""enter""Function+""Meta+""Shift+""space""Sym+""Imenyu+""Iyasesha...""Sula inkinga""Umbuzo wosesho""Sesha""Hambisa umbuzo""Ukusesha ngezwi""Yabelana no-""Yabelana ne-%s""Goqa""Sesha" + -%s + --%s + --%s + --%s + + Messaging + Email + #335b5b5b33sp26sp20sp17sp14spNotesNotes 2x2Notes 4x4No associated note found, click to create associated note.Privacy mode,can not see note content...Add noteDelete reminder successfullySet reminderExpiredyyyyMMddMMMd kk:mmGot itTake a lookCallSend emailBrowse webOpen map/MIUI/notes/notes_%s.txt(%d)New FolderExport textSyncCancel syncingSettingsSearchDeleteMove to folder%d selectedNothing selected, the operation is invalidSelect allDeselect allFont sizeSmallMediumLargeSuperEnter check listLeave check listView folderDelete folderChange folder nameThe folder %1$s exist, please renameShareSend to homeRemind meDelete reminderSelect folderParent folderNote added to homeConfirm to delete folder and its notes?Delete selected notesConfirm to delete the selected %d notes?Confirm to delete this note?Have moved selected %1$d notes to %2$s folderSD card busy, not available nowExport failed, please check SD cardThe note is not existSorry, can not set clock on empty noteSorry, can not send and empty note to homeExport successfulExport failExport text file (%1$s) to SD (%2$s) directorySyncing notes...Sync is successfulSync is failedSync is canceledSync is successful with account %1$sSync failed, please check network and account settingsSync failed, internal error occursSync is canceledLogging into %1$s...Getting remote note list...Synchronize local notes with Google Task...SettingsSync accountSync notes with google taskLast sync time %1$syyyy-MM-dd hh:mm:ssAdd accountChange sync accountRemove sync accountCancelSync immediatelyCancel syncingCurrent account %1$sAll sync related information will be deleted, which may result in duplicated items sometimeSync notesPlease select a google account. Local notes will be synced with google task.Cannot change the account because sync is in progress%1$s has been set as the sync accountNew note background color randomDeleteCall notesInput nameSearching NotesSearch notesText in your notesNotessetcancel + %1$s result for \"%2$s\" + + %1$s results for \"%2$s\" + + 短信 + 邮件 + 便签便签2x2便签4x4没有关联内容,点击新建便签。访客模式下,便签内容不可见...新建便签成功删除提醒创建提醒已过期yyyyMMddMM月dd日 kk:mm知道了查看呼叫电话发送邮件浏览网页打开地图新建文件夹导出文本同步取消同步设置搜索删除移动到文件夹选中了 %d 项没有选中项,操作无效全选取消全选文字大小正常超大进入清单模式退出清单模式查看文件夹刪除文件夹修改文件夹名称文件夹 %1$s 已存在,请重新命名分享发送到桌面提醒我删除提醒选择文件夹上一级文件夹已添加到桌面删除确认要删除所选的 %d 条便签吗?确认要删除该条便签吗?确认删除文件夹及所包含的便签吗?已将所选 %1$d 条便签移到 %2$s 文件夹SD卡被占用,不能操作导出文本时发生错误,请检查SD卡要查看的便签不存在不能为空便签设置闹钟提醒不能将空便签发送到桌面导出成功导出失败已将文本文件(%1$s)输出至SD卡(%2$s)目录同步便签...同步成功同步失败同步已取消与%1$s同步成功同步失败,请检查网络和帐号设置同步失败,发生内部错误同步已取消登录%1$s...正在获取服务器便签列表...正在同步本地便签...设置同步账号与google task同步便签记录上次同步于 %1$s添加账号更换账号删除账号取消立即同步取消同步当前帐号 %1$s如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复同步便签请选择google帐号,便签将与该帐号的google task内容同步。正在同步中,不能修改同步帐号同步帐号已设置为%1$s新建便签背景颜色随机删除通话便签请输入名称正在搜索便签搜索便签便签中的文字便签设置取消 + %1$s 条符合“%2$s”的搜索结果 + + 短信 + 郵件 + 便簽便簽2x2便簽4x4沒有關聯內容,點擊新建便簽。訪客模式下,便籤內容不可見...新建便簽成功刪除提醒創建提醒已過期yyyyMMddMM月dd日 kk:mm知道了查看呼叫電話發送郵件浏覽網頁打開地圖已將所選 %1$d 便籤移到 %2$s 文件夾新建文件夾導出文本同步取消同步設置搜尋刪除移動到文件夾選中了 %d 項沒有選中項,操作無效全選取消全選文字大小正常超大進入清單模式退出清單模式查看文件夾刪除文件夾修改文件夾名稱文件夾 %1$s 已存在,請重新命名分享發送到桌面提醒我刪除提醒選擇文件夾上一級文件夾已添加到桌面刪除确认要刪除所選的 %d 條便籤嗎?确认要删除該條便籤嗎?確認刪除檔夾及所包含的便簽嗎?SD卡被佔用,不能操作導出TXT時發生錯誤,請檢查SD卡要查看的便籤不存在不能爲空便籤設置鬧鐘提醒不能將空便籤發送到桌面導出成功導出失敗已將文本文件(%1$s)導出至SD(%2$s)目錄同步便簽...同步成功同步失敗同步已取消與%1$s同步成功同步失敗,請檢查網絡和帳號設置同步失敗,發生內部錯誤同步已取消登陸%1$s...正在獲取服務器便籤列表...正在同步本地便籤...設置同步賬號与google task同步便簽記錄上次同步于 %1$s添加賬號更換賬號刪除賬號取消立即同步取消同步當前帳號 %1$s如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復同步便簽請選擇google帳號,便簽將與該帳號的google task內容同步。正在同步中,不能修改同步帳號同步帳號已設置為%1$s新建便籤背景顏色隨機刪除通話便籤請輸入名稱正在搜索便籤搜索便籤便籤中的文字便籤設置取消 + %1$s 條符合”%2$s“的搜尋結果 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml new file mode 100644 index 0000000..962f8c0 --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml new file mode 100644 index 0000000..a5f9737 --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugShaders/merger.xml b/app/build/intermediates/incremental/mergeDebugShaders/merger.xml new file mode 100644 index 0000000..381459c --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugShaders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file 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 new file mode 100644 index 0000000..9ec625e --- /dev/null +++ b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt @@ -0,0 +1,4 @@ +#Thu May 18 16:03:36 CST 2023 +base.0=C\:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\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 new file mode 100644 index 0000000..ae0e504 Binary files /dev/null and b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources differ diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 new file mode 100644 index 0000000..c9a14eb Binary files /dev/null and b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/BuildConfig.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/BuildConfig.class new file mode 100644 index 0000000..f98637b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/BuildConfig.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/MainActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/MainActivity.class new file mode 100644 index 0000000..b6dd421 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/MainActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class new file mode 100644 index 0000000..6e28b50 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class new file mode 100644 index 0000000..534af6e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class new file mode 100644 index 0000000..4be9a30 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataColumns.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class new file mode 100644 index 0000000..0d9547b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class new file mode 100644 index 0000000..37c051d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$NoteColumns.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class new file mode 100644 index 0000000..a78b61a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class new file mode 100644 index 0000000..bdc56b1 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class new file mode 100644 index 0000000..56d65f1 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper$TABLE.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class new file mode 100644 index 0000000..1f3ea0b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesDatabaseHelper.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class new file mode 100644 index 0000000..4f0dff5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class new file mode 100644 index 0000000..2319eaf Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/MetaData.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class new file mode 100644 index 0000000..d2dcfb5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Node.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class new file mode 100644 index 0000000..c61d69f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlData.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class new file mode 100644 index 0000000..26c68fb Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/SqlNote.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class new file mode 100644 index 0000000..d4e7deb Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/Task.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class new file mode 100644 index 0000000..69ac9b5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/data/TaskList.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class new file mode 100644 index 0000000..3c7e5b6 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/ActionFailureException.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class new file mode 100644 index 0000000..06827bd Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/exception/NetworkFailureException.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class new file mode 100644 index 0000000..90a28c8 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class new file mode 100644 index 0000000..fd895e5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.class new file mode 100644 index 0000000..6f74357 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskASyncTask.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 new file mode 100644 index 0000000..f305e18 Binary files /dev/null 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/gtask/remote/GTaskManager.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskManager.class new file mode 100644 index 0000000..dccdbd3 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskManager.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class new file mode 100644 index 0000000..cecf07f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class new file mode 100644 index 0000000..5d5ada0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/gtask/remote/GTaskSyncService.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class new file mode 100644 index 0000000..30318fc Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class new file mode 100644 index 0000000..bbbea2e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class new file mode 100644 index 0000000..46734e7 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class new file mode 100644 index 0000000..a44b3a2 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class new file mode 100644 index 0000000..8094c83 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class new file mode 100644 index 0000000..c8e5c2c Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class new file mode 100644 index 0000000..fc1d9a2 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class new file mode 100644 index 0000000..d4500ff Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class new file mode 100644 index 0000000..f61ae8b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class new file mode 100644 index 0000000..d7de388 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class new file mode 100644 index 0000000..54ff7c0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class new file mode 100644 index 0000000..3734bd0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class new file mode 100644 index 0000000..7ded6f4 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class new file mode 100644 index 0000000..4732795 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class new file mode 100644 index 0000000..124eb6a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class new file mode 100644 index 0000000..e8e0e45 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class new file mode 100644 index 0000000..c3ee8d8 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class new file mode 100644 index 0000000..4812c99 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class new file mode 100644 index 0000000..0754ffc Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class new file mode 100644 index 0000000..dc60fe0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.class new file mode 100644 index 0000000..6597282 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.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 new file mode 100644 index 0000000..bd9e1e9 Binary files /dev/null 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/DateTimePickerDialog$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class new file mode 100644 index 0000000..75a9a17 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class new file mode 100644 index 0000000..fa573a1 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class new file mode 100644 index 0000000..7e21a80 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class new file mode 100644 index 0000000..66c9e6f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class new file mode 100644 index 0000000..3e6db6a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.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 new file mode 100644 index 0000000..8634bea Binary files /dev/null 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/FoldersListAdapter.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class new file mode 100644 index 0000000..0c6ef37 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class new file mode 100644 index 0000000..04325f0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class new file mode 100644 index 0000000..ca19e9d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class new file mode 100644 index 0000000..538d7e5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class new file mode 100644 index 0000000..d806b4a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.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 new file mode 100644 index 0000000..7b253b7 Binary files /dev/null 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/NoteEditText$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class new file mode 100644 index 0000000..6e0f050 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class new file mode 100644 index 0000000..1a3310a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class new file mode 100644 index 0000000..a172ca5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class new file mode 100644 index 0000000..fea6568 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteItemData.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class new file mode 100644 index 0000000..4f7e607 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class new file mode 100644 index 0000000..817fae7 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class new file mode 100644 index 0000000..0cbb8a5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class new file mode 100644 index 0000000..dfa4f70 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class new file mode 100644 index 0000000..43c92d1 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class new file mode 100644 index 0000000..1cfc848 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class new file mode 100644 index 0000000..8e8f18b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class new file mode 100644 index 0000000..5d6651d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class new file mode 100644 index 0000000..c3c084a Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class new file mode 100644 index 0000000..ad36039 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class new file mode 100644 index 0000000..6cd9194 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class new file mode 100644 index 0000000..4af37e9 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class new file mode 100644 index 0000000..2cce5c1 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.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 new file mode 100644 index 0000000..5fe1546 Binary files /dev/null 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$NewNoteOnTouchListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class new file mode 100644 index 0000000..52efe7b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class new file mode 100644 index 0000000..56251f0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.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 new file mode 100644 index 0000000..c2bc7e8 Binary files /dev/null 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/NotesListAdapter$AppWidgetAttribute.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class new file mode 100644 index 0000000..5d8717b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class new file mode 100644 index 0000000..b58eac3 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.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 new file mode 100644 index 0000000..30c5809 Binary files /dev/null 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$1.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class new file mode 100644 index 0000000..9ba716f Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class new file mode 100644 index 0000000..573ba34 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class new file mode 100644 index 0000000..a1c7178 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class new file mode 100644 index 0000000..c01fcae Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class new file mode 100644 index 0000000..d7027b9 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class new file mode 100644 index 0000000..eb4eff7 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class new file mode 100644 index 0000000..245633b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class new file mode 100644 index 0000000..bcc1f6d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.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 new file mode 100644 index 0000000..f54af9c Binary files /dev/null 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 new file mode 100644 index 0000000..71f0774 Binary files /dev/null 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 new file mode 100644 index 0000000..3752953 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class new file mode 100644 index 0000000..d0b0f81 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.class b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.class new file mode 100644 index 0000000..b4abaa8 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_4x.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 new file mode 100644 index 0000000..f8936f4 --- /dev/null +++ b/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt @@ -0,0 +1,301 @@ +1 +2 +17 +21 +22 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +23 android:minSdkVersion="14" +23-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:15-41 +24 android:targetSdkVersion="33" /> +24-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +25 +26 +26-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:26:5-81 +26-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:26:22-78 +27 +27-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:27:5-88 +27-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:27:22-85 +28 +28-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:28:5-67 +28-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:28:22-64 +29 +29-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:29:5-72 +29-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:29:22-69 +30 +30-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:30:5-74 +30-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:30:22-71 +31 +31-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:31:5-80 +31-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:31:22-77 +32 +32-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:32:5-71 +32-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:32:22-68 +33 +33-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:33:5-74 +33-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:33:22-71 +34 +34-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:34:5-81 +34-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:34:22-78 +35 +36 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:36:5-162:19 +37 android:appComponentFactory="android.support.v4.app.CoreComponentFactory" +37-->[com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:22:18-91 +38 android:debuggable="true" +39 android:icon="@drawable/icon_app" +39-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:37:9-42 +40 android:label="@string/app_name" +40-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:38:9-41 +41 android:testOnly="true" > +42 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:39:9-54:20 +43 android:name="net.micode.notes.ui.NotesListActivity" +43-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:40:13-49 +44 android:configChanges="keyboardHidden|orientation|screenSize" +44-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:42:13-74 +45 android:exported="true" +45-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:41:13-36 +46 android:label="@string/app_name" +46-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:43:13-45 +47 android:launchMode="singleTop" +47-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:44:13-43 +48 android:theme="@style/Theme.AppCompat.Light.DarkActionBar" +48-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:45:13-71 +49 android:uiOptions="splitActionBarWhenNarrow" +49-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:46:13-57 +50 android:windowSoftInputMode="adjustPan" > +50-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:47:13-52 +51 +52 +53 +54 +54-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:50:13-53:29 +55 +55-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:51:17-69 +55-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:51:25-66 +56 +57 +57-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:52:17-77 +57-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:52:27-74 +58 +59 +60 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:56:9-87:20 +61 android:name="net.micode.notes.ui.NoteEditActivity" +61-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:57:13-48 +62 android:configChanges="keyboardHidden|orientation|screenSize" +62-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:59:13-74 +63 android:exported="true" +63-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:58:13-36 +64 android:launchMode="singleTop" +64-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:60:13-43 +65 android:theme="@style/Theme.AppCompat.Light.DarkActionBar" > +65-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:61:13-71 +66 +67 +68 +69 +69-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:64:13-70:29 +69-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:64:28-49 +70 +70-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:66:17-69 +70-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:66:25-66 +71 +72 +72-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:17-76 +72-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:27-73 +73 +74 +74-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:17-78 +74-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:23-75 +75 +75-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:17-78 +75-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:23-75 +76 +77 +77-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:72:13-77:29 +78 +78-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:73:17-79 +78-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:73:25-76 +79 +80 +80-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:17-76 +80-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:27-73 +81 +82 +82-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:17-78 +82-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:23-75 +83 +83-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:17-78 +83-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:23-75 +84 +85 +85-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:79:13-82:29 +86 +86-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:80:17-71 +86-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:80:25-68 +87 +88 +88-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:17-76 +88-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:27-73 +89 +90 +91 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:84:13-86:54 +92 android:name="android.app.searchable" +92-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:85:17-54 +93 android:resource="@xml/searchable" /> +93-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:86:17-51 +94 +95 +96 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:89:9-93:43 +97 android:name="net.micode.notes.data.NotesProvider" +97-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:90:13-63 +98 android:authorities="micode_notes" +98-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:92:13-47 +99 android:exported="true" +99-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:91:13-36 +100 android:multiprocess="true" /> +100-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:93:13-40 +101 +102 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:95:9-108:20 +103 android:name="net.micode.notes.widget.NoteWidgetProvider_2x" +103-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:96:13-57 +104 android:exported="true" +104-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:97:13-36 +105 android:label="@string/app_widget2x2" > +105-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:98:13-50 +106 +106-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:99:13-103:29 +107 +107-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:17-84 +107-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:25-81 +108 +108-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:17-85 +108-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:25-82 +109 +109-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:17-85 +109-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:25-82 +110 +111 +112 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:105:13-107:58 +113 android:name="android.appwidget.provider" +113-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:106:17-58 +114 android:resource="@xml/widget_2x_info" /> +114-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:107:17-55 +115 +116 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:109:9-123:20 +117 android:name="net.micode.notes.widget.NoteWidgetProvider_4x" +117-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:110:13-57 +118 android:exported="true" +118-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:111:13-36 +119 android:label="@string/app_widget4x4" > +119-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:112:13-50 +120 +120-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:99:13-103:29 +121 +121-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:17-84 +121-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:25-81 +122 +122-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:17-85 +122-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:25-82 +123 +123-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:17-85 +123-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:25-82 +124 +125 +126 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:105:13-107:58 +127 android:name="android.appwidget.provider" +127-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:106:17-58 +128 android:resource="@xml/widget_4x_info" /> +128-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:107:17-55 +129 +130 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:125:9-130:20 +131 android:name="net.micode.notes.ui.AlarmInitReceiver" +131-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:125:19-55 +132 android:exported="true" > +132-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:126:19-42 +133 +133-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:127:13-129:29 +134 +134-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:128:17-79 +134-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:128:25-76 +135 +136 +137 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:132:9-136:20 +138 android:name="net.micode.notes.ui.AlarmReceiver" +138-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:133:13-61 +139 android:exported="true" +139-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:134:13-36 +140 android:process=":remote" > +140-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:135:13-38 +141 +142 +143 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:138:9-144:20 +144 android:name="net.micode.notes.ui.AlarmAlertActivity" +144-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:139:13-50 +145 android:exported="true" +145-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:140:13-36 +146 android:label="@string/app_name" +146-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:141:13-45 +147 android:launchMode="singleInstance" +147-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:142:13-48 +148 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" > +148-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:143:13-75 +149 +150 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:146:9-152:20 +151 android:name="net.micode.notes.ui.NotesPreferenceActivity" +151-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:147:13-71 +152 android:exported="true" +152-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:148:13-36 +153 android:label="@string/preferences_title" +153-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:149:13-54 +154 android:launchMode="singleTop" +154-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:150:13-43 +155 android:theme="@android:style/Theme.Holo.Light" > +155-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:151:13-60 +156 +157 +158 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:154:9-157:19 +159 android:name="net.micode.notes.gtask.remote.GTaskSyncService" +159-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:155:13-74 +160 android:exported="false" > +160-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:156:13-37 +161 +162 +163 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:159:9-161:52 +164 android:name="android.app.default_searchable" +164-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:160:13-58 +165 android:value=".ui.NoteEditActivity" /> +165-->C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:161:13-49 +166 +167 +168 diff --git a/app/build/intermediates/merged_java_res/debug/base.jar b/app/build/intermediates/merged_java_res/debug/base.jar new file mode 100644 index 0000000..324dbac Binary files /dev/null and b/app/build/intermediates/merged_java_res/debug/base.jar differ diff --git a/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml new file mode 100644 index 0000000..8cb733e --- /dev/null +++ b/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml b/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml new file mode 100644 index 0000000..8cb733e --- /dev/null +++ b/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/merged_manifests/debug/output-metadata.json b/app/build/intermediates/merged_manifests/debug/output-metadata.json new file mode 100644 index 0000000..a56d03a --- /dev/null +++ b/app/build/intermediates/merged_manifests/debug/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "MERGED_MANIFESTS", + "kind": "Directory" + }, + "applicationId": "net.micode.notes", + "variantName": "debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "0.1", + "outputFile": "AndroidManifest.xml" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat b/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat new file mode 100644 index 0000000..45c5ee1 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/color_primary_text_dark.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat b/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat new file mode 100644 index 0000000..4ff52ec Binary files /dev/null and b/app/build/intermediates/merged_res/debug/color_secondary_text_dark.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat new file mode 100644 index 0000000..fb39337 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_btn_set_color.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat new file mode 100644 index 0000000..23fcd3e Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_bg_color_btn_mask.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat new file mode 100644 index 0000000..1db7c93 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_call_record.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat new file mode 100644 index 0000000..13bc530 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_clock.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat new file mode 100644 index 0000000..eec8672 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_delete.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat new file mode 100644 index 0000000..f2e6096 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_dropdown_icon.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat new file mode 100644 index 0000000..a1926cf Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_blue.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat new file mode 100644 index 0000000..7f31a66 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_green.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat new file mode 100644 index 0000000..c4060c4 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_red.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat new file mode 100644 index 0000000..c16a030 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_blue.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat new file mode 100644 index 0000000..2eec7a9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_green.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat new file mode 100644 index 0000000..4ffa8a8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_red.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat new file mode 100644 index 0000000..e196f6f Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_white.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat new file mode 100644 index 0000000..456b6e8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_title_yellow.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat new file mode 100644 index 0000000..dea8936 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_white.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat new file mode 100644 index 0000000..2bbf89c Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_edit_yellow.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat new file mode 100644 index 0000000..4f73152 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_large.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat new file mode 100644 index 0000000..a07c64b Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_normal.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat new file mode 100644 index 0000000..fb604d7 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_size_selector_bg.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat new file mode 100644 index 0000000..d8bd05e Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_small.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat new file mode 100644 index 0000000..bb3501f Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_font_super.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat new file mode 100644 index 0000000..3107d2c Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_icon_app.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat new file mode 100644 index 0000000..271fa96 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_background.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat new file mode 100644 index 0000000..ae0f3f8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_down.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat new file mode 100644 index 0000000..e238c64 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_middle.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat new file mode 100644 index 0000000..582fe04 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_single.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat new file mode 100644 index 0000000..4b914d7 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_blue_up.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat new file mode 100644 index 0000000..aa8392a Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_folder.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat new file mode 100644 index 0000000..bbae0f1 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_footer_bg.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat new file mode 100644 index 0000000..645f876 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_down.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat new file mode 100644 index 0000000..a8d5aea Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_middle.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat new file mode 100644 index 0000000..44a871b Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_single.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat new file mode 100644 index 0000000..19d5bfe Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_green_up.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat new file mode 100644 index 0000000..598c0e3 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_down.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat new file mode 100644 index 0000000..b3070b1 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_middle.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat new file mode 100644 index 0000000..c52859e Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_single.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat new file mode 100644 index 0000000..5a13b5e Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_red_up.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat new file mode 100644 index 0000000..66efb35 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_down.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat new file mode 100644 index 0000000..a0a6e33 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_middle.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat new file mode 100644 index 0000000..e3477ab Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_single.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat new file mode 100644 index 0000000..1a317e9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_white_up.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat new file mode 100644 index 0000000..384f249 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_down.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat new file mode 100644 index 0000000..6aa4d4a Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_middle.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat new file mode 100644 index 0000000..b580176 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_single.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat new file mode 100644 index 0000000..0db3725 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_list_yellow_up.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat new file mode 100644 index 0000000..14fc25f Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_delete.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat new file mode 100644 index 0000000..55c7ff9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_menu_move.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat new file mode 100644 index 0000000..463756f Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_normal.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat new file mode 100644 index 0000000..df196d0 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_new_note_pressed.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat new file mode 100644 index 0000000..b43ce0d Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_note_edit_color_selector_panel.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_notification.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_notification.png.flat new file mode 100644 index 0000000..cd52b61 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_notification.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat new file mode 100644 index 0000000..c26dcb4 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_search_result.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat new file mode 100644 index 0000000..c71189c Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_selected.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat new file mode 100644 index 0000000..868d57a Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_title_alert.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat new file mode 100644 index 0000000..f4ccc7f Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_title_bar_bg.9.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat new file mode 100644 index 0000000..25a08b8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_blue.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat new file mode 100644 index 0000000..53f094a Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_green.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat new file mode 100644 index 0000000..fcdc7e6 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_red.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat new file mode 100644 index 0000000..79236fa Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_white.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat new file mode 100644 index 0000000..8a917a9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_2x_yellow.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat new file mode 100644 index 0000000..2750c27 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_blue.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat new file mode 100644 index 0000000..88c75d1 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_green.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat new file mode 100644 index 0000000..82174ae Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_red.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat new file mode 100644 index 0000000..4f63b76 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_white.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat new file mode 100644 index 0000000..9ed2f3d Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable-hdpi_widget_4x_yellow.png.flat differ diff --git a/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat b/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat new file mode 100644 index 0000000..066d0dc Binary files /dev/null and b/app/build/intermediates/merged_res/debug/drawable_new_note.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat b/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat new file mode 100644 index 0000000..ef1a7d2 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_account_dialog_title.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat b/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat new file mode 100644 index 0000000..58cdb12 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_add_account_text.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat b/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat new file mode 100644 index 0000000..62b57f9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_datetime_picker.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat b/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat new file mode 100644 index 0000000..865c74d Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_dialog_edit_text.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat b/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat new file mode 100644 index 0000000..41a7cd3 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_folder_list_item.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat new file mode 100644 index 0000000..1a348ee Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_edit.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat new file mode 100644 index 0000000..6dcbc8d Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_edit_list_item.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat new file mode 100644 index 0000000..3c33920 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_item.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat new file mode 100644 index 0000000..6f72de2 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_list.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat new file mode 100644 index 0000000..72fb40e Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_list_dropdown_menu.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat b/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat new file mode 100644 index 0000000..13000b8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_note_list_footer.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat b/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat new file mode 100644 index 0000000..59fbd07 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_settings_header.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat b/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat new file mode 100644 index 0000000..ff35785 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_widget_2x.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat b/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat new file mode 100644 index 0000000..63958e9 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/layout_widget_4x.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat b/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat new file mode 100644 index 0000000..9c560df Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_call_note_edit.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat b/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat new file mode 100644 index 0000000..f23f66d Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_call_record_folder.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat b/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat new file mode 100644 index 0000000..e9011cc Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_note_edit.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat b/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat new file mode 100644 index 0000000..13e2843 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_note_list.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat b/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat new file mode 100644 index 0000000..6781a0b Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_note_list_dropdown.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat b/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat new file mode 100644 index 0000000..e7eecc3 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_note_list_options.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat b/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat new file mode 100644 index 0000000..7d8afe4 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/menu_sub_folder.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat b/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat new file mode 100644 index 0000000..9a9d816 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/raw-zh-rCN_introduction.flat differ diff --git a/app/build/intermediates/merged_res/debug/raw_introduction.flat b/app/build/intermediates/merged_res/debug/raw_introduction.flat new file mode 100644 index 0000000..64352af Binary files /dev/null and b/app/build/intermediates/merged_res/debug/raw_introduction.flat differ diff --git a/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat b/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat new file mode 100644 index 0000000..defe3a5 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/values-zh-rCN_values-zh-rCN.arsc.flat differ diff --git a/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat b/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat new file mode 100644 index 0000000..1266e10 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/values-zh-rTW_values-zh-rTW.arsc.flat differ diff --git a/app/build/intermediates/merged_res/debug/values_values.arsc.flat b/app/build/intermediates/merged_res/debug/values_values.arsc.flat new file mode 100644 index 0000000..8b699ad Binary files /dev/null and b/app/build/intermediates/merged_res/debug/values_values.arsc.flat differ diff --git a/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat b/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat new file mode 100644 index 0000000..0bf8639 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/xml_preferences.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat b/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat new file mode 100644 index 0000000..950d1d8 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/xml_searchable.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat b/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat new file mode 100644 index 0000000..9f7d050 Binary files /dev/null and b/app/build/intermediates/merged_res/debug/xml_widget_2x_info.xml.flat differ diff --git a/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat b/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat new file mode 100644 index 0000000..9f3474b Binary files /dev/null and b/app/build/intermediates/merged_res/debug/xml_widget_4x_info.xml.flat differ diff --git a/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json new file mode 100644 index 0000000..97f40e7 --- /dev/null +++ b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/debug.json @@ -0,0 +1,3370 @@ +{ + "logs": [ + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-watch-v21_values-watch-v21.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-watch-v21\\values-watch-v21.xml", + "from": { + "startLines": "2,6,10", + "startColumns": "4,4,4", + "startOffsets": "55,271,499", + "endLines": "5,9,13", + "endColumns": "12,12,12", + "endOffsets": "266,494,724" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-uk_values-uk.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-uk\\values-uk.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2900", + "endColumns": "100", + "endOffsets": "2996" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-uk\\values-uk.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,215,317,423,509,617,735,814,894,985,1078,1174,1268,1369,1462,1557,1652,1743,1834,1915,2021,2128,2226,2334,2440,2549,2719,2819", + "endColumns": "109,101,105,85,107,117,78,79,90,92,95,93,100,92,94,94,90,90,80,105,106,97,107,105,108,169,99,80", + "endOffsets": "210,312,418,504,612,730,809,889,980,1073,1169,1263,1364,1457,1552,1647,1738,1829,1910,2016,2123,2221,2329,2435,2544,2714,2814,2895" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-mr_values-mr.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-mr\\values-mr.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2887", + "endColumns": "100", + "endOffsets": "2983" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-mr\\values-mr.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,216,322,429,519,620,735,812,890,981,1074,1168,1265,1366,1459,1554,1651,1742,1833,1913,2025,2127,2223,2332,2433,2545,2702,2807", + "endColumns": "110,105,106,89,100,114,76,77,90,92,93,96,100,92,94,96,90,90,79,111,101,95,108,100,111,156,104,79", + "endOffsets": "211,317,424,514,615,730,807,885,976,1069,1163,1260,1361,1454,1549,1646,1737,1828,1908,2020,2122,2218,2327,2428,2540,2697,2802,2882" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-zu_values-zu.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zu\\values-zu.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,320,434,522,625,752,832,912,1003,1096,1190,1284,1385,1478,1573,1667,1758,1851,1937,2041,2147,2245,2352,2458,2564,2721,2817", + "endColumns": "107,106,113,87,102,126,79,79,90,92,93,93,100,92,94,93,90,92,85,103,105,97,106,105,105,156,95,80", + "endOffsets": "208,315,429,517,620,747,827,907,998,1091,1185,1279,1380,1473,1568,1662,1753,1846,1932,2036,2142,2240,2347,2453,2559,2716,2812,2893" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zu\\values-zu.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2898", + "endColumns": "100", + "endOffsets": "2994" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v17_values-v17.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v17\\values-v17.xml", + "from": { + "startLines": "2,5,9,12,15,18,22,25,29,33,37,40,43,46,50,53,57", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,228,456,614,764,936,1161,1331,1559,1783,2025,2196,2370,2539,2812,3012,3216", + "endLines": "4,8,11,14,17,21,24,28,32,36,39,42,45,49,52,56,60", + "endColumns": "12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12", + "endOffsets": "223,451,609,759,931,1156,1326,1554,1778,2020,2191,2365,2534,2807,3007,3211,3540" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-km_values-km.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-km\\values-km.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2882", + "endColumns": "100", + "endOffsets": "2978" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-km\\values-km.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,308,420,507,611,729,806,883,974,1067,1163,1257,1358,1451,1546,1640,1731,1822,1905,2009,2114,2214,2324,2431,2539,2701,2799", + "endColumns": "102,99,111,86,103,117,76,76,90,92,95,93,100,92,94,93,90,90,82,103,104,99,109,106,107,161,97,82", + "endOffsets": "203,303,415,502,606,724,801,878,969,1062,1158,1252,1353,1446,1541,1635,1726,1817,1900,2004,2109,2209,2319,2426,2534,2696,2794,2877" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values_values.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\colors.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endColumns": "56", + "endOffsets": "782" + }, + "to": { + "startLines": "82", + "startColumns": "4", + "startOffsets": "5146", + "endColumns": "56", + "endOffsets": "5198" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\dimens.xml", + "from": { + "startLines": "19,20,21,22,18", + "startColumns": "4,4,4,4,4", + "startOffsets": "783,836,890,944,730", + "endColumns": "51,52,52,51,51", + "endOffsets": "830,884,938,991,777" + }, + "to": { + "startLines": "189,190,191,192,193", + "startColumns": "4,4,4,4,4", + "startOffsets": "12570,12622,12675,12728,12780", + "endColumns": "51,52,52,51,51", + "endOffsets": "12617,12670,12723,12775,12827" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\568c762957e87adb25eac94f3bddea2d\\transformed\\coordinatorlayout-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,102,3,13", + "startColumns": "4,4,4,4", + "startOffsets": "55,5935,116,724", + "endLines": "2,104,12,101", + "endColumns": "60,12,24,24", + "endOffsets": "111,6075,719,5930" + }, + "to": { + "startLines": "12,1878,2501,2507", + "startColumns": "4,4,4,4", + "startOffsets": "420,124714,145114,145325", + "endLines": "12,1880,2506,2590", + "endColumns": "60,12,24,24", + "endOffsets": "476,124854,145320,149836" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1461,1462,1466,1470,1474,1479,1485,1492,1496,1500,1505,1509,1513,1517,1521,1525,1529,1535,1539,1545,1549,1555,1559,1564,1568,1571,1575,1581,1585,1591,1595,1601,1604,1608,1612,1616,1620,1624,1625,1626,1627,1630,1633,1636,1639,1643,1644,1645,1646,1647,1650,1652,1654,1656,1661,1662,1666,1672,1676,1677,1679,1690,1691,1695,1701,1705,1706,1707,1711,1738,1742,1743,1747,1775,1943,1969,2138,2164,2195,2203,2209,2223,2245,2250,2255,2265,2274,2283,2287,2294,2302,2309,2310,2319,2322,2325,2329,2333,2337,2340,2341,2345,2349,2359,2364,2371,2377,2378,2381,2385,2390,2392,2394,2397,2400,2402,2406,2409,2416,2419,2422,2426,2428,2432,2434,2436,2438,2442,2450,2458,2470,2476,2485,2488,2499,2502,2507,2508,2513,2571,2630,2631,2641,2650,2651,2653,2657,2660,2663,2666,2669,2672,2675,2678,2682,2685,2688,2691,2695,2698,2702,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2728,2730,2731,2732,2733,2734,2735,2736,2737,2739,2740,2742,2743,2745,2747,2748,2750,2751,2752,2753,2754,2755,2757,2758,2759,2760,2761,2762,2764,2766,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2782,2783,2784,2785,2786,2787,2789,2793,2797,2798,2799,2800,2801,2802,2803,2804,2806,2808,2810,2812,2814,2815,2816,2817,2819,2821,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2837,2838,2839,2840,2842,2844,2845,2847,2848,2850,2852,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2867,2868,2869,2870,2872,2873,2874,2875,2876,2878,2880,2882,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,69,152,155,158,161,175,186,196,223,230,241,271,298,307,344,725,730,756,774,810,816,822,845,986,1006,1012,1016,1022,1059,1071,1098,1103,1169,1184,1249,1268,1294", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,160,205,254,295,350,409,471,552,613,688,764,841,919,1004,1086,1162,1238,1315,1393,1499,1605,1684,1764,1821,1879,1953,2028,2093,2159,2219,2280,2352,2425,2492,2560,2619,2678,2737,2796,2855,2909,2963,3016,3070,3124,3178,3232,3306,3385,3458,3532,3603,3675,3747,3820,3877,3935,4008,4082,4156,4231,4303,4376,4446,4517,4577,70911,70980,71049,71119,71193,71269,71333,71410,71486,71563,71628,71697,71774,71849,71918,71986,72063,72129,72190,72287,72352,72421,72520,72591,72650,72708,72765,72824,72888,72959,73031,73103,73175,73247,73314,73382,73450,73509,73572,73636,73726,73817,73877,73943,74010,74076,74146,74210,74263,74376,74434,74497,74562,74627,74702,74775,74847,74896,74957,75018,75079,75141,75205,75269,75333,75398,75461,75521,75582,75648,75707,75767,75829,75900,75960,76028,76114,76201,76291,76378,76466,76548,76631,76721,76812,76864,76922,76967,77033,77097,77154,77211,77265,77322,77370,77419,77470,77504,77551,77600,77646,77678,77742,77804,77864,77921,77995,78065,78143,78197,78267,78352,78400,78446,78517,78595,78673,78745,78819,78893,78967,79047,79120,79189,79261,79338,79399,79462,79528,79592,79663,79726,79791,79855,79916,79977,80029,80102,80176,80245,80320,80394,80468,80609,80679,80732,80810,80900,80988,81084,81174,81756,81845,82092,82373,82625,82910,83303,83780,84002,84224,84500,84727,84957,85187,85417,85647,85874,86293,86519,86944,87174,87602,87821,88104,88312,88443,88670,89096,89321,89748,89969,90394,90514,90790,91091,91415,91706,92020,92157,92288,92393,92635,92802,93006,93214,93485,93597,93709,93814,93931,94145,94291,94431,94517,94865,94953,95199,95617,95866,95948,96046,96663,96763,97015,97439,97694,97788,97877,98114,100166,100408,100510,100763,102947,113668,115184,126004,127532,129289,129915,130335,131396,132661,132917,133153,133700,134194,134799,134997,135577,136141,136516,136634,137172,137329,137525,137798,138054,138224,138365,138429,138711,138997,139673,139937,140275,140628,140722,140908,141214,141476,141601,141728,141967,142178,142297,142490,142667,143122,143303,143425,143684,143797,143984,144086,144193,144322,144597,145105,145601,146478,146772,147342,147491,148223,148395,148731,148823,149101,153445,157932,157994,158624,159238,159329,159442,159671,159831,159983,160154,160320,160489,160656,160819,161062,161232,161405,161576,161850,162049,162254,162584,162668,162764,162860,162958,163058,163160,163262,163364,163466,163568,163668,163764,163876,164005,164128,164259,164390,164488,164602,164696,164836,164970,165066,165178,165278,165394,165490,165602,165702,165842,165978,166142,166272,166430,166580,166721,166865,167000,167112,167262,167390,167518,167654,167786,167916,168046,168158,168298,168444,168588,168726,168792,168882,168958,169062,169152,169254,169362,169470,169570,169650,169742,169840,169950,170028,170134,170226,170330,170440,170562,170725,170882,170962,171062,171152,171262,171356,171462,171554,171654,171766,171880,171996,172112,172206,172320,172432,172534,172654,172776,172858,172962,173082,173208,173306,173400,173488,173600,173716,173838,173950,174125,174241,174327,174419,174531,174655,174722,174848,174916,175044,175188,175316,175385,175480,175595,175708,175807,175916,176027,176138,176239,176344,176444,176574,176665,176788,176882,176994,177080,177184,177280,177368,177486,177590,177694,177820,177908,178016,178116,178206,178316,178400,178502,178586,178640,178704,178810,178920,179004,4638,9782,9900,10015,10147,10862,11554,12071,13718,14103,14700,16299,17832,18220,20527,40045,40305,41697,42730,44743,45005,45361,46191,52973,54107,54401,54624,54951,57001,57649,59282,59552,63403,64004,67813,69028,70437", + "endLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1460,1461,1465,1469,1473,1478,1484,1491,1495,1499,1504,1508,1512,1516,1520,1524,1528,1534,1538,1544,1548,1554,1558,1563,1567,1570,1574,1580,1584,1590,1594,1600,1603,1607,1611,1615,1619,1623,1624,1625,1626,1629,1632,1635,1638,1642,1643,1644,1645,1646,1649,1651,1653,1655,1660,1661,1665,1671,1675,1676,1678,1689,1690,1694,1700,1704,1705,1706,1710,1737,1741,1742,1746,1774,1942,1968,2137,2163,2194,2202,2208,2222,2244,2249,2254,2264,2273,2282,2286,2293,2301,2308,2309,2318,2321,2324,2328,2332,2336,2339,2340,2344,2348,2358,2363,2370,2376,2377,2380,2384,2389,2391,2393,2396,2399,2401,2405,2408,2415,2418,2421,2425,2427,2431,2433,2435,2437,2441,2449,2457,2469,2475,2484,2487,2498,2501,2506,2507,2512,2570,2629,2630,2640,2649,2650,2652,2656,2659,2662,2665,2668,2671,2674,2677,2681,2684,2687,2690,2694,2697,2701,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2741,2742,2744,2746,2747,2749,2750,2751,2752,2753,2754,2756,2757,2758,2759,2760,2761,2763,2765,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2781,2782,2783,2784,2785,2786,2788,2792,2796,2797,2798,2799,2800,2801,2802,2803,2805,2807,2809,2811,2813,2814,2815,2816,2818,2820,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2836,2837,2838,2839,2841,2843,2844,2846,2847,2849,2851,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2866,2867,2868,2869,2871,2872,2873,2874,2875,2877,2879,2881,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,151,154,157,160,174,185,195,222,229,240,270,297,306,343,724,729,755,773,809,815,821,844,985,1005,1011,1015,1021,1058,1070,1097,1102,1168,1183,1248,1267,1293,1302", + "endColumns": "54,44,48,40,54,58,61,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,59,60,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,64,68,76,74,68,67,76,65,60,96,64,68,98,70,58,57,56,58,63,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,60,62,65,63,70,62,64,63,60,60,51,72,73,68,74,73,73,140,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,90,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24", + "endOffsets": "155,200,249,290,345,404,466,547,608,683,759,836,914,999,1081,1157,1233,1310,1388,1494,1600,1679,1759,1816,1874,1948,2023,2088,2154,2214,2275,2347,2420,2487,2555,2614,2673,2732,2791,2850,2904,2958,3011,3065,3119,3173,3227,3301,3380,3453,3527,3598,3670,3742,3815,3872,3930,4003,4077,4151,4226,4298,4371,4441,4512,4572,4633,70975,71044,71114,71188,71264,71328,71405,71481,71558,71623,71692,71769,71844,71913,71981,72058,72124,72185,72282,72347,72416,72515,72586,72645,72703,72760,72819,72883,72954,73026,73098,73170,73242,73309,73377,73445,73504,73567,73631,73721,73812,73872,73938,74005,74071,74141,74205,74258,74371,74429,74492,74557,74622,74697,74770,74842,74891,74952,75013,75074,75136,75200,75264,75328,75393,75456,75516,75577,75643,75702,75762,75824,75895,75955,76023,76109,76196,76286,76373,76461,76543,76626,76716,76807,76859,76917,76962,77028,77092,77149,77206,77260,77317,77365,77414,77465,77499,77546,77595,77641,77673,77737,77799,77859,77916,77990,78060,78138,78192,78262,78347,78395,78441,78512,78590,78668,78740,78814,78888,78962,79042,79115,79184,79256,79333,79394,79457,79523,79587,79658,79721,79786,79850,79911,79972,80024,80097,80171,80240,80315,80389,80463,80604,80674,80727,80805,80895,80983,81079,81169,81751,81840,82087,82368,82620,82905,83298,83775,83997,84219,84495,84722,84952,85182,85412,85642,85869,86288,86514,86939,87169,87597,87816,88099,88307,88438,88665,89091,89316,89743,89964,90389,90509,90785,91086,91410,91701,92015,92152,92283,92388,92630,92797,93001,93209,93480,93592,93704,93809,93926,94140,94286,94426,94512,94860,94948,95194,95612,95861,95943,96041,96658,96758,97010,97434,97689,97783,97872,98109,100161,100403,100505,100758,102942,113663,115179,125999,127527,129284,129910,130330,131391,132656,132912,133148,133695,134189,134794,134992,135572,136136,136511,136629,137167,137324,137520,137793,138049,138219,138360,138424,138706,138992,139668,139932,140270,140623,140717,140903,141209,141471,141596,141723,141962,142173,142292,142485,142662,143117,143298,143420,143679,143792,143979,144081,144188,144317,144592,145100,145596,146473,146767,147337,147486,148218,148390,148726,148818,149096,153440,157927,157989,158619,159233,159324,159437,159666,159826,159978,160149,160315,160484,160651,160814,161057,161227,161400,161571,161845,162044,162249,162579,162663,162759,162855,162953,163053,163155,163257,163359,163461,163563,163663,163759,163871,164000,164123,164254,164385,164483,164597,164691,164831,164965,165061,165173,165273,165389,165485,165597,165697,165837,165973,166137,166267,166425,166575,166716,166860,166995,167107,167257,167385,167513,167649,167781,167911,168041,168153,168293,168439,168583,168721,168787,168877,168953,169057,169147,169249,169357,169465,169565,169645,169737,169835,169945,170023,170129,170221,170325,170435,170557,170720,170877,170957,171057,171147,171257,171351,171457,171549,171649,171761,171875,171991,172107,172201,172315,172427,172529,172649,172771,172853,172957,173077,173203,173301,173395,173483,173595,173711,173833,173945,174120,174236,174322,174414,174526,174650,174717,174843,174911,175039,175183,175311,175380,175475,175590,175703,175802,175911,176022,176133,176234,176339,176439,176569,176660,176783,176877,176989,177075,177179,177275,177363,177481,177585,177689,177815,177903,178011,178111,178201,178311,178395,178497,178581,178635,178699,178805,178915,178999,179119,9777,9895,10010,10142,10857,11549,12066,13713,14098,14695,16294,17827,18215,20522,40040,40300,41692,42725,44738,45000,45356,46186,52968,54102,54396,54619,54946,56996,57644,59277,59547,63398,63999,67808,69023,70432,70906" + }, + "to": { + "startLines": "13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,165,166,167,168,169,170,171,172,173,194,195,196,197,198,199,200,201,204,205,206,207,208,211,212,213,220,221,222,223,224,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,359,374,375,376,377,378,379,387,388,392,396,400,405,411,418,422,426,431,435,439,443,447,451,455,461,465,471,475,481,485,490,494,497,501,507,511,517,521,527,530,534,538,542,546,550,551,552,553,556,559,562,565,569,570,571,572,573,576,578,580,582,587,588,592,598,602,603,605,616,617,621,627,631,632,633,637,664,668,669,673,701,868,894,1062,1088,1119,1127,1133,1147,1169,1174,1179,1189,1198,1207,1211,1218,1226,1233,1234,1243,1246,1249,1253,1257,1261,1264,1265,1269,1273,1283,1288,1295,1301,1302,1305,1309,1314,1316,1318,1321,1324,1326,1330,1333,1340,1343,1346,1350,1352,1356,1358,1360,1362,1366,1374,1382,1394,1400,1409,1412,1423,1426,1431,1432,1452,1510,1569,1570,1580,1589,1590,1592,1596,1599,1602,1605,1608,1611,1614,1617,1621,1624,1627,1630,1634,1637,1641,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1667,1669,1670,1671,1672,1673,1674,1675,1676,1678,1679,1681,1682,1684,1686,1687,1689,1690,1691,1692,1693,1694,1696,1697,1698,1699,1700,1712,1714,1716,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1760,1761,1762,1763,1764,1765,1767,1771,1775,1776,1777,1778,1779,1780,1781,1782,1784,1786,1788,1790,1792,1793,1794,1795,1797,1799,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1815,1816,1817,1818,1820,1822,1823,1825,1826,1828,1830,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1845,1846,1847,1848,1850,1851,1852,1853,1854,1856,1858,1860,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1881,1956,1959,1962,1965,1979,1985,1995,2011,2017,2027,2056,2083,2092,2121,2464,2475,2591,2700,2724,2730,2736,2757,2881,2901,2907,2911,2917,2952,2964,2980,2984,3050,3065,3116,3128,3154", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "481,536,581,630,671,726,785,847,928,989,1064,1140,1217,1295,1380,1462,1538,1614,1691,1769,1875,1981,2060,2140,2197,2255,2329,2404,2469,2535,2595,2656,2728,2801,2868,2936,2995,3054,3113,3172,3231,3285,3339,3392,3446,3500,3554,3740,3814,3893,3966,4040,4111,4183,4255,4328,4385,4443,4516,4590,4664,4739,4811,4884,4954,5025,5085,5203,5272,5341,5411,5485,5561,5625,5702,5778,5855,5920,5989,6066,6141,6210,6278,6355,6421,6482,6579,6644,6713,6812,6883,6942,7000,7057,7116,7180,7251,7323,7395,7467,7539,7606,7674,7742,7801,7864,7928,8018,8109,8169,8235,8302,8368,8438,8502,8555,8668,8726,8789,8854,8919,8994,9067,9139,9188,9249,9310,9371,9433,9497,9561,9625,9690,9753,9813,9874,9940,9999,10059,10121,10192,10252,10808,10894,10981,11071,11158,11246,11328,11411,11501,12832,12884,12942,12987,13053,13117,13174,13231,13433,13490,13538,13587,13638,13742,13789,13838,14156,14188,14252,14314,14374,14854,14928,14998,15076,15130,15200,15285,15333,15379,15450,15528,15606,15678,15752,15826,15900,15980,16053,16122,16194,16271,16332,16395,16461,16525,16596,16659,16724,16788,16849,16910,16962,17035,17109,17178,17253,17327,17401,17542,23672,24768,24846,24936,25024,25120,25210,25792,25881,26128,26409,26661,26946,27339,27816,28038,28260,28536,28763,28993,29223,29453,29683,29910,30329,30555,30980,31210,31638,31857,32140,32348,32479,32706,33132,33357,33784,34005,34430,34550,34826,35127,35451,35742,36056,36193,36324,36429,36671,36838,37042,37250,37521,37633,37745,37850,37967,38181,38327,38467,38553,38901,38989,39235,39653,39902,39984,40082,40674,40774,41026,41450,41705,41799,41888,42125,44149,44391,44493,44746,46902,57031,58547,68775,70303,72060,72686,73106,74167,75432,75688,75924,76471,76965,77570,77768,78348,78912,79287,79405,79943,80100,80296,80569,80825,80995,81136,81200,81482,81768,82444,82708,83046,83399,83493,83679,83985,84247,84372,84499,84738,84949,85068,85261,85438,85893,86074,86196,86455,86568,86755,86857,86964,87093,87368,87876,88372,89249,89543,90113,90262,90994,91166,91502,91594,92654,96936,101361,101423,102001,102585,102676,102789,103018,103178,103330,103501,103667,103836,104003,104166,104409,104579,104752,104923,105197,105396,105601,105931,106015,106111,106207,106305,106405,106507,106609,106711,106813,106915,107015,107111,107223,107352,107475,107606,107737,107835,107949,108043,108183,108317,108413,108525,108625,108741,108837,108949,109049,109189,109325,109489,109619,109777,109927,110068,110212,110347,110459,110609,110737,110865,111001,111133,111263,111393,111505,112403,112549,112693,114177,114243,114333,114409,114513,114603,114705,114813,114921,115021,115101,115193,115291,115401,115479,115585,115677,115781,115891,116013,116176,116333,116413,116513,116603,116713,116807,116913,117005,117105,117217,117331,117447,117563,117657,117771,117883,117985,118105,118227,118309,118413,118533,118659,118757,118851,118939,119051,119167,119289,119401,119576,119692,119778,119870,119982,120106,120173,120299,120367,120495,120639,120767,120836,120931,121046,121159,121258,121367,121478,121589,121690,121795,121895,122025,122116,122239,122333,122445,122531,122635,122731,122819,122937,123041,123145,123271,123359,123467,123567,123657,123767,123851,123953,124037,124091,124155,124261,124371,124455,124859,127475,127593,127708,127788,128149,128382,128899,129324,129502,129786,131130,132491,132879,133957,143475,143821,149841,153597,154348,154610,154810,155189,159467,160073,160302,160453,160668,161751,162063,162474,162601,165627,166228,168149,168489,169800", + "endLines": "13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,165,166,167,168,169,170,171,172,173,194,195,196,197,198,199,200,201,204,205,206,207,208,211,212,213,220,221,222,223,224,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,359,374,375,376,377,378,386,387,391,395,399,404,410,417,421,425,430,434,438,442,446,450,454,460,464,470,474,480,484,489,493,496,500,506,510,516,520,526,529,533,537,541,545,549,550,551,552,555,558,561,564,568,569,570,571,572,575,577,579,581,586,587,591,597,601,602,604,615,616,620,626,630,631,632,636,663,667,668,672,700,867,893,1061,1087,1118,1126,1132,1146,1168,1173,1178,1188,1197,1206,1210,1217,1225,1232,1233,1242,1245,1248,1252,1256,1260,1263,1264,1268,1272,1282,1287,1294,1300,1301,1304,1308,1313,1315,1317,1320,1323,1325,1329,1332,1339,1342,1345,1349,1351,1355,1357,1359,1361,1365,1373,1381,1393,1399,1408,1411,1422,1425,1430,1431,1436,1509,1568,1569,1579,1588,1589,1591,1595,1598,1601,1604,1607,1610,1613,1616,1620,1623,1626,1629,1633,1636,1640,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1666,1668,1669,1670,1671,1672,1673,1674,1675,1677,1678,1680,1681,1683,1685,1686,1688,1689,1690,1691,1692,1693,1695,1696,1697,1698,1699,1700,1713,1715,1717,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1759,1760,1761,1762,1763,1764,1766,1770,1774,1775,1776,1777,1778,1779,1780,1781,1783,1785,1787,1789,1791,1792,1793,1794,1796,1798,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1814,1815,1816,1817,1819,1821,1822,1824,1825,1827,1829,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1844,1845,1846,1847,1849,1850,1851,1852,1853,1855,1857,1859,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1955,1958,1961,1964,1978,1984,1994,2010,2016,2026,2055,2082,2091,2120,2463,2467,2500,2608,2723,2729,2735,2756,2880,2900,2906,2910,2916,2951,2963,2979,2983,3049,3064,3115,3127,3153,3160", + "endColumns": "54,44,48,40,54,58,61,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,59,60,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,64,68,76,74,68,67,76,65,60,96,64,68,98,70,58,57,56,58,63,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,60,62,65,63,70,62,64,63,60,60,51,72,73,68,74,73,73,140,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,90,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24", + "endOffsets": "531,576,625,666,721,780,842,923,984,1059,1135,1212,1290,1375,1457,1533,1609,1686,1764,1870,1976,2055,2135,2192,2250,2324,2399,2464,2530,2590,2651,2723,2796,2863,2931,2990,3049,3108,3167,3226,3280,3334,3387,3441,3495,3549,3603,3809,3888,3961,4035,4106,4178,4250,4323,4380,4438,4511,4585,4659,4734,4806,4879,4949,5020,5080,5141,5267,5336,5406,5480,5556,5620,5697,5773,5850,5915,5984,6061,6136,6205,6273,6350,6416,6477,6574,6639,6708,6807,6878,6937,6995,7052,7111,7175,7246,7318,7390,7462,7534,7601,7669,7737,7796,7859,7923,8013,8104,8164,8230,8297,8363,8433,8497,8550,8663,8721,8784,8849,8914,8989,9062,9134,9183,9244,9305,9366,9428,9492,9556,9620,9685,9748,9808,9869,9935,9994,10054,10116,10187,10247,10315,10889,10976,11066,11153,11241,11323,11406,11496,11587,12879,12937,12982,13048,13112,13169,13226,13280,13485,13533,13582,13633,13667,13784,13833,13879,14183,14247,14309,14369,14426,14923,14993,15071,15125,15195,15280,15328,15374,15445,15523,15601,15673,15747,15821,15895,15975,16048,16117,16189,16266,16327,16390,16456,16520,16591,16654,16719,16783,16844,16905,16957,17030,17104,17173,17248,17322,17396,17537,17607,23720,24841,24931,25019,25115,25205,25787,25876,26123,26404,26656,26941,27334,27811,28033,28255,28531,28758,28988,29218,29448,29678,29905,30324,30550,30975,31205,31633,31852,32135,32343,32474,32701,33127,33352,33779,34000,34425,34545,34821,35122,35446,35737,36051,36188,36319,36424,36666,36833,37037,37245,37516,37628,37740,37845,37962,38176,38322,38462,38548,38896,38984,39230,39648,39897,39979,40077,40669,40769,41021,41445,41700,41794,41883,42120,44144,44386,44488,44741,46897,57026,58542,68770,70298,72055,72681,73101,74162,75427,75683,75919,76466,76960,77565,77763,78343,78907,79282,79400,79938,80095,80291,80564,80820,80990,81131,81195,81477,81763,82439,82703,83041,83394,83488,83674,83980,84242,84367,84494,84733,84944,85063,85256,85433,85888,86069,86191,86450,86563,86750,86852,86959,87088,87363,87871,88367,89244,89538,90108,90257,90989,91161,91497,91589,91867,96931,101356,101418,101996,102580,102671,102784,103013,103173,103325,103496,103662,103831,103998,104161,104404,104574,104747,104918,105192,105391,105596,105926,106010,106106,106202,106300,106400,106502,106604,106706,106808,106910,107010,107106,107218,107347,107470,107601,107732,107830,107944,108038,108178,108312,108408,108520,108620,108736,108832,108944,109044,109184,109320,109484,109614,109772,109922,110063,110207,110342,110454,110604,110732,110860,110996,111128,111258,111388,111500,111640,112544,112688,112826,114238,114328,114404,114508,114598,114700,114808,114916,115016,115096,115188,115286,115396,115474,115580,115672,115776,115886,116008,116171,116328,116408,116508,116598,116708,116802,116908,117000,117100,117212,117326,117442,117558,117652,117766,117878,117980,118100,118222,118304,118408,118528,118654,118752,118846,118934,119046,119162,119284,119396,119571,119687,119773,119865,119977,120101,120168,120294,120362,120490,120634,120762,120831,120926,121041,121154,121253,121362,121473,121584,121685,121790,121890,122020,122111,122234,122328,122440,122526,122630,122726,122814,122932,123036,123140,123266,123354,123462,123562,123652,123762,123846,123948,124032,124086,124150,124256,124366,124450,124570,127470,127588,127703,127783,128144,128377,128894,129319,129497,129781,131125,132486,132874,133952,143470,143605,145109,150408,154343,154605,154805,155184,159462,160068,160297,160448,160663,161746,162058,162469,162596,165622,166223,168144,168484,169795,169998" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,3,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,171,172,176,177,178,6,13,56,88,125", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,124,7725,7795,7863,7935,8005,8066,8140,8213,8274,8335,8397,8461,8523,8584,8652,8752,8812,8878,8951,9020,9077,9129,9191,9263,9339,9374,9409,9459,9520,9577,9611,9646,9681,9751,9822,9939,10140,10250,10451,10580,10652,319,617,3523,5588,7348", + "endLines": "2,3,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,170,171,175,176,177,178,12,55,87,124,131", + "endColumns": "68,62,69,67,71,69,60,73,72,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,49,60,56,33,34,34,69,70,116,12,109,12,128,71,66,24,24,24,24,24", + "endOffsets": "119,182,7790,7858,7930,8000,8061,8135,8208,8269,8330,8392,8456,8518,8579,8647,8747,8807,8873,8946,9015,9072,9124,9186,9258,9334,9369,9404,9454,9515,9572,9606,9641,9676,9746,9817,9934,10135,10245,10446,10575,10647,10714,612,3518,5583,7343,7720" + }, + "to": { + "startLines": "60,61,158,159,160,161,162,163,164,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,202,203,209,210,214,215,216,217,218,219,225,362,1701,1702,1706,1707,1711,1876,1877,2468,2609,2640,2661,2694", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "3608,3677,10320,10390,10458,10530,10600,10661,10735,11592,11653,11714,11776,11840,11902,11963,12031,12131,12191,12257,12330,12399,12456,12508,13285,13357,13672,13707,13884,13934,13995,14052,14086,14121,14431,23864,111645,111762,111963,112073,112274,124575,124647,143610,150413,152067,152748,153430", + "endLines": "60,61,158,159,160,161,162,163,164,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,202,203,209,210,214,215,216,217,218,219,225,362,1701,1705,1706,1710,1711,1876,1877,2474,2639,2660,2693,2699", + "endColumns": "68,62,69,67,71,69,60,73,72,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,49,60,56,33,34,34,69,70,116,12,109,12,128,71,66,24,24,24,24,24", + "endOffsets": "3672,3735,10385,10453,10525,10595,10656,10730,10803,11648,11709,11771,11835,11897,11958,12026,12126,12186,12252,12325,12394,12451,12503,12565,13352,13428,13702,13737,13929,13990,14047,14081,14116,14151,14496,23930,111757,111958,112068,112269,112398,124642,124709,143816,152062,152743,153425,153592" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\arrays.xml", + "from": { + "startLines": "19,26", + "startColumns": "4,4", + "startOffsets": "758,1073", + "endLines": "24,29", + "endColumns": "19,19", + "endOffsets": "1065,1191" + }, + "to": { + "startLines": "2,8", + "startColumns": "4,4", + "startOffsets": "105,300", + "endLines": "7,11", + "endColumns": "19,19", + "endOffsets": "295,415" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\strings.xml", + "from": { + "startLines": "128,72,75,74,73,19,20,21,118,119,127,126,26,81,82,80,79,78,94,93,92,84,39,38,64,29,30,85,41,76,120,71,67,42,48,53,43,63,62,61,57,56,54,55,58,59,49,70,60,68,47,52,51,50,66,46,65,44,45,69,28,34,36,33,35,32,31,25,24,101,100,104,116,109,108,110,111,113,112,102,103,107,105,106,99,114,115,125,123,122,124,27,83,91,96,95,97,90,89,88,87,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "8136,3970,4234,4137,4067,846,890,943,7624,7674,8077,8025,1308,4694,4789,4622,4537,4453,5668,5584,5481,4967,2043,1991,3461,1515,1569,5029,2138,4318,7738,3898,3649,2198,2519,2825,2257,3389,3327,3269,3043,2990,2885,2939,3094,3145,2567,3831,3206,3699,2471,2769,2680,2621,3586,2420,3540,2315,2359,3763,1459,1784,1894,1736,1840,1679,1630,1252,1198,6131,6063,6375,7525,6744,6662,6819,6909,7153,7073,6216,6292,6602,6440,6521,6007,7298,7421,7983,7854,7796,7908,1393,4898,5394,5805,5735,5886,5334,5278,5215,5154,996,1107", + "endLines": "132,72,75,74,73,19,20,21,118,119,127,126,26,81,82,80,79,78,94,93,92,84,39,38,64,29,30,85,41,76,120,71,67,42,48,53,43,63,62,61,57,56,54,55,58,59,49,70,60,68,47,52,51,50,66,46,65,44,45,69,28,34,36,33,35,32,31,25,24,101,100,104,116,109,108,110,111,113,112,102,103,107,105,106,99,114,115,125,123,122,124,27,83,91,96,95,97,90,89,88,87,22,23", + "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89", + "endOffsets": "8544,4061,4312,4228,4131,884,937,990,7668,7732,8130,8071,1387,4783,4892,4688,4616,4531,5729,5662,5578,5023,2100,2037,3534,1563,1624,5129,2192,4415,7788,3964,3693,2251,2561,2879,2309,3455,3383,3321,3088,3037,2933,2984,3139,3200,2615,3892,3263,3757,2513,2819,2763,2674,3643,2465,3580,2353,2414,3825,1509,1834,1942,1778,1888,1730,1673,1302,1246,6210,6125,6434,7616,6813,6738,6903,7067,7292,7147,6286,6369,6656,6515,6596,6057,7415,7519,8019,7902,7848,7977,1453,4961,5475,5880,5799,5975,5388,5328,5272,5209,1101,1192" + }, + "to": { + "startLines": "226,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,360,361,363,364,365,366,367,368,369,370,371,372,373", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "14501,17612,17708,17791,17887,17956,17999,18051,18103,18152,18215,18273,18324,18408,18502,18610,18681,18765,18848,18914,18997,19099,19160,19222,19273,19351,19404,19464,19569,19628,19730,19785,19856,19905,19963,20010,20069,20126,20197,20258,20315,20365,20417,20470,20520,20570,20630,20683,20749,20811,20874,20921,20976,21064,21122,21184,21234,21279,21322,21382,21449,21504,21559,21612,21659,21712,21768,21816,21871,21924,22008,22075,22139,22235,22309,22390,22479,22642,22786,22865,22940,23022,23081,23161,23241,23296,23418,23521,23562,23615,23725,23799,23935,24003,24089,24169,24238,24332,24391,24446,24508,24568,24678", + "endLines": "230,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,360,361,363,364,365,366,367,368,369,370,371,372,373", + "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89", + "endOffsets": "14849,17703,17786,17882,17951,17994,18046,18098,18147,18210,18268,18319,18403,18497,18605,18676,18760,18843,18909,18992,19094,19155,19217,19268,19346,19399,19459,19564,19623,19725,19780,19851,19900,19958,20005,20064,20121,20192,20253,20310,20360,20412,20465,20515,20565,20625,20678,20744,20806,20869,20916,20971,21059,21117,21179,21229,21274,21317,21377,21444,21499,21554,21607,21654,21707,21763,21811,21866,21919,22003,22070,22134,22230,22304,22385,22474,22637,22781,22860,22935,23017,23076,23156,23236,23291,23413,23516,23557,23610,23667,23794,23859,23998,24084,24164,24233,24327,24386,24441,24503,24563,24673,24763" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\styles.xml", + "from": { + "startLines": "50,55,64,60,22,26,30,35,40,18,45", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "2112,2322,2704,2539,917,1104,1293,1484,1693,730,1905", + "endLines": "53,58,67,62,25,29,33,38,43,21,48", + "endColumns": "12,12,12,12,12,12,12,12,12,12,12", + "endOffsets": "2314,2531,2910,2696,1098,1287,1476,1685,1897,911,2104" + }, + "to": { + "startLines": "1437,1441,1445,1449,1718,1722,1726,1730,1734,1738,1742", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "91872,92076,92287,92494,112831,113014,113199,113384,113587,113793,113976", + "endLines": "1440,1444,1448,1451,1721,1725,1729,1733,1737,1741,1745", + "endColumns": "12,12,12,12,12,12,12,12,12,12,12", + "endOffsets": "92071,92282,92489,92649,113009,113194,113379,113582,113788,113971,114172" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-hu_values-hu.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-hu\\values-hu.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,318,433,517,629,759,835,911,1002,1095,1191,1285,1386,1479,1574,1669,1760,1851,1934,2044,2155,2255,2366,2474,2593,2775,2878", + "endColumns": "107,104,114,83,111,129,75,75,90,92,95,93,100,92,94,94,90,90,82,109,110,99,110,107,118,181,102,82", + "endOffsets": "208,313,428,512,624,754,830,906,997,1090,1186,1280,1381,1474,1569,1664,1755,1846,1929,2039,2150,2250,2361,2469,2588,2770,2873,2956" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-hu\\values-hu.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2961", + "endColumns": "100", + "endOffsets": "3057" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-lv_values-lv.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-lv\\values-lv.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,333,442,528,632,754,836,918,1028,1136,1243,1352,1464,1567,1679,1786,1891,1991,2076,2185,2297,2396,2507,2616,2721,2895,2994", + "endColumns": "119,107,108,85,103,121,81,81,109,107,106,108,111,102,111,106,104,99,84,108,111,98,110,108,104,173,98,81", + "endOffsets": "220,328,437,523,627,749,831,913,1023,1131,1238,1347,1459,1562,1674,1781,1886,1986,2071,2180,2292,2391,2502,2611,2716,2890,2989,3071" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-lv\\values-lv.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "3076", + "endColumns": "100", + "endOffsets": "3172" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-h720dp-v13_values-h720dp-v13.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-h720dp-v13\\values-h720dp-v13.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "66", + "endOffsets": "117" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-large-v4_values-large-v4.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-large-v4\\values-large-v4.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10", + "startColumns": "4,4,4,4,4,4,4,4,4", + "startOffsets": "55,114,185,256,326,396,464,532,636", + "endColumns": "58,70,70,69,69,67,67,103,115", + "endOffsets": "109,180,251,321,391,459,527,631,747" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-gu_values-gu.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-gu\\values-gu.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,318,425,512,613,736,813,891,982,1075,1174,1268,1369,1462,1557,1654,1745,1836,1916,2022,2124,2221,2330,2429,2539,2699,2802", + "endColumns": "108,103,106,86,100,122,76,77,90,92,98,93,100,92,94,96,90,90,79,105,101,96,108,98,109,159,102,79", + "endOffsets": "209,313,420,507,608,731,808,886,977,1070,1169,1263,1364,1457,1552,1649,1740,1831,1911,2017,2119,2216,2325,2424,2534,2694,2797,2877" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-gu\\values-gu.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2882", + "endColumns": "100", + "endOffsets": "2978" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-pa_values-pa.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-pa\\values-pa.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2839", + "endColumns": "100", + "endOffsets": "2935" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-pa\\values-pa.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,305,410,496,596,709,786,862,953,1046,1142,1236,1337,1430,1525,1619,1710,1801,1880,1981,2085,2182,2291,2390,2500,2659,2759", + "endColumns": "102,96,104,85,99,112,76,75,90,92,95,93,100,92,94,93,90,90,78,100,103,96,108,98,109,158,99,79", + "endOffsets": "203,300,405,491,591,704,781,857,948,1041,1137,1231,1332,1425,1520,1614,1705,1796,1875,1976,2080,2177,2286,2385,2495,2654,2754,2834" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-b+sr+Latn_values-b+sr+Latn.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-b+sr+Latn\\values-b+sr+Latn.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2912", + "endColumns": "100", + "endOffsets": "3008" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-b+sr+Latn\\values-b+sr+Latn.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,318,424,510,614,732,814,895,986,1079,1175,1269,1370,1463,1558,1663,1754,1845,1933,2039,2147,2248,2353,2461,2562,2731,2828", + "endColumns": "108,103,105,85,103,117,81,80,90,92,95,93,100,92,94,104,90,90,87,105,107,100,104,107,100,168,96,83", + "endOffsets": "209,313,419,505,609,727,809,890,981,1074,1170,1264,1365,1458,1553,1658,1749,1840,1928,2034,2142,2243,2348,2456,2557,2726,2823,2907" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v23_values-v23.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v23\\values-v23.xml", + "from": { + "startLines": "2,3,4,5,6,19,32,33,34,35,36", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,190,325,400,487,1277,2079,2206,2311,2426,2533", + "endLines": "2,3,4,5,18,31,32,33,34,35,36", + "endColumns": "134,134,74,86,12,12,126,104,114,106,112", + "endOffsets": "185,320,395,482,1272,2074,2201,2306,2421,2528,2641" + }, + "to": { + "startLines": "2,3,4,5,6,19,32,33,34,35,36", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,190,325,400,487,1131,1787,1914,2019,2134,2241", + "endLines": "2,3,4,5,18,31,32,33,34,35,36", + "endColumns": "134,134,74,86,12,12,126,104,114,106,112", + "endOffsets": "185,320,395,482,1126,1782,1909,2014,2129,2236,2349" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-bg_values-bg.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-bg\\values-bg.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,220,327,432,518,623,744,823,901,992,1085,1181,1275,1376,1469,1564,1672,1763,1854,1937,2051,2160,2260,2374,2480,2588,2748,2847", + "endColumns": "114,106,104,85,104,120,78,77,90,92,95,93,100,92,94,107,90,90,82,113,108,99,113,105,107,159,98,82", + "endOffsets": "215,322,427,513,618,739,818,896,987,1080,1176,1270,1371,1464,1559,1667,1758,1849,1932,2046,2155,2255,2369,2475,2583,2743,2842,2925" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-bg\\values-bg.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2930", + "endColumns": "100", + "endOffsets": "3026" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v26_values-v26.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v26\\values-v26.xml", + "from": { + "startLines": "2,3,4,8,12,16", + "startColumns": "4,4,4,4,4,4", + "startOffsets": "55,130,217,431,657,896", + "endLines": "2,3,7,11,15,16", + "endColumns": "74,86,12,12,12,92", + "endOffsets": "125,212,426,652,891,984" + }, + "to": { + "startLines": "2,3,4,8,12,16", + "startColumns": "4,4,4,4,4,4", + "startOffsets": "55,130,217,381,557,796", + "endLines": "2,3,7,11,15,16", + "endColumns": "74,86,12,12,12,92", + "endOffsets": "125,212,376,552,791,884" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-zh-rHK_values-zh-rHK.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zh-rHK\\values-zh-rHK.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2746", + "endColumns": "100", + "endOffsets": "2842" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zh-rHK\\values-zh-rHK.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,200,293,393,475,572,680,756,832,924,1018,1110,1206,1302,1396,1492,1584,1676,1768,1846,1942,2038,2133,2230,2325,2423,2574,2668", + "endColumns": "94,92,99,81,96,107,75,75,91,93,91,95,95,93,95,91,91,91,77,95,95,94,96,94,97,150,93,77", + "endOffsets": "195,288,388,470,567,675,751,827,919,1013,1105,1201,1297,1391,1487,1579,1671,1763,1841,1937,2033,2128,2225,2320,2418,2569,2663,2741" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sw600dp-v13_values-sw600dp-v13.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sw600dp-v13\\values-sw600dp-v13.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9", + "startColumns": "4,4,4,4,4,4,4,4", + "startOffsets": "55,124,193,263,337,413,472,543", + "endColumns": "68,68,69,73,75,58,70,67", + "endOffsets": "119,188,258,332,408,467,538,606" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sk_values-sk.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sk\\values-sk.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,212,312,423,509,617,735,816,897,988,1081,1180,1274,1375,1468,1563,1661,1752,1843,1927,2032,2141,2240,2346,2457,2566,2732,2830", + "endColumns": "106,99,110,85,107,117,80,80,90,92,98,93,100,92,94,97,90,90,83,104,108,98,105,110,108,165,97,87", + "endOffsets": "207,307,418,504,612,730,811,892,983,1076,1175,1269,1370,1463,1558,1656,1747,1838,1922,2027,2136,2235,2341,2452,2561,2727,2825,2913" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sk\\values-sk.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2918", + "endColumns": "100", + "endOffsets": "3014" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-et_values-et.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-et\\values-et.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,222,329,440,526,628,745,825,903,995,1089,1194,1296,1406,1500,1601,1695,1787,1880,1963,2074,2179,2278,2388,2489,2592,2758,2860", + "endColumns": "116,106,110,85,101,116,79,77,91,93,104,101,109,93,100,93,91,92,82,110,104,98,109,100,102,165,101,81", + "endOffsets": "217,324,435,521,623,740,820,898,990,1084,1189,1291,1401,1495,1596,1690,1782,1875,1958,2069,2174,2273,2383,2484,2587,2753,2855,2937" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-et\\values-et.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2942", + "endColumns": "100", + "endOffsets": "3038" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-watch-v20_values-watch-v20.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-watch-v20\\values-watch-v20.xml", + "from": { + "startLines": "2,5,8", + "startColumns": "4,4,4", + "startOffsets": "55,214,385", + "endLines": "4,7,10", + "endColumns": "12,12,12", + "endOffsets": "209,380,553" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-port_values-port.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-port\\values-port.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "55", + "endOffsets": "106" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-as_values-as.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-as\\values-as.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,312,419,515,617,736,816,896,987,1080,1173,1268,1368,1461,1558,1652,1743,1834,1923,2025,2140,2243,2352,2471,2591,2758,2861", + "endColumns": "107,98,106,95,101,118,79,79,90,92,92,94,99,92,96,93,90,90,88,101,114,102,108,118,119,166,102,88", + "endOffsets": "208,307,414,510,612,731,811,891,982,1075,1168,1263,1363,1456,1553,1647,1738,1829,1918,2020,2135,2238,2347,2466,2586,2753,2856,2945" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-as\\values-as.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2950", + "endColumns": "100", + "endOffsets": "3046" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-mn_values-mn.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-mn\\values-mn.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,218,318,431,518,624,736,818,900,991,1084,1180,1276,1374,1467,1562,1654,1745,1835,1917,2026,2130,2227,2335,2436,2539,2698,2795", + "endColumns": "112,99,112,86,105,111,81,81,90,92,95,95,97,92,94,91,90,89,81,108,103,96,107,100,102,158,96,80", + "endOffsets": "213,313,426,513,619,731,813,895,986,1079,1175,1271,1369,1462,1557,1649,1740,1830,1912,2021,2125,2222,2330,2431,2534,2693,2790,2871" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-mn\\values-mn.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2876", + "endColumns": "100", + "endOffsets": "2972" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-zh-rCN_values-zh-rCN.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zh-rCN\\values-zh-rCN.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,201,296,396,478,575,681,757,833,924,1017,1115,1211,1306,1399,1494,1586,1677,1768,1846,1942,2038,2133,2230,2325,2423,2572,2666", + "endColumns": "95,94,99,81,96,105,75,75,90,92,97,95,94,92,94,91,90,90,77,95,95,94,96,94,97,148,93,77", + "endOffsets": "196,291,391,473,570,676,752,828,919,1012,1110,1206,1301,1394,1489,1581,1672,1763,1841,1937,2033,2128,2225,2320,2418,2567,2661,2739" + }, + "to": { + "startLines": "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,121", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "384,480,575,675,757,854,960,1036,1112,1203,1296,1394,1490,1585,1678,1773,1865,1956,2047,2125,2221,2317,2412,2509,2604,2702,2851,7808", + "endColumns": "95,94,99,81,96,105,75,75,90,92,97,95,94,92,94,91,90,90,77,95,95,94,96,94,97,148,93,77", + "endOffsets": "475,570,670,752,849,955,1031,1107,1198,1291,1389,1485,1580,1673,1768,1860,1951,2042,2120,2216,2312,2407,2504,2599,2697,2846,2940,7881" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endLines": "21", + "endColumns": "19", + "endOffsets": "838" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "105", + "endLines": "5", + "endColumns": "19", + "endOffsets": "210" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rCN\\strings.xml", + "from": { + "startLines": "121,71,70,69,68,19,20,21,112,113,120,119,26,77,78,76,75,74,90,89,88,80,60,29,30,81,72,114,67,63,38,44,49,39,59,58,57,53,52,50,51,54,55,45,66,56,64,43,48,47,46,62,42,61,40,41,65,28,34,36,33,35,32,31,25,24,97,96,99,111,104,103,105,106,108,107,98,102,100,101,95,109,110,118,116,115,117,27,79,87,92,91,93,86,85,84,83,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "6653,3566,3499,3425,3374,846,887,936,6195,6241,6598,6547,1225,3938,4007,3878,3812,3748,4682,4621,4557,4141,2937,1398,1452,4196,3640,6299,3314,3097,1836,2123,2374,1890,2876,2822,2770,2571,2522,2426,2475,2618,2666,2167,3254,2717,3141,2079,2326,2269,2213,3041,2034,2998,1941,1983,3194,1346,1657,1755,1609,1707,1561,1515,1173,1119,5064,5004,5207,6120,5523,5453,5588,5667,5852,5778,5140,5397,5265,5331,4954,5957,6041,6508,6399,6350,6445,1288,4085,4497,4797,4738,4865,4448,4402,4353,4301,985,1052", + "endLines": "123,71,70,69,68,19,20,21,112,113,120,119,26,77,78,76,75,74,90,89,88,80,60,29,30,81,72,114,67,63,38,44,49,39,59,58,57,53,52,50,51,54,55,45,66,56,64,43,48,47,46,62,42,61,40,41,65,28,34,36,33,35,32,31,25,24,97,96,99,111,104,103,105,106,108,107,98,102,100,101,95,109,110,118,116,115,117,27,79,87,92,91,93,86,85,84,83,22,23", + "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "6827,3634,3560,3493,3419,881,930,979,6235,6293,6647,6592,1282,4001,4079,3932,3872,3806,4732,4676,4615,4190,2992,1446,1509,4276,3716,6344,3368,3135,1884,2161,2420,1935,2931,2870,2816,2612,2565,2469,2516,2660,2711,2207,3308,2764,3188,2117,2368,2320,2263,3091,2073,3035,1977,2028,3248,1392,1701,1799,1651,1749,1603,1555,1219,1167,5134,5058,5259,6189,5582,5517,5661,5772,5951,5846,5201,5447,5325,5391,4998,6035,6114,6541,6439,6393,6502,1340,4135,4551,4859,4791,4922,4491,4442,4396,4347,1046,1113" + }, + "to": { + "startLines": "6,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "215,2945,3018,3084,3157,3207,3247,3295,3343,3388,3445,3499,3549,3611,3679,3756,3815,3880,3943,3998,4058,4121,4175,4235,4288,4350,4435,4516,4566,4625,4668,4721,4764,4815,4865,4925,4978,5029,5075,5123,5171,5217,5264,5314,5359,5418,5470,5522,5565,5612,5668,5723,5778,5822,5864,5905,5955,6014,6065,6114,6163,6210,6257,6304,6349,6400,6453,6528,6587,6644,6718,6782,6851,6929,7039,7143,7216,7282,7337,7402,7467,7516,7599,7677,7715,7760,7886,7948,8106,8161,8220,8287,8345,8407,8455,8500,8548,8599,8665", + "endLines": "8,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "379,3013,3079,3152,3202,3242,3290,3338,3383,3440,3494,3544,3606,3674,3751,3810,3875,3938,3993,4053,4116,4170,4230,4283,4345,4430,4511,4561,4620,4663,4716,4759,4810,4860,4920,4973,5024,5070,5118,5166,5212,5259,5309,5354,5413,5465,5517,5560,5607,5663,5718,5773,5817,5859,5900,5950,6009,6060,6109,6158,6205,6252,6299,6344,6395,6448,6523,6582,6639,6713,6777,6846,6924,7034,7138,7211,7277,7332,7397,7462,7511,7594,7672,7710,7755,7803,7943,8000,8156,8215,8282,8340,8402,8450,8495,8543,8594,8660,8726" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zh-rCN\\values-zh-rCN.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "124", + "startColumns": "4", + "startOffsets": "8005", + "endColumns": "100", + "endOffsets": "8101" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ro_values-ro.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ro\\values-ro.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2953", + "endColumns": "100", + "endOffsets": "3049" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ro\\values-ro.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,226,330,443,531,643,764,849,930,1021,1114,1210,1304,1404,1497,1592,1687,1778,1870,1953,2065,2178,2278,2392,2497,2603,2767,2870", + "endColumns": "120,103,112,87,111,120,84,80,90,92,95,93,99,92,94,94,90,91,82,111,112,99,113,104,105,163,102,82", + "endOffsets": "221,325,438,526,638,759,844,925,1016,1109,1205,1299,1399,1492,1587,1682,1773,1865,1948,2060,2173,2273,2387,2492,2598,2762,2865,2948" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ta_values-ta.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ta\\values-ta.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2954", + "endColumns": "100", + "endOffsets": "3050" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ta\\values-ta.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,219,317,432,521,628,754,832,909,1009,1114,1210,1305,1412,1514,1618,1713,1815,1913,1995,2097,2201,2298,2408,2510,2617,2774,2874", + "endColumns": "113,97,114,88,106,125,77,76,99,104,95,94,106,101,103,94,101,97,81,101,103,96,109,101,106,156,99,79", + "endOffsets": "214,312,427,516,623,749,827,904,1004,1109,1205,1300,1407,1509,1613,1708,1810,1908,1990,2092,2196,2293,2403,2505,2612,2769,2869,2949" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ms_values-ms.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ms\\values-ms.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,216,321,429,516,620,731,809,888,979,1072,1167,1261,1360,1453,1548,1642,1733,1824,1904,2016,2125,2222,2331,2434,2541,2700,2801", + "endColumns": "110,104,107,86,103,110,77,78,90,92,94,93,98,92,94,93,90,90,79,111,108,96,108,102,106,158,100,79", + "endOffsets": "211,316,424,511,615,726,804,883,974,1067,1162,1256,1355,1448,1543,1637,1728,1819,1899,2011,2120,2217,2326,2429,2536,2695,2796,2876" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ms\\values-ms.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2881", + "endColumns": "100", + "endOffsets": "2977" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ne_values-ne.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ne\\values-ne.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,314,422,513,620,747,841,931,1022,1115,1211,1305,1406,1499,1594,1688,1779,1870,1958,2068,2184,2287,2402,2504,2619,2790,2902", + "endColumns": "104,103,107,90,106,126,93,89,90,92,95,93,100,92,94,93,90,90,87,109,115,102,114,101,114,170,111,85", + "endOffsets": "205,309,417,508,615,742,836,926,1017,1110,1206,1300,1401,1494,1589,1683,1774,1865,1953,2063,2179,2282,2397,2499,2614,2785,2897,2983" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ne\\values-ne.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2988", + "endColumns": "100", + "endOffsets": "3084" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-kn_values-kn.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-kn\\values-kn.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,223,335,448,536,643,770,847,924,1015,1108,1204,1298,1399,1492,1587,1681,1772,1863,1945,2061,2172,2271,2384,2488,2602,2766,2866", + "endColumns": "117,111,112,87,106,126,76,76,90,92,95,93,100,92,94,93,90,90,81,115,110,98,112,103,113,163,99,81", + "endOffsets": "218,330,443,531,638,765,842,919,1010,1103,1199,1293,1394,1487,1582,1676,1767,1858,1940,2056,2167,2266,2379,2483,2597,2761,2861,2943" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-kn\\values-kn.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2948", + "endColumns": "100", + "endOffsets": "3044" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v18_values-v18.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v18\\values-v18.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "48", + "endOffsets": "99" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-fr-rCA_values-fr-rCA.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-fr-rCA\\values-fr-rCA.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2965", + "endColumns": "100", + "endOffsets": "3061" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-fr-rCA\\values-fr-rCA.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,216,331,442,529,645,775,858,938,1029,1122,1221,1316,1417,1510,1603,1698,1789,1880,1976,2086,2198,2301,2412,2519,2621,2780,2879", + "endColumns": "110,114,110,86,115,129,82,79,90,92,98,94,100,92,92,94,90,90,95,109,111,102,110,106,101,158,98,85", + "endOffsets": "211,326,437,524,640,770,853,933,1024,1117,1216,1311,1412,1505,1598,1693,1784,1875,1971,2081,2193,2296,2407,2514,2616,2775,2874,2960" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-pt_values-pt.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-pt\\values-pt.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2929", + "endColumns": "100", + "endOffsets": "3025" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-pt\\values-pt.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,331,438,527,628,746,829,909,1000,1093,1189,1283,1384,1477,1572,1667,1758,1849,1936,2043,2155,2257,2365,2472,2582,2744,2844", + "endColumns": "119,105,106,88,100,117,82,79,90,92,95,93,100,92,94,94,90,90,86,106,111,101,107,106,109,161,99,84", + "endOffsets": "220,326,433,522,623,741,824,904,995,1088,1184,1278,1379,1472,1567,1662,1753,1844,1931,2038,2150,2252,2360,2467,2577,2739,2839,2924" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-hi_values-hi.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-hi\\values-hi.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,211,308,418,504,606,728,805,883,974,1067,1163,1257,1358,1451,1546,1640,1731,1822,1912,2021,2124,2226,2336,2437,2549,2711,2812", + "endColumns": "105,96,109,85,101,121,76,77,90,92,95,93,100,92,94,93,90,90,89,108,102,101,109,100,111,161,100,79", + "endOffsets": "206,303,413,499,601,723,800,878,969,1062,1158,1252,1353,1446,1541,1635,1726,1817,1907,2016,2119,2221,2331,2432,2544,2706,2807,2887" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-hi\\values-hi.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2892", + "endColumns": "100", + "endOffsets": "2988" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ca_values-ca.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ca\\values-ca.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,223,329,436,519,627,753,837,918,1009,1102,1196,1291,1390,1483,1576,1670,1761,1852,1935,2046,2155,2253,2363,2467,2575,2735,2834", + "endColumns": "117,105,106,82,107,125,83,80,90,92,93,94,98,92,92,93,90,90,82,110,108,97,109,103,107,159,98,80", + "endOffsets": "218,324,431,514,622,748,832,913,1004,1097,1191,1286,1385,1478,1571,1665,1756,1847,1930,2041,2150,2248,2358,2462,2570,2730,2829,2910" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ca\\values-ca.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2915", + "endColumns": "100", + "endOffsets": "3011" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-bn_values-bn.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-bn\\values-bn.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2939", + "endColumns": "100", + "endOffsets": "3035" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-bn\\values-bn.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,326,432,526,631,760,838,916,1007,1100,1195,1289,1390,1483,1578,1672,1763,1854,1941,2051,2159,2258,2368,2474,2587,2752,2857", + "endColumns": "108,111,105,93,104,128,77,77,90,92,94,93,100,92,94,93,90,90,86,109,107,98,109,105,112,164,104,81", + "endOffsets": "209,321,427,521,626,755,833,911,1002,1095,1190,1284,1385,1478,1573,1667,1758,1849,1936,2046,2154,2253,2363,2469,2582,2747,2852,2934" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sw_values-sw.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sw\\values-sw.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2883", + "endColumns": "100", + "endOffsets": "2979" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sw\\values-sw.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,306,414,504,609,726,808,891,982,1075,1169,1263,1364,1457,1552,1647,1738,1830,1912,2013,2122,2221,2328,2437,2542,2704,2801", + "endColumns": "102,97,107,89,104,116,81,82,90,92,93,93,100,92,94,94,90,91,81,100,108,98,106,108,104,161,96,81", + "endOffsets": "203,301,409,499,604,721,803,886,977,1070,1164,1258,1359,1452,1547,1642,1733,1825,1907,2008,2117,2216,2323,2432,2537,2699,2796,2878" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-hy_values-hy.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-hy\\values-hy.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2884", + "endColumns": "100", + "endOffsets": "2980" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-hy\\values-hy.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,309,419,508,614,729,811,892,983,1076,1172,1266,1367,1460,1555,1649,1740,1831,1916,2023,2130,2229,2339,2446,2546,2703,2802", + "endColumns": "102,100,109,88,105,114,81,80,90,92,95,93,100,92,94,93,90,90,84,106,106,98,109,106,99,156,98,81", + "endOffsets": "203,304,414,503,609,724,806,887,978,1071,1167,1261,1362,1455,1550,1644,1735,1826,1911,2018,2125,2224,2334,2441,2541,2698,2797,2879" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-fi_values-fi.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-fi\\values-fi.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,313,414,500,605,723,810,892,983,1076,1172,1266,1361,1454,1550,1649,1740,1834,1914,2021,2124,2221,2327,2426,2530,2693,2792", + "endColumns": "107,99,100,85,104,117,86,81,90,92,95,93,94,92,95,98,90,93,79,106,102,96,105,98,103,162,98,79", + "endOffsets": "208,308,409,495,600,718,805,887,978,1071,1167,1261,1356,1449,1545,1644,1735,1829,1909,2016,2119,2216,2322,2421,2525,2688,2787,2867" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-fi\\values-fi.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2872", + "endColumns": "100", + "endOffsets": "2968" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-en-rAU_values-en-rAU.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-en-rAU\\values-en-rAU.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2846", + "endColumns": "100", + "endOffsets": "2942" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-en-rAU\\values-en-rAU.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,309,417,501,601,716,793,869,960,1053,1149,1243,1344,1437,1532,1626,1717,1808,1890,1993,2097,2196,2301,2404,2508,2664,2764", + "endColumns": "103,99,107,83,99,114,76,75,90,92,95,93,100,92,94,93,90,90,81,102,103,98,104,102,103,155,99,81", + "endOffsets": "204,304,412,496,596,711,788,864,955,1048,1144,1238,1339,1432,1527,1621,1712,1803,1885,1988,2092,2191,2296,2399,2503,2659,2759,2841" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-night-v8_values-night-v8.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-night-v8\\values-night-v8.xml", + "from": { + "startLines": "2,3,4,5,6,7,8", + "startColumns": "4,4,4,4,4,4,4", + "startOffsets": "55,125,209,293,389,491,593", + "endColumns": "69,83,83,95,101,101,93", + "endOffsets": "120,204,288,384,486,588,682" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-land_values-land.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-land\\values-land.xml", + "from": { + "startLines": "2,3,4", + "startColumns": "4,4,4", + "startOffsets": "55,125,196", + "endColumns": "69,70,67", + "endOffsets": "120,191,259" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-bs_values-bs.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-bs\\values-bs.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,224,333,440,526,630,752,834,915,1006,1099,1195,1289,1390,1483,1578,1677,1768,1859,1945,2048,2153,2251,2356,2469,2572,2745,2842", + "endColumns": "118,108,106,85,103,121,81,80,90,92,95,93,100,92,94,98,90,90,85,102,104,97,104,112,102,172,96,83", + "endOffsets": "219,328,435,521,625,747,829,910,1001,1094,1190,1284,1385,1478,1573,1672,1763,1854,1940,2043,2148,2246,2351,2464,2567,2740,2837,2921" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-bs\\values-bs.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2926", + "endColumns": "100", + "endOffsets": "3022" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-lo_values-lo.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-lo\\values-lo.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2836", + "endColumns": "100", + "endOffsets": "2932" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-lo\\values-lo.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,305,412,497,602,714,791,869,960,1053,1149,1243,1344,1437,1532,1626,1717,1808,1888,1995,2092,2190,2295,2398,2502,2659,2755", + "endColumns": "102,96,106,84,104,111,76,77,90,92,95,93,100,92,94,93,90,90,79,106,96,97,104,102,103,156,95,80", + "endOffsets": "203,300,407,492,597,709,786,864,955,1048,1144,1238,1339,1432,1527,1621,1712,1803,1883,1990,2087,2185,2290,2393,2497,2654,2750,2831" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ldltr-v21_values-ldltr-v21.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ldltr-v21\\values-ldltr-v21.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "112", + "endOffsets": "163" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ja_values-ja.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ja\\values-ja.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,202,295,400,482,580,688,765,841,932,1025,1121,1215,1316,1409,1504,1598,1689,1780,1858,1960,2059,2154,2257,2352,2448,2596,2693", + "endColumns": "96,92,104,81,97,107,76,75,90,92,95,93,100,92,94,93,90,90,77,101,98,94,102,94,95,147,96,77", + "endOffsets": "197,290,395,477,575,683,760,836,927,1020,1116,1210,1311,1404,1499,1593,1684,1775,1853,1955,2054,2149,2252,2347,2443,2591,2688,2766" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ja\\values-ja.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2771", + "endColumns": "100", + "endOffsets": "2867" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ru_values-ru.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ru\\values-ru.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,220,322,434,520,625,745,824,902,994,1088,1184,1277,1373,1467,1563,1658,1750,1842,1922,2028,2136,2234,2343,2449,2557,2732,2832", + "endColumns": "114,101,111,85,104,119,78,77,91,93,95,92,95,93,95,94,91,91,79,105,107,97,108,105,107,174,99,80", + "endOffsets": "215,317,429,515,620,740,819,897,989,1083,1179,1272,1368,1462,1558,1653,1745,1837,1917,2023,2131,2229,2338,2444,2552,2727,2827,2908" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ru\\values-ru.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2913", + "endColumns": "100", + "endOffsets": "3009" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-si_values-si.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-si\\values-si.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2903", + "endColumns": "100", + "endOffsets": "2999" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-si\\values-si.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,215,322,429,517,622,738,827,914,1005,1098,1193,1287,1388,1481,1576,1670,1761,1852,1936,2045,2150,2248,2358,2457,2563,2722,2821", + "endColumns": "109,106,106,87,104,115,88,86,90,92,94,93,100,92,94,93,90,90,83,108,104,97,109,98,105,158,98,81", + "endOffsets": "210,317,424,512,617,733,822,909,1000,1093,1188,1282,1383,1476,1571,1665,1756,1847,1931,2040,2145,2243,2353,2452,2558,2717,2816,2898" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-or_values-or.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-or\\values-or.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2936", + "endColumns": "100", + "endOffsets": "3032" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-or\\values-or.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,224,334,441,527,631,751,828,905,996,1089,1186,1281,1382,1475,1570,1666,1757,1847,1929,2039,2144,2250,2361,2464,2582,2745,2847", + "endColumns": "118,109,106,85,103,119,76,76,90,92,96,94,100,92,94,95,90,89,81,109,104,105,110,102,117,162,101,88", + "endOffsets": "219,329,436,522,626,746,823,900,991,1084,1181,1276,1377,1470,1565,1661,1752,1842,1924,2034,2139,2245,2356,2459,2577,2740,2842,2931" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-el_values-el.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-el\\values-el.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,223,334,451,536,641,767,855,941,1032,1125,1221,1315,1416,1509,1604,1701,1792,1883,1968,2079,2189,2291,2402,2511,2619,2779,2879", + "endColumns": "117,110,116,84,104,125,87,85,90,92,95,93,100,92,94,96,90,90,84,110,109,101,110,108,107,159,99,84", + "endOffsets": "218,329,446,531,636,762,850,936,1027,1120,1216,1310,1411,1504,1599,1696,1787,1878,1963,2074,2184,2286,2397,2506,2614,2774,2874,2959" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-el\\values-el.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2964", + "endColumns": "100", + "endOffsets": "3060" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-eu_values-eu.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-eu\\values-eu.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,312,422,508,614,738,825,909,1001,1095,1192,1286,1388,1482,1578,1675,1767,1860,1942,2051,2161,2260,2369,2475,2586,2757,2856", + "endColumns": "108,97,109,85,105,123,86,83,91,93,96,93,101,93,95,96,91,92,81,108,109,98,108,105,110,170,98,81", + "endOffsets": "209,307,417,503,609,733,820,904,996,1090,1187,1281,1383,1477,1573,1670,1762,1855,1937,2046,2156,2255,2364,2470,2581,2752,2851,2933" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-eu\\values-eu.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2938", + "endColumns": "100", + "endOffsets": "3034" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-af_values-af.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-af\\values-af.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2856", + "endColumns": "100", + "endOffsets": "2952" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-af\\values-af.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,309,415,500,603,721,797,874,965,1058,1154,1248,1348,1441,1536,1635,1730,1824,1905,2012,2115,2212,2320,2422,2524,2678,2776", + "endColumns": "103,99,105,84,102,117,75,76,90,92,95,93,99,92,94,98,94,93,80,106,102,96,107,101,101,153,97,79", + "endOffsets": "204,304,410,495,598,716,792,869,960,1053,1149,1243,1343,1436,1531,1630,1725,1819,1900,2007,2110,2207,2315,2417,2519,2673,2771,2851" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-tl_values-tl.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-tl\\values-tl.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,224,332,449,537,643,764,843,921,1012,1105,1201,1295,1396,1489,1584,1678,1769,1860,1944,2053,2164,2265,2375,2492,2600,2763,2865", + "endColumns": "118,107,116,87,105,120,78,77,90,92,95,93,100,92,94,93,90,90,83,108,110,100,109,116,107,162,101,83", + "endOffsets": "219,327,444,532,638,759,838,916,1007,1100,1196,1290,1391,1484,1579,1673,1764,1855,1939,2048,2159,2260,2370,2487,2595,2758,2860,2944" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-tl\\values-tl.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2949", + "endColumns": "100", + "endOffsets": "3045" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-gl_values-gl.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-gl\\values-gl.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,217,329,437,522,624,750,834,915,1007,1101,1199,1293,1394,1488,1584,1679,1771,1863,1945,2052,2161,2260,2368,2472,2579,2738,2838", + "endColumns": "111,111,107,84,101,125,83,80,91,93,97,93,100,93,95,94,91,91,81,106,108,98,107,103,106,158,99,81", + "endOffsets": "212,324,432,517,619,745,829,910,1002,1096,1194,1288,1389,1483,1579,1674,1766,1858,1940,2047,2156,2255,2363,2467,2574,2733,2833,2915" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-gl\\values-gl.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2920", + "endColumns": "100", + "endOffsets": "3016" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-en-rIN_values-en-rIN.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-en-rIN\\values-en-rIN.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,309,417,501,601,716,793,869,960,1053,1149,1243,1344,1437,1532,1626,1717,1808,1890,1993,2097,2196,2301,2404,2508,2664,2764", + "endColumns": "103,99,107,83,99,114,76,75,90,92,95,93,100,92,94,93,90,90,81,102,103,98,104,102,103,155,99,81", + "endOffsets": "204,304,412,496,596,711,788,864,955,1048,1144,1238,1339,1432,1527,1621,1712,1803,1885,1988,2092,2191,2296,2399,2503,2659,2759,2841" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-en-rIN\\values-en-rIN.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2846", + "endColumns": "100", + "endOffsets": "2942" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-am_values-am.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-am\\values-am.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,207,306,412,498,601,714,792,870,961,1054,1147,1241,1342,1435,1530,1624,1715,1805,1884,1984,2084,2180,2283,2382,2489,2642,2738", + "endColumns": "101,98,105,85,102,112,77,77,90,92,92,93,100,92,94,93,90,89,78,99,99,95,102,98,106,152,95,78", + "endOffsets": "202,301,407,493,596,709,787,865,956,1049,1142,1236,1337,1430,1525,1619,1710,1800,1879,1979,2079,2175,2278,2377,2484,2637,2733,2812" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-am\\values-am.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2817", + "endColumns": "100", + "endOffsets": "2913" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-en-rXC_values-en-rXC.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-en-rXC\\values-en-rXC.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,310,510,719,904,1106,1321,1494,1671,1862,2055,2253,2449,2652,2847,3044,3239,3432,3623,3807,4011,4216,4417,4624,4826,5031,5303,5503", + "endColumns": "204,199,208,184,201,214,172,176,190,192,197,195,202,194,196,194,192,190,183,203,204,200,206,201,204,271,199,178", + "endOffsets": "305,505,714,899,1101,1316,1489,1666,1857,2050,2248,2444,2647,2842,3039,3234,3427,3618,3802,4006,4211,4412,4619,4821,5026,5298,5498,5677" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-en-rXC\\values-en-rXC.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "202", + "endOffsets": "253" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "5682", + "endColumns": "202", + "endOffsets": "5880" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-lt_values-lt.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-lt\\values-lt.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,221,322,435,522,631,752,834,915,1009,1105,1203,1299,1403,1499,1597,1700,1794,1888,1973,2082,2191,2291,2401,2505,2618,2794,2895", + "endColumns": "115,100,112,86,108,120,81,80,93,95,97,95,103,95,97,102,93,93,84,108,108,99,109,103,112,175,100,82", + "endOffsets": "216,317,430,517,626,747,829,910,1004,1100,1198,1294,1398,1494,1592,1695,1789,1883,1968,2077,2186,2286,2396,2500,2613,2789,2890,2973" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-lt\\values-lt.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2978", + "endColumns": "100", + "endOffsets": "3074" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-pl_values-pl.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-pl\\values-pl.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2909", + "endColumns": "100", + "endOffsets": "3005" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-pl\\values-pl.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,221,323,431,517,626,745,823,900,991,1084,1180,1274,1376,1469,1564,1659,1750,1841,1923,2032,2141,2240,2349,2460,2568,2731,2827", + "endColumns": "115,101,107,85,108,118,77,76,90,92,95,93,101,92,94,94,90,90,81,108,108,98,108,110,107,162,95,81", + "endOffsets": "216,318,426,512,621,740,818,895,986,1079,1175,1269,1371,1464,1559,1654,1745,1836,1918,2027,2136,2235,2344,2455,2563,2726,2822,2904" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-vi_values-vi.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-vi\\values-vi.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,219,327,436,520,623,742,819,896,987,1080,1176,1270,1371,1464,1559,1657,1748,1839,1923,2027,2136,2237,2342,2456,2561,2718,2817", + "endColumns": "113,107,108,83,102,118,76,76,90,92,95,93,100,92,94,97,90,90,83,103,108,100,104,113,104,156,98,83", + "endOffsets": "214,322,431,515,618,737,814,891,982,1075,1171,1265,1366,1459,1554,1652,1743,1834,1918,2022,2131,2232,2337,2451,2556,2713,2812,2896" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-vi\\values-vi.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2901", + "endColumns": "100", + "endOffsets": "2997" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v21_values-v21.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-v21\\values-v21.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,13", + "startColumns": "4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,159,223,290,354,470,596,722,850,1022", + "endLines": "2,3,4,5,6,7,8,9,12,17", + "endColumns": "103,63,66,63,115,125,125,127,12,12", + "endOffsets": "154,218,285,349,465,591,717,845,1017,1355" + }, + "to": { + "startLines": "2,3,4,5,263,264,265,266,267,270", + "startColumns": "4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,159,223,290,18633,18749,18875,19001,19129,19301", + "endLines": "2,3,4,5,263,264,265,266,269,274", + "endColumns": "103,63,66,63,115,125,125,127,12,12", + "endOffsets": "154,218,285,349,18744,18870,18996,19124,19296,19634" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v21\\values-v21.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,21,22,24,26,27,28,29,30,32,34,36,38,40,42,43,48,50,52,53,54,56,58,59,60,61,62,63,107,110,154,157,160,162,164,166,169,171,174,175,176,179,180,181,182,183,184,187,188,190,192,194,196,200,202,203,204,205,207,211,213,215,216,217,218,219,221,222,223,233,234,235,247", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,146,249,352,457,564,673,782,891,1000,1109,1216,1319,1438,1593,1748,1853,1974,2075,2222,2363,2466,2585,2692,2795,2950,3121,3270,3435,3592,3743,3862,4234,4383,4532,4644,4791,4944,5091,5166,5255,5342,5443,5546,8614,8799,11879,12076,12275,12398,12521,12634,12817,12948,13149,13238,13349,13582,13683,13778,13901,14030,14147,14324,14423,14558,14701,14836,14955,15156,15275,15368,15479,15535,15642,15837,15948,16081,16176,16267,16358,16475,16614,16685,16768,17448,17505,17563,18257", + "endLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,20,21,23,25,26,27,28,29,31,33,35,37,39,41,42,47,49,51,52,53,55,57,58,59,60,61,62,106,109,153,156,159,161,163,165,168,170,173,174,175,178,179,180,181,182,183,186,187,189,191,193,195,199,201,202,203,204,206,210,212,214,215,216,217,218,220,221,222,232,233,234,246,258", + "endColumns": "90,102,102,104,106,108,108,108,108,108,106,102,118,12,12,104,120,100,12,12,102,118,106,102,12,12,12,12,12,12,118,12,12,12,111,146,12,12,74,88,86,100,102,12,12,12,12,12,12,12,12,12,12,12,88,110,12,100,94,122,128,116,12,98,12,12,12,12,12,12,92,110,55,12,12,12,12,94,90,90,116,12,70,82,12,56,57,12,12", + "endOffsets": "141,244,347,452,559,668,777,886,995,1104,1211,1314,1433,1588,1743,1848,1969,2070,2217,2358,2461,2580,2687,2790,2945,3116,3265,3430,3587,3738,3857,4229,4378,4527,4639,4786,4939,5086,5161,5250,5337,5438,5541,8609,8794,11874,12071,12270,12393,12516,12629,12812,12943,13144,13233,13344,13577,13678,13773,13896,14025,14142,14319,14418,14553,14696,14831,14950,15151,15270,15363,15474,15530,15637,15832,15943,16076,16171,16262,16353,16470,16609,16680,16763,17443,17500,17558,18252,18958" + }, + "to": { + "startLines": "6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,23,24,25,26,28,30,31,32,33,34,36,38,40,42,44,46,47,52,54,56,57,58,60,62,63,64,65,66,67,111,114,158,161,164,166,168,170,173,175,178,179,180,183,184,185,186,187,188,191,192,194,196,198,200,204,206,207,208,209,211,215,217,219,220,221,222,223,225,226,227,237,238,239,251", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "354,445,548,651,756,863,972,1081,1190,1299,1408,1515,1618,1737,1892,2047,2152,2273,2374,2521,2662,2765,2884,2991,3094,3249,3420,3569,3734,3891,4042,4161,4533,4682,4831,4943,5090,5243,5390,5465,5554,5641,5742,5845,8697,8882,11746,11943,12142,12265,12388,12501,12684,12815,13016,13105,13216,13449,13550,13645,13768,13897,14014,14191,14290,14425,14568,14703,14822,15023,15142,15235,15346,15402,15509,15704,15815,15948,16043,16134,16225,16342,16481,16552,16635,17258,17315,17373,17997", + "endLines": "6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,27,29,30,31,32,33,35,37,39,41,43,45,46,51,53,55,56,57,59,61,62,63,64,65,66,110,113,157,160,163,165,167,169,172,174,177,178,179,182,183,184,185,186,187,190,191,193,195,197,199,203,205,206,207,208,210,214,216,218,219,220,221,222,224,225,226,236,237,238,250,262", + "endColumns": "90,102,102,104,106,108,108,108,108,108,106,102,118,12,12,104,120,100,12,12,102,118,106,102,12,12,12,12,12,12,118,12,12,12,111,146,12,12,74,88,86,100,102,12,12,12,12,12,12,12,12,12,12,12,88,110,12,100,94,122,128,116,12,98,12,12,12,12,12,12,92,110,55,12,12,12,12,94,90,90,116,12,70,82,12,56,57,12,12", + "endOffsets": "440,543,646,751,858,967,1076,1185,1294,1403,1510,1613,1732,1887,2042,2147,2268,2369,2516,2657,2760,2879,2986,3089,3244,3415,3564,3729,3886,4037,4156,4528,4677,4826,4938,5085,5238,5385,5460,5549,5636,5737,5840,8692,8877,11741,11938,12137,12260,12383,12496,12679,12810,13011,13100,13211,13444,13545,13640,13763,13892,14009,14186,14285,14420,14563,14698,14817,15018,15137,15230,15341,15397,15504,15699,15810,15943,16038,16129,16220,16337,16476,16547,16630,17253,17310,17368,17992,18628" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sq_values-sq.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sq\\values-sq.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2907", + "endColumns": "100", + "endOffsets": "3003" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sq\\values-sq.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,219,319,431,518,628,751,832,911,1002,1095,1191,1285,1387,1480,1575,1672,1763,1856,1939,2045,2150,2248,2354,2457,2573,2727,2826", + "endColumns": "113,99,111,86,109,122,80,78,90,92,95,93,101,92,94,96,90,92,82,105,104,97,105,102,115,153,98,80", + "endOffsets": "214,314,426,513,623,746,827,906,997,1090,1186,1280,1382,1475,1570,1667,1758,1851,1934,2040,2145,2243,2349,2452,2568,2722,2821,2902" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-xlarge-v4_values-xlarge-v4.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-xlarge-v4\\values-xlarge-v4.xml", + "from": { + "startLines": "2,3,4,5,6,7", + "startColumns": "4,4,4,4,4,4", + "startOffsets": "55,126,197,267,337,405", + "endColumns": "70,70,69,69,67,67", + "endOffsets": "121,192,262,332,400,468" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-kk_values-kk.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-kk\\values-kk.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,217,320,430,515,621,740,821,901,992,1085,1181,1275,1376,1469,1564,1661,1752,1844,1925,2028,2133,2231,2338,2447,2547,2713,2812", + "endColumns": "111,102,109,84,105,118,80,79,90,92,95,93,100,92,94,96,90,91,80,102,104,97,106,108,99,165,98,80", + "endOffsets": "212,315,425,510,616,735,816,896,987,1080,1176,1270,1371,1464,1559,1656,1747,1839,1920,2023,2128,2226,2333,2442,2542,2708,2807,2888" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-kk\\values-kk.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2893", + "endColumns": "100", + "endOffsets": "2989" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sv_values-sv.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sv\\values-sv.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,211,314,425,510,612,725,801,877,970,1065,1161,1255,1358,1453,1550,1648,1744,1837,1917,2023,2123,2219,2324,2426,2528,2682,2784", + "endColumns": "105,102,110,84,101,112,75,75,92,94,95,93,102,94,96,97,95,92,79,105,99,95,104,101,101,153,101,78", + "endOffsets": "206,309,420,505,607,720,796,872,965,1060,1156,1250,1353,1448,1545,1643,1739,1832,1912,2018,2118,2214,2319,2421,2523,2677,2779,2858" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sv\\values-sv.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2863", + "endColumns": "100", + "endOffsets": "2959" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-de_values-de.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-de\\values-de.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2925", + "endColumns": "100", + "endOffsets": "3021" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-de\\values-de.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,308,420,506,611,726,803,879,971,1065,1162,1263,1371,1471,1575,1675,1773,1870,1952,2063,2166,2265,2376,2478,2585,2741,2843", + "endColumns": "104,97,111,85,104,114,76,75,91,93,96,100,107,99,103,99,97,96,81,110,102,98,110,101,106,155,101,81", + "endOffsets": "205,303,415,501,606,721,798,874,966,1060,1157,1258,1366,1466,1570,1670,1768,1865,1947,2058,2161,2260,2371,2473,2580,2736,2838,2920" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-is_values-is.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-is\\values-is.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2865", + "endColumns": "100", + "endOffsets": "2961" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-is\\values-is.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,205,302,414,499,600,714,794,874,965,1058,1154,1248,1355,1448,1543,1638,1729,1823,1904,2014,2122,2220,2329,2428,2531,2686,2784", + "endColumns": "99,96,111,84,100,113,79,79,90,92,95,93,106,92,94,94,90,93,80,109,107,97,108,98,102,154,97,80", + "endOffsets": "200,297,409,494,595,709,789,869,960,1053,1149,1243,1350,1443,1538,1633,1724,1818,1899,2009,2117,2215,2324,2423,2526,2681,2779,2860" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-az_values-az.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-az\\values-az.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2903", + "endColumns": "100", + "endOffsets": "2999" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-az\\values-az.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,312,424,512,619,733,814,893,984,1077,1172,1271,1372,1465,1560,1655,1746,1838,1923,2030,2137,2237,2346,2450,2560,2718,2820", + "endColumns": "107,98,111,87,106,113,80,78,90,92,94,98,100,92,94,94,90,91,84,106,106,99,108,103,109,157,101,82", + "endOffsets": "208,307,419,507,614,728,809,888,979,1072,1167,1266,1367,1460,1555,1650,1741,1833,1918,2025,2132,2232,2341,2445,2555,2713,2815,2898" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-tr_values-tr.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-tr\\values-tr.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,309,421,506,612,732,811,887,978,1071,1164,1258,1356,1449,1551,1646,1737,1828,1907,2014,2119,2215,2322,2424,2532,2688,2786", + "endColumns": "104,98,111,84,105,119,78,75,90,92,92,93,97,92,101,94,90,90,78,106,104,95,106,101,107,155,97,78", + "endOffsets": "205,304,416,501,607,727,806,882,973,1066,1159,1253,1351,1444,1546,1641,1732,1823,1902,2009,2114,2210,2317,2419,2527,2683,2781,2860" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-tr\\values-tr.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2865", + "endColumns": "100", + "endOffsets": "2961" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-nb_values-nb.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-nb\\values-nb.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,308,422,508,608,721,797,873,964,1057,1153,1247,1348,1441,1536,1634,1725,1816,1896,1999,2098,2194,2298,2396,2497,2650,2747", + "endColumns": "107,94,113,85,99,112,75,75,90,92,95,93,100,92,94,97,90,90,79,102,98,95,103,97,100,152,96,78", + "endOffsets": "208,303,417,503,603,716,792,868,959,1052,1148,1242,1343,1436,1531,1629,1720,1811,1891,1994,2093,2189,2293,2391,2492,2645,2742,2821" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-nb\\values-nb.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2826", + "endColumns": "100", + "endOffsets": "2922" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v25_values-v25.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v25\\values-v25.xml", + "from": { + "startLines": "2,3,4,6", + "startColumns": "4,4,4,4", + "startOffsets": "55,126,209,308", + "endLines": "2,3,5,7", + "endColumns": "70,82,12,12", + "endOffsets": "121,204,303,414" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-fr_values-fr.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-fr\\values-fr.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,216,331,442,524,630,760,843,923,1014,1107,1206,1301,1402,1495,1588,1683,1774,1865,1951,2061,2173,2276,2387,2494,2601,2760,2859", + "endColumns": "110,114,110,81,105,129,82,79,90,92,98,94,100,92,92,94,90,90,85,109,111,102,110,106,106,158,98,85", + "endOffsets": "211,326,437,519,625,755,838,918,1009,1102,1201,1296,1397,1490,1583,1678,1769,1860,1946,2056,2168,2271,2382,2489,2596,2755,2854,2940" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-fr\\values-fr.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2945", + "endColumns": "100", + "endOffsets": "3041" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-da_values-da.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-da\\values-da.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,208,307,419,502,602,715,792,869,960,1053,1149,1243,1338,1431,1526,1624,1715,1806,1885,1994,2102,2198,2312,2414,2515,2668,2765", + "endColumns": "102,98,111,82,99,112,76,76,90,92,95,93,94,92,94,97,90,90,78,108,107,95,113,101,100,152,96,78", + "endOffsets": "203,302,414,497,597,710,787,864,955,1048,1144,1238,1333,1426,1521,1619,1710,1801,1880,1989,2097,2193,2307,2409,2510,2663,2760,2839" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-da\\values-da.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2844", + "endColumns": "100", + "endOffsets": "2940" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-be_values-be.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-be\\values-be.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,328,444,530,638,756,835,913,1005,1099,1195,1289,1385,1479,1575,1670,1762,1854,1937,2043,2149,2247,2355,2460,2565,2734,2834", + "endColumns": "119,102,115,85,107,117,78,77,91,93,95,93,95,93,95,94,91,91,82,105,105,97,107,104,104,168,99,80", + "endOffsets": "220,323,439,525,633,751,830,908,1000,1094,1190,1284,1380,1474,1570,1665,1757,1849,1932,2038,2144,2242,2350,2455,2560,2729,2829,2910" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-be\\values-be.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2915", + "endColumns": "100", + "endOffsets": "3011" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-en-rCA_values-en-rCA.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-en-rCA\\values-en-rCA.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,309,417,501,601,716,793,869,960,1053,1149,1243,1344,1437,1532,1626,1717,1808,1890,1993,2097,2196,2301,2404,2508,2664,2764", + "endColumns": "103,99,107,83,99,114,76,75,90,92,95,93,100,92,94,93,90,90,81,102,103,98,104,102,103,155,99,81", + "endOffsets": "204,304,412,496,596,711,788,864,955,1048,1144,1238,1339,1432,1527,1621,1712,1803,1885,1988,2092,2191,2296,2399,2503,2659,2759,2841" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-en-rCA\\values-en-rCA.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2846", + "endColumns": "100", + "endOffsets": "2942" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-th_values-th.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-th\\values-th.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,308,416,505,607,717,794,872,963,1056,1152,1246,1347,1440,1535,1629,1720,1811,1892,2000,2104,2202,2310,2415,2516,2669,2764", + "endColumns": "104,97,107,88,101,109,76,77,90,92,95,93,100,92,94,93,90,90,80,107,103,97,107,104,100,152,94,80", + "endOffsets": "205,303,411,500,602,712,789,867,958,1051,1147,1241,1342,1435,1530,1624,1715,1806,1887,1995,2099,2197,2305,2410,2511,2664,2759,2840" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-th\\values-th.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2845", + "endColumns": "100", + "endOffsets": "2941" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-es-rUS_values-es-rUS.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-es-rUS\\values-es-rUS.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,334,442,527,628,751,836,918,1009,1102,1198,1292,1392,1485,1584,1680,1771,1862,1944,2056,2156,2257,2365,2472,2579,2738,2838", + "endColumns": "119,108,107,84,100,122,84,81,90,92,95,93,99,92,98,95,90,90,81,111,99,100,107,106,106,158,99,81", + "endOffsets": "220,329,437,522,623,746,831,913,1004,1097,1193,1287,1387,1480,1579,1675,1766,1857,1939,2051,2151,2252,2360,2467,2574,2733,2833,2915" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-es-rUS\\values-es-rUS.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2920", + "endColumns": "100", + "endOffsets": "3016" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v28_values-v28.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v28\\values-v28.xml", + "from": { + "startLines": "2,3,4,8", + "startColumns": "4,4,4,4", + "startOffsets": "55,130,217,447", + "endLines": "2,3,7,11", + "endColumns": "74,86,12,12", + "endOffsets": "125,212,442,684" + }, + "to": { + "startLines": "2,3,4,8", + "startColumns": "4,4,4,4", + "startOffsets": "55,130,217,397", + "endLines": "2,3,7,11", + "endColumns": "74,86,12,12", + "endOffsets": "125,212,392,584" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-iw_values-iw.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-iw\\values-iw.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,308,416,500,600,714,792,870,961,1055,1151,1245,1346,1439,1534,1631,1722,1814,1895,1997,2101,2199,2302,2403,2503,2655,2751", + "endColumns": "103,98,107,83,99,113,77,77,90,93,95,93,100,92,94,96,90,91,80,101,103,97,102,100,99,151,95,80", + "endOffsets": "204,303,411,495,595,709,787,865,956,1050,1146,1240,1341,1434,1529,1626,1717,1809,1890,1992,2096,2194,2297,2398,2498,2650,2746,2827" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-iw\\values-iw.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2832", + "endColumns": "100", + "endOffsets": "2928" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sr_values-sr.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sr\\values-sr.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2905", + "endColumns": "100", + "endOffsets": "3001" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sr\\values-sr.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,317,423,509,613,731,812,892,983,1076,1172,1266,1367,1460,1555,1660,1751,1842,1930,2035,2143,2244,2348,2456,2557,2724,2821", + "endColumns": "108,102,105,85,103,117,80,79,90,92,95,93,100,92,94,104,90,90,87,104,107,100,103,107,100,166,96,83", + "endOffsets": "209,312,418,504,608,726,807,887,978,1071,1167,1261,1362,1455,1550,1655,1746,1837,1925,2030,2138,2239,2343,2451,2552,2719,2816,2900" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ur_values-ur.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ur\\values-ur.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,215,321,430,516,620,740,816,892,984,1078,1174,1268,1370,1464,1560,1654,1746,1838,1923,2031,2140,2242,2353,2453,2561,2726,2824", + "endColumns": "109,105,108,85,103,119,75,75,91,93,95,93,101,93,95,93,91,91,84,107,108,101,110,99,107,164,97,79", + "endOffsets": "210,316,425,511,615,735,811,887,979,1073,1169,1263,1365,1459,1555,1649,1741,1833,1918,2026,2135,2237,2348,2448,2556,2721,2819,2899" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ur\\values-ur.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2904", + "endColumns": "100", + "endOffsets": "3000" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-fa_values-fa.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-fa\\values-fa.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,215,318,429,513,616,731,810,888,981,1076,1172,1266,1369,1464,1561,1660,1753,1843,1924,2036,2139,2237,2347,2451,2560,2721,2822", + "endColumns": "109,102,110,83,102,114,78,77,92,94,95,93,102,94,96,98,92,89,80,111,102,97,109,103,108,160,100,80", + "endOffsets": "210,313,424,508,611,726,805,883,976,1071,1167,1261,1364,1459,1556,1655,1748,1838,1919,2031,2134,2232,2342,2446,2555,2716,2817,2898" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-fa\\values-fa.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2903", + "endColumns": "100", + "endOffsets": "2999" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-nl_values-nl.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-nl\\values-nl.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2921", + "endColumns": "100", + "endOffsets": "3017" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-nl\\values-nl.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,223,328,435,521,629,749,826,903,995,1089,1190,1284,1385,1479,1575,1670,1762,1854,1936,2047,2151,2250,2365,2478,2581,2736,2839", + "endColumns": "117,104,106,85,107,119,76,76,91,93,100,93,100,93,95,94,91,91,81,110,103,98,114,112,102,154,102,81", + "endOffsets": "218,323,430,516,624,744,821,898,990,1084,1185,1279,1380,1474,1570,1665,1757,1849,1931,2042,2146,2245,2360,2473,2576,2731,2834,2916" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-hdpi-v4_values-hdpi-v4.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-hdpi-v4\\values-hdpi-v4.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endLines": "6", + "endColumns": "13", + "endOffsets": "327" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v16_values-v16.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-v16\\values-v16.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "65", + "endOffsets": "116" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v16\\values-v16.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endLines": "5", + "endColumns": "12", + "endOffsets": "223" + }, + "to": { + "startLines": "3", + "startColumns": "4", + "startOffsets": "121", + "endLines": "6", + "endColumns": "12", + "endOffsets": "289" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ml_values-ml.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ml\\values-ml.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2955", + "endColumns": "100", + "endOffsets": "3051" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ml\\values-ml.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,224,342,457,550,655,787,864,940,1031,1124,1226,1320,1421,1515,1610,1709,1800,1891,1973,2084,2190,2288,2402,2502,2613,2772,2873", + "endColumns": "118,117,114,92,104,131,76,75,90,92,101,93,100,93,94,98,90,90,81,110,105,97,113,99,110,158,100,81", + "endOffsets": "219,337,452,545,650,782,859,935,1026,1119,1221,1315,1416,1510,1605,1704,1795,1886,1968,2079,2185,2283,2397,2497,2608,2767,2868,2950" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-en-rGB_values-en-rGB.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-en-rGB\\values-en-rGB.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2846", + "endColumns": "100", + "endOffsets": "2942" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-en-rGB\\values-en-rGB.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,309,417,501,601,716,793,869,960,1053,1149,1243,1344,1437,1532,1626,1717,1808,1890,1993,2097,2196,2301,2404,2508,2664,2764", + "endColumns": "103,99,107,83,99,114,76,75,90,92,95,93,100,92,94,93,90,90,81,102,103,98,104,102,103,155,99,81", + "endOffsets": "204,304,412,496,596,711,788,864,955,1048,1144,1238,1339,1432,1527,1621,1712,1803,1885,1988,2092,2191,2296,2399,2503,2659,2759,2841" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-hr_values-hr.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-hr\\values-hr.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,307,417,503,607,726,810,893,984,1077,1173,1267,1368,1461,1556,1655,1746,1837,1923,2027,2140,2246,2351,2464,2571,2740,2837", + "endColumns": "104,96,109,85,103,118,83,82,90,92,95,93,100,92,94,98,90,90,85,103,112,105,104,112,106,168,96,88", + "endOffsets": "205,302,412,498,602,721,805,888,979,1072,1168,1262,1363,1456,1551,1650,1741,1832,1918,2022,2135,2241,2346,2459,2566,2735,2832,2921" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-hr\\values-hr.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2926", + "endColumns": "100", + "endOffsets": "3022" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-cs_values-cs.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-cs\\values-cs.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2891", + "endColumns": "100", + "endOffsets": "2987" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-cs\\values-cs.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,212,314,423,509,614,731,812,893,984,1077,1173,1267,1362,1455,1550,1647,1738,1829,1913,2017,2126,2225,2331,2441,2548,2711,2809", + "endColumns": "106,101,108,85,104,116,80,80,90,92,95,93,94,92,94,96,90,90,83,103,108,98,105,109,106,162,97,81", + "endOffsets": "207,309,418,504,609,726,807,888,979,1072,1168,1262,1357,1450,1545,1642,1733,1824,1908,2012,2121,2220,2326,2436,2543,2706,2804,2886" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ka_values-ka.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ka\\values-ka.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,318,429,517,622,735,819,901,992,1085,1180,1276,1377,1470,1565,1659,1750,1841,1924,2037,2144,2242,2355,2459,2563,2720,2818", + "endColumns": "108,103,110,87,104,112,83,81,90,92,94,95,100,92,94,93,90,90,82,112,106,97,112,103,103,156,97,80", + "endOffsets": "209,313,424,512,617,730,814,896,987,1080,1175,1271,1372,1465,1560,1654,1745,1836,1919,2032,2139,2237,2350,2454,2558,2715,2813,2894" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ka\\values-ka.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2899", + "endColumns": "100", + "endOffsets": "2995" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-pt-rPT_values-pt-rPT.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-pt-rPT\\values-pt-rPT.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2949", + "endColumns": "100", + "endOffsets": "3045" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-pt-rPT\\values-pt-rPT.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,331,438,527,628,752,836,917,1009,1103,1201,1295,1395,1489,1585,1680,1772,1864,1951,2058,2170,2272,2380,2487,2594,2765,2864", + "endColumns": "119,105,106,88,100,123,83,80,91,93,97,93,99,93,95,94,91,91,86,106,111,101,107,106,106,170,98,84", + "endOffsets": "220,326,433,522,623,747,831,912,1004,1098,1196,1290,1390,1484,1580,1675,1767,1859,1946,2053,2165,2267,2375,2482,2589,2760,2859,2944" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-te_values-te.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-te\\values-te.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,219,328,439,529,634,759,841,923,1014,1107,1203,1297,1398,1491,1586,1681,1772,1863,1947,2060,2168,2267,2378,2480,2597,2763,2864", + "endColumns": "113,108,110,89,104,124,81,81,90,92,95,93,100,92,94,94,90,90,83,112,107,98,110,101,116,165,100,81", + "endOffsets": "214,323,434,524,629,754,836,918,1009,1102,1198,1292,1393,1486,1581,1676,1767,1858,1942,2055,2163,2262,2373,2475,2592,2758,2859,2941" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-te\\values-te.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2946", + "endColumns": "100", + "endOffsets": "3042" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-pt-rBR_values-pt-rBR.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-pt-rBR\\values-pt-rBR.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,225,331,438,527,628,746,829,909,1000,1093,1189,1283,1384,1477,1572,1667,1758,1849,1936,2043,2155,2257,2365,2472,2582,2744,2844", + "endColumns": "119,105,106,88,100,117,82,79,90,92,95,93,100,92,94,94,90,90,86,106,111,101,107,106,109,161,99,84", + "endOffsets": "220,326,433,522,623,741,824,904,995,1088,1184,1278,1379,1472,1567,1662,1753,1844,1931,2038,2150,2252,2360,2467,2577,2739,2839,2924" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-pt-rBR\\values-pt-rBR.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2929", + "endColumns": "100", + "endOffsets": "3025" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-in_values-in.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-in\\values-in.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,215,317,422,509,613,729,811,890,981,1074,1170,1264,1365,1458,1553,1647,1738,1829,1915,2018,2127,2228,2332,2440,2548,2704,2803", + "endColumns": "109,101,104,86,103,115,81,78,90,92,95,93,100,92,94,93,90,90,85,102,108,100,103,107,107,155,98,83", + "endOffsets": "210,312,417,504,608,724,806,885,976,1069,1165,1259,1360,1453,1548,1642,1733,1824,1910,2013,2122,2223,2327,2435,2543,2699,2798,2882" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-in\\values-in.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2887", + "endColumns": "100", + "endOffsets": "2983" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v22_values-v22.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v22\\values-v22.xml", + "from": { + "startLines": "2,3,4,9", + "startColumns": "4,4,4,4", + "startOffsets": "55,130,217,553", + "endLines": "2,3,8,13", + "endColumns": "74,86,12,12", + "endOffsets": "125,212,548,896" + }, + "to": { + "startLines": "2,3,4,9", + "startColumns": "4,4,4,4", + "startOffsets": "55,130,217,487", + "endLines": "2,3,8,13", + "endColumns": "74,86,12,12", + "endOffsets": "125,212,482,764" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-zh-rTW_values-zh-rTW.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rTW\\strings.xml", + "from": { + "startLines": "122,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "6629,3647,3580,3506,3455,846,887,936,6169,6215,6574,6523,1225,3911,3980,3851,3784,3720,4654,4593,4529,4114,3018,1398,1452,4169,1805,6273,3395,3178,1917,2204,2455,1971,2957,2903,2851,2652,2603,2507,2556,2699,2747,2248,3335,2798,3222,2160,2407,2350,2294,3122,2115,3079,2022,2064,3275,1346,1657,1755,1609,1707,1561,1515,1173,1119,5036,4976,5179,6092,5495,5425,5560,5639,5824,5750,5112,5369,5237,5303,4926,5929,6013,6484,6375,6326,6421,1288,4058,4469,4769,4710,4837,4420,4374,4325,4273,985,1052", + "endLines": "124,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23", + "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "6803,3714,3641,3574,3500,881,930,979,6209,6267,6623,6568,1282,3974,4052,3905,3845,3778,4704,4648,4587,4163,3073,1446,1509,4248,1880,6318,3449,3216,1965,2242,2501,2016,3012,2951,2897,2693,2646,2550,2597,2741,2792,2288,3389,2845,3269,2198,2449,2401,2344,3172,2154,3116,2058,2109,3329,1392,1701,1799,1651,1749,1603,1555,1219,1167,5106,5030,5231,6161,5554,5489,5633,5744,5923,5818,5173,5419,5297,5363,4970,6007,6086,6517,6415,6369,6478,1340,4108,4523,4831,4763,4894,4463,4414,4368,4319,1046,1113" + }, + "to": { + "startLines": "6,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "215,2954,3026,3092,3165,3215,3255,3303,3351,3396,3453,3507,3557,3619,3687,3764,3823,3889,3952,4007,4067,4130,4184,4244,4297,4359,4443,4523,4573,4632,4675,4728,4771,4822,4872,4932,4985,5036,5082,5130,5178,5224,5271,5321,5366,5425,5477,5529,5572,5619,5675,5730,5785,5829,5871,5912,5962,6021,6072,6121,6170,6217,6264,6311,6356,6407,6460,6535,6594,6651,6725,6789,6858,6936,7046,7150,7223,7289,7344,7409,7474,7523,7606,7684,7722,7767,7893,7955,8113,8168,8227,8294,8352,8414,8462,8507,8555,8606,8672", + "endLines": "8,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "379,3021,3087,3160,3210,3250,3298,3346,3391,3448,3502,3552,3614,3682,3759,3818,3884,3947,4002,4062,4125,4179,4239,4292,4354,4438,4518,4568,4627,4670,4723,4766,4817,4867,4927,4980,5031,5077,5125,5173,5219,5266,5316,5361,5420,5472,5524,5567,5614,5670,5725,5780,5824,5866,5907,5957,6016,6067,6116,6165,6212,6259,6306,6351,6402,6455,6530,6589,6646,6720,6784,6853,6931,7041,7145,7218,7284,7339,7404,7469,7518,7601,7679,7717,7762,7810,7950,8007,8163,8222,8289,8347,8409,8457,8502,8550,8601,8667,8733" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rTW\\arrays.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endLines": "21", + "endColumns": "19", + "endOffsets": "838" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "105", + "endLines": "5", + "endColumns": "19", + "endOffsets": "210" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zh-rTW\\values-zh-rTW.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,200,293,393,475,572,680,756,832,924,1018,1116,1212,1308,1402,1498,1590,1682,1774,1852,1948,2044,2139,2236,2331,2431,2581,2675", + "endColumns": "94,92,99,81,96,107,75,75,91,93,97,95,95,93,95,91,91,91,77,95,95,94,96,94,99,149,93,77", + "endOffsets": "195,288,388,470,567,675,751,827,919,1013,1111,1207,1303,1397,1493,1585,1677,1769,1847,1943,2039,2134,2231,2326,2426,2576,2670,2748" + }, + "to": { + "startLines": "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,121", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "384,479,572,672,754,851,959,1035,1111,1203,1297,1395,1491,1587,1681,1777,1869,1961,2053,2131,2227,2323,2418,2515,2610,2710,2860,7815", + "endColumns": "94,92,99,81,96,107,75,75,91,93,97,95,95,93,95,91,91,91,77,95,95,94,96,94,99,149,93,77", + "endOffsets": "474,567,667,749,846,954,1030,1106,1198,1292,1390,1486,1582,1676,1772,1864,1956,2048,2126,2222,2318,2413,2510,2605,2705,2855,2949,7888" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zh-rTW\\values-zh-rTW.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "124", + "startColumns": "4", + "startOffsets": "8012", + "endColumns": "100", + "endOffsets": "8108" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-v24_values-v24.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-v24\\values-v24.xml", + "from": { + "startLines": "2,3", + "startColumns": "4,4", + "startOffsets": "55,212", + "endColumns": "156,134", + "endOffsets": "207,342" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ar_values-ar.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ar\\values-ar.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,222,326,435,517,618,732,811,890,981,1074,1170,1264,1365,1458,1553,1647,1738,1832,1911,2016,2117,2213,2321,2424,2527,2682,2779", + "endColumns": "116,103,108,81,100,113,78,78,90,92,95,93,100,92,94,93,90,93,78,104,100,95,107,102,102,154,96,80", + "endOffsets": "217,321,430,512,613,727,806,885,976,1069,1165,1259,1360,1453,1548,1642,1733,1827,1906,2011,2112,2208,2316,2419,2522,2677,2774,2855" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ar\\values-ar.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2860", + "endColumns": "100", + "endOffsets": "2956" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-uz_values-uz.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-uz\\values-uz.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2889", + "endColumns": "100", + "endOffsets": "2985" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-uz\\values-uz.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,210,314,428,514,614,730,810,889,980,1073,1169,1263,1358,1451,1546,1641,1732,1824,1908,2017,2124,2225,2333,2438,2545,2706,2805", + "endColumns": "104,103,113,85,99,115,79,78,90,92,95,93,94,92,94,94,90,91,83,108,106,100,107,104,106,160,98,83", + "endOffsets": "205,309,423,509,609,725,805,884,975,1068,1164,1258,1353,1446,1541,1636,1727,1819,1903,2012,2119,2220,2328,2433,2540,2701,2800,2884" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-es_values-es.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-es\\values-es.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2924", + "endColumns": "100", + "endOffsets": "3020" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-es\\values-es.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,222,335,443,528,629,757,842,924,1016,1110,1208,1302,1403,1497,1593,1689,1781,1873,1955,2062,2162,2261,2369,2476,2583,2742,2842", + "endColumns": "116,112,107,84,100,127,84,81,91,93,97,93,100,93,95,95,91,91,81,106,99,98,107,106,106,158,99,81", + "endOffsets": "217,330,438,523,624,752,837,919,1011,1105,1203,1297,1398,1492,1588,1684,1776,1868,1950,2057,2157,2256,2364,2471,2578,2737,2837,2919" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-sl_values-sl.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-sl\\values-sl.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2936", + "endColumns": "100", + "endOffsets": "3032" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-sl\\values-sl.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,212,319,427,514,617,736,821,905,997,1091,1187,1281,1377,1471,1567,1667,1759,1851,1935,2043,2152,2252,2365,2472,2576,2756,2853", + "endColumns": "106,106,107,86,102,118,84,83,91,93,95,93,95,93,95,99,91,91,83,107,108,99,112,106,103,179,96,82", + "endOffsets": "207,314,422,509,612,731,816,900,992,1086,1182,1276,1372,1466,1562,1662,1754,1846,1930,2038,2147,2247,2360,2467,2571,2751,2848,2931" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-it_values-it.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-it\\values-it.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,314,423,507,616,741,818,894,986,1080,1174,1268,1370,1464,1561,1667,1759,1851,1932,2038,2146,2244,2348,2453,2560,2723,2823", + "endColumns": "108,99,108,83,108,124,76,75,91,93,93,93,101,93,96,105,91,91,80,105,107,97,103,104,106,162,99,82", + "endOffsets": "209,309,418,502,611,736,813,889,981,1075,1169,1263,1365,1459,1556,1662,1754,1846,1927,2033,2141,2239,2343,2448,2555,2718,2818,2901" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-it\\values-it.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2906", + "endColumns": "100", + "endOffsets": "3002" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ky_values-ky.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ky\\values-ky.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,209,304,423,507,614,731,809,888,979,1072,1168,1262,1363,1456,1551,1646,1737,1828,1909,2019,2126,2224,2330,2437,2538,2699,2802", + "endColumns": "103,94,118,83,106,116,77,78,90,92,95,93,100,92,94,94,90,90,80,109,106,97,105,106,100,160,102,80", + "endOffsets": "204,299,418,502,609,726,804,883,974,1067,1163,1257,1358,1451,1546,1641,1732,1823,1904,2014,2121,2219,2325,2432,2533,2694,2797,2878" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ky\\values-ky.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2883", + "endColumns": "100", + "endOffsets": "2979" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-mk_values-mk.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-mk\\values-mk.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,213,317,425,511,616,735,818,900,997,1096,1193,1293,1400,1499,1600,1696,1793,1884,1971,2077,2184,2285,2392,2503,2607,2763,2861", + "endColumns": "107,103,107,85,104,118,82,81,96,98,96,99,106,98,100,95,96,90,86,105,106,100,106,110,103,155,97,83", + "endOffsets": "208,312,420,506,611,730,813,895,992,1091,1188,1288,1395,1494,1595,1691,1788,1879,1966,2072,2179,2280,2387,2498,2602,2758,2856,2940" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-mk\\values-mk.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2945", + "endColumns": "100", + "endOffsets": "3041" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-my_values-my.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-my\\values-my.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,214,319,436,529,641,769,847,926,1017,1110,1206,1300,1401,1494,1589,1683,1774,1865,1951,2074,2186,2288,2414,2525,2635,2795,2895", + "endColumns": "108,104,116,92,111,127,77,78,90,92,95,93,100,92,94,93,90,90,85,122,111,101,125,110,109,159,99,83", + "endOffsets": "209,314,431,524,636,764,842,921,1012,1105,1201,1295,1396,1489,1584,1678,1769,1860,1946,2069,2181,2283,2409,2520,2630,2790,2890,2974" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-my\\values-my.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2979", + "endColumns": "100", + "endOffsets": "3075" + } + } + ] + }, + { + "outputFile": "net.micode.notes.app-merged_res-8:/values-ko_values-ko.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-ko\\values-ko.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,200,294,396,478,576,682,761,837,928,1021,1113,1204,1305,1398,1493,1587,1678,1769,1849,1947,2042,2137,2237,2333,2432,2584,2678", + "endColumns": "94,93,101,81,97,105,78,75,90,92,91,90,100,92,94,93,90,90,79,97,94,94,99,95,98,151,93,77", + "endOffsets": "195,289,391,473,571,677,756,832,923,1016,1108,1199,1300,1393,1488,1582,1673,1764,1844,1942,2037,2132,2232,2328,2427,2579,2673,2751" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-ko\\values-ko.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "30", + "startColumns": "4", + "startOffsets": "2756", + "endColumns": "100", + "endOffsets": "2852" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json new file mode 100644 index 0000000..860d27f --- /dev/null +++ b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rCN.json @@ -0,0 +1,81 @@ +{ + "logs": [ + { + "outputFile": "net.micode.notes.app-mergeDebugResources-6:/values-zh-rCN/values-zh-rCN.xml", + "map": [ + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zh-rCN\\values-zh-rCN.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,201,296,396,478,575,681,757,833,924,1017,1115,1211,1306,1399,1494,1586,1677,1768,1846,1942,2038,2133,2230,2325,2423,2572,2666", + "endColumns": "95,94,99,81,96,105,75,75,90,92,97,95,94,92,94,91,90,90,77,95,95,94,96,94,97,148,93,77", + "endOffsets": "196,291,391,473,570,676,752,828,919,1012,1110,1206,1301,1394,1489,1581,1672,1763,1841,1937,2033,2128,2225,2320,2418,2567,2661,2739" + }, + "to": { + "startLines": "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,121", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "384,480,575,675,757,854,960,1036,1112,1203,1296,1394,1490,1585,1678,1773,1865,1956,2047,2125,2221,2317,2412,2509,2604,2702,2851,7808", + "endColumns": "95,94,99,81,96,105,75,75,90,92,97,95,94,92,94,91,90,90,77,95,95,94,96,94,97,148,93,77", + "endOffsets": "475,570,670,752,849,955,1031,1107,1198,1291,1389,1485,1580,1673,1768,1860,1951,2042,2120,2216,2312,2407,2504,2599,2697,2846,2940,7881" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rCN\\arrays.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endLines": "21", + "endColumns": "19", + "endOffsets": "838" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "105", + "endLines": "5", + "endColumns": "19", + "endOffsets": "210" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rCN\\strings.xml", + "from": { + "startLines": "121,71,70,69,68,19,20,21,112,113,120,119,26,77,78,76,75,74,90,89,88,80,60,29,30,81,72,114,67,63,38,44,49,39,59,58,57,53,52,50,51,54,55,45,66,56,64,43,48,47,46,62,42,61,40,41,65,28,34,36,33,35,32,31,25,24,97,96,99,111,104,103,105,106,108,107,98,102,100,101,95,109,110,118,116,115,117,27,79,87,92,91,93,86,85,84,83,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "6653,3566,3499,3425,3374,846,887,936,6195,6241,6598,6547,1225,3938,4007,3878,3812,3748,4682,4621,4557,4141,2937,1398,1452,4196,3640,6299,3314,3097,1836,2123,2374,1890,2876,2822,2770,2571,2522,2426,2475,2618,2666,2167,3254,2717,3141,2079,2326,2269,2213,3041,2034,2998,1941,1983,3194,1346,1657,1755,1609,1707,1561,1515,1173,1119,5064,5004,5207,6120,5523,5453,5588,5667,5852,5778,5140,5397,5265,5331,4954,5957,6041,6508,6399,6350,6445,1288,4085,4497,4797,4738,4865,4448,4402,4353,4301,985,1052", + "endLines": "123,71,70,69,68,19,20,21,112,113,120,119,26,77,78,76,75,74,90,89,88,80,60,29,30,81,72,114,67,63,38,44,49,39,59,58,57,53,52,50,51,54,55,45,66,56,64,43,48,47,46,62,42,61,40,41,65,28,34,36,33,35,32,31,25,24,97,96,99,111,104,103,105,106,108,107,98,102,100,101,95,109,110,118,116,115,117,27,79,87,92,91,93,86,85,84,83,22,23", + "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "6827,3634,3560,3493,3419,881,930,979,6235,6293,6647,6592,1282,4001,4079,3932,3872,3806,4732,4676,4615,4190,2992,1446,1509,4276,3716,6344,3368,3135,1884,2161,2420,1935,2931,2870,2816,2612,2565,2469,2516,2660,2711,2207,3308,2764,3188,2117,2368,2320,2263,3091,2073,3035,1977,2028,3248,1392,1701,1799,1651,1749,1603,1555,1219,1167,5134,5058,5259,6189,5582,5517,5661,5772,5951,5846,5201,5447,5325,5391,4998,6035,6114,6541,6439,6393,6502,1340,4135,4551,4859,4791,4922,4491,4442,4396,4347,1046,1113" + }, + "to": { + "startLines": "6,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "215,2945,3018,3084,3157,3207,3247,3295,3343,3388,3445,3499,3549,3611,3679,3756,3815,3880,3943,3998,4058,4121,4175,4235,4288,4350,4435,4516,4566,4625,4668,4721,4764,4815,4865,4925,4978,5029,5075,5123,5171,5217,5264,5314,5359,5418,5470,5522,5565,5612,5668,5723,5778,5822,5864,5905,5955,6014,6065,6114,6163,6210,6257,6304,6349,6400,6453,6528,6587,6644,6718,6782,6851,6929,7039,7143,7216,7282,7337,7402,7467,7516,7599,7677,7715,7760,7886,7948,8106,8161,8220,8287,8345,8407,8455,8500,8548,8599,8665", + "endLines": "8,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "endColumns": "14,72,65,72,49,39,47,47,44,56,53,49,61,67,76,58,64,62,54,59,62,53,59,52,61,84,80,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "379,3013,3079,3152,3202,3242,3290,3338,3383,3440,3494,3544,3606,3674,3751,3810,3875,3938,3993,4053,4116,4170,4230,4283,4345,4430,4511,4561,4620,4663,4716,4759,4810,4860,4920,4973,5024,5070,5118,5166,5212,5259,5309,5354,5413,5465,5517,5560,5607,5663,5718,5773,5817,5859,5900,5950,6009,6060,6109,6158,6205,6252,6299,6344,6395,6448,6523,6582,6639,6713,6777,6846,6924,7034,7138,7211,7277,7332,7397,7462,7511,7594,7672,7710,7755,7803,7943,8000,8156,8215,8282,8340,8402,8450,8495,8543,8594,8660,8726" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zh-rCN\\values-zh-rCN.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "124", + "startColumns": "4", + "startOffsets": "8005", + "endColumns": "100", + "endOffsets": "8101" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json new file mode 100644 index 0000000..435adac --- /dev/null +++ b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values-zh-rTW.json @@ -0,0 +1,81 @@ +{ + "logs": [ + { + "outputFile": "net.micode.notes.app-mergeDebugResources-6:/values-zh-rTW/values-zh-rTW.xml", + "map": [ + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rTW\\strings.xml", + "from": { + "startLines": "122,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "6629,3647,3580,3506,3455,846,887,936,6169,6215,6574,6523,1225,3911,3980,3851,3784,3720,4654,4593,4529,4114,3018,1398,1452,4169,1805,6273,3395,3178,1917,2204,2455,1971,2957,2903,2851,2652,2603,2507,2556,2699,2747,2248,3335,2798,3222,2160,2407,2350,2294,3122,2115,3079,2022,2064,3275,1346,1657,1755,1609,1707,1561,1515,1173,1119,5036,4976,5179,6092,5495,5425,5560,5639,5824,5750,5112,5369,5237,5303,4926,5929,6013,6484,6375,6326,6421,1288,4058,4469,4769,4710,4837,4420,4374,4325,4273,985,1052", + "endLines": "124,72,71,70,69,19,20,21,112,113,121,120,26,76,77,75,74,73,89,88,87,79,61,29,30,80,37,114,68,64,39,45,50,40,60,59,58,54,53,51,52,55,56,46,67,57,65,44,49,48,47,63,43,62,41,42,66,28,34,36,33,35,32,31,25,24,96,95,98,110,103,102,104,105,107,106,97,101,99,100,94,108,109,119,117,116,118,27,78,86,91,90,92,85,84,83,82,22,23", + "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "6803,3714,3641,3574,3500,881,930,979,6209,6267,6623,6568,1282,3974,4052,3905,3845,3778,4704,4648,4587,4163,3073,1446,1509,4248,1880,6318,3449,3216,1965,2242,2501,2016,3012,2951,2897,2693,2646,2550,2597,2741,2792,2288,3389,2845,3269,2198,2449,2401,2344,3172,2154,3116,2058,2109,3329,1392,1701,1799,1651,1749,1603,1555,1219,1167,5106,5030,5231,6161,5554,5489,5633,5744,5923,5818,5173,5419,5297,5363,4970,6007,6086,6517,6415,6369,6478,1340,4108,4523,4831,4763,4894,4463,4414,4368,4319,1046,1113" + }, + "to": { + "startLines": "6,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "215,2954,3026,3092,3165,3215,3255,3303,3351,3396,3453,3507,3557,3619,3687,3764,3823,3889,3952,4007,4067,4130,4184,4244,4297,4359,4443,4523,4573,4632,4675,4728,4771,4822,4872,4932,4985,5036,5082,5130,5178,5224,5271,5321,5366,5425,5477,5529,5572,5619,5675,5730,5785,5829,5871,5912,5962,6021,6072,6121,6170,6217,6264,6311,6356,6407,6460,6535,6594,6651,6725,6789,6858,6936,7046,7150,7223,7289,7344,7409,7474,7523,7606,7684,7722,7767,7893,7955,8113,8168,8227,8294,8352,8414,8462,8507,8555,8606,8672", + "endLines": "8,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,122,123,125,126,127,128,129,130,131,132,133,134,135", + "endColumns": "14,71,65,72,49,39,47,47,44,56,53,49,61,67,76,58,65,62,54,59,62,53,59,52,61,83,79,49,58,42,52,42,50,49,59,52,50,45,47,47,45,46,49,44,58,51,51,42,46,55,54,54,43,41,40,49,58,50,48,48,46,46,46,44,50,52,74,58,56,73,63,68,77,109,103,72,65,54,64,64,48,82,77,37,44,47,61,56,54,58,66,57,61,47,44,47,50,65,65", + "endOffsets": "379,3021,3087,3160,3210,3250,3298,3346,3391,3448,3502,3552,3614,3682,3759,3818,3884,3947,4002,4062,4125,4179,4239,4292,4354,4438,4518,4568,4627,4670,4723,4766,4817,4867,4927,4980,5031,5077,5125,5173,5219,5266,5316,5361,5420,5472,5524,5567,5614,5670,5725,5780,5824,5866,5907,5957,6016,6067,6116,6165,6212,6259,6306,6351,6402,6455,6530,6589,6646,6720,6784,6853,6931,7041,7145,7218,7284,7339,7404,7469,7518,7601,7679,7717,7762,7810,7950,8007,8163,8222,8289,8347,8409,8457,8502,8550,8601,8667,8733" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values-zh-rTW\\arrays.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endLines": "21", + "endColumns": "19", + "endOffsets": "838" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "105", + "endLines": "5", + "endColumns": "19", + "endOffsets": "210" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values-zh-rTW\\values-zh-rTW.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,200,293,393,475,572,680,756,832,924,1018,1116,1212,1308,1402,1498,1590,1682,1774,1852,1948,2044,2139,2236,2331,2431,2581,2675", + "endColumns": "94,92,99,81,96,107,75,75,91,93,97,95,95,93,95,91,91,91,77,95,95,94,96,94,99,149,93,77", + "endOffsets": "195,288,388,470,567,675,751,827,919,1013,1111,1207,1303,1397,1493,1585,1677,1769,1847,1943,2039,2134,2231,2326,2426,2576,2670,2748" + }, + "to": { + "startLines": "9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,121", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "384,479,572,672,754,851,959,1035,1111,1203,1297,1395,1491,1587,1681,1777,1869,1961,2053,2131,2227,2323,2418,2515,2610,2710,2860,7815", + "endColumns": "94,92,99,81,96,107,75,75,91,93,97,95,95,93,95,91,91,91,77,95,95,94,96,94,99,149,93,77", + "endOffsets": "474,567,667,749,846,954,1030,1106,1198,1292,1390,1486,1582,1676,1772,1864,1956,2048,2126,2222,2318,2413,2510,2605,2705,2855,2949,7888" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values-zh-rTW\\values-zh-rTW.xml", + "from": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "100", + "endOffsets": "151" + }, + "to": { + "startLines": "124", + "startColumns": "4", + "startOffsets": "8012", + "endColumns": "100", + "endOffsets": "8108" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json new file mode 100644 index 0000000..988dd0f --- /dev/null +++ b/app/build/intermediates/merged_res_blame_folder/debug/out/multi-v2/values.json @@ -0,0 +1,157 @@ +{ + "logs": [ + { + "outputFile": "net.micode.notes.app-mergeDebugResources-6:/values/values.xml", + "map": [ + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\colors.xml", + "from": { + "startLines": "18", + "startColumns": "4", + "startOffsets": "730", + "endColumns": "56", + "endOffsets": "782" + }, + "to": { + "startLines": "82", + "startColumns": "4", + "startOffsets": "5146", + "endColumns": "56", + "endOffsets": "5198" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\dimens.xml", + "from": { + "startLines": "19,20,21,22,18", + "startColumns": "4,4,4,4,4", + "startOffsets": "783,836,890,944,730", + "endColumns": "51,52,52,51,51", + "endOffsets": "830,884,938,991,777" + }, + "to": { + "startLines": "189,190,191,192,193", + "startColumns": "4,4,4,4,4", + "startOffsets": "12570,12622,12675,12728,12780", + "endColumns": "51,52,52,51,51", + "endOffsets": "12617,12670,12723,12775,12827" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\568c762957e87adb25eac94f3bddea2d\\transformed\\coordinatorlayout-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,102,3,13", + "startColumns": "4,4,4,4", + "startOffsets": "55,5935,116,724", + "endLines": "2,104,12,101", + "endColumns": "60,12,24,24", + "endOffsets": "111,6075,719,5930" + }, + "to": { + "startLines": "12,1878,2501,2507", + "startColumns": "4,4,4,4", + "startOffsets": "420,124714,145114,145325", + "endLines": "12,1880,2506,2590", + "endColumns": "60,12,24,24", + "endOffsets": "476,124854,145320,149836" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\\transformed\\appcompat-v7-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1461,1462,1466,1470,1474,1479,1485,1492,1496,1500,1505,1509,1513,1517,1521,1525,1529,1535,1539,1545,1549,1555,1559,1564,1568,1571,1575,1581,1585,1591,1595,1601,1604,1608,1612,1616,1620,1624,1625,1626,1627,1630,1633,1636,1639,1643,1644,1645,1646,1647,1650,1652,1654,1656,1661,1662,1666,1672,1676,1677,1679,1690,1691,1695,1701,1705,1706,1707,1711,1738,1742,1743,1747,1775,1943,1969,2138,2164,2195,2203,2209,2223,2245,2250,2255,2265,2274,2283,2287,2294,2302,2309,2310,2319,2322,2325,2329,2333,2337,2340,2341,2345,2349,2359,2364,2371,2377,2378,2381,2385,2390,2392,2394,2397,2400,2402,2406,2409,2416,2419,2422,2426,2428,2432,2434,2436,2438,2442,2450,2458,2470,2476,2485,2488,2499,2502,2507,2508,2513,2571,2630,2631,2641,2650,2651,2653,2657,2660,2663,2666,2669,2672,2675,2678,2682,2685,2688,2691,2695,2698,2702,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2726,2728,2730,2731,2732,2733,2734,2735,2736,2737,2739,2740,2742,2743,2745,2747,2748,2750,2751,2752,2753,2754,2755,2757,2758,2759,2760,2761,2762,2764,2766,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2780,2782,2783,2784,2785,2786,2787,2789,2793,2797,2798,2799,2800,2801,2802,2803,2804,2806,2808,2810,2812,2814,2815,2816,2817,2819,2821,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2834,2837,2838,2839,2840,2842,2844,2845,2847,2848,2850,2852,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2865,2867,2868,2869,2870,2872,2873,2874,2875,2876,2878,2880,2882,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,69,152,155,158,161,175,186,196,223,230,241,271,298,307,344,725,730,756,774,810,816,822,845,986,1006,1012,1016,1022,1059,1071,1098,1103,1169,1184,1249,1268,1294", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "105,160,205,254,295,350,409,471,552,613,688,764,841,919,1004,1086,1162,1238,1315,1393,1499,1605,1684,1764,1821,1879,1953,2028,2093,2159,2219,2280,2352,2425,2492,2560,2619,2678,2737,2796,2855,2909,2963,3016,3070,3124,3178,3232,3306,3385,3458,3532,3603,3675,3747,3820,3877,3935,4008,4082,4156,4231,4303,4376,4446,4517,4577,70911,70980,71049,71119,71193,71269,71333,71410,71486,71563,71628,71697,71774,71849,71918,71986,72063,72129,72190,72287,72352,72421,72520,72591,72650,72708,72765,72824,72888,72959,73031,73103,73175,73247,73314,73382,73450,73509,73572,73636,73726,73817,73877,73943,74010,74076,74146,74210,74263,74376,74434,74497,74562,74627,74702,74775,74847,74896,74957,75018,75079,75141,75205,75269,75333,75398,75461,75521,75582,75648,75707,75767,75829,75900,75960,76028,76114,76201,76291,76378,76466,76548,76631,76721,76812,76864,76922,76967,77033,77097,77154,77211,77265,77322,77370,77419,77470,77504,77551,77600,77646,77678,77742,77804,77864,77921,77995,78065,78143,78197,78267,78352,78400,78446,78517,78595,78673,78745,78819,78893,78967,79047,79120,79189,79261,79338,79399,79462,79528,79592,79663,79726,79791,79855,79916,79977,80029,80102,80176,80245,80320,80394,80468,80609,80679,80732,80810,80900,80988,81084,81174,81756,81845,82092,82373,82625,82910,83303,83780,84002,84224,84500,84727,84957,85187,85417,85647,85874,86293,86519,86944,87174,87602,87821,88104,88312,88443,88670,89096,89321,89748,89969,90394,90514,90790,91091,91415,91706,92020,92157,92288,92393,92635,92802,93006,93214,93485,93597,93709,93814,93931,94145,94291,94431,94517,94865,94953,95199,95617,95866,95948,96046,96663,96763,97015,97439,97694,97788,97877,98114,100166,100408,100510,100763,102947,113668,115184,126004,127532,129289,129915,130335,131396,132661,132917,133153,133700,134194,134799,134997,135577,136141,136516,136634,137172,137329,137525,137798,138054,138224,138365,138429,138711,138997,139673,139937,140275,140628,140722,140908,141214,141476,141601,141728,141967,142178,142297,142490,142667,143122,143303,143425,143684,143797,143984,144086,144193,144322,144597,145105,145601,146478,146772,147342,147491,148223,148395,148731,148823,149101,153445,157932,157994,158624,159238,159329,159442,159671,159831,159983,160154,160320,160489,160656,160819,161062,161232,161405,161576,161850,162049,162254,162584,162668,162764,162860,162958,163058,163160,163262,163364,163466,163568,163668,163764,163876,164005,164128,164259,164390,164488,164602,164696,164836,164970,165066,165178,165278,165394,165490,165602,165702,165842,165978,166142,166272,166430,166580,166721,166865,167000,167112,167262,167390,167518,167654,167786,167916,168046,168158,168298,168444,168588,168726,168792,168882,168958,169062,169152,169254,169362,169470,169570,169650,169742,169840,169950,170028,170134,170226,170330,170440,170562,170725,170882,170962,171062,171152,171262,171356,171462,171554,171654,171766,171880,171996,172112,172206,172320,172432,172534,172654,172776,172858,172962,173082,173208,173306,173400,173488,173600,173716,173838,173950,174125,174241,174327,174419,174531,174655,174722,174848,174916,175044,175188,175316,175385,175480,175595,175708,175807,175916,176027,176138,176239,176344,176444,176574,176665,176788,176882,176994,177080,177184,177280,177368,177486,177590,177694,177820,177908,178016,178116,178206,178316,178400,178502,178586,178640,178704,178810,178920,179004,4638,9782,9900,10015,10147,10862,11554,12071,13718,14103,14700,16299,17832,18220,20527,40045,40305,41697,42730,44743,45005,45361,46191,52973,54107,54401,54624,54951,57001,57649,59282,59552,63403,64004,67813,69028,70437", + "endLines": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1460,1461,1465,1469,1473,1478,1484,1491,1495,1499,1504,1508,1512,1516,1520,1524,1528,1534,1538,1544,1548,1554,1558,1563,1567,1570,1574,1580,1584,1590,1594,1600,1603,1607,1611,1615,1619,1623,1624,1625,1626,1629,1632,1635,1638,1642,1643,1644,1645,1646,1649,1651,1653,1655,1660,1661,1665,1671,1675,1676,1678,1689,1690,1694,1700,1704,1705,1706,1710,1737,1741,1742,1746,1774,1942,1968,2137,2163,2194,2202,2208,2222,2244,2249,2254,2264,2273,2282,2286,2293,2301,2308,2309,2318,2321,2324,2328,2332,2336,2339,2340,2344,2348,2358,2363,2370,2376,2377,2380,2384,2389,2391,2393,2396,2399,2401,2405,2408,2415,2418,2421,2425,2427,2431,2433,2435,2437,2441,2449,2457,2469,2475,2484,2487,2498,2501,2506,2507,2512,2570,2629,2630,2640,2649,2650,2652,2656,2659,2662,2665,2668,2671,2674,2677,2681,2684,2687,2690,2694,2697,2701,2705,2706,2707,2708,2709,2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725,2727,2729,2730,2731,2732,2733,2734,2735,2736,2738,2739,2741,2742,2744,2746,2747,2749,2750,2751,2752,2753,2754,2756,2757,2758,2759,2760,2761,2763,2765,2767,2768,2769,2770,2771,2772,2773,2774,2775,2776,2777,2778,2779,2781,2782,2783,2784,2785,2786,2788,2792,2796,2797,2798,2799,2800,2801,2802,2803,2805,2807,2809,2811,2813,2814,2815,2816,2818,2820,2822,2823,2824,2825,2826,2827,2828,2829,2830,2831,2832,2833,2836,2837,2838,2839,2841,2843,2844,2846,2847,2849,2851,2853,2854,2855,2856,2857,2858,2859,2860,2861,2862,2863,2864,2866,2867,2868,2869,2871,2872,2873,2874,2875,2877,2879,2881,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893,2894,2895,2896,2897,151,154,157,160,174,185,195,222,229,240,270,297,306,343,724,729,755,773,809,815,821,844,985,1005,1011,1015,1021,1058,1070,1097,1102,1168,1183,1248,1267,1293,1302", + "endColumns": "54,44,48,40,54,58,61,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,59,60,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,64,68,76,74,68,67,76,65,60,96,64,68,98,70,58,57,56,58,63,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,60,62,65,63,70,62,64,63,60,60,51,72,73,68,74,73,73,140,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,90,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24", + "endOffsets": "155,200,249,290,345,404,466,547,608,683,759,836,914,999,1081,1157,1233,1310,1388,1494,1600,1679,1759,1816,1874,1948,2023,2088,2154,2214,2275,2347,2420,2487,2555,2614,2673,2732,2791,2850,2904,2958,3011,3065,3119,3173,3227,3301,3380,3453,3527,3598,3670,3742,3815,3872,3930,4003,4077,4151,4226,4298,4371,4441,4512,4572,4633,70975,71044,71114,71188,71264,71328,71405,71481,71558,71623,71692,71769,71844,71913,71981,72058,72124,72185,72282,72347,72416,72515,72586,72645,72703,72760,72819,72883,72954,73026,73098,73170,73242,73309,73377,73445,73504,73567,73631,73721,73812,73872,73938,74005,74071,74141,74205,74258,74371,74429,74492,74557,74622,74697,74770,74842,74891,74952,75013,75074,75136,75200,75264,75328,75393,75456,75516,75577,75643,75702,75762,75824,75895,75955,76023,76109,76196,76286,76373,76461,76543,76626,76716,76807,76859,76917,76962,77028,77092,77149,77206,77260,77317,77365,77414,77465,77499,77546,77595,77641,77673,77737,77799,77859,77916,77990,78060,78138,78192,78262,78347,78395,78441,78512,78590,78668,78740,78814,78888,78962,79042,79115,79184,79256,79333,79394,79457,79523,79587,79658,79721,79786,79850,79911,79972,80024,80097,80171,80240,80315,80389,80463,80604,80674,80727,80805,80895,80983,81079,81169,81751,81840,82087,82368,82620,82905,83298,83775,83997,84219,84495,84722,84952,85182,85412,85642,85869,86288,86514,86939,87169,87597,87816,88099,88307,88438,88665,89091,89316,89743,89964,90389,90509,90785,91086,91410,91701,92015,92152,92283,92388,92630,92797,93001,93209,93480,93592,93704,93809,93926,94140,94286,94426,94512,94860,94948,95194,95612,95861,95943,96041,96658,96758,97010,97434,97689,97783,97872,98109,100161,100403,100505,100758,102942,113663,115179,125999,127527,129284,129910,130330,131391,132656,132912,133148,133695,134189,134794,134992,135572,136136,136511,136629,137167,137324,137520,137793,138049,138219,138360,138424,138706,138992,139668,139932,140270,140623,140717,140903,141209,141471,141596,141723,141962,142173,142292,142485,142662,143117,143298,143420,143679,143792,143979,144081,144188,144317,144592,145100,145596,146473,146767,147337,147486,148218,148390,148726,148818,149096,153440,157927,157989,158619,159233,159324,159437,159666,159826,159978,160149,160315,160484,160651,160814,161057,161227,161400,161571,161845,162044,162249,162579,162663,162759,162855,162953,163053,163155,163257,163359,163461,163563,163663,163759,163871,164000,164123,164254,164385,164483,164597,164691,164831,164965,165061,165173,165273,165389,165485,165597,165697,165837,165973,166137,166267,166425,166575,166716,166860,166995,167107,167257,167385,167513,167649,167781,167911,168041,168153,168293,168439,168583,168721,168787,168877,168953,169057,169147,169249,169357,169465,169565,169645,169737,169835,169945,170023,170129,170221,170325,170435,170557,170720,170877,170957,171057,171147,171257,171351,171457,171549,171649,171761,171875,171991,172107,172201,172315,172427,172529,172649,172771,172853,172957,173077,173203,173301,173395,173483,173595,173711,173833,173945,174120,174236,174322,174414,174526,174650,174717,174843,174911,175039,175183,175311,175380,175475,175590,175703,175802,175911,176022,176133,176234,176339,176439,176569,176660,176783,176877,176989,177075,177179,177275,177363,177481,177585,177689,177815,177903,178011,178111,178201,178311,178395,178497,178581,178635,178699,178805,178915,178999,179119,9777,9895,10010,10142,10857,11549,12066,13713,14098,14695,16294,17827,18215,20522,40040,40300,41692,42725,44738,45000,45356,46186,52968,54102,54396,54619,54946,56996,57644,59277,59547,63398,63999,67808,69023,70432,70906" + }, + "to": { + "startLines": "13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,165,166,167,168,169,170,171,172,173,194,195,196,197,198,199,200,201,204,205,206,207,208,211,212,213,220,221,222,223,224,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,359,374,375,376,377,378,379,387,388,392,396,400,405,411,418,422,426,431,435,439,443,447,451,455,461,465,471,475,481,485,490,494,497,501,507,511,517,521,527,530,534,538,542,546,550,551,552,553,556,559,562,565,569,570,571,572,573,576,578,580,582,587,588,592,598,602,603,605,616,617,621,627,631,632,633,637,664,668,669,673,701,868,894,1062,1088,1119,1127,1133,1147,1169,1174,1179,1189,1198,1207,1211,1218,1226,1233,1234,1243,1246,1249,1253,1257,1261,1264,1265,1269,1273,1283,1288,1295,1301,1302,1305,1309,1314,1316,1318,1321,1324,1326,1330,1333,1340,1343,1346,1350,1352,1356,1358,1360,1362,1366,1374,1382,1394,1400,1409,1412,1423,1426,1431,1432,1452,1510,1569,1570,1580,1589,1590,1592,1596,1599,1602,1605,1608,1611,1614,1617,1621,1624,1627,1630,1634,1637,1641,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1667,1669,1670,1671,1672,1673,1674,1675,1676,1678,1679,1681,1682,1684,1686,1687,1689,1690,1691,1692,1693,1694,1696,1697,1698,1699,1700,1712,1714,1716,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1760,1761,1762,1763,1764,1765,1767,1771,1775,1776,1777,1778,1779,1780,1781,1782,1784,1786,1788,1790,1792,1793,1794,1795,1797,1799,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1815,1816,1817,1818,1820,1822,1823,1825,1826,1828,1830,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1845,1846,1847,1848,1850,1851,1852,1853,1854,1856,1858,1860,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1881,1956,1959,1962,1965,1979,1985,1995,2011,2017,2027,2056,2083,2092,2121,2464,2475,2591,2700,2724,2730,2736,2757,2881,2901,2907,2911,2917,2952,2964,2980,2984,3050,3065,3116,3128,3154", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "481,536,581,630,671,726,785,847,928,989,1064,1140,1217,1295,1380,1462,1538,1614,1691,1769,1875,1981,2060,2140,2197,2255,2329,2404,2469,2535,2595,2656,2728,2801,2868,2936,2995,3054,3113,3172,3231,3285,3339,3392,3446,3500,3554,3740,3814,3893,3966,4040,4111,4183,4255,4328,4385,4443,4516,4590,4664,4739,4811,4884,4954,5025,5085,5203,5272,5341,5411,5485,5561,5625,5702,5778,5855,5920,5989,6066,6141,6210,6278,6355,6421,6482,6579,6644,6713,6812,6883,6942,7000,7057,7116,7180,7251,7323,7395,7467,7539,7606,7674,7742,7801,7864,7928,8018,8109,8169,8235,8302,8368,8438,8502,8555,8668,8726,8789,8854,8919,8994,9067,9139,9188,9249,9310,9371,9433,9497,9561,9625,9690,9753,9813,9874,9940,9999,10059,10121,10192,10252,10808,10894,10981,11071,11158,11246,11328,11411,11501,12832,12884,12942,12987,13053,13117,13174,13231,13433,13490,13538,13587,13638,13742,13789,13838,14156,14188,14252,14314,14374,14854,14928,14998,15076,15130,15200,15285,15333,15379,15450,15528,15606,15678,15752,15826,15900,15980,16053,16122,16194,16271,16332,16395,16461,16525,16596,16659,16724,16788,16849,16910,16962,17035,17109,17178,17253,17327,17401,17542,23672,24768,24846,24936,25024,25120,25210,25792,25881,26128,26409,26661,26946,27339,27816,28038,28260,28536,28763,28993,29223,29453,29683,29910,30329,30555,30980,31210,31638,31857,32140,32348,32479,32706,33132,33357,33784,34005,34430,34550,34826,35127,35451,35742,36056,36193,36324,36429,36671,36838,37042,37250,37521,37633,37745,37850,37967,38181,38327,38467,38553,38901,38989,39235,39653,39902,39984,40082,40674,40774,41026,41450,41705,41799,41888,42125,44149,44391,44493,44746,46902,57031,58547,68775,70303,72060,72686,73106,74167,75432,75688,75924,76471,76965,77570,77768,78348,78912,79287,79405,79943,80100,80296,80569,80825,80995,81136,81200,81482,81768,82444,82708,83046,83399,83493,83679,83985,84247,84372,84499,84738,84949,85068,85261,85438,85893,86074,86196,86455,86568,86755,86857,86964,87093,87368,87876,88372,89249,89543,90113,90262,90994,91166,91502,91594,92654,96936,101361,101423,102001,102585,102676,102789,103018,103178,103330,103501,103667,103836,104003,104166,104409,104579,104752,104923,105197,105396,105601,105931,106015,106111,106207,106305,106405,106507,106609,106711,106813,106915,107015,107111,107223,107352,107475,107606,107737,107835,107949,108043,108183,108317,108413,108525,108625,108741,108837,108949,109049,109189,109325,109489,109619,109777,109927,110068,110212,110347,110459,110609,110737,110865,111001,111133,111263,111393,111505,112403,112549,112693,114177,114243,114333,114409,114513,114603,114705,114813,114921,115021,115101,115193,115291,115401,115479,115585,115677,115781,115891,116013,116176,116333,116413,116513,116603,116713,116807,116913,117005,117105,117217,117331,117447,117563,117657,117771,117883,117985,118105,118227,118309,118413,118533,118659,118757,118851,118939,119051,119167,119289,119401,119576,119692,119778,119870,119982,120106,120173,120299,120367,120495,120639,120767,120836,120931,121046,121159,121258,121367,121478,121589,121690,121795,121895,122025,122116,122239,122333,122445,122531,122635,122731,122819,122937,123041,123145,123271,123359,123467,123567,123657,123767,123851,123953,124037,124091,124155,124261,124371,124455,124859,127475,127593,127708,127788,128149,128382,128899,129324,129502,129786,131130,132491,132879,133957,143475,143821,149841,153597,154348,154610,154810,155189,159467,160073,160302,160453,160668,161751,162063,162474,162601,165627,166228,168149,168489,169800", + "endLines": "13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,165,166,167,168,169,170,171,172,173,194,195,196,197,198,199,200,201,204,205,206,207,208,211,212,213,220,221,222,223,224,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,359,374,375,376,377,378,386,387,391,395,399,404,410,417,421,425,430,434,438,442,446,450,454,460,464,470,474,480,484,489,493,496,500,506,510,516,520,526,529,533,537,541,545,549,550,551,552,555,558,561,564,568,569,570,571,572,575,577,579,581,586,587,591,597,601,602,604,615,616,620,626,630,631,632,636,663,667,668,672,700,867,893,1061,1087,1118,1126,1132,1146,1168,1173,1178,1188,1197,1206,1210,1217,1225,1232,1233,1242,1245,1248,1252,1256,1260,1263,1264,1268,1272,1282,1287,1294,1300,1301,1304,1308,1313,1315,1317,1320,1323,1325,1329,1332,1339,1342,1345,1349,1351,1355,1357,1359,1361,1365,1373,1381,1393,1399,1408,1411,1422,1425,1430,1431,1436,1509,1568,1569,1579,1588,1589,1591,1595,1598,1601,1604,1607,1610,1613,1616,1620,1623,1626,1629,1633,1636,1640,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1666,1668,1669,1670,1671,1672,1673,1674,1675,1677,1678,1680,1681,1683,1685,1686,1688,1689,1690,1691,1692,1693,1695,1696,1697,1698,1699,1700,1713,1715,1717,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1759,1760,1761,1762,1763,1764,1766,1770,1774,1775,1776,1777,1778,1779,1780,1781,1783,1785,1787,1789,1791,1792,1793,1794,1796,1798,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1814,1815,1816,1817,1819,1821,1822,1824,1825,1827,1829,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1844,1845,1846,1847,1849,1850,1851,1852,1853,1855,1857,1859,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1955,1958,1961,1964,1978,1984,1994,2010,2016,2026,2055,2082,2091,2120,2463,2467,2500,2608,2723,2729,2735,2756,2880,2900,2906,2910,2916,2951,2963,2979,2983,3049,3064,3115,3127,3153,3160", + "endColumns": "54,44,48,40,54,58,61,80,60,74,75,76,77,84,81,75,75,76,77,105,105,78,79,56,57,73,74,64,65,59,60,71,72,66,67,58,58,58,58,58,53,53,52,53,53,53,53,73,78,72,73,70,71,71,72,56,57,72,73,73,74,71,72,69,70,59,60,68,68,69,73,75,63,76,75,76,64,68,76,74,68,67,76,65,60,96,64,68,98,70,58,57,56,58,63,70,71,71,71,71,66,67,67,58,62,63,89,90,59,65,66,65,69,63,52,112,57,62,64,64,74,72,71,48,60,60,60,61,63,63,63,64,62,59,60,65,58,59,61,70,59,67,85,86,89,86,87,81,82,89,90,51,57,44,65,63,56,56,53,56,47,48,50,33,46,48,45,31,63,61,59,56,73,69,77,53,69,84,47,45,70,77,77,71,73,73,73,79,72,68,71,76,60,62,65,63,70,62,64,63,60,60,51,72,73,68,74,73,73,140,69,52,77,89,87,95,89,12,88,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,136,130,104,12,12,12,12,12,111,111,104,116,12,12,12,12,12,87,12,12,12,81,12,12,99,12,12,12,93,88,12,12,12,101,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,117,12,12,12,12,12,12,12,63,12,12,12,12,12,12,93,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,91,12,12,12,61,12,12,90,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,83,95,95,97,99,101,101,101,101,101,99,95,111,128,122,130,130,97,113,93,12,12,95,111,99,115,95,111,99,12,135,12,129,12,12,140,12,134,111,149,127,127,12,131,129,129,111,139,12,12,12,65,89,75,103,89,101,107,107,99,79,91,97,12,77,105,91,103,109,12,12,12,79,99,89,109,93,105,91,12,12,12,12,12,93,113,111,12,12,12,81,103,119,125,97,93,87,111,115,121,111,12,115,85,91,12,12,66,12,67,12,12,12,68,94,114,112,98,108,110,110,100,104,99,12,90,122,93,12,85,103,95,87,12,12,12,12,87,107,99,89,109,83,101,83,53,63,105,109,83,119,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24", + "endOffsets": "531,576,625,666,721,780,842,923,984,1059,1135,1212,1290,1375,1457,1533,1609,1686,1764,1870,1976,2055,2135,2192,2250,2324,2399,2464,2530,2590,2651,2723,2796,2863,2931,2990,3049,3108,3167,3226,3280,3334,3387,3441,3495,3549,3603,3809,3888,3961,4035,4106,4178,4250,4323,4380,4438,4511,4585,4659,4734,4806,4879,4949,5020,5080,5141,5267,5336,5406,5480,5556,5620,5697,5773,5850,5915,5984,6061,6136,6205,6273,6350,6416,6477,6574,6639,6708,6807,6878,6937,6995,7052,7111,7175,7246,7318,7390,7462,7534,7601,7669,7737,7796,7859,7923,8013,8104,8164,8230,8297,8363,8433,8497,8550,8663,8721,8784,8849,8914,8989,9062,9134,9183,9244,9305,9366,9428,9492,9556,9620,9685,9748,9808,9869,9935,9994,10054,10116,10187,10247,10315,10889,10976,11066,11153,11241,11323,11406,11496,11587,12879,12937,12982,13048,13112,13169,13226,13280,13485,13533,13582,13633,13667,13784,13833,13879,14183,14247,14309,14369,14426,14923,14993,15071,15125,15195,15280,15328,15374,15445,15523,15601,15673,15747,15821,15895,15975,16048,16117,16189,16266,16327,16390,16456,16520,16591,16654,16719,16783,16844,16905,16957,17030,17104,17173,17248,17322,17396,17537,17607,23720,24841,24931,25019,25115,25205,25787,25876,26123,26404,26656,26941,27334,27811,28033,28255,28531,28758,28988,29218,29448,29678,29905,30324,30550,30975,31205,31633,31852,32135,32343,32474,32701,33127,33352,33779,34000,34425,34545,34821,35122,35446,35737,36051,36188,36319,36424,36666,36833,37037,37245,37516,37628,37740,37845,37962,38176,38322,38462,38548,38896,38984,39230,39648,39897,39979,40077,40669,40769,41021,41445,41700,41794,41883,42120,44144,44386,44488,44741,46897,57026,58542,68770,70298,72055,72681,73101,74162,75427,75683,75919,76466,76960,77565,77763,78343,78907,79282,79400,79938,80095,80291,80564,80820,80990,81131,81195,81477,81763,82439,82703,83041,83394,83488,83674,83980,84242,84367,84494,84733,84944,85063,85256,85433,85888,86069,86191,86450,86563,86750,86852,86959,87088,87363,87871,88367,89244,89538,90108,90257,90989,91161,91497,91589,91867,96931,101356,101418,101996,102580,102671,102784,103013,103173,103325,103496,103662,103831,103998,104161,104404,104574,104747,104918,105192,105391,105596,105926,106010,106106,106202,106300,106400,106502,106604,106706,106808,106910,107010,107106,107218,107347,107470,107601,107732,107830,107944,108038,108178,108312,108408,108520,108620,108736,108832,108944,109044,109184,109320,109484,109614,109772,109922,110063,110207,110342,110454,110604,110732,110860,110996,111128,111258,111388,111500,111640,112544,112688,112826,114238,114328,114404,114508,114598,114700,114808,114916,115016,115096,115188,115286,115396,115474,115580,115672,115776,115886,116008,116171,116328,116408,116508,116598,116708,116802,116908,117000,117100,117212,117326,117442,117558,117652,117766,117878,117980,118100,118222,118304,118408,118528,118654,118752,118846,118934,119046,119162,119284,119396,119571,119687,119773,119865,119977,120101,120168,120294,120362,120490,120634,120762,120831,120926,121041,121154,121253,121362,121473,121584,121685,121790,121890,122020,122111,122234,122328,122440,122526,122630,122726,122814,122932,123036,123140,123266,123354,123462,123562,123652,123762,123846,123948,124032,124086,124150,124256,124366,124450,124570,127470,127588,127703,127783,128144,128377,128894,129319,129497,129781,131125,132486,132874,133952,143470,143605,145109,150408,154343,154605,154805,155184,159462,160068,160297,160448,160663,161746,162058,162469,162596,165622,166223,168144,168484,169795,169998" + } + }, + { + "source": "C:\\Users\\Re11a\\.gradle\\caches\\transforms-3\\0b22a6b07b3e498281e2fdb9d93c9c6b\\transformed\\support-compat-28.0.0\\res\\values\\values.xml", + "from": { + "startLines": "2,3,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,171,172,176,177,178,6,13,56,88,125", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "55,124,7725,7795,7863,7935,8005,8066,8140,8213,8274,8335,8397,8461,8523,8584,8652,8752,8812,8878,8951,9020,9077,9129,9191,9263,9339,9374,9409,9459,9520,9577,9611,9646,9681,9751,9822,9939,10140,10250,10451,10580,10652,319,617,3523,5588,7348", + "endLines": "2,3,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,170,171,175,176,177,178,12,55,87,124,131", + "endColumns": "68,62,69,67,71,69,60,73,72,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,49,60,56,33,34,34,69,70,116,12,109,12,128,71,66,24,24,24,24,24", + "endOffsets": "119,182,7790,7858,7930,8000,8061,8135,8208,8269,8330,8392,8456,8518,8579,8647,8747,8807,8873,8946,9015,9072,9124,9186,9258,9334,9369,9404,9454,9515,9572,9606,9641,9676,9746,9817,9934,10135,10245,10446,10575,10647,10714,612,3518,5583,7343,7720" + }, + "to": { + "startLines": "60,61,158,159,160,161,162,163,164,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,202,203,209,210,214,215,216,217,218,219,225,362,1701,1702,1706,1707,1711,1876,1877,2468,2609,2640,2661,2694", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "3608,3677,10320,10390,10458,10530,10600,10661,10735,11592,11653,11714,11776,11840,11902,11963,12031,12131,12191,12257,12330,12399,12456,12508,13285,13357,13672,13707,13884,13934,13995,14052,14086,14121,14431,23864,111645,111762,111963,112073,112274,124575,124647,143610,150413,152067,152748,153430", + "endLines": "60,61,158,159,160,161,162,163,164,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,202,203,209,210,214,215,216,217,218,219,225,362,1701,1705,1706,1710,1711,1876,1877,2474,2639,2660,2693,2699", + "endColumns": "68,62,69,67,71,69,60,73,72,60,60,61,63,61,60,67,99,59,65,72,68,56,51,61,71,75,34,34,49,60,56,33,34,34,69,70,116,12,109,12,128,71,66,24,24,24,24,24", + "endOffsets": "3672,3735,10385,10453,10525,10595,10656,10730,10803,11648,11709,11771,11835,11897,11958,12026,12126,12186,12252,12325,12394,12451,12503,12565,13352,13428,13702,13737,13929,13990,14047,14081,14116,14151,14496,23930,111757,111958,112068,112269,112398,124642,124709,143816,152062,152743,153425,153592" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\arrays.xml", + "from": { + "startLines": "19,26", + "startColumns": "4,4", + "startOffsets": "758,1073", + "endLines": "24,29", + "endColumns": "19,19", + "endOffsets": "1065,1191" + }, + "to": { + "startLines": "2,8", + "startColumns": "4,4", + "startOffsets": "105,300", + "endLines": "7,11", + "endColumns": "19,19", + "endOffsets": "295,415" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\strings.xml", + "from": { + "startLines": "128,72,75,74,73,19,20,21,118,119,127,126,26,81,82,80,79,78,94,93,92,84,39,38,64,29,30,85,41,76,120,71,67,42,48,53,43,63,62,61,57,56,54,55,58,59,49,70,60,68,47,52,51,50,66,46,65,44,45,69,28,34,36,33,35,32,31,25,24,101,100,104,116,109,108,110,111,113,112,102,103,107,105,106,99,114,115,125,123,122,124,27,83,91,96,95,97,90,89,88,87,22,23", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "8136,3970,4234,4137,4067,846,890,943,7624,7674,8077,8025,1308,4694,4789,4622,4537,4453,5668,5584,5481,4967,2043,1991,3461,1515,1569,5029,2138,4318,7738,3898,3649,2198,2519,2825,2257,3389,3327,3269,3043,2990,2885,2939,3094,3145,2567,3831,3206,3699,2471,2769,2680,2621,3586,2420,3540,2315,2359,3763,1459,1784,1894,1736,1840,1679,1630,1252,1198,6131,6063,6375,7525,6744,6662,6819,6909,7153,7073,6216,6292,6602,6440,6521,6007,7298,7421,7983,7854,7796,7908,1393,4898,5394,5805,5735,5886,5334,5278,5215,5154,996,1107", + "endLines": "132,72,75,74,73,19,20,21,118,119,127,126,26,81,82,80,79,78,94,93,92,84,39,38,64,29,30,85,41,76,120,71,67,42,48,53,43,63,62,61,57,56,54,55,58,59,49,70,60,68,47,52,51,50,66,46,65,44,45,69,28,34,36,33,35,32,31,25,24,101,100,104,116,109,108,110,111,113,112,102,103,107,105,106,99,114,115,125,123,122,124,27,83,91,96,95,97,90,89,88,87,22,23", + "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89", + "endOffsets": "8544,4061,4312,4228,4131,884,937,990,7668,7732,8130,8071,1387,4783,4892,4688,4616,4531,5729,5662,5578,5023,2100,2037,3534,1563,1624,5129,2192,4415,7788,3964,3693,2251,2561,2879,2309,3455,3383,3321,3088,3037,2933,2984,3139,3200,2615,3892,3263,3757,2513,2819,2763,2674,3643,2465,3580,2353,2414,3825,1509,1834,1942,1778,1888,1730,1673,1302,1246,6210,6125,6434,7616,6813,6738,6903,7067,7292,7147,6286,6369,6656,6515,6596,6057,7415,7519,8019,7902,7848,7977,1453,4961,5475,5880,5799,5975,5388,5328,5272,5209,1101,1192" + }, + "to": { + "startLines": "226,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,360,361,363,364,365,366,367,368,369,370,371,372,373", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "14501,17612,17708,17791,17887,17956,17999,18051,18103,18152,18215,18273,18324,18408,18502,18610,18681,18765,18848,18914,18997,19099,19160,19222,19273,19351,19404,19464,19569,19628,19730,19785,19856,19905,19963,20010,20069,20126,20197,20258,20315,20365,20417,20470,20520,20570,20630,20683,20749,20811,20874,20921,20976,21064,21122,21184,21234,21279,21322,21382,21449,21504,21559,21612,21659,21712,21768,21816,21871,21924,22008,22075,22139,22235,22309,22390,22479,22642,22786,22865,22940,23022,23081,23161,23241,23296,23418,23521,23562,23615,23725,23799,23935,24003,24089,24169,24238,24332,24391,24446,24508,24568,24678", + "endLines": "230,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,360,361,363,364,365,366,367,368,369,370,371,372,373", + "endColumns": "14,95,82,95,68,42,51,51,48,62,57,50,83,93,107,70,83,82,65,82,101,60,61,50,77,52,59,104,58,101,54,70,48,57,46,58,56,70,60,56,49,51,52,49,49,59,52,65,61,62,46,54,87,57,61,49,44,42,59,66,54,54,52,46,52,55,47,54,52,83,66,63,95,73,80,88,162,143,78,74,81,58,79,79,54,121,102,40,52,56,73,64,67,85,79,68,93,58,54,61,59,109,89", + "endOffsets": "14849,17703,17786,17882,17951,17994,18046,18098,18147,18210,18268,18319,18403,18497,18605,18676,18760,18843,18909,18992,19094,19155,19217,19268,19346,19399,19459,19564,19623,19725,19780,19851,19900,19958,20005,20064,20121,20192,20253,20310,20360,20412,20465,20515,20565,20625,20678,20744,20806,20869,20916,20971,21059,21117,21179,21229,21274,21317,21377,21444,21499,21554,21607,21654,21707,21763,21811,21866,21919,22003,22070,22134,22230,22304,22385,22474,22637,22781,22860,22935,23017,23076,23156,23236,23291,23413,23516,23557,23610,23667,23794,23859,23998,24084,24164,24233,24327,24386,24441,24503,24563,24673,24763" + } + }, + { + "source": "C:\\Users\\Re11a\\AndroidStudioProjects\\minote\\MiNotes\\app\\src\\main\\res\\values\\styles.xml", + "from": { + "startLines": "50,55,64,60,22,26,30,35,40,18,45", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "2112,2322,2704,2539,917,1104,1293,1484,1693,730,1905", + "endLines": "53,58,67,62,25,29,33,38,43,21,48", + "endColumns": "12,12,12,12,12,12,12,12,12,12,12", + "endOffsets": "2314,2531,2910,2696,1098,1287,1476,1685,1897,911,2104" + }, + "to": { + "startLines": "1437,1441,1445,1449,1718,1722,1726,1730,1734,1738,1742", + "startColumns": "4,4,4,4,4,4,4,4,4,4,4", + "startOffsets": "91872,92076,92287,92494,112831,113014,113199,113384,113587,113793,113976", + "endLines": "1440,1444,1448,1451,1721,1725,1729,1733,1737,1741,1745", + "endColumns": "12,12,12,12,12,12,12,12,12,12,12", + "endOffsets": "92071,92282,92489,92649,113009,113194,113379,113582,113788,113971,114172" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json b/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json new file mode 100644 index 0000000..4d771f2 --- /dev/null +++ b/app/build/intermediates/merged_res_blame_folder/debug/out/single/debug.json @@ -0,0 +1,386 @@ +[ + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_4x_blue.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_4x_blue.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_4x_yellow.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_4x_yellow.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_blue_single.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_blue_single.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_footer_bg.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_footer_bg.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_list_footer.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_list_footer.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_red.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_red.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_menu_move.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\menu_move.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_font_size_selector_bg.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\font_size_selector_bg.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_white_middle.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_white_middle.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_title_alert.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\title_alert.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_search_result.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\search_result.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_white.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_white.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_title_bar_bg.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\title_bar_bg.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_4x_green.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_4x_green.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_account_dialog_title.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\account_dialog_title.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_2x_red.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_2x_red.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_note_list.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\note_list.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_yellow_up.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_yellow_up.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_green_up.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_green_up.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_delete.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\delete.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_white_down.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_white_down.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\raw-zh-rCN_introduction.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\raw-zh-rCN\\introduction" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_green_middle.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_green_middle.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_white_up.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_white_up.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_yellow.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_yellow.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_dialog_edit_text.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\dialog_edit_text.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_list.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_list.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\color_primary_text_dark.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\color\\primary_text_dark.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_new_note_normal.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\new_note_normal.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_background.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_background.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_selected.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\selected.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_note_list_dropdown.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\note_list_dropdown.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_settings_header.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\settings_header.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_4x_white.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_4x_white.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_title_green.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_title_green.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_red_up.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_red_up.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_green_single.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_green_single.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_notification.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\notification.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_blue_up.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_blue_up.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_font_super.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\font_super.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\xml_widget_2x_info.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\xml\\widget_2x_info.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_2x_yellow.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_2x_yellow.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_note_edit_color_selector_panel.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\note_edit_color_selector_panel.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_red_down.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_red_down.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_note_list_options.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\note_list_options.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\color_secondary_text_dark.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\color\\secondary_text_dark.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_title_white.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_title_white.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_add_account_text.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\add_account_text.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_title_blue.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_title_blue.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_sub_folder.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\sub_folder.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_menu_delete.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\menu_delete.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_blue_middle.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_blue_middle.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_green.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_green.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_item.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_item.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_call_record.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\call_record.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_green_down.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_green_down.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_4x_red.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_4x_red.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_call_note_edit.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\call_note_edit.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_bg_btn_set_color.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\bg_btn_set_color.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_new_note_pressed.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\new_note_pressed.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_folder_list_item.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\folder_list_item.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_white_single.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_white_single.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_edit_list_item.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_edit_list_item.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_2x_blue.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_2x_blue.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_font_normal.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\font_normal.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_call_record_folder.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\call_record_folder.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_clock.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\clock.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_icon_app.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\icon_app.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_title_yellow.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_title_yellow.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_yellow_down.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_yellow_down.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_edit.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_edit.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_font_large.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\font_large.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_folder.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_folder.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\raw_introduction.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\raw\\introduction" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_datetime_picker.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\datetime_picker.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable_new_note.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable\\new_note.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_red_single.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_red_single.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_dropdown_icon.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\dropdown_icon.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_red_middle.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_red_middle.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_blue_down.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_blue_down.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\xml_searchable.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\xml\\searchable.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_yellow_middle.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_yellow_middle.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\menu_note_edit.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\menu\\note_edit.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_title_red.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_title_red.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\xml_widget_4x_info.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\xml\\widget_4x_info.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_widget_4x.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\widget_4x.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_list_yellow_single.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\list_yellow_single.9.png" + }, + { + "merged": "net.micode.notes.app-merged_res-8:/layout_note_edit.xml.flat", + "source": "net.micode.notes.app-main-10:/layout/note_edit.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_2x_green.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_2x_green.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_bg_color_btn_mask.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\bg_color_btn_mask.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\xml_preferences.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\xml\\preferences.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_note_list_dropdown_menu.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\note_list_dropdown_menu.xml" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_edit_blue.9.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\edit_blue.9.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_font_small.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\font_small.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\drawable-hdpi_widget_2x_white.png.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\drawable-hdpi\\widget_2x_white.png" + }, + { + "merged": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-merged_res-8:\\layout_widget_2x.xml.flat", + "source": "C:\\Users\\Re11a\\.gradle\\daemon\\7.5\\net.micode.notes.app-main-10:\\layout\\widget_2x.xml" + } +] \ No newline at end of file diff --git a/app/build/intermediates/navigation_json/debug/navigation.json b/app/build/intermediates/navigation_json/debug/navigation.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/app/build/intermediates/navigation_json/debug/navigation.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml b/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml new file mode 100644 index 0000000..8cb733e --- /dev/null +++ b/app/build/intermediates/packaged_manifests/debug/AndroidManifest.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/packaged_manifests/debug/output-metadata.json b/app/build/intermediates/packaged_manifests/debug/output-metadata.json new file mode 100644 index 0000000..eea66e3 --- /dev/null +++ b/app/build/intermediates/packaged_manifests/debug/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "PACKAGED_MANIFESTS", + "kind": "Directory" + }, + "applicationId": "net.micode.notes", + "variantName": "debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "0.1", + "outputFile": "AndroidManifest.xml" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/build/intermediates/processed_res/debug/out/output-metadata.json b/app/build/intermediates/processed_res/debug/out/output-metadata.json new file mode 100644 index 0000000..1eefece --- /dev/null +++ b/app/build/intermediates/processed_res/debug/out/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "PROCESSED_RES", + "kind": "Directory" + }, + "applicationId": "net.micode.notes", + "variantName": "debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "0.1", + "outputFile": "resources-debug.ap_" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/build/intermediates/processed_res/debug/out/resources-debug.ap_ b/app/build/intermediates/processed_res/debug/out/resources-debug.ap_ new file mode 100644 index 0000000..795d956 Binary files /dev/null and b/app/build/intermediates/processed_res/debug/out/resources-debug.ap_ differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/BuildConfig.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/BuildConfig.dex new file mode 100644 index 0000000..ebf79ba Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/BuildConfig.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/MainActivity.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/MainActivity.dex new file mode 100644 index 0000000..8cedd04 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/MainActivity.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex new file mode 100644 index 0000000..1f9ff81 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Contact.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex new file mode 100644 index 0000000..a2b0525 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$CallNote.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex new file mode 100644 index 0000000..2fbf54b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataColumns.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex new file mode 100644 index 0000000..bec0b42 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$DataConstants.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex new file mode 100644 index 0000000..7302df1 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$NoteColumns.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex new file mode 100644 index 0000000..55c07e3 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes$TextNote.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex new file mode 100644 index 0000000..55990a0 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/Notes.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex new file mode 100644 index 0000000..0138acd Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper$TABLE.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex new file mode 100644 index 0000000..c514f8d Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesDatabaseHelper.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex new file mode 100644 index 0000000..b566a17 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/data/NotesProvider.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex new file mode 100644 index 0000000..edca6c2 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/MetaData.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex new file mode 100644 index 0000000..43fbb95 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Node.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex new file mode 100644 index 0000000..c804edb Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlData.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex new file mode 100644 index 0000000..7a975d2 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/SqlNote.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex new file mode 100644 index 0000000..24984cf Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/Task.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex new file mode 100644 index 0000000..8fa92ab Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/data/TaskList.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex new file mode 100644 index 0000000..7484169 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/ActionFailureException.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex new file mode 100644 index 0000000..aa009a0 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/exception/NetworkFailureException.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex new file mode 100644 index 0000000..0c587d8 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex new file mode 100644 index 0000000..6b5778b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask$OnCompleteListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex new file mode 100644 index 0000000..946ac21 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskASyncTask.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex new file mode 100644 index 0000000..00ad8f3 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskClient.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex new file mode 100644 index 0000000..aaa35a5 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskManager.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex new file mode 100644 index 0000000..66440b5 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex new file mode 100644 index 0000000..db641dc Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/gtask/remote/GTaskSyncService.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex new file mode 100644 index 0000000..7d8a2cc Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note$NoteData.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex new file mode 100644 index 0000000..f34ea10 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex new file mode 100644 index 0000000..6f5252f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote$NoteSettingChangedListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex new file mode 100644 index 0000000..d9d7595 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/WorkingNote.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex new file mode 100644 index 0000000..17ad8d4 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex new file mode 100644 index 0000000..81c65ee Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex new file mode 100644 index 0000000..7193315 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/DataUtils.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex new file mode 100644 index 0000000..5888fc6 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex new file mode 100644 index 0000000..4ae798c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteBgResources.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex new file mode 100644 index 0000000..67050be Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex new file mode 100644 index 0000000..0a65d9c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex new file mode 100644 index 0000000..2343b9e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex new file mode 100644 index 0000000..602aad6 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex new file mode 100644 index 0000000..19653d5 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex new file mode 100644 index 0000000..54adcf9 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmInitReceiver.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex new file mode 100644 index 0000000..c6e8fd8 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmReceiver.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex new file mode 100644 index 0000000..c38244b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex new file mode 100644 index 0000000..b7482d9 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$2.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex new file mode 100644 index 0000000..2d3dad9 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex new file mode 100644 index 0000000..288c6fd Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex new file mode 100644 index 0000000..c129c9e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$OnDateTimeChangedListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex new file mode 100644 index 0000000..d54842e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex new file mode 100644 index 0000000..ac6117e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex new file mode 100644 index 0000000..7201f1d Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$OnDateTimeSetListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex new file mode 100644 index 0000000..885a01c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex new file mode 100644 index 0000000..1cbdbb2 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex new file mode 100644 index 0000000..bbf3aae Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex new file mode 100644 index 0000000..af0dd94 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex new file mode 100644 index 0000000..bb956e7 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex new file mode 100644 index 0000000..8b58dec Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex new file mode 100644 index 0000000..9b2bcd3 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$2.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex new file mode 100644 index 0000000..7171528 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex new file mode 100644 index 0000000..d44783c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex new file mode 100644 index 0000000..890777c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex new file mode 100644 index 0000000..6f0d01c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex new file mode 100644 index 0000000..312fbad Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$OnTextViewChangeListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex new file mode 100644 index 0000000..1c51872 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex new file mode 100644 index 0000000..feb5c80 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteItemData.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex new file mode 100644 index 0000000..adb7c71 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex new file mode 100644 index 0000000..7a65e36 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$2.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex new file mode 100644 index 0000000..a11413a Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$3.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex new file mode 100644 index 0000000..7747b05 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$4.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex new file mode 100644 index 0000000..5937b96 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$5.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex new file mode 100644 index 0000000..3cf4eb9 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$6.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex new file mode 100644 index 0000000..5113db4 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$7.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex new file mode 100644 index 0000000..3c7498e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$8.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex new file mode 100644 index 0000000..c99b26f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$9.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex new file mode 100644 index 0000000..c04294e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex new file mode 100644 index 0000000..ca32d6d Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ListEditState.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex new file mode 100644 index 0000000..4c5708b Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex new file mode 100644 index 0000000..21c3498 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback$2.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex new file mode 100644 index 0000000..bf9baf5 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$ModeCallback.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex new file mode 100644 index 0000000..6e956e0 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex new file mode 100644 index 0000000..22d050d Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex new file mode 100644 index 0000000..d1473dd Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListActivity.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex new file mode 100644 index 0000000..dd72238 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex new file mode 100644 index 0000000..ab39c99 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListAdapter.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex new file mode 100644 index 0000000..e40b500 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex new file mode 100644 index 0000000..44a2598 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex new file mode 100644 index 0000000..b125b7f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex new file mode 100644 index 0000000..ea4d3bb Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex new file mode 100644 index 0000000..303cd9e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex new file mode 100644 index 0000000..55eeca3 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex new file mode 100644 index 0000000..4ff53c2 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$6.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex new file mode 100644 index 0000000..2559347 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$7.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex new file mode 100644 index 0000000..1b88930 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex new file mode 100644 index 0000000..8d68c9f Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex new file mode 100644 index 0000000..f03756e Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex new file mode 100644 index 0000000..c07b35c Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex new file mode 100644 index 0000000..a64b405 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_2x.dex differ diff --git a/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex new file mode 100644 index 0000000..bff6683 Binary files /dev/null and b/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/widget/NoteWidgetProvider_4x.dex differ diff --git a/app/build/intermediates/runtime_symbol_list/debug/R.txt b/app/build/intermediates/runtime_symbol_list/debug/R.txt new file mode 100644 index 0000000..3c0310e --- /dev/null +++ b/app/build/intermediates/runtime_symbol_list/debug/R.txt @@ -0,0 +1,1889 @@ +int anim abc_fade_in 0x7f010000 +int anim abc_fade_out 0x7f010001 +int anim abc_grow_fade_in_from_bottom 0x7f010002 +int anim abc_popup_enter 0x7f010003 +int anim abc_popup_exit 0x7f010004 +int anim abc_shrink_fade_out_from_bottom 0x7f010005 +int anim abc_slide_in_bottom 0x7f010006 +int anim abc_slide_in_top 0x7f010007 +int anim abc_slide_out_bottom 0x7f010008 +int anim abc_slide_out_top 0x7f010009 +int anim abc_tooltip_enter 0x7f01000a +int anim abc_tooltip_exit 0x7f01000b +int array format_for_exported_note 0x7f020000 +int array menu_share_ways 0x7f020001 +int attr actionBarDivider 0x7f030000 +int attr actionBarItemBackground 0x7f030001 +int attr actionBarPopupTheme 0x7f030002 +int attr actionBarSize 0x7f030003 +int attr actionBarSplitStyle 0x7f030004 +int attr actionBarStyle 0x7f030005 +int attr actionBarTabBarStyle 0x7f030006 +int attr actionBarTabStyle 0x7f030007 +int attr actionBarTabTextStyle 0x7f030008 +int attr actionBarTheme 0x7f030009 +int attr actionBarWidgetTheme 0x7f03000a +int attr actionButtonStyle 0x7f03000b +int attr actionDropDownStyle 0x7f03000c +int attr actionLayout 0x7f03000d +int attr actionMenuTextAppearance 0x7f03000e +int attr actionMenuTextColor 0x7f03000f +int attr actionModeBackground 0x7f030010 +int attr actionModeCloseButtonStyle 0x7f030011 +int attr actionModeCloseDrawable 0x7f030012 +int attr actionModeCopyDrawable 0x7f030013 +int attr actionModeCutDrawable 0x7f030014 +int attr actionModeFindDrawable 0x7f030015 +int attr actionModePasteDrawable 0x7f030016 +int attr actionModePopupWindowStyle 0x7f030017 +int attr actionModeSelectAllDrawable 0x7f030018 +int attr actionModeShareDrawable 0x7f030019 +int attr actionModeSplitBackground 0x7f03001a +int attr actionModeStyle 0x7f03001b +int attr actionModeWebSearchDrawable 0x7f03001c +int attr actionOverflowButtonStyle 0x7f03001d +int attr actionOverflowMenuStyle 0x7f03001e +int attr actionProviderClass 0x7f03001f +int attr actionViewClass 0x7f030020 +int attr activityChooserViewStyle 0x7f030021 +int attr alertDialogButtonGroupStyle 0x7f030022 +int attr alertDialogCenterButtons 0x7f030023 +int attr alertDialogStyle 0x7f030024 +int attr alertDialogTheme 0x7f030025 +int attr allowStacking 0x7f030026 +int attr alpha 0x7f030027 +int attr alphabeticModifiers 0x7f030028 +int attr arrowHeadLength 0x7f030029 +int attr arrowShaftLength 0x7f03002a +int attr autoCompleteTextViewStyle 0x7f03002b +int attr autoSizeMaxTextSize 0x7f03002c +int attr autoSizeMinTextSize 0x7f03002d +int attr autoSizePresetSizes 0x7f03002e +int attr autoSizeStepGranularity 0x7f03002f +int attr autoSizeTextType 0x7f030030 +int attr background 0x7f030031 +int attr backgroundSplit 0x7f030032 +int attr backgroundStacked 0x7f030033 +int attr backgroundTint 0x7f030034 +int attr backgroundTintMode 0x7f030035 +int attr barLength 0x7f030036 +int attr borderlessButtonStyle 0x7f030037 +int attr buttonBarButtonStyle 0x7f030038 +int attr buttonBarNegativeButtonStyle 0x7f030039 +int attr buttonBarNeutralButtonStyle 0x7f03003a +int attr buttonBarPositiveButtonStyle 0x7f03003b +int attr buttonBarStyle 0x7f03003c +int attr buttonGravity 0x7f03003d +int attr buttonIconDimen 0x7f03003e +int attr buttonPanelSideLayout 0x7f03003f +int attr buttonStyle 0x7f030040 +int attr buttonStyleSmall 0x7f030041 +int attr buttonTint 0x7f030042 +int attr buttonTintMode 0x7f030043 +int attr checkboxStyle 0x7f030044 +int attr checkedTextViewStyle 0x7f030045 +int attr closeIcon 0x7f030046 +int attr closeItemLayout 0x7f030047 +int attr collapseContentDescription 0x7f030048 +int attr collapseIcon 0x7f030049 +int attr color 0x7f03004a +int attr colorAccent 0x7f03004b +int attr colorBackgroundFloating 0x7f03004c +int attr colorButtonNormal 0x7f03004d +int attr colorControlActivated 0x7f03004e +int attr colorControlHighlight 0x7f03004f +int attr colorControlNormal 0x7f030050 +int attr colorError 0x7f030051 +int attr colorPrimary 0x7f030052 +int attr colorPrimaryDark 0x7f030053 +int attr colorSwitchThumbNormal 0x7f030054 +int attr commitIcon 0x7f030055 +int attr contentDescription 0x7f030056 +int attr contentInsetEnd 0x7f030057 +int attr contentInsetEndWithActions 0x7f030058 +int attr contentInsetLeft 0x7f030059 +int attr contentInsetRight 0x7f03005a +int attr contentInsetStart 0x7f03005b +int attr contentInsetStartWithNavigation 0x7f03005c +int attr controlBackground 0x7f03005d +int attr coordinatorLayoutStyle 0x7f03005e +int attr customNavigationLayout 0x7f03005f +int attr defaultQueryHint 0x7f030060 +int attr dialogCornerRadius 0x7f030061 +int attr dialogPreferredPadding 0x7f030062 +int attr dialogTheme 0x7f030063 +int attr displayOptions 0x7f030064 +int attr divider 0x7f030065 +int attr dividerHorizontal 0x7f030066 +int attr dividerPadding 0x7f030067 +int attr dividerVertical 0x7f030068 +int attr drawableSize 0x7f030069 +int attr drawerArrowStyle 0x7f03006a +int attr dropDownListViewStyle 0x7f03006b +int attr dropdownListPreferredItemHeight 0x7f03006c +int attr editTextBackground 0x7f03006d +int attr editTextColor 0x7f03006e +int attr editTextStyle 0x7f03006f +int attr elevation 0x7f030070 +int attr expandActivityOverflowButtonDrawable 0x7f030071 +int attr firstBaselineToTopHeight 0x7f030072 +int attr font 0x7f030073 +int attr fontFamily 0x7f030074 +int attr fontProviderAuthority 0x7f030075 +int attr fontProviderCerts 0x7f030076 +int attr fontProviderFetchStrategy 0x7f030077 +int attr fontProviderFetchTimeout 0x7f030078 +int attr fontProviderPackage 0x7f030079 +int attr fontProviderQuery 0x7f03007a +int attr fontStyle 0x7f03007b +int attr fontVariationSettings 0x7f03007c +int attr fontWeight 0x7f03007d +int attr gapBetweenBars 0x7f03007e +int attr goIcon 0x7f03007f +int attr height 0x7f030080 +int attr hideOnContentScroll 0x7f030081 +int attr homeAsUpIndicator 0x7f030082 +int attr homeLayout 0x7f030083 +int attr icon 0x7f030084 +int attr iconTint 0x7f030085 +int attr iconTintMode 0x7f030086 +int attr iconifiedByDefault 0x7f030087 +int attr imageButtonStyle 0x7f030088 +int attr indeterminateProgressStyle 0x7f030089 +int attr initialActivityCount 0x7f03008a +int attr isLightTheme 0x7f03008b +int attr itemPadding 0x7f03008c +int attr keylines 0x7f03008d +int attr lastBaselineToBottomHeight 0x7f03008e +int attr layout 0x7f03008f +int attr layout_anchor 0x7f030090 +int attr layout_anchorGravity 0x7f030091 +int attr layout_behavior 0x7f030092 +int attr layout_dodgeInsetEdges 0x7f030093 +int attr layout_insetEdge 0x7f030094 +int attr layout_keyline 0x7f030095 +int attr lineHeight 0x7f030096 +int attr listChoiceBackgroundIndicator 0x7f030097 +int attr listDividerAlertDialog 0x7f030098 +int attr listItemLayout 0x7f030099 +int attr listLayout 0x7f03009a +int attr listMenuViewStyle 0x7f03009b +int attr listPopupWindowStyle 0x7f03009c +int attr listPreferredItemHeight 0x7f03009d +int attr listPreferredItemHeightLarge 0x7f03009e +int attr listPreferredItemHeightSmall 0x7f03009f +int attr listPreferredItemPaddingLeft 0x7f0300a0 +int attr listPreferredItemPaddingRight 0x7f0300a1 +int attr logo 0x7f0300a2 +int attr logoDescription 0x7f0300a3 +int attr maxButtonHeight 0x7f0300a4 +int attr measureWithLargestChild 0x7f0300a5 +int attr multiChoiceItemLayout 0x7f0300a6 +int attr navigationContentDescription 0x7f0300a7 +int attr navigationIcon 0x7f0300a8 +int attr navigationMode 0x7f0300a9 +int attr numericModifiers 0x7f0300aa +int attr overlapAnchor 0x7f0300ab +int attr paddingBottomNoButtons 0x7f0300ac +int attr paddingEnd 0x7f0300ad +int attr paddingStart 0x7f0300ae +int attr paddingTopNoTitle 0x7f0300af +int attr panelBackground 0x7f0300b0 +int attr panelMenuListTheme 0x7f0300b1 +int attr panelMenuListWidth 0x7f0300b2 +int attr popupMenuStyle 0x7f0300b3 +int attr popupTheme 0x7f0300b4 +int attr popupWindowStyle 0x7f0300b5 +int attr preserveIconSpacing 0x7f0300b6 +int attr progressBarPadding 0x7f0300b7 +int attr progressBarStyle 0x7f0300b8 +int attr queryBackground 0x7f0300b9 +int attr queryHint 0x7f0300ba +int attr radioButtonStyle 0x7f0300bb +int attr ratingBarStyle 0x7f0300bc +int attr ratingBarStyleIndicator 0x7f0300bd +int attr ratingBarStyleSmall 0x7f0300be +int attr searchHintIcon 0x7f0300bf +int attr searchIcon 0x7f0300c0 +int attr searchViewStyle 0x7f0300c1 +int attr seekBarStyle 0x7f0300c2 +int attr selectableItemBackground 0x7f0300c3 +int attr selectableItemBackgroundBorderless 0x7f0300c4 +int attr showAsAction 0x7f0300c5 +int attr showDividers 0x7f0300c6 +int attr showText 0x7f0300c7 +int attr showTitle 0x7f0300c8 +int attr singleChoiceItemLayout 0x7f0300c9 +int attr spinBars 0x7f0300ca +int attr spinnerDropDownItemStyle 0x7f0300cb +int attr spinnerStyle 0x7f0300cc +int attr splitTrack 0x7f0300cd +int attr srcCompat 0x7f0300ce +int attr state_above_anchor 0x7f0300cf +int attr statusBarBackground 0x7f0300d0 +int attr subMenuArrow 0x7f0300d1 +int attr submitBackground 0x7f0300d2 +int attr subtitle 0x7f0300d3 +int attr subtitleTextAppearance 0x7f0300d4 +int attr subtitleTextColor 0x7f0300d5 +int attr subtitleTextStyle 0x7f0300d6 +int attr suggestionRowLayout 0x7f0300d7 +int attr switchMinWidth 0x7f0300d8 +int attr switchPadding 0x7f0300d9 +int attr switchStyle 0x7f0300da +int attr switchTextAppearance 0x7f0300db +int attr textAllCaps 0x7f0300dc +int attr textAppearanceLargePopupMenu 0x7f0300dd +int attr textAppearanceListItem 0x7f0300de +int attr textAppearanceListItemSecondary 0x7f0300df +int attr textAppearanceListItemSmall 0x7f0300e0 +int attr textAppearancePopupMenuHeader 0x7f0300e1 +int attr textAppearanceSearchResultSubtitle 0x7f0300e2 +int attr textAppearanceSearchResultTitle 0x7f0300e3 +int attr textAppearanceSmallPopupMenu 0x7f0300e4 +int attr textColorAlertDialogListItem 0x7f0300e5 +int attr textColorSearchUrl 0x7f0300e6 +int attr theme 0x7f0300e7 +int attr thickness 0x7f0300e8 +int attr thumbTextPadding 0x7f0300e9 +int attr thumbTint 0x7f0300ea +int attr thumbTintMode 0x7f0300eb +int attr tickMark 0x7f0300ec +int attr tickMarkTint 0x7f0300ed +int attr tickMarkTintMode 0x7f0300ee +int attr tint 0x7f0300ef +int attr tintMode 0x7f0300f0 +int attr title 0x7f0300f1 +int attr titleMargin 0x7f0300f2 +int attr titleMarginBottom 0x7f0300f3 +int attr titleMarginEnd 0x7f0300f4 +int attr titleMarginStart 0x7f0300f5 +int attr titleMarginTop 0x7f0300f6 +int attr titleMargins 0x7f0300f7 +int attr titleTextAppearance 0x7f0300f8 +int attr titleTextColor 0x7f0300f9 +int attr titleTextStyle 0x7f0300fa +int attr toolbarNavigationButtonStyle 0x7f0300fb +int attr toolbarStyle 0x7f0300fc +int attr tooltipForegroundColor 0x7f0300fd +int attr tooltipFrameBackground 0x7f0300fe +int attr tooltipText 0x7f0300ff +int attr track 0x7f030100 +int attr trackTint 0x7f030101 +int attr trackTintMode 0x7f030102 +int attr ttcIndex 0x7f030103 +int attr viewInflaterClass 0x7f030104 +int attr voiceIcon 0x7f030105 +int attr windowActionBar 0x7f030106 +int attr windowActionBarOverlay 0x7f030107 +int attr windowActionModeOverlay 0x7f030108 +int attr windowFixedHeightMajor 0x7f030109 +int attr windowFixedHeightMinor 0x7f03010a +int attr windowFixedWidthMajor 0x7f03010b +int attr windowFixedWidthMinor 0x7f03010c +int attr windowMinWidthMajor 0x7f03010d +int attr windowMinWidthMinor 0x7f03010e +int attr windowNoTitle 0x7f03010f +int bool abc_action_bar_embed_tabs 0x7f040000 +int bool abc_allow_stacked_button_bar 0x7f040001 +int bool abc_config_actionMenuItemAllCaps 0x7f040002 +int color abc_background_cache_hint_selector_material_dark 0x7f050000 +int color abc_background_cache_hint_selector_material_light 0x7f050001 +int color abc_btn_colored_borderless_text_material 0x7f050002 +int color abc_btn_colored_text_material 0x7f050003 +int color abc_color_highlight_material 0x7f050004 +int color abc_hint_foreground_material_dark 0x7f050005 +int color abc_hint_foreground_material_light 0x7f050006 +int color abc_input_method_navigation_guard 0x7f050007 +int color abc_primary_text_disable_only_material_dark 0x7f050008 +int color abc_primary_text_disable_only_material_light 0x7f050009 +int color abc_primary_text_material_dark 0x7f05000a +int color abc_primary_text_material_light 0x7f05000b +int color abc_search_url_text 0x7f05000c +int color abc_search_url_text_normal 0x7f05000d +int color abc_search_url_text_pressed 0x7f05000e +int color abc_search_url_text_selected 0x7f05000f +int color abc_secondary_text_material_dark 0x7f050010 +int color abc_secondary_text_material_light 0x7f050011 +int color abc_tint_btn_checkable 0x7f050012 +int color abc_tint_default 0x7f050013 +int color abc_tint_edittext 0x7f050014 +int color abc_tint_seek_thumb 0x7f050015 +int color abc_tint_spinner 0x7f050016 +int color abc_tint_switch_track 0x7f050017 +int color accent_material_dark 0x7f050018 +int color accent_material_light 0x7f050019 +int color background_floating_material_dark 0x7f05001a +int color background_floating_material_light 0x7f05001b +int color background_material_dark 0x7f05001c +int color background_material_light 0x7f05001d +int color bright_foreground_disabled_material_dark 0x7f05001e +int color bright_foreground_disabled_material_light 0x7f05001f +int color bright_foreground_inverse_material_dark 0x7f050020 +int color bright_foreground_inverse_material_light 0x7f050021 +int color bright_foreground_material_dark 0x7f050022 +int color bright_foreground_material_light 0x7f050023 +int color button_material_dark 0x7f050024 +int color button_material_light 0x7f050025 +int color dim_foreground_disabled_material_dark 0x7f050026 +int color dim_foreground_disabled_material_light 0x7f050027 +int color dim_foreground_material_dark 0x7f050028 +int color dim_foreground_material_light 0x7f050029 +int color error_color_material_dark 0x7f05002a +int color error_color_material_light 0x7f05002b +int color foreground_material_dark 0x7f05002c +int color foreground_material_light 0x7f05002d +int color highlighted_text_material_dark 0x7f05002e +int color highlighted_text_material_light 0x7f05002f +int color material_blue_grey_800 0x7f050030 +int color material_blue_grey_900 0x7f050031 +int color material_blue_grey_950 0x7f050032 +int color material_deep_teal_200 0x7f050033 +int color material_deep_teal_500 0x7f050034 +int color material_grey_100 0x7f050035 +int color material_grey_300 0x7f050036 +int color material_grey_50 0x7f050037 +int color material_grey_600 0x7f050038 +int color material_grey_800 0x7f050039 +int color material_grey_850 0x7f05003a +int color material_grey_900 0x7f05003b +int color notification_action_color_filter 0x7f05003c +int color notification_icon_bg_color 0x7f05003d +int color primary_dark_material_dark 0x7f05003e +int color primary_dark_material_light 0x7f05003f +int color primary_material_dark 0x7f050040 +int color primary_material_light 0x7f050041 +int color primary_text_dark 0x7f050042 +int color primary_text_default_material_dark 0x7f050043 +int color primary_text_default_material_light 0x7f050044 +int color primary_text_disabled_material_dark 0x7f050045 +int color primary_text_disabled_material_light 0x7f050046 +int color ripple_material_dark 0x7f050047 +int color ripple_material_light 0x7f050048 +int color secondary_text_dark 0x7f050049 +int color secondary_text_default_material_dark 0x7f05004a +int color secondary_text_default_material_light 0x7f05004b +int color secondary_text_disabled_material_dark 0x7f05004c +int color secondary_text_disabled_material_light 0x7f05004d +int color switch_thumb_disabled_material_dark 0x7f05004e +int color switch_thumb_disabled_material_light 0x7f05004f +int color switch_thumb_material_dark 0x7f050050 +int color switch_thumb_material_light 0x7f050051 +int color switch_thumb_normal_material_dark 0x7f050052 +int color switch_thumb_normal_material_light 0x7f050053 +int color tooltip_background_dark 0x7f050054 +int color tooltip_background_light 0x7f050055 +int color user_query_highlight 0x7f050056 +int dimen abc_action_bar_content_inset_material 0x7f060000 +int dimen abc_action_bar_content_inset_with_nav 0x7f060001 +int dimen abc_action_bar_default_height_material 0x7f060002 +int dimen abc_action_bar_default_padding_end_material 0x7f060003 +int dimen abc_action_bar_default_padding_start_material 0x7f060004 +int dimen abc_action_bar_elevation_material 0x7f060005 +int dimen abc_action_bar_icon_vertical_padding_material 0x7f060006 +int dimen abc_action_bar_overflow_padding_end_material 0x7f060007 +int dimen abc_action_bar_overflow_padding_start_material 0x7f060008 +int dimen abc_action_bar_stacked_max_height 0x7f060009 +int dimen abc_action_bar_stacked_tab_max_width 0x7f06000a +int dimen abc_action_bar_subtitle_bottom_margin_material 0x7f06000b +int dimen abc_action_bar_subtitle_top_margin_material 0x7f06000c +int dimen abc_action_button_min_height_material 0x7f06000d +int dimen abc_action_button_min_width_material 0x7f06000e +int dimen abc_action_button_min_width_overflow_material 0x7f06000f +int dimen abc_alert_dialog_button_bar_height 0x7f060010 +int dimen abc_alert_dialog_button_dimen 0x7f060011 +int dimen abc_button_inset_horizontal_material 0x7f060012 +int dimen abc_button_inset_vertical_material 0x7f060013 +int dimen abc_button_padding_horizontal_material 0x7f060014 +int dimen abc_button_padding_vertical_material 0x7f060015 +int dimen abc_cascading_menus_min_smallest_width 0x7f060016 +int dimen abc_config_prefDialogWidth 0x7f060017 +int dimen abc_control_corner_material 0x7f060018 +int dimen abc_control_inset_material 0x7f060019 +int dimen abc_control_padding_material 0x7f06001a +int dimen abc_dialog_corner_radius_material 0x7f06001b +int dimen abc_dialog_fixed_height_major 0x7f06001c +int dimen abc_dialog_fixed_height_minor 0x7f06001d +int dimen abc_dialog_fixed_width_major 0x7f06001e +int dimen abc_dialog_fixed_width_minor 0x7f06001f +int dimen abc_dialog_list_padding_bottom_no_buttons 0x7f060020 +int dimen abc_dialog_list_padding_top_no_title 0x7f060021 +int dimen abc_dialog_min_width_major 0x7f060022 +int dimen abc_dialog_min_width_minor 0x7f060023 +int dimen abc_dialog_padding_material 0x7f060024 +int dimen abc_dialog_padding_top_material 0x7f060025 +int dimen abc_dialog_title_divider_material 0x7f060026 +int dimen abc_disabled_alpha_material_dark 0x7f060027 +int dimen abc_disabled_alpha_material_light 0x7f060028 +int dimen abc_dropdownitem_icon_width 0x7f060029 +int dimen abc_dropdownitem_text_padding_left 0x7f06002a +int dimen abc_dropdownitem_text_padding_right 0x7f06002b +int dimen abc_edit_text_inset_bottom_material 0x7f06002c +int dimen abc_edit_text_inset_horizontal_material 0x7f06002d +int dimen abc_edit_text_inset_top_material 0x7f06002e +int dimen abc_floating_window_z 0x7f06002f +int dimen abc_list_item_padding_horizontal_material 0x7f060030 +int dimen abc_panel_menu_list_width 0x7f060031 +int dimen abc_progress_bar_height_material 0x7f060032 +int dimen abc_search_view_preferred_height 0x7f060033 +int dimen abc_search_view_preferred_width 0x7f060034 +int dimen abc_seekbar_track_background_height_material 0x7f060035 +int dimen abc_seekbar_track_progress_height_material 0x7f060036 +int dimen abc_select_dialog_padding_start_material 0x7f060037 +int dimen abc_switch_padding 0x7f060038 +int dimen abc_text_size_body_1_material 0x7f060039 +int dimen abc_text_size_body_2_material 0x7f06003a +int dimen abc_text_size_button_material 0x7f06003b +int dimen abc_text_size_caption_material 0x7f06003c +int dimen abc_text_size_display_1_material 0x7f06003d +int dimen abc_text_size_display_2_material 0x7f06003e +int dimen abc_text_size_display_3_material 0x7f06003f +int dimen abc_text_size_display_4_material 0x7f060040 +int dimen abc_text_size_headline_material 0x7f060041 +int dimen abc_text_size_large_material 0x7f060042 +int dimen abc_text_size_medium_material 0x7f060043 +int dimen abc_text_size_menu_header_material 0x7f060044 +int dimen abc_text_size_menu_material 0x7f060045 +int dimen abc_text_size_small_material 0x7f060046 +int dimen abc_text_size_subhead_material 0x7f060047 +int dimen abc_text_size_subtitle_material_toolbar 0x7f060048 +int dimen abc_text_size_title_material 0x7f060049 +int dimen abc_text_size_title_material_toolbar 0x7f06004a +int dimen compat_button_inset_horizontal_material 0x7f06004b +int dimen compat_button_inset_vertical_material 0x7f06004c +int dimen compat_button_padding_horizontal_material 0x7f06004d +int dimen compat_button_padding_vertical_material 0x7f06004e +int dimen compat_control_corner_material 0x7f06004f +int dimen compat_notification_large_icon_max_height 0x7f060050 +int dimen compat_notification_large_icon_max_width 0x7f060051 +int dimen disabled_alpha_material_dark 0x7f060052 +int dimen disabled_alpha_material_light 0x7f060053 +int dimen highlight_alpha_material_colored 0x7f060054 +int dimen highlight_alpha_material_dark 0x7f060055 +int dimen highlight_alpha_material_light 0x7f060056 +int dimen hint_alpha_material_dark 0x7f060057 +int dimen hint_alpha_material_light 0x7f060058 +int dimen hint_pressed_alpha_material_dark 0x7f060059 +int dimen hint_pressed_alpha_material_light 0x7f06005a +int dimen notification_action_icon_size 0x7f06005b +int dimen notification_action_text_size 0x7f06005c +int dimen notification_big_circle_margin 0x7f06005d +int dimen notification_content_margin_start 0x7f06005e +int dimen notification_large_icon_height 0x7f06005f +int dimen notification_large_icon_width 0x7f060060 +int dimen notification_main_column_padding_top 0x7f060061 +int dimen notification_media_narrow_margin 0x7f060062 +int dimen notification_right_icon_size 0x7f060063 +int dimen notification_right_side_padding_top 0x7f060064 +int dimen notification_small_icon_background_padding 0x7f060065 +int dimen notification_small_icon_size_as_large 0x7f060066 +int dimen notification_subtext_size 0x7f060067 +int dimen notification_top_pad 0x7f060068 +int dimen notification_top_pad_large_text 0x7f060069 +int dimen text_font_size_large 0x7f06006a +int dimen text_font_size_medium 0x7f06006b +int dimen text_font_size_normal 0x7f06006c +int dimen text_font_size_small 0x7f06006d +int dimen text_font_size_super 0x7f06006e +int dimen tooltip_corner_radius 0x7f06006f +int dimen tooltip_horizontal_padding 0x7f060070 +int dimen tooltip_margin 0x7f060071 +int dimen tooltip_precise_anchor_extra_offset 0x7f060072 +int dimen tooltip_precise_anchor_threshold 0x7f060073 +int dimen tooltip_vertical_padding 0x7f060074 +int dimen tooltip_y_offset_non_touch 0x7f060075 +int dimen tooltip_y_offset_touch 0x7f060076 +int drawable abc_ab_share_pack_mtrl_alpha 0x7f070000 +int drawable abc_action_bar_item_background_material 0x7f070001 +int drawable abc_btn_borderless_material 0x7f070002 +int drawable abc_btn_check_material 0x7f070003 +int drawable abc_btn_check_to_on_mtrl_000 0x7f070004 +int drawable abc_btn_check_to_on_mtrl_015 0x7f070005 +int drawable abc_btn_colored_material 0x7f070006 +int drawable abc_btn_default_mtrl_shape 0x7f070007 +int drawable abc_btn_radio_material 0x7f070008 +int drawable abc_btn_radio_to_on_mtrl_000 0x7f070009 +int drawable abc_btn_radio_to_on_mtrl_015 0x7f07000a +int drawable abc_btn_switch_to_on_mtrl_00001 0x7f07000b +int drawable abc_btn_switch_to_on_mtrl_00012 0x7f07000c +int drawable abc_cab_background_internal_bg 0x7f07000d +int drawable abc_cab_background_top_material 0x7f07000e +int drawable abc_cab_background_top_mtrl_alpha 0x7f07000f +int drawable abc_control_background_material 0x7f070010 +int drawable abc_dialog_material_background 0x7f070011 +int drawable abc_edit_text_material 0x7f070012 +int drawable abc_ic_ab_back_material 0x7f070013 +int drawable abc_ic_arrow_drop_right_black_24dp 0x7f070014 +int drawable abc_ic_clear_material 0x7f070015 +int drawable abc_ic_commit_search_api_mtrl_alpha 0x7f070016 +int drawable abc_ic_go_search_api_material 0x7f070017 +int drawable abc_ic_menu_copy_mtrl_am_alpha 0x7f070018 +int drawable abc_ic_menu_cut_mtrl_alpha 0x7f070019 +int drawable abc_ic_menu_overflow_material 0x7f07001a +int drawable abc_ic_menu_paste_mtrl_am_alpha 0x7f07001b +int drawable abc_ic_menu_selectall_mtrl_alpha 0x7f07001c +int drawable abc_ic_menu_share_mtrl_alpha 0x7f07001d +int drawable abc_ic_search_api_material 0x7f07001e +int drawable abc_ic_star_black_16dp 0x7f07001f +int drawable abc_ic_star_black_36dp 0x7f070020 +int drawable abc_ic_star_black_48dp 0x7f070021 +int drawable abc_ic_star_half_black_16dp 0x7f070022 +int drawable abc_ic_star_half_black_36dp 0x7f070023 +int drawable abc_ic_star_half_black_48dp 0x7f070024 +int drawable abc_ic_voice_search_api_material 0x7f070025 +int drawable abc_item_background_holo_dark 0x7f070026 +int drawable abc_item_background_holo_light 0x7f070027 +int drawable abc_list_divider_material 0x7f070028 +int drawable abc_list_divider_mtrl_alpha 0x7f070029 +int drawable abc_list_focused_holo 0x7f07002a +int drawable abc_list_longpressed_holo 0x7f07002b +int drawable abc_list_pressed_holo_dark 0x7f07002c +int drawable abc_list_pressed_holo_light 0x7f07002d +int drawable abc_list_selector_background_transition_holo_dark 0x7f07002e +int drawable abc_list_selector_background_transition_holo_light 0x7f07002f +int drawable abc_list_selector_disabled_holo_dark 0x7f070030 +int drawable abc_list_selector_disabled_holo_light 0x7f070031 +int drawable abc_list_selector_holo_dark 0x7f070032 +int drawable abc_list_selector_holo_light 0x7f070033 +int drawable abc_menu_hardkey_panel_mtrl_mult 0x7f070034 +int drawable abc_popup_background_mtrl_mult 0x7f070035 +int drawable abc_ratingbar_indicator_material 0x7f070036 +int drawable abc_ratingbar_material 0x7f070037 +int drawable abc_ratingbar_small_material 0x7f070038 +int drawable abc_scrubber_control_off_mtrl_alpha 0x7f070039 +int drawable abc_scrubber_control_to_pressed_mtrl_000 0x7f07003a +int drawable abc_scrubber_control_to_pressed_mtrl_005 0x7f07003b +int drawable abc_scrubber_primary_mtrl_alpha 0x7f07003c +int drawable abc_scrubber_track_mtrl_alpha 0x7f07003d +int drawable abc_seekbar_thumb_material 0x7f07003e +int drawable abc_seekbar_tick_mark_material 0x7f07003f +int drawable abc_seekbar_track_material 0x7f070040 +int drawable abc_spinner_mtrl_am_alpha 0x7f070041 +int drawable abc_spinner_textfield_background_material 0x7f070042 +int drawable abc_switch_thumb_material 0x7f070043 +int drawable abc_switch_track_mtrl_alpha 0x7f070044 +int drawable abc_tab_indicator_material 0x7f070045 +int drawable abc_tab_indicator_mtrl_alpha 0x7f070046 +int drawable abc_text_cursor_material 0x7f070047 +int drawable abc_text_select_handle_left_mtrl_dark 0x7f070048 +int drawable abc_text_select_handle_left_mtrl_light 0x7f070049 +int drawable abc_text_select_handle_middle_mtrl_dark 0x7f07004a +int drawable abc_text_select_handle_middle_mtrl_light 0x7f07004b +int drawable abc_text_select_handle_right_mtrl_dark 0x7f07004c +int drawable abc_text_select_handle_right_mtrl_light 0x7f07004d +int drawable abc_textfield_activated_mtrl_alpha 0x7f07004e +int drawable abc_textfield_default_mtrl_alpha 0x7f07004f +int drawable abc_textfield_search_activated_mtrl_alpha 0x7f070050 +int drawable abc_textfield_search_default_mtrl_alpha 0x7f070051 +int drawable abc_textfield_search_material 0x7f070052 +int drawable abc_vector_test 0x7f070053 +int drawable bg_btn_set_color 0x7f070054 +int drawable bg_color_btn_mask 0x7f070055 +int drawable call_record 0x7f070056 +int drawable clock 0x7f070057 +int drawable delete 0x7f070058 +int drawable dropdown_icon 0x7f070059 +int drawable edit_blue 0x7f07005a +int drawable edit_green 0x7f07005b +int drawable edit_red 0x7f07005c +int drawable edit_title_blue 0x7f07005d +int drawable edit_title_green 0x7f07005e +int drawable edit_title_red 0x7f07005f +int drawable edit_title_white 0x7f070060 +int drawable edit_title_yellow 0x7f070061 +int drawable edit_white 0x7f070062 +int drawable edit_yellow 0x7f070063 +int drawable font_large 0x7f070064 +int drawable font_normal 0x7f070065 +int drawable font_size_selector_bg 0x7f070066 +int drawable font_small 0x7f070067 +int drawable font_super 0x7f070068 +int drawable icon_app 0x7f070069 +int drawable list_background 0x7f07006a +int drawable list_blue_down 0x7f07006b +int drawable list_blue_middle 0x7f07006c +int drawable list_blue_single 0x7f07006d +int drawable list_blue_up 0x7f07006e +int drawable list_folder 0x7f07006f +int drawable list_footer_bg 0x7f070070 +int drawable list_green_down 0x7f070071 +int drawable list_green_middle 0x7f070072 +int drawable list_green_single 0x7f070073 +int drawable list_green_up 0x7f070074 +int drawable list_red_down 0x7f070075 +int drawable list_red_middle 0x7f070076 +int drawable list_red_single 0x7f070077 +int drawable list_red_up 0x7f070078 +int drawable list_white_down 0x7f070079 +int drawable list_white_middle 0x7f07007a +int drawable list_white_single 0x7f07007b +int drawable list_white_up 0x7f07007c +int drawable list_yellow_down 0x7f07007d +int drawable list_yellow_middle 0x7f07007e +int drawable list_yellow_single 0x7f07007f +int drawable list_yellow_up 0x7f070080 +int drawable menu_delete 0x7f070081 +int drawable menu_move 0x7f070082 +int drawable new_note 0x7f070083 +int drawable new_note_normal 0x7f070084 +int drawable new_note_pressed 0x7f070085 +int drawable note_edit_color_selector_panel 0x7f070086 +int drawable notification 0x7f070087 +int drawable notification_action_background 0x7f070088 +int drawable notification_bg 0x7f070089 +int drawable notification_bg_low 0x7f07008a +int drawable notification_bg_low_normal 0x7f07008b +int drawable notification_bg_low_pressed 0x7f07008c +int drawable notification_bg_normal 0x7f07008d +int drawable notification_bg_normal_pressed 0x7f07008e +int drawable notification_icon_background 0x7f07008f +int drawable notification_template_icon_bg 0x7f070090 +int drawable notification_template_icon_low_bg 0x7f070091 +int drawable notification_tile_bg 0x7f070092 +int drawable notify_panel_notification_icon_bg 0x7f070093 +int drawable search_result 0x7f070094 +int drawable selected 0x7f070095 +int drawable title_alert 0x7f070096 +int drawable title_bar_bg 0x7f070097 +int drawable tooltip_frame_dark 0x7f070098 +int drawable tooltip_frame_light 0x7f070099 +int drawable widget_2x_blue 0x7f07009a +int drawable widget_2x_green 0x7f07009b +int drawable widget_2x_red 0x7f07009c +int drawable widget_2x_white 0x7f07009d +int drawable widget_2x_yellow 0x7f07009e +int drawable widget_4x_blue 0x7f07009f +int drawable widget_4x_green 0x7f0700a0 +int drawable widget_4x_red 0x7f0700a1 +int drawable widget_4x_white 0x7f0700a2 +int drawable widget_4x_yellow 0x7f0700a3 +int id ALT 0x7f080000 +int id CTRL 0x7f080001 +int id FUNCTION 0x7f080002 +int id META 0x7f080003 +int id SHIFT 0x7f080004 +int id SYM 0x7f080005 +int id account_dialog_subtitle 0x7f080006 +int id account_dialog_title 0x7f080007 +int id action_bar 0x7f080008 +int id action_bar_activity_content 0x7f080009 +int id action_bar_container 0x7f08000a +int id action_bar_root 0x7f08000b +int id action_bar_spinner 0x7f08000c +int id action_bar_subtitle 0x7f08000d +int id action_bar_title 0x7f08000e +int id action_container 0x7f08000f +int id action_context_bar 0x7f080010 +int id action_divider 0x7f080011 +int id action_image 0x7f080012 +int id action_menu_divider 0x7f080013 +int id action_menu_presenter 0x7f080014 +int id action_mode_bar 0x7f080015 +int id action_mode_bar_stub 0x7f080016 +int id action_mode_close_button 0x7f080017 +int id action_select_all 0x7f080018 +int id action_text 0x7f080019 +int id actions 0x7f08001a +int id activity_chooser_view_content 0x7f08001b +int id add 0x7f08001c +int id add_img_btn 0x7f08001d +int id alertTitle 0x7f08001e +int id all 0x7f08001f +int id always 0x7f080020 +int id amPm 0x7f080021 +int id async 0x7f080022 +int id beginning 0x7f080023 +int id blocking 0x7f080024 +int id bottom 0x7f080025 +int id btn_new_note 0x7f080026 +int id btn_set_bg_color 0x7f080027 +int id buttonPanel 0x7f080028 +int id cb_edit_item 0x7f080029 +int id center 0x7f08002a +int id center_horizontal 0x7f08002b +int id center_vertical 0x7f08002c +int id checkbox 0x7f08002d +int id chronometer 0x7f08002e +int id clip_horizontal 0x7f08002f +int id clip_vertical 0x7f080030 +int id collapseActionView 0x7f080031 +int id content 0x7f080032 +int id contentPanel 0x7f080033 +int id custom 0x7f080034 +int id customPanel 0x7f080035 +int id date 0x7f080036 +int id decor_content_parent 0x7f080037 +int id default_activity_button 0x7f080038 +int id delete 0x7f080039 +int id disableHome 0x7f08003a +int id edit_query 0x7f08003b +int id end 0x7f08003c +int id et_edit_text 0x7f08003d +int id et_foler_name 0x7f08003e +int id expand_activities_button 0x7f08003f +int id expanded_menu 0x7f080040 +int id fill 0x7f080041 +int id fill_horizontal 0x7f080042 +int id fill_vertical 0x7f080043 +int id font_size_selector 0x7f080044 +int id forever 0x7f080045 +int id group_divider 0x7f080046 +int id home 0x7f080047 +int id homeAsUp 0x7f080048 +int id hour 0x7f080049 +int id icon 0x7f08004a +int id icon_group 0x7f08004b +int id ifRoom 0x7f08004c +int id image 0x7f08004d +int id info 0x7f08004e +int id italic 0x7f08004f +int id iv_alert_icon 0x7f080050 +int id iv_bg_blue 0x7f080051 +int id iv_bg_blue_select 0x7f080052 +int id iv_bg_green 0x7f080053 +int id iv_bg_green_select 0x7f080054 +int id iv_bg_red 0x7f080055 +int id iv_bg_red_select 0x7f080056 +int id iv_bg_white 0x7f080057 +int id iv_bg_white_select 0x7f080058 +int id iv_bg_yellow 0x7f080059 +int id iv_bg_yellow_select 0x7f08005a +int id iv_large_select 0x7f08005b +int id iv_medium_select 0x7f08005c +int id iv_small_select 0x7f08005d +int id iv_super_select 0x7f08005e +int id left 0x7f08005f +int id line1 0x7f080060 +int id line3 0x7f080061 +int id listMode 0x7f080062 +int id list_item 0x7f080063 +int id ll_font_large 0x7f080064 +int id ll_font_normal 0x7f080065 +int id ll_font_small 0x7f080066 +int id ll_font_super 0x7f080067 +int id menu_alert 0x7f080068 +int id menu_delete 0x7f080069 +int id menu_delete_remind 0x7f08006a +int id menu_export_text 0x7f08006b +int id menu_font_size 0x7f08006c +int id menu_list_mode 0x7f08006d +int id menu_new_folder 0x7f08006e +int id menu_new_note 0x7f08006f +int id menu_search 0x7f080070 +int id menu_send_to_desktop 0x7f080071 +int id menu_setting 0x7f080072 +int id menu_share 0x7f080073 +int id menu_sync 0x7f080074 +int id message 0x7f080075 +int id middle 0x7f080076 +int id minute 0x7f080077 +int id move 0x7f080078 +int id multiply 0x7f080079 +int id navigation_bar 0x7f08007a +int id never 0x7f08007b +int id none 0x7f08007c +int id normal 0x7f08007d +int id note_bg_color_selector 0x7f08007e +int id note_edit_list 0x7f08007f +int id note_edit_view 0x7f080080 +int id note_item 0x7f080081 +int id note_title 0x7f080082 +int id notes_list 0x7f080083 +int id notification_background 0x7f080084 +int id notification_main_column 0x7f080085 +int id notification_main_column_container 0x7f080086 +int id parentPanel 0x7f080087 +int id prefenerece_sync_status_textview 0x7f080088 +int id preference_sync_button 0x7f080089 +int id progress_circular 0x7f08008a +int id progress_horizontal 0x7f08008b +int id radio 0x7f08008c +int id right 0x7f08008d +int id right_icon 0x7f08008e +int id right_side 0x7f08008f +int id screen 0x7f080090 +int id scrollIndicatorDown 0x7f080091 +int id scrollIndicatorUp 0x7f080092 +int id scrollView 0x7f080093 +int id search_badge 0x7f080094 +int id search_bar 0x7f080095 +int id search_button 0x7f080096 +int id search_close_btn 0x7f080097 +int id search_edit_frame 0x7f080098 +int id search_go_btn 0x7f080099 +int id search_mag_icon 0x7f08009a +int id search_plate 0x7f08009b +int id search_src_text 0x7f08009c +int id search_voice_btn 0x7f08009d +int id select_dialog_listview 0x7f08009e +int id selection_menu 0x7f08009f +int id shortcut 0x7f0800a0 +int id showCustom 0x7f0800a1 +int id showHome 0x7f0800a2 +int id showTitle 0x7f0800a3 +int id spacer 0x7f0800a4 +int id split_action_bar 0x7f0800a5 +int id src_atop 0x7f0800a6 +int id src_in 0x7f0800a7 +int id src_over 0x7f0800a8 +int id start 0x7f0800a9 +int id submenuarrow 0x7f0800aa +int id submit_area 0x7f0800ab +int id sv_note_edit 0x7f0800ac +int id tabMode 0x7f0800ad +int id tag_transition_group 0x7f0800ae +int id tag_unhandled_key_event_manager 0x7f0800af +int id tag_unhandled_key_listeners 0x7f0800b0 +int id text 0x7f0800b1 +int id text2 0x7f0800b2 +int id textSpacerNoButtons 0x7f0800b3 +int id textSpacerNoTitle 0x7f0800b4 +int id time 0x7f0800b5 +int id title 0x7f0800b6 +int id titleDividerNoCustom 0x7f0800b7 +int id title_template 0x7f0800b8 +int id top 0x7f0800b9 +int id topPanel 0x7f0800ba +int id tv_alert_date 0x7f0800bb +int id tv_folder_name 0x7f0800bc +int id tv_modified_date 0x7f0800bd +int id tv_name 0x7f0800be +int id tv_time 0x7f0800bf +int id tv_title 0x7f0800c0 +int id tv_title_bar 0x7f0800c1 +int id uniform 0x7f0800c2 +int id up 0x7f0800c3 +int id useLogo 0x7f0800c4 +int id widget_bg_image 0x7f0800c5 +int id widget_text 0x7f0800c6 +int id withText 0x7f0800c7 +int id wrap_content 0x7f0800c8 +int integer abc_config_activityDefaultDur 0x7f090000 +int integer abc_config_activityShortDur 0x7f090001 +int integer cancel_button_image_alpha 0x7f090002 +int integer config_tooltipAnimTime 0x7f090003 +int integer status_bar_notification_info_maxnum 0x7f090004 +int layout abc_action_bar_title_item 0x7f0a0000 +int layout abc_action_bar_up_container 0x7f0a0001 +int layout abc_action_menu_item_layout 0x7f0a0002 +int layout abc_action_menu_layout 0x7f0a0003 +int layout abc_action_mode_bar 0x7f0a0004 +int layout abc_action_mode_close_item_material 0x7f0a0005 +int layout abc_activity_chooser_view 0x7f0a0006 +int layout abc_activity_chooser_view_list_item 0x7f0a0007 +int layout abc_alert_dialog_button_bar_material 0x7f0a0008 +int layout abc_alert_dialog_material 0x7f0a0009 +int layout abc_alert_dialog_title_material 0x7f0a000a +int layout abc_cascading_menu_item_layout 0x7f0a000b +int layout abc_dialog_title_material 0x7f0a000c +int layout abc_expanded_menu_layout 0x7f0a000d +int layout abc_list_menu_item_checkbox 0x7f0a000e +int layout abc_list_menu_item_icon 0x7f0a000f +int layout abc_list_menu_item_layout 0x7f0a0010 +int layout abc_list_menu_item_radio 0x7f0a0011 +int layout abc_popup_menu_header_item_layout 0x7f0a0012 +int layout abc_popup_menu_item_layout 0x7f0a0013 +int layout abc_screen_content_include 0x7f0a0014 +int layout abc_screen_simple 0x7f0a0015 +int layout abc_screen_simple_overlay_action_mode 0x7f0a0016 +int layout abc_screen_toolbar 0x7f0a0017 +int layout abc_search_dropdown_item_icons_2line 0x7f0a0018 +int layout abc_search_view 0x7f0a0019 +int layout abc_select_dialog_material 0x7f0a001a +int layout abc_tooltip 0x7f0a001b +int layout account_dialog_title 0x7f0a001c +int layout add_account_text 0x7f0a001d +int layout datetime_picker 0x7f0a001e +int layout dialog_edit_text 0x7f0a001f +int layout folder_list_item 0x7f0a0020 +int layout note_edit 0x7f0a0021 +int layout note_edit_list_item 0x7f0a0022 +int layout note_item 0x7f0a0023 +int layout note_list 0x7f0a0024 +int layout note_list_dropdown_menu 0x7f0a0025 +int layout note_list_footer 0x7f0a0026 +int layout notification_action 0x7f0a0027 +int layout notification_action_tombstone 0x7f0a0028 +int layout notification_template_custom_big 0x7f0a0029 +int layout notification_template_icon_group 0x7f0a002a +int layout notification_template_part_chronometer 0x7f0a002b +int layout notification_template_part_time 0x7f0a002c +int layout select_dialog_item_material 0x7f0a002d +int layout select_dialog_multichoice_material 0x7f0a002e +int layout select_dialog_singlechoice_material 0x7f0a002f +int layout settings_header 0x7f0a0030 +int layout support_simple_spinner_dropdown_item 0x7f0a0031 +int layout widget_2x 0x7f0a0032 +int layout widget_4x 0x7f0a0033 +int menu call_note_edit 0x7f0b0000 +int menu call_record_folder 0x7f0b0001 +int menu note_edit 0x7f0b0002 +int menu note_list 0x7f0b0003 +int menu note_list_dropdown 0x7f0b0004 +int menu note_list_options 0x7f0b0005 +int menu sub_folder 0x7f0b0006 +int plurals search_results_title 0x7f0c0000 +int raw introduction 0x7f0d0000 +int string abc_action_bar_home_description 0x7f0e0000 +int string abc_action_bar_up_description 0x7f0e0001 +int string abc_action_menu_overflow_description 0x7f0e0002 +int string abc_action_mode_done 0x7f0e0003 +int string abc_activity_chooser_view_see_all 0x7f0e0004 +int string abc_activitychooserview_choose_application 0x7f0e0005 +int string abc_capital_off 0x7f0e0006 +int string abc_capital_on 0x7f0e0007 +int string abc_font_family_body_1_material 0x7f0e0008 +int string abc_font_family_body_2_material 0x7f0e0009 +int string abc_font_family_button_material 0x7f0e000a +int string abc_font_family_caption_material 0x7f0e000b +int string abc_font_family_display_1_material 0x7f0e000c +int string abc_font_family_display_2_material 0x7f0e000d +int string abc_font_family_display_3_material 0x7f0e000e +int string abc_font_family_display_4_material 0x7f0e000f +int string abc_font_family_headline_material 0x7f0e0010 +int string abc_font_family_menu_material 0x7f0e0011 +int string abc_font_family_subhead_material 0x7f0e0012 +int string abc_font_family_title_material 0x7f0e0013 +int string abc_menu_alt_shortcut_label 0x7f0e0014 +int string abc_menu_ctrl_shortcut_label 0x7f0e0015 +int string abc_menu_delete_shortcut_label 0x7f0e0016 +int string abc_menu_enter_shortcut_label 0x7f0e0017 +int string abc_menu_function_shortcut_label 0x7f0e0018 +int string abc_menu_meta_shortcut_label 0x7f0e0019 +int string abc_menu_shift_shortcut_label 0x7f0e001a +int string abc_menu_space_shortcut_label 0x7f0e001b +int string abc_menu_sym_shortcut_label 0x7f0e001c +int string abc_prepend_shortcut_label 0x7f0e001d +int string abc_search_hint 0x7f0e001e +int string abc_searchview_description_clear 0x7f0e001f +int string abc_searchview_description_query 0x7f0e0020 +int string abc_searchview_description_search 0x7f0e0021 +int string abc_searchview_description_submit 0x7f0e0022 +int string abc_searchview_description_voice 0x7f0e0023 +int string abc_shareactionprovider_share_with 0x7f0e0024 +int string abc_shareactionprovider_share_with_application 0x7f0e0025 +int string abc_toolbar_collapse_description 0x7f0e0026 +int string alert_message_delete_folder 0x7f0e0027 +int string alert_message_delete_note 0x7f0e0028 +int string alert_message_delete_notes 0x7f0e0029 +int string alert_title_delete 0x7f0e002a +int string app_name 0x7f0e002b +int string app_widget2x2 0x7f0e002c +int string app_widget4x4 0x7f0e002d +int string button_delete 0x7f0e002e +int string call_record_folder_name 0x7f0e002f +int string datetime_dialog_cancel 0x7f0e0030 +int string datetime_dialog_ok 0x7f0e0031 +int string delete_remind_time_message 0x7f0e0032 +int string error_note_empty_for_clock 0x7f0e0033 +int string error_note_empty_for_send_to_desktop 0x7f0e0034 +int string error_note_not_exist 0x7f0e0035 +int string error_sdcard_export 0x7f0e0036 +int string error_sdcard_unmounted 0x7f0e0037 +int string error_sync_cancelled 0x7f0e0038 +int string error_sync_internal 0x7f0e0039 +int string error_sync_network 0x7f0e003a +int string failed_sdcard_export 0x7f0e003b +int string file_name_txt_format 0x7f0e003c +int string file_path 0x7f0e003d +int string folder_exist 0x7f0e003e +int string format_date_ymd 0x7f0e003f +int string format_datetime_mdhm 0x7f0e0040 +int string format_exported_file_location 0x7f0e0041 +int string format_folder_files_count 0x7f0e0042 +int string format_move_notes_to_folder 0x7f0e0043 +int string hint_foler_name 0x7f0e0044 +int string info_note_enter_desktop 0x7f0e0045 +int string menu_alert 0x7f0e0046 +int string menu_create_folder 0x7f0e0047 +int string menu_delete 0x7f0e0048 +int string menu_deselect_all 0x7f0e0049 +int string menu_export_text 0x7f0e004a +int string menu_folder_change_name 0x7f0e004b +int string menu_folder_delete 0x7f0e004c +int string menu_folder_view 0x7f0e004d +int string menu_font_large 0x7f0e004e +int string menu_font_normal 0x7f0e004f +int string menu_font_size 0x7f0e0050 +int string menu_font_small 0x7f0e0051 +int string menu_font_super 0x7f0e0052 +int string menu_list_mode 0x7f0e0053 +int string menu_move 0x7f0e0054 +int string menu_move_parent_folder 0x7f0e0055 +int string menu_normal_mode 0x7f0e0056 +int string menu_remove_remind 0x7f0e0057 +int string menu_search 0x7f0e0058 +int string menu_select_all 0x7f0e0059 +int string menu_select_none 0x7f0e005a +int string menu_select_title 0x7f0e005b +int string menu_send_to_desktop 0x7f0e005c +int string menu_setting 0x7f0e005d +int string menu_share 0x7f0e005e +int string menu_sync 0x7f0e005f +int string menu_sync_cancel 0x7f0e0060 +int string menu_title_select_folder 0x7f0e0061 +int string note_alert_expired 0x7f0e0062 +int string note_link_email 0x7f0e0063 +int string note_link_other 0x7f0e0064 +int string note_link_tel 0x7f0e0065 +int string note_link_web 0x7f0e0066 +int string notealert_enter 0x7f0e0067 +int string notealert_ok 0x7f0e0068 +int string notelist_menu_new 0x7f0e0069 +int string notelist_string_info 0x7f0e006a +int string preferences_account_summary 0x7f0e006b +int string preferences_account_title 0x7f0e006c +int string preferences_add_account 0x7f0e006d +int string preferences_bg_random_appear_title 0x7f0e006e +int string preferences_button_sync_cancel 0x7f0e006f +int string preferences_button_sync_immediately 0x7f0e0070 +int string preferences_dialog_change_account_title 0x7f0e0071 +int string preferences_dialog_change_account_warn_msg 0x7f0e0072 +int string preferences_dialog_select_account_tips 0x7f0e0073 +int string preferences_dialog_select_account_title 0x7f0e0074 +int string preferences_last_sync_time 0x7f0e0075 +int string preferences_last_sync_time_format 0x7f0e0076 +int string preferences_menu_cancel 0x7f0e0077 +int string preferences_menu_change_account 0x7f0e0078 +int string preferences_menu_remove_account 0x7f0e0079 +int string preferences_title 0x7f0e007a +int string preferences_toast_cannot_change_account 0x7f0e007b +int string preferences_toast_success_set_accout 0x7f0e007c +int string search 0x7f0e007d +int string search_hint 0x7f0e007e +int string search_label 0x7f0e007f +int string search_menu_title 0x7f0e0080 +int string search_setting_description 0x7f0e0081 +int string set_remind_time_message 0x7f0e0082 +int string status_bar_notification_info_overflow 0x7f0e0083 +int string success_sdcard_export 0x7f0e0084 +int string success_sync_account 0x7f0e0085 +int string sync_progress_init_list 0x7f0e0086 +int string sync_progress_login 0x7f0e0087 +int string sync_progress_syncing 0x7f0e0088 +int string ticker_cancel 0x7f0e0089 +int string ticker_fail 0x7f0e008a +int string ticker_success 0x7f0e008b +int string ticker_syncing 0x7f0e008c +int string widget_havenot_content 0x7f0e008d +int string widget_under_visit_mode 0x7f0e008e +int style AlertDialog_AppCompat 0x7f0f0000 +int style AlertDialog_AppCompat_Light 0x7f0f0001 +int style Animation_AppCompat_Dialog 0x7f0f0002 +int style Animation_AppCompat_DropDownUp 0x7f0f0003 +int style Animation_AppCompat_Tooltip 0x7f0f0004 +int style Base_AlertDialog_AppCompat 0x7f0f0005 +int style Base_AlertDialog_AppCompat_Light 0x7f0f0006 +int style Base_Animation_AppCompat_Dialog 0x7f0f0007 +int style Base_Animation_AppCompat_DropDownUp 0x7f0f0008 +int style Base_Animation_AppCompat_Tooltip 0x7f0f0009 +int style Base_DialogWindowTitle_AppCompat 0x7f0f000a +int style Base_DialogWindowTitleBackground_AppCompat 0x7f0f000b +int style Base_TextAppearance_AppCompat 0x7f0f000c +int style Base_TextAppearance_AppCompat_Body1 0x7f0f000d +int style Base_TextAppearance_AppCompat_Body2 0x7f0f000e +int style Base_TextAppearance_AppCompat_Button 0x7f0f000f +int style Base_TextAppearance_AppCompat_Caption 0x7f0f0010 +int style Base_TextAppearance_AppCompat_Display1 0x7f0f0011 +int style Base_TextAppearance_AppCompat_Display2 0x7f0f0012 +int style Base_TextAppearance_AppCompat_Display3 0x7f0f0013 +int style Base_TextAppearance_AppCompat_Display4 0x7f0f0014 +int style Base_TextAppearance_AppCompat_Headline 0x7f0f0015 +int style Base_TextAppearance_AppCompat_Inverse 0x7f0f0016 +int style Base_TextAppearance_AppCompat_Large 0x7f0f0017 +int style Base_TextAppearance_AppCompat_Large_Inverse 0x7f0f0018 +int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0f0019 +int style Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0f001a +int style Base_TextAppearance_AppCompat_Medium 0x7f0f001b +int style Base_TextAppearance_AppCompat_Medium_Inverse 0x7f0f001c +int style Base_TextAppearance_AppCompat_Menu 0x7f0f001d +int style Base_TextAppearance_AppCompat_SearchResult 0x7f0f001e +int style Base_TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0f001f +int style Base_TextAppearance_AppCompat_SearchResult_Title 0x7f0f0020 +int style Base_TextAppearance_AppCompat_Small 0x7f0f0021 +int style Base_TextAppearance_AppCompat_Small_Inverse 0x7f0f0022 +int style Base_TextAppearance_AppCompat_Subhead 0x7f0f0023 +int style Base_TextAppearance_AppCompat_Subhead_Inverse 0x7f0f0024 +int style Base_TextAppearance_AppCompat_Title 0x7f0f0025 +int style Base_TextAppearance_AppCompat_Title_Inverse 0x7f0f0026 +int style Base_TextAppearance_AppCompat_Tooltip 0x7f0f0027 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0f0028 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0f0029 +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0f002a +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0f002b +int style Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0f002c +int style Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0f002d +int style Base_TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0f002e +int style Base_TextAppearance_AppCompat_Widget_Button 0x7f0f002f +int style Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x7f0f0030 +int style Base_TextAppearance_AppCompat_Widget_Button_Colored 0x7f0f0031 +int style Base_TextAppearance_AppCompat_Widget_Button_Inverse 0x7f0f0032 +int style Base_TextAppearance_AppCompat_Widget_DropDownItem 0x7f0f0033 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Header 0x7f0f0034 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0f0035 +int style Base_TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0f0036 +int style Base_TextAppearance_AppCompat_Widget_Switch 0x7f0f0037 +int style Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x7f0f0038 +int style Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0f0039 +int style Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x7f0f003a +int style Base_TextAppearance_Widget_AppCompat_Toolbar_Title 0x7f0f003b +int style Base_Theme_AppCompat 0x7f0f003c +int style Base_Theme_AppCompat_CompactMenu 0x7f0f003d +int style Base_Theme_AppCompat_Dialog 0x7f0f003e +int style Base_Theme_AppCompat_Dialog_Alert 0x7f0f003f +int style Base_Theme_AppCompat_Dialog_FixedSize 0x7f0f0040 +int style Base_Theme_AppCompat_Dialog_MinWidth 0x7f0f0041 +int style Base_Theme_AppCompat_DialogWhenLarge 0x7f0f0042 +int style Base_Theme_AppCompat_Light 0x7f0f0043 +int style Base_Theme_AppCompat_Light_DarkActionBar 0x7f0f0044 +int style Base_Theme_AppCompat_Light_Dialog 0x7f0f0045 +int style Base_Theme_AppCompat_Light_Dialog_Alert 0x7f0f0046 +int style Base_Theme_AppCompat_Light_Dialog_FixedSize 0x7f0f0047 +int style Base_Theme_AppCompat_Light_Dialog_MinWidth 0x7f0f0048 +int style Base_Theme_AppCompat_Light_DialogWhenLarge 0x7f0f0049 +int style Base_ThemeOverlay_AppCompat 0x7f0f004a +int style Base_ThemeOverlay_AppCompat_ActionBar 0x7f0f004b +int style Base_ThemeOverlay_AppCompat_Dark 0x7f0f004c +int style Base_ThemeOverlay_AppCompat_Dark_ActionBar 0x7f0f004d +int style Base_ThemeOverlay_AppCompat_Dialog 0x7f0f004e +int style Base_ThemeOverlay_AppCompat_Dialog_Alert 0x7f0f004f +int style Base_ThemeOverlay_AppCompat_Light 0x7f0f0050 +int style Base_V21_Theme_AppCompat 0x7f0f0051 +int style Base_V21_Theme_AppCompat_Dialog 0x7f0f0052 +int style Base_V21_Theme_AppCompat_Light 0x7f0f0053 +int style Base_V21_Theme_AppCompat_Light_Dialog 0x7f0f0054 +int style Base_V21_ThemeOverlay_AppCompat_Dialog 0x7f0f0055 +int style Base_V22_Theme_AppCompat 0x7f0f0056 +int style Base_V22_Theme_AppCompat_Light 0x7f0f0057 +int style Base_V23_Theme_AppCompat 0x7f0f0058 +int style Base_V23_Theme_AppCompat_Light 0x7f0f0059 +int style Base_V26_Theme_AppCompat 0x7f0f005a +int style Base_V26_Theme_AppCompat_Light 0x7f0f005b +int style Base_V26_Widget_AppCompat_Toolbar 0x7f0f005c +int style Base_V28_Theme_AppCompat 0x7f0f005d +int style Base_V28_Theme_AppCompat_Light 0x7f0f005e +int style Base_V7_Theme_AppCompat 0x7f0f005f +int style Base_V7_Theme_AppCompat_Dialog 0x7f0f0060 +int style Base_V7_Theme_AppCompat_Light 0x7f0f0061 +int style Base_V7_Theme_AppCompat_Light_Dialog 0x7f0f0062 +int style Base_V7_ThemeOverlay_AppCompat_Dialog 0x7f0f0063 +int style Base_V7_Widget_AppCompat_AutoCompleteTextView 0x7f0f0064 +int style Base_V7_Widget_AppCompat_EditText 0x7f0f0065 +int style Base_V7_Widget_AppCompat_Toolbar 0x7f0f0066 +int style Base_Widget_AppCompat_ActionBar 0x7f0f0067 +int style Base_Widget_AppCompat_ActionBar_Solid 0x7f0f0068 +int style Base_Widget_AppCompat_ActionBar_TabBar 0x7f0f0069 +int style Base_Widget_AppCompat_ActionBar_TabText 0x7f0f006a +int style Base_Widget_AppCompat_ActionBar_TabView 0x7f0f006b +int style Base_Widget_AppCompat_ActionButton 0x7f0f006c +int style Base_Widget_AppCompat_ActionButton_CloseMode 0x7f0f006d +int style Base_Widget_AppCompat_ActionButton_Overflow 0x7f0f006e +int style Base_Widget_AppCompat_ActionMode 0x7f0f006f +int style Base_Widget_AppCompat_ActivityChooserView 0x7f0f0070 +int style Base_Widget_AppCompat_AutoCompleteTextView 0x7f0f0071 +int style Base_Widget_AppCompat_Button 0x7f0f0072 +int style Base_Widget_AppCompat_Button_Borderless 0x7f0f0073 +int style Base_Widget_AppCompat_Button_Borderless_Colored 0x7f0f0074 +int style Base_Widget_AppCompat_Button_ButtonBar_AlertDialog 0x7f0f0075 +int style Base_Widget_AppCompat_Button_Colored 0x7f0f0076 +int style Base_Widget_AppCompat_Button_Small 0x7f0f0077 +int style Base_Widget_AppCompat_ButtonBar 0x7f0f0078 +int style Base_Widget_AppCompat_ButtonBar_AlertDialog 0x7f0f0079 +int style Base_Widget_AppCompat_CompoundButton_CheckBox 0x7f0f007a +int style Base_Widget_AppCompat_CompoundButton_RadioButton 0x7f0f007b +int style Base_Widget_AppCompat_CompoundButton_Switch 0x7f0f007c +int style Base_Widget_AppCompat_DrawerArrowToggle 0x7f0f007d +int style Base_Widget_AppCompat_DrawerArrowToggle_Common 0x7f0f007e +int style Base_Widget_AppCompat_DropDownItem_Spinner 0x7f0f007f +int style Base_Widget_AppCompat_EditText 0x7f0f0080 +int style Base_Widget_AppCompat_ImageButton 0x7f0f0081 +int style Base_Widget_AppCompat_Light_ActionBar 0x7f0f0082 +int style Base_Widget_AppCompat_Light_ActionBar_Solid 0x7f0f0083 +int style Base_Widget_AppCompat_Light_ActionBar_TabBar 0x7f0f0084 +int style Base_Widget_AppCompat_Light_ActionBar_TabText 0x7f0f0085 +int style Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0f0086 +int style Base_Widget_AppCompat_Light_ActionBar_TabView 0x7f0f0087 +int style Base_Widget_AppCompat_Light_PopupMenu 0x7f0f0088 +int style Base_Widget_AppCompat_Light_PopupMenu_Overflow 0x7f0f0089 +int style Base_Widget_AppCompat_ListMenuView 0x7f0f008a +int style Base_Widget_AppCompat_ListPopupWindow 0x7f0f008b +int style Base_Widget_AppCompat_ListView 0x7f0f008c +int style Base_Widget_AppCompat_ListView_DropDown 0x7f0f008d +int style Base_Widget_AppCompat_ListView_Menu 0x7f0f008e +int style Base_Widget_AppCompat_PopupMenu 0x7f0f008f +int style Base_Widget_AppCompat_PopupMenu_Overflow 0x7f0f0090 +int style Base_Widget_AppCompat_PopupWindow 0x7f0f0091 +int style Base_Widget_AppCompat_ProgressBar 0x7f0f0092 +int style Base_Widget_AppCompat_ProgressBar_Horizontal 0x7f0f0093 +int style Base_Widget_AppCompat_RatingBar 0x7f0f0094 +int style Base_Widget_AppCompat_RatingBar_Indicator 0x7f0f0095 +int style Base_Widget_AppCompat_RatingBar_Small 0x7f0f0096 +int style Base_Widget_AppCompat_SearchView 0x7f0f0097 +int style Base_Widget_AppCompat_SearchView_ActionBar 0x7f0f0098 +int style Base_Widget_AppCompat_SeekBar 0x7f0f0099 +int style Base_Widget_AppCompat_SeekBar_Discrete 0x7f0f009a +int style Base_Widget_AppCompat_Spinner 0x7f0f009b +int style Base_Widget_AppCompat_Spinner_Underlined 0x7f0f009c +int style Base_Widget_AppCompat_TextView_SpinnerItem 0x7f0f009d +int style Base_Widget_AppCompat_Toolbar 0x7f0f009e +int style Base_Widget_AppCompat_Toolbar_Button_Navigation 0x7f0f009f +int style HighlightTextAppearancePrimary 0x7f0f00a0 +int style HighlightTextAppearanceSecondary 0x7f0f00a1 +int style NoteActionBarStyle 0x7f0f00a2 +int style NoteTheme 0x7f0f00a3 +int style Platform_AppCompat 0x7f0f00a4 +int style Platform_AppCompat_Light 0x7f0f00a5 +int style Platform_ThemeOverlay_AppCompat 0x7f0f00a6 +int style Platform_ThemeOverlay_AppCompat_Dark 0x7f0f00a7 +int style Platform_ThemeOverlay_AppCompat_Light 0x7f0f00a8 +int style Platform_V21_AppCompat 0x7f0f00a9 +int style Platform_V21_AppCompat_Light 0x7f0f00aa +int style Platform_V25_AppCompat 0x7f0f00ab +int style Platform_V25_AppCompat_Light 0x7f0f00ac +int style Platform_Widget_AppCompat_Spinner 0x7f0f00ad +int style RtlOverlay_DialogWindowTitle_AppCompat 0x7f0f00ae +int style RtlOverlay_Widget_AppCompat_ActionBar_TitleItem 0x7f0f00af +int style RtlOverlay_Widget_AppCompat_DialogTitle_Icon 0x7f0f00b0 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem 0x7f0f00b1 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup 0x7f0f00b2 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Shortcut 0x7f0f00b3 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_SubmenuArrow 0x7f0f00b4 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Text 0x7f0f00b5 +int style RtlOverlay_Widget_AppCompat_PopupMenuItem_Title 0x7f0f00b6 +int style RtlOverlay_Widget_AppCompat_Search_DropDown 0x7f0f00b7 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 0x7f0f00b8 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 0x7f0f00b9 +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Query 0x7f0f00ba +int style RtlOverlay_Widget_AppCompat_Search_DropDown_Text 0x7f0f00bb +int style RtlOverlay_Widget_AppCompat_SearchView_MagIcon 0x7f0f00bc +int style RtlUnderlay_Widget_AppCompat_ActionButton 0x7f0f00bd +int style RtlUnderlay_Widget_AppCompat_ActionButton_Overflow 0x7f0f00be +int style TextAppearance_AppCompat 0x7f0f00bf +int style TextAppearance_AppCompat_Body1 0x7f0f00c0 +int style TextAppearance_AppCompat_Body2 0x7f0f00c1 +int style TextAppearance_AppCompat_Button 0x7f0f00c2 +int style TextAppearance_AppCompat_Caption 0x7f0f00c3 +int style TextAppearance_AppCompat_Display1 0x7f0f00c4 +int style TextAppearance_AppCompat_Display2 0x7f0f00c5 +int style TextAppearance_AppCompat_Display3 0x7f0f00c6 +int style TextAppearance_AppCompat_Display4 0x7f0f00c7 +int style TextAppearance_AppCompat_Headline 0x7f0f00c8 +int style TextAppearance_AppCompat_Inverse 0x7f0f00c9 +int style TextAppearance_AppCompat_Large 0x7f0f00ca +int style TextAppearance_AppCompat_Large_Inverse 0x7f0f00cb +int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0f00cc +int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0f00cd +int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0f00ce +int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0f00cf +int style TextAppearance_AppCompat_Medium 0x7f0f00d0 +int style TextAppearance_AppCompat_Medium_Inverse 0x7f0f00d1 +int style TextAppearance_AppCompat_Menu 0x7f0f00d2 +int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0f00d3 +int style TextAppearance_AppCompat_SearchResult_Title 0x7f0f00d4 +int style TextAppearance_AppCompat_Small 0x7f0f00d5 +int style TextAppearance_AppCompat_Small_Inverse 0x7f0f00d6 +int style TextAppearance_AppCompat_Subhead 0x7f0f00d7 +int style TextAppearance_AppCompat_Subhead_Inverse 0x7f0f00d8 +int style TextAppearance_AppCompat_Title 0x7f0f00d9 +int style TextAppearance_AppCompat_Title_Inverse 0x7f0f00da +int style TextAppearance_AppCompat_Tooltip 0x7f0f00db +int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0f00dc +int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0f00dd +int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0f00de +int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0f00df +int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0f00e0 +int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0f00e1 +int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0f00e2 +int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0f00e3 +int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0f00e4 +int style TextAppearance_AppCompat_Widget_Button 0x7f0f00e5 +int style TextAppearance_AppCompat_Widget_Button_Borderless_Colored 0x7f0f00e6 +int style TextAppearance_AppCompat_Widget_Button_Colored 0x7f0f00e7 +int style TextAppearance_AppCompat_Widget_Button_Inverse 0x7f0f00e8 +int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0f00e9 +int style TextAppearance_AppCompat_Widget_PopupMenu_Header 0x7f0f00ea +int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0f00eb +int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0f00ec +int style TextAppearance_AppCompat_Widget_Switch 0x7f0f00ed +int style TextAppearance_AppCompat_Widget_TextView_SpinnerItem 0x7f0f00ee +int style TextAppearance_Compat_Notification 0x7f0f00ef +int style TextAppearance_Compat_Notification_Info 0x7f0f00f0 +int style TextAppearance_Compat_Notification_Line2 0x7f0f00f1 +int style TextAppearance_Compat_Notification_Time 0x7f0f00f2 +int style TextAppearance_Compat_Notification_Title 0x7f0f00f3 +int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0f00f4 +int style TextAppearance_Widget_AppCompat_Toolbar_Subtitle 0x7f0f00f5 +int style TextAppearance_Widget_AppCompat_Toolbar_Title 0x7f0f00f6 +int style TextAppearanceLarge 0x7f0f00f7 +int style TextAppearanceMedium 0x7f0f00f8 +int style TextAppearanceNormal 0x7f0f00f9 +int style TextAppearancePrimaryItem 0x7f0f00fa +int style TextAppearanceSecondaryItem 0x7f0f00fb +int style TextAppearanceSuper 0x7f0f00fc +int style TextAppearanceUnderMenuIcon 0x7f0f00fd +int style Theme_AppCompat 0x7f0f00fe +int style Theme_AppCompat_CompactMenu 0x7f0f00ff +int style Theme_AppCompat_DayNight 0x7f0f0100 +int style Theme_AppCompat_DayNight_DarkActionBar 0x7f0f0101 +int style Theme_AppCompat_DayNight_Dialog 0x7f0f0102 +int style Theme_AppCompat_DayNight_Dialog_Alert 0x7f0f0103 +int style Theme_AppCompat_DayNight_Dialog_MinWidth 0x7f0f0104 +int style Theme_AppCompat_DayNight_DialogWhenLarge 0x7f0f0105 +int style Theme_AppCompat_DayNight_NoActionBar 0x7f0f0106 +int style Theme_AppCompat_Dialog 0x7f0f0107 +int style Theme_AppCompat_Dialog_Alert 0x7f0f0108 +int style Theme_AppCompat_Dialog_MinWidth 0x7f0f0109 +int style Theme_AppCompat_DialogWhenLarge 0x7f0f010a +int style Theme_AppCompat_Light 0x7f0f010b +int style Theme_AppCompat_Light_DarkActionBar 0x7f0f010c +int style Theme_AppCompat_Light_Dialog 0x7f0f010d +int style Theme_AppCompat_Light_Dialog_Alert 0x7f0f010e +int style Theme_AppCompat_Light_Dialog_MinWidth 0x7f0f010f +int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0f0110 +int style Theme_AppCompat_Light_NoActionBar 0x7f0f0111 +int style Theme_AppCompat_NoActionBar 0x7f0f0112 +int style ThemeOverlay_AppCompat 0x7f0f0113 +int style ThemeOverlay_AppCompat_ActionBar 0x7f0f0114 +int style ThemeOverlay_AppCompat_Dark 0x7f0f0115 +int style ThemeOverlay_AppCompat_Dark_ActionBar 0x7f0f0116 +int style ThemeOverlay_AppCompat_Dialog 0x7f0f0117 +int style ThemeOverlay_AppCompat_Dialog_Alert 0x7f0f0118 +int style ThemeOverlay_AppCompat_Light 0x7f0f0119 +int style Widget_AppCompat_ActionBar 0x7f0f011a +int style Widget_AppCompat_ActionBar_Solid 0x7f0f011b +int style Widget_AppCompat_ActionBar_TabBar 0x7f0f011c +int style Widget_AppCompat_ActionBar_TabText 0x7f0f011d +int style Widget_AppCompat_ActionBar_TabView 0x7f0f011e +int style Widget_AppCompat_ActionButton 0x7f0f011f +int style Widget_AppCompat_ActionButton_CloseMode 0x7f0f0120 +int style Widget_AppCompat_ActionButton_Overflow 0x7f0f0121 +int style Widget_AppCompat_ActionMode 0x7f0f0122 +int style Widget_AppCompat_ActivityChooserView 0x7f0f0123 +int style Widget_AppCompat_AutoCompleteTextView 0x7f0f0124 +int style Widget_AppCompat_Button 0x7f0f0125 +int style Widget_AppCompat_Button_Borderless 0x7f0f0126 +int style Widget_AppCompat_Button_Borderless_Colored 0x7f0f0127 +int style Widget_AppCompat_Button_ButtonBar_AlertDialog 0x7f0f0128 +int style Widget_AppCompat_Button_Colored 0x7f0f0129 +int style Widget_AppCompat_Button_Small 0x7f0f012a +int style Widget_AppCompat_ButtonBar 0x7f0f012b +int style Widget_AppCompat_ButtonBar_AlertDialog 0x7f0f012c +int style Widget_AppCompat_CompoundButton_CheckBox 0x7f0f012d +int style Widget_AppCompat_CompoundButton_RadioButton 0x7f0f012e +int style Widget_AppCompat_CompoundButton_Switch 0x7f0f012f +int style Widget_AppCompat_DrawerArrowToggle 0x7f0f0130 +int style Widget_AppCompat_DropDownItem_Spinner 0x7f0f0131 +int style Widget_AppCompat_EditText 0x7f0f0132 +int style Widget_AppCompat_ImageButton 0x7f0f0133 +int style Widget_AppCompat_Light_ActionBar 0x7f0f0134 +int style Widget_AppCompat_Light_ActionBar_Solid 0x7f0f0135 +int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f0f0136 +int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f0f0137 +int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f0f0138 +int style Widget_AppCompat_Light_ActionBar_TabText 0x7f0f0139 +int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0f013a +int style Widget_AppCompat_Light_ActionBar_TabView 0x7f0f013b +int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f0f013c +int style Widget_AppCompat_Light_ActionButton 0x7f0f013d +int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f0f013e +int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f0f013f +int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f0f0140 +int style Widget_AppCompat_Light_ActivityChooserView 0x7f0f0141 +int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f0f0142 +int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f0f0143 +int style Widget_AppCompat_Light_ListPopupWindow 0x7f0f0144 +int style Widget_AppCompat_Light_ListView_DropDown 0x7f0f0145 +int style Widget_AppCompat_Light_PopupMenu 0x7f0f0146 +int style Widget_AppCompat_Light_PopupMenu_Overflow 0x7f0f0147 +int style Widget_AppCompat_Light_SearchView 0x7f0f0148 +int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f0f0149 +int style Widget_AppCompat_ListMenuView 0x7f0f014a +int style Widget_AppCompat_ListPopupWindow 0x7f0f014b +int style Widget_AppCompat_ListView 0x7f0f014c +int style Widget_AppCompat_ListView_DropDown 0x7f0f014d +int style Widget_AppCompat_ListView_Menu 0x7f0f014e +int style Widget_AppCompat_PopupMenu 0x7f0f014f +int style Widget_AppCompat_PopupMenu_Overflow 0x7f0f0150 +int style Widget_AppCompat_PopupWindow 0x7f0f0151 +int style Widget_AppCompat_ProgressBar 0x7f0f0152 +int style Widget_AppCompat_ProgressBar_Horizontal 0x7f0f0153 +int style Widget_AppCompat_RatingBar 0x7f0f0154 +int style Widget_AppCompat_RatingBar_Indicator 0x7f0f0155 +int style Widget_AppCompat_RatingBar_Small 0x7f0f0156 +int style Widget_AppCompat_SearchView 0x7f0f0157 +int style Widget_AppCompat_SearchView_ActionBar 0x7f0f0158 +int style Widget_AppCompat_SeekBar 0x7f0f0159 +int style Widget_AppCompat_SeekBar_Discrete 0x7f0f015a +int style Widget_AppCompat_Spinner 0x7f0f015b +int style Widget_AppCompat_Spinner_DropDown 0x7f0f015c +int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f0f015d +int style Widget_AppCompat_Spinner_Underlined 0x7f0f015e +int style Widget_AppCompat_TextView_SpinnerItem 0x7f0f015f +int style Widget_AppCompat_Toolbar 0x7f0f0160 +int style Widget_AppCompat_Toolbar_Button_Navigation 0x7f0f0161 +int style Widget_Compat_NotificationActionContainer 0x7f0f0162 +int style Widget_Compat_NotificationActionText 0x7f0f0163 +int style Widget_Support_CoordinatorLayout 0x7f0f0164 +int[] styleable ActionBar { 0x7f030031, 0x7f030032, 0x7f030033, 0x7f030057, 0x7f030058, 0x7f030059, 0x7f03005a, 0x7f03005b, 0x7f03005c, 0x7f03005f, 0x7f030064, 0x7f030065, 0x7f030070, 0x7f030080, 0x7f030081, 0x7f030082, 0x7f030083, 0x7f030084, 0x7f030089, 0x7f03008c, 0x7f0300a2, 0x7f0300a9, 0x7f0300b4, 0x7f0300b7, 0x7f0300b8, 0x7f0300d3, 0x7f0300d6, 0x7f0300f1, 0x7f0300fa } +int styleable ActionBar_background 0 +int styleable ActionBar_backgroundSplit 1 +int styleable ActionBar_backgroundStacked 2 +int styleable ActionBar_contentInsetEnd 3 +int styleable ActionBar_contentInsetEndWithActions 4 +int styleable ActionBar_contentInsetLeft 5 +int styleable ActionBar_contentInsetRight 6 +int styleable ActionBar_contentInsetStart 7 +int styleable ActionBar_contentInsetStartWithNavigation 8 +int styleable ActionBar_customNavigationLayout 9 +int styleable ActionBar_displayOptions 10 +int styleable ActionBar_divider 11 +int styleable ActionBar_elevation 12 +int styleable ActionBar_height 13 +int styleable ActionBar_hideOnContentScroll 14 +int styleable ActionBar_homeAsUpIndicator 15 +int styleable ActionBar_homeLayout 16 +int styleable ActionBar_icon 17 +int styleable ActionBar_indeterminateProgressStyle 18 +int styleable ActionBar_itemPadding 19 +int styleable ActionBar_logo 20 +int styleable ActionBar_navigationMode 21 +int styleable ActionBar_popupTheme 22 +int styleable ActionBar_progressBarPadding 23 +int styleable ActionBar_progressBarStyle 24 +int styleable ActionBar_subtitle 25 +int styleable ActionBar_subtitleTextStyle 26 +int styleable ActionBar_title 27 +int styleable ActionBar_titleTextStyle 28 +int[] styleable ActionBarLayout { 0x010100b3 } +int styleable ActionBarLayout_android_layout_gravity 0 +int[] styleable ActionMenuItemView { 0x0101013f } +int styleable ActionMenuItemView_android_minWidth 0 +int[] styleable ActionMenuView { } +int[] styleable ActionMode { 0x7f030031, 0x7f030032, 0x7f030047, 0x7f030080, 0x7f0300d6, 0x7f0300fa } +int styleable ActionMode_background 0 +int styleable ActionMode_backgroundSplit 1 +int styleable ActionMode_closeItemLayout 2 +int styleable ActionMode_height 3 +int styleable ActionMode_subtitleTextStyle 4 +int styleable ActionMode_titleTextStyle 5 +int[] styleable ActivityChooserView { 0x7f030071, 0x7f03008a } +int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 0 +int styleable ActivityChooserView_initialActivityCount 1 +int[] styleable AlertDialog { 0x010100f2, 0x7f03003e, 0x7f03003f, 0x7f030099, 0x7f03009a, 0x7f0300a6, 0x7f0300c8, 0x7f0300c9 } +int styleable AlertDialog_android_layout 0 +int styleable AlertDialog_buttonIconDimen 1 +int styleable AlertDialog_buttonPanelSideLayout 2 +int styleable AlertDialog_listItemLayout 3 +int styleable AlertDialog_listLayout 4 +int styleable AlertDialog_multiChoiceItemLayout 5 +int styleable AlertDialog_showTitle 6 +int styleable AlertDialog_singleChoiceItemLayout 7 +int[] styleable AnimatedStateListDrawableCompat { 0x0101011c, 0x01010194, 0x01010195, 0x01010196, 0x0101030c, 0x0101030d } +int styleable AnimatedStateListDrawableCompat_android_dither 0 +int styleable AnimatedStateListDrawableCompat_android_visible 1 +int styleable AnimatedStateListDrawableCompat_android_variablePadding 2 +int styleable AnimatedStateListDrawableCompat_android_constantSize 3 +int styleable AnimatedStateListDrawableCompat_android_enterFadeDuration 4 +int styleable AnimatedStateListDrawableCompat_android_exitFadeDuration 5 +int[] styleable AnimatedStateListDrawableItem { 0x010100d0, 0x01010199 } +int styleable AnimatedStateListDrawableItem_android_id 0 +int styleable AnimatedStateListDrawableItem_android_drawable 1 +int[] styleable AnimatedStateListDrawableTransition { 0x01010199, 0x01010449, 0x0101044a, 0x0101044b } +int styleable AnimatedStateListDrawableTransition_android_drawable 0 +int styleable AnimatedStateListDrawableTransition_android_toId 1 +int styleable AnimatedStateListDrawableTransition_android_fromId 2 +int styleable AnimatedStateListDrawableTransition_android_reversible 3 +int[] styleable AppCompatImageView { 0x01010119, 0x7f0300ce, 0x7f0300ef, 0x7f0300f0 } +int styleable AppCompatImageView_android_src 0 +int styleable AppCompatImageView_srcCompat 1 +int styleable AppCompatImageView_tint 2 +int styleable AppCompatImageView_tintMode 3 +int[] styleable AppCompatSeekBar { 0x01010142, 0x7f0300ec, 0x7f0300ed, 0x7f0300ee } +int styleable AppCompatSeekBar_android_thumb 0 +int styleable AppCompatSeekBar_tickMark 1 +int styleable AppCompatSeekBar_tickMarkTint 2 +int styleable AppCompatSeekBar_tickMarkTintMode 3 +int[] styleable AppCompatTextHelper { 0x01010034, 0x0101016d, 0x0101016e, 0x0101016f, 0x01010170, 0x01010392, 0x01010393 } +int styleable AppCompatTextHelper_android_textAppearance 0 +int styleable AppCompatTextHelper_android_drawableTop 1 +int styleable AppCompatTextHelper_android_drawableBottom 2 +int styleable AppCompatTextHelper_android_drawableLeft 3 +int styleable AppCompatTextHelper_android_drawableRight 4 +int styleable AppCompatTextHelper_android_drawableStart 5 +int styleable AppCompatTextHelper_android_drawableEnd 6 +int[] styleable AppCompatTextView { 0x01010034, 0x7f03002c, 0x7f03002d, 0x7f03002e, 0x7f03002f, 0x7f030030, 0x7f030072, 0x7f030074, 0x7f03008e, 0x7f030096, 0x7f0300dc } +int styleable AppCompatTextView_android_textAppearance 0 +int styleable AppCompatTextView_autoSizeMaxTextSize 1 +int styleable AppCompatTextView_autoSizeMinTextSize 2 +int styleable AppCompatTextView_autoSizePresetSizes 3 +int styleable AppCompatTextView_autoSizeStepGranularity 4 +int styleable AppCompatTextView_autoSizeTextType 5 +int styleable AppCompatTextView_firstBaselineToTopHeight 6 +int styleable AppCompatTextView_fontFamily 7 +int styleable AppCompatTextView_lastBaselineToBottomHeight 8 +int styleable AppCompatTextView_lineHeight 9 +int styleable AppCompatTextView_textAllCaps 10 +int[] styleable AppCompatTheme { 0x01010057, 0x010100ae, 0x7f030000, 0x7f030001, 0x7f030002, 0x7f030003, 0x7f030004, 0x7f030005, 0x7f030006, 0x7f030007, 0x7f030008, 0x7f030009, 0x7f03000a, 0x7f03000b, 0x7f03000c, 0x7f03000e, 0x7f03000f, 0x7f030010, 0x7f030011, 0x7f030012, 0x7f030013, 0x7f030014, 0x7f030015, 0x7f030016, 0x7f030017, 0x7f030018, 0x7f030019, 0x7f03001a, 0x7f03001b, 0x7f03001c, 0x7f03001d, 0x7f03001e, 0x7f030021, 0x7f030022, 0x7f030023, 0x7f030024, 0x7f030025, 0x7f03002b, 0x7f030037, 0x7f030038, 0x7f030039, 0x7f03003a, 0x7f03003b, 0x7f03003c, 0x7f030040, 0x7f030041, 0x7f030044, 0x7f030045, 0x7f03004b, 0x7f03004c, 0x7f03004d, 0x7f03004e, 0x7f03004f, 0x7f030050, 0x7f030051, 0x7f030052, 0x7f030053, 0x7f030054, 0x7f03005d, 0x7f030061, 0x7f030062, 0x7f030063, 0x7f030066, 0x7f030068, 0x7f03006b, 0x7f03006c, 0x7f03006d, 0x7f03006e, 0x7f03006f, 0x7f030082, 0x7f030088, 0x7f030097, 0x7f030098, 0x7f03009b, 0x7f03009c, 0x7f03009d, 0x7f03009e, 0x7f03009f, 0x7f0300a0, 0x7f0300a1, 0x7f0300b0, 0x7f0300b1, 0x7f0300b2, 0x7f0300b3, 0x7f0300b5, 0x7f0300bb, 0x7f0300bc, 0x7f0300bd, 0x7f0300be, 0x7f0300c1, 0x7f0300c2, 0x7f0300c3, 0x7f0300c4, 0x7f0300cb, 0x7f0300cc, 0x7f0300da, 0x7f0300dd, 0x7f0300de, 0x7f0300df, 0x7f0300e0, 0x7f0300e1, 0x7f0300e2, 0x7f0300e3, 0x7f0300e4, 0x7f0300e5, 0x7f0300e6, 0x7f0300fb, 0x7f0300fc, 0x7f0300fd, 0x7f0300fe, 0x7f030104, 0x7f030106, 0x7f030107, 0x7f030108, 0x7f030109, 0x7f03010a, 0x7f03010b, 0x7f03010c, 0x7f03010d, 0x7f03010e, 0x7f03010f } +int styleable AppCompatTheme_android_windowIsFloating 0 +int styleable AppCompatTheme_android_windowAnimationStyle 1 +int styleable AppCompatTheme_actionBarDivider 2 +int styleable AppCompatTheme_actionBarItemBackground 3 +int styleable AppCompatTheme_actionBarPopupTheme 4 +int styleable AppCompatTheme_actionBarSize 5 +int styleable AppCompatTheme_actionBarSplitStyle 6 +int styleable AppCompatTheme_actionBarStyle 7 +int styleable AppCompatTheme_actionBarTabBarStyle 8 +int styleable AppCompatTheme_actionBarTabStyle 9 +int styleable AppCompatTheme_actionBarTabTextStyle 10 +int styleable AppCompatTheme_actionBarTheme 11 +int styleable AppCompatTheme_actionBarWidgetTheme 12 +int styleable AppCompatTheme_actionButtonStyle 13 +int styleable AppCompatTheme_actionDropDownStyle 14 +int styleable AppCompatTheme_actionMenuTextAppearance 15 +int styleable AppCompatTheme_actionMenuTextColor 16 +int styleable AppCompatTheme_actionModeBackground 17 +int styleable AppCompatTheme_actionModeCloseButtonStyle 18 +int styleable AppCompatTheme_actionModeCloseDrawable 19 +int styleable AppCompatTheme_actionModeCopyDrawable 20 +int styleable AppCompatTheme_actionModeCutDrawable 21 +int styleable AppCompatTheme_actionModeFindDrawable 22 +int styleable AppCompatTheme_actionModePasteDrawable 23 +int styleable AppCompatTheme_actionModePopupWindowStyle 24 +int styleable AppCompatTheme_actionModeSelectAllDrawable 25 +int styleable AppCompatTheme_actionModeShareDrawable 26 +int styleable AppCompatTheme_actionModeSplitBackground 27 +int styleable AppCompatTheme_actionModeStyle 28 +int styleable AppCompatTheme_actionModeWebSearchDrawable 29 +int styleable AppCompatTheme_actionOverflowButtonStyle 30 +int styleable AppCompatTheme_actionOverflowMenuStyle 31 +int styleable AppCompatTheme_activityChooserViewStyle 32 +int styleable AppCompatTheme_alertDialogButtonGroupStyle 33 +int styleable AppCompatTheme_alertDialogCenterButtons 34 +int styleable AppCompatTheme_alertDialogStyle 35 +int styleable AppCompatTheme_alertDialogTheme 36 +int styleable AppCompatTheme_autoCompleteTextViewStyle 37 +int styleable AppCompatTheme_borderlessButtonStyle 38 +int styleable AppCompatTheme_buttonBarButtonStyle 39 +int styleable AppCompatTheme_buttonBarNegativeButtonStyle 40 +int styleable AppCompatTheme_buttonBarNeutralButtonStyle 41 +int styleable AppCompatTheme_buttonBarPositiveButtonStyle 42 +int styleable AppCompatTheme_buttonBarStyle 43 +int styleable AppCompatTheme_buttonStyle 44 +int styleable AppCompatTheme_buttonStyleSmall 45 +int styleable AppCompatTheme_checkboxStyle 46 +int styleable AppCompatTheme_checkedTextViewStyle 47 +int styleable AppCompatTheme_colorAccent 48 +int styleable AppCompatTheme_colorBackgroundFloating 49 +int styleable AppCompatTheme_colorButtonNormal 50 +int styleable AppCompatTheme_colorControlActivated 51 +int styleable AppCompatTheme_colorControlHighlight 52 +int styleable AppCompatTheme_colorControlNormal 53 +int styleable AppCompatTheme_colorError 54 +int styleable AppCompatTheme_colorPrimary 55 +int styleable AppCompatTheme_colorPrimaryDark 56 +int styleable AppCompatTheme_colorSwitchThumbNormal 57 +int styleable AppCompatTheme_controlBackground 58 +int styleable AppCompatTheme_dialogCornerRadius 59 +int styleable AppCompatTheme_dialogPreferredPadding 60 +int styleable AppCompatTheme_dialogTheme 61 +int styleable AppCompatTheme_dividerHorizontal 62 +int styleable AppCompatTheme_dividerVertical 63 +int styleable AppCompatTheme_dropDownListViewStyle 64 +int styleable AppCompatTheme_dropdownListPreferredItemHeight 65 +int styleable AppCompatTheme_editTextBackground 66 +int styleable AppCompatTheme_editTextColor 67 +int styleable AppCompatTheme_editTextStyle 68 +int styleable AppCompatTheme_homeAsUpIndicator 69 +int styleable AppCompatTheme_imageButtonStyle 70 +int styleable AppCompatTheme_listChoiceBackgroundIndicator 71 +int styleable AppCompatTheme_listDividerAlertDialog 72 +int styleable AppCompatTheme_listMenuViewStyle 73 +int styleable AppCompatTheme_listPopupWindowStyle 74 +int styleable AppCompatTheme_listPreferredItemHeight 75 +int styleable AppCompatTheme_listPreferredItemHeightLarge 76 +int styleable AppCompatTheme_listPreferredItemHeightSmall 77 +int styleable AppCompatTheme_listPreferredItemPaddingLeft 78 +int styleable AppCompatTheme_listPreferredItemPaddingRight 79 +int styleable AppCompatTheme_panelBackground 80 +int styleable AppCompatTheme_panelMenuListTheme 81 +int styleable AppCompatTheme_panelMenuListWidth 82 +int styleable AppCompatTheme_popupMenuStyle 83 +int styleable AppCompatTheme_popupWindowStyle 84 +int styleable AppCompatTheme_radioButtonStyle 85 +int styleable AppCompatTheme_ratingBarStyle 86 +int styleable AppCompatTheme_ratingBarStyleIndicator 87 +int styleable AppCompatTheme_ratingBarStyleSmall 88 +int styleable AppCompatTheme_searchViewStyle 89 +int styleable AppCompatTheme_seekBarStyle 90 +int styleable AppCompatTheme_selectableItemBackground 91 +int styleable AppCompatTheme_selectableItemBackgroundBorderless 92 +int styleable AppCompatTheme_spinnerDropDownItemStyle 93 +int styleable AppCompatTheme_spinnerStyle 94 +int styleable AppCompatTheme_switchStyle 95 +int styleable AppCompatTheme_textAppearanceLargePopupMenu 96 +int styleable AppCompatTheme_textAppearanceListItem 97 +int styleable AppCompatTheme_textAppearanceListItemSecondary 98 +int styleable AppCompatTheme_textAppearanceListItemSmall 99 +int styleable AppCompatTheme_textAppearancePopupMenuHeader 100 +int styleable AppCompatTheme_textAppearanceSearchResultSubtitle 101 +int styleable AppCompatTheme_textAppearanceSearchResultTitle 102 +int styleable AppCompatTheme_textAppearanceSmallPopupMenu 103 +int styleable AppCompatTheme_textColorAlertDialogListItem 104 +int styleable AppCompatTheme_textColorSearchUrl 105 +int styleable AppCompatTheme_toolbarNavigationButtonStyle 106 +int styleable AppCompatTheme_toolbarStyle 107 +int styleable AppCompatTheme_tooltipForegroundColor 108 +int styleable AppCompatTheme_tooltipFrameBackground 109 +int styleable AppCompatTheme_viewInflaterClass 110 +int styleable AppCompatTheme_windowActionBar 111 +int styleable AppCompatTheme_windowActionBarOverlay 112 +int styleable AppCompatTheme_windowActionModeOverlay 113 +int styleable AppCompatTheme_windowFixedHeightMajor 114 +int styleable AppCompatTheme_windowFixedHeightMinor 115 +int styleable AppCompatTheme_windowFixedWidthMajor 116 +int styleable AppCompatTheme_windowFixedWidthMinor 117 +int styleable AppCompatTheme_windowMinWidthMajor 118 +int styleable AppCompatTheme_windowMinWidthMinor 119 +int styleable AppCompatTheme_windowNoTitle 120 +int[] styleable ButtonBarLayout { 0x7f030026 } +int styleable ButtonBarLayout_allowStacking 0 +int[] styleable ColorStateListItem { 0x010101a5, 0x0101031f, 0x7f030027 } +int styleable ColorStateListItem_android_color 0 +int styleable ColorStateListItem_android_alpha 1 +int styleable ColorStateListItem_alpha 2 +int[] styleable CompoundButton { 0x01010107, 0x7f030042, 0x7f030043 } +int styleable CompoundButton_android_button 0 +int styleable CompoundButton_buttonTint 1 +int styleable CompoundButton_buttonTintMode 2 +int[] styleable CoordinatorLayout { 0x7f03008d, 0x7f0300d0 } +int styleable CoordinatorLayout_keylines 0 +int styleable CoordinatorLayout_statusBarBackground 1 +int[] styleable CoordinatorLayout_Layout { 0x010100b3, 0x7f030090, 0x7f030091, 0x7f030092, 0x7f030093, 0x7f030094, 0x7f030095 } +int styleable CoordinatorLayout_Layout_android_layout_gravity 0 +int styleable CoordinatorLayout_Layout_layout_anchor 1 +int styleable CoordinatorLayout_Layout_layout_anchorGravity 2 +int styleable CoordinatorLayout_Layout_layout_behavior 3 +int styleable CoordinatorLayout_Layout_layout_dodgeInsetEdges 4 +int styleable CoordinatorLayout_Layout_layout_insetEdge 5 +int styleable CoordinatorLayout_Layout_layout_keyline 6 +int[] styleable DrawerArrowToggle { 0x7f030029, 0x7f03002a, 0x7f030036, 0x7f03004a, 0x7f030069, 0x7f03007e, 0x7f0300ca, 0x7f0300e8 } +int styleable DrawerArrowToggle_arrowHeadLength 0 +int styleable DrawerArrowToggle_arrowShaftLength 1 +int styleable DrawerArrowToggle_barLength 2 +int styleable DrawerArrowToggle_color 3 +int styleable DrawerArrowToggle_drawableSize 4 +int styleable DrawerArrowToggle_gapBetweenBars 5 +int styleable DrawerArrowToggle_spinBars 6 +int styleable DrawerArrowToggle_thickness 7 +int[] styleable FontFamily { 0x7f030075, 0x7f030076, 0x7f030077, 0x7f030078, 0x7f030079, 0x7f03007a } +int styleable FontFamily_fontProviderAuthority 0 +int styleable FontFamily_fontProviderCerts 1 +int styleable FontFamily_fontProviderFetchStrategy 2 +int styleable FontFamily_fontProviderFetchTimeout 3 +int styleable FontFamily_fontProviderPackage 4 +int styleable FontFamily_fontProviderQuery 5 +int[] styleable FontFamilyFont { 0x01010532, 0x01010533, 0x0101053f, 0x0101056f, 0x01010570, 0x7f030073, 0x7f03007b, 0x7f03007c, 0x7f03007d, 0x7f030103 } +int styleable FontFamilyFont_android_font 0 +int styleable FontFamilyFont_android_fontWeight 1 +int styleable FontFamilyFont_android_fontStyle 2 +int styleable FontFamilyFont_android_ttcIndex 3 +int styleable FontFamilyFont_android_fontVariationSettings 4 +int styleable FontFamilyFont_font 5 +int styleable FontFamilyFont_fontStyle 6 +int styleable FontFamilyFont_fontVariationSettings 7 +int styleable FontFamilyFont_fontWeight 8 +int styleable FontFamilyFont_ttcIndex 9 +int[] styleable GradientColor { 0x0101019d, 0x0101019e, 0x010101a1, 0x010101a2, 0x010101a3, 0x010101a4, 0x01010201, 0x0101020b, 0x01010510, 0x01010511, 0x01010512, 0x01010513 } +int styleable GradientColor_android_startColor 0 +int styleable GradientColor_android_endColor 1 +int styleable GradientColor_android_type 2 +int styleable GradientColor_android_centerX 3 +int styleable GradientColor_android_centerY 4 +int styleable GradientColor_android_gradientRadius 5 +int styleable GradientColor_android_tileMode 6 +int styleable GradientColor_android_centerColor 7 +int styleable GradientColor_android_startX 8 +int styleable GradientColor_android_startY 9 +int styleable GradientColor_android_endX 10 +int styleable GradientColor_android_endY 11 +int[] styleable GradientColorItem { 0x010101a5, 0x01010514 } +int styleable GradientColorItem_android_color 0 +int styleable GradientColorItem_android_offset 1 +int[] styleable LinearLayoutCompat { 0x010100af, 0x010100c4, 0x01010126, 0x01010127, 0x01010128, 0x7f030065, 0x7f030067, 0x7f0300a5, 0x7f0300c6 } +int styleable LinearLayoutCompat_android_gravity 0 +int styleable LinearLayoutCompat_android_orientation 1 +int styleable LinearLayoutCompat_android_baselineAligned 2 +int styleable LinearLayoutCompat_android_baselineAlignedChildIndex 3 +int styleable LinearLayoutCompat_android_weightSum 4 +int styleable LinearLayoutCompat_divider 5 +int styleable LinearLayoutCompat_dividerPadding 6 +int styleable LinearLayoutCompat_measureWithLargestChild 7 +int styleable LinearLayoutCompat_showDividers 8 +int[] styleable LinearLayoutCompat_Layout { 0x010100b3, 0x010100f4, 0x010100f5, 0x01010181 } +int styleable LinearLayoutCompat_Layout_android_layout_gravity 0 +int styleable LinearLayoutCompat_Layout_android_layout_width 1 +int styleable LinearLayoutCompat_Layout_android_layout_height 2 +int styleable LinearLayoutCompat_Layout_android_layout_weight 3 +int[] styleable ListPopupWindow { 0x010102ac, 0x010102ad } +int styleable ListPopupWindow_android_dropDownHorizontalOffset 0 +int styleable ListPopupWindow_android_dropDownVerticalOffset 1 +int[] styleable MenuGroup { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 } +int styleable MenuGroup_android_enabled 0 +int styleable MenuGroup_android_id 1 +int styleable MenuGroup_android_visible 2 +int styleable MenuGroup_android_menuCategory 3 +int styleable MenuGroup_android_orderInCategory 4 +int styleable MenuGroup_android_checkableBehavior 5 +int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f03000d, 0x7f03001f, 0x7f030020, 0x7f030028, 0x7f030056, 0x7f030085, 0x7f030086, 0x7f0300aa, 0x7f0300c5, 0x7f0300ff } +int styleable MenuItem_android_icon 0 +int styleable MenuItem_android_enabled 1 +int styleable MenuItem_android_id 2 +int styleable MenuItem_android_checked 3 +int styleable MenuItem_android_visible 4 +int styleable MenuItem_android_menuCategory 5 +int styleable MenuItem_android_orderInCategory 6 +int styleable MenuItem_android_title 7 +int styleable MenuItem_android_titleCondensed 8 +int styleable MenuItem_android_alphabeticShortcut 9 +int styleable MenuItem_android_numericShortcut 10 +int styleable MenuItem_android_checkable 11 +int styleable MenuItem_android_onClick 12 +int styleable MenuItem_actionLayout 13 +int styleable MenuItem_actionProviderClass 14 +int styleable MenuItem_actionViewClass 15 +int styleable MenuItem_alphabeticModifiers 16 +int styleable MenuItem_contentDescription 17 +int styleable MenuItem_iconTint 18 +int styleable MenuItem_iconTintMode 19 +int styleable MenuItem_numericModifiers 20 +int styleable MenuItem_showAsAction 21 +int styleable MenuItem_tooltipText 22 +int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x7f0300b6, 0x7f0300d1 } +int styleable MenuView_android_windowAnimationStyle 0 +int styleable MenuView_android_itemTextAppearance 1 +int styleable MenuView_android_horizontalDivider 2 +int styleable MenuView_android_verticalDivider 3 +int styleable MenuView_android_headerBackground 4 +int styleable MenuView_android_itemBackground 5 +int styleable MenuView_android_itemIconDisabledAlpha 6 +int styleable MenuView_preserveIconSpacing 7 +int styleable MenuView_subMenuArrow 8 +int[] styleable PopupWindow { 0x01010176, 0x010102c9, 0x7f0300ab } +int styleable PopupWindow_android_popupBackground 0 +int styleable PopupWindow_android_popupAnimationStyle 1 +int styleable PopupWindow_overlapAnchor 2 +int[] styleable PopupWindowBackgroundState { 0x7f0300cf } +int styleable PopupWindowBackgroundState_state_above_anchor 0 +int[] styleable RecycleListView { 0x7f0300ac, 0x7f0300af } +int styleable RecycleListView_paddingBottomNoButtons 0 +int styleable RecycleListView_paddingTopNoTitle 1 +int[] styleable SearchView { 0x010100da, 0x0101011f, 0x01010220, 0x01010264, 0x7f030046, 0x7f030055, 0x7f030060, 0x7f03007f, 0x7f030087, 0x7f03008f, 0x7f0300b9, 0x7f0300ba, 0x7f0300bf, 0x7f0300c0, 0x7f0300d2, 0x7f0300d7, 0x7f030105 } +int styleable SearchView_android_focusable 0 +int styleable SearchView_android_maxWidth 1 +int styleable SearchView_android_inputType 2 +int styleable SearchView_android_imeOptions 3 +int styleable SearchView_closeIcon 4 +int styleable SearchView_commitIcon 5 +int styleable SearchView_defaultQueryHint 6 +int styleable SearchView_goIcon 7 +int styleable SearchView_iconifiedByDefault 8 +int styleable SearchView_layout 9 +int styleable SearchView_queryBackground 10 +int styleable SearchView_queryHint 11 +int styleable SearchView_searchHintIcon 12 +int styleable SearchView_searchIcon 13 +int styleable SearchView_submitBackground 14 +int styleable SearchView_suggestionRowLayout 15 +int styleable SearchView_voiceIcon 16 +int[] styleable Spinner { 0x010100b2, 0x01010176, 0x0101017b, 0x01010262, 0x7f0300b4 } +int styleable Spinner_android_entries 0 +int styleable Spinner_android_popupBackground 1 +int styleable Spinner_android_prompt 2 +int styleable Spinner_android_dropDownWidth 3 +int styleable Spinner_popupTheme 4 +int[] styleable StateListDrawable { 0x0101011c, 0x01010194, 0x01010195, 0x01010196, 0x0101030c, 0x0101030d } +int styleable StateListDrawable_android_dither 0 +int styleable StateListDrawable_android_visible 1 +int styleable StateListDrawable_android_variablePadding 2 +int styleable StateListDrawable_android_constantSize 3 +int styleable StateListDrawable_android_enterFadeDuration 4 +int styleable StateListDrawable_android_exitFadeDuration 5 +int[] styleable StateListDrawableItem { 0x01010199 } +int styleable StateListDrawableItem_android_drawable 0 +int[] styleable SwitchCompat { 0x01010124, 0x01010125, 0x01010142, 0x7f0300c7, 0x7f0300cd, 0x7f0300d8, 0x7f0300d9, 0x7f0300db, 0x7f0300e9, 0x7f0300ea, 0x7f0300eb, 0x7f030100, 0x7f030101, 0x7f030102 } +int styleable SwitchCompat_android_textOn 0 +int styleable SwitchCompat_android_textOff 1 +int styleable SwitchCompat_android_thumb 2 +int styleable SwitchCompat_showText 3 +int styleable SwitchCompat_splitTrack 4 +int styleable SwitchCompat_switchMinWidth 5 +int styleable SwitchCompat_switchPadding 6 +int styleable SwitchCompat_switchTextAppearance 7 +int styleable SwitchCompat_thumbTextPadding 8 +int styleable SwitchCompat_thumbTint 9 +int styleable SwitchCompat_thumbTintMode 10 +int styleable SwitchCompat_track 11 +int styleable SwitchCompat_trackTint 12 +int styleable SwitchCompat_trackTintMode 13 +int[] styleable TextAppearance { 0x01010095, 0x01010096, 0x01010097, 0x01010098, 0x0101009a, 0x0101009b, 0x01010161, 0x01010162, 0x01010163, 0x01010164, 0x010103ac, 0x7f030074, 0x7f0300dc } +int styleable TextAppearance_android_textSize 0 +int styleable TextAppearance_android_typeface 1 +int styleable TextAppearance_android_textStyle 2 +int styleable TextAppearance_android_textColor 3 +int styleable TextAppearance_android_textColorHint 4 +int styleable TextAppearance_android_textColorLink 5 +int styleable TextAppearance_android_shadowColor 6 +int styleable TextAppearance_android_shadowDx 7 +int styleable TextAppearance_android_shadowDy 8 +int styleable TextAppearance_android_shadowRadius 9 +int styleable TextAppearance_android_fontFamily 10 +int styleable TextAppearance_fontFamily 11 +int styleable TextAppearance_textAllCaps 12 +int[] styleable Toolbar { 0x010100af, 0x01010140, 0x7f03003d, 0x7f030048, 0x7f030049, 0x7f030057, 0x7f030058, 0x7f030059, 0x7f03005a, 0x7f03005b, 0x7f03005c, 0x7f0300a2, 0x7f0300a3, 0x7f0300a4, 0x7f0300a7, 0x7f0300a8, 0x7f0300b4, 0x7f0300d3, 0x7f0300d4, 0x7f0300d5, 0x7f0300f1, 0x7f0300f2, 0x7f0300f3, 0x7f0300f4, 0x7f0300f5, 0x7f0300f6, 0x7f0300f7, 0x7f0300f8, 0x7f0300f9 } +int styleable Toolbar_android_gravity 0 +int styleable Toolbar_android_minHeight 1 +int styleable Toolbar_buttonGravity 2 +int styleable Toolbar_collapseContentDescription 3 +int styleable Toolbar_collapseIcon 4 +int styleable Toolbar_contentInsetEnd 5 +int styleable Toolbar_contentInsetEndWithActions 6 +int styleable Toolbar_contentInsetLeft 7 +int styleable Toolbar_contentInsetRight 8 +int styleable Toolbar_contentInsetStart 9 +int styleable Toolbar_contentInsetStartWithNavigation 10 +int styleable Toolbar_logo 11 +int styleable Toolbar_logoDescription 12 +int styleable Toolbar_maxButtonHeight 13 +int styleable Toolbar_navigationContentDescription 14 +int styleable Toolbar_navigationIcon 15 +int styleable Toolbar_popupTheme 16 +int styleable Toolbar_subtitle 17 +int styleable Toolbar_subtitleTextAppearance 18 +int styleable Toolbar_subtitleTextColor 19 +int styleable Toolbar_title 20 +int styleable Toolbar_titleMargin 21 +int styleable Toolbar_titleMarginBottom 22 +int styleable Toolbar_titleMarginEnd 23 +int styleable Toolbar_titleMarginStart 24 +int styleable Toolbar_titleMarginTop 25 +int styleable Toolbar_titleMargins 26 +int styleable Toolbar_titleTextAppearance 27 +int styleable Toolbar_titleTextColor 28 +int[] styleable View { 0x01010000, 0x010100da, 0x7f0300ad, 0x7f0300ae, 0x7f0300e7 } +int styleable View_android_theme 0 +int styleable View_android_focusable 1 +int styleable View_paddingEnd 2 +int styleable View_paddingStart 3 +int styleable View_theme 4 +int[] styleable ViewBackgroundHelper { 0x010100d4, 0x7f030034, 0x7f030035 } +int styleable ViewBackgroundHelper_android_background 0 +int styleable ViewBackgroundHelper_backgroundTint 1 +int styleable ViewBackgroundHelper_backgroundTintMode 2 +int[] styleable ViewStubCompat { 0x010100d0, 0x010100f2, 0x010100f3 } +int styleable ViewStubCompat_android_id 0 +int styleable ViewStubCompat_android_layout 1 +int styleable ViewStubCompat_android_inflatedId 2 +int xml preferences 0x7f110000 +int xml searchable 0x7f110001 +int xml widget_2x_info 0x7f110002 +int xml widget_4x_info 0x7f110003 diff --git a/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json b/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json new file mode 100644 index 0000000..51f6368 --- /dev/null +++ b/app/build/intermediates/signing_config_versions/debug/signing-config-versions.json @@ -0,0 +1 @@ +{"enableV1Signing":false,"enableV2Signing":true,"enableV3Signing":false,"enableV4Signing":false} \ No newline at end of file diff --git a/app/build/intermediates/source_set_path_map/debug/file-map.txt b/app/build/intermediates/source_set_path_map/debug/file-map.txt new file mode 100644 index 0000000..e4f62fe --- /dev/null +++ b/app/build/intermediates/source_set_path_map/debug/file-map.txt @@ -0,0 +1,11 @@ +net.micode.notes.app-support-compat-28.0.0-0 C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\res +net.micode.notes.app-coordinatorlayout-28.0.0-1 C:\Users\Re11a\.gradle\caches\transforms-3\568c762957e87adb25eac94f3bddea2d\transformed\coordinatorlayout-28.0.0\res +net.micode.notes.app-appcompat-v7-28.0.0-2 C:\Users\Re11a\.gradle\caches\transforms-3\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\transformed\appcompat-v7-28.0.0\res +net.micode.notes.app-pngs-3 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\generated\res\pngs\debug +net.micode.notes.app-resValues-4 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\generated\res\resValues\debug +net.micode.notes.app-rs-5 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\generated\res\rs\debug +net.micode.notes.app-mergeDebugResources-6 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\intermediates\incremental\debug\mergeDebugResources\merged.dir +net.micode.notes.app-mergeDebugResources-7 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\intermediates\incremental\debug\mergeDebugResources\stripped.dir +net.micode.notes.app-merged_res-8 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\build\intermediates\merged_res\debug +net.micode.notes.app-debug-9 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\debug\res +net.micode.notes.app-main-10 C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\res diff --git a/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt b/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt new file mode 100644 index 0000000..8776494 --- /dev/null +++ b/app/build/intermediates/stable_resource_ids_file/debug/stableIds.txt @@ -0,0 +1,1474 @@ +net.micode.notes:xml/widget_4x_info = 0x7f110003 +net.micode.notes:styleable/View = 0x7f100029 +net.micode.notes:styleable/TextAppearance = 0x7f100027 +net.micode.notes:styleable/StateListDrawableItem = 0x7f100025 +net.micode.notes:styleable/PopupWindowBackgroundState = 0x7f100020 +net.micode.notes:styleable/ListPopupWindow = 0x7f10001b +net.micode.notes:styleable/GradientColorItem = 0x7f100018 +net.micode.notes:styleable/FontFamilyFont = 0x7f100016 +net.micode.notes:styleable/ColorStateListItem = 0x7f100010 +net.micode.notes:styleable/ButtonBarLayout = 0x7f10000f +net.micode.notes:styleable/AppCompatTextHelper = 0x7f10000c +net.micode.notes:styleable/AppCompatSeekBar = 0x7f10000b +net.micode.notes:styleable/AppCompatImageView = 0x7f10000a +net.micode.notes:styleable/AnimatedStateListDrawableTransition = 0x7f100009 +net.micode.notes:styleable/AnimatedStateListDrawableCompat = 0x7f100007 +net.micode.notes:styleable/ActionMode = 0x7f100004 +net.micode.notes:styleable/ActionBarLayout = 0x7f100001 +net.micode.notes:style/Widget.Support.CoordinatorLayout = 0x7f0f0164 +net.micode.notes:style/Widget.AppCompat.Toolbar = 0x7f0f0160 +net.micode.notes:style/Widget.AppCompat.TextView.SpinnerItem = 0x7f0f015f +net.micode.notes:style/Widget.AppCompat.Spinner.DropDown.ActionBar = 0x7f0f015d +net.micode.notes:style/Widget.AppCompat.Spinner = 0x7f0f015b +net.micode.notes:style/Widget.AppCompat.SeekBar = 0x7f0f0159 +net.micode.notes:style/Widget.AppCompat.RatingBar.Small = 0x7f0f0156 +net.micode.notes:style/Widget.AppCompat.RatingBar.Indicator = 0x7f0f0155 +net.micode.notes:style/Widget.AppCompat.RatingBar = 0x7f0f0154 +net.micode.notes:style/Widget.AppCompat.ProgressBar = 0x7f0f0152 +net.micode.notes:style/Widget.AppCompat.PopupMenu = 0x7f0f014f +net.micode.notes:style/Widget.AppCompat.ListView.DropDown = 0x7f0f014d +net.micode.notes:style/Widget.AppCompat.ListView = 0x7f0f014c +net.micode.notes:style/Widget.AppCompat.ListPopupWindow = 0x7f0f014b +net.micode.notes:style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar = 0x7f0f0149 +net.micode.notes:style/Widget.AppCompat.Light.SearchView = 0x7f0f0148 +net.micode.notes:style/Widget.AppCompat.Light.PopupMenu = 0x7f0f0146 +net.micode.notes:style/Widget.AppCompat.Light.ListView.DropDown = 0x7f0f0145 +net.micode.notes:styleable/ViewStubCompat = 0x7f10002b +net.micode.notes:style/Widget.AppCompat.Light.ListPopupWindow = 0x7f0f0144 +net.micode.notes:style/Widget.AppCompat.Light.DropDownItem.Spinner = 0x7f0f0143 +net.micode.notes:style/Widget.AppCompat.Light.AutoCompleteTextView = 0x7f0f0142 +net.micode.notes:style/Widget.AppCompat.Light.ActionMode.Inverse = 0x7f0f0140 +net.micode.notes:style/Widget.AppCompat.SeekBar.Discrete = 0x7f0f015a +net.micode.notes:style/Widget.AppCompat.Light.ActionButton.Overflow = 0x7f0f013f +net.micode.notes:style/Widget.AppCompat.Light.ActionButton.CloseMode = 0x7f0f013e +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabView.Inverse = 0x7f0f013c +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabText = 0x7f0f0139 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabBar.Inverse = 0x7f0f0138 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabBar = 0x7f0f0137 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.Solid = 0x7f0f0135 +net.micode.notes:style/Widget.AppCompat.EditText = 0x7f0f0132 +net.micode.notes:style/Widget.AppCompat.DropDownItem.Spinner = 0x7f0f0131 +net.micode.notes:styleable/FontFamily = 0x7f100015 +net.micode.notes:style/Widget.AppCompat.CompoundButton.CheckBox = 0x7f0f012d +net.micode.notes:style/Widget.AppCompat.ButtonBar.AlertDialog = 0x7f0f012c +net.micode.notes:style/Widget.AppCompat.Button.Small = 0x7f0f012a +net.micode.notes:style/Widget.AppCompat.Button.Borderless = 0x7f0f0126 +net.micode.notes:style/Widget.AppCompat.ActivityChooserView = 0x7f0f0123 +net.micode.notes:style/Widget.AppCompat.ActionMode = 0x7f0f0122 +net.micode.notes:style/Widget.AppCompat.ActionButton.Overflow = 0x7f0f0121 +net.micode.notes:style/Widget.AppCompat.ActionButton = 0x7f0f011f +net.micode.notes:style/Widget.AppCompat.ActionBar.TabView = 0x7f0f011e +net.micode.notes:style/Widget.AppCompat.ActionBar.TabBar = 0x7f0f011c +net.micode.notes:style/Widget.AppCompat.ActionBar.Solid = 0x7f0f011b +net.micode.notes:style/ThemeOverlay.AppCompat.Light = 0x7f0f0119 +net.micode.notes:style/ThemeOverlay.AppCompat.Dialog = 0x7f0f0117 +net.micode.notes:style/ThemeOverlay.AppCompat.Dark = 0x7f0f0115 +net.micode.notes:style/ThemeOverlay.AppCompat.ActionBar = 0x7f0f0114 +net.micode.notes:style/Theme.AppCompat.Light.DialogWhenLarge = 0x7f0f0110 +net.micode.notes:style/Theme.AppCompat.Light.Dialog.MinWidth = 0x7f0f010f +net.micode.notes:style/Theme.AppCompat.Light.DarkActionBar = 0x7f0f010c +net.micode.notes:style/Widget.AppCompat.AutoCompleteTextView = 0x7f0f0124 +net.micode.notes:style/Theme.AppCompat.DayNight.Dialog.MinWidth = 0x7f0f0104 +net.micode.notes:style/Theme.AppCompat.DayNight.DarkActionBar = 0x7f0f0101 +net.micode.notes:style/Theme.AppCompat = 0x7f0f00fe +net.micode.notes:style/TextAppearance.Compat.Notification.Time = 0x7f0f00f2 +net.micode.notes:style/TextAppearance.AppCompat.Widget.TextView.SpinnerItem = 0x7f0f00ee +net.micode.notes:style/Theme.AppCompat.DialogWhenLarge = 0x7f0f010a +net.micode.notes:style/TextAppearance.AppCompat.Widget.Switch = 0x7f0f00ed +net.micode.notes:style/TextAppearance.AppCompat.Widget.DropDownItem = 0x7f0f00e9 +net.micode.notes:style/TextAppearance.AppCompat.Widget.Button.Borderless.Colored = 0x7f0f00e6 +net.micode.notes:style/Widget.AppCompat.PopupWindow = 0x7f0f0151 +net.micode.notes:style/TextAppearance.AppCompat.Widget.Button = 0x7f0f00e5 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle.Inverse = 0x7f0f00e2 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionMode.Subtitle = 0x7f0f00e1 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse = 0x7f0f00e0 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionBar.Title = 0x7f0f00df +net.micode.notes:style/Widget.AppCompat.Light.ActivityChooserView = 0x7f0f0141 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse = 0x7f0f00de +net.micode.notes:style/TextAppearance.AppCompat.Subhead.Inverse = 0x7f0f00d8 +net.micode.notes:style/TextAppearance.AppCompat.Small = 0x7f0f00d5 +net.micode.notes:style/TextAppearance.AppCompat.SearchResult.Title = 0x7f0f00d4 +net.micode.notes:style/TextAppearance.AppCompat.Menu = 0x7f0f00d2 +net.micode.notes:style/TextAppearance.AppCompat.Medium.Inverse = 0x7f0f00d1 +net.micode.notes:style/Widget.AppCompat.Light.PopupMenu.Overflow = 0x7f0f0147 +net.micode.notes:style/TextAppearance.AppCompat.Medium = 0x7f0f00d0 +net.micode.notes:style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small = 0x7f0f00cf +net.micode.notes:style/TextAppearance.AppCompat.Light.SearchResult.Title = 0x7f0f00cd +net.micode.notes:style/TextAppearance.AppCompat.Headline = 0x7f0f00c8 +net.micode.notes:style/TextAppearance.AppCompat.Display1 = 0x7f0f00c4 +net.micode.notes:style/TextAppearance.AppCompat.Caption = 0x7f0f00c3 +net.micode.notes:style/TextAppearance.AppCompat.Button = 0x7f0f00c2 +net.micode.notes:style/TextAppearance.AppCompat.Body1 = 0x7f0f00c0 +net.micode.notes:style/RtlUnderlay.Widget.AppCompat.ActionButton.Overflow = 0x7f0f00be +net.micode.notes:styleable/CoordinatorLayout = 0x7f100012 +net.micode.notes:style/RtlUnderlay.Widget.AppCompat.ActionButton = 0x7f0f00bd +net.micode.notes:style/RtlOverlay.Widget.AppCompat.SearchView.MagIcon = 0x7f0f00bc +net.micode.notes:style/RtlOverlay.Widget.AppCompat.Search.DropDown.Text = 0x7f0f00bb +net.micode.notes:style/RtlOverlay.Widget.AppCompat.Search.DropDown.Query = 0x7f0f00ba +net.micode.notes:style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon2 = 0x7f0f00b9 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem.Title = 0x7f0f00b6 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem.Text = 0x7f0f00b5 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem.InternalGroup = 0x7f0f00b2 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem = 0x7f0f00b1 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.DialogTitle.Icon = 0x7f0f00b0 +net.micode.notes:style/Theme.AppCompat.DayNight.NoActionBar = 0x7f0f0106 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.ActionBar.TitleItem = 0x7f0f00af +net.micode.notes:style/RtlOverlay.DialogWindowTitle.AppCompat = 0x7f0f00ae +net.micode.notes:styleable/MenuView = 0x7f10001e +net.micode.notes:style/Platform.Widget.AppCompat.Spinner = 0x7f0f00ad +net.micode.notes:style/Platform.V25.AppCompat.Light = 0x7f0f00ac +net.micode.notes:style/TextAppearance.Compat.Notification.Info = 0x7f0f00f0 +net.micode.notes:style/Platform.V21.AppCompat.Light = 0x7f0f00aa +net.micode.notes:style/Platform.ThemeOverlay.AppCompat.Dark = 0x7f0f00a7 +net.micode.notes:style/TextAppearance.AppCompat.Widget.PopupMenu.Header = 0x7f0f00ea +net.micode.notes:style/Platform.AppCompat = 0x7f0f00a4 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem.SubmenuArrow = 0x7f0f00b4 +net.micode.notes:style/Base.Widget.AppCompat.Toolbar = 0x7f0f009e +net.micode.notes:style/Base.Widget.AppCompat.TextView.SpinnerItem = 0x7f0f009d +net.micode.notes:style/Base.Widget.AppCompat.SeekBar.Discrete = 0x7f0f009a +net.micode.notes:style/Base.Widget.AppCompat.SearchView.ActionBar = 0x7f0f0098 +net.micode.notes:style/Base.Widget.AppCompat.SearchView = 0x7f0f0097 +net.micode.notes:style/Base.Widget.AppCompat.PopupMenu = 0x7f0f008f +net.micode.notes:style/Base.Widget.AppCompat.ListView.DropDown = 0x7f0f008d +net.micode.notes:style/Base.Widget.AppCompat.ListPopupWindow = 0x7f0f008b +net.micode.notes:style/Base.Widget.AppCompat.ListMenuView = 0x7f0f008a +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar.TabView = 0x7f0f0087 +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar.TabText = 0x7f0f0085 +net.micode.notes:styleable/ViewBackgroundHelper = 0x7f10002a +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar.Solid = 0x7f0f0083 +net.micode.notes:style/Base.Widget.AppCompat.DropDownItem.Spinner = 0x7f0f007f +net.micode.notes:style/Base.Widget.AppCompat.DrawerArrowToggle = 0x7f0f007d +net.micode.notes:style/TextAppearance.AppCompat.Display4 = 0x7f0f00c7 +net.micode.notes:style/Base.Widget.AppCompat.ButtonBar.AlertDialog = 0x7f0f0079 +net.micode.notes:style/Base.Widget.AppCompat.ButtonBar = 0x7f0f0078 +net.micode.notes:style/Base.Widget.AppCompat.Button.Small = 0x7f0f0077 +net.micode.notes:style/Base.Widget.AppCompat.Button.Colored = 0x7f0f0076 +net.micode.notes:style/Base.Widget.AppCompat.RatingBar.Indicator = 0x7f0f0095 +net.micode.notes:style/Base.Widget.AppCompat.Button.Borderless = 0x7f0f0073 +net.micode.notes:style/Base.Widget.AppCompat.ActionMode = 0x7f0f006f +net.micode.notes:style/Widget.AppCompat.ActionButton.CloseMode = 0x7f0f0120 +net.micode.notes:style/Base.Widget.AppCompat.ActionButton.Overflow = 0x7f0f006e +net.micode.notes:style/Base.Widget.AppCompat.ActionButton = 0x7f0f006c +net.micode.notes:style/Base.Widget.AppCompat.ActionBar.TabText = 0x7f0f006a +net.micode.notes:style/Widget.AppCompat.ActionBar.TabText = 0x7f0f011d +net.micode.notes:style/ThemeOverlay.AppCompat.Dark.ActionBar = 0x7f0f0116 +net.micode.notes:style/Base.V7.Widget.AppCompat.Toolbar = 0x7f0f0066 +net.micode.notes:styleable/LinearLayoutCompat_Layout = 0x7f10001a +net.micode.notes:style/Base.V7.Theme.AppCompat.Light.Dialog = 0x7f0f0062 +net.micode.notes:style/Base.V7.Theme.AppCompat.Light = 0x7f0f0061 +net.micode.notes:style/Base.V7.Theme.AppCompat.Dialog = 0x7f0f0060 +net.micode.notes:style/Base.V28.Theme.AppCompat.Light = 0x7f0f005e +net.micode.notes:style/Base.V28.Theme.AppCompat = 0x7f0f005d +net.micode.notes:style/Base.V26.Widget.AppCompat.Toolbar = 0x7f0f005c +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabText.Inverse = 0x7f0f013a +net.micode.notes:style/TextAppearance.AppCompat.SearchResult.Subtitle = 0x7f0f00d3 +net.micode.notes:style/Base.V26.Theme.AppCompat.Light = 0x7f0f005b +net.micode.notes:style/Base.V23.Theme.AppCompat.Light = 0x7f0f0059 +net.micode.notes:styleable/LinearLayoutCompat = 0x7f100019 +net.micode.notes:style/Base.V23.Theme.AppCompat = 0x7f0f0058 +net.micode.notes:style/Base.V21.Theme.AppCompat.Light = 0x7f0f0053 +net.micode.notes:style/Base.V21.Theme.AppCompat.Dialog = 0x7f0f0052 +net.micode.notes:style/Base.ThemeOverlay.AppCompat.Light = 0x7f0f0050 +net.micode.notes:style/Base.ThemeOverlay.AppCompat.Dialog.Alert = 0x7f0f004f +net.micode.notes:style/Base.ThemeOverlay.AppCompat.Dialog = 0x7f0f004e +net.micode.notes:style/Base.ThemeOverlay.AppCompat = 0x7f0f004a +net.micode.notes:style/Base.Theme.AppCompat.Light.DialogWhenLarge = 0x7f0f0049 +net.micode.notes:style/Base.Theme.AppCompat.Light.Dialog.MinWidth = 0x7f0f0048 +net.micode.notes:style/Base.Theme.AppCompat.Light.Dialog.FixedSize = 0x7f0f0047 +net.micode.notes:style/Base.Theme.AppCompat.Light = 0x7f0f0043 +net.micode.notes:style/Base.Theme.AppCompat.Dialog = 0x7f0f003e +net.micode.notes:style/Base.Widget.AppCompat.DrawerArrowToggle.Common = 0x7f0f007e +net.micode.notes:style/Base.Theme.AppCompat.CompactMenu = 0x7f0f003d +net.micode.notes:style/Base.TextAppearance.Widget.AppCompat.Toolbar.Title = 0x7f0f003b +net.micode.notes:style/Base.TextAppearance.Widget.AppCompat.Toolbar.Subtitle = 0x7f0f003a +net.micode.notes:style/Base.TextAppearance.Widget.AppCompat.ExpandedMenu.Item = 0x7f0f0039 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.PopupMenu.Large = 0x7f0f0035 +net.micode.notes:style/Base.Widget.AppCompat.CompoundButton.RadioButton = 0x7f0f007b +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.PopupMenu.Header = 0x7f0f0034 +net.micode.notes:style/Base.Widget.AppCompat.Button = 0x7f0f0072 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.DropDownItem = 0x7f0f0033 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.Button.Inverse = 0x7f0f0032 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.Button.Colored = 0x7f0f0031 +net.micode.notes:style/Widget.AppCompat.SearchView = 0x7f0f0157 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.Button = 0x7f0f002f +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionMode.Subtitle = 0x7f0f002d +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse = 0x7f0f002c +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle.Inverse = 0x7f0f002a +net.micode.notes:style/Base.TextAppearance.AppCompat.Title.Inverse = 0x7f0f0026 +net.micode.notes:style/Base.TextAppearance.AppCompat.SearchResult.Subtitle = 0x7f0f001f +net.micode.notes:style/Base.TextAppearance.AppCompat.SearchResult = 0x7f0f001e +net.micode.notes:style/Base.TextAppearance.AppCompat.Menu = 0x7f0f001d +net.micode.notes:style/TextAppearance.Widget.AppCompat.Toolbar.Title = 0x7f0f00f6 +net.micode.notes:style/Base.TextAppearance.AppCompat.Medium.Inverse = 0x7f0f001c +net.micode.notes:style/Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Small = 0x7f0f001a +net.micode.notes:style/Base.TextAppearance.AppCompat.Light.Widget.PopupMenu.Large = 0x7f0f0019 +net.micode.notes:style/Base.TextAppearance.AppCompat.Display3 = 0x7f0f0013 +net.micode.notes:style/Base.TextAppearance.AppCompat.Display1 = 0x7f0f0011 +net.micode.notes:style/Base.TextAppearance.AppCompat.Body2 = 0x7f0f000e +net.micode.notes:style/Base.TextAppearance.AppCompat = 0x7f0f000c +net.micode.notes:styleable/SearchView = 0x7f100022 +net.micode.notes:style/Base.AlertDialog.AppCompat.Light = 0x7f0f0006 +net.micode.notes:style/Base.AlertDialog.AppCompat = 0x7f0f0005 +net.micode.notes:style/Animation.AppCompat.Tooltip = 0x7f0f0004 +net.micode.notes:style/Animation.AppCompat.DropDownUp = 0x7f0f0003 +net.micode.notes:style/AlertDialog.AppCompat.Light = 0x7f0f0001 +net.micode.notes:style/Base.Widget.AppCompat.ActionBar.Solid = 0x7f0f0068 +net.micode.notes:style/AlertDialog.AppCompat = 0x7f0f0000 +net.micode.notes:string/ticker_fail = 0x7f0e008a +net.micode.notes:string/ticker_cancel = 0x7f0e0089 +net.micode.notes:string/success_sync_account = 0x7f0e0085 +net.micode.notes:string/success_sdcard_export = 0x7f0e0084 +net.micode.notes:string/status_bar_notification_info_overflow = 0x7f0e0083 +net.micode.notes:style/Widget.AppCompat.Spinner.DropDown = 0x7f0f015c +net.micode.notes:string/set_remind_time_message = 0x7f0e0082 +net.micode.notes:string/search_setting_description = 0x7f0e0081 +net.micode.notes:string/search_menu_title = 0x7f0e0080 +net.micode.notes:string/search_label = 0x7f0e007f +net.micode.notes:string/search_hint = 0x7f0e007e +net.micode.notes:string/preferences_menu_remove_account = 0x7f0e0079 +net.micode.notes:string/preferences_last_sync_time_format = 0x7f0e0076 +net.micode.notes:string/preferences_dialog_select_account_title = 0x7f0e0074 +net.micode.notes:string/preferences_dialog_select_account_tips = 0x7f0e0073 +net.micode.notes:string/preferences_button_sync_cancel = 0x7f0e006f +net.micode.notes:string/preferences_bg_random_appear_title = 0x7f0e006e +net.micode.notes:style/Base.Widget.AppCompat.CompoundButton.CheckBox = 0x7f0f007a +net.micode.notes:string/preferences_account_title = 0x7f0e006c +net.micode.notes:style/TextAppearancePrimaryItem = 0x7f0f00fa +net.micode.notes:style/Platform.ThemeOverlay.AppCompat = 0x7f0f00a6 +net.micode.notes:string/notelist_menu_new = 0x7f0e0069 +net.micode.notes:string/notealert_ok = 0x7f0e0068 +net.micode.notes:string/note_link_tel = 0x7f0e0065 +net.micode.notes:style/Base.ThemeOverlay.AppCompat.Dark = 0x7f0f004c +net.micode.notes:string/note_link_other = 0x7f0e0064 +net.micode.notes:style/Base.TextAppearance.AppCompat.Body1 = 0x7f0f000d +net.micode.notes:string/menu_title_select_folder = 0x7f0e0061 +net.micode.notes:string/menu_sync_cancel = 0x7f0e0060 +net.micode.notes:string/menu_sync = 0x7f0e005f +net.micode.notes:string/menu_share = 0x7f0e005e +net.micode.notes:string/menu_select_title = 0x7f0e005b +net.micode.notes:string/menu_select_none = 0x7f0e005a +net.micode.notes:string/menu_select_all = 0x7f0e0059 +net.micode.notes:string/menu_move_parent_folder = 0x7f0e0055 +net.micode.notes:style/Base.Widget.AppCompat.SeekBar = 0x7f0f0099 +net.micode.notes:string/menu_font_size = 0x7f0e0050 +net.micode.notes:string/menu_folder_delete = 0x7f0e004c +net.micode.notes:styleable/RecycleListView = 0x7f100021 +net.micode.notes:string/menu_folder_change_name = 0x7f0e004b +net.micode.notes:style/Widget.Compat.NotificationActionText = 0x7f0f0163 +net.micode.notes:string/menu_export_text = 0x7f0e004a +net.micode.notes:style/Base.V7.ThemeOverlay.AppCompat.Dialog = 0x7f0f0063 +net.micode.notes:string/menu_delete = 0x7f0e0048 +net.micode.notes:string/info_note_enter_desktop = 0x7f0e0045 +net.micode.notes:string/format_move_notes_to_folder = 0x7f0e0043 +net.micode.notes:style/TextAppearance.AppCompat.Small.Inverse = 0x7f0f00d6 +net.micode.notes:string/format_exported_file_location = 0x7f0e0041 +net.micode.notes:string/format_date_ymd = 0x7f0e003f +net.micode.notes:string/failed_sdcard_export = 0x7f0e003b +net.micode.notes:string/error_sync_network = 0x7f0e003a +net.micode.notes:style/Base.Widget.AppCompat.AutoCompleteTextView = 0x7f0f0071 +net.micode.notes:string/error_sdcard_unmounted = 0x7f0e0037 +net.micode.notes:string/error_sdcard_export = 0x7f0e0036 +net.micode.notes:string/error_note_empty_for_clock = 0x7f0e0033 +net.micode.notes:string/datetime_dialog_cancel = 0x7f0e0030 +net.micode.notes:string/call_record_folder_name = 0x7f0e002f +net.micode.notes:style/ThemeOverlay.AppCompat = 0x7f0f0113 +net.micode.notes:string/app_widget2x2 = 0x7f0e002c +net.micode.notes:string/alert_title_delete = 0x7f0e002a +net.micode.notes:string/alert_message_delete_notes = 0x7f0e0029 +net.micode.notes:string/abc_toolbar_collapse_description = 0x7f0e0026 +net.micode.notes:string/abc_shareactionprovider_share_with_application = 0x7f0e0025 +net.micode.notes:style/Theme.AppCompat.Light.Dialog.Alert = 0x7f0f010e +net.micode.notes:string/abc_shareactionprovider_share_with = 0x7f0e0024 +net.micode.notes:string/abc_searchview_description_voice = 0x7f0e0023 +net.micode.notes:string/abc_searchview_description_submit = 0x7f0e0022 +net.micode.notes:string/abc_searchview_description_search = 0x7f0e0021 +net.micode.notes:string/abc_searchview_description_clear = 0x7f0e001f +net.micode.notes:style/TextAppearance.AppCompat.Widget.Button.Inverse = 0x7f0f00e8 +net.micode.notes:string/abc_search_hint = 0x7f0e001e +net.micode.notes:string/abc_prepend_shortcut_label = 0x7f0e001d +net.micode.notes:string/abc_menu_space_shortcut_label = 0x7f0e001b +net.micode.notes:style/Base.Widget.AppCompat.ActionButton.CloseMode = 0x7f0f006d +net.micode.notes:string/abc_menu_shift_shortcut_label = 0x7f0e001a +net.micode.notes:string/abc_menu_delete_shortcut_label = 0x7f0e0016 +net.micode.notes:string/abc_menu_ctrl_shortcut_label = 0x7f0e0015 +net.micode.notes:string/abc_font_family_title_material = 0x7f0e0013 +net.micode.notes:string/abc_font_family_subhead_material = 0x7f0e0012 +net.micode.notes:string/abc_font_family_menu_material = 0x7f0e0011 +net.micode.notes:string/abc_font_family_headline_material = 0x7f0e0010 +net.micode.notes:string/format_datetime_mdhm = 0x7f0e0040 +net.micode.notes:string/abc_font_family_display_4_material = 0x7f0e000f +net.micode.notes:string/abc_font_family_display_3_material = 0x7f0e000e +net.micode.notes:string/abc_font_family_display_2_material = 0x7f0e000d +net.micode.notes:string/abc_font_family_display_1_material = 0x7f0e000c +net.micode.notes:style/Base.TextAppearance.AppCompat.Headline = 0x7f0f0015 +net.micode.notes:string/abc_font_family_caption_material = 0x7f0e000b +net.micode.notes:style/Base.Widget.AppCompat.ActivityChooserView = 0x7f0f0070 +net.micode.notes:style/Base.V21.Theme.AppCompat.Light.Dialog = 0x7f0f0054 +net.micode.notes:string/abc_capital_off = 0x7f0e0006 +net.micode.notes:string/abc_activity_chooser_view_see_all = 0x7f0e0004 +net.micode.notes:string/abc_action_mode_done = 0x7f0e0003 +net.micode.notes:string/abc_action_bar_up_description = 0x7f0e0001 +net.micode.notes:string/file_path = 0x7f0e003d +net.micode.notes:string/abc_action_bar_home_description = 0x7f0e0000 +net.micode.notes:raw/introduction = 0x7f0d0000 +net.micode.notes:menu/note_list_dropdown = 0x7f0b0004 +net.micode.notes:menu/note_list = 0x7f0b0003 +net.micode.notes:menu/call_record_folder = 0x7f0b0001 +net.micode.notes:menu/call_note_edit = 0x7f0b0000 +net.micode.notes:layout/support_simple_spinner_dropdown_item = 0x7f0a0031 +net.micode.notes:layout/settings_header = 0x7f0a0030 +net.micode.notes:layout/select_dialog_singlechoice_material = 0x7f0a002f +net.micode.notes:layout/notification_template_part_time = 0x7f0a002c +net.micode.notes:layout/notification_template_part_chronometer = 0x7f0a002b +net.micode.notes:string/menu_search = 0x7f0e0058 +net.micode.notes:layout/notification_template_icon_group = 0x7f0a002a +net.micode.notes:layout/notification_template_custom_big = 0x7f0a0029 +net.micode.notes:layout/note_item = 0x7f0a0023 +net.micode.notes:string/preferences_toast_success_set_accout = 0x7f0e007c +net.micode.notes:layout/note_edit_list_item = 0x7f0a0022 +net.micode.notes:layout/folder_list_item = 0x7f0a0020 +net.micode.notes:layout/datetime_picker = 0x7f0a001e +net.micode.notes:layout/add_account_text = 0x7f0a001d +net.micode.notes:style/Base.V26.Theme.AppCompat = 0x7f0f005a +net.micode.notes:layout/account_dialog_title = 0x7f0a001c +net.micode.notes:layout/abc_select_dialog_material = 0x7f0a001a +net.micode.notes:layout/abc_search_view = 0x7f0a0019 +net.micode.notes:string/sync_progress_syncing = 0x7f0e0088 +net.micode.notes:layout/abc_search_dropdown_item_icons_2line = 0x7f0a0018 +net.micode.notes:layout/abc_screen_toolbar = 0x7f0a0017 +net.micode.notes:styleable/MenuGroup = 0x7f10001c +net.micode.notes:style/Widget.AppCompat.Button.ButtonBar.AlertDialog = 0x7f0f0128 +net.micode.notes:layout/abc_popup_menu_item_layout = 0x7f0a0013 +net.micode.notes:layout/abc_list_menu_item_radio = 0x7f0a0011 +net.micode.notes:layout/abc_list_menu_item_layout = 0x7f0a0010 +net.micode.notes:style/Base.DialogWindowTitle.AppCompat = 0x7f0f000a +net.micode.notes:layout/abc_list_menu_item_icon = 0x7f0a000f +net.micode.notes:plurals/search_results_title = 0x7f0c0000 +net.micode.notes:layout/abc_expanded_menu_layout = 0x7f0a000d +net.micode.notes:layout/abc_cascading_menu_item_layout = 0x7f0a000b +net.micode.notes:layout/abc_alert_dialog_title_material = 0x7f0a000a +net.micode.notes:style/Platform.AppCompat.Light = 0x7f0f00a5 +net.micode.notes:layout/abc_activity_chooser_view_list_item = 0x7f0a0007 +net.micode.notes:layout/abc_action_mode_bar = 0x7f0a0004 +net.micode.notes:layout/abc_action_menu_layout = 0x7f0a0003 +net.micode.notes:style/Base.TextAppearance.AppCompat.Caption = 0x7f0f0010 +net.micode.notes:layout/abc_action_menu_item_layout = 0x7f0a0002 +net.micode.notes:layout/abc_action_bar_up_container = 0x7f0a0001 +net.micode.notes:layout/abc_action_bar_title_item = 0x7f0a0000 +net.micode.notes:integer/config_tooltipAnimTime = 0x7f090003 +net.micode.notes:integer/cancel_button_image_alpha = 0x7f090002 +net.micode.notes:integer/abc_config_activityShortDur = 0x7f090001 +net.micode.notes:integer/abc_config_activityDefaultDur = 0x7f090000 +net.micode.notes:id/wrap_content = 0x7f0800c8 +net.micode.notes:id/widget_bg_image = 0x7f0800c5 +net.micode.notes:id/useLogo = 0x7f0800c4 +net.micode.notes:id/uniform = 0x7f0800c2 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.Switch = 0x7f0f0037 +net.micode.notes:id/tv_title_bar = 0x7f0800c1 +net.micode.notes:id/tv_title = 0x7f0800c0 +net.micode.notes:style/Base.Widget.AppCompat.Spinner = 0x7f0f009b +net.micode.notes:id/tv_time = 0x7f0800bf +net.micode.notes:xml/searchable = 0x7f110001 +net.micode.notes:style/Base.Widget.AppCompat.Toolbar.Button.Navigation = 0x7f0f009f +net.micode.notes:style/Base.Theme.AppCompat.Light.DarkActionBar = 0x7f0f0044 +net.micode.notes:id/tv_name = 0x7f0800be +net.micode.notes:string/hint_foler_name = 0x7f0e0044 +net.micode.notes:id/tv_modified_date = 0x7f0800bd +net.micode.notes:id/tv_folder_name = 0x7f0800bc +net.micode.notes:id/topPanel = 0x7f0800ba +net.micode.notes:id/title_template = 0x7f0800b8 +net.micode.notes:style/Base.TextAppearance.AppCompat.Title = 0x7f0f0025 +net.micode.notes:id/textSpacerNoTitle = 0x7f0800b4 +net.micode.notes:string/preferences_menu_change_account = 0x7f0e0078 +net.micode.notes:id/textSpacerNoButtons = 0x7f0800b3 +net.micode.notes:integer/status_bar_notification_info_maxnum = 0x7f090004 +net.micode.notes:id/text = 0x7f0800b1 +net.micode.notes:style/TextAppearance.AppCompat.Title.Inverse = 0x7f0f00da +net.micode.notes:id/tag_unhandled_key_listeners = 0x7f0800b0 +net.micode.notes:style/Widget.AppCompat.Toolbar.Button.Navigation = 0x7f0f0161 +net.micode.notes:id/tag_unhandled_key_event_manager = 0x7f0800af +net.micode.notes:id/tabMode = 0x7f0800ad +net.micode.notes:id/sv_note_edit = 0x7f0800ac +net.micode.notes:id/submit_area = 0x7f0800ab +net.micode.notes:style/Theme.AppCompat.Dialog.MinWidth = 0x7f0f0109 +net.micode.notes:id/submenuarrow = 0x7f0800aa +net.micode.notes:styleable/Spinner = 0x7f100023 +net.micode.notes:id/start = 0x7f0800a9 +net.micode.notes:id/src_atop = 0x7f0800a6 +net.micode.notes:id/showCustom = 0x7f0800a1 +net.micode.notes:id/selection_menu = 0x7f08009f +net.micode.notes:id/search_src_text = 0x7f08009c +net.micode.notes:id/search_plate = 0x7f08009b +net.micode.notes:id/search_mag_icon = 0x7f08009a +net.micode.notes:style/Widget.AppCompat.ImageButton = 0x7f0f0133 +net.micode.notes:id/search_edit_frame = 0x7f080098 +net.micode.notes:layout/abc_activity_chooser_view = 0x7f0a0006 +net.micode.notes:id/search_bar = 0x7f080095 +net.micode.notes:id/search_badge = 0x7f080094 +net.micode.notes:id/scrollView = 0x7f080093 +net.micode.notes:id/scrollIndicatorDown = 0x7f080091 +net.micode.notes:id/screen = 0x7f080090 +net.micode.notes:id/right_side = 0x7f08008f +net.micode.notes:styleable/ActionBar = 0x7f100000 +net.micode.notes:id/right_icon = 0x7f08008e +net.micode.notes:id/right = 0x7f08008d +net.micode.notes:id/progress_horizontal = 0x7f08008b +net.micode.notes:style/Base.Widget.AppCompat.Light.PopupMenu = 0x7f0f0088 +net.micode.notes:string/abc_font_family_button_material = 0x7f0e000a +net.micode.notes:id/progress_circular = 0x7f08008a +net.micode.notes:style/Base.Widget.AppCompat.PopupMenu.Overflow = 0x7f0f0090 +net.micode.notes:id/parentPanel = 0x7f080087 +net.micode.notes:attr/borderlessButtonStyle = 0x7f030037 +net.micode.notes:id/notification_main_column_container = 0x7f080086 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.Search.DropDown = 0x7f0f00b7 +net.micode.notes:string/abc_action_menu_overflow_description = 0x7f0e0002 +net.micode.notes:id/notes_list = 0x7f080083 +net.micode.notes:id/note_title = 0x7f080082 +net.micode.notes:id/note_item = 0x7f080081 +net.micode.notes:id/note_edit_list = 0x7f08007f +net.micode.notes:id/src_in = 0x7f0800a7 +net.micode.notes:id/normal = 0x7f08007d +net.micode.notes:id/navigation_bar = 0x7f08007a +net.micode.notes:attr/windowActionBar = 0x7f030106 +net.micode.notes:id/multiply = 0x7f080079 +net.micode.notes:id/list_item = 0x7f080063 +net.micode.notes:id/menu_sync = 0x7f080074 +net.micode.notes:id/menu_send_to_desktop = 0x7f080071 +net.micode.notes:id/menu_search = 0x7f080070 +net.micode.notes:id/menu_new_note = 0x7f08006f +net.micode.notes:id/menu_list_mode = 0x7f08006d +net.micode.notes:id/menu_font_size = 0x7f08006c +net.micode.notes:id/menu_export_text = 0x7f08006b +net.micode.notes:attr/listPreferredItemHeight = 0x7f03009d +net.micode.notes:color/highlighted_text_material_light = 0x7f05002f +net.micode.notes:id/menu_alert = 0x7f080068 +net.micode.notes:id/ll_font_super = 0x7f080067 +net.micode.notes:attr/listChoiceBackgroundIndicator = 0x7f030097 +net.micode.notes:id/ll_font_normal = 0x7f080065 +net.micode.notes:id/line1 = 0x7f080060 +net.micode.notes:id/left = 0x7f08005f +net.micode.notes:string/menu_send_to_desktop = 0x7f0e005c +net.micode.notes:id/notification_background = 0x7f080084 +net.micode.notes:id/iv_small_select = 0x7f08005d +net.micode.notes:attr/layout_behavior = 0x7f030092 +net.micode.notes:id/iv_medium_select = 0x7f08005c +net.micode.notes:id/iv_large_select = 0x7f08005b +net.micode.notes:dimen/abc_text_size_display_3_material = 0x7f06003f +net.micode.notes:id/iv_bg_yellow_select = 0x7f08005a +net.micode.notes:id/iv_bg_yellow = 0x7f080059 +net.micode.notes:color/material_deep_teal_500 = 0x7f050034 +net.micode.notes:id/image = 0x7f08004d +net.micode.notes:styleable/ActionMenuView = 0x7f100003 +net.micode.notes:string/menu_list_mode = 0x7f0e0053 +net.micode.notes:id/hour = 0x7f080049 +net.micode.notes:id/scrollIndicatorUp = 0x7f080092 +net.micode.notes:attr/colorControlHighlight = 0x7f03004f +net.micode.notes:id/homeAsUp = 0x7f080048 +net.micode.notes:style/TextAppearanceLarge = 0x7f0f00f7 +net.micode.notes:attr/firstBaselineToTopHeight = 0x7f030072 +net.micode.notes:id/group_divider = 0x7f080046 +net.micode.notes:attr/textAppearanceSearchResultTitle = 0x7f0300e3 +net.micode.notes:drawable/abc_list_longpressed_holo = 0x7f07002b +net.micode.notes:drawable/abc_cab_background_top_mtrl_alpha = 0x7f07000f +net.micode.notes:id/forever = 0x7f080045 +net.micode.notes:id/font_size_selector = 0x7f080044 +net.micode.notes:layout/note_list = 0x7f0a0024 +net.micode.notes:dimen/disabled_alpha_material_light = 0x7f060053 +net.micode.notes:id/fill_vertical = 0x7f080043 +net.micode.notes:layout/abc_dialog_title_material = 0x7f0a000c +net.micode.notes:id/et_edit_text = 0x7f08003d +net.micode.notes:string/preferences_last_sync_time = 0x7f0e0075 +net.micode.notes:color/abc_hint_foreground_material_dark = 0x7f050005 +net.micode.notes:id/end = 0x7f08003c +net.micode.notes:id/decor_content_parent = 0x7f080037 +net.micode.notes:attr/searchIcon = 0x7f0300c0 +net.micode.notes:id/date = 0x7f080036 +net.micode.notes:id/custom = 0x7f080034 +net.micode.notes:style/Base.Widget.AppCompat.ProgressBar.Horizontal = 0x7f0f0093 +net.micode.notes:id/content = 0x7f080032 +net.micode.notes:drawable/delete = 0x7f070058 +net.micode.notes:id/clip_vertical = 0x7f080030 +net.micode.notes:style/Base.Widget.AppCompat.RatingBar.Small = 0x7f0f0096 +net.micode.notes:id/clip_horizontal = 0x7f08002f +net.micode.notes:style/TextAppearance.AppCompat.Inverse = 0x7f0f00c9 +net.micode.notes:id/chronometer = 0x7f08002e +net.micode.notes:style/Animation.AppCompat.Dialog = 0x7f0f0002 +net.micode.notes:id/center = 0x7f08002a +net.micode.notes:id/btn_set_bg_color = 0x7f080027 +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar.TabText.Inverse = 0x7f0f0086 +net.micode.notes:attr/alpha = 0x7f030027 +net.micode.notes:id/btn_new_note = 0x7f080026 +net.micode.notes:color/abc_search_url_text_pressed = 0x7f05000e +net.micode.notes:id/blocking = 0x7f080024 +net.micode.notes:id/add = 0x7f08001c +net.micode.notes:string/note_link_web = 0x7f0e0066 +net.micode.notes:layout/dialog_edit_text = 0x7f0a001f +net.micode.notes:id/activity_chooser_view_content = 0x7f08001b +net.micode.notes:id/actions = 0x7f08001a +net.micode.notes:attr/spinnerStyle = 0x7f0300cc +net.micode.notes:id/action_mode_close_button = 0x7f080017 +net.micode.notes:id/async = 0x7f080022 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.PopupMenu.Small = 0x7f0f0036 +net.micode.notes:dimen/abc_disabled_alpha_material_dark = 0x7f060027 +net.micode.notes:id/action_mode_bar_stub = 0x7f080016 +net.micode.notes:drawable/abc_ic_star_black_36dp = 0x7f070020 +net.micode.notes:id/action_menu_presenter = 0x7f080014 +net.micode.notes:style/RtlOverlay.Widget.AppCompat.Search.DropDown.Icon1 = 0x7f0f00b8 +net.micode.notes:attr/alphabeticModifiers = 0x7f030028 +net.micode.notes:id/action_image = 0x7f080012 +net.micode.notes:color/abc_primary_text_disable_only_material_dark = 0x7f050008 +net.micode.notes:id/iv_super_select = 0x7f08005e +net.micode.notes:id/action_context_bar = 0x7f080010 +net.micode.notes:style/NoteActionBarStyle = 0x7f0f00a2 +net.micode.notes:id/action_bar_title = 0x7f08000e +net.micode.notes:id/action_bar_container = 0x7f08000a +net.micode.notes:id/action_bar_activity_content = 0x7f080009 +net.micode.notes:xml/preferences = 0x7f110000 +net.micode.notes:id/action_bar = 0x7f080008 +net.micode.notes:id/SYM = 0x7f080005 +net.micode.notes:dimen/abc_select_dialog_padding_start_material = 0x7f060037 +net.micode.notes:id/FUNCTION = 0x7f080002 +net.micode.notes:style/Theme.AppCompat.Dialog.Alert = 0x7f0f0108 +net.micode.notes:drawable/widget_4x_red = 0x7f0700a1 +net.micode.notes:style/Platform.V25.AppCompat = 0x7f0f00ab +net.micode.notes:drawable/widget_4x_white = 0x7f0700a2 +net.micode.notes:drawable/widget_4x_green = 0x7f0700a0 +net.micode.notes:style/Base.V7.Theme.AppCompat = 0x7f0f005f +net.micode.notes:dimen/highlight_alpha_material_light = 0x7f060056 +net.micode.notes:drawable/widget_4x_blue = 0x7f07009f +net.micode.notes:drawable/widget_2x_red = 0x7f07009c +net.micode.notes:string/notealert_enter = 0x7f0e0067 +net.micode.notes:string/menu_move = 0x7f0e0054 +net.micode.notes:drawable/tooltip_frame_dark = 0x7f070098 +net.micode.notes:drawable/search_result = 0x7f070094 +net.micode.notes:id/notification_main_column = 0x7f080085 +net.micode.notes:string/preferences_toast_cannot_change_account = 0x7f0e007b +net.micode.notes:attr/spinBars = 0x7f0300ca +net.micode.notes:drawable/notification_icon_background = 0x7f07008f +net.micode.notes:id/text2 = 0x7f0800b2 +net.micode.notes:drawable/notification_bg_normal = 0x7f07008d +net.micode.notes:drawable/notification_bg_low_pressed = 0x7f07008c +net.micode.notes:drawable/note_edit_color_selector_panel = 0x7f070086 +net.micode.notes:drawable/notification_bg_low_normal = 0x7f07008b +net.micode.notes:drawable/notification_bg_low = 0x7f07008a +net.micode.notes:drawable/abc_textfield_search_activated_mtrl_alpha = 0x7f070050 +net.micode.notes:drawable/title_bar_bg = 0x7f070097 +net.micode.notes:drawable/notification_bg = 0x7f070089 +net.micode.notes:drawable/notification_action_background = 0x7f070088 +net.micode.notes:style/Widget.AppCompat.CompoundButton.Switch = 0x7f0f012f +net.micode.notes:drawable/new_note_pressed = 0x7f070085 +net.micode.notes:style/TextAppearance.AppCompat.Subhead = 0x7f0f00d7 +net.micode.notes:id/amPm = 0x7f080021 +net.micode.notes:drawable/new_note_normal = 0x7f070084 +net.micode.notes:drawable/selected = 0x7f070095 +net.micode.notes:drawable/new_note = 0x7f070083 +net.micode.notes:drawable/menu_move = 0x7f070082 +net.micode.notes:style/Widget.Compat.NotificationActionContainer = 0x7f0f0162 +net.micode.notes:string/delete_remind_time_message = 0x7f0e0032 +net.micode.notes:drawable/list_white_middle = 0x7f07007a +net.micode.notes:style/Widget.AppCompat.Light.ActionButton = 0x7f0f013d +net.micode.notes:color/switch_thumb_material_light = 0x7f050051 +net.micode.notes:drawable/clock = 0x7f070057 +net.micode.notes:drawable/list_white_down = 0x7f070079 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionBar.Menu = 0x7f0f00dc +net.micode.notes:attr/actionBarTabBarStyle = 0x7f030006 +net.micode.notes:drawable/list_green_up = 0x7f070074 +net.micode.notes:attr/title = 0x7f0300f1 +net.micode.notes:drawable/list_yellow_down = 0x7f07007d +net.micode.notes:styleable/StateListDrawable = 0x7f100024 +net.micode.notes:drawable/list_green_single = 0x7f070073 +net.micode.notes:style/Widget.AppCompat.Button.Colored = 0x7f0f0129 +net.micode.notes:drawable/abc_text_select_handle_left_mtrl_light = 0x7f070049 +net.micode.notes:attr/queryHint = 0x7f0300ba +net.micode.notes:drawable/list_green_down = 0x7f070071 +net.micode.notes:drawable/list_footer_bg = 0x7f070070 +net.micode.notes:drawable/list_blue_single = 0x7f07006d +net.micode.notes:drawable/list_blue_middle = 0x7f07006c +net.micode.notes:dimen/compat_notification_large_icon_max_width = 0x7f060051 +net.micode.notes:attr/windowMinWidthMajor = 0x7f03010d +net.micode.notes:id/none = 0x7f08007c +net.micode.notes:id/titleDividerNoCustom = 0x7f0800b7 +net.micode.notes:drawable/abc_spinner_textfield_background_material = 0x7f070042 +net.micode.notes:attr/displayOptions = 0x7f030064 +net.micode.notes:drawable/list_background = 0x7f07006a +net.micode.notes:dimen/abc_cascading_menus_min_smallest_width = 0x7f060016 +net.micode.notes:drawable/icon_app = 0x7f070069 +net.micode.notes:drawable/font_super = 0x7f070068 +net.micode.notes:drawable/font_small = 0x7f070067 +net.micode.notes:style/Base.TextAppearance.AppCompat.Display2 = 0x7f0f0012 +net.micode.notes:drawable/edit_yellow = 0x7f070063 +net.micode.notes:string/menu_deselect_all = 0x7f0e0049 +net.micode.notes:drawable/edit_white = 0x7f070062 +net.micode.notes:style/TextAppearance.Widget.AppCompat.ExpandedMenu.Item = 0x7f0f00f4 +net.micode.notes:drawable/edit_title_green = 0x7f07005e +net.micode.notes:drawable/edit_title_blue = 0x7f07005d +net.micode.notes:id/account_dialog_subtitle = 0x7f080006 +net.micode.notes:drawable/edit_green = 0x7f07005b +net.micode.notes:drawable/edit_blue = 0x7f07005a +net.micode.notes:style/Base.TextAppearance.AppCompat.Large.Inverse = 0x7f0f0018 +net.micode.notes:layout/abc_screen_content_include = 0x7f0a0014 +net.micode.notes:drawable/dropdown_icon = 0x7f070059 +net.micode.notes:style/Widget.AppCompat.ListMenuView = 0x7f0f014a +net.micode.notes:string/menu_folder_view = 0x7f0e004d +net.micode.notes:id/CTRL = 0x7f080001 +net.micode.notes:drawable/notification = 0x7f070087 +net.micode.notes:drawable/call_record = 0x7f070056 +net.micode.notes:string/folder_exist = 0x7f0e003e +net.micode.notes:drawable/bg_color_btn_mask = 0x7f070055 +net.micode.notes:id/menu_new_folder = 0x7f08006e +net.micode.notes:id/collapseActionView = 0x7f080031 +net.micode.notes:drawable/bg_btn_set_color = 0x7f070054 +net.micode.notes:string/preferences_title = 0x7f0e007a +net.micode.notes:layout/note_list_footer = 0x7f0a0026 +net.micode.notes:layout/abc_popup_menu_header_item_layout = 0x7f0a0012 +net.micode.notes:drawable/abc_textfield_default_mtrl_alpha = 0x7f07004f +net.micode.notes:style/Theme.AppCompat.NoActionBar = 0x7f0f0112 +net.micode.notes:drawable/abc_textfield_activated_mtrl_alpha = 0x7f07004e +net.micode.notes:attr/barLength = 0x7f030036 +net.micode.notes:attr/popupTheme = 0x7f0300b4 +net.micode.notes:id/fill = 0x7f080041 +net.micode.notes:attr/textAppearanceSmallPopupMenu = 0x7f0300e4 +net.micode.notes:color/abc_background_cache_hint_selector_material_dark = 0x7f050000 +net.micode.notes:dimen/abc_edit_text_inset_bottom_material = 0x7f06002c +net.micode.notes:drawable/tooltip_frame_light = 0x7f070099 +net.micode.notes:string/ticker_syncing = 0x7f0e008c +net.micode.notes:drawable/abc_text_select_handle_right_mtrl_light = 0x7f07004d +net.micode.notes:style/TextAppearance.AppCompat.Large = 0x7f0f00ca +net.micode.notes:drawable/abc_text_select_handle_middle_mtrl_light = 0x7f07004b +net.micode.notes:id/never = 0x7f08007b +net.micode.notes:drawable/abc_text_select_handle_left_mtrl_dark = 0x7f070048 +net.micode.notes:id/iv_bg_white_select = 0x7f080058 +net.micode.notes:style/Base.Animation.AppCompat.Dialog = 0x7f0f0007 +net.micode.notes:id/spacer = 0x7f0800a4 +net.micode.notes:drawable/abc_tab_indicator_mtrl_alpha = 0x7f070046 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.TextView.SpinnerItem = 0x7f0f0038 +net.micode.notes:attr/actionModePasteDrawable = 0x7f030016 +net.micode.notes:drawable/notification_bg_normal_pressed = 0x7f07008e +net.micode.notes:style/Theme.AppCompat.DayNight.Dialog = 0x7f0f0102 +net.micode.notes:attr/autoSizeStepGranularity = 0x7f03002f +net.micode.notes:attr/statusBarBackground = 0x7f0300d0 +net.micode.notes:drawable/abc_tab_indicator_material = 0x7f070045 +net.micode.notes:drawable/abc_spinner_mtrl_am_alpha = 0x7f070041 +net.micode.notes:style/Base.V7.Widget.AppCompat.EditText = 0x7f0f0065 +net.micode.notes:drawable/font_normal = 0x7f070065 +net.micode.notes:attr/alertDialogCenterButtons = 0x7f030023 +net.micode.notes:drawable/abc_seekbar_track_material = 0x7f070040 +net.micode.notes:drawable/abc_seekbar_tick_mark_material = 0x7f07003f +net.micode.notes:attr/navigationMode = 0x7f0300a9 +net.micode.notes:drawable/abc_item_background_holo_dark = 0x7f070026 +net.micode.notes:drawable/abc_scrubber_track_mtrl_alpha = 0x7f07003d +net.micode.notes:attr/closeItemLayout = 0x7f030047 +net.micode.notes:id/preference_sync_button = 0x7f080089 +net.micode.notes:drawable/abc_scrubber_control_off_mtrl_alpha = 0x7f070039 +net.micode.notes:menu/sub_folder = 0x7f0b0006 +net.micode.notes:id/fill_horizontal = 0x7f080042 +net.micode.notes:string/error_note_empty_for_send_to_desktop = 0x7f0e0034 +net.micode.notes:drawable/abc_ratingbar_small_material = 0x7f070038 +net.micode.notes:id/iv_bg_red = 0x7f080055 +net.micode.notes:drawable/abc_ratingbar_indicator_material = 0x7f070036 +net.micode.notes:id/disableHome = 0x7f08003a +net.micode.notes:drawable/abc_popup_background_mtrl_mult = 0x7f070035 +net.micode.notes:attr/tint = 0x7f0300ef +net.micode.notes:drawable/abc_list_selector_holo_dark = 0x7f070032 +net.micode.notes:attr/alertDialogTheme = 0x7f030025 +net.micode.notes:dimen/abc_button_padding_vertical_material = 0x7f060015 +net.micode.notes:drawable/abc_list_selector_disabled_holo_dark = 0x7f070030 +net.micode.notes:string/preferences_dialog_change_account_title = 0x7f0e0071 +net.micode.notes:string/format_folder_files_count = 0x7f0e0042 +net.micode.notes:drawable/abc_list_selector_background_transition_holo_light = 0x7f07002f +net.micode.notes:drawable/abc_item_background_holo_light = 0x7f070027 +net.micode.notes:drawable/abc_ic_star_half_black_36dp = 0x7f070023 +net.micode.notes:drawable/abc_ic_star_half_black_16dp = 0x7f070022 +net.micode.notes:style/NoteTheme = 0x7f0f00a3 +net.micode.notes:attr/listDividerAlertDialog = 0x7f030098 +net.micode.notes:color/secondary_text_disabled_material_dark = 0x7f05004c +net.micode.notes:drawable/abc_ic_star_black_48dp = 0x7f070021 +net.micode.notes:drawable/abc_ic_search_api_material = 0x7f07001e +net.micode.notes:drawable/abc_ic_menu_share_mtrl_alpha = 0x7f07001d +net.micode.notes:drawable/abc_ic_menu_selectall_mtrl_alpha = 0x7f07001c +net.micode.notes:color/primary_text_default_material_dark = 0x7f050043 +net.micode.notes:drawable/abc_ic_menu_paste_mtrl_am_alpha = 0x7f07001b +net.micode.notes:attr/theme = 0x7f0300e7 +net.micode.notes:dimen/abc_control_padding_material = 0x7f06001a +net.micode.notes:drawable/abc_ic_menu_copy_mtrl_am_alpha = 0x7f070018 +net.micode.notes:style/Base.Widget.AppCompat.ActionBar.TabBar = 0x7f0f0069 +net.micode.notes:drawable/abc_scrubber_control_to_pressed_mtrl_000 = 0x7f07003a +net.micode.notes:drawable/abc_ic_go_search_api_material = 0x7f070017 +net.micode.notes:drawable/widget_2x_yellow = 0x7f07009e +net.micode.notes:style/Base.Widget.AppCompat.RatingBar = 0x7f0f0094 +net.micode.notes:string/sync_progress_init_list = 0x7f0e0086 +net.micode.notes:drawable/abc_ic_commit_search_api_mtrl_alpha = 0x7f070016 +net.micode.notes:drawable/abc_ic_clear_material = 0x7f070015 +net.micode.notes:attr/listLayout = 0x7f03009a +net.micode.notes:drawable/edit_title_red = 0x7f07005f +net.micode.notes:style/Base.Animation.AppCompat.Tooltip = 0x7f0f0009 +net.micode.notes:drawable/abc_ic_ab_back_material = 0x7f070013 +net.micode.notes:color/abc_secondary_text_material_light = 0x7f050011 +net.micode.notes:drawable/abc_edit_text_material = 0x7f070012 +net.micode.notes:style/TextAppearance.Compat.Notification.Line2 = 0x7f0f00f1 +net.micode.notes:drawable/abc_cab_background_top_material = 0x7f07000e +net.micode.notes:attr/textAppearanceListItemSmall = 0x7f0300e0 +net.micode.notes:color/bright_foreground_disabled_material_light = 0x7f05001f +net.micode.notes:dimen/abc_alert_dialog_button_dimen = 0x7f060011 +net.micode.notes:drawable/abc_cab_background_internal_bg = 0x7f07000d +net.micode.notes:id/action_container = 0x7f08000f +net.micode.notes:drawable/abc_btn_switch_to_on_mtrl_00001 = 0x7f07000b +net.micode.notes:drawable/abc_ic_menu_overflow_material = 0x7f07001a +net.micode.notes:drawable/abc_btn_radio_to_on_mtrl_015 = 0x7f07000a +net.micode.notes:drawable/abc_vector_test = 0x7f070053 +net.micode.notes:style/Base.V21.Theme.AppCompat = 0x7f0f0051 +net.micode.notes:color/accent_material_dark = 0x7f050018 +net.micode.notes:drawable/abc_ratingbar_material = 0x7f070037 +net.micode.notes:id/listMode = 0x7f080062 +net.micode.notes:drawable/abc_btn_radio_to_on_mtrl_000 = 0x7f070009 +net.micode.notes:style/Base.TextAppearance.AppCompat.Medium = 0x7f0f001b +net.micode.notes:drawable/abc_btn_radio_material = 0x7f070008 +net.micode.notes:drawable/notification_template_icon_low_bg = 0x7f070091 +net.micode.notes:drawable/abc_btn_default_mtrl_shape = 0x7f070007 +net.micode.notes:layout/note_edit = 0x7f0a0021 +net.micode.notes:id/title = 0x7f0800b6 +net.micode.notes:id/src_over = 0x7f0800a8 +net.micode.notes:drawable/abc_btn_colored_material = 0x7f070006 +net.micode.notes:id/action_bar_spinner = 0x7f08000c +net.micode.notes:drawable/abc_list_divider_material = 0x7f070028 +net.micode.notes:string/abc_searchview_description_query = 0x7f0e0020 +net.micode.notes:attr/layout_insetEdge = 0x7f030094 +net.micode.notes:drawable/abc_btn_check_to_on_mtrl_015 = 0x7f070005 +net.micode.notes:drawable/abc_ab_share_pack_mtrl_alpha = 0x7f070000 +net.micode.notes:drawable/abc_ic_star_black_16dp = 0x7f07001f +net.micode.notes:dimen/tooltip_y_offset_non_touch = 0x7f060075 +net.micode.notes:styleable/ActionMenuItemView = 0x7f100002 +net.micode.notes:attr/buttonBarNeutralButtonStyle = 0x7f03003a +net.micode.notes:drawable/abc_switch_thumb_material = 0x7f070043 +net.micode.notes:string/error_note_not_exist = 0x7f0e0035 +net.micode.notes:dimen/tooltip_vertical_padding = 0x7f060074 +net.micode.notes:id/minute = 0x7f080077 +net.micode.notes:dimen/tooltip_precise_anchor_threshold = 0x7f060073 +net.micode.notes:dimen/tooltip_precise_anchor_extra_offset = 0x7f060072 +net.micode.notes:style/Base.Animation.AppCompat.DropDownUp = 0x7f0f0008 +net.micode.notes:drawable/list_yellow_middle = 0x7f07007e +net.micode.notes:dimen/tooltip_margin = 0x7f060071 +net.micode.notes:dimen/text_font_size_super = 0x7f06006e +net.micode.notes:dimen/text_font_size_small = 0x7f06006d +net.micode.notes:dimen/text_font_size_normal = 0x7f06006c +net.micode.notes:dimen/notification_top_pad_large_text = 0x7f060069 +net.micode.notes:id/line3 = 0x7f080061 +net.micode.notes:attr/popupWindowStyle = 0x7f0300b5 +net.micode.notes:dimen/notification_top_pad = 0x7f060068 +net.micode.notes:attr/progressBarStyle = 0x7f0300b8 +net.micode.notes:dimen/abc_text_size_display_1_material = 0x7f06003d +net.micode.notes:dimen/notification_small_icon_size_as_large = 0x7f060066 +net.micode.notes:id/select_dialog_listview = 0x7f08009e +net.micode.notes:drawable/abc_switch_track_mtrl_alpha = 0x7f070044 +net.micode.notes:dimen/notification_small_icon_background_padding = 0x7f060065 +net.micode.notes:dimen/notification_right_icon_size = 0x7f060063 +net.micode.notes:styleable/CoordinatorLayout_Layout = 0x7f100013 +net.micode.notes:dimen/notification_media_narrow_margin = 0x7f060062 +net.micode.notes:style/Base.Widget.AppCompat.ListView.Menu = 0x7f0f008e +net.micode.notes:color/secondary_text_disabled_material_light = 0x7f05004d +net.micode.notes:id/note_bg_color_selector = 0x7f08007e +net.micode.notes:dimen/notification_main_column_padding_top = 0x7f060061 +net.micode.notes:drawable/abc_seekbar_thumb_material = 0x7f07003e +net.micode.notes:id/shortcut = 0x7f0800a0 +net.micode.notes:attr/buttonTintMode = 0x7f030043 +net.micode.notes:dimen/notification_large_icon_height = 0x7f06005f +net.micode.notes:string/menu_setting = 0x7f0e005d +net.micode.notes:id/move = 0x7f080078 +net.micode.notes:dimen/notification_content_margin_start = 0x7f06005e +net.micode.notes:dimen/notification_big_circle_margin = 0x7f06005d +net.micode.notes:dimen/abc_action_bar_default_padding_start_material = 0x7f060004 +net.micode.notes:dimen/notification_action_icon_size = 0x7f06005b +net.micode.notes:attr/titleTextColor = 0x7f0300f9 +net.micode.notes:dimen/hint_alpha_material_light = 0x7f060058 +net.micode.notes:dimen/highlight_alpha_material_dark = 0x7f060055 +net.micode.notes:id/iv_bg_red_select = 0x7f080056 +net.micode.notes:dimen/abc_action_bar_overflow_padding_start_material = 0x7f060008 +net.micode.notes:dimen/highlight_alpha_material_colored = 0x7f060054 +net.micode.notes:id/action_divider = 0x7f080011 +net.micode.notes:dimen/compat_button_padding_vertical_material = 0x7f06004e +net.micode.notes:drawable/abc_scrubber_primary_mtrl_alpha = 0x7f07003c +net.micode.notes:drawable/notification_template_icon_bg = 0x7f070090 +net.micode.notes:dimen/notification_subtext_size = 0x7f060067 +net.micode.notes:dimen/abc_text_size_title_material_toolbar = 0x7f06004a +net.micode.notes:dimen/abc_text_size_title_material = 0x7f060049 +net.micode.notes:drawable/abc_list_pressed_holo_dark = 0x7f07002c +net.micode.notes:drawable/abc_text_cursor_material = 0x7f070047 +net.micode.notes:color/background_floating_material_light = 0x7f05001b +net.micode.notes:dimen/abc_text_size_subtitle_material_toolbar = 0x7f060048 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionBar.Subtitle = 0x7f0f0029 +net.micode.notes:attr/windowNoTitle = 0x7f03010f +net.micode.notes:dimen/abc_text_size_subhead_material = 0x7f060047 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.TabView = 0x7f0f013b +net.micode.notes:dimen/abc_text_size_small_material = 0x7f060046 +net.micode.notes:attr/showAsAction = 0x7f0300c5 +net.micode.notes:dimen/abc_text_size_menu_material = 0x7f060045 +net.micode.notes:id/widget_text = 0x7f0800c6 +net.micode.notes:dimen/abc_text_size_medium_material = 0x7f060043 +net.micode.notes:layout/abc_tooltip = 0x7f0a001b +net.micode.notes:id/message = 0x7f080075 +net.micode.notes:dimen/abc_text_size_headline_material = 0x7f060041 +net.micode.notes:dimen/abc_text_size_caption_material = 0x7f06003c +net.micode.notes:dimen/abc_text_size_button_material = 0x7f06003b +net.micode.notes:dimen/abc_text_size_body_2_material = 0x7f06003a +net.micode.notes:dimen/abc_search_view_preferred_width = 0x7f060034 +net.micode.notes:dimen/abc_progress_bar_height_material = 0x7f060032 +net.micode.notes:attr/buttonStyleSmall = 0x7f030041 +net.micode.notes:dimen/abc_panel_menu_list_width = 0x7f060031 +net.micode.notes:style/Widget.AppCompat.PopupMenu.Overflow = 0x7f0f0150 +net.micode.notes:style/TextAppearance.AppCompat.Widget.Button.Colored = 0x7f0f00e7 +net.micode.notes:id/split_action_bar = 0x7f0800a5 +net.micode.notes:id/showHome = 0x7f0800a2 +net.micode.notes:dimen/abc_floating_window_z = 0x7f06002f +net.micode.notes:color/primary_material_light = 0x7f050041 +net.micode.notes:drawable/list_yellow_single = 0x7f07007f +net.micode.notes:dimen/abc_dialog_list_padding_bottom_no_buttons = 0x7f060020 +net.micode.notes:dimen/abc_edit_text_inset_top_material = 0x7f06002e +net.micode.notes:dimen/abc_edit_text_inset_horizontal_material = 0x7f06002d +net.micode.notes:id/search_button = 0x7f080096 +net.micode.notes:id/ll_font_small = 0x7f080066 +net.micode.notes:drawable/font_large = 0x7f070064 +net.micode.notes:dimen/abc_dropdownitem_text_padding_right = 0x7f06002b +net.micode.notes:dimen/abc_dropdownitem_icon_width = 0x7f060029 +net.micode.notes:id/italic = 0x7f08004f +net.micode.notes:style/Theme.AppCompat.Dialog = 0x7f0f0107 +net.micode.notes:dimen/abc_dialog_title_divider_material = 0x7f060026 +net.micode.notes:dimen/abc_dialog_padding_top_material = 0x7f060025 +net.micode.notes:style/Base.ThemeOverlay.AppCompat.Dark.ActionBar = 0x7f0f004d +net.micode.notes:color/abc_btn_colored_borderless_text_material = 0x7f050002 +net.micode.notes:dimen/abc_dialog_list_padding_top_no_title = 0x7f060021 +net.micode.notes:id/iv_alert_icon = 0x7f080050 +net.micode.notes:style/Base.Theme.AppCompat.Dialog.MinWidth = 0x7f0f0041 +net.micode.notes:drawable/font_size_selector_bg = 0x7f070066 +net.micode.notes:dimen/abc_dialog_fixed_width_minor = 0x7f06001f +net.micode.notes:style/Theme.AppCompat.DayNight.DialogWhenLarge = 0x7f0f0105 +net.micode.notes:style/TextAppearanceUnderMenuIcon = 0x7f0f00fd +net.micode.notes:dimen/abc_dialog_fixed_height_minor = 0x7f06001d +net.micode.notes:id/center_horizontal = 0x7f08002b +net.micode.notes:dimen/compat_button_inset_vertical_material = 0x7f06004c +net.micode.notes:dimen/abc_dialog_fixed_height_major = 0x7f06001c +net.micode.notes:attr/dividerHorizontal = 0x7f030066 +net.micode.notes:style/Theme.AppCompat.CompactMenu = 0x7f0f00ff +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle = 0x7f0f00dd +net.micode.notes:dimen/abc_button_padding_horizontal_material = 0x7f060014 +net.micode.notes:drawable/edit_red = 0x7f07005c +net.micode.notes:string/sync_progress_login = 0x7f0e0087 +net.micode.notes:dimen/abc_control_corner_material = 0x7f060018 +net.micode.notes:dimen/abc_action_button_min_width_material = 0x7f06000e +net.micode.notes:id/et_foler_name = 0x7f08003e +net.micode.notes:style/Base.Widget.AppCompat.Button.ButtonBar.AlertDialog = 0x7f0f0075 +net.micode.notes:attr/autoCompleteTextViewStyle = 0x7f03002b +net.micode.notes:styleable/DrawerArrowToggle = 0x7f100014 +net.micode.notes:attr/paddingStart = 0x7f0300ae +net.micode.notes:dimen/abc_action_bar_subtitle_bottom_margin_material = 0x7f06000b +net.micode.notes:attr/buttonPanelSideLayout = 0x7f03003f +net.micode.notes:id/all = 0x7f08001f +net.micode.notes:string/search = 0x7f0e007d +net.micode.notes:attr/drawerArrowStyle = 0x7f03006a +net.micode.notes:attr/ratingBarStyle = 0x7f0300bc +net.micode.notes:color/abc_tint_seek_thumb = 0x7f050015 +net.micode.notes:style/Base.Widget.AppCompat.ActionBar = 0x7f0f0067 +net.micode.notes:dimen/abc_action_bar_stacked_tab_max_width = 0x7f06000a +net.micode.notes:style/Base.ThemeOverlay.AppCompat.ActionBar = 0x7f0f004b +net.micode.notes:attr/tickMarkTint = 0x7f0300ed +net.micode.notes:dimen/abc_action_bar_stacked_max_height = 0x7f060009 +net.micode.notes:style/Widget.AppCompat.Button.Borderless.Colored = 0x7f0f0127 +net.micode.notes:attr/background = 0x7f030031 +net.micode.notes:id/tag_transition_group = 0x7f0800ae +net.micode.notes:id/checkbox = 0x7f08002d +net.micode.notes:dimen/abc_action_bar_overflow_padding_end_material = 0x7f060007 +net.micode.notes:drawable/list_yellow_up = 0x7f070080 +net.micode.notes:attr/autoSizePresetSizes = 0x7f03002e +net.micode.notes:dimen/abc_action_bar_icon_vertical_padding_material = 0x7f060006 +net.micode.notes:layout/abc_screen_simple = 0x7f0a0015 +net.micode.notes:attr/listPreferredItemHeightLarge = 0x7f03009e +net.micode.notes:attr/iconTint = 0x7f030085 +net.micode.notes:dimen/abc_dialog_corner_radius_material = 0x7f06001b +net.micode.notes:anim/abc_slide_in_bottom = 0x7f010006 +net.micode.notes:dimen/abc_action_bar_elevation_material = 0x7f060005 +net.micode.notes:dimen/hint_pressed_alpha_material_dark = 0x7f060059 +net.micode.notes:dimen/abc_action_bar_default_padding_end_material = 0x7f060003 +net.micode.notes:attr/autoSizeMinTextSize = 0x7f03002d +net.micode.notes:attr/font = 0x7f030073 +net.micode.notes:attr/alertDialogStyle = 0x7f030024 +net.micode.notes:color/error_color_material_light = 0x7f05002b +net.micode.notes:drawable/list_folder = 0x7f07006f +net.micode.notes:color/tooltip_background_light = 0x7f050055 +net.micode.notes:color/tooltip_background_dark = 0x7f050054 +net.micode.notes:id/contentPanel = 0x7f080033 +net.micode.notes:string/error_sync_internal = 0x7f0e0039 +net.micode.notes:color/switch_thumb_normal_material_dark = 0x7f050052 +net.micode.notes:id/tv_alert_date = 0x7f0800bb +net.micode.notes:anim/abc_slide_out_top = 0x7f010009 +net.micode.notes:attr/listPreferredItemHeightSmall = 0x7f03009f +net.micode.notes:attr/switchTextAppearance = 0x7f0300db +net.micode.notes:id/menu_setting = 0x7f080072 +net.micode.notes:drawable/abc_list_pressed_holo_light = 0x7f07002d +net.micode.notes:drawable/abc_ic_menu_cut_mtrl_alpha = 0x7f070019 +net.micode.notes:color/material_blue_grey_800 = 0x7f050030 +net.micode.notes:color/switch_thumb_material_dark = 0x7f050050 +net.micode.notes:dimen/tooltip_y_offset_touch = 0x7f060076 +net.micode.notes:color/secondary_text_default_material_dark = 0x7f05004a +net.micode.notes:string/abc_menu_function_shortcut_label = 0x7f0e0018 +net.micode.notes:attr/commitIcon = 0x7f030055 +net.micode.notes:style/Base.Theme.AppCompat.Dialog.FixedSize = 0x7f0f0040 +net.micode.notes:color/secondary_text_dark = 0x7f050049 +net.micode.notes:dimen/abc_seekbar_track_background_height_material = 0x7f060035 +net.micode.notes:color/ripple_material_dark = 0x7f050047 +net.micode.notes:color/primary_text_disabled_material_light = 0x7f050046 +net.micode.notes:color/primary_text_default_material_light = 0x7f050044 +net.micode.notes:style/Base.Widget.AppCompat.Button.Borderless.Colored = 0x7f0f0074 +net.micode.notes:id/SHIFT = 0x7f080004 +net.micode.notes:color/primary_material_dark = 0x7f050040 +net.micode.notes:string/alert_message_delete_note = 0x7f0e0028 +net.micode.notes:id/action_select_all = 0x7f080018 +net.micode.notes:color/bright_foreground_disabled_material_dark = 0x7f05001e +net.micode.notes:color/material_grey_900 = 0x7f05003b +net.micode.notes:dimen/abc_button_inset_horizontal_material = 0x7f060012 +net.micode.notes:attr/customNavigationLayout = 0x7f03005f +net.micode.notes:color/material_grey_600 = 0x7f050038 +net.micode.notes:string/menu_font_normal = 0x7f0e004f +net.micode.notes:id/action_menu_divider = 0x7f080013 +net.micode.notes:id/always = 0x7f080020 +net.micode.notes:attr/textAllCaps = 0x7f0300dc +net.micode.notes:color/material_grey_300 = 0x7f050036 +net.micode.notes:dimen/abc_text_size_menu_header_material = 0x7f060044 +net.micode.notes:color/accent_material_light = 0x7f050019 +net.micode.notes:style/Base.Widget.AppCompat.CompoundButton.Switch = 0x7f0f007c +net.micode.notes:color/material_grey_100 = 0x7f050035 +net.micode.notes:string/menu_font_super = 0x7f0e0052 +net.micode.notes:drawable/abc_btn_check_material = 0x7f070003 +net.micode.notes:style/TextAppearanceSuper = 0x7f0f00fc +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.Button.Borderless.Colored = 0x7f0f0030 +net.micode.notes:color/material_blue_grey_950 = 0x7f050032 +net.micode.notes:drawable/abc_ic_arrow_drop_right_black_24dp = 0x7f070014 +net.micode.notes:attr/actionModeCloseDrawable = 0x7f030012 +net.micode.notes:string/abc_menu_meta_shortcut_label = 0x7f0e0019 +net.micode.notes:color/highlighted_text_material_dark = 0x7f05002e +net.micode.notes:styleable/MenuItem = 0x7f10001d +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar = 0x7f0f0082 +net.micode.notes:dimen/tooltip_corner_radius = 0x7f06006f +net.micode.notes:color/switch_thumb_normal_material_light = 0x7f050053 +net.micode.notes:layout/abc_alert_dialog_material = 0x7f0a0009 +net.micode.notes:color/foreground_material_light = 0x7f05002d +net.micode.notes:attr/layout = 0x7f03008f +net.micode.notes:attr/arrowShaftLength = 0x7f03002a +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionMode.Title = 0x7f0f00e3 +net.micode.notes:color/foreground_material_dark = 0x7f05002c +net.micode.notes:color/error_color_material_dark = 0x7f05002a +net.micode.notes:dimen/abc_action_bar_subtitle_top_margin_material = 0x7f06000c +net.micode.notes:color/material_grey_50 = 0x7f050037 +net.micode.notes:style/TextAppearance.AppCompat.Light.SearchResult.Subtitle = 0x7f0f00cc +net.micode.notes:color/material_deep_teal_200 = 0x7f050033 +net.micode.notes:color/dim_foreground_material_dark = 0x7f050028 +net.micode.notes:id/iv_bg_blue = 0x7f080051 +net.micode.notes:layout/notification_action = 0x7f0a0027 +net.micode.notes:attr/buttonBarStyle = 0x7f03003c +net.micode.notes:color/switch_thumb_disabled_material_light = 0x7f05004f +net.micode.notes:color/dim_foreground_disabled_material_dark = 0x7f050026 +net.micode.notes:dimen/abc_dialog_min_width_minor = 0x7f060023 +net.micode.notes:style/HighlightTextAppearancePrimary = 0x7f0f00a0 +net.micode.notes:color/button_material_light = 0x7f050025 +net.micode.notes:string/menu_normal_mode = 0x7f0e0056 +net.micode.notes:color/bright_foreground_inverse_material_dark = 0x7f050020 +net.micode.notes:drawable/menu_delete = 0x7f070081 +net.micode.notes:attr/textAppearancePopupMenuHeader = 0x7f0300e1 +net.micode.notes:color/notification_icon_bg_color = 0x7f05003d +net.micode.notes:dimen/abc_search_view_preferred_height = 0x7f060033 +net.micode.notes:attr/dialogPreferredPadding = 0x7f030062 +net.micode.notes:id/action_text = 0x7f080019 +net.micode.notes:style/Base.TextAppearance.AppCompat.Tooltip = 0x7f0f0027 +net.micode.notes:string/abc_activitychooserview_choose_application = 0x7f0e0005 +net.micode.notes:id/action_mode_bar = 0x7f080015 +net.micode.notes:attr/toolbarNavigationButtonStyle = 0x7f0300fb +net.micode.notes:layout/abc_alert_dialog_button_bar_material = 0x7f0a0008 +net.micode.notes:attr/fontWeight = 0x7f03007d +net.micode.notes:color/abc_tint_switch_track = 0x7f050017 +net.micode.notes:string/datetime_dialog_ok = 0x7f0e0031 +net.micode.notes:drawable/notify_panel_notification_icon_bg = 0x7f070093 +net.micode.notes:layout/widget_4x = 0x7f0a0033 +net.micode.notes:color/abc_tint_spinner = 0x7f050016 +net.micode.notes:color/switch_thumb_disabled_material_dark = 0x7f05004e +net.micode.notes:attr/contentInsetStart = 0x7f03005b +net.micode.notes:color/abc_tint_edittext = 0x7f050014 +net.micode.notes:attr/actionModeSelectAllDrawable = 0x7f030018 +net.micode.notes:attr/tooltipForegroundColor = 0x7f0300fd +net.micode.notes:dimen/compat_notification_large_icon_max_height = 0x7f060050 +net.micode.notes:color/abc_tint_default = 0x7f050013 +net.micode.notes:color/dim_foreground_disabled_material_light = 0x7f050027 +net.micode.notes:style/Base.DialogWindowTitleBackground.AppCompat = 0x7f0f000b +net.micode.notes:id/icon_group = 0x7f08004b +net.micode.notes:style/Base.V22.Theme.AppCompat = 0x7f0f0056 +net.micode.notes:color/abc_tint_btn_checkable = 0x7f050012 +net.micode.notes:anim/abc_grow_fade_in_from_bottom = 0x7f010002 +net.micode.notes:drawable/abc_control_background_material = 0x7f070010 +net.micode.notes:color/abc_secondary_text_material_dark = 0x7f050010 +net.micode.notes:drawable/abc_textfield_search_default_mtrl_alpha = 0x7f070051 +net.micode.notes:attr/textAppearanceSearchResultSubtitle = 0x7f0300e2 +net.micode.notes:attr/titleMargins = 0x7f0300f7 +net.micode.notes:anim/abc_popup_exit = 0x7f010004 +net.micode.notes:dimen/compat_control_corner_material = 0x7f06004f +net.micode.notes:attr/fontProviderAuthority = 0x7f030075 +net.micode.notes:color/abc_color_highlight_material = 0x7f050004 +net.micode.notes:drawable/abc_scrubber_control_to_pressed_mtrl_005 = 0x7f07003b +net.micode.notes:drawable/abc_btn_borderless_material = 0x7f070002 +net.micode.notes:bool/abc_config_actionMenuItemAllCaps = 0x7f040002 +net.micode.notes:id/note_edit_view = 0x7f080080 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionBar.Title = 0x7f0f002b +net.micode.notes:drawable/title_alert = 0x7f070096 +net.micode.notes:drawable/list_red_single = 0x7f070077 +net.micode.notes:attr/selectableItemBackground = 0x7f0300c3 +net.micode.notes:attr/windowMinWidthMinor = 0x7f03010e +net.micode.notes:attr/windowFixedWidthMinor = 0x7f03010c +net.micode.notes:color/button_material_dark = 0x7f050024 +net.micode.notes:id/cb_edit_item = 0x7f080029 +net.micode.notes:style/Widget.AppCompat.Button = 0x7f0f0125 +net.micode.notes:style/Base.TextAppearance.AppCompat.Small.Inverse = 0x7f0f0022 +net.micode.notes:drawable/list_blue_down = 0x7f07006b +net.micode.notes:attr/windowFixedHeightMinor = 0x7f03010a +net.micode.notes:string/menu_remove_remind = 0x7f0e0057 +net.micode.notes:string/abc_capital_on = 0x7f0e0007 +net.micode.notes:attr/drawableSize = 0x7f030069 +net.micode.notes:attr/windowActionModeOverlay = 0x7f030108 +net.micode.notes:color/primary_text_dark = 0x7f050042 +net.micode.notes:attr/fontFamily = 0x7f030074 +net.micode.notes:color/material_grey_850 = 0x7f05003a +net.micode.notes:attr/windowActionBarOverlay = 0x7f030107 +net.micode.notes:attr/voiceIcon = 0x7f030105 +net.micode.notes:style/TextAppearance.AppCompat.Display3 = 0x7f0f00c6 +net.micode.notes:string/button_delete = 0x7f0e002e +net.micode.notes:attr/collapseContentDescription = 0x7f030048 +net.micode.notes:id/menu_delete = 0x7f080069 +net.micode.notes:id/expand_activities_button = 0x7f08003f +net.micode.notes:style/Base.TextAppearance.AppCompat.Button = 0x7f0f000f +net.micode.notes:attr/actionModePopupWindowStyle = 0x7f030017 +net.micode.notes:color/material_blue_grey_900 = 0x7f050031 +net.micode.notes:style/Base.V22.Theme.AppCompat.Light = 0x7f0f0057 +net.micode.notes:attr/paddingTopNoTitle = 0x7f0300af +net.micode.notes:id/edit_query = 0x7f08003b +net.micode.notes:color/abc_primary_text_disable_only_material_light = 0x7f050009 +net.micode.notes:attr/track = 0x7f030100 +net.micode.notes:string/error_sync_cancelled = 0x7f0e0038 +net.micode.notes:attr/tooltipText = 0x7f0300ff +net.micode.notes:style/Base.Widget.AppCompat.ImageButton = 0x7f0f0081 +net.micode.notes:color/ripple_material_light = 0x7f050048 +net.micode.notes:string/preferences_dialog_change_account_warn_msg = 0x7f0e0072 +net.micode.notes:id/customPanel = 0x7f080035 +net.micode.notes:drawable/abc_btn_switch_to_on_mtrl_00012 = 0x7f07000c +net.micode.notes:dimen/abc_text_size_display_2_material = 0x7f06003e +net.micode.notes:style/Widget.AppCompat.ButtonBar = 0x7f0f012b +net.micode.notes:layout/select_dialog_item_material = 0x7f0a002d +net.micode.notes:attr/tooltipFrameBackground = 0x7f0300fe +net.micode.notes:attr/buttonBarPositiveButtonStyle = 0x7f03003b +net.micode.notes:attr/titleTextStyle = 0x7f0300fa +net.micode.notes:dimen/abc_disabled_alpha_material_light = 0x7f060028 +net.micode.notes:style/Base.TextAppearance.AppCompat.Subhead = 0x7f0f0023 +net.micode.notes:string/preferences_account_summary = 0x7f0e006b +net.micode.notes:attr/fontProviderFetchStrategy = 0x7f030077 +net.micode.notes:attr/titleMarginTop = 0x7f0300f6 +net.micode.notes:attr/titleMarginEnd = 0x7f0300f4 +net.micode.notes:menu/note_list_options = 0x7f0b0005 +net.micode.notes:attr/titleMargin = 0x7f0300f2 +net.micode.notes:color/bright_foreground_material_dark = 0x7f050022 +net.micode.notes:id/META = 0x7f080003 +net.micode.notes:attr/splitTrack = 0x7f0300cd +net.micode.notes:attr/actionBarSize = 0x7f030003 +net.micode.notes:attr/iconifiedByDefault = 0x7f030087 +net.micode.notes:attr/tickMark = 0x7f0300ec +net.micode.notes:styleable/AlertDialog = 0x7f100006 +net.micode.notes:id/delete = 0x7f080039 +net.micode.notes:string/preferences_add_account = 0x7f0e006d +net.micode.notes:attr/thumbTintMode = 0x7f0300eb +net.micode.notes:style/TextAppearance.AppCompat.Tooltip = 0x7f0f00db +net.micode.notes:attr/thumbTint = 0x7f0300ea +net.micode.notes:drawable/abc_list_selector_disabled_holo_light = 0x7f070031 +net.micode.notes:id/withText = 0x7f0800c7 +net.micode.notes:attr/thumbTextPadding = 0x7f0300e9 +net.micode.notes:attr/editTextBackground = 0x7f03006d +net.micode.notes:color/abc_primary_text_material_dark = 0x7f05000a +net.micode.notes:drawable/edit_title_yellow = 0x7f070061 +net.micode.notes:dimen/abc_config_prefDialogWidth = 0x7f060017 +net.micode.notes:color/bright_foreground_inverse_material_light = 0x7f050021 +net.micode.notes:attr/showDividers = 0x7f0300c6 +net.micode.notes:attr/ttcIndex = 0x7f030103 +net.micode.notes:attr/listItemLayout = 0x7f030099 +net.micode.notes:dimen/notification_action_text_size = 0x7f06005c +net.micode.notes:attr/textAppearanceListItemSecondary = 0x7f0300df +net.micode.notes:style/TextAppearance.Compat.Notification.Title = 0x7f0f00f3 +net.micode.notes:dimen/abc_dialog_fixed_width_major = 0x7f06001e +net.micode.notes:string/abc_menu_alt_shortcut_label = 0x7f0e0014 +net.micode.notes:attr/activityChooserViewStyle = 0x7f030021 +net.micode.notes:color/secondary_text_default_material_light = 0x7f05004b +net.micode.notes:id/search_go_btn = 0x7f080099 +net.micode.notes:attr/textAppearanceLargePopupMenu = 0x7f0300dd +net.micode.notes:attr/switchStyle = 0x7f0300da +net.micode.notes:layout/abc_action_mode_close_item_material = 0x7f0a0005 +net.micode.notes:attr/switchPadding = 0x7f0300d9 +net.micode.notes:style/Base.Theme.AppCompat.Light.Dialog = 0x7f0f0045 +net.micode.notes:attr/switchMinWidth = 0x7f0300d8 +net.micode.notes:style/Base.Widget.AppCompat.ProgressBar = 0x7f0f0092 +net.micode.notes:attr/subtitleTextColor = 0x7f0300d5 +net.micode.notes:color/bright_foreground_material_light = 0x7f050023 +net.micode.notes:style/Platform.V21.AppCompat = 0x7f0f00a9 +net.micode.notes:id/iv_bg_white = 0x7f080057 +net.micode.notes:array/menu_share_ways = 0x7f020001 +net.micode.notes:attr/subtitleTextAppearance = 0x7f0300d4 +net.micode.notes:id/radio = 0x7f08008c +net.micode.notes:attr/subtitle = 0x7f0300d3 +net.micode.notes:attr/actionModeCloseButtonStyle = 0x7f030011 +net.micode.notes:attr/colorButtonNormal = 0x7f03004d +net.micode.notes:attr/state_above_anchor = 0x7f0300cf +net.micode.notes:style/Platform.ThemeOverlay.AppCompat.Light = 0x7f0f00a8 +net.micode.notes:layout/note_list_dropdown_menu = 0x7f0a0025 +net.micode.notes:color/primary_text_disabled_material_dark = 0x7f050045 +net.micode.notes:attr/layout_keyline = 0x7f030095 +net.micode.notes:attr/spinnerDropDownItemStyle = 0x7f0300cb +net.micode.notes:attr/backgroundTintMode = 0x7f030035 +net.micode.notes:id/buttonPanel = 0x7f080028 +net.micode.notes:attr/showText = 0x7f0300c7 +net.micode.notes:id/action_bar_subtitle = 0x7f08000d +net.micode.notes:style/Base.V21.ThemeOverlay.AppCompat.Dialog = 0x7f0f0055 +net.micode.notes:color/notification_action_color_filter = 0x7f05003c +net.micode.notes:string/preferences_button_sync_immediately = 0x7f0e0070 +net.micode.notes:drawable/notification_tile_bg = 0x7f070092 +net.micode.notes:id/expanded_menu = 0x7f080040 +net.micode.notes:attr/selectableItemBackgroundBorderless = 0x7f0300c4 +net.micode.notes:attr/tickMarkTintMode = 0x7f0300ee +net.micode.notes:attr/dropDownListViewStyle = 0x7f03006b +net.micode.notes:attr/searchViewStyle = 0x7f0300c1 +net.micode.notes:style/Widget.AppCompat.ProgressBar.Horizontal = 0x7f0f0153 +net.micode.notes:attr/searchHintIcon = 0x7f0300bf +net.micode.notes:attr/fontProviderFetchTimeout = 0x7f030078 +net.micode.notes:id/showTitle = 0x7f0800a3 +net.micode.notes:attr/ratingBarStyleSmall = 0x7f0300be +net.micode.notes:id/bottom = 0x7f080025 +net.micode.notes:dimen/hint_alpha_material_dark = 0x7f060057 +net.micode.notes:attr/ratingBarStyleIndicator = 0x7f0300bd +net.micode.notes:style/Base.TextAppearance.AppCompat.SearchResult.Title = 0x7f0f0020 +net.micode.notes:attr/textColorSearchUrl = 0x7f0300e6 +net.micode.notes:string/menu_font_small = 0x7f0e0051 +net.micode.notes:attr/trackTintMode = 0x7f030102 +net.micode.notes:color/primary_dark_material_dark = 0x7f05003e +net.micode.notes:style/Base.TextAppearance.AppCompat.Small = 0x7f0f0021 +net.micode.notes:attr/progressBarPadding = 0x7f0300b7 +net.micode.notes:string/note_alert_expired = 0x7f0e0062 +net.micode.notes:attr/popupMenuStyle = 0x7f0300b3 +net.micode.notes:style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Large = 0x7f0f00ce +net.micode.notes:dimen/abc_alert_dialog_button_bar_height = 0x7f060010 +net.micode.notes:id/up = 0x7f0800c3 +net.micode.notes:attr/panelMenuListWidth = 0x7f0300b2 +net.micode.notes:attr/colorError = 0x7f030051 +net.micode.notes:style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle = 0x7f0f00f5 +net.micode.notes:drawable/abc_text_select_handle_right_mtrl_dark = 0x7f07004c +net.micode.notes:anim/abc_slide_in_top = 0x7f010007 +net.micode.notes:attr/dividerPadding = 0x7f030067 +net.micode.notes:attr/overlapAnchor = 0x7f0300ab +net.micode.notes:dimen/abc_text_size_large_material = 0x7f060042 +net.micode.notes:attr/navigationIcon = 0x7f0300a8 +net.micode.notes:style/HighlightTextAppearanceSecondary = 0x7f0f00a1 +net.micode.notes:attr/navigationContentDescription = 0x7f0300a7 +net.micode.notes:id/top = 0x7f0800b9 +net.micode.notes:attr/maxButtonHeight = 0x7f0300a4 +net.micode.notes:attr/actionOverflowButtonStyle = 0x7f03001d +net.micode.notes:attr/listPreferredItemPaddingLeft = 0x7f0300a0 +net.micode.notes:drawable/list_red_middle = 0x7f070076 +net.micode.notes:drawable/abc_text_select_handle_middle_mtrl_dark = 0x7f07004a +net.micode.notes:styleable/PopupWindow = 0x7f10001f +net.micode.notes:attr/lineHeight = 0x7f030096 +net.micode.notes:style/TextAppearance.AppCompat.Title = 0x7f0f00d9 +net.micode.notes:attr/buttonGravity = 0x7f03003d +net.micode.notes:anim/abc_popup_enter = 0x7f010003 +net.micode.notes:attr/colorControlNormal = 0x7f030050 +net.micode.notes:attr/backgroundStacked = 0x7f030033 +net.micode.notes:style/Base.TextAppearance.AppCompat.Display4 = 0x7f0f0014 +net.micode.notes:id/search_voice_btn = 0x7f08009d +net.micode.notes:attr/listPopupWindowStyle = 0x7f03009c +net.micode.notes:attr/layout_anchorGravity = 0x7f030091 +net.micode.notes:attr/homeAsUpIndicator = 0x7f030082 +net.micode.notes:attr/backgroundTint = 0x7f030034 +net.micode.notes:attr/colorBackgroundFloating = 0x7f03004c +net.micode.notes:id/ifRoom = 0x7f08004c +net.micode.notes:attr/trackTint = 0x7f030101 +net.micode.notes:attr/thickness = 0x7f0300e8 +net.micode.notes:attr/isLightTheme = 0x7f03008b +net.micode.notes:layout/select_dialog_multichoice_material = 0x7f0a002e +net.micode.notes:attr/initialActivityCount = 0x7f03008a +net.micode.notes:drawable/widget_2x_blue = 0x7f07009a +net.micode.notes:color/abc_btn_colored_text_material = 0x7f050003 +net.micode.notes:dimen/abc_text_size_display_4_material = 0x7f060040 +net.micode.notes:style/TextAppearanceMedium = 0x7f0f00f8 +net.micode.notes:attr/buttonBarButtonStyle = 0x7f030038 +net.micode.notes:attr/actionModeSplitBackground = 0x7f03001a +net.micode.notes:drawable/abc_list_divider_mtrl_alpha = 0x7f070029 +net.micode.notes:style/Base.Theme.AppCompat = 0x7f0f003c +net.micode.notes:attr/indeterminateProgressStyle = 0x7f030089 +net.micode.notes:dimen/notification_right_side_padding_top = 0x7f060064 +net.micode.notes:attr/imageButtonStyle = 0x7f030088 +net.micode.notes:style/Base.Widget.AppCompat.ListView = 0x7f0f008c +net.micode.notes:attr/submitBackground = 0x7f0300d2 +net.micode.notes:attr/expandActivityOverflowButtonDrawable = 0x7f030071 +net.micode.notes:attr/alertDialogButtonGroupStyle = 0x7f030022 +net.micode.notes:attr/editTextStyle = 0x7f03006f +net.micode.notes:attr/keylines = 0x7f03008d +net.micode.notes:style/Theme.AppCompat.DayNight = 0x7f0f0100 +net.micode.notes:attr/homeLayout = 0x7f030083 +net.micode.notes:drawable/list_blue_up = 0x7f07006e +net.micode.notes:style/Widget.AppCompat.DrawerArrowToggle = 0x7f0f0130 +net.micode.notes:dimen/abc_text_size_body_1_material = 0x7f060039 +net.micode.notes:attr/subMenuArrow = 0x7f0300d1 +net.micode.notes:attr/hideOnContentScroll = 0x7f030081 +net.micode.notes:id/iv_bg_green = 0x7f080053 +net.micode.notes:attr/actionMenuTextAppearance = 0x7f03000e +net.micode.notes:attr/viewInflaterClass = 0x7f030104 +net.micode.notes:attr/singleChoiceItemLayout = 0x7f0300c9 +net.micode.notes:drawable/abc_list_selector_background_transition_holo_dark = 0x7f07002e +net.micode.notes:attr/buttonBarNegativeButtonStyle = 0x7f030039 +net.micode.notes:style/Base.Widget.AppCompat.Light.PopupMenu.Overflow = 0x7f0f0089 +net.micode.notes:id/middle = 0x7f080076 +net.micode.notes:style/Widget.AppCompat.ActionBar = 0x7f0f011a +net.micode.notes:attr/fontVariationSettings = 0x7f03007c +net.micode.notes:attr/paddingBottomNoButtons = 0x7f0300ac +net.micode.notes:styleable/CompoundButton = 0x7f100011 +net.micode.notes:id/prefenerece_sync_status_textview = 0x7f080088 +net.micode.notes:dimen/abc_action_bar_content_inset_material = 0x7f060000 +net.micode.notes:drawable/widget_2x_white = 0x7f07009d +net.micode.notes:id/add_img_btn = 0x7f08001d +net.micode.notes:color/user_query_highlight = 0x7f050056 +net.micode.notes:drawable/edit_title_white = 0x7f070060 +net.micode.notes:attr/colorAccent = 0x7f03004b +net.micode.notes:attr/fontStyle = 0x7f03007b +net.micode.notes:attr/color = 0x7f03004a +net.micode.notes:attr/goIcon = 0x7f03007f +net.micode.notes:layout/notification_action_tombstone = 0x7f0a0028 +net.micode.notes:attr/fontProviderPackage = 0x7f030079 +net.micode.notes:attr/height = 0x7f030080 +net.micode.notes:anim/abc_shrink_fade_out_from_bottom = 0x7f010005 +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionBar.Menu = 0x7f0f0028 +net.micode.notes:attr/fontProviderCerts = 0x7f030076 +net.micode.notes:dimen/text_font_size_medium = 0x7f06006b +net.micode.notes:attr/actionBarTabStyle = 0x7f030007 +net.micode.notes:attr/controlBackground = 0x7f03005d +net.micode.notes:attr/actionBarTheme = 0x7f030009 +net.micode.notes:style/TextAppearance.AppCompat.Widget.PopupMenu.Small = 0x7f0f00ec +net.micode.notes:attr/autoSizeTextType = 0x7f030030 +net.micode.notes:dimen/text_font_size_large = 0x7f06006a +net.micode.notes:style/Base.Widget.AppCompat.PopupWindow = 0x7f0f0091 +net.micode.notes:attr/lastBaselineToBottomHeight = 0x7f03008e +net.micode.notes:bool/abc_allow_stacked_button_bar = 0x7f040001 +net.micode.notes:attr/dialogTheme = 0x7f030063 +net.micode.notes:drawable/widget_2x_green = 0x7f07009b +net.micode.notes:dimen/abc_dialog_padding_material = 0x7f060024 +net.micode.notes:attr/elevation = 0x7f030070 +net.micode.notes:attr/editTextColor = 0x7f03006e +net.micode.notes:string/app_widget4x4 = 0x7f0e002d +net.micode.notes:drawable/list_red_up = 0x7f070078 +net.micode.notes:dimen/abc_button_inset_vertical_material = 0x7f060013 +net.micode.notes:style/Widget.AppCompat.Spinner.Underlined = 0x7f0f015e +net.micode.notes:style/Base.TextAppearance.AppCompat.Large = 0x7f0f0017 +net.micode.notes:color/material_grey_800 = 0x7f050039 +net.micode.notes:attr/dropdownListPreferredItemHeight = 0x7f03006c +net.micode.notes:attr/divider = 0x7f030065 +net.micode.notes:attr/queryBackground = 0x7f0300b9 +net.micode.notes:styleable/AnimatedStateListDrawableItem = 0x7f100008 +net.micode.notes:drawable/list_green_middle = 0x7f070072 +net.micode.notes:attr/defaultQueryHint = 0x7f030060 +net.micode.notes:color/background_material_light = 0x7f05001d +net.micode.notes:attr/toolbarStyle = 0x7f0300fc +net.micode.notes:style/ThemeOverlay.AppCompat.Dialog.Alert = 0x7f0f0118 +net.micode.notes:id/home = 0x7f080047 +net.micode.notes:attr/multiChoiceItemLayout = 0x7f0300a6 +net.micode.notes:dimen/compat_button_padding_horizontal_material = 0x7f06004d +net.micode.notes:style/Widget.AppCompat.ListView.Menu = 0x7f0f014e +net.micode.notes:attr/gapBetweenBars = 0x7f03007e +net.micode.notes:id/menu_delete_remind = 0x7f08006a +net.micode.notes:drawable/abc_textfield_search_material = 0x7f070052 +net.micode.notes:attr/contentInsetLeft = 0x7f030059 +net.micode.notes:string/note_link_email = 0x7f0e0063 +net.micode.notes:attr/radioButtonStyle = 0x7f0300bb +net.micode.notes:attr/actionModeBackground = 0x7f030010 +net.micode.notes:string/menu_create_folder = 0x7f0e0047 +net.micode.notes:id/beginning = 0x7f080023 +net.micode.notes:attr/contentInsetEndWithActions = 0x7f030058 +net.micode.notes:styleable/Toolbar = 0x7f100028 +net.micode.notes:dimen/disabled_alpha_material_dark = 0x7f060052 +net.micode.notes:attr/textAppearanceListItem = 0x7f0300de +net.micode.notes:style/TextAppearance.AppCompat = 0x7f0f00bf +net.micode.notes:dimen/abc_list_item_padding_horizontal_material = 0x7f060030 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar = 0x7f0f0134 +net.micode.notes:attr/contentInsetStartWithNavigation = 0x7f03005c +net.micode.notes:attr/tintMode = 0x7f0300f0 +net.micode.notes:id/ll_font_large = 0x7f080064 +net.micode.notes:styleable/SwitchCompat = 0x7f100026 +net.micode.notes:attr/contentInsetEnd = 0x7f030057 +net.micode.notes:attr/contentDescription = 0x7f030056 +net.micode.notes:id/icon = 0x7f08004a +net.micode.notes:string/abc_font_family_body_2_material = 0x7f0e0009 +net.micode.notes:attr/colorSwitchThumbNormal = 0x7f030054 +net.micode.notes:string/abc_menu_enter_shortcut_label = 0x7f0e0017 +net.micode.notes:attr/numericModifiers = 0x7f0300aa +net.micode.notes:id/iv_bg_green_select = 0x7f080054 +net.micode.notes:attr/layout_dodgeInsetEdges = 0x7f030093 +net.micode.notes:layout/widget_2x = 0x7f0a0032 +net.micode.notes:color/abc_search_url_text = 0x7f05000c +net.micode.notes:drawable/abc_ic_star_half_black_48dp = 0x7f070024 +net.micode.notes:color/primary_dark_material_light = 0x7f05003f +net.micode.notes:id/center_vertical = 0x7f08002c +net.micode.notes:style/TextAppearance.Compat.Notification = 0x7f0f00ef +net.micode.notes:attr/arrowHeadLength = 0x7f030029 +net.micode.notes:attr/colorPrimaryDark = 0x7f030053 +net.micode.notes:styleable/GradientColor = 0x7f100017 +net.micode.notes:attr/logo = 0x7f0300a2 +net.micode.notes:color/abc_search_url_text_normal = 0x7f05000d +net.micode.notes:anim/abc_tooltip_enter = 0x7f01000a +net.micode.notes:style/TextAppearance.AppCompat.Display2 = 0x7f0f00c5 +net.micode.notes:layout/abc_list_menu_item_checkbox = 0x7f0a000e +net.micode.notes:attr/panelMenuListTheme = 0x7f0300b1 +net.micode.notes:attr/srcCompat = 0x7f0300ce +net.micode.notes:attr/panelBackground = 0x7f0300b0 +net.micode.notes:attr/colorControlActivated = 0x7f03004e +net.micode.notes:color/abc_background_cache_hint_selector_material_light = 0x7f050001 +net.micode.notes:id/account_dialog_title = 0x7f080007 +net.micode.notes:anim/abc_fade_in = 0x7f010000 +net.micode.notes:id/info = 0x7f08004e +net.micode.notes:style/Base.Widget.AppCompat.Light.ActionBar.TabBar = 0x7f0f0084 +net.micode.notes:attr/icon = 0x7f030084 +net.micode.notes:styleable/AppCompatTextView = 0x7f10000d +net.micode.notes:attr/titleMarginStart = 0x7f0300f5 +net.micode.notes:attr/closeIcon = 0x7f030046 +net.micode.notes:attr/checkboxStyle = 0x7f030044 +net.micode.notes:style/Base.V7.Widget.AppCompat.AutoCompleteTextView = 0x7f0f0064 +net.micode.notes:dimen/abc_control_inset_material = 0x7f060019 +net.micode.notes:drawable/widget_4x_yellow = 0x7f0700a3 +net.micode.notes:drawable/abc_btn_check_to_on_mtrl_000 = 0x7f070004 +net.micode.notes:dimen/abc_action_bar_content_inset_with_nav = 0x7f060001 +net.micode.notes:id/time = 0x7f0800b5 +net.micode.notes:attr/buttonTint = 0x7f030042 +net.micode.notes:dimen/compat_button_inset_horizontal_material = 0x7f06004b +net.micode.notes:color/abc_primary_text_material_light = 0x7f05000b +net.micode.notes:drawable/abc_action_bar_item_background_material = 0x7f070001 +net.micode.notes:attr/layout_anchor = 0x7f030090 +net.micode.notes:string/menu_font_large = 0x7f0e004e +net.micode.notes:id/search_close_btn = 0x7f080097 +net.micode.notes:attr/actionModeFindDrawable = 0x7f030015 +net.micode.notes:style/Widget.AppCompat.SearchView.ActionBar = 0x7f0f0158 +net.micode.notes:attr/textColorAlertDialogListItem = 0x7f0300e5 +net.micode.notes:string/file_name_txt_format = 0x7f0e003c +net.micode.notes:attr/seekBarStyle = 0x7f0300c2 +net.micode.notes:style/Widget.AppCompat.Light.ActionBar.Solid.Inverse = 0x7f0f0136 +net.micode.notes:style/Base.Theme.AppCompat.Dialog.Alert = 0x7f0f003f +net.micode.notes:attr/buttonStyle = 0x7f030040 +net.micode.notes:attr/buttonIconDimen = 0x7f03003e +net.micode.notes:style/Base.TextAppearance.AppCompat.Inverse = 0x7f0f0016 +net.micode.notes:color/dim_foreground_material_light = 0x7f050029 +net.micode.notes:xml/widget_2x_info = 0x7f110002 +net.micode.notes:style/Theme.AppCompat.Light.NoActionBar = 0x7f0f0111 +net.micode.notes:attr/actionModeShareDrawable = 0x7f030019 +net.micode.notes:attr/windowFixedHeightMajor = 0x7f030109 +net.micode.notes:attr/subtitleTextStyle = 0x7f0300d6 +net.micode.notes:attr/actionBarWidgetTheme = 0x7f03000a +net.micode.notes:attr/listMenuViewStyle = 0x7f03009b +net.micode.notes:style/Theme.AppCompat.Light = 0x7f0f010b +net.micode.notes:attr/actionModeCutDrawable = 0x7f030014 +net.micode.notes:id/default_activity_button = 0x7f080038 +net.micode.notes:anim/abc_fade_out = 0x7f010001 +net.micode.notes:color/abc_input_method_navigation_guard = 0x7f050007 +net.micode.notes:attr/actionViewClass = 0x7f030020 +net.micode.notes:attr/titleMarginBottom = 0x7f0300f3 +net.micode.notes:attr/autoSizeMaxTextSize = 0x7f03002c +net.micode.notes:style/Base.TextAppearance.AppCompat.Widget.ActionMode.Title = 0x7f0f002e +net.micode.notes:style/Base.TextAppearance.AppCompat.Subhead.Inverse = 0x7f0f0024 +net.micode.notes:color/abc_hint_foreground_material_light = 0x7f050006 +net.micode.notes:dimen/notification_large_icon_width = 0x7f060060 +net.micode.notes:attr/actionBarStyle = 0x7f030005 +net.micode.notes:attr/actionButtonStyle = 0x7f03000b +net.micode.notes:menu/note_edit = 0x7f0b0002 +net.micode.notes:attr/allowStacking = 0x7f030026 +net.micode.notes:attr/iconTintMode = 0x7f030086 +net.micode.notes:dimen/abc_dropdownitem_text_padding_left = 0x7f06002a +net.micode.notes:attr/itemPadding = 0x7f03008c +net.micode.notes:attr/colorPrimary = 0x7f030052 +net.micode.notes:attr/listPreferredItemPaddingRight = 0x7f0300a1 +net.micode.notes:drawable/list_white_up = 0x7f07007c +net.micode.notes:attr/backgroundSplit = 0x7f030032 +net.micode.notes:styleable/ActivityChooserView = 0x7f100005 +net.micode.notes:layout/abc_screen_simple_overlay_action_mode = 0x7f0a0016 +net.micode.notes:attr/actionDropDownStyle = 0x7f03000c +net.micode.notes:style/Theme.AppCompat.DayNight.Dialog.Alert = 0x7f0f0103 +net.micode.notes:attr/logoDescription = 0x7f0300a3 +net.micode.notes:drawable/abc_menu_hardkey_panel_mtrl_mult = 0x7f070034 +net.micode.notes:attr/windowFixedWidthMajor = 0x7f03010b +net.micode.notes:attr/actionBarDivider = 0x7f030000 +net.micode.notes:dimen/abc_action_button_min_height_material = 0x7f06000d +net.micode.notes:attr/actionModeStyle = 0x7f03001b +net.micode.notes:style/TextAppearance.AppCompat.Body2 = 0x7f0f00c1 +net.micode.notes:anim/abc_tooltip_exit = 0x7f01000b +net.micode.notes:attr/actionProviderClass = 0x7f03001f +net.micode.notes:string/notelist_string_info = 0x7f0e006a +net.micode.notes:attr/actionLayout = 0x7f03000d +net.micode.notes:string/widget_havenot_content = 0x7f0e008d +net.micode.notes:attr/actionBarItemBackground = 0x7f030001 +net.micode.notes:id/alertTitle = 0x7f08001e +net.micode.notes:style/Base.Widget.AppCompat.ActionBar.TabView = 0x7f0f006b +net.micode.notes:drawable/abc_ic_voice_search_api_material = 0x7f070025 +net.micode.notes:attr/showTitle = 0x7f0300c8 +net.micode.notes:attr/actionModeCopyDrawable = 0x7f030013 +net.micode.notes:color/background_floating_material_dark = 0x7f05001a +net.micode.notes:attr/suggestionRowLayout = 0x7f0300d7 +net.micode.notes:drawable/list_red_down = 0x7f070075 +net.micode.notes:style/TextAppearance.AppCompat.Widget.ActionMode.Title.Inverse = 0x7f0f00e4 +net.micode.notes:style/TextAppearance.AppCompat.Large.Inverse = 0x7f0f00cb +net.micode.notes:style/RtlOverlay.Widget.AppCompat.PopupMenuItem.Shortcut = 0x7f0f00b3 +net.micode.notes:dimen/abc_dialog_min_width_major = 0x7f060022 +net.micode.notes:style/Widget.AppCompat.CompoundButton.RadioButton = 0x7f0f012e +net.micode.notes:string/app_name = 0x7f0e002b +net.micode.notes:attr/actionOverflowMenuStyle = 0x7f03001e +net.micode.notes:style/Theme.AppCompat.Light.Dialog = 0x7f0f010d +net.micode.notes:attr/actionMenuTextColor = 0x7f03000f +net.micode.notes:dimen/abc_seekbar_track_progress_height_material = 0x7f060036 +net.micode.notes:attr/fontProviderQuery = 0x7f03007a +net.micode.notes:id/action_bar_root = 0x7f08000b +net.micode.notes:attr/actionBarTabTextStyle = 0x7f030008 +net.micode.notes:style/TextAppearanceNormal = 0x7f0f00f9 +net.micode.notes:attr/dividerVertical = 0x7f030068 +net.micode.notes:style/TextAppearanceSecondaryItem = 0x7f0f00fb +net.micode.notes:attr/preserveIconSpacing = 0x7f0300b6 +net.micode.notes:color/abc_search_url_text_selected = 0x7f05000f +net.micode.notes:string/abc_menu_sym_shortcut_label = 0x7f0e001c +net.micode.notes:string/abc_font_family_body_1_material = 0x7f0e0008 +net.micode.notes:attr/measureWithLargestChild = 0x7f0300a5 +net.micode.notes:style/TextAppearance.AppCompat.Widget.PopupMenu.Large = 0x7f0f00eb +net.micode.notes:dimen/tooltip_horizontal_padding = 0x7f060070 +net.micode.notes:attr/dialogCornerRadius = 0x7f030061 +net.micode.notes:style/Base.Widget.AppCompat.Spinner.Underlined = 0x7f0f009c +net.micode.notes:string/menu_alert = 0x7f0e0046 +net.micode.notes:array/format_for_exported_note = 0x7f020000 +net.micode.notes:attr/actionBarSplitStyle = 0x7f030004 +net.micode.notes:string/preferences_menu_cancel = 0x7f0e0077 +net.micode.notes:drawable/list_white_single = 0x7f07007b +net.micode.notes:string/widget_under_visit_mode = 0x7f0e008e +net.micode.notes:drawable/abc_dialog_material_background = 0x7f070011 +net.micode.notes:style/Base.Widget.AppCompat.EditText = 0x7f0f0080 +net.micode.notes:attr/actionBarPopupTheme = 0x7f030002 +net.micode.notes:bool/abc_action_bar_embed_tabs = 0x7f040000 +net.micode.notes:styleable/AppCompatTheme = 0x7f10000e +net.micode.notes:drawable/abc_list_selector_holo_light = 0x7f070033 +net.micode.notes:dimen/abc_switch_padding = 0x7f060038 +net.micode.notes:attr/titleTextAppearance = 0x7f0300f8 +net.micode.notes:id/menu_share = 0x7f080073 +net.micode.notes:drawable/abc_list_focused_holo = 0x7f07002a +net.micode.notes:style/Base.Theme.AppCompat.DialogWhenLarge = 0x7f0f0042 +net.micode.notes:attr/paddingEnd = 0x7f0300ad +net.micode.notes:color/background_material_dark = 0x7f05001c +net.micode.notes:style/Base.Theme.AppCompat.Light.Dialog.Alert = 0x7f0f0046 +net.micode.notes:attr/checkedTextViewStyle = 0x7f030045 +net.micode.notes:dimen/abc_action_bar_default_height_material = 0x7f060002 +net.micode.notes:id/ALT = 0x7f080000 +net.micode.notes:string/alert_message_delete_folder = 0x7f0e0027 +net.micode.notes:dimen/hint_pressed_alpha_material_light = 0x7f06005a +net.micode.notes:attr/coordinatorLayoutStyle = 0x7f03005e +net.micode.notes:id/iv_bg_blue_select = 0x7f080052 +net.micode.notes:anim/abc_slide_out_bottom = 0x7f010008 +net.micode.notes:attr/contentInsetRight = 0x7f03005a +net.micode.notes:attr/collapseIcon = 0x7f030049 +net.micode.notes:string/ticker_success = 0x7f0e008b +net.micode.notes:dimen/abc_action_button_min_width_overflow_material = 0x7f06000f +net.micode.notes:attr/actionModeWebSearchDrawable = 0x7f03001c diff --git a/app/build/intermediates/variant_model/debug/variant_model.json b/app/build/intermediates/variant_model/debug/variant_model.json new file mode 100644 index 0000000..fbfb74a Binary files /dev/null and b/app/build/intermediates/variant_model/debug/variant_model.json differ diff --git a/app/build/outputs/logs/manifest-merger-debug-report.txt b/app/build/outputs/logs/manifest-merger-debug-report.txt new file mode 100644 index 0000000..f9b6741 --- /dev/null +++ b/app/build/outputs/logs/manifest-merger-debug-report.txt @@ -0,0 +1,343 @@ +-- Merging decision tree log --- +manifest +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +MERGED from [com.android.support:appcompat-v7:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\transformed\appcompat-v7-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:support-fragment:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\40e37da139b1bd9b7bb8fa764c559d9c\transformed\support-fragment-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:animated-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\e216d5fc9d484c02d41662c8e0d7e480\transformed\animated-vector-drawable-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:support-core-ui:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\fa82f3329e59aafeaa3050f33beac85e\transformed\support-core-ui-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:support-core-utils:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\4e0198e82df7df76f4b187e00d280369\transformed\support-core-utils-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:support-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b989c8f12e7c957abc7a1884076574a\transformed\support-vector-drawable-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:loader:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d16fbd92de45efb526b3b585a0a005fc\transformed\loader-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:viewpager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1e4b8f041d5297383d42909d15c5b2a3\transformed\viewpager-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:coordinatorlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\568c762957e87adb25eac94f3bddea2d\transformed\coordinatorlayout-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:drawerlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\a475c4691c9d028902b5a7488887115d\transformed\drawerlayout-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:slidingpanelayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\9d6a31faaaea9177a87179bc9310c6ea\transformed\slidingpanelayout-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:customview:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\5841284d7507ad629e40e1c8df6e4056\transformed\customview-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:swiperefreshlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1127f69e69b22545ca312359b65618e7\transformed\swiperefreshlayout-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:asynclayoutinflater:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\398703382a1e8b659cf490e6c447382b\transformed\asynclayoutinflater-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:17:1-24:12 +MERGED from [com.android.support:versionedparcelable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\481601e68be228fa2a45e74a81c7e04e\transformed\versionedparcelable-28.0.0\AndroidManifest.xml:17:1-25:12 +MERGED from [com.android.support:cursoradapter:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\c707fe02fa1106d9f0139fe5215803d7\transformed\cursoradapter-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [android.arch.lifecycle:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\f123473990d486b3f20e8fe949c7b281\transformed\runtime-1.1.1\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:documentfile:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\67ddafa61b8f47933cb658e483beb385\transformed\documentfile-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:localbroadcastmanager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\70db801f677f7f92eb41cc9d8c101114\transformed\localbroadcastmanager-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:print:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d2faecab65285283c7b675bf5558ce45\transformed\print-28.0.0\AndroidManifest.xml:17:1-22:12 +MERGED from [android.arch.lifecycle:viewmodel:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d2b956bf5399713c4d2044c4c083205a\transformed\viewmodel-1.1.1\AndroidManifest.xml:17:1-22:12 +MERGED from [android.arch.lifecycle:livedata:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\a53d9506ae4dacb055d43639ef5bb2b9\transformed\livedata-1.1.1\AndroidManifest.xml:17:1-22:12 +MERGED from [android.arch.lifecycle:livedata-core:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\8685e06f4e5777f3b1c280be6231fd18\transformed\livedata-core-1.1.1\AndroidManifest.xml:17:1-22:12 +MERGED from [android.arch.core:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d7f073c16ca3baa38c501851e8255cb7\transformed\runtime-1.1.1\AndroidManifest.xml:17:1-22:12 +MERGED from [com.android.support:interpolator:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d68956c51c5efef0e8a1717341546fdc\transformed\interpolator-28.0.0\AndroidManifest.xml:17:1-22:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:1-163:12 + package + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:20:5-31 + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + android:versionName + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:22:5-30 + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + xmlns:tools + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:19:5-51 + xmlns:android + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:18:11-69 + android:versionCode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:21:5-28 + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml +uses-sdk +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +MERGED from [com.android.support:appcompat-v7:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\transformed\appcompat-v7-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:appcompat-v7:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\ea5271aff2e9b4fa4c0a0cdbc7dd64f1\transformed\appcompat-v7-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-fragment:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\40e37da139b1bd9b7bb8fa764c559d9c\transformed\support-fragment-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-fragment:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\40e37da139b1bd9b7bb8fa764c559d9c\transformed\support-fragment-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:animated-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\e216d5fc9d484c02d41662c8e0d7e480\transformed\animated-vector-drawable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:animated-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\e216d5fc9d484c02d41662c8e0d7e480\transformed\animated-vector-drawable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-core-ui:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\fa82f3329e59aafeaa3050f33beac85e\transformed\support-core-ui-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-core-ui:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\fa82f3329e59aafeaa3050f33beac85e\transformed\support-core-ui-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-core-utils:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\4e0198e82df7df76f4b187e00d280369\transformed\support-core-utils-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-core-utils:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\4e0198e82df7df76f4b187e00d280369\transformed\support-core-utils-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b989c8f12e7c957abc7a1884076574a\transformed\support-vector-drawable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-vector-drawable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b989c8f12e7c957abc7a1884076574a\transformed\support-vector-drawable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:loader:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d16fbd92de45efb526b3b585a0a005fc\transformed\loader-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:loader:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d16fbd92de45efb526b3b585a0a005fc\transformed\loader-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:viewpager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1e4b8f041d5297383d42909d15c5b2a3\transformed\viewpager-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:viewpager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1e4b8f041d5297383d42909d15c5b2a3\transformed\viewpager-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:coordinatorlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\568c762957e87adb25eac94f3bddea2d\transformed\coordinatorlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:coordinatorlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\568c762957e87adb25eac94f3bddea2d\transformed\coordinatorlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:drawerlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\a475c4691c9d028902b5a7488887115d\transformed\drawerlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:drawerlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\a475c4691c9d028902b5a7488887115d\transformed\drawerlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:slidingpanelayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\9d6a31faaaea9177a87179bc9310c6ea\transformed\slidingpanelayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:slidingpanelayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\9d6a31faaaea9177a87179bc9310c6ea\transformed\slidingpanelayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:customview:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\5841284d7507ad629e40e1c8df6e4056\transformed\customview-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:customview:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\5841284d7507ad629e40e1c8df6e4056\transformed\customview-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:swiperefreshlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1127f69e69b22545ca312359b65618e7\transformed\swiperefreshlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:swiperefreshlayout:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\1127f69e69b22545ca312359b65618e7\transformed\swiperefreshlayout-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:asynclayoutinflater:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\398703382a1e8b659cf490e6c447382b\transformed\asynclayoutinflater-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:asynclayoutinflater:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\398703382a1e8b659cf490e6c447382b\transformed\asynclayoutinflater-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:versionedparcelable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\481601e68be228fa2a45e74a81c7e04e\transformed\versionedparcelable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:versionedparcelable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\481601e68be228fa2a45e74a81c7e04e\transformed\versionedparcelable-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:cursoradapter:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\c707fe02fa1106d9f0139fe5215803d7\transformed\cursoradapter-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:cursoradapter:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\c707fe02fa1106d9f0139fe5215803d7\transformed\cursoradapter-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\f123473990d486b3f20e8fe949c7b281\transformed\runtime-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\f123473990d486b3f20e8fe949c7b281\transformed\runtime-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:documentfile:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\67ddafa61b8f47933cb658e483beb385\transformed\documentfile-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:documentfile:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\67ddafa61b8f47933cb658e483beb385\transformed\documentfile-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:localbroadcastmanager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\70db801f677f7f92eb41cc9d8c101114\transformed\localbroadcastmanager-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:localbroadcastmanager:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\70db801f677f7f92eb41cc9d8c101114\transformed\localbroadcastmanager-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:print:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d2faecab65285283c7b675bf5558ce45\transformed\print-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:print:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d2faecab65285283c7b675bf5558ce45\transformed\print-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:viewmodel:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d2b956bf5399713c4d2044c4c083205a\transformed\viewmodel-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:viewmodel:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d2b956bf5399713c4d2044c4c083205a\transformed\viewmodel-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:livedata:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\a53d9506ae4dacb055d43639ef5bb2b9\transformed\livedata-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:livedata:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\a53d9506ae4dacb055d43639ef5bb2b9\transformed\livedata-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:livedata-core:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\8685e06f4e5777f3b1c280be6231fd18\transformed\livedata-core-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.lifecycle:livedata-core:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\8685e06f4e5777f3b1c280be6231fd18\transformed\livedata-core-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.core:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d7f073c16ca3baa38c501851e8255cb7\transformed\runtime-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [android.arch.core:runtime:1.1.1] C:\Users\Re11a\.gradle\caches\transforms-3\d7f073c16ca3baa38c501851e8255cb7\transformed\runtime-1.1.1\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:interpolator:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d68956c51c5efef0e8a1717341546fdc\transformed\interpolator-28.0.0\AndroidManifest.xml:20:5-44 +MERGED from [com.android.support:interpolator:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\d68956c51c5efef0e8a1717341546fdc\transformed\interpolator-28.0.0\AndroidManifest.xml:20:5-44 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 +INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 + android:targetSdkVersion + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:5-44 + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + android:minSdkVersion + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:24:15-41 + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml +uses-permission#android.permission.WRITE_EXTERNAL_STORAGE +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:26:5-81 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:26:22-78 +uses-permission#com.android.launcher.permission.INSTALL_SHORTCUT +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:27:5-88 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:27:22-85 +uses-permission#android.permission.INTERNET +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:28:5-67 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:28:22-64 +uses-permission#android.permission.READ_CONTACTS +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:29:5-72 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:29:22-69 +uses-permission#android.permission.MANAGE_ACCOUNTS +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:30:5-74 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:30:22-71 +uses-permission#android.permission.AUTHENTICATE_ACCOUNTS +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:31:5-80 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:31:22-77 +uses-permission#android.permission.GET_ACCOUNTS +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:32:5-71 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:32:22-68 +uses-permission#android.permission.USE_CREDENTIALS +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:33:5-74 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:33:22-71 +uses-permission#android.permission.RECEIVE_BOOT_COMPLETED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:34:5-81 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:34:22-78 +application +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:36:5-162:19 +MERGED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:22:5-94 +MERGED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:22:5-94 +MERGED from [com.android.support:versionedparcelable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\481601e68be228fa2a45e74a81c7e04e\transformed\versionedparcelable-28.0.0\AndroidManifest.xml:22:5-23:19 +MERGED from [com.android.support:versionedparcelable:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\481601e68be228fa2a45e74a81c7e04e\transformed\versionedparcelable-28.0.0\AndroidManifest.xml:22:5-23:19 + android:appComponentFactory + ADDED from [com.android.support:support-compat:28.0.0] C:\Users\Re11a\.gradle\caches\transforms-3\0b22a6b07b3e498281e2fdb9d93c9c6b\transformed\support-compat-28.0.0\AndroidManifest.xml:22:18-91 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:38:9-41 + android:icon + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:37:9-42 +activity#net.micode.notes.ui.NotesListActivity +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:39:9-54:20 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:43:13-45 + android:launchMode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:44:13-43 + android:windowSoftInputMode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:47:13-52 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:41:13-36 + android:uiOptions + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:46:13-57 + android:configChanges + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:42:13-74 + android:theme + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:45:13-71 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:40:13-49 +intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:50:13-53:29 +action#android.intent.action.MAIN +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:51:17-69 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:51:25-66 +category#android.intent.category.LAUNCHER +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:52:17-77 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:52:27-74 +activity#net.micode.notes.ui.NoteEditActivity +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:56:9-87:20 + android:launchMode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:60:13-43 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:58:13-36 + android:configChanges + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:59:13-74 + android:theme + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:61:13-71 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:57:13-48 +intent-filter#action:name:android.intent.action.VIEW+category:name:android.intent.category.DEFAULT+data:mimeType:vnd.android.cursor.item/call_note+data:mimeType:vnd.android.cursor.item/text_note +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:64:13-70:29 + android:scheme + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:64:28-49 + tools:ignore + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:65:17-47 +action#android.intent.action.VIEW +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:66:17-69 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:66:25-66 +category#android.intent.category.DEFAULT +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:17-76 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:67:27-73 +data +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:17-78 + android:mimeType + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:68:23-75 +intent-filter#action:name:android.intent.action.INSERT_OR_EDIT+category:name:android.intent.category.DEFAULT+data:mimeType:vnd.android.cursor.item/call_note+data:mimeType:vnd.android.cursor.item/text_note +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:72:13-77:29 +action#android.intent.action.INSERT_OR_EDIT +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:73:17-79 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:73:25-76 +intent-filter#action:name:android.intent.action.SEARCH+category:name:android.intent.category.DEFAULT +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:79:13-82:29 +action#android.intent.action.SEARCH +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:80:17-71 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:80:25-68 +meta-data#android.app.searchable +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:84:13-86:54 + android:resource + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:86:17-51 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:85:17-54 +provider#net.micode.notes.data.NotesProvider +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:89:9-93:43 + android:authorities + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:92:13-47 + android:multiprocess + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:93:13-40 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:91:13-36 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:90:13-63 +receiver#net.micode.notes.widget.NoteWidgetProvider_2x +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:95:9-108:20 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:98:13-50 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:97:13-36 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:96:13-57 +intent-filter#action:name:android.appwidget.action.APPWIDGET_DELETED+action:name:android.appwidget.action.APPWIDGET_UPDATE+action:name:android.intent.action.PRIVACY_MODE_CHANGED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:99:13-103:29 +action#android.appwidget.action.APPWIDGET_UPDATE +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:17-84 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:100:25-81 +action#android.appwidget.action.APPWIDGET_DELETED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:17-85 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:101:25-82 +action#android.intent.action.PRIVACY_MODE_CHANGED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:17-85 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:102:25-82 +meta-data#android.appwidget.provider +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:105:13-107:58 + android:resource + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:107:17-55 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:106:17-58 +receiver#net.micode.notes.widget.NoteWidgetProvider_4x +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:109:9-123:20 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:112:13-50 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:111:13-36 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:110:13-57 +receiver#net.micode.notes.ui.AlarmInitReceiver +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:125:9-130:20 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:126:19-42 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:125:19-55 +intent-filter#action:name:android.intent.action.BOOT_COMPLETED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:127:13-129:29 +action#android.intent.action.BOOT_COMPLETED +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:128:17-79 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:128:25-76 +receiver#net.micode.notes.ui.AlarmReceiver +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:132:9-136:20 + android:process + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:135:13-38 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:134:13-36 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:133:13-61 +activity#net.micode.notes.ui.AlarmAlertActivity +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:138:9-144:20 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:141:13-45 + android:launchMode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:142:13-48 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:140:13-36 + android:theme + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:143:13-75 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:139:13-50 +activity#net.micode.notes.ui.NotesPreferenceActivity +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:146:9-152:20 + android:label + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:149:13-54 + android:launchMode + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:150:13-43 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:148:13-36 + android:theme + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:151:13-60 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:147:13-71 +service#net.micode.notes.gtask.remote.GTaskSyncService +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:154:9-157:19 + android:exported + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:156:13-37 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:155:13-74 +meta-data#android.app.default_searchable +ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:159:9-161:52 + android:value + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:161:13-49 + android:name + ADDED from C:\Users\Re11a\AndroidStudioProjects\minote\MiNotes\app\src\main\AndroidManifest.xml:160:13-58 diff --git a/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin new file mode 100644 index 0000000..174fae2 Binary files /dev/null and b/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7c5ecea --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/java/net/micode/notes/MainActivity.java b/app/src/main/java/net/micode/notes/MainActivity.java new file mode 100644 index 0000000..3fe53d7 --- /dev/null +++ b/app/src/main/java/net/micode/notes/MainActivity.java @@ -0,0 +1,6 @@ +package net.micode.notes; + +import android.app.Activity; + +public class MainActivity extends Activity { +} diff --git a/app/src/main/java/net/micode/notes/data/Contact.java b/app/src/main/java/net/micode/notes/data/Contact.java new file mode 100644 index 0000000..d97ac5d --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/Contact.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.Context; +import android.database.Cursor; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Data; +import android.telephony.PhoneNumberUtils; +import android.util.Log; + +import java.util.HashMap; + +public class Contact { + private static HashMap sContactCache; + private static final String TAG = "Contact"; + + private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + + " AND " + Data.RAW_CONTACT_ID + " IN " + + "(SELECT raw_contact_id " + + " FROM phone_lookup" + + " WHERE min_match = '+')"; + + public static String getContact(Context context, String phoneNumber) { + if(sContactCache == null) { + sContactCache = new HashMap(); + } + + if(sContactCache.containsKey(phoneNumber)) { + return sContactCache.get(phoneNumber); + } + + String selection = CALLER_ID_SELECTION.replace("+", + PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); + Cursor cursor = context.getContentResolver().query( + Data.CONTENT_URI, + new String [] { Phone.DISPLAY_NAME }, + selection, + new String[] { phoneNumber }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + String name = cursor.getString(0); + sContactCache.put(phoneNumber, name); + return name; + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, " Cursor get string error " + e.toString()); + return null; + } finally { + cursor.close(); + } + } else { + Log.d(TAG, "No contact matched with number:" + phoneNumber); + return null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/data/Notes.java b/app/src/main/java/net/micode/notes/data/Notes.java new file mode 100644 index 0000000..f240604 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/Notes.java @@ -0,0 +1,279 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.net.Uri; +public class Notes { + public static final String AUTHORITY = "micode_notes"; + public static final String TAG = "Notes"; + public static final int TYPE_NOTE = 0; + public static final int TYPE_FOLDER = 1; + public static final int TYPE_SYSTEM = 2; + + /** + * Following IDs are system folders' identifiers + * {@link Notes#ID_ROOT_FOLDER } is default folder + * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder + * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records + */ + public static final int ID_ROOT_FOLDER = 0; + public static final int ID_TEMPARAY_FOLDER = -1; + public static final int ID_CALL_RECORD_FOLDER = -2; + public static final int ID_TRASH_FOLER = -3; + + public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; + public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; + public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; + public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; + public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; + public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; + + public static final int TYPE_WIDGET_INVALIDE = -1; + public static final int TYPE_WIDGET_2X = 0; + public static final int TYPE_WIDGET_4X = 1; + + public static class DataConstants { + public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; + public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; + } + + /** + * Uri to query all notes and folders + */ + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + + /** + * Uri to query data + */ + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + + public interface NoteColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The parent's id for note or folder + *

Type: INTEGER (long)

+ */ + public static final String PARENT_ID = "parent_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + + /** + * Alert date + *

Type: INTEGER (long)

+ */ + public static final String ALERTED_DATE = "alert_date"; + + /** + * Folder's name or text content of note + *

Type: TEXT

+ */ + public static final String SNIPPET = "snippet"; + + /** + * Note's widget id + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_ID = "widget_id"; + + /** + * Note's widget type + *

Type: INTEGER (long)

+ */ + public static final String WIDGET_TYPE = "widget_type"; + + /** + * Note's background color's id + *

Type: INTEGER (long)

+ */ + public static final String BG_COLOR_ID = "bg_color_id"; + + /** + * For text note, it doesn't has attachment, for multi-media + * note, it has at least one attachment + *

Type: INTEGER

+ */ + public static final String HAS_ATTACHMENT = "has_attachment"; + + /** + * Folder's count of notes + *

Type: INTEGER (long)

+ */ + public static final String NOTES_COUNT = "notes_count"; + + /** + * The file type: folder or note + *

Type: INTEGER

+ */ + public static final String TYPE = "type"; + + /** + * The last sync id + *

Type: INTEGER (long)

+ */ + public static final String SYNC_ID = "sync_id"; + + /** + * Sign to indicate local modified or not + *

Type: INTEGER

+ */ + public static final String LOCAL_MODIFIED = "local_modified"; + + /** + * Original parent id before moving into temporary folder + *

Type : INTEGER

+ */ + public static final String ORIGIN_PARENT_ID = "origin_parent_id"; + + /** + * The gtask id + *

Type : TEXT

+ */ + public static final String GTASK_ID = "gtask_id"; + + /** + * The version code + *

Type : INTEGER (long)

+ */ + public static final String VERSION = "version"; + } + + public interface DataColumns { + /** + * The unique ID for a row + *

Type: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * The MIME type of the item represented by this row. + *

Type: Text

+ */ + public static final String MIME_TYPE = "mime_type"; + + /** + * The reference id to note that this data belongs to + *

Type: INTEGER (long)

+ */ + public static final String NOTE_ID = "note_id"; + + /** + * Created data for note or folder + *

Type: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * Latest modified date + *

Type: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + /** + * Data's content + *

Type: TEXT

+ */ + public static final String CONTENT = "content"; + + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA1 = "data1"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * integer data type + *

Type: INTEGER

+ */ + public static final String DATA2 = "data2"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA3 = "data3"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA4 = "data4"; + + /** + * Generic data column, the meaning is {@link #MIMETYPE} specific, used for + * TEXT data type + *

Type: TEXT

+ */ + public static final String DATA5 = "data5"; + } + + public static final class TextNote implements DataColumns { + /** + * Mode to indicate the text in check list mode or not + *

Type: Integer 1:check list mode 0: normal mode

+ */ + public static final String MODE = DATA1; + + public static final int MODE_CHECK_LIST = 1; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); + } + + public static final class CallNote implements DataColumns { + /** + * Call date for this record + *

Type: INTEGER (long)

+ */ + public static final String CALL_DATE = DATA1; + + /** + * Phone number for this record + *

Type: TEXT

+ */ + public static final String PHONE_NUMBER = DATA3; + + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; + + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; + + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); + } +} diff --git a/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java new file mode 100644 index 0000000..ffe5d57 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -0,0 +1,362 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.ContentValues; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + + +public class NotesDatabaseHelper extends SQLiteOpenHelper { + private static final String DB_NAME = "note.db"; + + private static final int DB_VERSION = 4; + + public interface TABLE { + public static final String NOTE = "note"; + + public static final String DATA = "data"; + } + + private static final String TAG = "NotesDatabaseHelper"; + + private static NotesDatabaseHelper mInstance; + + private static final String CREATE_NOTE_TABLE_SQL = + "CREATE TABLE " + TABLE.NOTE + "(" + + NoteColumns.ID + " INTEGER PRIMARY KEY," + + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + + NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + ")"; + + private static final String CREATE_DATA_TABLE_SQL = + "CREATE TABLE " + TABLE.DATA + "(" + + DataColumns.ID + " INTEGER PRIMARY KEY," + + DataColumns.MIME_TYPE + " TEXT NOT NULL," + + DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA1 + " INTEGER," + + DataColumns.DATA2 + " INTEGER," + + DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + + ")"; + + private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = + "CREATE INDEX IF NOT EXISTS note_id_index ON " + + TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; + + /** + * Increase folder's note count when move note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_update "+ + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when move note from folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_update " + + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + + " END"; + + /** + * Increase folder's note count when insert new note to the folder + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_insert " + + " AFTER INSERT ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * Decrease folder's note count when delete note from the folder + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0;" + + " END"; + + /** + * Update note's content when insert data with type {@link DataConstants#NOTE} + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = + "CREATE TRIGGER update_note_content_on_insert " + + " AFTER INSERT ON " + TABLE.DATA + + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has changed + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER update_note_content_on_update " + + " AFTER UPDATE ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Update note's content when data with {@link DataConstants#NOTE} type has deleted + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = + "CREATE TRIGGER update_note_content_on_delete " + + " AFTER delete ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=''" + + " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * Delete datas belong to note which has been deleted + */ + private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = + "CREATE TRIGGER delete_data_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.DATA + + " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Delete notes belong to folder which has been deleted + */ + private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = + "CREATE TRIGGER folder_delete_notes_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * Move notes belong to folder which has been moved to trash folder + */ + private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = + "CREATE TRIGGER folder_move_notes_on_trash " + + " AFTER UPDATE ON " + TABLE.NOTE + + " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + public NotesDatabaseHelper(Context context) { + super(context, DB_NAME, null, DB_VERSION); + } + + public void createNoteTable(SQLiteDatabase db) { + db.execSQL(CREATE_NOTE_TABLE_SQL); + reCreateNoteTableTriggers(db); + createSystemFolder(db); + Log.d(TAG, "note table has been created"); + } + + private void reCreateNoteTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); + + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); + db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); + db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); + db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); + } + + private void createSystemFolder(SQLiteDatabase db) { + ContentValues values = new ContentValues(); + + /** + * call record foler for call notes + */ + values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * root folder which is default folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * temporary folder which is used for moving note + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + /** + * create trash folder + */ + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + public void createDataTable(SQLiteDatabase db) { + db.execSQL(CREATE_DATA_TABLE_SQL); + reCreateDataTableTriggers(db); + db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL); + Log.d(TAG, "data table has been created"); + } + + private void reCreateDataTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); + + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); + } + + static synchronized NotesDatabaseHelper getInstance(Context context) { + if (mInstance == null) { + mInstance = new NotesDatabaseHelper(context); + } + return mInstance; + } + + @Override + public void onCreate(SQLiteDatabase db) { + createNoteTable(db); + createDataTable(db); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + boolean reCreateTriggers = false; + boolean skipV2 = false; + + if (oldVersion == 1) { + upgradeToV2(db); + skipV2 = true; // this upgrade including the upgrade from v2 to v3 + oldVersion++; + } + + if (oldVersion == 2 && !skipV2) { + upgradeToV3(db); + reCreateTriggers = true; + oldVersion++; + } + + if (oldVersion == 3) { + upgradeToV4(db); + oldVersion++; + } + + if (reCreateTriggers) { + reCreateNoteTableTriggers(db); + reCreateDataTableTriggers(db); + } + + if (oldVersion != newVersion) { + throw new IllegalStateException("Upgrade notes database to version " + newVersion + + "fails"); + } + } + + private void upgradeToV2(SQLiteDatabase db) { + db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); + db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); + createNoteTable(db); + createDataTable(db); + } + + private void upgradeToV3(SQLiteDatabase db) { + // drop unused triggers + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); + // add a column for gtask id + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + + " TEXT NOT NULL DEFAULT ''"); + // add a trash system folder + ContentValues values = new ContentValues(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + private void upgradeToV4(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + + " INTEGER NOT NULL DEFAULT 0"); + } +} diff --git a/app/src/main/java/net/micode/notes/data/NotesProvider.java b/app/src/main/java/net/micode/notes/data/NotesProvider.java new file mode 100644 index 0000000..edb0a60 --- /dev/null +++ b/app/src/main/java/net/micode/notes/data/NotesProvider.java @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + + +import android.app.SearchManager; +import android.content.ContentProvider; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Intent; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; + + +public class NotesProvider extends ContentProvider { + private static final UriMatcher mMatcher; + + private NotesDatabaseHelper mHelper; + + private static final String TAG = "NotesProvider"; + + private static final int URI_NOTE = 1; + private static final int URI_NOTE_ITEM = 2; + private static final int URI_DATA = 3; + private static final int URI_DATA_ITEM = 4; + + private static final int URI_SEARCH = 5; + private static final int URI_SEARCH_SUGGEST = 6; + + static { + mMatcher = new UriMatcher(UriMatcher.NO_MATCH); + mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); + mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); + mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); + mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); + } + + /** + * x'0A' represents the '\n' character in sqlite. For title and content in the search result, + * we will trim '\n' and white space in order to show more information. + */ + private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," + + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," + + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," + + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," + + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + + private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION + + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + + @Override + public boolean onCreate() { + mHelper = NotesDatabaseHelper.getInstance(getContext()); + return true; + } + + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + String sortOrder) { + Cursor c = null; + SQLiteDatabase db = mHelper.getReadableDatabase(); + String id = null; + switch (mMatcher.match(uri)) { + case URI_NOTE: + c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_DATA: + c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_SEARCH: + case URI_SEARCH_SUGGEST: + if (sortOrder != null || projection != null) { + throw new IllegalArgumentException( + "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); + } + + String searchString = null; + if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { + if (uri.getPathSegments().size() > 1) { + searchString = uri.getPathSegments().get(1); + } + } else { + searchString = uri.getQueryParameter("pattern"); + } + + if (TextUtils.isEmpty(searchString)) { + return null; + } + + try { + searchString = String.format("%%%s%%", searchString); + c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, + new String[] { searchString }); + } catch (IllegalStateException ex) { + Log.e(TAG, "got exception: " + ex.toString()); + } + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (c != null) { + c.setNotificationUri(getContext().getContentResolver(), uri); + } + return c; + } + + @Override + public Uri insert(Uri uri, ContentValues values) { + SQLiteDatabase db = mHelper.getWritableDatabase(); + long dataId = 0, noteId = 0, insertedId = 0; + switch (mMatcher.match(uri)) { + case URI_NOTE: + insertedId = noteId = db.insert(TABLE.NOTE, null, values); + break; + case URI_DATA: + if (values.containsKey(DataColumns.NOTE_ID)) { + noteId = values.getAsLong(DataColumns.NOTE_ID); + } else { + Log.d(TAG, "Wrong data format without note id:" + values.toString()); + } + insertedId = dataId = db.insert(TABLE.DATA, null, values); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + // Notify the note uri + if (noteId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); + } + + // Notify the data uri + if (dataId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); + } + + return ContentUris.withAppendedId(uri, insertedId); + } + + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean deleteData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; + count = db.delete(TABLE.NOTE, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + /** + * ID that smaller than 0 is system folder which is not allowed to + * trash + */ + long noteId = Long.valueOf(id); + if (noteId <= 0) { + break; + } + count = db.delete(TABLE.NOTE, + NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.delete(TABLE.DATA, selection, selectionArgs); + deleteData = true; + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + count = db.delete(TABLE.DATA, + DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + deleteData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + if (count > 0) { + if (deleteData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean updateData = false; + switch (mMatcher.match(uri)) { + case URI_NOTE: + increaseNoteVersion(-1, selection, selectionArgs); + count = db.update(TABLE.NOTE, values, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + id = uri.getPathSegments().get(1); + increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); + count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + count = db.update(TABLE.DATA, values, selection, selectionArgs); + updateData = true; + break; + case URI_DATA_ITEM: + id = uri.getPathSegments().get(1); + count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + updateData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + if (count > 0) { + if (updateData) { + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + private String parseSelection(String selection) { + return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); + } + + private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { + StringBuilder sql = new StringBuilder(120); + sql.append("UPDATE "); + sql.append(TABLE.NOTE); + sql.append(" SET "); + sql.append(NoteColumns.VERSION); + sql.append("=" + NoteColumns.VERSION + "+1 "); + + if (id > 0 || !TextUtils.isEmpty(selection)) { + sql.append(" WHERE "); + } + if (id > 0) { + sql.append(NoteColumns.ID + "=" + String.valueOf(id)); + } + if (!TextUtils.isEmpty(selection)) { + String selectString = id > 0 ? parseSelection(selection) : selection; + for (String args : selectionArgs) { + selectString = selectString.replaceFirst("\\?", args); + } + sql.append(selectString); + } + + mHelper.getWritableDatabase().execSQL(sql.toString()); + } + + @Override + public String getType(Uri uri) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/MetaData.java b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java new file mode 100644 index 0000000..3a2050b --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class MetaData extends Task { + private final static String TAG = MetaData.class.getSimpleName(); + + private String mRelatedGid = null; + + public void setMeta(String gid, JSONObject metaInfo) { + try { + metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); + } catch (JSONException e) { + Log.e(TAG, "failed to put related gid"); + } + setNotes(metaInfo.toString()); + setName(GTaskStringUtils.META_NOTE_NAME); + } + + public String getRelatedGid() { + return mRelatedGid; + } + + @Override + public boolean isWorthSaving() { + return getNotes() != null; + } + + @Override + public void setContentByRemoteJSON(JSONObject js) { + super.setContentByRemoteJSON(js); + if (getNotes() != null) { + try { + JSONObject metaInfo = new JSONObject(getNotes().trim()); + mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); + } catch (JSONException e) { + Log.w(TAG, "failed to get related gid"); + mRelatedGid = null; + } + } + } + + @Override + public void setContentByLocalJSON(JSONObject js) { + // this function should not be called + throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + } + + @Override + public JSONObject getLocalJSONFromContent() { + throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); + } + + @Override + public int getSyncAction(Cursor c) { + throw new IllegalAccessError("MetaData:getSyncAction should not be called"); + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/Node.java b/app/src/main/java/net/micode/notes/gtask/data/Node.java new file mode 100644 index 0000000..63950e0 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/Node.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; + +import org.json.JSONObject; + +public abstract class Node { + public static final int SYNC_ACTION_NONE = 0; + + public static final int SYNC_ACTION_ADD_REMOTE = 1; + + public static final int SYNC_ACTION_ADD_LOCAL = 2; + + public static final int SYNC_ACTION_DEL_REMOTE = 3; + + public static final int SYNC_ACTION_DEL_LOCAL = 4; + + public static final int SYNC_ACTION_UPDATE_REMOTE = 5; + + public static final int SYNC_ACTION_UPDATE_LOCAL = 6; + + public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; + + public static final int SYNC_ACTION_ERROR = 8; + + private String mGid; + + private String mName; + + private long mLastModified; + + private boolean mDeleted; + + public Node() { + mGid = null; + mName = ""; + mLastModified = 0; + mDeleted = false; + } + + public abstract JSONObject getCreateAction(int actionId); + + public abstract JSONObject getUpdateAction(int actionId); + + public abstract void setContentByRemoteJSON(JSONObject js); + + public abstract void setContentByLocalJSON(JSONObject js); + + public abstract JSONObject getLocalJSONFromContent(); + + public abstract int getSyncAction(Cursor c); + + public void setGid(String gid) { + this.mGid = gid; + } + + public void setName(String name) { + this.mName = name; + } + + public void setLastModified(long lastModified) { + this.mLastModified = lastModified; + } + + public void setDeleted(boolean deleted) { + this.mDeleted = deleted; + } + + public String getGid() { + return this.mGid; + } + + public String getName() { + return this.mName; + } + + public long getLastModified() { + return this.mLastModified; + } + + public boolean getDeleted() { + return this.mDeleted; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/SqlData.java b/app/src/main/java/net/micode/notes/gtask/data/SqlData.java new file mode 100644 index 0000000..d3ec3be --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -0,0 +1,189 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; +import net.micode.notes.gtask.exception.ActionFailureException; + +import org.json.JSONException; +import org.json.JSONObject; + + +public class SqlData { + private static final String TAG = SqlData.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_DATA = new String[] { + DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, + DataColumns.DATA3 + }; + + public static final int DATA_ID_COLUMN = 0; + + public static final int DATA_MIME_TYPE_COLUMN = 1; + + public static final int DATA_CONTENT_COLUMN = 2; + + public static final int DATA_CONTENT_DATA_1_COLUMN = 3; + + public static final int DATA_CONTENT_DATA_3_COLUMN = 4; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mDataId; + + private String mDataMimeType; + + private String mDataContent; + + private long mDataContentData1; + + private String mDataContentData3; + + private ContentValues mDiffDataValues; + + public SqlData(Context context) { + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mDataId = INVALID_ID; + mDataMimeType = DataConstants.NOTE; + mDataContent = ""; + mDataContentData1 = 0; + mDataContentData3 = ""; + mDiffDataValues = new ContentValues(); + } + + public SqlData(Context context, Cursor c) { + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDiffDataValues = new ContentValues(); + } + + private void loadFromCursor(Cursor c) { + mDataId = c.getLong(DATA_ID_COLUMN); + mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); + mDataContent = c.getString(DATA_CONTENT_COLUMN); + mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); + mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); + } + + public void setContent(JSONObject js) throws JSONException { + long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; + if (mIsCreate || mDataId != dataId) { + mDiffDataValues.put(DataColumns.ID, dataId); + } + mDataId = dataId; + + String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE) + : DataConstants.NOTE; + if (mIsCreate || !mDataMimeType.equals(dataMimeType)) { + mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType); + } + mDataMimeType = dataMimeType; + + String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : ""; + if (mIsCreate || !mDataContent.equals(dataContent)) { + mDiffDataValues.put(DataColumns.CONTENT, dataContent); + } + mDataContent = dataContent; + + long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0; + if (mIsCreate || mDataContentData1 != dataContentData1) { + mDiffDataValues.put(DataColumns.DATA1, dataContentData1); + } + mDataContentData1 = dataContentData1; + + String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : ""; + if (mIsCreate || !mDataContentData3.equals(dataContentData3)) { + mDiffDataValues.put(DataColumns.DATA3, dataContentData3); + } + mDataContentData3 = dataContentData3; + } + + public JSONObject getContent() throws JSONException { + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + JSONObject js = new JSONObject(); + js.put(DataColumns.ID, mDataId); + js.put(DataColumns.MIME_TYPE, mDataMimeType); + js.put(DataColumns.CONTENT, mDataContent); + js.put(DataColumns.DATA1, mDataContentData1); + js.put(DataColumns.DATA3, mDataContentData3); + return js; + } + + public void commit(long noteId, boolean validateVersion, long version) { + + if (mIsCreate) { + if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { + mDiffDataValues.remove(DataColumns.ID); + } + + mDiffDataValues.put(DataColumns.NOTE_ID, noteId); + Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); + try { + mDataId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + } else { + if (mDiffDataValues.size() > 0) { + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); + } else { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, + " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.VERSION + "=?)", new String[] { + String.valueOf(noteId), String.valueOf(version) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + } + + mDiffDataValues.clear(); + mIsCreate = false; + } + + public long getId() { + return mDataId; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java new file mode 100644 index 0000000..79a4095 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -0,0 +1,505 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.appwidget.AppWidgetManager; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.tool.ResourceParser; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class SqlNote { + private static final String TAG = SqlNote.class.getSimpleName(); + + private static final int INVALID_ID = -99999; + + public static final String[] PROJECTION_NOTE = new String[] { + NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, NoteColumns.PARENT_ID, NoteColumns.SNIPPET, NoteColumns.TYPE, + NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.SYNC_ID, + NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID, + NoteColumns.VERSION + }; + + public static final int ID_COLUMN = 0; + + public static final int ALERTED_DATE_COLUMN = 1; + + public static final int BG_COLOR_ID_COLUMN = 2; + + public static final int CREATED_DATE_COLUMN = 3; + + public static final int HAS_ATTACHMENT_COLUMN = 4; + + public static final int MODIFIED_DATE_COLUMN = 5; + + public static final int NOTES_COUNT_COLUMN = 6; + + public static final int PARENT_ID_COLUMN = 7; + + public static final int SNIPPET_COLUMN = 8; + + public static final int TYPE_COLUMN = 9; + + public static final int WIDGET_ID_COLUMN = 10; + + public static final int WIDGET_TYPE_COLUMN = 11; + + public static final int SYNC_ID_COLUMN = 12; + + public static final int LOCAL_MODIFIED_COLUMN = 13; + + public static final int ORIGIN_PARENT_ID_COLUMN = 14; + + public static final int GTASK_ID_COLUMN = 15; + + public static final int VERSION_COLUMN = 16; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mIsCreate; + + private long mId; + + private long mAlertDate; + + private int mBgColorId; + + private long mCreatedDate; + + private int mHasAttachment; + + private long mModifiedDate; + + private long mParentId; + + private String mSnippet; + + private int mType; + + private int mWidgetId; + + private int mWidgetType; + + private long mOriginParent; + + private long mVersion; + + private ContentValues mDiffNoteValues; + + private ArrayList mDataList; + + public SqlNote(Context context) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mId = INVALID_ID; + mAlertDate = 0; + mBgColorId = ResourceParser.getDefaultBgId(context); + mCreatedDate = System.currentTimeMillis(); + mHasAttachment = 0; + mModifiedDate = System.currentTimeMillis(); + mParentId = 0; + mSnippet = ""; + mType = Notes.TYPE_NOTE; + mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + mOriginParent = 0; + mVersion = 0; + mDiffNoteValues = new ContentValues(); + mDataList = new ArrayList(); + } + + public SqlNote(Context context, Cursor c) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + } + + public SqlNote(Context context, long id) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(id); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + + } + + private void loadFromCursor(long id) { + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(id) + }, null); + if (c != null) { + c.moveToNext(); + loadFromCursor(c); + } else { + Log.w(TAG, "loadFromCursor: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + private void loadFromCursor(Cursor c) { + mId = c.getLong(ID_COLUMN); + mAlertDate = c.getLong(ALERTED_DATE_COLUMN); + mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = c.getLong(CREATED_DATE_COLUMN); + mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); + mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); + mParentId = c.getLong(PARENT_ID_COLUMN); + mSnippet = c.getString(SNIPPET_COLUMN); + mType = c.getInt(TYPE_COLUMN); + mWidgetId = c.getInt(WIDGET_ID_COLUMN); + mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); + mVersion = c.getLong(VERSION_COLUMN); + } + + private void loadDataContent() { + Cursor c = null; + mDataList.clear(); + try { + c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA, + "(note_id=?)", new String[] { + String.valueOf(mId) + }, null); + if (c != null) { + if (c.getCount() == 0) { + Log.w(TAG, "it seems that the note has not data"); + return; + } + while (c.moveToNext()) { + SqlData data = new SqlData(mContext, c); + mDataList.add(data); + } + } else { + Log.w(TAG, "loadDataContent: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + + public boolean setContent(JSONObject js) { + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + Log.w(TAG, "cannot set system folder"); + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + // for folder we can only update the snnipet and type + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID; + if (mIsCreate || mId != id) { + mDiffNoteValues.put(NoteColumns.ID, id); + } + mId = id; + + long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note + .getLong(NoteColumns.ALERTED_DATE) : 0; + if (mIsCreate || mAlertDate != alertDate) { + mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate); + } + mAlertDate = alertDate; + + int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note + .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext); + if (mIsCreate || mBgColorId != bgColorId) { + mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId); + } + mBgColorId = bgColorId; + + long createDate = note.has(NoteColumns.CREATED_DATE) ? note + .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mCreatedDate != createDate) { + mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate); + } + mCreatedDate = createDate; + + int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note + .getInt(NoteColumns.HAS_ATTACHMENT) : 0; + if (mIsCreate || mHasAttachment != hasAttachment) { + mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment); + } + mHasAttachment = hasAttachment; + + long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note + .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mModifiedDate != modifiedDate) { + mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate); + } + mModifiedDate = modifiedDate; + + long parentId = note.has(NoteColumns.PARENT_ID) ? note + .getLong(NoteColumns.PARENT_ID) : 0; + if (mIsCreate || mParentId != parentId) { + mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId); + } + mParentId = parentId; + + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + + int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) + : AppWidgetManager.INVALID_APPWIDGET_ID; + if (mIsCreate || mWidgetId != widgetId) { + mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); + } + mWidgetId = widgetId; + + int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note + .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE; + if (mIsCreate || mWidgetType != widgetType) { + mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); + } + mWidgetType = widgetType; + + long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note + .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0; + if (mIsCreate || mOriginParent != originParent) { + mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); + } + mOriginParent = originParent; + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + SqlData sqlData = null; + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + for (SqlData temp : mDataList) { + if (dataId == temp.getId()) { + sqlData = temp; + } + } + } + + if (sqlData == null) { + sqlData = new SqlData(mContext); + mDataList.add(sqlData); + } + + sqlData.setContent(data); + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } + return true; + } + + public JSONObject getContent() { + try { + JSONObject js = new JSONObject(); + + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + + JSONObject note = new JSONObject(); + if (mType == Notes.TYPE_NOTE) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.ALERTED_DATE, mAlertDate); + note.put(NoteColumns.BG_COLOR_ID, mBgColorId); + note.put(NoteColumns.CREATED_DATE, mCreatedDate); + note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment); + note.put(NoteColumns.MODIFIED_DATE, mModifiedDate); + note.put(NoteColumns.PARENT_ID, mParentId); + note.put(NoteColumns.SNIPPET, mSnippet); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.WIDGET_ID, mWidgetId); + note.put(NoteColumns.WIDGET_TYPE, mWidgetType); + note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + + JSONArray dataArray = new JSONArray(); + for (SqlData sqlData : mDataList) { + JSONObject data = sqlData.getContent(); + if (data != null) { + dataArray.put(data); + } + } + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.SNIPPET, mSnippet); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + } + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + return null; + } + + public void setParentId(long id) { + mParentId = id; + mDiffNoteValues.put(NoteColumns.PARENT_ID, id); + } + + public void setGtaskId(String gid) { + mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); + } + + public void setSyncId(long syncId) { + mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); + } + + public void resetLocalModified() { + mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); + } + + public long getId() { + return mId; + } + + public long getParentId() { + return mParentId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean isNoteType() { + return mType == Notes.TYPE_NOTE; + } + + public void commit(boolean validateVersion) { + if (mIsCreate) { + if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { + mDiffNoteValues.remove(NoteColumns.ID); + } + + Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); + try { + mId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + if (mId == 0) { + throw new IllegalStateException("Create thread id failed"); + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, false, -1); + } + } + } else { + if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) { + Log.e(TAG, "No such note"); + throw new IllegalStateException("Try to update note with invalid id"); + } + if (mDiffNoteValues.size() > 0) { + mVersion ++; + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?)", new String[] { + String.valueOf(mId) + }); + } else { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)", + new String[] { + String.valueOf(mId), String.valueOf(mVersion) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, validateVersion, mVersion); + } + } + } + + // refresh local info + loadFromCursor(mId); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + + mDiffNoteValues.clear(); + mIsCreate = false; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/Task.java b/app/src/main/java/net/micode/notes/gtask/data/Task.java new file mode 100644 index 0000000..6a19454 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/Task.java @@ -0,0 +1,351 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + + +public class Task extends Node { + private static final String TAG = Task.class.getSimpleName(); + + private boolean mCompleted; + + private String mNotes; + + private JSONObject mMetaInfo; + + private Task mPriorSibling; + + private TaskList mParent; + + public Task() { + super(); + mCompleted = false; + mNotes = null; + mPriorSibling = null; + mParent = null; + mMetaInfo = null; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_TASK); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + // parent_id + js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); + + // dest_parent_type + js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + + // list_id + js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); + + // prior_sibling_id + if (mPriorSibling != null) { + js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + // notes + if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) { + setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); + } + + // deleted + if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) { + setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); + } + + // completed + if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) { + setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get task content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) + || !js.has(GTaskStringUtils.META_HEAD_DATA)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) { + Log.e(TAG, "invalid type"); + return; + } + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + setName(data.getString(DataColumns.CONTENT)); + break; + } + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + String name = getName(); + try { + if (mMetaInfo == null) { + // new task created from web + if (name == null) { + Log.w(TAG, "the note seems to be an empty one"); + return null; + } + + JSONObject js = new JSONObject(); + JSONObject note = new JSONObject(); + JSONArray dataArray = new JSONArray(); + JSONObject data = new JSONObject(); + data.put(DataColumns.CONTENT, name); + dataArray.put(data); + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + return js; + } else { + // synced task + JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + data.put(DataColumns.CONTENT, getName()); + break; + } + } + + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + return mMetaInfo; + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public void setMetaInfo(MetaData metaData) { + if (metaData != null && metaData.getNotes() != null) { + try { + mMetaInfo = new JSONObject(metaData.getNotes()); + } catch (JSONException e) { + Log.w(TAG, e.toString()); + mMetaInfo = null; + } + } + } + + public int getSyncAction(Cursor c) { + try { + JSONObject noteInfo = null; + if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { + noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + } + + if (noteInfo == null) { + Log.w(TAG, "it seems that note meta has been deleted"); + return SYNC_ACTION_UPDATE_REMOTE; + } + + if (!noteInfo.has(NoteColumns.ID)) { + Log.w(TAG, "remote note id seems to be deleted"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + // validate the note id now + if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { + Log.w(TAG, "note id doesn't match"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + return SYNC_ACTION_UPDATE_CONFLICT; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public boolean isWorthSaving() { + return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) + || (getNotes() != null && getNotes().trim().length() > 0); + } + + public void setCompleted(boolean completed) { + this.mCompleted = completed; + } + + public void setNotes(String notes) { + this.mNotes = notes; + } + + public void setPriorSibling(Task priorSibling) { + this.mPriorSibling = priorSibling; + } + + public void setParent(TaskList parent) { + this.mParent = parent; + } + + public boolean getCompleted() { + return this.mCompleted; + } + + public String getNotes() { + return this.mNotes; + } + + public Task getPriorSibling() { + return this.mPriorSibling; + } + + public TaskList getParent() { + return this.mParent; + } + +} diff --git a/app/src/main/java/net/micode/notes/gtask/data/TaskList.java b/app/src/main/java/net/micode/notes/gtask/data/TaskList.java new file mode 100644 index 0000000..4ea21c5 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/data/TaskList.java @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +public class TaskList extends Node { + private static final String TAG = TaskList.class.getSimpleName(); + + private int mIndex; + + private ArrayList mChildren; + + public TaskList() { + super(); + mChildren = new ArrayList(); + mIndex = 1; + } + + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-create jsonobject"); + } + + return js; + } + + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-update jsonobject"); + } + + return js; + } + + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get tasklist content from jsonobject"); + } + } + } + + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + + if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + String name = folder.getString(NoteColumns.SNIPPET); + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name); + } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT); + else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE); + else + Log.e(TAG, "invalid system folder"); + } else { + Log.e(TAG, "error type"); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + + public JSONObject getLocalJSONFromContent() { + try { + JSONObject js = new JSONObject(); + JSONObject folder = new JSONObject(); + + String folderName = getName(); + if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)) + folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), + folderName.length()); + folder.put(NoteColumns.SNIPPET, folderName); + if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT) + || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE)) + folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + else + folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + + js.put(GTaskStringUtils.META_HEAD_NOTE, folder); + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + + public int getSyncAction(Cursor c) { + try { + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + // for folder conflicts, just apply local modification + return SYNC_ACTION_UPDATE_REMOTE; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + + public int getChildTaskCount() { + return mChildren.size(); + } + + public boolean addChildTask(Task task) { + boolean ret = false; + if (task != null && !mChildren.contains(task)) { + ret = mChildren.add(task); + if (ret) { + // need to set prior sibling and parent + task.setPriorSibling(mChildren.isEmpty() ? null : mChildren + .get(mChildren.size() - 1)); + task.setParent(this); + } + } + return ret; + } + + public boolean addChildTask(Task task, int index) { + if (index < 0 || index > mChildren.size()) { + Log.e(TAG, "add child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (task != null && pos == -1) { + mChildren.add(index, task); + + // update the task list + Task preTask = null; + Task afterTask = null; + if (index != 0) + preTask = mChildren.get(index - 1); + if (index != mChildren.size() - 1) + afterTask = mChildren.get(index + 1); + + task.setPriorSibling(preTask); + if (afterTask != null) + afterTask.setPriorSibling(task); + } + + return true; + } + + public boolean removeChildTask(Task task) { + boolean ret = false; + int index = mChildren.indexOf(task); + if (index != -1) { + ret = mChildren.remove(task); + + if (ret) { + // reset prior sibling and parent + task.setPriorSibling(null); + task.setParent(null); + + // update the task list + if (index != mChildren.size()) { + mChildren.get(index).setPriorSibling( + index == 0 ? null : mChildren.get(index - 1)); + } + } + } + return ret; + } + + public boolean moveChildTask(Task task, int index) { + + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "move child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (pos == -1) { + Log.e(TAG, "move child task: the task should in the list"); + return false; + } + + if (pos == index) + return true; + return (removeChildTask(task) && addChildTask(task, index)); + } + + public Task findChildTaskByGid(String gid) { + for (int i = 0; i < mChildren.size(); i++) { + Task t = mChildren.get(i); + if (t.getGid().equals(gid)) { + return t; + } + } + return null; + } + + public int getChildTaskIndex(Task task) { + return mChildren.indexOf(task); + } + + public Task getChildTaskByIndex(int index) { + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "getTaskByIndex: invalid index"); + return null; + } + return mChildren.get(index); + } + + public Task getChilTaskByGid(String gid) { + for (Task task : mChildren) { + if (task.getGid().equals(gid)) + return task; + } + return null; + } + + public ArrayList getChildTaskList() { + return this.mChildren; + } + + public void setIndex(int index) { + this.mIndex = index; + } + + public int getIndex() { + return this.mIndex; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java new file mode 100644 index 0000000..15504be --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class ActionFailureException extends RuntimeException { + private static final long serialVersionUID = 4425249765923293627L; + + public ActionFailureException() { + super(); + } + + public ActionFailureException(String paramString) { + super(paramString); + } + + public ActionFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java new file mode 100644 index 0000000..b08cfb1 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +public class NetworkFailureException extends Exception { + private static final long serialVersionUID = 2107610287180234136L; + + public NetworkFailureException() { + super(); + } + + public NetworkFailureException(String paramString) { + super(paramString); + } + + public NetworkFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java new file mode 100644 index 0000000..0a52293 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -0,0 +1,131 @@ + +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.os.AsyncTask; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesListActivity; +import net.micode.notes.ui.NotesPreferenceActivity; + + +public class GTaskASyncTask extends AsyncTask { + + private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; + + public interface OnCompleteListener { + void onComplete(); + } + + private Context mContext; + + private NotificationManager mNotifiManager; + + private GTaskManager mTaskManager; + + private OnCompleteListener mOnCompleteListener; + + public GTaskASyncTask(Context context, OnCompleteListener listener) { + mContext = context; + mOnCompleteListener = listener; + mNotifiManager = (NotificationManager) mContext + .getSystemService(Context.NOTIFICATION_SERVICE); + mTaskManager = GTaskManager.getInstance(); + } + + public void cancelSync() { + mTaskManager.cancelSync(); + } + + public void publishProgess(String message) { + publishProgress(new String[] { + message + }); + } + + + /*Cannot resolve method ‘setLatestEventInfo’ in ‘Notification, setLatestEventInfo()已被弃用,修改Notification80~88*/ + private void showNotification(int tickerId, String content) { + PendingIntent pendingIntent; + if (tickerId != R.string.ticker_success) { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesPreferenceActivity.class), 0); + + } else { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesListActivity.class), 0); + } + + + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); + mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); + } + + + + @Override + protected Integer doInBackground(Void... unused) { + publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity + .getSyncAccountName(mContext))); + return mTaskManager.sync(mContext, this); + } + + @Override + protected void onProgressUpdate(String... progress) { + showNotification(R.string.ticker_syncing, progress[0]); + if (mContext instanceof GTaskSyncService) { + ((GTaskSyncService) mContext).sendBroadcast(progress[0]); + } + } + + @Override + protected void onPostExecute(Integer result) { + if (result == GTaskManager.STATE_SUCCESS) { + showNotification(R.string.ticker_success, mContext.getString( + R.string.success_sync_account, mTaskManager.getSyncAccount())); + NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); + } else if (result == GTaskManager.STATE_NETWORK_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); + } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); + } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { + showNotification(R.string.ticker_cancel, mContext + .getString(R.string.error_sync_cancelled)); + } + if (mOnCompleteListener != null) { + new Thread(new Runnable() { + + public void run() { + mOnCompleteListener.onComplete(); + } + }).start(); + } + } +} 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 new file mode 100644 index 0000000..c67dfdf --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -0,0 +1,585 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.accounts.AccountManagerFuture; +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; +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 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; + + +public class GTaskClient { + private static final String TAG = GTaskClient.class.getSimpleName(); + + private static final String GTASK_URL = "https://mail.google.com/tasks/"; + + private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; + + private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; + + private static GTaskClient mInstance = null; + + private DefaultHttpClient mHttpClient; + + private String mGetUrl; + + private String mPostUrl; + + private long mClientVersion; + + private boolean mLoggedin; + + private long mLastLoginTime; + + private int mActionId; + + private Account mAccount; + + private JSONArray mUpdateArray; + + private GTaskClient() { + mHttpClient = null; + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + mClientVersion = -1; + mLoggedin = false; + mLastLoginTime = 0; + mActionId = 1; + mAccount = null; + mUpdateArray = null; + } + + public static synchronized GTaskClient getInstance() { + if (mInstance == null) { + mInstance = new GTaskClient(); + } + return mInstance; + } + + public boolean login(Activity activity) { + // we suppose that the cookie would expire after 5 minutes + // then we need to re-login + final long interval = 1000 * 60 * 5; + if (mLastLoginTime + interval < System.currentTimeMillis()) { + mLoggedin = false; + } + + // need to re-login after account switch + if (mLoggedin + && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity + .getSyncAccountName(activity))) { + mLoggedin = false; + } + + if (mLoggedin) { + Log.d(TAG, "already logged in"); + return true; + } + + mLastLoginTime = System.currentTimeMillis(); + String authToken = loginGoogleAccount(activity, false); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + // login with custom domain if necessary + if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() + .endsWith("googlemail.com"))) { + StringBuilder url = new StringBuilder(GTASK_URL).append("a/"); + int index = mAccount.name.indexOf('@') + 1; + String suffix = mAccount.name.substring(index); + url.append(suffix + "/"); + mGetUrl = url.toString() + "ig"; + mPostUrl = url.toString() + "r/ig"; + + if (tryToLoginGtask(activity, authToken)) { + mLoggedin = true; + } + } + + // try to login with google official url + if (!mLoggedin) { + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + if (!tryToLoginGtask(activity, authToken)) { + return false; + } + } + + mLoggedin = true; + return true; + } + + private String loginGoogleAccount(Activity activity, boolean invalidateToken) { + String authToken; + AccountManager accountManager = AccountManager.get(activity); + Account[] accounts = accountManager.getAccountsByType("com.google"); + + if (accounts.length == 0) { + Log.e(TAG, "there is no available google account"); + return null; + } + + String accountName = NotesPreferenceActivity.getSyncAccountName(activity); + Account account = null; + for (Account a : accounts) { + if (a.name.equals(accountName)) { + account = a; + break; + } + } + if (account != null) { + mAccount = account; + } else { + Log.e(TAG, "unable to get an account with the same name in the settings"); + return null; + } + + // get the token now + AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, + "goanna_mobile", null, activity, null, null); + try { + Bundle authTokenBundle = accountManagerFuture.getResult(); + authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); + if (invalidateToken) { + accountManager.invalidateAuthToken("com.google", authToken); + loginGoogleAccount(activity, false); + } + } catch (Exception e) { + Log.e(TAG, "get auth token failed"); + authToken = null; + } + + return authToken; + } + + private boolean tryToLoginGtask(Activity activity, String authToken) { + if (!loginGtask(authToken)) { + // maybe the auth token is out of date, now let's invalidate the + // token and try again + authToken = loginGoogleAccount(activity, true); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + if (!loginGtask(authToken)) { + Log.e(TAG, "login gtask failed"); + return false; + } + } + 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 { + 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) { + Log.w(TAG, "it seems that there is no auth cookie"); + } + + // get the client version + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + mClientVersion = js.getLong("v"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } catch (Exception e) { + // simply catch all exceptions + 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); + } + + 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); + } + + 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); + } + } finally { + input.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()); + 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(); + throw new NetworkFailureException("postRequest failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("unable to convert response content to jsonobject"); + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("error occurs when posting request"); + } + } + + public void createTask(Task task) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(task.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create task: handing jsonobject failed"); + } + } + + public void createTaskList(TaskList tasklist) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(tasklist.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create tasklist: handing jsonobject failed"); + } + } + + public void commitUpdate() throws NetworkFailureException { + if (mUpdateArray != null) { + try { + JSONObject jsPost = new JSONObject(); + + // action_list + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("commit update: handing jsonobject failed"); + } + } + } + + public void addUpdateNode(Node node) throws NetworkFailureException { + if (node != null) { + // too many update items may result in an error + // set max to 10 items + if (mUpdateArray != null && mUpdateArray.length() > 10) { + commitUpdate(); + } + + if (mUpdateArray == null) + mUpdateArray = new JSONArray(); + mUpdateArray.put(node.getUpdateAction(getActionId())); + } + } + + public void moveTask(Task task, TaskList preParent, TaskList curParent) + throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid()); + if (preParent == curParent && task.getPriorSibling() != null) { + // put prioring_sibing_id only if moving within the tasklist and + // it is not the first one + action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling()); + } + action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid()); + action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid()); + if (preParent != curParent) { + // put the dest_list only if moving between tasklists + action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid()); + } + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("move task: handing jsonobject failed"); + } + } + + public void deleteNode(Node node) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + node.setDeleted(true); + actionList.put(node.getUpdateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("delete node: handing jsonobject failed"); + } + } + + public JSONArray getTaskLists() throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + try { + HttpGet httpGet = new HttpGet(mGetUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the task list + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + 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(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task lists: handing jasonobject failed"); + } + } + + public JSONArray getTaskList(String listGid) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); + action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + JSONObject jsResponse = postRequest(jsPost); + return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task list: handing jsonobject failed"); + } + } + + public Account getSyncAccount() { + return mAccount; + } + + public void resetUpdateArray() { + mUpdateArray = null; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java new file mode 100644 index 0000000..d2b4082 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java @@ -0,0 +1,800 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.data.MetaData; +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.SqlNote; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + + +public class GTaskManager { + private static final String TAG = GTaskManager.class.getSimpleName(); + + public static final int STATE_SUCCESS = 0; + + public static final int STATE_NETWORK_ERROR = 1; + + public static final int STATE_INTERNAL_ERROR = 2; + + public static final int STATE_SYNC_IN_PROGRESS = 3; + + public static final int STATE_SYNC_CANCELLED = 4; + + private static GTaskManager mInstance = null; + + private Activity mActivity; + + private Context mContext; + + private ContentResolver mContentResolver; + + private boolean mSyncing; + + private boolean mCancelled; + + private HashMap mGTaskListHashMap; + + private HashMap mGTaskHashMap; + + private HashMap mMetaHashMap; + + private TaskList mMetaList; + + private HashSet mLocalDeleteIdMap; + + private HashMap mGidToNid; + + private HashMap mNidToGid; + + private GTaskManager() { + mSyncing = false; + mCancelled = false; + mGTaskListHashMap = new HashMap(); + mGTaskHashMap = new HashMap(); + mMetaHashMap = new HashMap(); + mMetaList = null; + mLocalDeleteIdMap = new HashSet(); + mGidToNid = new HashMap(); + mNidToGid = new HashMap(); + } + + public static synchronized GTaskManager getInstance() { + if (mInstance == null) { + mInstance = new GTaskManager(); + } + return mInstance; + } + + public synchronized void setActivityContext(Activity activity) { + // used for getting authtoken + mActivity = activity; + } + + public int sync(Context context, GTaskASyncTask asyncTask) { + if (mSyncing) { + Log.d(TAG, "Sync is in progress"); + return STATE_SYNC_IN_PROGRESS; + } + mContext = context; + mContentResolver = mContext.getContentResolver(); + mSyncing = true; + mCancelled = false; + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + + try { + GTaskClient client = GTaskClient.getInstance(); + client.resetUpdateArray(); + + // login google task + if (!mCancelled) { + if (!client.login(mActivity)) { + throw new NetworkFailureException("login google task failed"); + } + } + + // get the task list from google + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); + initGTaskList(); + + // do content sync work + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); + syncContent(); + } catch (NetworkFailureException e) { + Log.e(TAG, e.toString()); + return STATE_NETWORK_ERROR; + } catch (ActionFailureException e) { + Log.e(TAG, e.toString()); + return STATE_INTERNAL_ERROR; + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return STATE_INTERNAL_ERROR; + } finally { + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + mSyncing = false; + } + + return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; + } + + private void initGTaskList() throws NetworkFailureException { + if (mCancelled) + return; + GTaskClient client = GTaskClient.getInstance(); + try { + JSONArray jsTaskLists = client.getTaskLists(); + + // init meta list first + mMetaList = null; + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name + .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) { + mMetaList = new TaskList(); + mMetaList.setContentByRemoteJSON(object); + + // load meta data + JSONArray jsMetas = client.getTaskList(gid); + for (int j = 0; j < jsMetas.length(); j++) { + object = (JSONObject) jsMetas.getJSONObject(j); + MetaData metaData = new MetaData(); + metaData.setContentByRemoteJSON(object); + if (metaData.isWorthSaving()) { + mMetaList.addChildTask(metaData); + if (metaData.getGid() != null) { + mMetaHashMap.put(metaData.getRelatedGid(), metaData); + } + } + } + } + } + + // create meta list if not existed + if (mMetaList == null) { + mMetaList = new TaskList(); + mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META); + GTaskClient.getInstance().createTaskList(mMetaList); + } + + // init task list + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) + && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META)) { + TaskList tasklist = new TaskList(); + tasklist.setContentByRemoteJSON(object); + mGTaskListHashMap.put(gid, tasklist); + mGTaskHashMap.put(gid, tasklist); + + // load tasks + JSONArray jsTasks = client.getTaskList(gid); + for (int j = 0; j < jsTasks.length(); j++) { + object = (JSONObject) jsTasks.getJSONObject(j); + gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + Task task = new Task(); + task.setContentByRemoteJSON(object); + if (task.isWorthSaving()) { + task.setMetaInfo(mMetaHashMap.get(gid)); + tasklist.addChildTask(task); + mGTaskHashMap.put(gid, task); + } + } + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("initGTaskList: handing JSONObject failed"); + } + } + + private void syncContent() throws NetworkFailureException { + int syncType; + Cursor c = null; + String gid; + Node node; + + mLocalDeleteIdMap.clear(); + + if (mCancelled) { + return; + } + + // for local deleted note + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id=?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, null); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); + } + + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + } + } else { + Log.w(TAG, "failed to query trash folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // sync folder first + syncFolder(); + + // for note existing in database + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing note in database"); + } + + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // go through remaining items + Iterator> iter = mGTaskHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + node = entry.getValue(); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + + // mCancelled can be set by another thread, so we neet to check one by + // one + // clear local delete table + if (!mCancelled) { + if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { + throw new ActionFailureException("failed to batch-delete local deleted notes"); + } + } + + // refresh local sync id + if (!mCancelled) { + GTaskClient.getInstance().commitUpdate(); + refreshLocalSyncId(); + } + + } + + private void syncFolder() throws NetworkFailureException { + Cursor c = null; + String gid; + Node node; + int syncType; + + if (mCancelled) { + return; + } + + // for root folder + try { + c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); + if (c != null) { + c.moveToNext(); + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); + mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); + // for system folder, only update remote name if necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } else { + Log.w(TAG, "failed to query root folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for call-note folder + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(Notes.ID_CALL_RECORD_FOLDER) + }, null); + if (c != null) { + if (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); + mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); + // for system folder, only update remote name if + // necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } + } else { + Log.w(TAG, "failed to query call note folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for local existing folders + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for remote add folders + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + gid = entry.getKey(); + node = entry.getValue(); + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + } + + if (!mCancelled) + GTaskClient.getInstance().commitUpdate(); + } + + private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + MetaData meta; + switch (syncType) { + case Node.SYNC_ACTION_ADD_LOCAL: + addLocalNode(node); + break; + case Node.SYNC_ACTION_ADD_REMOTE: + addRemoteNode(node, c); + break; + case Node.SYNC_ACTION_DEL_LOCAL: + meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + break; + case Node.SYNC_ACTION_DEL_REMOTE: + meta = mMetaHashMap.get(node.getGid()); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + GTaskClient.getInstance().deleteNode(node); + break; + case Node.SYNC_ACTION_UPDATE_LOCAL: + updateLocalNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_REMOTE: + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_CONFLICT: + // merging both modifications maybe a good idea + // right now just use local update simply + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_NONE: + break; + case Node.SYNC_ACTION_ERROR: + default: + throw new ActionFailureException("unkown sync action type"); + } + } + + private void addLocalNode(Node node) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + if (node instanceof TaskList) { + if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { + sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); + } else if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { + sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); + } else { + sqlNote = new SqlNote(mContext); + sqlNote.setContent(node.getLocalJSONFromContent()); + sqlNote.setParentId(Notes.ID_ROOT_FOLDER); + } + } else { + sqlNote = new SqlNote(mContext); + JSONObject js = node.getLocalJSONFromContent(); + try { + if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.has(NoteColumns.ID)) { + long id = note.getLong(NoteColumns.ID); + if (DataUtils.existInNoteDatabase(mContentResolver, id)) { + // the id is not available, have to create a new one + note.remove(NoteColumns.ID); + } + } + } + + if (js.has(GTaskStringUtils.META_HEAD_DATA)) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { + // the data id is not available, have to create + // a new one + data.remove(DataColumns.ID); + } + } + } + + } + } catch (JSONException e) { + Log.w(TAG, e.toString()); + e.printStackTrace(); + } + sqlNote.setContent(js); + + Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot add local node"); + } + sqlNote.setParentId(parentId.longValue()); + } + + // create the local node + sqlNote.setGtaskId(node.getGid()); + sqlNote.commit(false); + + // update gid-nid mapping + mGidToNid.put(node.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), node.getGid()); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + // update the note locally + sqlNote = new SqlNote(mContext, c); + sqlNote.setContent(node.getLocalJSONFromContent()); + + Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) + : new Long(Notes.ID_ROOT_FOLDER); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot update local node"); + } + sqlNote.setParentId(parentId.longValue()); + sqlNote.commit(true); + + // update meta info + updateRemoteMeta(node.getGid(), sqlNote); + } + + private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + Node n; + + // update remotely + if (sqlNote.isNoteType()) { + Task task = new Task(); + task.setContentByLocalJSON(sqlNote.getContent()); + + String parentGid = mNidToGid.get(sqlNote.getParentId()); + if (parentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot add remote task"); + } + mGTaskListHashMap.get(parentGid).addChildTask(task); + + GTaskClient.getInstance().createTask(task); + n = (Node) task; + + // add meta + updateRemoteMeta(task.getGid(), sqlNote); + } else { + TaskList tasklist = null; + + // we need to skip folder if it has already existed + String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; + if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) + folderName += GTaskStringUtils.FOLDER_DEFAULT; + else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) + folderName += GTaskStringUtils.FOLDER_CALL_NOTE; + else + folderName += sqlNote.getSnippet(); + + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + String gid = entry.getKey(); + TaskList list = entry.getValue(); + + if (list.getName().equals(folderName)) { + tasklist = list; + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + } + break; + } + } + + // no match we can add now + if (tasklist == null) { + tasklist = new TaskList(); + tasklist.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().createTaskList(tasklist); + mGTaskListHashMap.put(tasklist.getGid(), tasklist); + } + n = (Node) tasklist; + } + + // update local note + sqlNote.setGtaskId(n.getGid()); + sqlNote.commit(false); + sqlNote.resetLocalModified(); + sqlNote.commit(true); + + // gid-id mapping + mGidToNid.put(n.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), n.getGid()); + } + + private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + + // update remotely + node.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(node); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + + // move task if necessary + if (sqlNote.isNoteType()) { + Task task = (Task) node; + TaskList preParentList = task.getParent(); + + String curParentGid = mNidToGid.get(sqlNote.getParentId()); + if (curParentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot update remote task"); + } + TaskList curParentList = mGTaskListHashMap.get(curParentGid); + + if (preParentList != curParentList) { + preParentList.removeChildTask(task); + curParentList.addChildTask(task); + GTaskClient.getInstance().moveTask(task, preParentList, curParentList); + } + } + + // clear local modified flag + sqlNote.resetLocalModified(); + sqlNote.commit(true); + } + + private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { + if (sqlNote != null && sqlNote.isNoteType()) { + MetaData metaData = mMetaHashMap.get(gid); + if (metaData != null) { + metaData.setMeta(gid, sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(metaData); + } else { + metaData = new MetaData(); + metaData.setMeta(gid, sqlNote.getContent()); + mMetaList.addChildTask(metaData); + mMetaHashMap.put(gid, metaData); + GTaskClient.getInstance().createTask(metaData); + } + } + } + + private void refreshLocalSyncId() throws NetworkFailureException { + if (mCancelled) { + return; + } + + // get the latest gtask list + mGTaskHashMap.clear(); + mGTaskListHashMap.clear(); + mMetaHashMap.clear(); + initGTaskList(); + + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + String gid = c.getString(SqlNote.GTASK_ID_COLUMN); + Node node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + ContentValues values = new ContentValues(); + values.put(NoteColumns.SYNC_ID, node.getLastModified()); + mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + c.getLong(SqlNote.ID_COLUMN)), values, null, null); + } else { + Log.e(TAG, "something is missed"); + throw new ActionFailureException( + "some local items don't have gid after sync"); + } + } + } else { + Log.w(TAG, "failed to query local note to refresh sync id"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + } + + public String getSyncAccount() { + return GTaskClient.getInstance().getSyncAccount().name; + } + + public void cancelSync() { + mCancelled = true; + } +} diff --git a/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java new file mode 100644 index 0000000..cca36f7 --- /dev/null +++ b/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; + +public class GTaskSyncService extends Service { + public final static String ACTION_STRING_NAME = "sync_action_type"; + + public final static int ACTION_START_SYNC = 0; + + public final static int ACTION_CANCEL_SYNC = 1; + + public final static int ACTION_INVALID = 2; + + public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; + + public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; + + public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; + + private static GTaskASyncTask mSyncTask = null; + + private static String mSyncProgress = ""; + + private void startSync() { + if (mSyncTask == null) { + mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { + public void onComplete() { + mSyncTask = null; + sendBroadcast(""); + stopSelf(); + } + }); + sendBroadcast(""); + mSyncTask.execute(); + } + } + + private void cancelSync() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + @Override + public void onCreate() { + mSyncTask = null; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Bundle bundle = intent.getExtras(); + if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { + switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { + case ACTION_START_SYNC: + startSync(); + break; + case ACTION_CANCEL_SYNC: + cancelSync(); + break; + default: + break; + } + return START_STICKY; + } + return super.onStartCommand(intent, flags, startId); + } + + @Override + public void onLowMemory() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + public IBinder onBind(Intent intent) { + return null; + } + + public void sendBroadcast(String msg) { + mSyncProgress = msg; + Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); + intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); + sendBroadcast(intent); + } + + public static void startSync(Activity activity) { + GTaskManager.getInstance().setActivityContext(activity); + Intent intent = new Intent(activity, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); + activity.startService(intent); + } + + public static void cancelSync(Context context) { + Intent intent = new Intent(context, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); + context.startService(intent); + } + + public static boolean isSyncing() { + return mSyncTask != null; + } + + public static String getProgressString() { + return mSyncProgress; + } +} diff --git a/app/src/main/java/net/micode/notes/model/Note.java b/app/src/main/java/net/micode/notes/model/Note.java new file mode 100644 index 0000000..6706cf6 --- /dev/null +++ b/app/src/main/java/net/micode/notes/model/Note.java @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.OperationApplicationException; +import android.net.Uri; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; + +import java.util.ArrayList; + + +public class Note { + private ContentValues mNoteDiffValues; + private NoteData mNoteData; + private static final String TAG = "Note"; + /** + * Create a new note id for adding a new note to databases + */ + public static synchronized long getNewNoteId(Context context, long folderId) { + // Create a new note in the database + ContentValues values = new ContentValues(); + long createdTime = System.currentTimeMillis(); + values.put(NoteColumns.CREATED_DATE, createdTime); + values.put(NoteColumns.MODIFIED_DATE, createdTime); + values.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + values.put(NoteColumns.PARENT_ID, folderId); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + + long noteId = 0; + try { + noteId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + noteId = 0; + } + if (noteId == -1) { + throw new IllegalStateException("Wrong note id:" + noteId); + } + return noteId; + } + + public Note() { + mNoteDiffValues = new ContentValues(); + mNoteData = new NoteData(); + } + + public void setNoteValue(String key, String value) { + mNoteDiffValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + public void setTextData(String key, String value) { + mNoteData.setTextData(key, value); + } + + public void setTextDataId(long id) { + mNoteData.setTextDataId(id); + } + + public long getTextDataId() { + return mNoteData.mTextDataId; + } + + public void setCallDataId(long id) { + mNoteData.setCallDataId(id); + } + + public void setCallData(String key, String value) { + mNoteData.setCallData(key, value); + } + + public boolean isLocalModified() { + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); + } + + public boolean syncNote(Context context, long noteId) { + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + if (!isLocalModified()) { + return true; + } + + /** + * In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and + * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the + * note data info + */ + if (context.getContentResolver().update( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, + null) == 0) { + Log.e(TAG, "Update note error, should not happen"); + // Do not return, fall through + } + mNoteDiffValues.clear(); + + if (mNoteData.isLocalModified() + && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { + return false; + } + + return true; + } + + private class NoteData { + private long mTextDataId; + + private ContentValues mTextDataValues; + + private long mCallDataId; + + private ContentValues mCallDataValues; + + private static final String TAG = "NoteData"; + + public NoteData() { + mTextDataValues = new ContentValues(); + mCallDataValues = new ContentValues(); + mTextDataId = 0; + mCallDataId = 0; + } + + boolean isLocalModified() { + return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; + } + + void setTextDataId(long id) { + if(id <= 0) { + throw new IllegalArgumentException("Text data id should larger than 0"); + } + mTextDataId = id; + } + + void setCallDataId(long id) { + if (id <= 0) { + throw new IllegalArgumentException("Call data id should larger than 0"); + } + mCallDataId = id; + } + + void setCallData(String key, String value) { + mCallDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + void setTextData(String key, String value) { + mTextDataValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + Uri pushIntoContentResolver(Context context, long noteId) { + /** + * Check for safety + */ + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + ArrayList operationList = new ArrayList(); + ContentProviderOperation.Builder builder = null; + + if(mTextDataValues.size() > 0) { + mTextDataValues.put(DataColumns.NOTE_ID, noteId); + if (mTextDataId == 0) { + mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mTextDataValues); + try { + setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new text data fail with noteId" + noteId); + mTextDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mTextDataId)); + builder.withValues(mTextDataValues); + operationList.add(builder.build()); + } + mTextDataValues.clear(); + } + + if(mCallDataValues.size() > 0) { + mCallDataValues.put(DataColumns.NOTE_ID, noteId); + if (mCallDataId == 0) { + mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mCallDataValues); + try { + setCallDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new call data fail with noteId" + noteId); + mCallDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mCallDataId)); + builder.withValues(mCallDataValues); + operationList.add(builder.build()); + } + mCallDataValues.clear(); + } + + if (operationList.size() > 0) { + try { + ContentProviderResult[] results = context.getContentResolver().applyBatch( + Notes.AUTHORITY, operationList); + return (results == null || results.length == 0 || results[0] == null) ? null + : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId); + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } + } + return null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/model/WorkingNote.java b/app/src/main/java/net/micode/notes/model/WorkingNote.java new file mode 100644 index 0000000..a1a2455 --- /dev/null +++ b/app/src/main/java/net/micode/notes/model/WorkingNote.java @@ -0,0 +1,368 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; + +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.tool.ResourceParser.NoteBgResources; + + +public class WorkingNote { + // Note for the working note + private Note mNote; + // Note Id + private long mNoteId; + // Note content + public String mContent; + // Note mode + private int mMode; + + private long mAlertDate; + + private long mModifiedDate; + + private int mBgColorId; + + private int mWidgetId; + + private int mWidgetType; + + private long mFolderId; + + private Context mContext; + + private static final String TAG = "WorkingNote"; + + private boolean mIsDeleted; + + private NoteSettingChangedListener mNoteSettingStatusListener; + + public static final String[] DATA_PROJECTION = new String[] { + DataColumns.ID, + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + public static final String[] NOTE_PROJECTION = new String[] { + NoteColumns.PARENT_ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + NoteColumns.MODIFIED_DATE + }; + + private static final int DATA_ID_COLUMN = 0; + + private static final int DATA_CONTENT_COLUMN = 1; + + private static final int DATA_MIME_TYPE_COLUMN = 2; + + private static final int DATA_MODE_COLUMN = 3; + + private static final int NOTE_PARENT_ID_COLUMN = 0; + + private static final int NOTE_ALERTED_DATE_COLUMN = 1; + + private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + + private static final int NOTE_WIDGET_ID_COLUMN = 3; + + private static final int NOTE_WIDGET_TYPE_COLUMN = 4; + + private static final int NOTE_MODIFIED_DATE_COLUMN = 5; + + // New note construct + private WorkingNote(Context context, long folderId) { + mContext = context; + mAlertDate = 0; + mModifiedDate = System.currentTimeMillis(); + mFolderId = folderId; + mNote = new Note(); + mNoteId = 0; + mIsDeleted = false; + mMode = 0; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + } + + // Existing note construct + private WorkingNote(Context context, long noteId, long folderId) { + mContext = context; + mNoteId = noteId; + mFolderId = folderId; + mIsDeleted = false; + mNote = new Note(); + loadNote(); + } + + private void loadNote() { + Cursor cursor = mContext.getContentResolver().query( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, + null, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN); + mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN); + mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); + mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); + mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); + } + cursor.close(); + } else { + Log.e(TAG, "No note with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note with id " + mNoteId); + } + loadNoteData(); + } + + private void loadNoteData() { + Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, + DataColumns.NOTE_ID + "=?", new String[] { + String.valueOf(mNoteId) + }, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + do { + String type = cursor.getString(DATA_MIME_TYPE_COLUMN); + if (DataConstants.NOTE.equals(type)) { + mContent = cursor.getString(DATA_CONTENT_COLUMN); + mMode = cursor.getInt(DATA_MODE_COLUMN); + mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); + } else if (DataConstants.CALL_NOTE.equals(type)) { + mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); + } else { + Log.d(TAG, "Wrong note type with type:" + type); + } + } while (cursor.moveToNext()); + } + cursor.close(); + } else { + Log.e(TAG, "No data with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId); + } + } + + public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId, + int widgetType, int defaultBgColorId) { + WorkingNote note = new WorkingNote(context, folderId); + note.setBgColorId(defaultBgColorId); + note.setWidgetId(widgetId); + note.setWidgetType(widgetType); + return note; + } + + public static WorkingNote load(Context context, long id) { + return new WorkingNote(context, id, 0); + } + + public synchronized boolean saveNote() { + if (isWorthSaving()) { + if (!existInDatabase()) { + if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { + Log.e(TAG, "Create new note fail with id:" + mNoteId); + return false; + } + } + + mNote.syncNote(mContext, mNoteId); + + /** + * Update widget content if there exist any widget of this note + */ + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE + && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + return true; + } else { + return false; + } + } + + public boolean existInDatabase() { + return mNoteId > 0; + } + + private boolean isWorthSaving() { + if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + || (existInDatabase() && !mNote.isLocalModified())) { + return false; + } else { + return true; + } + } + + public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) { + mNoteSettingStatusListener = l; + } + + public void setAlertDate(long date, boolean set) { + if (date != mAlertDate) { + mAlertDate = date; + mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate)); + } + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onClockAlertChanged(date, set); + } + } + + public void markDeleted(boolean mark) { + mIsDeleted = mark; + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + } + + public void setBgColorId(int id) { + if (id != mBgColorId) { + mBgColorId = id; + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onBackgroundColorChanged(); + } + mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); + } + } + + public void setCheckListMode(int mode) { + if (mMode != mode) { + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); + } + mMode = mode; + mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); + } + } + + public void setWidgetType(int type) { + if (type != mWidgetType) { + mWidgetType = type; + mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); + } + } + + public void setWidgetId(int id) { + if (id != mWidgetId) { + mWidgetId = id; + mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); + } + } + + public void setWorkingText(String text) { + if (!TextUtils.equals(mContent, text)) { + mContent = text; + mNote.setTextData(DataColumns.CONTENT, mContent); + } + } + + public void convertToCallNote(String phoneNumber, long callDate) { + mNote.setCallData(CallNote.CALL_DATE, String.valueOf(callDate)); + mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber); + mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER)); + } + + public boolean hasClockAlert() { + return (mAlertDate > 0 ? true : false); + } + + public String getContent() { + return mContent; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorResId() { + return NoteBgResources.getNoteBgResource(mBgColorId); + } + + public int getBgColorId() { + return mBgColorId; + } + + public int getTitleBgResId() { + return NoteBgResources.getNoteTitleBgResource(mBgColorId); + } + + public int getCheckListMode() { + return mMode; + } + + public long getNoteId() { + return mNoteId; + } + + public long getFolderId() { + return mFolderId; + } + + public int getWidgetId() { + return mWidgetId; + } + + public int getWidgetType() { + return mWidgetType; + } + + public interface NoteSettingChangedListener { + /** + * Called when the background color of current note has just changed + */ + void onBackgroundColorChanged(); + + /** + * Called when user set clock + */ + void onClockAlertChanged(long date, boolean set); + + /** + * Call when user create note from widget + */ + void onWidgetChanged(); + + /** + * Call when switch between check list mode and normal mode + * @param oldMode is previous mode before change + * @param newMode is new mode + */ + void onCheckListModeChanged(int oldMode, int newMode); + } +} diff --git a/app/src/main/java/net/micode/notes/tool/BackupUtils.java b/app/src/main/java/net/micode/notes/tool/BackupUtils.java new file mode 100644 index 0000000..ddaf63d --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -0,0 +1,347 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.database.Cursor; +import android.os.Environment; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + + +public class BackupUtils { + private static final String TAG = "BackupUtils"; + // Singleton stuff + private static BackupUtils sInstance; //类里面为什么可以定义自身类的对象? + + public static synchronized BackupUtils getInstance(Context context) { + //ynchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A) + //运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。 + //它包括两种用法:synchronized 方法和 synchronized 块。 + if (sInstance == null) { + //如果当前备份不存在,则新声明一个 + sInstance = new BackupUtils(context); + } + return sInstance; + } + + + /** + * Following states are signs to represents backup or restore + * status + */ + // Currently, the sdcard is not mounted + public static final int STATE_SD_CARD_UNMOUONTED = 0; + // The backup file not exist 备份文件夹不存在 + public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; + // The data is not well formated, may be changed by other programs 数据已被破坏,可能被修改 + public static final int STATE_DATA_DESTROIED = 2; + // Some run-time exception which causes restore or backup fails 超时异常 + public static final int STATE_SYSTEM_ERROR = 3; + // Backup or restore success 成功存储 + public static final int STATE_SUCCESS = 4; + + + private TextExport mTextExport; + + private BackupUtils(Context context) { //初始化函数 + mTextExport = new TextExport(context); + } + + private static boolean externalStorageAvailable() { //外部存储功能是否可用 + return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); + } + + public int exportToText() { + return mTextExport.exportToText(); + } + + public String getExportedTextFileName() { + return mTextExport.mFileName; + } + + public String getExportedTextFileDir() { + return mTextExport.mFileDirectory; + } + + private static class TextExport { + private static final String[] NOTE_PROJECTION = { + NoteColumns.ID, + NoteColumns.MODIFIED_DATE, + NoteColumns.SNIPPET, + NoteColumns.TYPE + }; + + private static final int NOTE_COLUMN_ID = 0; + + private static final int NOTE_COLUMN_MODIFIED_DATE = 1; + + private static final int NOTE_COLUMN_SNIPPET = 2; + + private static final String[] DATA_PROJECTION = { + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + private static final int DATA_COLUMN_CONTENT = 0; + + private static final int DATA_COLUMN_MIME_TYPE = 1; + + private static final int DATA_COLUMN_CALL_DATE = 2; + + private static final int DATA_COLUMN_PHONE_NUMBER = 4; + + private final String [] TEXT_FORMAT; + private static final int FORMAT_FOLDER_NAME = 0; + private static final int FORMAT_NOTE_DATE = 1; + private static final int FORMAT_NOTE_CONTENT = 2; + + private Context mContext; + private String mFileName; + private String mFileDirectory; + + public TextExport(Context context) { + TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); + mContext = context; + mFileName = ""; + mFileDirectory = ""; + } + + private String getFormat(int id) { //获取文本的组成部分 + return TEXT_FORMAT[id]; + } + + /** + * Export the folder identified by folder id to text + */ + private void exportFolderToText(String folderId, PrintStream ps) { + // Query notes belong to this folder 通过查询parent id是文件夹id的note来选出制定ID文件夹下的Note + Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] { + folderId + }, null); + + if (notesCursor != null) { + if (notesCursor.moveToFirst()) { + do { + // Print note's last modified date ps里面保存有这份note的日期 + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + notesCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = notesCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); //将文件导出到text + } while (notesCursor.moveToNext()); + } + notesCursor.close(); + } + } + /** + * Export note identified by id to a print stream + */ + private void exportNoteToText(String noteId, PrintStream ps) { + Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, + DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { + noteId + }, null); + + if (dataCursor != null) { //利用光标来扫描内容,区别为callnote和note两种,靠ps.printline输出 + if (dataCursor.moveToFirst()) { + do { + String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE); + if (DataConstants.CALL_NOTE.equals(mimeType)) { + // Print phone number + String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER); + long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE); + String location = dataCursor.getString(DATA_COLUMN_CONTENT); + + if (!TextUtils.isEmpty(phoneNumber)) { //判断是否为空字符 + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + phoneNumber)); + } + // Print call date + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), DateFormat + .format(mContext.getString(R.string.format_datetime_mdhm), + callDate))); + // Print call attachment location + if (!TextUtils.isEmpty(location)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + location)); + } + } else if (DataConstants.NOTE.equals(mimeType)) { + String content = dataCursor.getString(DATA_COLUMN_CONTENT); + if (!TextUtils.isEmpty(content)) { + ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), + content)); + } + } + } while (dataCursor.moveToNext()); + } + dataCursor.close(); + } + // print a line separator between note + try { + ps.write(new byte[] { + Character.LINE_SEPARATOR, Character.LETTER_NUMBER + }); + } catch (IOException e) { + Log.e(TAG, e.toString()); + } + } + /** + * Note will be exported as text which is user readable + */ + public int exportToText() { //总函数,调用上面的exportFolder和exportNote + if (!externalStorageAvailable()) { + Log.d(TAG, "Media was not mounted"); + return STATE_SD_CARD_UNMOUONTED; + } + + PrintStream ps = getExportToTextPrintStream(); + if (ps == null) { + Log.e(TAG, "get print stream error"); + return STATE_SYSTEM_ERROR; + } + // First export folder and its notes 导出文件夹,就是导出里面包含的便签 + Cursor folderCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " + + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR " + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null); + + if (folderCursor != null) { + if (folderCursor.moveToFirst()) { + do { + // Print folder's name + String folderName = ""; + if(folderCursor.getLong(NOTE_COLUMN_ID) == Notes.ID_CALL_RECORD_FOLDER) { + folderName = mContext.getString(R.string.call_record_folder_name); + } else { + folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET); + } + if (!TextUtils.isEmpty(folderName)) { + ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName)); + } + String folderId = folderCursor.getString(NOTE_COLUMN_ID); + exportFolderToText(folderId, ps); + } while (folderCursor.moveToNext()); + } + folderCursor.close(); + } + + // Export notes in root's folder 将根目录里的便签导出(由于不属于任何文件夹,因此无法通过文件夹导出来实现这一部分便签的导出) + Cursor noteCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID + + "=0", null, null); + + if (noteCursor != null) { + if (noteCursor.moveToFirst()) { + do { + ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( + mContext.getString(R.string.format_datetime_mdhm), + noteCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); + // Query data belong to this note + String noteId = noteCursor.getString(NOTE_COLUMN_ID); + exportNoteToText(noteId, ps); + } while (noteCursor.moveToNext()); + } + noteCursor.close(); + } + ps.close(); + + return STATE_SUCCESS; + } + /** + * Get a print stream pointed to the file {@generateExportedTextFile} + */ + private PrintStream getExportToTextPrintStream() { + File file = generateFileMountedOnSDcard(mContext, R.string.file_path, + R.string.file_name_txt_format); + if (file == null) { + Log.e(TAG, "create file to exported failed"); + return null; + } + mFileName = file.getName(); + mFileDirectory = mContext.getString(R.string.file_path); + PrintStream ps = null; + try { + FileOutputStream fos = new FileOutputStream(file); + ps = new PrintStream(fos); //将ps输出流输出到特定的文件,目的就是导出到文件,而不是直接输出 + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } catch (NullPointerException e) { + e.printStackTrace(); + return null; + } + return ps; + } + } + + /** + * Generate the text file to store imported data + */ + private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) { + StringBuilder sb = new StringBuilder(); + sb.append(Environment.getExternalStorageDirectory()); //外部(SD卡)的存储路径 + sb.append(context.getString(filePathResId)); //文件的存储路径 + File filedir = new File(sb.toString()); //filedir应该就是用来存储路径信息 + sb.append(context.getString( + fileNameFormatResId, + DateFormat.format(context.getString(R.string.format_date_ymd), + System.currentTimeMillis()))); + File file = new File(sb.toString()); + + try { //如果这些文件不存在,则新建 + if (!filedir.exists()) { + filedir.mkdir(); + } + if (!file.exists()) { + file.createNewFile(); + } + return file; + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } +// try catch 异常处理 + return null; + } +} + + diff --git a/app/src/main/java/net/micode/notes/tool/DataUtils.java b/app/src/main/java/net/micode/notes/tool/DataUtils.java new file mode 100644 index 0000000..d43b754 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/DataUtils.java @@ -0,0 +1,304 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.OperationApplicationException; +import android.database.Cursor; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; + +import java.util.ArrayList; +import java.util.HashSet; + + + +public class DataUtils { + public static final String TAG = "DataUtils"; + public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { //直接删除多个笔记 + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + if (ids.size() == 0) { + Log.d(TAG, "no id is in the hashset"); + return true; + } + + ArrayList operationList = new ArrayList(); //提供一个任务列表 + for (long id : ids) { + if(id == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Don't delete system folder root"); + continue; + } //如果发现是根文件夹,则不删除 + ContentProviderOperation.Builder builder = ContentProviderOperation + .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); //用newDelete实现删除功能 + operationList.add(builder.build()); // + } + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList);//主机名(或叫Authority)用于唯一标识这个ContentProvider,外部调用者可以根据这个标识来找到它。 + //数据库事务,数据库事务是由一组数据库操作序列组成,事务作为一个整体被执行 + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + + + public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.PARENT_ID, desFolderId); + values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); //对需要移动的便签进行数据更新,然后用update实现 + } + + public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, + long folderId) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + ContentProviderOperation.Builder builder = ContentProviderOperation + .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); //通过withAppendedId方法,为该Uri加上ID + builder.withValue(NoteColumns.PARENT_ID, folderId); + builder.withValue(NoteColumns.LOCAL_MODIFIED, 1); + operationList.add(builder.build()); + }//将ids里包含的每一列的数据逐次加入到operationList中,等待最后的批量处理 + + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); //applyBatch一次性处理一个操作列表 + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + /** + * Get the all folder count except system folders {@link Notes#TYPE_SYSTEM}} + */ + public static int getUserFolderCount(ContentResolver resolver) { + Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { "COUNT(*)" }, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)}, + null); //筛选条件:源文件不为trash folder + + int count = 0; + if(cursor != null) { + if(cursor.moveToFirst()) { + try { + count = cursor.getInt(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "get folder count failed:" + e.toString()); + } finally { + cursor.close(); + } + } + } + return count; + } + + public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), //通过withAppendedId方法,为该Uri加上ID + null, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER, + new String [] {String.valueOf(type)}, + null); //查询条件:type符合,且不属于垃圾文件夹 + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) {//用getcount函数判断cursor是否为空 + exist = true; + } + cursor.close(); + } + return exist; + } + + + public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.SNIPPET + "=?", + new String[] { name }, null); + //通过名字查询文件是否存在 + boolean exist = false; + if(cursor != null) { + if(cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + public static HashSet getFolderNoteWidget(ContentResolver resolver, long folderId) { + Cursor c = resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE }, + NoteColumns.PARENT_ID + "=?", + new String[] { String.valueOf(folderId) }, + null); //查询条件:父ID是传入的folderId; + + HashSet set = null; + if (c != null) { + if (c.moveToFirst()) { + set = new HashSet(); + do { + try { + AppWidgetAttribute widget = new AppWidgetAttribute(); + widget.widgetId = c.getInt(0); //0对应的NoteColumns.WIDGET_ID + widget.widgetType = c.getInt(1); //1对应的NoteColumns.WIDGET_TYPE + set.add(widget); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, e.toString()); + } + } while (c.moveToNext()); //查询下一条 + } + c.close(); + } + return set; + } + + public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.PHONE_NUMBER }, + CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?", + new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + return cursor.getString(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call number fails " + e.toString()); + } finally { + cursor.close(); + } + } + return ""; + } + + public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.NOTE_ID }, + CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL(" + + CallNote.PHONE_NUMBER + ",?)", + new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber }, + null); + //通过数据库操作,查询条件是(callDate和phoneNumber匹配传入参数的值) + + if (cursor != null) { + if (cursor.moveToFirst()) { + try { + return cursor.getLong(0); //0对应的CallNote.NOTE_ID + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call note id fails " + e.toString()); + } + } + cursor.close(); + } + return 0; + } + + + public static String getSnippetById(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, + new String [] { NoteColumns.SNIPPET }, + NoteColumns.ID + "=?", + new String [] { String.valueOf(noteId)}, + null);//查询条件:noteId + + if (cursor != null) { + String snippet = ""; + if (cursor.moveToFirst()) { + snippet = cursor.getString(0); + } + cursor.close(); + return snippet; + } + throw new IllegalArgumentException("Note is not found with id: " + noteId); + } + public static String getFormattedSnippet(String snippet) { //对字符串进行格式处理,将字符串两头的空格去掉,同时将换行符去掉 + if (snippet != null) { + snippet = snippet.trim(); + int index = snippet.indexOf('\n'); + if (index != -1) { + snippet = snippet.substring(0, index); + } + } + return snippet; + } +} + + diff --git a/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java new file mode 100644 index 0000000..5e82916 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -0,0 +1,99 @@ + +//简介:定义了很多的静态字符串,目的就是为了提供jsonObject中相应字符串的"key"。把这些静态的定义单独写到了一个类里面,这是非常好的编程规范 +package net.micode.notes.tool; + +//这个类就是定义了一堆static string,实际就是为jsonObject提供Key,把这些定义全部写到一个类里,方便查看管理,是一个非常好的编程习惯 +public class GTaskStringUtils { + public final static String GTASK_JSON_ACTION_ID = "action_id"; + + public final static String GTASK_JSON_ACTION_LIST = "action_list"; + + public final static String GTASK_JSON_ACTION_TYPE = "action_type"; + + public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create"; + + public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; + + public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move"; + + public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; + + public final static String GTASK_JSON_CREATOR_ID = "creator_id"; + + public final static String GTASK_JSON_CHILD_ENTITY = "child_entity"; + + public final static String GTASK_JSON_CLIENT_VERSION = "client_version"; + + public final static String GTASK_JSON_COMPLETED = "completed"; + + public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; + + public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; + + public final static String GTASK_JSON_DELETED = "deleted"; + + public final static String GTASK_JSON_DEST_LIST = "dest_list"; + + public final static String GTASK_JSON_DEST_PARENT = "dest_parent"; + + public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; + + public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta"; + + public final static String GTASK_JSON_ENTITY_TYPE = "entity_type"; + + public final static String GTASK_JSON_GET_DELETED = "get_deleted"; + + public final static String GTASK_JSON_ID = "id"; + + public final static String GTASK_JSON_INDEX = "index"; + + public final static String GTASK_JSON_LAST_MODIFIED = "last_modified"; + + public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; + + public final static String GTASK_JSON_LIST_ID = "list_id"; + + public final static String GTASK_JSON_LISTS = "lists"; + + public final static String GTASK_JSON_NAME = "name"; + + public final static String GTASK_JSON_NEW_ID = "new_id"; + + public final static String GTASK_JSON_NOTES = "notes"; + + public final static String GTASK_JSON_PARENT_ID = "parent_id"; + + public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; + + public final static String GTASK_JSON_RESULTS = "results"; + + public final static String GTASK_JSON_SOURCE_LIST = "source_list"; + + public final static String GTASK_JSON_TASKS = "tasks"; + + public final static String GTASK_JSON_TYPE = "type"; + + public final static String GTASK_JSON_TYPE_GROUP = "GROUP"; + + public final static String GTASK_JSON_TYPE_TASK = "TASK"; + + public final static String GTASK_JSON_USER = "user"; + + public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]"; + + public final static String FOLDER_DEFAULT = "Default"; + + public final static String FOLDER_CALL_NOTE = "Call_Note"; + + public final static String FOLDER_META = "METADATA"; + + public final static String META_HEAD_GTASK_ID = "meta_gid"; + + public final static String META_HEAD_NOTE = "meta_note"; + + public final static String META_HEAD_DATA = "meta_data"; + + public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; + +} diff --git a/app/src/main/java/net/micode/notes/tool/ResourceParser.java b/app/src/main/java/net/micode/notes/tool/ResourceParser.java new file mode 100644 index 0000000..0e6ff03 --- /dev/null +++ b/app/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.preference.PreferenceManager; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesPreferenceActivity; + +/*简介:字面意义是资源分析器,实际上就是获取资源并且在程序中使用,比如颜色图片等 + * 实现方法:主要利用R.java这个类,其中包括 + * R.id 组件资源引用 + * R.drawable 图片资源 (被使用) + * R.layout 布局资源 + * R.menu 菜单资源 + * R.String 文字资源 + * R.style 主题资源 (被使用) + * 在按顺序设置好相应的id后,就可以编写简单的getXXX函数获取需要的资源 + * + * 特殊的变量 : + * @BG_DEFAULT_COLOR 默认背景颜色(黄) + * BG_DEFAULT_FONT_SIZE 默认文本大小(中) + */ + +public class ResourceParser { + + public static final int YELLOW = 0; + public static final int BLUE = 1; + public static final int WHITE = 2; + public static final int GREEN = 3; + public static final int RED = 4; + + public static final int BG_DEFAULT_COLOR = YELLOW; + + public static final int TEXT_SMALL = 0; + public static final int TEXT_MEDIUM = 1; + public static final int TEXT_LARGE = 2; + public static final int TEXT_SUPER = 3; + + public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; + + //直接获取默认的背景颜色。 + public static class NoteBgResources { + private final static int[] BG_EDIT_RESOURCES = new int[]{ + R.drawable.edit_yellow, + R.drawable.edit_blue, + R.drawable.edit_white, + R.drawable.edit_green, + R.drawable.edit_red + }; + + private final static int[] BG_EDIT_TITLE_RESOURCES = new int[]{ + R.drawable.edit_title_yellow, + R.drawable.edit_title_blue, + R.drawable.edit_title_white, + R.drawable.edit_title_green, + R.drawable.edit_title_red + }; + + public static int getNoteBgResource(int id) { + return BG_EDIT_RESOURCES[id]; + } + + public static int getNoteTitleBgResource(int id) { + return BG_EDIT_TITLE_RESOURCES[id]; + } + } + + public static int getDefaultBgId(Context context) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( + NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); + } else { + return BG_DEFAULT_COLOR; + } + } + + public static class NoteItemBgResources { + private final static int[] BG_FIRST_RESOURCES = new int[]{ + R.drawable.list_yellow_up, + R.drawable.list_blue_up, + R.drawable.list_white_up, + R.drawable.list_green_up, + R.drawable.list_red_up + }; + + private final static int[] BG_NORMAL_RESOURCES = new int[]{ + R.drawable.list_yellow_middle, + R.drawable.list_blue_middle, + R.drawable.list_white_middle, + R.drawable.list_green_middle, + R.drawable.list_red_middle + }; + + private final static int[] BG_LAST_RESOURCES = new int[]{ + R.drawable.list_yellow_down, + R.drawable.list_blue_down, + R.drawable.list_white_down, + R.drawable.list_green_down, + R.drawable.list_red_down, + }; + + private final static int[] BG_SINGLE_RESOURCES = new int[]{ + R.drawable.list_yellow_single, + R.drawable.list_blue_single, + R.drawable.list_white_single, + R.drawable.list_green_single, + R.drawable.list_red_single + }; + + public static int getNoteBgFirstRes(int id) { + return BG_FIRST_RESOURCES[id]; + } + + public static int getNoteBgLastRes(int id) { + return BG_LAST_RESOURCES[id]; + } + + public static int getNoteBgSingleRes(int id) { + return BG_SINGLE_RESOURCES[id]; + } + + public static int getNoteBgNormalRes(int id) { + return BG_NORMAL_RESOURCES[id]; + } + + public static int getFolderBgRes() { + return R.drawable.list_folder; + } + } + + public static class WidgetBgResources { + private final static int[] BG_2X_RESOURCES = new int[]{ + R.drawable.widget_2x_yellow, + R.drawable.widget_2x_blue, + R.drawable.widget_2x_white, + R.drawable.widget_2x_green, + R.drawable.widget_2x_red, + }; + + public static int getWidget2xBgResource(int id) { + return BG_2X_RESOURCES[id]; + } + + private final static int[] BG_4X_RESOURCES = new int[]{ + R.drawable.widget_4x_yellow, + R.drawable.widget_4x_blue, + R.drawable.widget_4x_white, + R.drawable.widget_4x_green, + R.drawable.widget_4x_red + }; + + public static int getWidget4xBgResource(int id) { + return BG_4X_RESOURCES[id]; + } + } + + public static class TextAppearanceResources { + private final static int[] TEXTAPPEARANCE_RESOURCES = new int[]{ + R.style.TextAppearanceNormal, + R.style.TextAppearanceMedium, + R.style.TextAppearanceLarge, + R.style.TextAppearanceSuper + }; + + //这里有一个容错的函数,防止输入的id大于资源总量,若如此,则自动返回默认的设置结果 + public static int getTexAppearanceResource(int id) { + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if (id >= TEXTAPPEARANCE_RESOURCES.length) { + return BG_DEFAULT_FONT_SIZE; + } + return TEXTAPPEARANCE_RESOURCES[id]; + } + + public static int getResourcesSize() { + return TEXTAPPEARANCE_RESOURCES.length; + } + } +} + diff --git a/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java new file mode 100644 index 0000000..85723be --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnDismissListener; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; +import android.view.Window; +import android.view.WindowManager; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; + +import java.io.IOException; + + +public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener { + private long mNoteId; + private String mSnippet; + private static final int SNIPPET_PREW_MAX_LEN = 60; + MediaPlayer mPlayer; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestWindowFeature(Window.FEATURE_NO_TITLE); + + final Window win = getWindow(); + win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + + if (!isScreenOn()) { + win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + } + + Intent intent = getIntent(); + + try { + mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1)); + mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId); + mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0, + SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info) + : mSnippet; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return; + } + + mPlayer = new MediaPlayer(); + if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { + showActionDialog(); + playAlarmSound(); + } else { + finish(); + } + } + + private boolean isScreenOn() { + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + return pm.isScreenOn(); + } + + private void playAlarmSound() { + Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); + + int silentModeStreams = Settings.System.getInt(getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0); + + if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) { + mPlayer.setAudioStreamType(silentModeStreams); + } else { + mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); + } + try { + mPlayer.setDataSource(this, url); + mPlayer.prepare(); + mPlayer.setLooping(true); + mPlayer.start(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void showActionDialog() { + AlertDialog.Builder dialog = new AlertDialog.Builder(this); + dialog.setTitle(R.string.app_name); + dialog.setMessage(mSnippet); + dialog.setPositiveButton(R.string.notealert_ok, this); + if (isScreenOn()) { + dialog.setNegativeButton(R.string.notealert_enter, this); + } + dialog.show().setOnDismissListener(this); + } + + public void onClick(DialogInterface dialog, int which) { + switch (which) { + case DialogInterface.BUTTON_NEGATIVE: + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, mNoteId); + startActivity(intent); + break; + default: + break; + } + } + + public void onDismiss(DialogInterface dialog) { + stopAlarmSound(); + finish(); + } + + private void stopAlarmSound() { + if (mPlayer != null) { + mPlayer.stop(); + mPlayer.release(); + mPlayer = null; + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java new file mode 100644 index 0000000..f221202 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +public class AlarmInitReceiver extends BroadcastReceiver { + + private static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE + }; + + private static final int COLUMN_ID = 0; + private static final int COLUMN_ALERTED_DATE = 1; + + @Override + public void onReceive(Context context, Intent intent) { + long currentDate = System.currentTimeMillis(); + Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, + new String[] { String.valueOf(currentDate) }, + null); + + if (c != null) { + if (c.moveToFirst()) { + do { + long alertDate = c.getLong(COLUMN_ALERTED_DATE); + Intent sender = new Intent(context, AlarmReceiver.class); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); + AlarmManager alermManager = (AlarmManager) context + .getSystemService(Context.ALARM_SERVICE); + alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } while (c.moveToNext()); + } + c.close(); + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java new file mode 100644 index 0000000..54e503b --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class AlarmReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + intent.setClass(context, AlarmAlertActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java new file mode 100644 index 0000000..496b0cd --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -0,0 +1,485 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.text.DateFormatSymbols; +import java.util.Calendar; + +import net.micode.notes.R; + + +import android.content.Context; +import android.text.format.DateFormat; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.NumberPicker; + +public class DateTimePicker extends FrameLayout { + + private static final boolean DEFAULT_ENABLE_STATE = true; + + private static final int HOURS_IN_HALF_DAY = 12; + private static final int HOURS_IN_ALL_DAY = 24; + private static final int DAYS_IN_ALL_WEEK = 7; + private static final int DATE_SPINNER_MIN_VAL = 0; + private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + private static final int MINUT_SPINNER_MIN_VAL = 0; + private static final int MINUT_SPINNER_MAX_VAL = 59; + private static final int AMPM_SPINNER_MIN_VAL = 0; + private static final int AMPM_SPINNER_MAX_VAL = 1; + + private final NumberPicker mDateSpinner; + private final NumberPicker mHourSpinner; + private final NumberPicker mMinuteSpinner; + private final NumberPicker mAmPmSpinner; + private Calendar mDate; + + private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + + private boolean mIsAm; + + private boolean mIs24HourView; + + private boolean mIsEnabled = DEFAULT_ENABLE_STATE; + + private boolean mInitialising; + + private OnDateTimeChangedListener mOnDateTimeChangedListener; + + private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal); + updateDateControl(); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + boolean isDateChanged = false; + Calendar cal = Calendar.getInstance(); + if (!mIs24HourView) { + if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY || + oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + mIsAm = !mIsAm; + updateAmPmControl(); + } + } else { + if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + } + int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY); + mDate.set(Calendar.HOUR_OF_DAY, newHour); + onDateTimeChanged(); + if (isDateChanged) { + setCurrentYear(cal.get(Calendar.YEAR)); + setCurrentMonth(cal.get(Calendar.MONTH)); + setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); + } + } + }; + + private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + int minValue = mMinuteSpinner.getMinValue(); + int maxValue = mMinuteSpinner.getMaxValue(); + int offset = 0; + if (oldVal == maxValue && newVal == minValue) { + offset += 1; + } else if (oldVal == minValue && newVal == maxValue) { + offset -= 1; + } + if (offset != 0) { + mDate.add(Calendar.HOUR_OF_DAY, offset); + mHourSpinner.setValue(getCurrentHour()); + updateDateControl(); + int newHour = getCurrentHourOfDay(); + if (newHour >= HOURS_IN_HALF_DAY) { + mIsAm = false; + updateAmPmControl(); + } else { + mIsAm = true; + updateAmPmControl(); + } + } + mDate.set(Calendar.MINUTE, newVal); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mIsAm = !mIsAm; + if (mIsAm) { + mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); + } else { + mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); + } + updateAmPmControl(); + onDateTimeChanged(); + } + }; + + public interface OnDateTimeChangedListener { + void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute); + } + + public DateTimePicker(Context context) { + this(context, System.currentTimeMillis()); + } + + public DateTimePicker(Context context, long date) { + this(context, date, DateFormat.is24HourFormat(context)); + } + + public DateTimePicker(Context context, long date, boolean is24HourView) { + super(context); + mDate = Calendar.getInstance(); + mInitialising = true; + mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY; + inflate(context, R.layout.datetime_picker, this); + + mDateSpinner = (NumberPicker) findViewById(R.id.date); + mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL); + mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL); + mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); + + mHourSpinner = (NumberPicker) findViewById(R.id.hour); + mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); + mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); + mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); + mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); + mMinuteSpinner.setOnLongPressUpdateInterval(100); + mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener); + + String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); + mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); + mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); + mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); + mAmPmSpinner.setDisplayedValues(stringsForAmPm); + mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener); + + // update controls to initial state + updateDateControl(); + updateHourControl(); + updateAmPmControl(); + + set24HourView(is24HourView); + + // set to current time + setCurrentDate(date); + + setEnabled(isEnabled()); + + // set the content descriptions + mInitialising = false; + } + + @Override + public void setEnabled(boolean enabled) { + if (mIsEnabled == enabled) { + return; + } + super.setEnabled(enabled); + mDateSpinner.setEnabled(enabled); + mMinuteSpinner.setEnabled(enabled); + mHourSpinner.setEnabled(enabled); + mAmPmSpinner.setEnabled(enabled); + mIsEnabled = enabled; + } + + @Override + public boolean isEnabled() { + return mIsEnabled; + } + + /** + * Get the current date in millis + * + * @return the current date in millis + */ + public long getCurrentDateInTimeMillis() { + return mDate.getTimeInMillis(); + } + + /** + * Set the current date + * + * @param date The current date in millis + */ + public void setCurrentDate(long date) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(date); + setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); + } + + /** + * Set the current date + * + * @param year The current year + * @param month The current month + * @param dayOfMonth The current dayOfMonth + * @param hourOfDay The current hourOfDay + * @param minute The current minute + */ + public void setCurrentDate(int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + setCurrentYear(year); + setCurrentMonth(month); + setCurrentDay(dayOfMonth); + setCurrentHour(hourOfDay); + setCurrentMinute(minute); + } + + /** + * Get current year + * + * @return The current year + */ + public int getCurrentYear() { + return mDate.get(Calendar.YEAR); + } + + /** + * Set current year + * + * @param year The current year + */ + public void setCurrentYear(int year) { + if (!mInitialising && year == getCurrentYear()) { + return; + } + mDate.set(Calendar.YEAR, year); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current month in the year + * + * @return The current month in the year + */ + public int getCurrentMonth() { + return mDate.get(Calendar.MONTH); + } + + /** + * Set current month in the year + * + * @param month The month in the year + */ + public void setCurrentMonth(int month) { + if (!mInitialising && month == getCurrentMonth()) { + return; + } + mDate.set(Calendar.MONTH, month); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current day of the month + * + * @return The day of the month + */ + public int getCurrentDay() { + return mDate.get(Calendar.DAY_OF_MONTH); + } + + /** + * Set current day of the month + * + * @param dayOfMonth The day of the month + */ + public void setCurrentDay(int dayOfMonth) { + if (!mInitialising && dayOfMonth == getCurrentDay()) { + return; + } + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current hour in 24 hour mode, in the range (0~23) + * @return The current hour in 24 hour mode + */ + public int getCurrentHourOfDay() { + return mDate.get(Calendar.HOUR_OF_DAY); + } + + private int getCurrentHour() { + if (mIs24HourView){ + return getCurrentHourOfDay(); + } else { + int hour = getCurrentHourOfDay(); + if (hour > HOURS_IN_HALF_DAY) { + return hour - HOURS_IN_HALF_DAY; + } else { + return hour == 0 ? HOURS_IN_HALF_DAY : hour; + } + } + } + + /** + * Set current hour in 24 hour mode, in the range (0~23) + * + * @param hourOfDay + */ + public void setCurrentHour(int hourOfDay) { + if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { + return; + } + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + if (!mIs24HourView) { + if (hourOfDay >= HOURS_IN_HALF_DAY) { + mIsAm = false; + if (hourOfDay > HOURS_IN_HALF_DAY) { + hourOfDay -= HOURS_IN_HALF_DAY; + } + } else { + mIsAm = true; + if (hourOfDay == 0) { + hourOfDay = HOURS_IN_HALF_DAY; + } + } + updateAmPmControl(); + } + mHourSpinner.setValue(hourOfDay); + onDateTimeChanged(); + } + + /** + * Get currentMinute + * + * @return The Current Minute + */ + public int getCurrentMinute() { + return mDate.get(Calendar.MINUTE); + } + + /** + * Set current minute + */ + public void setCurrentMinute(int minute) { + if (!mInitialising && minute == getCurrentMinute()) { + return; + } + mMinuteSpinner.setValue(minute); + mDate.set(Calendar.MINUTE, minute); + onDateTimeChanged(); + } + + /** + * @return true if this is in 24 hour view else false. + */ + public boolean is24HourView () { + return mIs24HourView; + } + + /** + * Set whether in 24 hour or AM/PM mode. + * + * @param is24HourView True for 24 hour mode. False for AM/PM mode. + */ + public void set24HourView(boolean is24HourView) { + if (mIs24HourView == is24HourView) { + return; + } + mIs24HourView = is24HourView; + mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); + int hour = getCurrentHourOfDay(); + updateHourControl(); + setCurrentHour(hour); + updateAmPmControl(); + } + + private void updateDateControl() { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); + mDateSpinner.setDisplayedValues(null); + for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { + cal.add(Calendar.DAY_OF_YEAR, 1); + mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); + } + mDateSpinner.setDisplayedValues(mDateDisplayValues); + mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); + mDateSpinner.invalidate(); + } + + private void updateAmPmControl() { + if (mIs24HourView) { + mAmPmSpinner.setVisibility(View.GONE); + } else { + int index = mIsAm ? Calendar.AM : Calendar.PM; + mAmPmSpinner.setValue(index); + mAmPmSpinner.setVisibility(View.VISIBLE); + } + } + + private void updateHourControl() { + if (mIs24HourView) { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); + } else { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); + } + } + + /** + * Set the callback that indicates the 'Set' button has been pressed. + * @param callback the callback, if null will do nothing + */ + public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { + mOnDateTimeChangedListener = callback; + } + + private void onDateTimeChanged() { + if (mOnDateTimeChangedListener != null) { + mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), + getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute()); + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java new file mode 100644 index 0000000..d236a74 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.util.Calendar; + +import net.micode.notes.R; +import net.micode.notes.ui.DateTimePicker; +import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.text.format.DateFormat; +import android.text.format.DateUtils; + + +public class DateTimePickerDialog extends AlertDialog implements OnClickListener { + + private Calendar mDate = Calendar.getInstance(); + //创建一个Calendar类型的变量 mDate,方便时间的操作 + private boolean mIs24HourView; + private OnDateTimeSetListener mOnDateTimeSetListener; + //声明一个时间日期滚动选择控件 mOnDateTimeSetListener + private DateTimePicker mDateTimePicker; + //DateTimePicker控件,控件一般用于让用户可以从日期列表中选择单个值。 + //运行时,单击控件边上的下拉箭头,会显示为两个部分:一个下拉列表,一个用于选择日期的 + + public interface OnDateTimeSetListener { + void OnDateTimeSet(AlertDialog dialog, long date); + } + + public DateTimePickerDialog(Context context, long date) { + //对该界面对话框的实例化 + super(context); + //对数据库的操作 + mDateTimePicker = new DateTimePicker(context); + setView(mDateTimePicker); + //添加一个子视图 + mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() { + public void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + mDate.set(Calendar.YEAR, year); + mDate.set(Calendar.MONTH, month); + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + mDate.set(Calendar.MINUTE, minute); + //将视图中的各选项设置为系统当前时间 + updateTitle(mDate.getTimeInMillis()); + } + }); + mDate.setTimeInMillis(date); + //得到系统时间 + mDate.set(Calendar.SECOND, 0); + //将秒数设置为0 + mDateTimePicker.setCurrentDate(mDate.getTimeInMillis()); + setButton(context.getString(R.string.datetime_dialog_ok), this); + setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener) null); + //设置按钮 + set24HourView(DateFormat.is24HourFormat(this.getContext())); + //时间标准化打印 + updateTitle(mDate.getTimeInMillis()); + } + + public void set24HourView(boolean is24HourView) { + mIs24HourView = is24HourView; + } + + public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) { + mOnDateTimeSetListener = callBack; + }//将时间日期滚动选择控件实例化 + + private void updateTitle(long date) { + int flag = + DateUtils.FORMAT_SHOW_YEAR | + DateUtils.FORMAT_SHOW_DATE | + DateUtils.FORMAT_SHOW_TIME; + flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR; + setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); + }//android开发中常见日期管理工具类(API)——DateUtils:按照上下午显示时间 + + public void onClick(DialogInterface arg0, int arg1) { + if (mOnDateTimeSetListener != null) { + mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); + } + }//第一个参数arg0是接收到点击事件的对话框 + //第二个参数arg1是该对话框上的按钮 +} diff --git a/app/src/main/java/net/micode/notes/ui/DropdownMenu.java b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java new file mode 100644 index 0000000..42f6884 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.PopupMenu; +import android.widget.PopupMenu.OnMenuItemClickListener; + +import net.micode.notes.R; + + +public class DropdownMenu { + private Button mButton; + private PopupMenu mPopupMenu; + //声明一个下拉菜单 + private Menu mMenu; + + public DropdownMenu(Context context, Button button, int menuId) { + mButton = button; + mButton.setBackgroundResource(R.drawable.dropdown_icon); + //设置这个view的背景 + mPopupMenu = new PopupMenu(context, mButton); + mMenu = mPopupMenu.getMenu(); + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + //MenuInflater是用来实例化Menu目录下的Menu布局文件 + //根据ID来确认menu的内容选项 + mButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + mPopupMenu.show(); + } + }); + } + + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); + }//设置菜单的监听 + } + + public MenuItem findItem(int id) { + return mMenu.findItem(id); + }//对于菜单选项的初始化,根据索引搜索菜单需要的选项 + + public void setTitle(CharSequence title) { + mButton.setText(title); + }//布局文件,设置标题 +} \ No newline at end of file diff --git a/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java new file mode 100644 index 0000000..202a8d8 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + + +public class FoldersListAdapter extends CursorAdapter { + //CursorAdapter是Cursor和ListView的接口 + //FoldersListAdapter继承了CursorAdapter的类 + //主要作用是便签数据库和用户的交互 + //这里就是用folder(文件夹)的形式展现给用户 + public static final String[] PROJECTION = { + NoteColumns.ID, + NoteColumns.SNIPPET + };//调用数据库中便签的ID和片段 + + public static final int ID_COLUMN = 0; + public static final int NAME_COLUMN = 1; + + public FoldersListAdapter(Context context, Cursor c) { + super(context, c); + // TODO Auto-generated constructor stub + }//数据库操作 + + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + //ViewGroup是容器 + return new FolderListItem(context); + }//创建一个文件夹,对于各文件夹中子标签的初始化 + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof FolderListItem) { + String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + ((FolderListItem) view).bind(folderName); + } + }//将各个布局文件绑定起来 + + public String getFolderName(Context context, int position) { + Cursor cursor = (Cursor) getItem(position); + return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + }//根据数据库中标签的ID得到标签的各项内容 + + private class FolderListItem extends LinearLayout { + private TextView mName; + + public FolderListItem(Context context) { + super(context); + //操作数据库 + inflate(context, R.layout.folder_list_item, this); + //根据布局文件的名字等信息将其找出来 + mName = (TextView) findViewById(R.id.tv_folder_name); + } + + public void bind(String name) { + mName.setText(name); + } + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java new file mode 100644 index 0000000..9a4a6d2 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -0,0 +1,1239 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlarmManager; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Paint; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.provider.DocumentsContract; +import android.provider.MediaStore; +import android.support.annotation.RequiresApi; +import android.support.v7.app.AppCompatActivity; +import android.text.Editable; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.text.style.BackgroundColorSpan; +import android.text.style.ImageSpan; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.model.WorkingNote.NoteSettingChangedListener; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.tool.ResourceParser.TextAppearanceResources; +import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener; +import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + + +public class NoteEditActivity extends Activity implements OnClickListener, + NoteSettingChangedListener, OnTextViewChangeListener { + //该类主要是针对标签的编辑 + //继承了系统内部许多和监听有关的类 + private class HeadViewHolder { + public TextView tvModified; + + public ImageView ivAlertIcon; + + public TextView tvAlertDate; + + public ImageView ibSetBgColor; + } + + //使用Map实现数据存储 + private static final Map sBgSelectorBtnsMap = new HashMap(); + static { + sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); + sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED); + sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE); + sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN); + sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); + //put函数是将指定值和指定键相连 + } + + private static final Map sBgSelectorSelectionMap = new HashMap(); + static { + sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); + sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select); + sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); + sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); + sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); + //put函数是将指定值和指定键相连 + } + + private static final Map sFontSizeBtnsMap = new HashMap(); + static { + sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); + sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL); + sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); + sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); + //put函数是将指定值和指定键相连 + } + + private static final Map sFontSelectorSelectionMap = new HashMap(); + static { + sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); + //put函数是将指定值和指定键相连 + } + + + private static final String TAG = "NoteEditActivity"; + + private HeadViewHolder mNoteHeaderHolder; + + private View mHeadViewPanel; + //私有化一个界面操作mHeadViewPanel,对表头的操作 + private View mNoteBgColorSelector; + //私有化一个界面操作mNoteBgColorSelector,对背景颜色的操作 + private View mFontSizeSelector; + //私有化一个界面操作mFontSizeSelector,对标签字体的操作 + private EditText mNoteEditor; + //声明编辑控件,对文本操作 + private View mNoteEditorPanel; + //私有化一个界面操作mNoteEditorPanel,文本编辑的控制板 + //private WorkingNote mWorkingNote; + public WorkingNote mWorkingNote; + //对模板WorkingNote的初始化 + private SharedPreferences mSharedPrefs; + //私有化SharedPreferences的数据存储方式 + //它的本质是基于XML文件存储key-value键值对数据 + private int mFontSizeId; + //用于操作字体的大小 + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + + public static final String TAG_CHECKED = String.valueOf('\u221A'); + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + + private LinearLayout mEditTextList; + //线性布局 + private String mUserQuery; + private Pattern mPattern; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setContentView(R.layout.note_edit); + //对数据库的访问操作 + if (savedInstanceState == null && !initActivityState(getIntent())) { + finish(); + return; + } + initResources(); + } + + /** + * Current activity may be killed when the memory is low. Once it is killed, for another time + * user load this activity, we should restore the former state + */ + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); + if (!initActivityState(intent)) { + finish(); + return; + } + Log.d(TAG, "Restoring from killed activity"); + }//为防止内存不足时程序的终止,在这里有一个保存现场的函数 + } + + private boolean initActivityState(Intent intent) { + /** + * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, + * then jump to the NotesListActivity + */ + mWorkingNote = null; + if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { + long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); + mUserQuery = ""; + //如果用户实例化标签时,系统并未给出标签ID + /** + * Starting from the searched result + */ + //根据键值查找ID + if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { + noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); + mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY); + } + //如果ID在数据库中未找到 + if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { + Intent jump = new Intent(this, NotesListActivity.class); + startActivity(jump); + //程序将跳转到上面声明的intent——jump + showToast(R.string.error_note_not_exist); + finish(); + return false; + } + //ID在数据库中找到 + else { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load note failed with note id" + noteId); + //打印出红色的错误信息 + finish(); + return false; + } + } + //setSoftInputMode——软键盘输入模式 + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN + | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { + // intent.getAction() + // 大多用于broadcast发送广播时给机制(intent)设置一个action,就是一个字符串 + // 用户可以通过receive(接受)intent,通过 getAction得到的字符串,来决定做什么 + long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); + int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, + Notes.TYPE_WIDGET_INVALIDE); + int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, + ResourceParser.getDefaultBgId(this)); + // intent.getInt(Long、String)Extra是对各变量的语法分析 + // Parse call-record note + String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); + long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0); + if (callDate != 0 && phoneNumber != null) { + if (TextUtils.isEmpty(phoneNumber)) { + Log.w(TAG, "The call record number is null"); + } + long noteId = 0; + if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), + phoneNumber, callDate)) > 0) { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load call note failed with note id" + noteId); + finish(); + return false; + } + //将电话号码与手机的号码簿相关 + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, + widgetType, bgResId); + mWorkingNote.convertToCallNote(phoneNumber, callDate); + // + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, + bgResId); + }//创建一个新的WorkingNote + + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + } else { + Log.e(TAG, "Intent not specified action, should not support"); + finish(); + return false; + } + mWorkingNote.setOnSettingStatusChangedListener(this); + return true; + } + + @Override + protected void onResume() { + super.onResume(); + initNoteScreen(); + } + + private void initNoteScreen() { + //对界面的初始化操作 + mNoteEditor.setTextAppearance(this, TextAppearanceResources + .getTexAppearanceResource(mFontSizeId)); + //设置外观 + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mNoteEditor.setSelection(mNoteEditor.getText().length()); + } + for (Integer id : sBgSelectorSelectionMap.keySet()) { + findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); + } + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + + mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this, + mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE + | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME + | DateUtils.FORMAT_SHOW_YEAR)); + + /** + * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker + * is not ready + */ + showAlertHeader(); + } + //设置闹钟的显示 + private void showAlertHeader() { + if (mWorkingNote.hasClockAlert()) { + long time = System.currentTimeMillis(); + if (time > mWorkingNote.getAlertDate()) { + mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); + } + //如果系统时间大于了闹钟设置的时间,那么闹钟失效 + else { + mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( + mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); + } + mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); + //显示闹钟开启的图标 + } else { + mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); + }; + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + initActivityState(intent); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + /** + * For new note without note id, we should firstly save it to + * generate a id. If the editing note is not worth saving, there + * is no id which is equivalent to create new note + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + //在创建一个新的标签时,先在数据库中匹配 + //如果不存在,那么先在数据库中存储 + outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); + } + + @Override + //MotionEvent是对屏幕触控的传递机制 + public boolean dispatchTouchEvent(MotionEvent ev) { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mNoteBgColorSelector, ev)) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + }//颜色选择器在屏幕上可见 + + if (mFontSizeSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mFontSizeSelector, ev)) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + }//字体大小选择器在屏幕上可见 + return super.dispatchTouchEvent(ev); + } + //对屏幕触控的坐标进行操作 + private boolean inRangeOfView(View view, MotionEvent ev) { + int []location = new int[2]; + view.getLocationOnScreen(location); + int x = location[0]; + int y = location[1]; + if (ev.getX() < x + || ev.getX() > (x + view.getWidth()) + || ev.getY() < y + || ev.getY() > (y + view.getHeight())) + //如果触控的位置超出了给定的范围,返回false + { + return false; + } + return true; + } + + private void initResources() { + mHeadViewPanel = findViewById(R.id.note_title); + mNoteHeaderHolder = new HeadViewHolder(); + mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); + mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); + mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); + mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); + mNoteEditor = (EditText) findViewById(R.id.note_edit_view); + mNoteEditorPanel = findViewById(R.id.sv_note_edit); + mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); + for (int id : sBgSelectorBtnsMap.keySet()) { + ImageView iv = (ImageView) findViewById(id); + iv.setOnClickListener(this); + }//对标签各项属性内容的初始化 + + mFontSizeSelector = findViewById(R.id.font_size_selector); + for (int id : sFontSizeBtnsMap.keySet()) { + View view = findViewById(id); + view.setOnClickListener(this); + };//对字体大小的选择 + mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); + mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE); + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { + mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; + } + mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + } + + @Override + protected void onPause() { + super.onPause(); + if(saveNote()) { + Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); + } + clearSettingState(); + } + + //和桌面小工具的同步 + private void updateWidget() { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + mWorkingNote.getWidgetId() + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + public void onClick(View v) { + int id = v.getId(); + if (id == R.id.btn_set_bg_color) { + mNoteBgColorSelector.setVisibility(View.VISIBLE); + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + } else if (sBgSelectorBtnsMap.containsKey(id)) { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.GONE); + mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); + mNoteBgColorSelector.setVisibility(View.GONE); + } else if (sFontSizeBtnsMap.containsKey(id)) { + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE); + mFontSizeId = sFontSizeBtnsMap.get(id); + mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit(); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + getWorkingText(); + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setTextAppearance(this, + TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + } + mFontSizeSelector.setVisibility(View.GONE); + } + }//************************存在问题 + + @Override + public void onBackPressed() { + if(clearSettingState()) { + return; + } + + saveNote(); + super.onBackPressed(); + } + + private boolean clearSettingState() { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return false; + } + + public void onBackgroundColorChanged() { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + } + + @Override + //对选择菜单的准备 + public boolean onPrepareOptionsMenu(Menu menu) { + if (isFinishing()) { + return true; + } + clearSettingState(); + menu.clear(); + if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_note_edit, menu); + // MenuInflater是用来实例化Menu目录下的Menu布局文件的 + } else { + getMenuInflater().inflate(R.menu.note_edit, menu); + } + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); + } else { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); + } + if (mWorkingNote.hasClockAlert()) { + menu.findItem(R.id.menu_alert).setVisible(false); + } else { + menu.findItem(R.id.menu_delete_remind).setVisible(false); + } + return true; + } + + @Override + /* + * 函数功能:动态改变菜单选项内容 + * 函数实现:如下注释 + */ + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + //根据菜单的id来编剧相关项目 + case R.id.menu_new_note: + //创建一个新的便签 + createNewNote(); + break; + case R.id.menu_delete: + //删除便签 + AlertDialog.Builder builder = new AlertDialog.Builder(this); + //创建关于删除操作的对话框 + builder.setTitle(getString(R.string.alert_title_delete)); + // 设置标签的标题为alert_title_delete + builder.setIcon(android.R.drawable.ic_dialog_alert); + //设置对话框图标 + builder.setMessage(getString(R.string.alert_message_delete_note)); + //设置对话框内容 + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + //建立按键监听器 + public void onClick(DialogInterface dialog, int which) { + //点击所触发事件 + deleteCurrentNote(); + // 删除单签便签 + finish(); + } + }); + //添加“YES”按钮 + builder.setNegativeButton(android.R.string.cancel, null); + //添加“NO”的按钮 + builder.show(); + //显示对话框 + break; + case R.id.menu_font_size: + //字体大小的编辑 + mFontSizeSelector.setVisibility(View.VISIBLE); + // 将字体选择器置为可见 + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + // 通过id找到相应的大小 + break; + case R.id.menu_list_mode: + //选择列表模式 + mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ? + TextNote.MODE_CHECK_LIST : 0); + break; + case R.id.menu_share: + //菜单共享 + getWorkingText(); + sendTo(this, mWorkingNote.getContent()); + // 用sendto函数将运行文本发送到遍历的本文内 + break; + case R.id.menu_send_to_desktop: + //发送到桌面 + sendToDesktop(); + break; + case R.id.menu_alert: + //创建提醒器 + setReminder(); + break; + case R.id.menu_delete_remind: + //删除日期提醒 + mWorkingNote.setAlertDate(0, false); + break; + default: + break; + } + return true; + } + + + /* + * 函数功能:建立事件提醒器 + * 函数实现:如下注释 + */ + private void setReminder() { + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); + // 建立修改时间日期的对话框 + d.setOnDateTimeSetListener(new OnDateTimeSetListener() { + public void OnDateTimeSet(AlertDialog dialog, long date) { + mWorkingNote.setAlertDate(date , true); + //选择提醒的日期 + } + }); + //建立时间日期的监听器 + d.show(); + //显示对话框 + } + + /** + * Share note to apps that support {@link Intent#ACTION_SEND} action + * and {@text/plain} type + */ + /* + * 函数功能:共享便签 + * 函数实现:如下注释 + */ + private void sendTo(Context context, String info) { + Intent intent = new Intent(Intent.ACTION_SEND); + //建立intent链接选项 + intent.putExtra(Intent.EXTRA_TEXT, info); + //将需要传递的便签信息放入text文件中 + intent.setType("text/plain"); + //编辑连接器的类型 + context.startActivity(intent); + //在acti中进行链接 + } + + /* + * 函数功能:创建一个新的便签 + * 函数实现:如下注释 + */ + private void createNewNote() { + // Firstly, save current editing notes + //保存当前便签 + saveNote(); + + // For safety, start a new NoteEditActivity + finish(); + Intent intent = new Intent(this, NoteEditActivity.class); + //设置链接器 + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + //该活动定义为创建或编辑 + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); + //将运行便签的id添加到INTENT_EXTRA_FOLDER_ID标记中 + startActivity(intent); + //开始activity并链接 + } + + + /* + * 函数功能:删除当前便签 + * 函数实现:如下注释 + */ + private void deleteCurrentNote() { + if (mWorkingNote.existInDatabase()) { + //假如当前运行的便签内存有数据 + HashSet ids = new HashSet(); + long id = mWorkingNote.getNoteId(); + if (id != Notes.ID_ROOT_FOLDER) { + ids.add(id); + //如果不是头文件夹建立一个hash表把便签id存起来 + } else { + Log.d(TAG, "Wrong note id, should not happen"); + //否则报错 + } + if (!isSyncMode()) { + //在非同步模式情况下 + //删除操作 + if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) { + Log.e(TAG, "Delete Note error"); + } + } else { + //同步模式 + //移动至垃圾文件夹的操作 + if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + } + mWorkingNote.markDeleted(true); + //将这些标签的删除标记置为true + } + + /* + * 函数功能:判断是否为同步模式 + * 函数实现:直接看NotesPreferenceActivity中同步名称是否为空 + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /* + * 函数功能:设置提醒时间 + * 函数实现:如下注释 + */ + public void onClockAlertChanged(long date, boolean set) { + /** + * User could set clock to an unsaved note, so before setting the + * alert clock, we should save the note first + */ + if (!mWorkingNote.existInDatabase()) { + //首先保存已有的便签 + saveNote(); + } + if (mWorkingNote.getNoteId() > 0) { + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); + //若有有运行的便签就是建立一个链接器将标签id都存在uri中 + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); + AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); + //设置提醒管理器 + showAlertHeader(); + if(!set) { + alarmManager.cancel(pendingIntent); + } else { + alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } + //如果用户设置了时间,就通过提醒管理器设置一个监听事项 + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + //没有运行的便签就报错 + Log.e(TAG, "Clock alert setting error"); + showToast(R.string.error_note_empty_for_clock); + } + } + + /* + * 函数功能:Widget发生改变的所触发的事件 + */ + public void onWidgetChanged() { + updateWidget();//更新Widget + } + + /* + * 函数功能: 删除编辑文本框所触发的事件 + * 函数实现:如下注释 + */ + public void onEditTextDelete(int index, String text) { + int childCount = mEditTextList.getChildCount(); + if (childCount == 1) { + return; + } + //没有编辑框的话直接返回 + for (int i = index + 1; i < childCount; i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i - 1); + //通过id把编辑框存在便签编辑框中 + } + + mEditTextList.removeViewAt(index); + //删除特定位置的视图 + NoteEditText edit = null; + if(index == 0) { + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( + R.id.et_edit_text); + } else { + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + R.id.et_edit_text); + } + //通过id把编辑框存在空的NoteEditText中 + int length = edit.length(); + edit.append(text); + edit.requestFocus();//请求优先完成该此 编辑 + edit.setSelection(length);//定位到length位置处的条目 + } + + /* + * 函数功能:进入编辑文本框所触发的事件 + * 函数实现:如下注释 + */ + public void onEditTextEnter(int index, String text) { + /** + * Should not happen, check for debug + */ + if(index > mEditTextList.getChildCount()) { + Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); + //越界把偶偶 + } + + View view = getListItem(text, index); + mEditTextList.addView(view, index); + //建立一个新的视图并添加到编辑文本框内 + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.requestFocus();//请求优先操作 + edit.setSelection(0);//定位到起始位置 + for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i); + //遍历子文本框并设置对应对下标 + } + } + + /* + * 函数功能:切换至列表模式 + * 函数实现:如下注释 + */ + private void switchToListMode(String text) { + mEditTextList.removeAllViews(); + String[] items = text.split("\n"); + int index = 0; + //清空所有视图,初始化下标 + for (String item : items) { + if(!TextUtils.isEmpty(item)) { + mEditTextList.addView(getListItem(item, index)); + index++; + //遍历所有文本单元并添加到文本框中 + } + } + mEditTextList.addView(getListItem("", index)); + mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); + //优先请求此操作 + + mNoteEditor.setVisibility(View.GONE); + //便签编辑器不可见 + mEditTextList.setVisibility(View.VISIBLE); + //将文本编辑框置为可见 + } + + + /* + * 函数功能:获取高亮效果的反馈情况 + * 函数实现:如下注释 + */ + private Spannable getHighlightQueryResult(String fullText, String userQuery) { + SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); + //新建一个效果选项 + if (!TextUtils.isEmpty(userQuery)) { + mPattern = Pattern.compile(userQuery); + //将用户的询问进行解析 + Matcher m = mPattern.matcher(fullText); + //建立一个状态机检查Pattern并进行匹配 + int start = 0; + while (m.find(start)) { + spannable.setSpan( + new BackgroundColorSpan(this.getResources().getColor( + R.color.user_query_highlight)), m.start(), m.end(), + Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + //设置背景颜色 + start = m.end(); + //跟新起始位置 + } + } + return spannable; + } + + /* + * 函数功能:获取列表项 + * 函数实现:如下注释 + */ + private View getListItem(String item, int index) { + View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); + //创建一个视图 + final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + //创建一个文本编辑框并设置可见性 + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + } + } + }); + //建立一个打钩框并设置监听器 + + if (item.startsWith(TAG_CHECKED)) { + //选择勾选 + cb.setChecked(true); + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + item = item.substring(TAG_CHECKED.length(), item.length()).trim(); + } else if (item.startsWith(TAG_UNCHECKED)) { + //选择不勾选 + cb.setChecked(false); + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); + } + + edit.setOnTextViewChangeListener(this); + edit.setIndex(index); + edit.setText(getHighlightQueryResult(item, mUserQuery)); + //运行编辑框的监听器对该行为作出反应,并设置下标及文本内容 + return view; + } + + /* + * 函数功能:便签内容发生改变所 触发的事件 + * 函数实现:如下注释 + */ + public void onTextChange(int index, boolean hasText) { + if (index >= mEditTextList.getChildCount()) { + Log.e(TAG, "Wrong index, should not happen"); + return; + //越界报错 + } + if(hasText) { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE); + } else { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE); + } + //如果内容不为空则将其子编辑框可见性置为可见,否则不可见 + } + + /* + * 函数功能:检查模式和列表模式的切换 + * 函数实现:如下注释 + */ + public void onCheckListModeChanged(int oldMode, int newMode) { + if (newMode == TextNote.MODE_CHECK_LIST) { + switchToListMode(mNoteEditor.getText().toString()); + //检查模式切换到列表模式 + } else { + if (!getWorkingText()) { + mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", + "")); + } + //若是获取到文本就改变其检查标记 + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mEditTextList.setVisibility(View.GONE); + mNoteEditor.setVisibility(View.VISIBLE); + //修改文本编辑器的内容和可见性 + } + } + + /* + * 函数功能:设置勾选选项表并返回是否勾选的标记 + * 函数实现:如下注释 + */ + private boolean getWorkingText() { + boolean hasChecked = false; + //初始化check标记 + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + // 若模式为CHECK_LIST + StringBuilder sb = new StringBuilder(); + //创建可变字符串 + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + //遍历所有子编辑框的视图 + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + if (!TextUtils.isEmpty(edit.getText())) { + //若文本不为空 + if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { + //该选项框已打钩 + sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); + hasChecked = true; + //扩展字符串为已打钩并把标记置true + } else { + sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); + //扩展字符串添加未打钩 + } + } + } + mWorkingNote.setWorkingText(sb.toString()); + //利用编辑好的字符串设置运行便签的内容 + } else { + mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + // 若不是该模式直接用编辑器中的内容设置运行中标签的内容 + } + return hasChecked; + } + + /* + * 函数功能:保存便签 + * 函数实现:如下注释 + */ + private boolean saveNote() { + getWorkingText(); + boolean saved = mWorkingNote.saveNote(); + //运行 getWorkingText()之后保存 + if (saved) { + /** + * There are two modes from List view to edit view, open one note, + * create/edit a node. Opening node requires to the original + * position in the list when back from edit view, while creating a + * new node requires to the top of the list. This code + * {@link #RESULT_OK} is used to identify the create/edit state + */ + //如英文注释所说链接RESULT_OK是为了识别保存的2种情况,一是创建后保存,二是修改后保存 + setResult(RESULT_OK); + } + return saved; + } + + /* + * 函数功能:将便签发送至桌面 + * 函数实现:如下注释 + */ + private void sendToDesktop() { + /** + * Before send message to home, we should make sure that current + * editing note is exists in databases. So, for new note, firstly + * save it + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + //若不存在数据也就是新的标签就保存起来先 + } + + if (mWorkingNote.getNoteId() > 0) { + //若是有内容 + Intent sender = new Intent(); + Intent shortcutIntent = new Intent(this, NoteEditActivity.class); + //建立发送到桌面的连接器 + shortcutIntent.setAction(Intent.ACTION_VIEW); + //链接为一个视图 + shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + makeShortcutIconTitle(mWorkingNote.getContent())); + sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); + sender.putExtra("duplicate", true); + //将便签的相关信息都添加到要发送的文件里 + sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + //设置sneder的行为是发送 + showToast(R.string.info_note_enter_desktop); + sendBroadcast(sender); + //显示到桌面 + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Send to desktop error"); + showToast(R.string.error_note_empty_for_send_to_desktop); + //空便签直接报错 + } + } + + + private String makeShortcutIconTitle(String content) { + content = content.replace(TAG_CHECKED, ""); + content = content.replace(TAG_UNCHECKED, ""); + return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, + SHORTCUT_ICON_TITLE_MAX_LEN) : content; + } + + private void showToast(int resId) { + showToast(resId, Toast.LENGTH_SHORT); + } + + private void showToast(int resId, int duration) { + Toast.makeText(this, resId, duration).show(); + } + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + //重写onActivityResult()来处理返回的数据 + protected void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + ContentResolver resolver = getContentResolver(); + switch (requestCode) { + case PHOTO_REQUEST: + Uri originalUri = intent.getData(); //1.获得图片的真实路径 + Bitmap bitmap = null; + try { + bitmap = BitmapFactory.decodeStream(resolver.openInputStream(originalUri));//2.解码图片 + } catch (FileNotFoundException e) { + Log.d(TAG, "onActivityResult: get file_exception"); + e.printStackTrace(); + } + + if(bitmap != null){ + //3.根据Bitmap对象创建ImageSpan对象 + Log.d(TAG, "onActivityResult: bitmap is not null"); + ImageSpan imageSpan = new ImageSpan(NoteEditActivity.this, bitmap); + String path = getPath(this,originalUri); + //4.使用[local][/local]将path括起来,用于之后方便识别图片路径在note中的位置 + String img_fragment= "[local]" + path + "[/local]"; + //创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像 + SpannableString spannableString = new SpannableString(img_fragment); + spannableString.setSpan(imageSpan, 0, img_fragment.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + //5.将选择的图片追加到EditText中光标所在位置 + NoteEditText e = (NoteEditText) findViewById(R.id.note_edit_view); + int index = e.getSelectionStart(); //获取光标所在位置 + Log.d(TAG, "Index是: " + index); + Editable edit_text = e.getEditableText(); + edit_text.insert(index, spannableString); //将图片插入到光标所在位置 + + mWorkingNote.mContent = e.getText().toString(); + //6.把改动提交到数据库中,两个数据库表都要改的 + ContentResolver contentResolver = getContentResolver(); + ContentValues contentValues = new ContentValues(); + final long id = mWorkingNote.getNoteId(); + contentValues.put("snippet",mWorkingNote.mContent); + contentResolver.update(Uri.parse("content://micode_notes/note"), contentValues,"_id=?",new String[]{""+id}); + ContentValues contentValues1 = new ContentValues(); + contentValues1.put("content",mWorkingNote.mContent); + contentResolver.update(Uri.parse("content://micode_notes/data"), contentValues1,"mime_type=? and note_id=?", new String[]{"vnd.android.cursor.item/text_note",""+id}); + + }else{ + Toast.makeText(NoteEditActivity.this, "获取图片失败", Toast.LENGTH_SHORT).show(); + } + break; + default: + break; + } + } + + + //获取文件的real path + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + public String getPath(final Context context, final Uri uri) { + + final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + + // DocumentProvider + if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) { + // ExternalStorageProvider +// if (isExternalStorageDocument(uri)) { +// final String docId = DocumentsContract.getDocumentId(uri); +// final String[] split = docId.split(":"); +// final String type = split[0]; +// +// if ("primary".equalsIgnoreCase(type)) { +// return Environment.getExternalStorageDirectory() + "/" + split[1]; +// } +// } +// // DownloadsProvider +// else if (isDownloadsDocument(uri)) { +// final String id = DocumentsContract.getDocumentId(uri); +// final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id)); +// return getDataColumn(context, contentUri, null, null); +// } + // MediaProvider +// else + if (isMediaDocument(uri)) { + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + + Uri contentUri = null; + if ("image".equals(type)) { + contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + } + + final String selection = "_id=?"; + final String[] selectionArgs = new String[]{split[1]}; + + return getDataColumn(context, contentUri, selection, selectionArgs); + } + } + // Media + else if ("content".equalsIgnoreCase(uri.getScheme())) { + return getDataColumn(context, uri, null, null); + } + // File + else if ("file".equalsIgnoreCase(uri.getScheme())) { + return uri.getPath(); + } + return null; + } + + + //获取数据列_获取此 Uri 的数据列的值。这对MediaStore Uris 和其他基于文件的 ContentProvider。 + public String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) { + + Cursor cursor = null; + final String column = "_data"; + final String[] projection = {column}; + + try { + cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); + if (cursor != null && cursor.moveToFirst()) { + final int column_index = cursor.getColumnIndexOrThrow(column); + return cursor.getString(column_index); + } + } finally { + if (cursor != null) + cursor.close(); + } + return null; + } + + + //是否为外部存储文件 +// public boolean isExternalStorageDocument(Uri uri) { +// return "com.android.externalstorage.documents".equals(uri.getAuthority()); +// } +// +// //是否为下载文件 +// public boolean isDownloadsDocument(Uri uri) { +// return "com.android.providers.downloads.documents".equals(uri.getAuthority()); +// } + + //是否为媒体文件 + public boolean isMediaDocument(Uri uri) { + return "com.android.providers.media.documents".equals(uri.getAuthority()); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditText.java b/app/src/main/java/net/micode/notes/ui/NoteEditText.java new file mode 100644 index 0000000..917608c --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -0,0 +1,288 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.graphics.Rect; +import android.text.Layout; +import android.text.Selection; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.widget.EditText; + +import net.micode.notes.R; + +import java.util.HashMap; +import java.util.Map; + +//继承edittext,设置便签设置文本框 +public class NoteEditText extends EditText { + private static final String TAG = "NoteEditText"; + private int mIndex; + private int mSelectionStartBeforeDelete; + + private static final String SCHEME_TEL = "tel:"; + private static final String SCHEME_HTTP = "http:"; + private static final String SCHEME_EMAIL = "mailto:"; + + ///建立一个字符和整数的hash表,用于链接电话,网站,还有邮箱 + private static final Map sSchemaActionResMap = new HashMap(); + + static { + sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); + sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web); + sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); + } + + /** + * Call by the {@link NoteEditActivity} to delete or add edit text + */ + //在NoteEditActivity中删除或添加文本的操作,可以看做是一个文本是否被变的标记,英文注释已说明的很清楚 + public interface OnTextViewChangeListener { + /** + * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens + * and the text is null + */ + //处理删除按键时的操作 + void onEditTextDelete(int index, String text); + + /** + * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} + * happen + */ + //处理进入按键时的操作 + void onEditTextEnter(int index, String text); + + /** + * Hide or show item option when text change + */ + void onTextChange(int index, boolean hasText); + } + + private OnTextViewChangeListener mOnTextViewChangeListener; + + //根据context设置文本 + public NoteEditText(Context context) { + super(context, null);//用super引用父类变量 + mIndex = 0; + } + + //设置当前光标 + public void setIndex(int index) { + mIndex = index; + } + + //初始化文本修改标记 + public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { + mOnTextViewChangeListener = listener; + } + + //AttributeSet 百度了一下是自定义空控件属性,用于维护便签动态变化的属性 + //初始化便签 + public NoteEditText(Context context, AttributeSet attrs) { + super(context, attrs, android.R.attr.editTextStyle); + } + + // 根据defstyle自动初始化 + public NoteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated construct or stub + } + + @Override + //view里的函数,处理手机屏幕的所有事件 + /*参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息, + 例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。*/ + public boolean onTouchEvent(MotionEvent event) { + switch (event.getAction()) { + //重写了需要处理屏幕被按下的事件 + case MotionEvent.ACTION_DOWN: + //跟新当前坐标值 + int x = (int) event.getX(); + int y = (int) event.getY(); + x -= getTotalPaddingLeft(); + y -= getTotalPaddingTop(); + x += getScrollX(); + y += getScrollY(); + + //用布局控件layout根据x,y的新值设置新的位置 + Layout layout = getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + + //更新光标新的位置 + Selection.setSelection(getText(), off); + break; + } + + return super.onTouchEvent(event); + } + + @Override + /* + * 函数功能:处理用户按下一个键盘按键时会触发 的事件 + * 实现过程:如下注释 + */ + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + //根据按键的 Unicode 编码值来处理 + case KeyEvent.KEYCODE_ENTER: + //“进入”按键 + if (mOnTextViewChangeListener != null) { + return false; + } + break; + case KeyEvent.KEYCODE_DEL: + //“删除”按键 + mSelectionStartBeforeDelete = getSelectionStart(); + break; + default: + break; + } + //继续执行父类的其他点击事件 + return super.onKeyDown(keyCode, event); + } + + @Override + /* + * 函数功能:处理用户松开一个键盘按键时会触发 的事件 + * 实现方式:如下注释 + */ + public boolean onKeyUp(int keyCode, KeyEvent event) { + switch (keyCode) { + //根据按键的 Unicode 编码值来处理,有删除和进入2种操作 + case KeyEvent.KEYCODE_DEL: + if (mOnTextViewChangeListener != null) { + //若是被修改过 + if (0 == mSelectionStartBeforeDelete && mIndex != 0) { + //若之前有被修改并且文档不为空 + mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); + //利用上文OnTextViewChangeListener对KEYCODE_DEL按键情况的删除函数进行删除 + return true; + } + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + //其他情况报错,文档的改动监听器并没有建立 + } + break; + case KeyEvent.KEYCODE_ENTER: + //同上也是分为监听器是否建立2种情况 + if (mOnTextViewChangeListener != null) { + int selectionStart = getSelectionStart(); + //获取当前位置 + String text = getText().subSequence(selectionStart, length()).toString(); + //获取当前文本 + setText(getText().subSequence(0, selectionStart)); + //根据获取的文本设置当前文本 + mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); + //当{@link KeyEvent#KEYCODE_ENTER}添加新文本 + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + //其他情况报错,文档的改动监听器并没有建立 + } + break; + default: + break; + } + //继续执行父类的其他按键弹起的事件 + return super.onKeyUp(keyCode, event); + } + + @Override + /* + * 函数功能:当焦点发生变化时,会自动调用该方法来处理焦点改变的事件 + * 实现方式:如下注释 + * 参数:focused表示触发该事件的View是否获得了焦点,当该控件获得焦点时,Focused等于true,否则等于false。 + direction表示焦点移动的方向,用数值表示 + Rect:表示在触发事件的View的坐标系中,前一个获得焦点的矩形区域,即表示焦点是从哪里来的。如果不可用则为null + */ + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (mOnTextViewChangeListener != null) { + //若监听器已经建立 + if (!focused && TextUtils.isEmpty(getText())) { + //获取到焦点并且文本不为空 + mOnTextViewChangeListener.onTextChange(mIndex, false); + //mOnTextViewChangeListener子函数,置false隐藏事件选项 + } else { + mOnTextViewChangeListener.onTextChange(mIndex, true); + //mOnTextViewChangeListener子函数,置true显示事件选项 + } + } + //继续执行父类的其他焦点变化的事件 + super.onFocusChanged(focused, direction, previouslyFocusedRect); + } + + @Override + /* + * 函数功能:生成上下文菜单 + * 函数实现:如下注释 + */ + protected void onCreateContextMenu(ContextMenu menu) { + if (getText() instanceof Spanned) { + //有文本存在 + int selStart = getSelectionStart(); + int selEnd = getSelectionEnd(); + //获取文本开始和结尾位置 + + int min = Math.min(selStart, selEnd); + int max = Math.max(selStart, selEnd); + //获取开始到结尾的最大值和最小值 + + final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); + //设置url的信息的范围值 + if (urls.length == 1) { + int defaultResId = 0; + for (String schema : sSchemaActionResMap.keySet()) { + //获取计划表中所有的key值 + if (urls[0].getURL().indexOf(schema) >= 0) { + //若url可以添加则在添加后将defaultResId置为key所映射的值 + defaultResId = sSchemaActionResMap.get(schema); + break; + } + } + + if (defaultResId == 0) { + //defaultResId == 0则说明url并没有添加任何东西,所以置为连接其他SchemaActionResMap的值 + defaultResId = R.string.note_link_other; + } + + //建立菜单 + menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( + new OnMenuItemClickListener() { + //新建按键监听器 + public boolean onMenuItemClick(MenuItem item) { + // goto a new intent + urls[0].onClick(NoteEditText.this); + //根据相应的文本设置菜单的按键 + return true; + } + }); + } + } + //继续执行父类的其他菜单创建的事件 + super.onCreateContextMenu(menu); + } +} + diff --git a/app/src/main/java/net/micode/notes/ui/NoteItemData.java b/app/src/main/java/net/micode/notes/ui/NoteItemData.java new file mode 100644 index 0000000..6a1091e --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; + +import net.micode.notes.data.Contact; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.DataUtils; + + +public class NoteItemData { + static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.CREATED_DATE, + NoteColumns.HAS_ATTACHMENT, + NoteColumns.MODIFIED_DATE, + NoteColumns.NOTES_COUNT, + NoteColumns.PARENT_ID, + NoteColumns.SNIPPET, + NoteColumns.TYPE, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + }; + //常量标记和数据就不一一标记了,意义翻译基本就知道 + private static final int ID_COLUMN = 0; + private static final int ALERTED_DATE_COLUMN = 1; + private static final int BG_COLOR_ID_COLUMN = 2; + private static final int CREATED_DATE_COLUMN = 3; + private static final int HAS_ATTACHMENT_COLUMN = 4; + private static final int MODIFIED_DATE_COLUMN = 5; + private static final int NOTES_COUNT_COLUMN = 6; + private static final int PARENT_ID_COLUMN = 7; + private static final int SNIPPET_COLUMN = 8; + private static final int TYPE_COLUMN = 9; + private static final int WIDGET_ID_COLUMN = 10; + private static final int WIDGET_TYPE_COLUMN = 11; + + private long mId; + private long mAlertDate; + private int mBgColorId; + private long mCreatedDate; + private boolean mHasAttachment; + private long mModifiedDate; + private int mNotesCount; + private long mParentId; + private String mSnippet; + private int mType; + private int mWidgetId; + private int mWidgetType; + private String mName; + private String mPhoneNumber; + + private boolean mIsLastItem; + private boolean mIsFirstItem; + private boolean mIsOnlyOneItem; + private boolean mIsOneNoteFollowingFolder; + private boolean mIsMultiNotesFollowingFolder; + //初始化NoteItemData,主要利用光标cursor获取的东西 + public NoteItemData(Context context, Cursor cursor) { + //getxxx为转换格式 + mId = cursor.getLong(ID_COLUMN); + mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); + mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN); + mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false; + mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN); + mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); + mParentId = cursor.getLong(PARENT_ID_COLUMN); + mSnippet = cursor.getString(SNIPPET_COLUMN); + mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace( + NoteEditActivity.TAG_UNCHECKED, ""); + mType = cursor.getInt(TYPE_COLUMN); + mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + //初始化电话号码的信息 + mPhoneNumber = ""; + if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { + mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); + if (!TextUtils.isEmpty(mPhoneNumber)) { + mName = Contact.getContact(context, mPhoneNumber); + if (mName == null) { + mName = mPhoneNumber; + } + } + } + + if (mName == null) { + mName = ""; + } + checkPostion(cursor); + } + + ///根据鼠标的位置设置标记,和位置 + private void checkPostion(Cursor cursor) { + //初始化几个标记,cursor具体功能笔记中已提到,不一一叙述 + mIsLastItem = cursor.isLast() ? true : false; + mIsFirstItem = cursor.isFirst() ? true : false; + mIsOnlyOneItem = (cursor.getCount() == 1); + //初始化“多重子文件”“单一子文件”2个标记 + mIsMultiNotesFollowingFolder = false; + mIsOneNoteFollowingFolder = false; + + //主要是设置上诉2标记 + if (mType == Notes.TYPE_NOTE && !mIsFirstItem) {//若是note格式并且不是第一个元素 + int position = cursor.getPosition(); + if (cursor.moveToPrevious()) {//获取光标位置后看上一行 + if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER + || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) {//若光标满足系统或note格式 + if (cursor.getCount() > (position + 1)) { + mIsMultiNotesFollowingFolder = true;//若是数据行数大于但前位置+1则设置成正确 + } else { + mIsOneNoteFollowingFolder = true;//否则单一文件夹标记为true + } + } + if (!cursor.moveToNext()) {//若不能再往下走则报错 + throw new IllegalStateException("cursor move to previous but can't move back"); + } + } + } + } + + public boolean isOneFollowingFolder() { + return mIsOneNoteFollowingFolder; + } + + public boolean isMultiFollowingFolder() { + return mIsMultiNotesFollowingFolder; + } + + public boolean isLast() { + return mIsLastItem; + } + + public String getCallName() { + return mName; + } + + public boolean isFirst() { + return mIsFirstItem; + } + + public boolean isSingle() { + return mIsOnlyOneItem; + } + + public long getId() { + return mId; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getCreatedDate() { + return mCreatedDate; + } + + public boolean hasAttachment() { + return mHasAttachment; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorId() { + return mBgColorId; + } + + public long getParentId() { + return mParentId; + } + + public int getNotesCount() { + return mNotesCount; + } + + public long getFolderId () { + return mParentId; + } + + public int getType() { + return mType; + } + + public int getWidgetType() { + return mWidgetType; + } + + public int getWidgetId() { + return mWidgetId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean hasAlert() { + return (mAlertDate > 0); + } + //若数据父id为保存至文件夹模式的id且满足电话号码单元不为空,则isCallRecord为true + public boolean isCallRecord() { + return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); + } + + public static int getNoteType(Cursor cursor) { + return cursor.getInt(TYPE_COLUMN); + } +} diff --git a/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/app/src/main/java/net/micode/notes/ui/NotesListActivity.java new file mode 100644 index 0000000..cc0db02 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -0,0 +1,1028 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatActivity; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Display; +import android.view.HapticFeedbackConstants; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnCreateContextMenuListener; +import android.view.View.OnTouchListener; +import android.view.inputmethod.InputMethodManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupMenu; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.tool.BackupUtils; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; + +public class NotesListActivity extends AppCompatActivity implements OnClickListener, OnItemLongClickListener { + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + + private static final int FOLDER_LIST_QUERY_TOKEN = 1; + + private static final int MENU_FOLDER_DELETE = 0; + + private static final int MENU_FOLDER_VIEW = 1; + + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; + + private enum ListEditState { + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + }; + + private ListEditState mState; + + private BackgroundQueryHandler mBackgroundQueryHandler; + + private NotesListAdapter mNotesListAdapter; + + private ListView mNotesListView; + + private Button mAddNewNote; + + private boolean mDispatch; + + private int mOriginY; + + private int mDispatchY; + + private TextView mTitleBar; + + private long mCurrentFolderId; + + private ContentResolver mContentResolver; + + private ModeCallback mModeCallBack; + + private static final String TAG = "NotesListActivity"; + + public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + + private NoteItemData mFocusNoteDataItem; + + +//主界面,一进入就是这个界面 + /** + * @author k + * + */ + public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { //没有用特定的标签加注释。。。感觉没有什么用 + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + + private static final int FOLDER_LIST_QUERY_TOKEN = 1; + + private static final int MENU_FOLDER_DELETE = 0; + + private static final int MENU_FOLDER_VIEW = 1; + + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; //单行超过80个字符 + + @Override + // 创建类 + protected void onCreate(final Bundle savedInstanceState) { //需要是final类型 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 + // final类不能被继承,没有子类,final类中的方法默认是final的。 + //final方法不能被子类的方法覆盖,但可以被继承。 + //final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 + //final不能用于修饰构造方法。 + super.onCreate(savedInstanceState); // 调用父类的onCreate函数 + setContentView(R.layout.note_list); + initResources(); + + /** + * Insert an introduction when user firstly use this application + */ + setAppInfoFromRawRes(); + } + + @Override + // 返回一些子模块完成的数据交给主Activity处理 + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // 结果值 和 要求值 符合要求 + if (resultCode == RESULT_OK + && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { + mNotesListAdapter.changeCursor(null); + } else { + super.onActivityResult(requestCode, resultCode, data); + // 调用 Activity 的onActivityResult() + } + } + + private void setAppInfoFromRawRes() { + // Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。 + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + StringBuilder sb = new StringBuilder(); + InputStream in = null; + try { + // 把资源文件放到应用程序的/raw/raw下,那么就可以在应用中使用getResources获取资源后, + // 以openRawResource方法(不带后缀的资源文件名)打开这个文件。 + in = getResources().openRawResource(R.raw.introduction); + if (in != null) { + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + char[] buf = new char[1024]; // 自行定义的数值,使用者不知道有什么意义 + int len = 0; + while ((len = br.read(buf)) > 0) { + sb.append(buf, 0, len); + } + } else { + Log.e(TAG, "Read introduction file error"); + return; + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + // 创建空的WorkingNote + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, + AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, + ResourceParser.RED); + note.setWorkingText(sb.toString()); + if (note.saveNote()) { + // 更新保存note的信息 + sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); + } else { + Log.e(TAG, "Save introduction note error"); + return; + } + } + } + + + protected void onStart() { + super.onStart(); + startAsyncNotesListQuery(); + } + + // 初始化资源 + private void initResources() { + mContentResolver = this.getContentResolver(); // 获取应用程序的数据,得到类似数据表的东西 + mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + + // findViewById 是安卓编程的定位函数,主要是引用.R文件里的引用名 + mNotesListView = (ListView) findViewById(R.id.notes_list); // 绑定XML中的ListView,作为Item的容器 + mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), + null, false); + mNotesListView.setOnItemClickListener(new OnListItemClickListener()); + mNotesListView.setOnItemLongClickListener(this); + mNotesListAdapter = new NotesListAdapter(this); + mNotesListView.setAdapter(mNotesListAdapter); + mAddNewNote = (Button) findViewById(R.id.btn_new_note);// 在activity中要获取该按钮 + mAddNewNote.setOnClickListener(this); + mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); + mDispatch = false; + mDispatchY = 0; + mOriginY = 0; + mTitleBar = (TextView) findViewById(R.id.tv_title_bar); + mState = ListEditState.NOTE_LIST; + mModeCallBack = new ModeCallback(); + } + + // 继承自ListView.MultiChoiceModeListener 和 OnMenuItemClickListener + private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + private DropdownMenu mDropDownMenu; + private ActionMode mActionMode; + private MenuItem mMoveMenu; + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + getMenuInflater().inflate(R.menu.note_list_options, menu); + menu.findItem(R.id.delete).setOnMenuItemClickListener(this); + mMoveMenu = menu.findItem(R.id.move); + if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER + || DataUtils.getUserFolderCount(mContentResolver) == 0) { + mMoveMenu.setVisible(false); + } else { + mMoveMenu.setVisible(true); + mMoveMenu.setOnMenuItemClickListener(this); + } + mActionMode = mode; + mNotesListAdapter.setChoiceMode(true); + mNotesListView.setLongClickable(false); + mAddNewNote.setVisibility(View.GONE); + + View customView = LayoutInflater.from(NotesListActivity.this).inflate( + R.layout.note_list_dropdown_menu, null); + mode.setCustomView(customView); + mDropDownMenu = new DropdownMenu(NotesListActivity.this, + (Button) customView.findViewById(R.id.selection_menu), + R.menu.note_list_dropdown); + mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + public boolean onMenuItemClick(final MenuItem item) { + mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); + updateMenu(); + return true; + } + + }); + return true; + } + + // 更新菜单 + private void updateMenu() { + int selectedCount = mNotesListAdapter.getSelectedCount(); + // Update dropdown menu + String format = getResources().getString(R.string.menu_select_title, selectedCount); + mDropDownMenu.setTitle(format); // 更改标题 + MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); + if (item != null) { + if (mNotesListAdapter.isAllSelected()) { + item.setChecked(true); + item.setTitle(R.string.menu_deselect_all); + } else { + item.setChecked(false); + item.setTitle(R.string.menu_select_all); + } + } + } + + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + // TODO Auto-generated method stub + return false; + } + + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + // TODO Auto-generated method stub + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + mNotesListAdapter.setChoiceMode(false); + mNotesListView.setLongClickable(true); + mAddNewNote.setVisibility(View.VISIBLE); + } + + public void finishActionMode() { + mActionMode.finish(); + } + + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, + boolean checked) { + mNotesListAdapter.setCheckedItem(position, checked); + updateMenu(); + } + + + public boolean onMenuItemClick(MenuItem item) { + if (mNotesListAdapter.getSelectedCount() == 0) { + Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), + Toast.LENGTH_SHORT).show(); + return true; + } + + switch (item.getItemId()) { + case R.id.delete: + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_notes, + mNotesListAdapter.getSelectedCount())); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.move: + startQueryDestinationFolders(); + break; + default: + return false; + } + return true; + } + } + + private class NewNoteOnTouchListener implements OnTouchListener { + + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + Display display = getWindowManager().getDefaultDisplay(); + int screenHeight = display.getHeight(); + int newNoteViewHeight = mAddNewNote.getHeight(); + int start = screenHeight - newNoteViewHeight; + int eventY = start + (int) event.getY(); + /** + * Minus TitleBar's height + */ + if (mState == ListEditState.SUB_FOLDER) { + eventY -= mTitleBar.getHeight(); + start -= mTitleBar.getHeight(); + } + /** + * HACKME:When click the transparent part of "New Note" button, dispatch + * the event to the list view behind this button. The transparent part of + * "New Note" button could be expressed by formula y=-0.12x+94锛圲nit:pixel锛� + * and the line top of the button. The coordinate based on left of the "New + * Note" button. The 94 represents maximum height of the transparent part. + * Notice that, if the background of the button changes, the formula should + * also change. This is very bad, just for the UI designer's strong requirement. + */ + if (event.getY() < (event.getX() * (-0.12) + 94)) { + View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 + - mNotesListView.getFooterViewsCount()); + if (view != null && view.getBottom() > start + && (view.getTop() < (start + 94))) { + mOriginY = (int) event.getY(); + mDispatchY = eventY; + event.setLocation(event.getX(), mDispatchY); + mDispatch = true; + return mNotesListView.dispatchTouchEvent(event); + } + } + break; + } + case MotionEvent.ACTION_MOVE: { + if (mDispatch) { + mDispatchY += (int) event.getY() - mOriginY; + event.setLocation(event.getX(), mDispatchY); + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + default: { + if (mDispatch) { + event.setLocation(event.getX(), mDispatchY); + mDispatch = false; + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + } + return false; + } + + } + + ; + + + private void startAsyncNotesListQuery() { + String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION + : NORMAL_SELECTION; + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[]{ + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + + private final class BackgroundQueryHandler extends AsyncQueryHandler { + public BackgroundQueryHandler(ContentResolver contentResolver) { + super(contentResolver); + } + + @Override + protected void onQueryComplete(int token, Object cookie, Cursor cursor) { + switch (token) { + case FOLDER_NOTE_LIST_QUERY_TOKEN: + mNotesListAdapter.changeCursor(cursor); + break; + case FOLDER_LIST_QUERY_TOKEN: + if (cursor != null && cursor.getCount() > 0) { + showFolderListMenu(cursor); + } else { + Log.e(TAG, "Query folder failed"); + } + break; + default: + return; + } + } + } + + private void showFolderListMenu(Cursor cursor) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(R.string.menu_title_select_folder); + final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); + builder.setAdapter(adapter, new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + DataUtils.batchMoveToFolder(mContentResolver, + mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); + Toast.makeText( + NotesListActivity.this, + getString(R.string.format_move_notes_to_folder, + mNotesListAdapter.getSelectedCount(), + adapter.getFolderName(NotesListActivity.this, which)), + Toast.LENGTH_SHORT).show(); + mModeCallBack.finishActionMode(); + } + }); + builder.show(); + } + + + private void createNewNote() { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); + this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); + } + + private void batchDelete() { + new AsyncTask>() { + protected HashSet doInBackground(Void... unused) { + HashSet widgets = mNotesListAdapter.getSelectedWidget(); + if (!isSyncMode()) { + // if not synced, delete notes directly + if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter + .getSelectedItemIds())) { + } else { + Log.e(TAG, "Delete notes error, should not happens"); + } + } else { + // in sync mode, we'll move the deleted note into the trash + // folder + if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter + .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + return widgets; + } + + @Override + protected void onPostExecute(HashSet widgets) { + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + + private void deleteFolder(long folderId) { + if (folderId == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Wrong folder id, should not happen " + folderId); + return; + } + + HashSet ids = new HashSet(); + ids.add(folderId); + HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, + folderId); + if (!isSyncMode()) { + // if not synced, delete folder directly + DataUtils.batchDeleteNotes(mContentResolver, ids); + } else { + // in sync mode, we'll move the deleted folder into the trash folder + DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); + } + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + } + + private void openNode(NoteItemData data) { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + + private void openFolder(NoteItemData data) { + mCurrentFolderId = data.getId(); + startAsyncNotesListQuery(); + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mState = ListEditState.CALL_RECORD_FOLDER; + mAddNewNote.setVisibility(View.GONE); + } else { + mState = ListEditState.SUB_FOLDER; + } + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mTitleBar.setText(R.string.call_record_folder_name); + } else { + mTitleBar.setText(data.getSnippet()); + } + mTitleBar.setVisibility(View.VISIBLE); + } + + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_new_note: + createNewNote(); + break; + default: + break; + } + } + + private void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (inputMethodManager != null) { + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + } + + private void hideSoftInput(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + private void showCreateOrModifyFolderDialog(final boolean create) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); + final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); + showSoftInput(); + if (!create) { + if (mFocusNoteDataItem != null) { + etName.setText(mFocusNoteDataItem.getSnippet()); + builder.setTitle(getString(R.string.menu_folder_change_name)); + } else { + Log.e(TAG, "The long click data item is null"); + return; + } + } else { + etName.setText(""); + builder.setTitle(this.getString(R.string.menu_create_folder)); + } + + builder.setPositiveButton(android.R.string.ok, null); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + hideSoftInput(etName); + } + }); + + final Dialog dialog = builder.setView(view).show(); + final Button positive = (Button) dialog.findViewById(android.R.id.button1); + positive.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + hideSoftInput(etName); + String name = etName.getText().toString(); + if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), + Toast.LENGTH_LONG).show(); + etName.setSelection(0, etName.length()); + return; + } + if (!create) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID + + "=?", new String[]{ + String.valueOf(mFocusNoteDataItem.getId()) + }); + } + } else if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); + } + dialog.dismiss(); + } + }); + + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } + /** + * When the name edit text is null, disable the positive button + */ + etName.addTextChangedListener(new TextWatcher() { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } else { + positive.setEnabled(true); + } + } + + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + }); + } + + + @Override + /* (non-Javadoc) + * @see android.app.Activity#onBackPressed() + * 按返回键时根据情况更改类中的数据 + */ + @Override + public void onBackPressed() { + switch (mState) { + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + super.onBackPressed(); + break; + default: + break; + } + } + + /** + * @param appWidgetId + * @param appWidgetType 根据不同类型的widget更新插件,通过intent传送数据 + */ + private void updateWidget(int appWidgetId, int appWidgetType) { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (appWidgetType == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{ + appWidgetId + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + /** + * 声明监听器,建立菜单,包括名称,视图,删除操作,更改名称操作; + */ + private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + if (mFocusNoteDataItem != null) { + menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); + menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); + menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); + menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); + } + } + }; + + @Override + public void onContextMenuClosed(Menu menu) { + if (mNotesListView != null) { + mNotesListView.setOnCreateContextMenuListener(null); + } + super.onContextMenuClosed(menu); + } + + /* (non-Javadoc) + * @see android.app.Activity#onContextItemSelected(android.view.MenuItem) + * 针对menu中不同的选择进行不同的处理,里面详细注释 + */ + @Override + public boolean onContextItemSelected(MenuItem item) { + if (mFocusNoteDataItem == null) { + Log.e(TAG, "The long click data item is null"); + return false; + } + switch (item.getItemId()) { + case MENU_FOLDER_VIEW: + openFolder(mFocusNoteDataItem);//打开对应文件 + break; + case MENU_FOLDER_DELETE: + AlertDialog.Builder builder = new AlertDialog.Builder(this);//设置确认是否删除的对话框 + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_folder)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteFolder(mFocusNoteDataItem.getId()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show();//显示对话框 + break; + case MENU_FOLDER_CHANGE_NAME: + showCreateOrModifyFolderDialog(false); + break; + default: + break; + } + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.clear(); + if (mState == ListEditState.NOTE_LIST) { + getMenuInflater().inflate(R.menu.note_list, menu); + // set sync or sync_cancel + menu.findItem(R.id.menu_sync).setTitle( + GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); + } else if (mState == ListEditState.SUB_FOLDER) { + getMenuInflater().inflate(R.menu.sub_folder, menu); + } else if (mState == ListEditState.CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_record_folder, menu); + } else { + Log.e(TAG, "Wrong state:" + mState); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_folder: { + showCreateOrModifyFolderDialog(true); + break; + } + case R.id.menu_export_text: { + exportNoteToText(); + break; + } + case R.id.menu_sync: { + if (isSyncMode()) { + if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { + GTaskSyncService.startSync(this); + } else { + GTaskSyncService.cancelSync(this); + } + } else { + startPreferenceActivity(); + } + break; + } + case R.id.menu_setting: { + startPreferenceActivity(); + break; + } + case R.id.menu_new_note: { + createNewNote(); + break; + } + case R.id.menu_search: + onSearchRequested(); + break; + default: + break; + } + return true; + } + + @Override + /* (non-Javadoc) + * @see android.app.Activity#onSearchRequested() + * 直接调用startSearch函数 + */ + public boolean onSearchRequested() { + startSearch(null, false, null /* appData */, false); + return true; + } + + /** + * 函数功能:实现将便签导出到文本功能 + */ + private void exportNoteToText() { + final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); + new AsyncTask() { + + @Override + protected Integer doInBackground(Void... unused) { + return backup.exportToText(); + } + + @Override + protected void onPostExecute(Integer result) { + if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_unmounted)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SUCCESS) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.success_sdcard_export)); + builder.setMessage(NotesListActivity.this.getString( + R.string.format_exported_file_location, backup + .getExportedTextFileName(), backup.getExportedTextFileDir())); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_export)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } + } + + }.execute(); + } + + /** + * @return 功能:判断是否正在同步 + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /** + * 功能:跳转到PreferenceActivity界面 + */ + private void startPreferenceActivity() { + Activity from = getParent() != null ? getParent() : this; + Intent intent = new Intent(from, NotesPreferenceActivity.class); + from.startActivityIfNeeded(intent, -1); + } + + + private class OnListItemClickListener implements OnItemClickListener { + + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + NoteItemData item = ((NotesListItem) view).getItemData(); + if (mNotesListAdapter.isInChoiceMode()) { + if (item.getType() == Notes.TYPE_NOTE) { + position = position - mNotesListView.getHeaderViewsCount(); + mModeCallBack.onItemCheckedStateChanged(null, position, id, + !mNotesListAdapter.isSelectedItem(position)); + } + return; + } + + switch (mState) { + case NOTE_LIST: + if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in NOTE_LIST"); + } + break; + case SUB_FOLDER: + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in SUB_FOLDER"); + } + break; + default: + break; + } + } + } + + } + + /** + * 查询目标文件 + */ + private void startQueryDestinationFolders() { + String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; + selection = (mState == ListEditState.NOTE_LIST) ? selection : + "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; + + mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, + null, + Notes.CONTENT_NOTE_URI, + FoldersListAdapter.PROJECTION, + selection, + new String[]{ + String.valueOf(Notes.TYPE_FOLDER), + String.valueOf(Notes.ID_TRASH_FOLER), + String.valueOf(mCurrentFolderId) + }, + NoteColumns.MODIFIED_DATE + " DESC"); + } + + /* (non-Javadoc) + * @see android.widget.AdapterView.OnItemLongClickListener#onItemLongClick(android.widget.AdapterView, android.view.View, int, long) + * 长按某一项时进行的操作 + * 如果长按的是便签,则通过ActionMode菜单实现;如果长按的是文件夹,则通过ContextMenu菜单实现; + * 具体ActionMOde菜单和ContextMenu菜单的详细见精度笔记 + */ + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { + if (mNotesListView.startActionMode(mModeCallBack) != null) { + mModeCallBack.onItemCheckedStateChanged(null, position, id, true); + mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + } else { + Log.e(TAG, "startActionMode fails"); + } + } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { + mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); + } + } + return false; + } + } diff --git a/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java new file mode 100644 index 0000000..8d5e1a0 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -0,0 +1,276 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; + +import net.micode.notes.data.Notes; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + + + +/* + * 功能:直译为便签表连接器,继承了CursorAdapter,它为cursor和ListView提供了连接的桥梁。 + * 所以NotesListAdapter实现的是鼠标和编辑便签链接的桥梁 + */ +public class NotesListAdapter extends CursorAdapter { + private static final String TAG = "NotesListAdapter"; + private Context mContext; + private HashMap mSelectedIndex; + private int mNotesCount; //便签数 + private boolean mChoiceMode; //选择模式标记 + + /* + * 桌面widget的属性,包括编号和类型 + */ + public static class AppWidgetAttribute { + public int widgetId; + public int widgetType; + }; + + /* + * 函数功能:初始化便签链接器 + * 函数实现:根据传进来的内容设置相关变量 + */ + public NotesListAdapter(Context context) { + super(context, null); //父类对象置空 + mSelectedIndex = new HashMap(); //新建选项下标的hash表 + mContext = context; + mNotesCount = 0; + } + + + @Override + /* + * 函数功能:新建一个视图来存储光标所指向的数据 + * 函数实现:使用兄弟类NotesListItem新建一个项目选项 + */ + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new NotesListItem(context); + } + + /* + * 函数功能:将已经存在的视图和鼠标指向的数据进行捆绑 + * 函数实现:如下注释 + */ + + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof NotesListItem) { + //若view是NotesListItem的一个实例 + NoteItemData itemData = new NoteItemData(context, cursor); + ((NotesListItem) view).bind(context, itemData, mChoiceMode, + isSelectedItem(cursor.getPosition())); + //则新建一个项目选项并且用bind跟将view和鼠标,内容,便签数据捆绑在一起 + } + } + + /* + * 函数功能:设置勾选框 + * 函数实现:如下注释 + */ + public void setCheckedItem(final int position, final boolean checked) { + mSelectedIndex.put(position, checked); + //根据定位和是否勾选设置下标 + notifyDataSetChanged(); + //在修改后刷新activity + } + + /* + * 函数功能:判断单选按钮是否勾选 + */ + public boolean isInChoiceMode() { + return mChoiceMode; + } + + /* + * 函数功能:设置单项选项框 + * 函数实现:重置下标并且根据参数mode设置选项 + */ + public void setChoiceMode(boolean mode) { + mSelectedIndex.clear(); + mChoiceMode = mode; + } + + /* + * 函数功能:选择全部选项 + * 函数实现:如下注释 + */ + public void selectAll(boolean checked) { + Cursor cursor = getCursor(); + //获取光标位置 + for (int i = 0; i < getCount(); i++) { + if (cursor.moveToPosition(i)) { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + setCheckedItem(i, checked); + } + } + } + //遍历所有光标可用的位置在判断为便签类型之后勾选单项框 + } + + /* + * 函数功能:建立选择项的下标列表 + * 函数实现:如下注释 + */ + public HashSet getSelectedItemIds() { + HashSet itemSet = new HashSet(); + //建立hash表 + for (Integer position : mSelectedIndex.keySet()) { + //遍历所有的关键 + if (mSelectedIndex.get(position) == true) { + //若光标位置可用 + Long id = getItemId(position); + if (id == Notes.ID_ROOT_FOLDER) { + //原文件不需要添加 + Log.d(TAG, "Wrong item id, should not happen"); + } else { + itemSet.add(id); + } + //则将id该下标假如选项集合中 + + } + } + + return itemSet; + } + + /* + * 函数功能:建立桌面Widget的选项表 + * 函数实现:如下注释 + */ + public HashSet getSelectedWidget() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Cursor c = (Cursor) getItem(position); + //以上4句和getSelectedItemIds一样,不再重复 + if (c != null) { + //光标位置可用的话就建立新的Widget属性并编辑下标和类型,最后添加到选项集中 + AppWidgetAttribute widget = new AppWidgetAttribute(); + NoteItemData item = new NoteItemData(mContext, c); + widget.widgetId = item.getWidgetId(); + widget.widgetType = item.getWidgetType(); + itemSet.add(widget); + /** + * Don't close cursor here, only the adapter could close it + */ + } else { + Log.e(TAG, "Invalid cursor"); + return null; + } + } + } + return itemSet; + } + + /* + * 函数功能:获取选项个数 + * 函数实现:如下注释 + */ + public int getSelectedCount() { + Collection values = mSelectedIndex.values(); + //首先获取选项下标的值 + if (null == values) { + return 0; + } + Iterator iter = values.iterator(); + //初始化叠加器 + int count = 0; + while (iter.hasNext()) { + if (true == iter.next()) { + //若value值为真计数+1 + count++; + } + } + return count; + } + + /* + * 函数功能:判断是否全部选中 + * 函数实现:如下注释 + */ + public boolean isAllSelected() { + int checkedCount = getSelectedCount(); + return (checkedCount != 0 && checkedCount == mNotesCount); + //获取选项数看是否等于便签的个数 + } + + /* + * 函数功能:判断是否为选项表 + * 函数实现:通过传递的下标来确定 + */ + public boolean isSelectedItem(final int position) { + if (null == mSelectedIndex.get(position)) { + return false; + } + return mSelectedIndex.get(position); + } + + @Override + /* + * 函数功能:在activity内容发生局部变动的时候回调该函数计算便签的数量 + * 函数实现:如下注释 + */ + protected void onContentChanged() { + super.onContentChanged(); + //执行基类函数 + calcNotesCount(); + } + + @Override + /* + * 函数功能:在activity光标发生局部变动的时候回调该函数计算便签的数量 + */ + public void changeCursor(Cursor cursor) { + super.changeCursor(cursor); + //执行基类函数 + calcNotesCount(); + } + + /* + * 函数功能:计算便签数量 + * + */ + private void calcNotesCount() { + mNotesCount = 0; + for (int i = 0; i < getCount(); i++) { + //获取总数同时遍历 + Cursor c = (Cursor) getItem(i); + if (c != null) { + if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { + mNotesCount++; + //若该位置不为空并且文本类型为便签就+1 + } + } else { + Log.e(TAG, "Invalid cursor"); + return; + } + //否则报错 + } + } +} + diff --git a/app/src/main/java/net/micode/notes/ui/NotesListItem.java b/app/src/main/java/net/micode/notes/ui/NotesListItem.java new file mode 100644 index 0000000..547f0c6 --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser.NoteItemBgResources; + + + +//创建便签列表项目选项 +public class NotesListItem extends LinearLayout { + private ImageView mAlert;//闹钟图片 + private TextView mTitle; //标题 + private TextView mTime; //时间 + private TextView mCallName; // + private NoteItemData mItemData; //标签数据 + private CheckBox mCheckBox; //打钩框 + + /*初始化基本信息*/ + public NotesListItem(Context context) { + super(context); //super()它的主要作用是调整调用父类构造函数的顺序 + inflate(context, R.layout.note_item, this);//Inflate可用于将一个xml中定义的布局控件找出来,这里的xml是r。layout + //findViewById用于从contentView中查找指定ID的View,转换出来的形式根据需要而定; + mAlert = (ImageView) findViewById(R.id.iv_alert_icon); + mTitle = (TextView) findViewById(R.id.tv_title); + mTime = (TextView) findViewById(R.id.tv_time); + mCallName = (TextView) findViewById(R.id.tv_name); + mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + } + + ///根据data的属性对各个控件的属性的控制,主要是可见性Visibility,内容setText,格式setTextAppearance + public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { + if (choiceMode && data.getType() == Notes.TYPE_NOTE) { + mCheckBox.setVisibility(View.VISIBLE); ///设置可见行为可见 + mCheckBox.setChecked(checked); ///格子打钩 + } else { + mCheckBox.setVisibility(View.GONE); + } + + mItemData = data; + ///设置控件属性,一共三种情况,由data的id和父id是否与保存到文件夹的id一致来决定 + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.GONE); + mAlert.setVisibility(View.VISIBLE); + //设置该textview的style + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + //settext为设置内容 + mTitle.setText(context.getString(R.string.call_record_folder_name) + + context.getString(R.string.format_folder_files_count, data.getNotesCount())); + mAlert.setImageResource(R.drawable.call_record); + } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.VISIBLE); + mCallName.setText(data.getCallName()); + mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + ///关于闹钟的设置 + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock);//图片来源的设置 + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } else { + mCallName.setVisibility(View.GONE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + ///设置title格式 + if (data.getType() == Notes.TYPE_FOLDER) { + mTitle.setText(data.getSnippet() + + context.getString(R.string.format_folder_files_count, + data.getNotesCount())); + mAlert.setVisibility(View.GONE); + } else { + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock);///设置图片来源 + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } + } + ///设置内容,获取相关时间,从data里编辑的日期中获取 + mTime. setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + + setBackground(data); + } + + //根据data的文件属性来设置背景 + private void setBackground(NoteItemData data) { + int id = data.getBgColorId(); + //,若是note型文件,则4种情况,对于4种不同情况的背景来源 + if (data.getType() == Notes.TYPE_NOTE) { + //单个数据并且只有一个子文件夹 + if (data.isSingle() || data.isOneFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); + } else if (data.isLast()) {//是最后一个数据 + setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); + } else if (data.isFirst() || data.isMultiFollowingFolder()) {//是一个数据并有多个子文件夹 + setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); + } else { + setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); + } + } else { + //若不是note直接调用文件夹的背景来源 + setBackgroundResource(NoteItemBgResources.getFolderBgRes()); + } + } + public NoteItemData getItemData() { + return mItemData; + } +} + diff --git a/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java new file mode 100644 index 0000000..6be753e --- /dev/null +++ b/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -0,0 +1,539 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.ActionBar; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; + + +/* + *该类功能:NotesPreferenceActivity,在小米便签中主要实现的是对背景颜色和字体大小的数据储存。 + * 继承了PreferenceActivity主要功能为对系统信息和配置进行自动保存的Activity + */ +public class NotesPreferenceActivity extends PreferenceActivity { + public static final String PREFERENCE_NAME = "notes_preferences"; + //优先名 + public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name"; + //同步账号 + public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time"; + //同步时间 + public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear"; + + private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key"; + //同步密码 + private static final String AUTHORITIES_FILTER_KEY = "authorities"; + //本地密码 + private PreferenceCategory mAccountCategory; + //账户分组 + private GTaskReceiver mReceiver; + //同步任务接收器 + private Account[] mOriAccounts; + //账户 + private boolean mHasAddedAccount; + //账户的hash标记 + + + @Override + /* + *函数功能:创建一个activity,在函数里要完成所有的正常静态设置 + *参数:Bundle icicle:存放了 activity 当前的状态 + *函数实现:如下注释 + */ + protected void onCreate(Bundle icicle) { + //先执行父类的创建函数 + super.onCreate(icicle); + + /* using the app icon for navigation */ + getActionBar().setDisplayHomeAsUpEnabled(true); + //给左上角图标的左边加上一个返回的图标 + + addPreferencesFromResource(R.xml.preferences); + //添加xml来源并显示 xml + mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY); + //根据同步账户关键码来初始化分组 + mReceiver = new GTaskReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); + registerReceiver(mReceiver, filter); + //初始化同步组件 + + mOriAccounts = null; + View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); + //获取listvivew,ListView的作用:用于列出所有选择 + getListView().addHeaderView(header, null, true); + //在listview组件上方添加其他组件 + } + + + + @Override + /* + * 函数功能:activity交互功能的实现,用于接受用户的输入 + * 函数实现:如下注释 + */ + protected void onResume() { + //先执行父类 的交互实现 + super.onResume(); + + // need to set sync account automatically if user has added a new + // account + if (mHasAddedAccount) { + //若用户新加了账户则自动设置同步账户 + Account[] accounts = getGoogleAccounts(); + //获取google同步账户 + if (mOriAccounts != null && accounts.length > mOriAccounts.length) { + //若原账户不为空且当前账户有增加 + for (Account accountNew : accounts) { + boolean found = false; + for (Account accountOld : mOriAccounts) { + if (TextUtils.equals(accountOld.name, accountNew.name)) { + //更新账户 + found = true; + break; + } + } + if (!found) { + setSyncAccount(accountNew.name); + //若是没有找到旧的账户,那么同步账号中就只添加新账户 + break; + } + } + } + } + + refreshUI(); + //刷新标签界面 + } + + + @Override + /* + * 函数功能:销毁一个activity + * 函数实现:如下注释 + */ + protected void onDestroy() { + if (mReceiver != null) { + unregisterReceiver(mReceiver); + //注销接收器 + } + super.onDestroy(); + //执行父类的销毁动作 + } + + /* + * 函数功能:重新设置账户信息 + * 函数实现:如下注释 + */ + private void loadAccountPreference() { + mAccountCategory.removeAll(); + //销毁所有的分组 + Preference accountPref = new Preference(this); + //建立首选项 + final String defaultAccount = getSyncAccountName(this); + accountPref.setTitle(getString(R.string.preferences_account_title)); + accountPref.setSummary(getString(R.string.preferences_account_summary)); + //设置首选项的大标题和小标题 + accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + //建立监听器 + if (!GTaskSyncService.isSyncing()) { + if (TextUtils.isEmpty(defaultAccount)) { + // the first time to set account + //若是第一次建立账户显示选择账户提示对话框 + showSelectAccountAlertDialog(); + } else { + // if the account has already been set, we need to promp + // user about the risk + //若是已经建立则显示修改对话框并进行修改操作 + showChangeAccountConfirmAlertDialog(); + } + } else { + //若在没有同步的情况下,则在toast中显示不能修改 + Toast.makeText(NotesPreferenceActivity.this, + R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT) + .show(); + } + return true; + } + }); + + //根据新建首选项编辑新的账户分组 + mAccountCategory.addPreference(accountPref); + } + + + + /* + *函数功能:设置按键的状态和最后同步的时间 + *函数实现:如下注释 + */ + private void loadSyncButton() { + Button syncButton = (Button) findViewById(R.id.preference_sync_button); + TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + //获取同步按钮控件和最终同步时间的的窗口 + // set button state + //设置按钮的状态 + if (GTaskSyncService.isSyncing()) { + //若是在同步状态下 + syncButton.setText(getString(R.string.preferences_button_sync_cancel)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.cancelSync(NotesPreferenceActivity.this); + } + }); + //设置按钮显示的文本为“取消同步”以及监听器 + } else { + syncButton.setText(getString(R.string.preferences_button_sync_immediately)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.startSync(NotesPreferenceActivity.this); + } + }); + //若是不同步则设置按钮显示的文本为“立即同步”以及对应监听器 + } + syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this))); + //设置按键可用还是不可用 + + // set last sync time + // 设置最终同步时间 + if (GTaskSyncService.isSyncing()) { + //若是在同步的情况下 + lastSyncTimeView.setText(GTaskSyncService.getProgressString()); + lastSyncTimeView.setVisibility(View.VISIBLE); + // 根据当前同步服务器设置时间显示框的文本以及可见性 + } else { + //若是非同步情况 + long lastSyncTime = getLastSyncTime(this); + if (lastSyncTime != 0) { + lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time, + DateFormat.format(getString(R.string.preferences_last_sync_time_format), + lastSyncTime))); + lastSyncTimeView.setVisibility(View.VISIBLE); + //则根据最后同步时间的信息来编辑时间显示框的文本内容和可见性 + } else { + //若时间为空直接设置为不可见状态 + lastSyncTimeView.setVisibility(View.GONE); + } + } + } + /* + *函数功能:刷新标签界面 + *函数实现:调用上文设置账号和设置按键两个函数来实现 + */ + private void refreshUI() { + loadAccountPreference(); + loadSyncButton(); + } + + /* + * 函数功能:显示账户选择的对话框并进行账户的设置 + * 函数实现:如下注释 + */ + private void showSelectAccountAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + //创建一个新的对话框 + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_select_account_title)); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); + //设置标题以及子标题的内容 + dialogBuilder.setCustomTitle(titleView); + dialogBuilder.setPositiveButton(null, null); + //设置对话框的自定义标题,建立一个YES的按钮 + Account[] accounts = getGoogleAccounts(); + String defAccount = getSyncAccountName(this); + //获取同步账户信息 + mOriAccounts = accounts; + mHasAddedAccount = false; + + if (accounts.length > 0) { + //若账户不为空 + CharSequence[] items = new CharSequence[accounts.length]; + final CharSequence[] itemMapping = items; + int checkedItem = -1; + int index = 0; + for (Account account : accounts) { + if (TextUtils.equals(account.name, defAccount)) { + checkedItem = index; + //在账户列表中查询到所需账户 + } + items[index++] = account.name; + } + dialogBuilder.setSingleChoiceItems(items, checkedItem, + //在对话框建立一个单选的复选框 + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setSyncAccount(itemMapping[which].toString()); + dialog.dismiss(); + //取消对话框 + refreshUI(); + } + //设置点击后执行的事件,包括检录新同步账户和刷新标签界面 + }); + //建立对话框网络版的监听器 + } + + View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); + dialogBuilder.setView(addAccountView); + //给新加账户对话框设置自定义样式 + + final AlertDialog dialog = dialogBuilder.show(); + //显示对话框 + addAccountView.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + mHasAddedAccount = true; + //将新加账户的hash置true + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + //建立网络建立组件 + intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { + "gmail-ls" + }); + startActivityForResult(intent, -1); + //跳回上一个选项 + dialog.dismiss(); + } + }); + //建立新加账户对话框的监听器 + } + + /* + * 函数功能:显示账户选择对话框和相关账户操作 + * 函数实现:如下注释 + */ + private void showChangeAccountConfirmAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + //创建一个新的对话框 + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_change_account_title, + getSyncAccountName(this))); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg)); + //根据同步修改的账户信息设置标题以及子标题的内容 + dialogBuilder.setCustomTitle(titleView); + //设置对话框的自定义标题 + CharSequence[] menuItemArray = new CharSequence[] { + getString(R.string.preferences_menu_change_account), + getString(R.string.preferences_menu_remove_account), + getString(R.string.preferences_menu_cancel) + }; + //定义一些标记字符串 + dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { + //设置对话框要显示的一个list,用于显示几个命令时,即change,remove,cancel + public void onClick(DialogInterface dialog, int which) { + //按键功能,由which来决定 + if (which == 0) { + //进入账户选择对话框 + showSelectAccountAlertDialog(); + } else if (which == 1) { + //删除账户并且跟新便签界面 + removeSyncAccount(); + refreshUI(); + } + } + }); + dialogBuilder.show(); + //显示对话框 + } + + /* + *函数功能:获取谷歌账户 + *函数实现:通过账户管理器直接获取 + */ + private Account[] getGoogleAccounts() { + AccountManager accountManager = AccountManager.get(this); + return accountManager.getAccountsByType("com.google"); + } + + /* + * 函数功能:设置同步账户 + * 函数实现:如下注释: + */ + private void setSyncAccount(String account) { + if (!getSyncAccountName(this).equals(account)) { + //假如该账号不在同步账号列表中 + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + //编辑共享的首选项 + if (account != null) { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); + } else { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + //将该账号加入到首选项中 + + editor.commit(); + //提交修改的数据 + + + setLastSyncTime(this, 0); + //将最后同步时间清零 + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + //重置当地同步任务的信息 + + Toast.makeText(NotesPreferenceActivity.this, + getString(R.string.preferences_toast_success_set_accout, account), + Toast.LENGTH_SHORT).show(); + //将toast的文本信息置为“设置账户成功”并显示出来 + } + } + + /* + * 函数功能:删除同步账户 + * 函数实现:如下注释: + */ + private void removeSyncAccount() { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + //设置共享首选项 + + if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); + //假如当前首选项中有账户就删除 + } + if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { + editor.remove(PREFERENCE_LAST_SYNC_TIME); + //删除当前首选项中有账户时间 + } + editor.commit(); + //提交更新后的数据 + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + //重置当地同步任务的信息 + } + + /* + * 函数功能:获取同步账户名称 + * 函数实现:通过共享的首选项里的信息直接获取 + */ + public static String getSyncAccountName(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + + /* + * 函数功能:设置最终同步的时间 + * 函数实现:如下注释 + */ + public static void setLastSyncTime(Context context, long time) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + // 从共享首选项中找到相关账户并获取其编辑器 + editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); + editor.commit(); + //编辑最终同步时间并提交更新 + } + + /* + * 函数功能:获取最终同步时间 + * 函数实现:通过共享的首选项里的信息直接获取 + */ + public static long getLastSyncTime(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); + } + + /* + * 函数功能:接受同步信息 + * 函数实现:继承BroadcastReceiver + */ + private class GTaskReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + refreshUI(); + if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { + //获取随广播而来的Intent中的同步服务的数据 + TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + syncStatus.setText(intent + .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); + //通过获取的数据在设置系统的状态 + } + + } + } + + /* + * 函数功能:处理菜单的选项 + * 函数实现:如下注释 + * 参数:MenuItem菜单选项 + */ + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + //根据选项的id选择,这里只有一个主页 + case android.R.id.home: + Intent intent = new Intent(this, NotesListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + return true; + //在主页情况下在创建连接组件intent,发出清空的信号并开始一个相应的activity + default: + return false; + } + } +} + diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java new file mode 100644 index 0000000..ec6f819 --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.util.Log; +import android.widget.RemoteViews; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NoteEditActivity; +import net.micode.notes.ui.NotesListActivity; + +public abstract class NoteWidgetProvider extends AppWidgetProvider { + public static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.BG_COLOR_ID, + NoteColumns.SNIPPET + }; + + public static final int COLUMN_ID = 0; + public static final int COLUMN_BG_COLOR_ID = 1; + public static final int COLUMN_SNIPPET = 2; + + private static final String TAG = "NoteWidgetProvider"; + + @Override + public void onDeleted(Context context, int[] appWidgetIds) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); + for (int i = 0; i < appWidgetIds.length; i++) { + context.getContentResolver().update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.WIDGET_ID + "=?", + new String[] { String.valueOf(appWidgetIds[i])}); + } + } + + private Cursor getNoteWidgetInfo(Context context, int widgetId) { + return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) }, + null); + } + + protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + update(context, appWidgetManager, appWidgetIds, false); + } + + private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, + boolean privacyMode) { + for (int i = 0; i < appWidgetIds.length; i++) { + if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) { + int bgId = ResourceParser.getDefaultBgId(context); + String snippet = ""; + Intent intent = new Intent(context, NoteEditActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_ID, appWidgetIds[i]); + intent.putExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, getWidgetType()); + + Cursor c = getNoteWidgetInfo(context, appWidgetIds[i]); + if (c != null && c.moveToFirst()) { + if (c.getCount() > 1) { + Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]); + c.close(); + return; + } + snippet = c.getString(COLUMN_SNIPPET); + bgId = c.getInt(COLUMN_BG_COLOR_ID); + intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID)); + intent.setAction(Intent.ACTION_VIEW); + } else { + snippet = context.getResources().getString(R.string.widget_havenot_content); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + } + + if (c != null) { + c.close(); + } + + RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId()); + rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId)); + intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId); + /** + * Generate the pending intent to start host for the widget + */ + PendingIntent pendingIntent = null; + if (privacyMode) { + rv.setTextViewText(R.id.widget_text, + context.getString(R.string.widget_under_visit_mode)); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], new Intent( + context, NotesListActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); + } else { + rv.setTextViewText(R.id.widget_text, snippet); + pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], intent, + PendingIntent.FLAG_UPDATE_CURRENT); + } + + rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent); + appWidgetManager.updateAppWidget(appWidgetIds[i], rv); + } + } + } + + protected abstract int getBgResourceId(int bgId); + + protected abstract int getLayoutId(); + + protected abstract int getWidgetType(); +} diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java new file mode 100644 index 0000000..adcb2f7 --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_2x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + @Override + protected int getLayoutId() { + return R.layout.widget_2x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_2X; + } +} diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java new file mode 100644 index 0000000..c12a02e --- /dev/null +++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +public class NoteWidgetProvider_4x extends NoteWidgetProvider { + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + protected int getLayoutId() { + return R.layout.widget_4x; + } + + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); + } + + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_4X; + } +} diff --git a/app/src/main/res/color/primary_text_dark.xml b/app/src/main/res/color/primary_text_dark.xml new file mode 100644 index 0000000..8ad98e3 --- /dev/null +++ b/app/src/main/res/color/primary_text_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/secondary_text_dark.xml b/app/src/main/res/color/secondary_text_dark.xml new file mode 100644 index 0000000..9cf8a1a --- /dev/null +++ b/app/src/main/res/color/secondary_text_dark.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/bg_btn_set_color.png b/app/src/main/res/drawable-hdpi/bg_btn_set_color.png new file mode 100644 index 0000000..5eb5d44 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/bg_btn_set_color.png differ diff --git a/app/src/main/res/drawable-hdpi/bg_color_btn_mask.png b/app/src/main/res/drawable-hdpi/bg_color_btn_mask.png new file mode 100644 index 0000000..100db77 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/bg_color_btn_mask.png differ diff --git a/app/src/main/res/drawable-hdpi/call_record.png b/app/src/main/res/drawable-hdpi/call_record.png new file mode 100644 index 0000000..fb88ca4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/call_record.png differ diff --git a/app/src/main/res/drawable-hdpi/clock.png b/app/src/main/res/drawable-hdpi/clock.png new file mode 100644 index 0000000..5f2ae9a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/clock.png differ diff --git a/app/src/main/res/drawable-hdpi/delete.png b/app/src/main/res/drawable-hdpi/delete.png new file mode 100644 index 0000000..643de3e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/delete.png differ diff --git a/app/src/main/res/drawable-hdpi/dropdown_icon.9.png b/app/src/main/res/drawable-hdpi/dropdown_icon.9.png new file mode 100644 index 0000000..5525025 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/dropdown_icon.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_blue.9.png b/app/src/main/res/drawable-hdpi/edit_blue.9.png new file mode 100644 index 0000000..55a1856 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_blue.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_green.9.png b/app/src/main/res/drawable-hdpi/edit_green.9.png new file mode 100644 index 0000000..2cb2d60 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_green.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_red.9.png b/app/src/main/res/drawable-hdpi/edit_red.9.png new file mode 100644 index 0000000..bae944a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_red.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_title_blue.9.png b/app/src/main/res/drawable-hdpi/edit_title_blue.9.png new file mode 100644 index 0000000..96e6092 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_title_blue.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_title_green.9.png b/app/src/main/res/drawable-hdpi/edit_title_green.9.png new file mode 100644 index 0000000..08d8644 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_title_green.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_title_red.9.png b/app/src/main/res/drawable-hdpi/edit_title_red.9.png new file mode 100644 index 0000000..9c430e5 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_title_red.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_title_white.9.png b/app/src/main/res/drawable-hdpi/edit_title_white.9.png new file mode 100644 index 0000000..19e8d95 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_title_white.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_title_yellow.9.png b/app/src/main/res/drawable-hdpi/edit_title_yellow.9.png new file mode 100644 index 0000000..bf8f580 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_title_yellow.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_white.9.png b/app/src/main/res/drawable-hdpi/edit_white.9.png new file mode 100644 index 0000000..918f7a6 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_white.9.png differ diff --git a/app/src/main/res/drawable-hdpi/edit_yellow.9.png b/app/src/main/res/drawable-hdpi/edit_yellow.9.png new file mode 100644 index 0000000..10cb642 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/edit_yellow.9.png differ diff --git a/app/src/main/res/drawable-hdpi/font_large.png b/app/src/main/res/drawable-hdpi/font_large.png new file mode 100644 index 0000000..78cf2e6 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/font_large.png differ diff --git a/app/src/main/res/drawable-hdpi/font_normal.png b/app/src/main/res/drawable-hdpi/font_normal.png new file mode 100644 index 0000000..9de7ced Binary files /dev/null and b/app/src/main/res/drawable-hdpi/font_normal.png differ diff --git a/app/src/main/res/drawable-hdpi/font_size_selector_bg.9.png b/app/src/main/res/drawable-hdpi/font_size_selector_bg.9.png new file mode 100644 index 0000000..be8e64c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/font_size_selector_bg.9.png differ diff --git a/app/src/main/res/drawable-hdpi/font_small.png b/app/src/main/res/drawable-hdpi/font_small.png new file mode 100644 index 0000000..d3ff104 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/font_small.png differ diff --git a/app/src/main/res/drawable-hdpi/font_super.png b/app/src/main/res/drawable-hdpi/font_super.png new file mode 100644 index 0000000..85b13a1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/font_super.png differ diff --git a/app/src/main/res/drawable-hdpi/icon_app.png b/app/src/main/res/drawable-hdpi/icon_app.png new file mode 100644 index 0000000..418aadc Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_app.png differ diff --git a/app/src/main/res/drawable-hdpi/list_background.png b/app/src/main/res/drawable-hdpi/list_background.png new file mode 100644 index 0000000..087e1f9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_background.png differ diff --git a/app/src/main/res/drawable-hdpi/list_blue_down.9.png b/app/src/main/res/drawable-hdpi/list_blue_down.9.png new file mode 100644 index 0000000..b88eebf Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_blue_down.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_blue_middle.9.png b/app/src/main/res/drawable-hdpi/list_blue_middle.9.png new file mode 100644 index 0000000..96b1c8b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_blue_middle.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_blue_single.9.png b/app/src/main/res/drawable-hdpi/list_blue_single.9.png new file mode 100644 index 0000000..d7e7206 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_blue_single.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_blue_up.9.png b/app/src/main/res/drawable-hdpi/list_blue_up.9.png new file mode 100644 index 0000000..632e88c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_blue_up.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_folder.9.png b/app/src/main/res/drawable-hdpi/list_folder.9.png new file mode 100644 index 0000000..829f61b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_folder.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_footer_bg.9.png b/app/src/main/res/drawable-hdpi/list_footer_bg.9.png new file mode 100644 index 0000000..5325c25 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_footer_bg.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_green_down.9.png b/app/src/main/res/drawable-hdpi/list_green_down.9.png new file mode 100644 index 0000000..64a39d9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_green_down.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_green_middle.9.png b/app/src/main/res/drawable-hdpi/list_green_middle.9.png new file mode 100644 index 0000000..897325a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_green_middle.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_green_single.9.png b/app/src/main/res/drawable-hdpi/list_green_single.9.png new file mode 100644 index 0000000..c83405f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_green_single.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_green_up.9.png b/app/src/main/res/drawable-hdpi/list_green_up.9.png new file mode 100644 index 0000000..141f9e1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_green_up.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_red_down.9.png b/app/src/main/res/drawable-hdpi/list_red_down.9.png new file mode 100644 index 0000000..4224309 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_red_down.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_red_middle.9.png b/app/src/main/res/drawable-hdpi/list_red_middle.9.png new file mode 100644 index 0000000..9988f17 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_red_middle.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_red_single.9.png b/app/src/main/res/drawable-hdpi/list_red_single.9.png new file mode 100644 index 0000000..587c348 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_red_single.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_red_up.9.png b/app/src/main/res/drawable-hdpi/list_red_up.9.png new file mode 100644 index 0000000..46b4757 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_red_up.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_white_down.9.png b/app/src/main/res/drawable-hdpi/list_white_down.9.png new file mode 100644 index 0000000..29f9d8c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_white_down.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_white_middle.9.png b/app/src/main/res/drawable-hdpi/list_white_middle.9.png new file mode 100644 index 0000000..77a4ab4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_white_middle.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_white_single.9.png b/app/src/main/res/drawable-hdpi/list_white_single.9.png new file mode 100644 index 0000000..3e79189 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_white_single.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_white_up.9.png b/app/src/main/res/drawable-hdpi/list_white_up.9.png new file mode 100644 index 0000000..e23cd5c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_white_up.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_yellow_down.9.png b/app/src/main/res/drawable-hdpi/list_yellow_down.9.png new file mode 100644 index 0000000..31cfc1e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_yellow_down.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_yellow_middle.9.png b/app/src/main/res/drawable-hdpi/list_yellow_middle.9.png new file mode 100644 index 0000000..b6549b2 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_yellow_middle.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_yellow_single.9.png b/app/src/main/res/drawable-hdpi/list_yellow_single.9.png new file mode 100644 index 0000000..3faf507 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_yellow_single.9.png differ diff --git a/app/src/main/res/drawable-hdpi/list_yellow_up.9.png b/app/src/main/res/drawable-hdpi/list_yellow_up.9.png new file mode 100644 index 0000000..4ae791c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/list_yellow_up.9.png differ diff --git a/app/src/main/res/drawable-hdpi/menu_delete.png b/app/src/main/res/drawable-hdpi/menu_delete.png new file mode 100644 index 0000000..ccdfc4b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/menu_delete.png differ diff --git a/app/src/main/res/drawable-hdpi/menu_move.png b/app/src/main/res/drawable-hdpi/menu_move.png new file mode 100644 index 0000000..1140b71 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/menu_move.png differ diff --git a/app/src/main/res/drawable-hdpi/new_note_normal.png b/app/src/main/res/drawable-hdpi/new_note_normal.png new file mode 100644 index 0000000..e24e0d1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/new_note_normal.png differ diff --git a/app/src/main/res/drawable-hdpi/new_note_pressed.png b/app/src/main/res/drawable-hdpi/new_note_pressed.png new file mode 100644 index 0000000..c748936 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/new_note_pressed.png differ diff --git a/app/src/main/res/drawable-hdpi/note_edit_color_selector_panel.png b/app/src/main/res/drawable-hdpi/note_edit_color_selector_panel.png new file mode 100644 index 0000000..fc49552 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/note_edit_color_selector_panel.png differ diff --git a/app/src/main/res/drawable-hdpi/notification.png b/app/src/main/res/drawable-hdpi/notification.png new file mode 100644 index 0000000..b13ab4a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/notification.png differ diff --git a/app/src/main/res/drawable-hdpi/search_result.png b/app/src/main/res/drawable-hdpi/search_result.png new file mode 100644 index 0000000..ff2befd Binary files /dev/null and b/app/src/main/res/drawable-hdpi/search_result.png differ diff --git a/app/src/main/res/drawable-hdpi/selected.png b/app/src/main/res/drawable-hdpi/selected.png new file mode 100644 index 0000000..b889bef Binary files /dev/null and b/app/src/main/res/drawable-hdpi/selected.png differ diff --git a/app/src/main/res/drawable-hdpi/title_alert.png b/app/src/main/res/drawable-hdpi/title_alert.png new file mode 100644 index 0000000..544ee9c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/title_alert.png differ diff --git a/app/src/main/res/drawable-hdpi/title_bar_bg.9.png b/app/src/main/res/drawable-hdpi/title_bar_bg.9.png new file mode 100644 index 0000000..eb6bff0 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/title_bar_bg.9.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_2x_blue.png b/app/src/main/res/drawable-hdpi/widget_2x_blue.png new file mode 100644 index 0000000..a1707f4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_2x_blue.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_2x_green.png b/app/src/main/res/drawable-hdpi/widget_2x_green.png new file mode 100644 index 0000000..f86886c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_2x_green.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_2x_red.png b/app/src/main/res/drawable-hdpi/widget_2x_red.png new file mode 100644 index 0000000..0e66c29 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_2x_red.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_2x_white.png b/app/src/main/res/drawable-hdpi/widget_2x_white.png new file mode 100644 index 0000000..5f0619a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_2x_white.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_2x_yellow.png b/app/src/main/res/drawable-hdpi/widget_2x_yellow.png new file mode 100644 index 0000000..12d1c2b Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_2x_yellow.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_4x_blue.png b/app/src/main/res/drawable-hdpi/widget_4x_blue.png new file mode 100644 index 0000000..9183738 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_4x_blue.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_4x_green.png b/app/src/main/res/drawable-hdpi/widget_4x_green.png new file mode 100644 index 0000000..fa8b452 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_4x_green.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_4x_red.png b/app/src/main/res/drawable-hdpi/widget_4x_red.png new file mode 100644 index 0000000..62de074 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_4x_red.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_4x_white.png b/app/src/main/res/drawable-hdpi/widget_4x_white.png new file mode 100644 index 0000000..a37d67c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_4x_white.png differ diff --git a/app/src/main/res/drawable-hdpi/widget_4x_yellow.png b/app/src/main/res/drawable-hdpi/widget_4x_yellow.png new file mode 100644 index 0000000..d7c5fa4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/widget_4x_yellow.png differ diff --git a/app/src/main/res/drawable/new_note.xml b/app/src/main/res/drawable/new_note.xml new file mode 100644 index 0000000..2154ebc --- /dev/null +++ b/app/src/main/res/drawable/new_note.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/app/src/main/res/layout/account_dialog_title.xml b/app/src/main/res/layout/account_dialog_title.xml new file mode 100644 index 0000000..7717112 --- /dev/null +++ b/app/src/main/res/layout/account_dialog_title.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/add_account_text.xml b/app/src/main/res/layout/add_account_text.xml new file mode 100644 index 0000000..c799178 --- /dev/null +++ b/app/src/main/res/layout/add_account_text.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/datetime_picker.xml b/app/src/main/res/layout/datetime_picker.xml new file mode 100644 index 0000000..f10d592 --- /dev/null +++ b/app/src/main/res/layout/datetime_picker.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_edit_text.xml b/app/src/main/res/layout/dialog_edit_text.xml new file mode 100644 index 0000000..361b39a --- /dev/null +++ b/app/src/main/res/layout/dialog_edit_text.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/folder_list_item.xml b/app/src/main/res/layout/folder_list_item.xml new file mode 100644 index 0000000..77e8148 --- /dev/null +++ b/app/src/main/res/layout/folder_list_item.xml @@ -0,0 +1,29 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/note_edit.xml b/app/src/main/res/layout/note_edit.xml new file mode 100644 index 0000000..1dd486b --- /dev/null +++ b/app/src/main/res/layout/note_edit.xml @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/note_edit_list_item.xml b/app/src/main/res/layout/note_edit_list_item.xml new file mode 100644 index 0000000..a885f9c --- /dev/null +++ b/app/src/main/res/layout/note_edit_list_item.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/note_item.xml b/app/src/main/res/layout/note_item.xml new file mode 100644 index 0000000..d541f6a --- /dev/null +++ b/app/src/main/res/layout/note_item.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/note_list.xml b/app/src/main/res/layout/note_list.xml new file mode 100644 index 0000000..6b25d38 --- /dev/null +++ b/app/src/main/res/layout/note_list.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + +