From 9d298f4177bfc31dffbce731fe3f884f3170aefe Mon Sep 17 00:00:00 2001 From: mxvwfs5gq <2694470752@qq.com> Date: Thu, 12 Jun 2025 21:15:42 +0800 Subject: [PATCH] Update GTaskStringUtils.java --- .../micode/notes/tool/GTaskStringUtils.java | 266 ++++++++++++++---- 1 file changed, 218 insertions(+), 48 deletions(-) diff --git a/java/net/micode/notes/tool/GTaskStringUtils.java b/java/net/micode/notes/tool/GTaskStringUtils.java index 666b729..c144811 100644 --- a/java/net/micode/notes/tool/GTaskStringUtils.java +++ b/java/net/micode/notes/tool/GTaskStringUtils.java @@ -16,98 +16,268 @@ package net.micode.notes.tool; -public class GTaskStringUtils { +/** + * Google Tasks API 工具类 - 包含与Google Tasks API交互的所有常量定义 + * 包括: + * 1. JSON键名常量 + * 2. API动作类型常量 + * 3. 预定义文件夹名称 + * 4. 元数据标识符 + * + * 设计原则: + * - 所有常量按功能分组 + * - 添加枚举类型增强类型安全 + * - 补充必要的使用说明注释 + */ +public final class GTaskStringUtils { + + // 防止实例化 + private GTaskStringUtils() { + throw new AssertionError("This class cannot be instantiated"); + } + + /* ================== JSON 键名常量 ================== */ + + /** JSON字段:操作ID */ + public static final String GTASK_JSON_ACTION_ID = "action_id"; + + /** JSON字段:操作列表 */ + public static final String GTASK_JSON_ACTION_LIST = "action_list"; + + /** JSON字段:操作类型 */ + public static final String GTASK_JSON_ACTION_TYPE = "action_type"; + + /** JSON字段:创建者ID */ + public static final String GTASK_JSON_CREATOR_ID = "creator_id"; + + /** JSON字段:子实体 */ + public static final String GTASK_JSON_CHILD_ENTITY = "child_entity"; + + /** JSON字段:客户端版本 */ + public static final String GTASK_JSON_CLIENT_VERSION = "client_version"; + + /** JSON字段:完成状态 */ + public static final String GTASK_JSON_COMPLETED = "completed"; + + /** JSON字段:当前列表ID */ + public static final String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; - public final static String GTASK_JSON_ACTION_ID = "action_id"; + /** JSON字段:默认列表ID */ + public static final String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; - public final static String GTASK_JSON_ACTION_LIST = "action_list"; + /** JSON字段:删除标记 */ + public static final String GTASK_JSON_DELETED = "deleted"; - public final static String GTASK_JSON_ACTION_TYPE = "action_type"; + /** JSON字段:目标列表 */ + public static final String GTASK_JSON_DEST_LIST = "dest_list"; - public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create"; + /** JSON字段:目标父级 */ + public static final String GTASK_JSON_DEST_PARENT = "dest_parent"; - public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; + /** JSON字段:目标父级类型 */ + public static final String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; - public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move"; + /** JSON字段:实体增量 */ + public static final String GTASK_JSON_ENTITY_DELTA = "entity_delta"; - public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; + /** JSON字段:实体类型 */ + public static final String GTASK_JSON_ENTITY_TYPE = "entity_type"; - public final static String GTASK_JSON_CREATOR_ID = "creator_id"; + /** JSON字段:获取删除项 */ + public static final String GTASK_JSON_GET_DELETED = "get_deleted"; - public final static String GTASK_JSON_CHILD_ENTITY = "child_entity"; + /** JSON字段:唯一标识 */ + public static final String GTASK_JSON_ID = "id"; - public final static String GTASK_JSON_CLIENT_VERSION = "client_version"; + /** JSON字段:索引位置 */ + public static final String GTASK_JSON_INDEX = "index"; - public final static String GTASK_JSON_COMPLETED = "completed"; + /** JSON字段:最后修改时间 */ + public static final String GTASK_JSON_LAST_MODIFIED = "last_modified"; - public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; + /** JSON字段:最新同步点 */ + public static final String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; - public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; + /** JSON字段:列表ID */ + public static final String GTASK_JSON_LIST_ID = "list_id"; - public final static String GTASK_JSON_DELETED = "deleted"; + /** JSON字段:列表集合 */ + public static final String GTASK_JSON_LISTS = "lists"; - public final static String GTASK_JSON_DEST_LIST = "dest_list"; + /** JSON字段:名称 */ + public static final String GTASK_JSON_NAME = "name"; - public final static String GTASK_JSON_DEST_PARENT = "dest_parent"; + /** JSON字段:新ID */ + public static final String GTASK_JSON_NEW_ID = "new_id"; - public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; + /** JSON字段:笔记集合 */ + public static final String GTASK_JSON_NOTES = "notes"; - public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta"; + /** JSON字段:父级ID */ + public static final String GTASK_JSON_PARENT_ID = "parent_id"; - public final static String GTASK_JSON_ENTITY_TYPE = "entity_type"; + /** JSON字段:前置兄弟ID */ + public static final String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; - public final static String GTASK_JSON_GET_DELETED = "get_deleted"; + /** JSON字段:结果集 */ + public static final String GTASK_JSON_RESULTS = "results"; - public final static String GTASK_JSON_ID = "id"; + /** JSON字段:源列表 */ + public static final String GTASK_JSON_SOURCE_LIST = "source_list"; - public final static String GTASK_JSON_INDEX = "index"; + /** JSON字段:任务集合 */ + public static final String GTASK_JSON_TASKS = "tasks"; - public final static String GTASK_JSON_LAST_MODIFIED = "last_modified"; + /** JSON字段:类型标识 */ + public static final String GTASK_JSON_TYPE = "type"; - public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; + /* ================== 操作类型常量 ================== */ - public final static String GTASK_JSON_LIST_ID = "list_id"; + /** 操作类型:创建 */ + public static final String GTASK_JSON_ACTION_TYPE_CREATE = "create"; - public final static String GTASK_JSON_LISTS = "lists"; + /** 操作类型:获取所有 */ + public static final String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; - public final static String GTASK_JSON_NAME = "name"; + /** 操作类型:移动 */ + public static final String GTASK_JSON_ACTION_TYPE_MOVE = "move"; - public final static String GTASK_JSON_NEW_ID = "new_id"; + /** 操作类型:更新 */ + public static final String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; - public final static String GTASK_JSON_NOTES = "notes"; + /* ================== 实体类型常量 ================== */ - public final static String GTASK_JSON_PARENT_ID = "parent_id"; + /** 实体类型:分组 */ + public static final String GTASK_JSON_TYPE_GROUP = "GROUP"; - public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; + /** 实体类型:任务 */ + public static final String GTASK_JSON_TYPE_TASK = "TASK"; - public final static String GTASK_JSON_RESULTS = "results"; + /** JSON字段:用户 */ + public static final String GTASK_JSON_USER = "user"; - public final static String GTASK_JSON_SOURCE_LIST = "source_list"; + /* ================== 文件夹常量 ================== */ - public final static String GTASK_JSON_TASKS = "tasks"; + /** MIUI笔记文件夹前缀 */ + public static final String MIUI_FOLDER_PREFIX = "[MIUI_Notes]"; // 修正:PREFFIX → PREFIX - public final static String GTASK_JSON_TYPE = "type"; + /** 默认文件夹名称 */ + public static final String FOLDER_DEFAULT = "Default"; - public final static String GTASK_JSON_TYPE_GROUP = "GROUP"; + /** 通话记录文件夹名称 */ + public static final String FOLDER_CALL_NOTE = "Call_Note"; - public final static String GTASK_JSON_TYPE_TASK = "TASK"; + /** 元数据文件夹名称 */ + public static final String FOLDER_META = "METADATA"; - public final static String GTASK_JSON_USER = "user"; + /* ================== 元数据常量 ================== */ - public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]"; + /** 元数据头:Google Tasks ID */ + public static final String META_HEAD_GTASK_ID = "meta_gid"; - public final static String FOLDER_DEFAULT = "Default"; + /** 元数据头:笔记信息 */ + public static final String META_HEAD_NOTE = "meta_note"; - public final static String FOLDER_CALL_NOTE = "Call_Note"; + /** 元数据头:数据信息 */ + public static final String META_HEAD_DATA = "meta_data"; - public final static String FOLDER_META = "METADATA"; + /** 元数据笔记名称(警告用户不要修改) */ + public static final String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; - public final static String META_HEAD_GTASK_ID = "meta_gid"; + /* ================== 增强功能:操作类型枚举 ================== */ - public final static String META_HEAD_NOTE = "meta_note"; + /** + * Google Tasks操作类型枚举(增强类型安全性) + */ + public enum GTaskActionType { + CREATE(GTASK_JSON_ACTION_TYPE_CREATE), + GET_ALL(GTASK_JSON_ACTION_TYPE_GETALL), + MOVE(GTASK_JSON_ACTION_TYPE_MOVE), + UPDATE(GTASK_JSON_ACTION_TYPE_UPDATE); - public final static String META_HEAD_DATA = "meta_data"; + private final String actionValue; - public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; + GTaskActionType(String value) { + this.actionValue = value; + } -} + public String getValue() { + return actionValue; + } + + /** + * 从字符串值获取枚举实例 + * @param value 操作类型字符串 + * @return 对应的枚举实例,找不到时返回null + */ + public static GTaskActionType fromValue(String value) { + for (GTaskActionType type : values()) { + if (type.actionValue.equals(value)) { + return type; + } + } + return null; + } + } + + /* ================== 增强功能:实体类型枚举 ================== */ + + /** + * Google Tasks实体类型枚举 + */ + public enum GTaskEntityType { + GROUP(GTASK_JSON_TYPE_GROUP), + TASK(GTASK_JSON_TYPE_TASK); + + private final String typeValue; + + GTaskEntityType(String value) { + this.typeValue = value; + } + + public String getValue() { + return typeValue; + } + + public static GTaskEntityType fromValue(String value) { + for (GTaskEntityType type : values()) { + if (type.typeValue.equals(value)) { + return type; + } + } + return null; + } + } + + /* ================== 新功能:文件夹工具方法 ================== */ + + /** + * 生成同步文件夹名(添加MIUI前缀) + * @param folderName 原始文件夹名 + * @return 格式化后的带前缀文件夹名 + */ + public static String generateSyncFolderName(String folderName) { + return MIUI_FOLDER_PREFIX + folderName; + } + + /** + * 检查文件夹是否为MIUI同步文件夹 + * @param folderName 文件夹名称 + * @return 如果是MIUI同步文件夹返回true + */ + public static boolean isMiuiSyncFolder(String folderName) { + return folderName != null && folderName.startsWith(MIUI_FOLDER_PREFIX); + } + + /** + * 从MIUI同步文件夹名中提取原始文件夹名 + * @param miuiFolderName MIUI格式文件夹名 + * @return 原始文件夹名,如果不是MIUI格式返回null + */ + public static String extractOriginalFolderName(String miuiFolderName) { + if (isMiuiSyncFolder(miuiFolderName)) { + return miuiFolderName.substring(MIUI_FOLDER_PREFIX.length()); + } + return null; + } +} \ No newline at end of file