Compare commits
No commits in common. 'master' and 'develop' have entirely different histories.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
# generated files
|
||||
bin/
|
||||
gen/
|
||||
|
||||
# Local configuration file (sdk path, etc)
|
||||
project.properties
|
||||
.settings/
|
||||
.classpath
|
||||
.project
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +0,0 @@
|
||||
#Thu Nov 13 18:19:18 CST 2025
|
||||
gradle.version=8.5
|
||||
Binary file not shown.
@ -1,2 +0,0 @@
|
||||
#Wed Nov 19 11:36:51 CST 2025
|
||||
java.home=D\:\\Android studio2\\jbr
|
||||
Binary file not shown.
@ -1,3 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
@ -1 +0,0 @@
|
||||
local.properties
|
||||
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="21" />
|
||||
</component>
|
||||
</project>
|
||||
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetSelector">
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DeviceTable">
|
||||
<option name="columnSorters">
|
||||
<list>
|
||||
<ColumnSorterState>
|
||||
<option name="column" value="Name" />
|
||||
<option name="order" value="ASCENDING" />
|
||||
</ColumnSorterState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectMigrations">
|
||||
<option name="MigrateToGradleLocalJavaHome">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,6 +0,0 @@
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RenderSettings">
|
||||
<option name="showDecorations" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@ -1,190 +0,0 @@
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
@ -1 +0,0 @@
|
||||
/build
|
||||
@ -1,65 +0,0 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "net.micode.notes"
|
||||
compileSdk {
|
||||
version = release(36)
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "net.micode.notes"
|
||||
minSdk = 30
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro"
|
||||
)
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
packaging {
|
||||
resources.excludes.add("META-INF/DEPENDENCIES");
|
||||
resources.excludes.add("META-INF/NOTICE");
|
||||
resources.excludes.add("META-INF/LICENSE");
|
||||
resources.excludes.add("META-INF/LICENSE.txt");
|
||||
resources.excludes.add("META-INF/NOTICE.txt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.appcompat)
|
||||
implementation(libs.material)
|
||||
implementation(libs.activity)
|
||||
implementation(libs.constraintlayout)
|
||||
implementation(files("D:\\Android_Studio\\Notes-master\\httpcomponents-client-4.5.14-bin.zip"))
|
||||
// implementation(fileTree(mapOf(
|
||||
// "dir" to "D:\\Android_Studio\\Notes-master\\httpcomponents-client-4.5.14-bin",
|
||||
// "include" to listOf("*.aar", "*.jar"),
|
||||
// "exclude" to listOf("")
|
||||
// )))
|
||||
|
||||
implementation(files("D:\\Android_Studio\\Notes-master\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar"))
|
||||
implementation(files("D:\\Android_Studio\\Notes-master\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-win-4.5.14.jar"))
|
||||
implementation(files("D:\\Android_Studio\\Notes-master\\httpcomponents-client-4.5.14-bin\\lib\\httpcore-4.4.16.jar"))
|
||||
|
||||
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.ext.junit)
|
||||
androidTestImplementation(libs.espresso.core)
|
||||
}
|
||||
Binary file not shown.
@ -1,21 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "net.micode.notes",
|
||||
"variantName": "debug",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 1,
|
||||
"versionName": "1.0",
|
||||
"outputFile": "app-debug.apk"
|
||||
}
|
||||
],
|
||||
"elementType": "File",
|
||||
"minSdkVersionForDexing": 30
|
||||
}
|
||||
Binary file not shown.
@ -1,113 +0,0 @@
|
||||
#Sat Nov 15 09:53:21 CST 2025
|
||||
net.micode.notes.app-main-33\:/color/primary_text_dark.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\color_primary_text_dark.xml.flat
|
||||
net.micode.notes.app-main-33\:/color/secondary_text_dark.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\color_secondary_text_dark.xml.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/bg_btn_set_color.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_bg_btn_set_color.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_bg_color_btn_mask.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/call_record.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_call_record.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/clock.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_clock.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/delete.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_delete.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/dropdown_icon.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_dropdown_icon.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_blue.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_blue.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_green.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_green.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_red.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_red.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_title_blue.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_title_blue.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_title_green.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_title_green.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_title_red.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_title_red.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_title_white.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_title_white.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_title_yellow.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_white.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_white.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/edit_yellow.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_edit_yellow.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/font_large.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_font_large.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/font_normal.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_font_normal.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_font_size_selector_bg.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/font_small.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_font_small.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/font_super.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_font_super.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/icon_app.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_icon_app.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_background.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_background.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_blue_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_blue_down.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_blue_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_blue_middle.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_blue_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_blue_single.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_blue_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_blue_up.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_folder.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_folder.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_footer_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_footer_bg.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_green_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_green_down.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_green_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_green_middle.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_green_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_green_single.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_green_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_green_up.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_red_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_red_down.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_red_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_red_middle.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_red_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_red_single.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_red_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_red_up.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_white_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_white_down.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_white_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_white_middle.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_white_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_white_single.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_white_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_white_up.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_yellow_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_yellow_down.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_yellow_middle.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_yellow_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_yellow_single.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/list_yellow_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_list_yellow_up.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/menu_delete.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_menu_delete.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/menu_move.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_menu_move.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/new_note_normal.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_new_note_normal.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/new_note_pressed.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_new_note_pressed.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_note_edit_color_selector_panel.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/notification.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_notification.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/search_result.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_search_result.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/selected.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_selected.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/title_alert.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_title_alert.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/title_bar_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_title_bar_bg.9.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_2x_blue.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_2x_blue.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_2x_green.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_2x_green.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_2x_red.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_2x_red.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_2x_white.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_2x_white.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_2x_yellow.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_2x_yellow.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_4x_blue.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_4x_blue.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_4x_green.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_4x_green.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_4x_red.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_4x_red.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_4x_white.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_4x_white.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable-hdpi/widget_4x_yellow.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable-hdpi_widget_4x_yellow.png.flat
|
||||
net.micode.notes.app-main-33\:/drawable/ic_launcher_background.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_ic_launcher_background.xml.flat
|
||||
net.micode.notes.app-main-33\:/drawable/ic_launcher_foreground.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_ic_launcher_foreground.xml.flat
|
||||
net.micode.notes.app-main-33\:/drawable/new_note.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_new_note.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/account_dialog_title.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_account_dialog_title.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/activity_main.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_activity_main.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/add_account_text.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_add_account_text.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/datetime_picker.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_datetime_picker.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/dialog_edit_text.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_dialog_edit_text.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/folder_list_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_folder_list_item.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_edit.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_edit_list_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_edit_list_item.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_item.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_list.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_list.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_list_dropdown_menu.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_list_dropdown_menu.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/note_list_footer.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_note_list_footer.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/settings_header.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_settings_header.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/widget_2x.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_widget_2x.xml.flat
|
||||
net.micode.notes.app-main-33\:/layout/widget_4x.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_widget_4x.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/call_note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_call_note_edit.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/call_record_folder.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_call_record_folder.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_note_edit.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/note_list.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_note_list.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/note_list_dropdown.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_note_list_dropdown.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/note_list_options.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_note_list_options.xml.flat
|
||||
net.micode.notes.app-main-33\:/menu/sub_folder.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\menu_sub_folder.xml.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-anydpi/ic_launcher.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-anydpi_ic_launcher.xml.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-anydpi/ic_launcher_round.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-anydpi_ic_launcher_round.xml.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-hdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-hdpi_ic_launcher.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-hdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-hdpi_ic_launcher_round.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-mdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-mdpi_ic_launcher.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-mdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-mdpi_ic_launcher_round.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xhdpi_ic_launcher.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xhdpi_ic_launcher_round.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xxhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xxhdpi_ic_launcher.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xxhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xxhdpi_ic_launcher_round.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xxxhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xxxhdpi_ic_launcher.webp.flat
|
||||
net.micode.notes.app-main-33\:/mipmap-xxxhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\mipmap-xxxhdpi_ic_launcher_round.webp.flat
|
||||
net.micode.notes.app-main-33\:/raw-zh-rCN/introduction=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\raw-zh-rCN_introduction.flat
|
||||
net.micode.notes.app-main-33\:/raw/introduction=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\raw_introduction.flat
|
||||
net.micode.notes.app-main-33\:/xml/backup_rules.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_backup_rules.xml.flat
|
||||
net.micode.notes.app-main-33\:/xml/data_extraction_rules.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_data_extraction_rules.xml.flat
|
||||
net.micode.notes.app-main-33\:/xml/preferences.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_preferences.xml.flat
|
||||
net.micode.notes.app-main-33\:/xml/searchable.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_searchable.xml.flat
|
||||
net.micode.notes.app-main-33\:/xml/widget_2x_info.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_widget_2x_info.xml.flat
|
||||
net.micode.notes.app-main-33\:/xml/widget_4x_info.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\xml_widget_4x_info.xml.flat
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -1,113 +0,0 @@
|
||||
#Sat Nov 15 09:53:21 CST 2025
|
||||
net.micode.notes.app-main-5\:/color/primary_text_dark.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\color\\primary_text_dark.xml
|
||||
net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\color\\secondary_text_dark.xml
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\bg_btn_set_color.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\bg_color_btn_mask.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/call_record.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\call_record.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/clock.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\clock.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/delete.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\delete.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/dropdown_icon.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\dropdown_icon.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_blue.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_blue.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_green.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_green.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_red.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_red.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_blue.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_title_blue.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_green.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_title_green.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_red.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_title_red.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_white.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_title_white.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_title_yellow.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_white.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_white.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/edit_yellow.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\edit_yellow.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/font_large.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\font_large.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/font_normal.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\font_normal.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\font_size_selector_bg.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/font_small.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\font_small.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/font_super.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\font_super.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/icon_app.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\icon_app.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_background.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_background.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_blue_down.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_blue_middle.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_blue_single.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_blue_up.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_folder.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_folder.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_footer_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_footer_bg.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_green_down.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_green_middle.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_green_single.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_green_up.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_red_down.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_red_middle.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_red_single.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_red_up.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_white_down.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_white_middle.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_white_single.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_white_up.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_down.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_yellow_down.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_yellow_middle.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_single.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_yellow_single.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_up.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\list_yellow_up.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/menu_delete.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\menu_delete.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/menu_move.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\menu_move.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/new_note_normal.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\new_note_normal.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/new_note_pressed.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\new_note_pressed.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\note_edit_color_selector_panel.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/notification.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\notification.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/search_result.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\search_result.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/selected.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\selected.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/title_alert.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\title_alert.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/title_bar_bg.9.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\title_bar_bg.9.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_blue.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_2x_blue.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_green.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_2x_green.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_red.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_2x_red.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_white.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_2x_white.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_yellow.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_2x_yellow.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_blue.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_4x_blue.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_green.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_4x_green.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_red.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_4x_red.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_white.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_4x_white.png
|
||||
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_yellow.png=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable-hdpi-v4\\widget_4x_yellow.png
|
||||
net.micode.notes.app-main-5\:/drawable/ic_launcher_background.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable\\ic_launcher_background.xml
|
||||
net.micode.notes.app-main-5\:/drawable/ic_launcher_foreground.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable\\ic_launcher_foreground.xml
|
||||
net.micode.notes.app-main-5\:/drawable/new_note.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\drawable\\new_note.xml
|
||||
net.micode.notes.app-main-5\:/layout/account_dialog_title.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\account_dialog_title.xml
|
||||
net.micode.notes.app-main-5\:/layout/activity_main.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\activity_main.xml
|
||||
net.micode.notes.app-main-5\:/layout/add_account_text.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\add_account_text.xml
|
||||
net.micode.notes.app-main-5\:/layout/datetime_picker.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\datetime_picker.xml
|
||||
net.micode.notes.app-main-5\:/layout/dialog_edit_text.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\dialog_edit_text.xml
|
||||
net.micode.notes.app-main-5\:/layout/folder_list_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\folder_list_item.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_edit.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_edit_list_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_edit_list_item.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_item.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_item.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_list.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_list.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_list_dropdown_menu.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_list_dropdown_menu.xml
|
||||
net.micode.notes.app-main-5\:/layout/note_list_footer.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\note_list_footer.xml
|
||||
net.micode.notes.app-main-5\:/layout/settings_header.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\settings_header.xml
|
||||
net.micode.notes.app-main-5\:/layout/widget_2x.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\widget_2x.xml
|
||||
net.micode.notes.app-main-5\:/layout/widget_4x.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\layout\\widget_4x.xml
|
||||
net.micode.notes.app-main-5\:/menu/call_note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\call_note_edit.xml
|
||||
net.micode.notes.app-main-5\:/menu/call_record_folder.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\call_record_folder.xml
|
||||
net.micode.notes.app-main-5\:/menu/note_edit.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\note_edit.xml
|
||||
net.micode.notes.app-main-5\:/menu/note_list.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\note_list.xml
|
||||
net.micode.notes.app-main-5\:/menu/note_list_dropdown.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\note_list_dropdown.xml
|
||||
net.micode.notes.app-main-5\:/menu/note_list_options.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\note_list_options.xml
|
||||
net.micode.notes.app-main-5\:/menu/sub_folder.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\menu\\sub_folder.xml
|
||||
net.micode.notes.app-main-5\:/mipmap-anydpi/ic_launcher.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-anydpi-v4\\ic_launcher.xml
|
||||
net.micode.notes.app-main-5\:/mipmap-anydpi/ic_launcher_round.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-anydpi-v4\\ic_launcher_round.xml
|
||||
net.micode.notes.app-main-5\:/mipmap-hdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-hdpi-v4\\ic_launcher.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-hdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-hdpi-v4\\ic_launcher_round.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-mdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-mdpi-v4\\ic_launcher.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-mdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-mdpi-v4\\ic_launcher_round.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xhdpi-v4\\ic_launcher.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xhdpi-v4\\ic_launcher_round.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xxhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xxhdpi-v4\\ic_launcher.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xxhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xxhdpi-v4\\ic_launcher_round.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xxxhdpi/ic_launcher.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xxxhdpi-v4\\ic_launcher.webp
|
||||
net.micode.notes.app-main-5\:/mipmap-xxxhdpi/ic_launcher_round.webp=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\mipmap-xxxhdpi-v4\\ic_launcher_round.webp
|
||||
net.micode.notes.app-main-5\:/raw-zh-rCN/introduction=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\raw-zh-rCN\\introduction
|
||||
net.micode.notes.app-main-5\:/raw/introduction=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\raw\\introduction
|
||||
net.micode.notes.app-main-5\:/xml/backup_rules.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\backup_rules.xml
|
||||
net.micode.notes.app-main-5\:/xml/data_extraction_rules.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\data_extraction_rules.xml
|
||||
net.micode.notes.app-main-5\:/xml/preferences.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\preferences.xml
|
||||
net.micode.notes.app-main-5\:/xml/searchable.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\searchable.xml
|
||||
net.micode.notes.app-main-5\:/xml/widget_2x_info.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\widget_2x_info.xml
|
||||
net.micode.notes.app-main-5\:/xml/widget_4x_info.xml=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\packageDebugResources\\xml\\widget_4x_info.xml
|
||||
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\main\assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\debug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet></merger>
|
||||
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\debug\jniLibs"/></dataSet></merger>
|
||||
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Android_Studio\Notes-master\app\src\debug\shaders"/></dataSet></merger>
|
||||
@ -1,28 +0,0 @@
|
||||
#Sat Nov 15 10:02:39 CST 2025
|
||||
base.0=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeExtDexDebug\\classes.dex
|
||||
base.1=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\0\\classes.dex
|
||||
base.2=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\11\\classes.dex
|
||||
base.3=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\12\\classes.dex
|
||||
base.4=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\13\\classes.dex
|
||||
base.5=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\15\\classes.dex
|
||||
base.6=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\4\\classes.dex
|
||||
base.7=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\5\\classes.dex
|
||||
base.8=D\:\\Android_Studio\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeExtDexDebug\\classes2.dex
|
||||
path.0=classes.dex
|
||||
path.1=0/classes.dex
|
||||
path.2=11/classes.dex
|
||||
path.3=12/classes.dex
|
||||
path.4=13/classes.dex
|
||||
path.5=15/classes.dex
|
||||
path.6=4/classes.dex
|
||||
path.7=5/classes.dex
|
||||
path.8=classes2.dex
|
||||
renamed.0=classes.dex
|
||||
renamed.1=classes2.dex
|
||||
renamed.2=classes3.dex
|
||||
renamed.3=classes4.dex
|
||||
renamed.4=classes5.dex
|
||||
renamed.5=classes6.dex
|
||||
renamed.6=classes7.dex
|
||||
renamed.7=classes8.dex
|
||||
renamed.8=classes9.dex
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,480 +0,0 @@
|
||||
-- Merging decision tree log ---
|
||||
manifest
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:2:1-156:12
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:2:1-156:12
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:2:1-156:12
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:2:1-156:12
|
||||
MERGED from [com.google.android.material:material:1.10.0] C:\Users\10378\.gradle\caches\8.13\transforms\ed657c2504032b7a94cb05d64bda34d5\transformed\material-1.10.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.constraintlayout:constraintlayout:2.1.4] C:\Users\10378\.gradle\caches\8.13\transforms\870de2a67c9be5b4f7ba5f2fd672777d\transformed\constraintlayout-2.1.4\AndroidManifest.xml:2:1-11:12
|
||||
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\253ea21f9554755940a8db3922afaeff\transformed\appcompat-resources-1.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.appcompat:appcompat:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\9193172717a5ca3eb1d6453fe3e6bfa7\transformed\appcompat-1.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.viewpager2:viewpager2:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\d5e3c0fc96934450134f763386936834\transformed\viewpager2-1.0.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.fragment:fragment:1.3.6] C:\Users\10378\.gradle\caches\8.13\transforms\d7e369ba3abc83dc6eb17d2b9ff2b16e\transformed\fragment-1.3.6\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.activity:activity:1.8.0] C:\Users\10378\.gradle\caches\8.13\transforms\4d6dea971ad80dc04c21708a717167ea\transformed\activity-1.8.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\48c4c6d14791ee6cec92f7438b041848\transformed\emoji2-views-helper-1.2.0\AndroidManifest.xml:2:1-7:12
|
||||
MERGED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:17:1-35:12
|
||||
MERGED from [androidx.drawerlayout:drawerlayout:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\8aefd914ef407cb79d151c2844281eb1\transformed\drawerlayout-1.1.1\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.coordinatorlayout:coordinatorlayout:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\2f69197fad576b29d6a5e0f895e3aeb9\transformed\coordinatorlayout-1.1.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.dynamicanimation:dynamicanimation:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\15c4f2ae4253de18a0c7852b333c0870\transformed\dynamicanimation-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.transition:transition:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f090351ecbad81af69788a152edefd31\transformed\transition-1.2.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\3fd560b09a657265f043b6181d3cad63\transformed\vectordrawable-animated-1.1.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\25cc9b6c6f46a5024d85c2da5b360d5f\transformed\vectordrawable-1.1.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.legacy:legacy-support-core-utils:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\dc979c0b8b75e85bf4f176a761287089\transformed\legacy-support-core-utils-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.loader:loader:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\e83b86d57eb58c7c76ab2665efee131c\transformed\loader-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.savedstate:savedstate:1.2.1] C:\Users\10378\.gradle\caches\8.13\transforms\3cd917734a573e15a1ed51b3d437c18f\transformed\savedstate-1.2.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\8fdc621be8d3dd6a3c8f1f413cf45d5f\transformed\lifecycle-livedata-2.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:17:1-35:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\0316481e296926d0b7aaa92fc9d0879d\transformed\lifecycle-livedata-core-2.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\aa81dc7b2bc51662cef11e0791bbccc9\transformed\lifecycle-viewmodel-2.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-runtime:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\bf4089128f1f860ab38b60b53569d520\transformed\lifecycle-runtime-2.6.1\AndroidManifest.xml:2:1-7:12
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\85be53262d2521c6dcf63c409a54c35e\transformed\lifecycle-viewmodel-savedstate-2.6.1\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.core:core-ktx:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\03335d5232404a4d38ccc4e74bc998ab\transformed\core-ktx-1.9.0\AndroidManifest.xml:2:1-7:12
|
||||
MERGED from [androidx.viewpager:viewpager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\de3f4c52d4b0fdcc70f69eab382f3d12\transformed\viewpager-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.recyclerview:recyclerview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\71f6c76cdbc8be36c07e3dc59644ba39\transformed\recyclerview-1.1.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.customview:customview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\46a1220a5d503e2a05755c314bee8b16\transformed\customview-1.1.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:17:1-30:12
|
||||
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\7e23495443aa5b2a0afac798e6faa601\transformed\cursoradapter-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.cardview:cardview:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\a0953f93c0e20abd38f655613f7b3a90\transformed\cardview-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:17:1-55:12
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:17:1-33:12
|
||||
MERGED from [androidx.tracing:tracing:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\9c51bb1fa58bd8be09c4e0e0ecfd97c7\transformed\tracing-1.0.0\AndroidManifest.xml:17:1-24:12
|
||||
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\f82167c09e6ae91837d5b49ea1000efe\transformed\versionedparcelable-1.1.1\AndroidManifest.xml:17:1-27:12
|
||||
MERGED from [androidx.arch.core:core-runtime:2.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f834c8cdbec868b61611d31b352d57e2\transformed\core-runtime-2.2.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.interpolator:interpolator:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\0d41002bdfd7c1dabad725943b1ed8e9\transformed\interpolator-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.documentfile:documentfile:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\53b765b4f3e71482b1bc2f1c233d0225\transformed\documentfile-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.localbroadcastmanager:localbroadcastmanager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\6df0be6c3fac32bc396c1462157bc500\transformed\localbroadcastmanager-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.print:print:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\8a8e23bd4d6d86f3c9260a14e3fb93d7\transformed\print-1.0.0\AndroidManifest.xml:17:1-22:12
|
||||
MERGED from [androidx.annotation:annotation-experimental:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\85ce0127863c5903b3a85662f2e1090e\transformed\annotation-experimental-1.3.0\AndroidManifest.xml:17:1-22:12
|
||||
package
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
android:versionName
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
xmlns:tools
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:3:5-51
|
||||
android:versionCode
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
xmlns:android
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:2:11-69
|
||||
uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:5:5-81
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:5:22-78
|
||||
uses-permission#com.android.launcher.permission.INSTALL_SHORTCUT
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:6:5-88
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:6:22-85
|
||||
uses-permission#android.permission.INTERNET
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:7:5-67
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:7:22-64
|
||||
uses-permission#android.permission.READ_CONTACTS
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:8:5-72
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:8:22-69
|
||||
uses-permission#android.permission.MANAGE_ACCOUNTS
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:9:5-74
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:9:22-71
|
||||
uses-permission#android.permission.AUTHENTICATE_ACCOUNTS
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:10:5-80
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:10:22-77
|
||||
uses-permission#android.permission.GET_ACCOUNTS
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:11:5-71
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:11:22-68
|
||||
uses-permission#android.permission.USE_CREDENTIALS
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:12:5-74
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:12:22-71
|
||||
uses-permission#android.permission.RECEIVE_BOOT_COMPLETED
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:13:5-81
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:13:22-78
|
||||
application
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:15:5-154:19
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:15:5-154:19
|
||||
MERGED from [com.google.android.material:material:1.10.0] C:\Users\10378\.gradle\caches\8.13\transforms\ed657c2504032b7a94cb05d64bda34d5\transformed\material-1.10.0\AndroidManifest.xml:22:5-20
|
||||
MERGED from [com.google.android.material:material:1.10.0] C:\Users\10378\.gradle\caches\8.13\transforms\ed657c2504032b7a94cb05d64bda34d5\transformed\material-1.10.0\AndroidManifest.xml:22:5-20
|
||||
MERGED from [androidx.constraintlayout:constraintlayout:2.1.4] C:\Users\10378\.gradle\caches\8.13\transforms\870de2a67c9be5b4f7ba5f2fd672777d\transformed\constraintlayout-2.1.4\AndroidManifest.xml:9:5-20
|
||||
MERGED from [androidx.constraintlayout:constraintlayout:2.1.4] C:\Users\10378\.gradle\caches\8.13\transforms\870de2a67c9be5b4f7ba5f2fd672777d\transformed\constraintlayout-2.1.4\AndroidManifest.xml:9:5-20
|
||||
MERGED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:23:5-33:19
|
||||
MERGED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:23:5-33:19
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:23:5-33:19
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:23:5-33:19
|
||||
MERGED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:28:5-89
|
||||
MERGED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:28:5-89
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:23:5-53:19
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:23:5-53:19
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:25:5-31:19
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:25:5-31:19
|
||||
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\f82167c09e6ae91837d5b49ea1000efe\transformed\versionedparcelable-1.1.1\AndroidManifest.xml:24:5-25:19
|
||||
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\f82167c09e6ae91837d5b49ea1000efe\transformed\versionedparcelable-1.1.1\AndroidManifest.xml:24:5-25:19
|
||||
android:extractNativeLibs
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
android:appComponentFactory
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:28:18-86
|
||||
android:supportsRtl
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:22:9-35
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:20:9-41
|
||||
android:fullBackupContent
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:18:9-54
|
||||
android:roundIcon
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:21:9-54
|
||||
tools:targetApi
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:24:9-29
|
||||
android:icon
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:19:9-43
|
||||
android:allowBackup
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:16:9-35
|
||||
android:theme
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:23:9-49
|
||||
android:dataExtractionRules
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:17:9-65
|
||||
activity#net.micode.notes.ui.NotesListActivity
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:26:9-40:20
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:29:13-45
|
||||
android:launchMode
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:30:13-43
|
||||
android:windowSoftInputMode
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:33:13-52
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:34:13-36
|
||||
android:uiOptions
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:32:13-57
|
||||
android:configChanges
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:28:13-74
|
||||
android:theme
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:31:13-45
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:27:13-49
|
||||
intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:36:13-39:29
|
||||
action#android.intent.action.MAIN
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:37:17-69
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:37:25-66
|
||||
category#android.intent.category.LAUNCHER
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:38:17-77
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:38:27-74
|
||||
activity#net.micode.notes.ui.NoteEditActivity
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:42:9-71:20
|
||||
android:launchMode
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:45:13-43
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:47:13-36
|
||||
android:configChanges
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:44:13-74
|
||||
android:theme
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:46:13-45
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:43: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 D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:49:13-54:30
|
||||
action#android.intent.action.VIEW
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:50:17-69
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:50:25-66
|
||||
category#android.intent.category.DEFAULT
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:51:17-76
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:51:27-73
|
||||
data
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:52:17-78
|
||||
android:mimeType
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:52: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 D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:56:13-61:29
|
||||
action#android.intent.action.INSERT_OR_EDIT
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:57:17-79
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:57:25-76
|
||||
intent-filter#action:name:android.intent.action.SEARCH+category:name:android.intent.category.DEFAULT
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:63:13-66:29
|
||||
action#android.intent.action.SEARCH
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:64:17-71
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:64:25-68
|
||||
meta-data#android.app.searchable
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:68:13-70:54
|
||||
android:resource
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:70:17-51
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:69:17-54
|
||||
provider#net.micode.notes.data.NotesProvider
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:74:9-77:43
|
||||
android:authorities
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:76:13-47
|
||||
android:multiprocess
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:77:13-40
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:75:13-63
|
||||
receiver#net.micode.notes.widget.NoteWidgetProvider_2x
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:79:9-92:20
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:81:13-50
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:82:13-36
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:80: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 D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:83:13-87:29
|
||||
action#android.appwidget.action.APPWIDGET_UPDATE
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:84:17-84
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:84:25-81
|
||||
action#android.appwidget.action.APPWIDGET_DELETED
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:85:17-85
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:85:25-82
|
||||
action#android.intent.action.PRIVACY_MODE_CHANGED
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:86:17-85
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:86:25-82
|
||||
meta-data#android.appwidget.provider
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:89:13-91:58
|
||||
android:resource
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:91:17-55
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:90:17-58
|
||||
receiver#net.micode.notes.widget.NoteWidgetProvider_4x
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:93:9-107:20
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:95:13-50
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:96:13-36
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:94:13-57
|
||||
receiver#net.micode.notes.ui.AlarmInitReceiver
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:109:9-114:20
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:110:13-36
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:109:19-55
|
||||
intent-filter#action:name:android.intent.action.BOOT_COMPLETED
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:111:13-113:29
|
||||
action#android.intent.action.BOOT_COMPLETED
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:112:17-79
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:112:25-76
|
||||
receiver#net.micode.notes.ui.AlarmReceiver
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:116:9-119:20
|
||||
android:process
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:118:13-38
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:117:13-61
|
||||
activity#net.micode.notes.ui.AlarmAlertActivity
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:121:9-126:20
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:123:13-45
|
||||
android:launchMode
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:124:13-48
|
||||
android:theme
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:125:13-75
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:122:13-50
|
||||
activity#net.micode.notes.ui.NotesPreferenceActivity
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:128:9-133:20
|
||||
android:label
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:130:13-54
|
||||
android:launchMode
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:131:13-43
|
||||
android:theme
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:132:13-60
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:129:13-71
|
||||
service#net.micode.notes.gtask.remote.GTaskSyncService
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:135:9-138:19
|
||||
android:exported
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:137:13-37
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:136:13-74
|
||||
meta-data#android.app.default_searchable
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:140:9-142:52
|
||||
android:value
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:142:13-49
|
||||
android:name
|
||||
ADDED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml:141:13-58
|
||||
uses-sdk
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml reason: use-sdk injection requested
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
MERGED from [com.google.android.material:material:1.10.0] C:\Users\10378\.gradle\caches\8.13\transforms\ed657c2504032b7a94cb05d64bda34d5\transformed\material-1.10.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [com.google.android.material:material:1.10.0] C:\Users\10378\.gradle\caches\8.13\transforms\ed657c2504032b7a94cb05d64bda34d5\transformed\material-1.10.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.constraintlayout:constraintlayout:2.1.4] C:\Users\10378\.gradle\caches\8.13\transforms\870de2a67c9be5b4f7ba5f2fd672777d\transformed\constraintlayout-2.1.4\AndroidManifest.xml:5:5-7:41
|
||||
MERGED from [androidx.constraintlayout:constraintlayout:2.1.4] C:\Users\10378\.gradle\caches\8.13\transforms\870de2a67c9be5b4f7ba5f2fd672777d\transformed\constraintlayout-2.1.4\AndroidManifest.xml:5:5-7:41
|
||||
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\253ea21f9554755940a8db3922afaeff\transformed\appcompat-resources-1.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.appcompat:appcompat-resources:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\253ea21f9554755940a8db3922afaeff\transformed\appcompat-resources-1.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.appcompat:appcompat:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\9193172717a5ca3eb1d6453fe3e6bfa7\transformed\appcompat-1.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.appcompat:appcompat:1.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\9193172717a5ca3eb1d6453fe3e6bfa7\transformed\appcompat-1.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.viewpager2:viewpager2:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\d5e3c0fc96934450134f763386936834\transformed\viewpager2-1.0.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.viewpager2:viewpager2:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\d5e3c0fc96934450134f763386936834\transformed\viewpager2-1.0.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.fragment:fragment:1.3.6] C:\Users\10378\.gradle\caches\8.13\transforms\d7e369ba3abc83dc6eb17d2b9ff2b16e\transformed\fragment-1.3.6\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.fragment:fragment:1.3.6] C:\Users\10378\.gradle\caches\8.13\transforms\d7e369ba3abc83dc6eb17d2b9ff2b16e\transformed\fragment-1.3.6\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.activity:activity:1.8.0] C:\Users\10378\.gradle\caches\8.13\transforms\4d6dea971ad80dc04c21708a717167ea\transformed\activity-1.8.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.activity:activity:1.8.0] C:\Users\10378\.gradle\caches\8.13\transforms\4d6dea971ad80dc04c21708a717167ea\transformed\activity-1.8.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\48c4c6d14791ee6cec92f7438b041848\transformed\emoji2-views-helper-1.2.0\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.emoji2:emoji2-views-helper:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\48c4c6d14791ee6cec92f7438b041848\transformed\emoji2-views-helper-1.2.0\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.drawerlayout:drawerlayout:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\8aefd914ef407cb79d151c2844281eb1\transformed\drawerlayout-1.1.1\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.drawerlayout:drawerlayout:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\8aefd914ef407cb79d151c2844281eb1\transformed\drawerlayout-1.1.1\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.coordinatorlayout:coordinatorlayout:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\2f69197fad576b29d6a5e0f895e3aeb9\transformed\coordinatorlayout-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.coordinatorlayout:coordinatorlayout:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\2f69197fad576b29d6a5e0f895e3aeb9\transformed\coordinatorlayout-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.dynamicanimation:dynamicanimation:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\15c4f2ae4253de18a0c7852b333c0870\transformed\dynamicanimation-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.dynamicanimation:dynamicanimation:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\15c4f2ae4253de18a0c7852b333c0870\transformed\dynamicanimation-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.transition:transition:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f090351ecbad81af69788a152edefd31\transformed\transition-1.2.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.transition:transition:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f090351ecbad81af69788a152edefd31\transformed\transition-1.2.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\3fd560b09a657265f043b6181d3cad63\transformed\vectordrawable-animated-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.vectordrawable:vectordrawable-animated:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\3fd560b09a657265f043b6181d3cad63\transformed\vectordrawable-animated-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\25cc9b6c6f46a5024d85c2da5b360d5f\transformed\vectordrawable-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.vectordrawable:vectordrawable:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\25cc9b6c6f46a5024d85c2da5b360d5f\transformed\vectordrawable-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.legacy:legacy-support-core-utils:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\dc979c0b8b75e85bf4f176a761287089\transformed\legacy-support-core-utils-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.legacy:legacy-support-core-utils:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\dc979c0b8b75e85bf4f176a761287089\transformed\legacy-support-core-utils-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.loader:loader:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\e83b86d57eb58c7c76ab2665efee131c\transformed\loader-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.loader:loader:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\e83b86d57eb58c7c76ab2665efee131c\transformed\loader-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.savedstate:savedstate:1.2.1] C:\Users\10378\.gradle\caches\8.13\transforms\3cd917734a573e15a1ed51b3d437c18f\transformed\savedstate-1.2.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.savedstate:savedstate:1.2.1] C:\Users\10378\.gradle\caches\8.13\transforms\3cd917734a573e15a1ed51b3d437c18f\transformed\savedstate-1.2.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\8fdc621be8d3dd6a3c8f1f413cf45d5f\transformed\lifecycle-livedata-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\8fdc621be8d3dd6a3c8f1f413cf45d5f\transformed\lifecycle-livedata-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\0316481e296926d0b7aaa92fc9d0879d\transformed\lifecycle-livedata-core-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-livedata-core:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\0316481e296926d0b7aaa92fc9d0879d\transformed\lifecycle-livedata-core-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\aa81dc7b2bc51662cef11e0791bbccc9\transformed\lifecycle-viewmodel-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\aa81dc7b2bc51662cef11e0791bbccc9\transformed\lifecycle-viewmodel-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-runtime:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\bf4089128f1f860ab38b60b53569d520\transformed\lifecycle-runtime-2.6.1\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-runtime:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\bf4089128f1f860ab38b60b53569d520\transformed\lifecycle-runtime-2.6.1\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\85be53262d2521c6dcf63c409a54c35e\transformed\lifecycle-viewmodel-savedstate-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\85be53262d2521c6dcf63c409a54c35e\transformed\lifecycle-viewmodel-savedstate-2.6.1\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.core:core-ktx:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\03335d5232404a4d38ccc4e74bc998ab\transformed\core-ktx-1.9.0\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.core:core-ktx:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\03335d5232404a4d38ccc4e74bc998ab\transformed\core-ktx-1.9.0\AndroidManifest.xml:5:5-44
|
||||
MERGED from [androidx.viewpager:viewpager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\de3f4c52d4b0fdcc70f69eab382f3d12\transformed\viewpager-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.viewpager:viewpager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\de3f4c52d4b0fdcc70f69eab382f3d12\transformed\viewpager-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.recyclerview:recyclerview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\71f6c76cdbc8be36c07e3dc59644ba39\transformed\recyclerview-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.recyclerview:recyclerview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\71f6c76cdbc8be36c07e3dc59644ba39\transformed\recyclerview-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.customview:customview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\46a1220a5d503e2a05755c314bee8b16\transformed\customview-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.customview:customview:1.1.0] C:\Users\10378\.gradle\caches\8.13\transforms\46a1220a5d503e2a05755c314bee8b16\transformed\customview-1.1.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\7e23495443aa5b2a0afac798e6faa601\transformed\cursoradapter-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.cursoradapter:cursoradapter:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\7e23495443aa5b2a0afac798e6faa601\transformed\cursoradapter-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.cardview:cardview:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\a0953f93c0e20abd38f655613f7b3a90\transformed\cardview-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.cardview:cardview:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\a0953f93c0e20abd38f655613f7b3a90\transformed\cardview-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:21:5-44
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:21:5-23:41
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:21:5-23:41
|
||||
MERGED from [androidx.tracing:tracing:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\9c51bb1fa58bd8be09c4e0e0ecfd97c7\transformed\tracing-1.0.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.tracing:tracing:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\9c51bb1fa58bd8be09c4e0e0ecfd97c7\transformed\tracing-1.0.0\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\f82167c09e6ae91837d5b49ea1000efe\transformed\versionedparcelable-1.1.1\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.versionedparcelable:versionedparcelable:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\f82167c09e6ae91837d5b49ea1000efe\transformed\versionedparcelable-1.1.1\AndroidManifest.xml:20:5-22:41
|
||||
MERGED from [androidx.arch.core:core-runtime:2.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f834c8cdbec868b61611d31b352d57e2\transformed\core-runtime-2.2.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.arch.core:core-runtime:2.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\f834c8cdbec868b61611d31b352d57e2\transformed\core-runtime-2.2.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.interpolator:interpolator:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\0d41002bdfd7c1dabad725943b1ed8e9\transformed\interpolator-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.interpolator:interpolator:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\0d41002bdfd7c1dabad725943b1ed8e9\transformed\interpolator-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.documentfile:documentfile:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\53b765b4f3e71482b1bc2f1c233d0225\transformed\documentfile-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.documentfile:documentfile:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\53b765b4f3e71482b1bc2f1c233d0225\transformed\documentfile-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.localbroadcastmanager:localbroadcastmanager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\6df0be6c3fac32bc396c1462157bc500\transformed\localbroadcastmanager-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.localbroadcastmanager:localbroadcastmanager:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\6df0be6c3fac32bc396c1462157bc500\transformed\localbroadcastmanager-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.print:print:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\8a8e23bd4d6d86f3c9260a14e3fb93d7\transformed\print-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.print:print:1.0.0] C:\Users\10378\.gradle\caches\8.13\transforms\8a8e23bd4d6d86f3c9260a14e3fb93d7\transformed\print-1.0.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.annotation:annotation-experimental:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\85ce0127863c5903b3a85662f2e1090e\transformed\annotation-experimental-1.3.0\AndroidManifest.xml:20:5-44
|
||||
MERGED from [androidx.annotation:annotation-experimental:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\85ce0127863c5903b3a85662f2e1090e\transformed\annotation-experimental-1.3.0\AndroidManifest.xml:20:5-44
|
||||
android:targetSdkVersion
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
android:minSdkVersion
|
||||
INJECTED from D:\Android_Studio\Notes-master\app\src\main\AndroidManifest.xml
|
||||
provider#androidx.startup.InitializationProvider
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:24:9-32:20
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:24:9-32:20
|
||||
MERGED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:24:9-32:20
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:24:9-32:20
|
||||
MERGED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:24:9-32:20
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:26:9-30:34
|
||||
MERGED from [androidx.startup:startup-runtime:1.1.1] C:\Users\10378\.gradle\caches\8.13\transforms\5b2084b85d0b8f58b7a5c610eddf4201\transformed\startup-runtime-1.1.1\AndroidManifest.xml:26:9-30:34
|
||||
tools:node
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:28:13-31
|
||||
android:authorities
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:26:13-68
|
||||
android:exported
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:27:13-37
|
||||
android:name
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:25:13-67
|
||||
meta-data#androidx.emoji2.text.EmojiCompatInitializer
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:29:13-31:52
|
||||
android:value
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:31:17-49
|
||||
android:name
|
||||
ADDED from [androidx.emoji2:emoji2:1.2.0] C:\Users\10378\.gradle\caches\8.13\transforms\bfa9cd8b68d1ff1df5e7bfe6b1b175b5\transformed\emoji2-1.2.0\AndroidManifest.xml:30:17-75
|
||||
meta-data#androidx.lifecycle.ProcessLifecycleInitializer
|
||||
ADDED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:29:13-31:52
|
||||
android:value
|
||||
ADDED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:31:17-49
|
||||
android:name
|
||||
ADDED from [androidx.lifecycle:lifecycle-process:2.6.1] C:\Users\10378\.gradle\caches\8.13\transforms\393ab09f0ce39ac79f37ed07c72b8b1d\transformed\lifecycle-process-2.6.1\AndroidManifest.xml:30:17-78
|
||||
permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:22:5-24:47
|
||||
android:protectionLevel
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:24:9-44
|
||||
android:name
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:23:9-81
|
||||
permission#net.micode.notes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:22:5-24:47
|
||||
android:protectionLevel
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:24:9-44
|
||||
android:name
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:23:9-81
|
||||
uses-permission#${applicationId}.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:26:5-97
|
||||
android:name
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:26:22-94
|
||||
uses-permission#net.micode.notes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:26:5-97
|
||||
android:name
|
||||
ADDED from [androidx.core:core:1.9.0] C:\Users\10378\.gradle\caches\8.13\transforms\7699c2b1350bc9ca59e9ccf72b7bc4e9\transformed\core-1.9.0\AndroidManifest.xml:26:22-94
|
||||
meta-data#androidx.profileinstaller.ProfileInstallerInitializer
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:29:13-31:52
|
||||
android:value
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:31:17-49
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:30:17-85
|
||||
receiver#androidx.profileinstaller.ProfileInstallReceiver
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:34:9-52:20
|
||||
android:enabled
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:37:13-35
|
||||
android:exported
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:38:13-36
|
||||
android:permission
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:39:13-57
|
||||
android:directBootAware
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:36:13-44
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:35:13-76
|
||||
intent-filter#action:name:androidx.profileinstaller.action.INSTALL_PROFILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:40:13-42:29
|
||||
action#androidx.profileinstaller.action.INSTALL_PROFILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:41:17-91
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:41:25-88
|
||||
intent-filter#action:name:androidx.profileinstaller.action.SKIP_FILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:43:13-45:29
|
||||
action#androidx.profileinstaller.action.SKIP_FILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:44:17-85
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:44:25-82
|
||||
intent-filter#action:name:androidx.profileinstaller.action.SAVE_PROFILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:46:13-48:29
|
||||
action#androidx.profileinstaller.action.SAVE_PROFILE
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:47:17-88
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:47:25-85
|
||||
intent-filter#action:name:androidx.profileinstaller.action.BENCHMARK_OPERATION
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:49:13-51:29
|
||||
action#androidx.profileinstaller.action.BENCHMARK_OPERATION
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:50:17-95
|
||||
android:name
|
||||
ADDED from [androidx.profileinstaller:profileinstaller:1.3.0] C:\Users\10378\.gradle\caches\8.13\transforms\e59e35a0826f049bad7349147760bd58\transformed\profileinstaller-1.3.0\AndroidManifest.xml:50:25-92
|
||||
Binary file not shown.
@ -1,21 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@ -1,26 +0,0 @@
|
||||
package net.micode.notes;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("net.micode.notes", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
package net.micode.notes;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EdgeToEdge.enable(this);
|
||||
setContentView(R.layout.activity_main);
|
||||
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
|
||||
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
|
||||
return insets;
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -1,47 +0,0 @@
|
||||
package net.micode_master
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import net.micode_master.ui.theme.NotesmasterTheme
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
enableEdgeToEdge()
|
||||
setContent {
|
||||
NotesmasterTheme {
|
||||
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
||||
Greeting(
|
||||
name = "Android",
|
||||
modifier = Modifier.padding(innerPadding)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Greeting(name: String, modifier: Modifier = Modifier) {
|
||||
Text(
|
||||
text = "Hello $name!",
|
||||
modifier = modifier
|
||||
)
|
||||
}
|
||||
|
||||
@Preview(showBackground = true)
|
||||
@Composable
|
||||
fun GreetingPreview() {
|
||||
NotesmasterTheme {
|
||||
Greeting("Android")
|
||||
}
|
||||
}
|
||||
@ -1,305 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,90 +0,0 @@
|
||||
/*
|
||||
* 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();
|
||||
private boolean mIs24HourView;
|
||||
private OnDateTimeSetListener mOnDateTimeSetListener;
|
||||
private DateTimePicker mDateTimePicker;
|
||||
|
||||
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);
|
||||
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));
|
||||
}
|
||||
|
||||
public void onClick(DialogInterface arg0, int arg1) {
|
||||
if (mOnDateTimeSetListener != null) {
|
||||
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* 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);
|
||||
mPopupMenu = new PopupMenu(context, mButton);
|
||||
mMenu = mPopupMenu.getMenu();
|
||||
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* 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 {
|
||||
public static final String [] PROJECTION = {
|
||||
NoteColumns.ID,
|
||||
NoteColumns.SNIPPET
|
||||
};
|
||||
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,873 +0,0 @@
|
||||
/*
|
||||
* 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.ContentUris;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Paint;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.DateUtils;
|
||||
import android.text.style.BackgroundColorSpan;
|
||||
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.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.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;
|
||||
}
|
||||
|
||||
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
|
||||
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);
|
||||
}
|
||||
|
||||
private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
|
||||
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);
|
||||
}
|
||||
|
||||
private static final Map<Integer, Integer> sFontSizeBtnsMap = new HashMap<Integer, Integer>();
|
||||
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);
|
||||
}
|
||||
|
||||
private static final Map<Integer, Integer> sFontSelectorSelectionMap = new HashMap<Integer, Integer>();
|
||||
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);
|
||||
}
|
||||
|
||||
private static final String TAG = "NoteEditActivity";
|
||||
|
||||
private HeadViewHolder mNoteHeaderHolder;
|
||||
|
||||
private View mHeadViewPanel;
|
||||
|
||||
private View mNoteBgColorSelector;
|
||||
|
||||
private View mFontSizeSelector;
|
||||
|
||||
private EditText mNoteEditor;
|
||||
|
||||
private View mNoteEditorPanel;
|
||||
|
||||
private WorkingNote mWorkingNote;
|
||||
|
||||
private SharedPreferences mSharedPrefs;
|
||||
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 = "";
|
||||
|
||||
/**
|
||||
* Starting from the searched result
|
||||
*/
|
||||
if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) {
|
||||
noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
|
||||
mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY);
|
||||
}
|
||||
|
||||
if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) {
|
||||
Intent jump = new Intent(this, NotesListActivity.class);
|
||||
startActivity(jump);
|
||||
showToast(R.string.error_note_not_exist);
|
||||
finish();
|
||||
return false;
|
||||
} else {
|
||||
mWorkingNote = WorkingNote.load(this, noteId);
|
||||
if (mWorkingNote == null) {
|
||||
Log.e(TAG, "load note failed with note id" + noteId);
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
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())) {
|
||||
// New note
|
||||
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));
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
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
|
||||
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())) {
|
||||
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);
|
||||
} 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()) {
|
||||
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));
|
||||
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();
|
||||
}
|
||||
});
|
||||
builder.setNegativeButton(android.R.string.cancel, null);
|
||||
builder.show();
|
||||
break;
|
||||
case R.id.menu_font_size:
|
||||
mFontSizeSelector.setVisibility(View.VISIBLE);
|
||||
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
|
||||
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());
|
||||
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.putExtra(Intent.EXTRA_TEXT, info);
|
||||
intent.setType("text/plain");
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
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());
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private void deleteCurrentNote() {
|
||||
if (mWorkingNote.existInDatabase()) {
|
||||
HashSet<Long> ids = new HashSet<Long>();
|
||||
long id = mWorkingNote.getNoteId();
|
||||
if (id != Notes.ID_ROOT_FOLDER) {
|
||||
ids.add(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);
|
||||
}
|
||||
|
||||
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()));
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
public void onWidgetChanged() {
|
||||
updateWidget();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
int length = edit.length();
|
||||
edit.append(text);
|
||||
edit.requestFocus();
|
||||
edit.setSelection(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);
|
||||
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;
|
||||
if (mWorkingNote.getCheckListMode() == TextNote.MODE_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;
|
||||
} 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();
|
||||
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
|
||||
*/
|
||||
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");
|
||||
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();
|
||||
}
|
||||
}
|
||||
@ -1,217 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
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:" ;
|
||||
|
||||
private static final Map<String, Integer> sSchemaActionResMap = new HashMap<String, Integer>();
|
||||
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
|
||||
*/
|
||||
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;
|
||||
|
||||
public NoteEditText(Context context) {
|
||||
super(context, null);
|
||||
mIndex = 0;
|
||||
}
|
||||
|
||||
public void setIndex(int index) {
|
||||
mIndex = index;
|
||||
}
|
||||
|
||||
public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
|
||||
mOnTextViewChangeListener = listener;
|
||||
}
|
||||
|
||||
public NoteEditText(Context context, AttributeSet attrs) {
|
||||
super(context, attrs, android.R.attr.editTextStyle);
|
||||
}
|
||||
|
||||
public NoteEditText(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
@Override
|
||||
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 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) {
|
||||
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) {
|
||||
case KeyEvent.KEYCODE_DEL:
|
||||
if (mOnTextViewChangeListener != null) {
|
||||
if (0 == mSelectionStartBeforeDelete && mIndex != 0) {
|
||||
mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString());
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
Log.d(TAG, "OnTextViewChangeListener was not seted");
|
||||
}
|
||||
break;
|
||||
case KeyEvent.KEYCODE_ENTER:
|
||||
if (mOnTextViewChangeListener != null) {
|
||||
int selectionStart = getSelectionStart();
|
||||
String text = getText().subSequence(selectionStart, length()).toString();
|
||||
setText(getText().subSequence(0, selectionStart));
|
||||
mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text);
|
||||
} else {
|
||||
Log.d(TAG, "OnTextViewChangeListener was not seted");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return super.onKeyUp(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
|
||||
if (mOnTextViewChangeListener != null) {
|
||||
if (!focused && TextUtils.isEmpty(getText())) {
|
||||
mOnTextViewChangeListener.onTextChange(mIndex, false);
|
||||
} else {
|
||||
mOnTextViewChangeListener.onTextChange(mIndex, 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);
|
||||
if (urls.length == 1) {
|
||||
int defaultResId = 0;
|
||||
for(String schema: sSchemaActionResMap.keySet()) {
|
||||
if(urls[0].getURL().indexOf(schema) >= 0) {
|
||||
defaultResId = sSchemaActionResMap.get(schema);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (defaultResId == 0) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1,224 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
public NoteItemData(Context context, Cursor cursor) {
|
||||
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) {
|
||||
mIsLastItem = cursor.isLast() ? true : false;
|
||||
mIsFirstItem = cursor.isFirst() ? true : false;
|
||||
mIsOnlyOneItem = (cursor.getCount() == 1);
|
||||
mIsMultiNotesFollowingFolder = false;
|
||||
mIsOneNoteFollowingFolder = false;
|
||||
|
||||
if (mType == Notes.TYPE_NOTE && !mIsFirstItem) {
|
||||
int position = cursor.getPosition();
|
||||
if (cursor.moveToPrevious()) {
|
||||
if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER
|
||||
|| cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) {
|
||||
if (cursor.getCount() > (position + 1)) {
|
||||
mIsMultiNotesFollowingFolder = true;
|
||||
} else {
|
||||
mIsOneNoteFollowingFolder = 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);
|
||||
}
|
||||
|
||||
public boolean isCallRecord() {
|
||||
return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber));
|
||||
}
|
||||
|
||||
public static int getNoteType(Cursor cursor) {
|
||||
return cursor.getInt(TYPE_COLUMN);
|
||||
}
|
||||
}
|
||||
@ -1,184 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
|
||||
public class NotesListAdapter extends CursorAdapter {
|
||||
private static final String TAG = "NotesListAdapter";
|
||||
private Context mContext;
|
||||
private HashMap<Integer, Boolean> mSelectedIndex;
|
||||
private int mNotesCount;
|
||||
private boolean mChoiceMode;
|
||||
|
||||
public static class AppWidgetAttribute {
|
||||
public int widgetId;
|
||||
public int widgetType;
|
||||
};
|
||||
|
||||
public NotesListAdapter(Context context) {
|
||||
super(context, null);
|
||||
mSelectedIndex = new HashMap<Integer, Boolean>();
|
||||
mContext = context;
|
||||
mNotesCount = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
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) {
|
||||
NoteItemData itemData = new NoteItemData(context, cursor);
|
||||
((NotesListItem) view).bind(context, itemData, mChoiceMode,
|
||||
isSelectedItem(cursor.getPosition()));
|
||||
}
|
||||
}
|
||||
|
||||
public void setCheckedItem(final int position, final boolean checked) {
|
||||
mSelectedIndex.put(position, checked);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public boolean isInChoiceMode() {
|
||||
return mChoiceMode;
|
||||
}
|
||||
|
||||
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<Long> getSelectedItemIds() {
|
||||
HashSet<Long> itemSet = new HashSet<Long>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return itemSet;
|
||||
}
|
||||
|
||||
public HashSet<AppWidgetAttribute> getSelectedWidget() {
|
||||
HashSet<AppWidgetAttribute> itemSet = new HashSet<AppWidgetAttribute>();
|
||||
for (Integer position : mSelectedIndex.keySet()) {
|
||||
if (mSelectedIndex.get(position) == true) {
|
||||
Cursor c = (Cursor) getItem(position);
|
||||
if (c != null) {
|
||||
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<Boolean> values = mSelectedIndex.values();
|
||||
if (null == values) {
|
||||
return 0;
|
||||
}
|
||||
Iterator<Boolean> iter = values.iterator();
|
||||
int count = 0;
|
||||
while (iter.hasNext()) {
|
||||
if (true == iter.next()) {
|
||||
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
|
||||
protected void onContentChanged() {
|
||||
super.onContentChanged();
|
||||
calcNotesCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
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++;
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "Invalid cursor");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,122 +0,0 @@
|
||||
/*
|
||||
* 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);
|
||||
inflate(context, R.layout.note_item, this);
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
|
||||
mCallName.setVisibility(View.GONE);
|
||||
mAlert.setVisibility(View.VISIBLE);
|
||||
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate()));
|
||||
|
||||
setBackground(data);
|
||||
}
|
||||
|
||||
private void setBackground(NoteItemData data) {
|
||||
int id = data.getBgColorId();
|
||||
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 {
|
||||
setBackgroundResource(NoteItemBgResources.getFolderBgRes());
|
||||
}
|
||||
}
|
||||
|
||||
public NoteItemData getItemData() {
|
||||
return mItemData;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue