diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/MiNote.iml b/.idea/MiNote.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/MiNote.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..6235a06 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/app/build.gradle.kts b/src/app/build.gradle.kts index 1c9e338..51f2bc1 100644 --- a/src/app/build.gradle.kts +++ b/src/app/build.gradle.kts @@ -14,13 +14,6 @@ android { versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - 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"); - } } buildTypes { @@ -33,6 +26,13 @@ android { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } + 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 { @@ -41,10 +41,18 @@ dependencies { implementation(libs.material) implementation(libs.activity) implementation(libs.constraintlayout) - implementation(files("D:\\code\\androidcode\\Notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar")) - implementation(files("D:\\code\\androidcode\\Notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-win-4.5.14.jar")) - implementation(files("D:\\code\\androidcode\\Notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpcore-4.4.16.jar")) + //implementation(fileTree(mapOf("dir" to "E:\\AS\\httpcomponents-client-4.5.14-bin\\lib", "include" to listOf("*.aar", "*.jar"), "exclude" to listOf("")))) + // 部分需要重新修改 +// implementation(fileTree(mapOf( +// "dir" to "D:\\Code\\AndroidCode\\Notesmaster\\httpcomponents-client-4.5.14-bin\\lib", +// "include" to listOf("*.aar", "*.jar"), +// "exclude" to listOf("") +// ))) + //修改为如下代码: + implementation(files("E:\\AS\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar")) + implementation(files("E:\\AS\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-win-4.5.14.jar")) + implementation(files("E:\\AS\\httpcomponents-client-4.5.14-bin\\lib\\httpcore-4.4.16.jar")) testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) -} +} \ No newline at end of file diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml index e061ed5..1af8897 100644 --- a/src/app/src/main/AndroidManifest.xml +++ b/src/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.Notesmaster" + android:theme="@style/Theme.Notes" tools:targetApi="31"> - \ No newline at end of file + diff --git a/src/app/src/main/java/net/micode/notes/data/Notes.java b/src/app/src/main/java/net/micode/notes/data/Notes.java index a8b97b2..f240604 100644 --- a/src/app/src/main/java/net/micode/notes/data/Notes.java +++ b/src/app/src/main/java/net/micode/notes/data/Notes.java @@ -226,127 +226,6 @@ public class Notes { */ public static final String DATA3 = "data3"; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** * Generic data column, the meaning is {@link #MIMETYPE} specific, used for * TEXT data type diff --git a/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java index 3a2050b..4a2a3dd 100644 --- a/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ b/src/app/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -26,29 +26,54 @@ import org.json.JSONObject; public class MetaData extends Task { + /* + * 功能描述:得到类的简写名称存入字符串TAG中 + * 实现过程:调用getSimpleName ()函数 + */ private final static String TAG = MetaData.class.getSimpleName(); private String mRelatedGid = null; - + /* + * 功能描述:设置数据,即生成元数据库 + * 实现过程:调用JSONObject库函数put (),Task类中的setNotes ()和setName ()函数 + * 参数注解: + */ public void setMeta(String gid, JSONObject metaInfo) { + //对函数块进行注释 try { metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); + /* + * 将这对键值放入metaInfo这个jsonobject对象中 + */ } catch (JSONException e) { Log.e(TAG, "failed to put related gid"); + /* + * 输出错误信息 + */ + } setNotes(metaInfo.toString()); setName(GTaskStringUtils.META_NOTE_NAME); } - + /* + * 功能描述:获取相关联的Gid + */ public String getRelatedGid() { return mRelatedGid; } - + /* + * 功能描述:判断当前数据是否为空,若为空则返回真即值得保存 + * Made By CuiCan + */ @Override public boolean isWorthSaving() { return getNotes() != null; } - + /* + * 功能描述:使用远程json数据对象设置元数据内容 + * 实现过程:调用父类Task中的setContentByRemoteJSON ()函数,并 + * 参数注解: + */ @Override public void setContentByRemoteJSON(JSONObject js) { super.setContentByRemoteJSON(js); @@ -57,26 +82,47 @@ public class MetaData extends Task { JSONObject metaInfo = new JSONObject(getNotes().trim()); mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { - Log.w(TAG, "failed to get related gid"); + Log.w(TAG, "failed to get related gid");/* + * 输出警告信息 + */ mRelatedGid = null; } } } - + /* + * 功能描述:使用本地json数据对象设置元数据内容,一般不会用到,若用到,则抛出异常 + * Made By CuiCan + */ @Override public void setContentByLocalJSON(JSONObject js) { // this function should not be called throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + /* + *传递非法参数异常 + */ } - + /* + * 功能描述:从元数据内容中获取本地json对象,一般不会用到,若用到,则抛出异常 + * Made By CuiCan + */ @Override public JSONObject getLocalJSONFromContent() { throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); + /* + * 传递非法参数异常 + * Made By Cui Can + */ } - + /* + * 功能描述:获取同步动作状态,一般不会用到,若用到,则抛出异常 + * Made By CuiCan + */ @Override public int getSyncAction(Cursor c) { - throw new IllegalAccessError("MetaData:getSyncAction should not be called"); + throw new IllegalAccessError("MetaData:getSyncAction should not be called");/* + * 传递非法参数异常 + * Made By Cui Can + */ } } diff --git a/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java index a1deb99..43cbee6 100644 --- a/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ b/src/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -82,7 +82,6 @@ public class GTaskASyncTask extends AsyncTask { Notification notification=builder.getNotification(); mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); } - @Override protected Integer doInBackground(Void... unused) { publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity diff --git a/src/app/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/app/src/main/java/net/micode/notes/ui/NoteItemData.java index 0f5a878..4acfd7c 100644 --- a/src/app/src/main/java/net/micode/notes/ui/NoteItemData.java +++ b/src/app/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -28,18 +28,18 @@ 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, + 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; diff --git a/src/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/app/src/main/java/net/micode/notes/ui/NotesListActivity.java index e843aec..2481b81 100644 --- a/src/app/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -79,6 +79,8 @@ import java.io.InputStreamReader; import java.util.HashSet; public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + public static int secret_mode = 0; + private int mode=-1; private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; private static final int FOLDER_LIST_QUERY_TOKEN = 1; @@ -139,6 +141,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.note_list); + getWindow().setBackgroundDrawableResource(R.drawable.xy); + getWindow().setBackgroundDrawableResource(R.drawable.ab); + getWindow().setBackgroundDrawableResource(R.drawable.cd); initResources(); /** @@ -411,12 +416,36 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt private void startAsyncNotesListQuery() { String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION : NORMAL_SELECTION; - mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, - Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { - String.valueOf(mCurrentFolderId) - }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); - } + if(secret_mode == 0) { + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[]{ + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + else{ + String str1 = "520"; + String [] PROJECTION = new String [] { //定义一个新的PROJECTION数组,只换掉SNIPPET + 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, + str1, + NoteColumns.TYPE, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + }; + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, PROJECTION, selection, new String[]{ + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + } private final class BackgroundQueryHandler extends AsyncQueryHandler { public BackgroundQueryHandler(ContentResolver contentResolver) { super(contentResolver); @@ -763,6 +792,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt @Override public boolean onPrepareOptionsMenu(Menu menu) { menu.clear(); + if (mState == ListEditState.NOTE_LIST) { getMenuInflater().inflate(R.menu.note_list, menu); // set sync or sync_cancel @@ -775,12 +805,36 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } else { Log.e(TAG, "Wrong state:" + mState); } + + if(mode==-1){ + menu.findItem(R.id.menu_xy).setVisible(false); + }else if(mode==0){ + menu.findItem(R.id.menu_ab).setVisible(false); + } else if (mode==1) { + menu.findItem(R.id.menu_cd).setVisible(false); + } + return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case R.id.menu_xy:{ + mode=-1; + getWindow().setBackgroundDrawableResource(R.drawable.xy); + break; + } + case R.id.menu_ab:{ + mode=0; + getWindow().setBackgroundDrawableResource(R.drawable.ab); + break; + } + case R.id.menu_cd:{ + mode=-1; + getWindow().setBackgroundDrawableResource(R.drawable.cd); + break; + } case R.id.menu_new_folder: { showCreateOrModifyFolderDialog(true); break; @@ -812,6 +866,48 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt case R.id.menu_search: onSearchRequested(); break; + case R.id.menu_secret: { //进入私密模式 + secret_mode = 1; + AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this); + dialog.setTitle("重要提醒"); + dialog.setMessage("您确认进入私密模式吗?"); + dialog.setCancelable(false); + dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + startAsyncNotesListQuery(); + Toast.makeText(NotesListActivity.this,"您已进入私密模式",Toast.LENGTH_SHORT).show(); + } + }); + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which){} + }); + dialog.show(); + startAsyncNotesListQuery(); + Toast.makeText(this,"您已进入私密模式",Toast.LENGTH_SHORT).show(); + break; + } + case R.id.menu_quit_secret:{ //退出私密模式 + secret_mode = 0; + AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this); + dialog.setTitle("重要提醒"); + dialog.setMessage("您确认退出私密模式吗?"); + dialog.setCancelable(false); + dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + startAsyncNotesListQuery(); + Toast.makeText(NotesListActivity.this,"您已退出私密模式",Toast.LENGTH_SHORT).show(); + } + }); + dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which){} + }); + dialog.show(); + break; + } default: break; } diff --git a/src/app/src/main/res/drawable-hdpi/ab.jpeg b/src/app/src/main/res/drawable-hdpi/ab.jpeg new file mode 100644 index 0000000..52c5cf6 Binary files /dev/null and b/src/app/src/main/res/drawable-hdpi/ab.jpeg differ diff --git a/src/app/src/main/res/drawable-hdpi/cd.png b/src/app/src/main/res/drawable-hdpi/cd.png new file mode 100644 index 0000000..71042ad Binary files /dev/null and b/src/app/src/main/res/drawable-hdpi/cd.png differ diff --git a/src/app/src/main/res/drawable-hdpi/xy.png b/src/app/src/main/res/drawable-hdpi/xy.png new file mode 100644 index 0000000..837b185 Binary files /dev/null and b/src/app/src/main/res/drawable-hdpi/xy.png differ diff --git a/src/app/src/main/res/layout/note_list.xml b/src/app/src/main/res/layout/note_list.xml index 6b25d38..487fe27 100644 --- a/src/app/src/main/res/layout/note_list.xml +++ b/src/app/src/main/res/layout/note_list.xml @@ -18,8 +18,8 @@ + android:layout_height="fill_parent"> + + + + + + + + + + + diff --git a/src/app/src/main/res/menu/sub_folder.xml b/src/app/src/main/res/menu/sub_folder.xml index b00de26..41fe907 100644 --- a/src/app/src/main/res/menu/sub_folder.xml +++ b/src/app/src/main/res/menu/sub_folder.xml @@ -21,4 +21,11 @@ + + + \ No newline at end of file diff --git a/src/app/src/main/res/values-night/themes.xml b/src/app/src/main/res/values-night/themes.xml index d2c68d1..ad0fd96 100644 --- a/src/app/src/main/res/values-night/themes.xml +++ b/src/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/src/app/src/main/res/values-zh-rCN/arrays.xml b/src/app/src/main/res/values-zh-rCN/arrays.xml index a092386..49e2d6e 100644 --- a/src/app/src/main/res/values-zh-rCN/arrays.xml +++ b/src/app/src/main/res/values-zh-rCN/arrays.xml @@ -20,4 +20,5 @@ 短信 邮件 + \ No newline at end of file diff --git a/src/app/src/main/res/values-zh-rCN/strings.xml b/src/app/src/main/res/values-zh-rCN/strings.xml index 09f75ed..a11c18e 100644 --- a/src/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/app/src/main/res/values-zh-rCN/strings.xml @@ -123,4 +123,6 @@ %1$s 条符合“%2$s”的搜索结果 + 私密模式 + 退出私密模式 diff --git a/src/app/src/main/res/values-zh-rTW/arrays.xml b/src/app/src/main/res/values-zh-rTW/arrays.xml index 5297209..471723c 100644 --- a/src/app/src/main/res/values-zh-rTW/arrays.xml +++ b/src/app/src/main/res/values-zh-rTW/arrays.xml @@ -20,4 +20,5 @@ 短信 郵件 + \ No newline at end of file diff --git a/src/app/src/main/res/values-zh-rTW/strings.xml b/src/app/src/main/res/values-zh-rTW/strings.xml index 3c41894..7a8de98 100644 --- a/src/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/app/src/main/res/values-zh-rTW/strings.xml @@ -124,4 +124,7 @@ %1$s 條符合”%2$s“的搜尋結果 + + 私密模式 + 退出私密模式 diff --git a/src/app/src/main/res/values/arrays.xml b/src/app/src/main/res/values/arrays.xml index e00210b..1ccd499 100644 --- a/src/app/src/main/res/values/arrays.xml +++ b/src/app/src/main/res/values/arrays.xml @@ -28,4 +28,5 @@ Messaging Email + \ No newline at end of file diff --git a/src/app/src/main/res/values/strings.xml b/src/app/src/main/res/values/strings.xml index 55df868..49bd179 100644 --- a/src/app/src/main/res/values/strings.xml +++ b/src/app/src/main/res/values/strings.xml @@ -15,8 +15,7 @@ limitations under the License. --> - + Notes Notes 2x2 Notes 4x4 @@ -39,6 +38,11 @@ /MIUI/notes/ notes_%s.txt + Background: xy + Background: ab + Background: cd + + (%d) New Folder Export text @@ -132,4 +136,6 @@ %1$s results for \"%2$s\" + 私密模式 + 退出私密模式 diff --git a/src/app/src/main/res/values/styles.xml b/src/app/src/main/res/values/styles.xml index d750e65..c1eddb2 100644 --- a/src/app/src/main/res/values/styles.xml +++ b/src/app/src/main/res/values/styles.xml @@ -63,7 +63,6 @@ \ No newline at end of file diff --git a/src/app/src/main/res/values/themes.xml b/src/app/src/main/res/values/themes.xml index 7c616ff..aa02b68 100644 --- a/src/app/src/main/res/values/themes.xml +++ b/src/app/src/main/res/values/themes.xml @@ -1,9 +1,9 @@ - -