From 2f9930ea2a4d54c52c251325ef86652e4d0c67f3 Mon Sep 17 00:00:00 2001 From: karlsilver <2789175156@qq.com> Date: Thu, 15 May 2025 15:21:34 +0800 Subject: [PATCH] =?UTF-8?q?ResourceParser=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/micode/notes/tool/ResourceParser.java | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/java/net/micode/notes/tool/ResourceParser.java b/java/net/micode/notes/tool/ResourceParser.java index 1ad3ad6..e9385e1 100644 --- a/java/net/micode/notes/tool/ResourceParser.java +++ b/java/net/micode/notes/tool/ResourceParser.java @@ -22,24 +22,31 @@ import android.preference.PreferenceManager; import net.micode.notes.R; import net.micode.notes.ui.NotesPreferenceActivity; +// 该类用于解析和管理笔记的资源 public class ResourceParser { + // 定义背景颜色常量 public static final int YELLOW = 0; public static final int BLUE = 1; public static final int WHITE = 2; public static final int GREEN = 3; public static final int RED = 4; + // 默认背景颜色 public static final int BG_DEFAULT_COLOR = YELLOW; + // 定义字体大小常量 public static final int TEXT_SMALL = 0; public static final int TEXT_MEDIUM = 1; public static final int TEXT_LARGE = 2; public static final int TEXT_SUPER = 3; + // 默认字体大小 public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; + // 笔记编辑时的背景资源类 public static class NoteBgResources { + // 编辑时的背景资源数组 private final static int [] BG_EDIT_RESOURCES = new int [] { R.drawable.edit_yellow, R.drawable.edit_blue, @@ -48,6 +55,7 @@ public class ResourceParser { R.drawable.edit_red }; + // 编辑时标题的背景资源数组 private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { R.drawable.edit_title_yellow, R.drawable.edit_title_blue, @@ -56,25 +64,33 @@ public class ResourceParser { R.drawable.edit_title_red }; + // 根据 ID 获取笔记编辑时的背景资源 public static int getNoteBgResource(int id) { return BG_EDIT_RESOURCES[id]; } + // 根据 ID 获取笔记编辑时标题的背景资源 public static int getNoteTitleBgResource(int id) { return BG_EDIT_TITLE_RESOURCES[id]; } } + // 获取默认背景 ID 的方法 public static int getDefaultBgId(Context context) { + // 检查是否设置了背景颜色偏好 if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + // 若设置了,随机生成一个背景 ID return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); } else { + // 若未设置,返回默认背景 ID return BG_DEFAULT_COLOR; } } + // 笔记列表项的背景资源类 public static class NoteItemBgResources { + // 列表项第一个的背景资源数组 private final static int [] BG_FIRST_RESOURCES = new int [] { R.drawable.list_yellow_up, R.drawable.list_blue_up, @@ -83,6 +99,7 @@ public class ResourceParser { R.drawable.list_red_up }; + // 列表项中间的背景资源数组 private final static int [] BG_NORMAL_RESOURCES = new int [] { R.drawable.list_yellow_middle, R.drawable.list_blue_middle, @@ -91,6 +108,7 @@ public class ResourceParser { R.drawable.list_red_middle }; + // 列表项最后一个的背景资源数组 private final static int [] BG_LAST_RESOURCES = new int [] { R.drawable.list_yellow_down, R.drawable.list_blue_down, @@ -99,6 +117,7 @@ public class ResourceParser { R.drawable.list_red_down, }; + // 列表项单个的背景资源数组 private final static int [] BG_SINGLE_RESOURCES = new int [] { R.drawable.list_yellow_single, R.drawable.list_blue_single, @@ -107,28 +126,35 @@ public class ResourceParser { R.drawable.list_red_single }; + // 根据 ID 获取列表项第一个的背景资源 public static int getNoteBgFirstRes(int id) { return BG_FIRST_RESOURCES[id]; } + // 根据 ID 获取列表项最后一个的背景资源 public static int getNoteBgLastRes(int id) { return BG_LAST_RESOURCES[id]; } + // 根据 ID 获取列表项单个的背景资源 public static int getNoteBgSingleRes(int id) { return BG_SINGLE_RESOURCES[id]; } + // 根据 ID 获取列表项中间的背景资源 public static int getNoteBgNormalRes(int id) { return BG_NORMAL_RESOURCES[id]; } + // 获取文件夹的背景资源 public static int getFolderBgRes() { return R.drawable.list_folder; } } + // 小部件的背景资源类 public static class WidgetBgResources { + // 2x 小部件的背景资源数组 private final static int [] BG_2X_RESOURCES = new int [] { R.drawable.widget_2x_yellow, R.drawable.widget_2x_blue, @@ -137,10 +163,12 @@ public class ResourceParser { R.drawable.widget_2x_red, }; + // 根据 ID 获取 2x 小部件的背景资源 public static int getWidget2xBgResource(int id) { return BG_2X_RESOURCES[id]; } + // 4x 小部件的背景资源数组 private final static int [] BG_4X_RESOURCES = new int [] { R.drawable.widget_4x_yellow, R.drawable.widget_4x_blue, @@ -149,12 +177,15 @@ public class ResourceParser { R.drawable.widget_4x_red }; + // 根据 ID 获取 4x 小部件的背景资源 public static int getWidget4xBgResource(int id) { return BG_4X_RESOURCES[id]; } } + // 文本外观资源类 public static class TextAppearanceResources { + // 文本外观资源数组 private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] { R.style.TextAppearanceNormal, R.style.TextAppearanceMedium, @@ -162,20 +193,18 @@ public class ResourceParser { R.style.TextAppearanceSuper }; + // 根据 ID 获取文本外观资源 public static int getTexAppearanceResource(int id) { - /** - * HACKME: Fix bug of store the resource id in shared preference. - * The id may larger than the length of resources, in this case, - * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} - */ + // 处理资源 ID 越界的情况 if (id >= TEXTAPPEARANCE_RESOURCES.length) { return BG_DEFAULT_FONT_SIZE; } return TEXTAPPEARANCE_RESOURCES[id]; } + // 获取文本外观资源数组的大小 public static int getResourcesSize() { return TEXTAPPEARANCE_RESOURCES.length; } } -} +} \ No newline at end of file