From 2c1da763b4f24da6aa09947657a842a7804d58ff Mon Sep 17 00:00:00 2001 From: ZY <1390261802@qq.com> Date: Wed, 11 Jun 2025 21:45:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E4=BD=93=E5=8A=A0?= =?UTF-8?q?=E7=B2=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: ZY <1390261802@qq.com> --- .../java/net/micode/notes/data/Notes.java | 12 ++++- .../net/micode/notes/model/WorkingNote.java | 29 +++++++++++ .../net/micode/notes/ui/NoteEditActivity.java | 49 ++++++++++++++++++- .../app/src/main/res/menu/note_edit.xml | 4 ++ .../app/src/main/res/values/strings.xml | 7 +++ 5 files changed, 98 insertions(+), 3 deletions(-) diff --git a/MiNotes-master/app/src/main/java/net/micode/notes/data/Notes.java b/MiNotes-master/app/src/main/java/net/micode/notes/data/Notes.java index 5c7cb00..25450be 100644 --- a/MiNotes-master/app/src/main/java/net/micode/notes/data/Notes.java +++ b/MiNotes-master/app/src/main/java/net/micode/notes/data/Notes.java @@ -198,11 +198,19 @@ public class Notes { public static final class TextNote implements DataColumns { /** - 笔记模式(1=待办清单模式,0=普通文本模式) + * This column stores the note's mode, currently only {@link TextNote#MODE_CHECK_LIST} + * is supported + *

Type: INTEGER

*/ public static final String MODE = DATA1; - public static final int MODE_CHECK_LIST = 1;// 待办清单模式标识 + /** + * This column stores the bold state of the text + *

Type: INTEGER (boolean)

+ */ + public static final String BOLD = DATA4; + + public static final int MODE_CHECK_LIST = 1; // MIME类型定义 diff --git a/MiNotes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java b/MiNotes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java index d01b700..49bdaae 100644 --- a/MiNotes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java +++ b/MiNotes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java @@ -56,6 +56,8 @@ public class WorkingNote { private int mWidgetType; // 文件夹ID private long mFolderId; + // 字体加粗状态 + private boolean mBoldState; // 上下文 private Context mContext; // 日志标签 @@ -74,6 +76,7 @@ public class WorkingNote { DataColumns.DATA2, DataColumns.DATA3, DataColumns.DATA4, + TextNote.BOLD, }; // 笔记查询投影 @@ -91,6 +94,7 @@ public class WorkingNote { private static final int DATA_CONTENT_COLUMN = 1; private static final int DATA_MIME_TYPE_COLUMN = 2; private static final int DATA_MODE_COLUMN = 3; + private static final int DATA_BOLD_COLUMN = 7; // 笔记列索引 private static final int NOTE_PARENT_ID_COLUMN = 0; @@ -175,6 +179,7 @@ public class WorkingNote { mContent = cursor.getString(DATA_CONTENT_COLUMN); mMode = cursor.getInt(DATA_MODE_COLUMN); mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); + mBoldState = (cursor.getInt(DATA_BOLD_COLUMN) == 1 ? true : false); } else if (DataConstants.CALL_NOTE.equals(type)) { // 通话记录笔记数据 mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); @@ -472,6 +477,30 @@ public class WorkingNote { return mWidgetType; } + /** + * 设置字体加粗状态 + * @param bold 是否加粗 + */ + public void setBoldState(boolean bold) { + if (mBoldState != bold) { + mBoldState = bold; + mNote.setTextData(TextNote.BOLD, (mBoldState ? "1" : "0")); + mNote.setNoteValue(NoteColumns.SNIPPET, getContent()); + if (mNoteSettingStatusListener != null) { + // 可选:添加一个回调接口方法来通知UI加粗状态已更改 + // mNoteSettingStatusListener.onBoldStateChanged(bold); + } + } + } + + /** + * 获取字体加粗状态 + * @return 字体加粗状态 + */ + public boolean getBoldState() { + return mBoldState; + } + /** * 笔记设置变更监听器接口 */ diff --git a/MiNotes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/MiNotes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java index f41fb41..2f34290 100644 --- a/MiNotes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/MiNotes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -279,6 +279,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); mNoteEditor.setSelection(mNoteEditor.getText().length()); } + applyTextStyle(); for (Integer id : sBgSelectorSelectionMap.keySet()) { findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); } @@ -442,7 +443,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, if (id == R.id.btn_set_bg_color) { mNoteBgColorSelector.setVisibility(View.VISIBLE); findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - - View.VISIBLE); + View.VISIBLE); } else if (sBgSelectorBtnsMap.containsKey(id)) { findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.GONE); @@ -743,6 +744,13 @@ public class NoteEditActivity extends Activity implements OnClickListener, 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)); + + if (mWorkingNote.getBoldState()) { + edit.setTypeface(null, android.graphics.Typeface.BOLD); + } else { + edit.setTypeface(null, android.graphics.Typeface.NORMAL); + } + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { @@ -899,13 +907,52 @@ public class NoteEditActivity extends Activity implements OnClickListener, } else { popupMenu.getMenuInflater().inflate(R.menu.note_edit, popupMenu.getMenu()); } + + // 根据字体加粗状态设置菜单文本 + MenuItem boldMenuItem = popupMenu.getMenu().findItem(R.id.menu_bold); + if (boldMenuItem != null) { + if (mWorkingNote.getBoldState()) { + boldMenuItem.setTitle(R.string.menu_unbold); + } else { + boldMenuItem.setTitle(R.string.menu_bold); + } + } + // 设置菜单项点击事件 popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { + if (item.getItemId() == R.id.menu_bold) { + mWorkingNote.setBoldState(!mWorkingNote.getBoldState()); + applyTextStyle(); + return true; + } return onOptionsItemSelected(item); // 复用原有逻辑 } }); popupMenu.show(); } + + private void applyTextStyle() { + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + // 遍历所有NoteEditText并应用样式 + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + if (mWorkingNote.getBoldState()) { + edit.setTypeface(null, android.graphics.Typeface.BOLD); + } else { + edit.setTypeface(null, android.graphics.Typeface.NORMAL); + } + } + } else { + mNoteEditor.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + if (mWorkingNote.getBoldState()) { + mNoteEditor.setTypeface(null, android.graphics.Typeface.BOLD); + } else { + mNoteEditor.setTypeface(null, android.graphics.Typeface.NORMAL); + } + } + } } diff --git a/MiNotes-master/app/src/main/res/menu/note_edit.xml b/MiNotes-master/app/src/main/res/menu/note_edit.xml index 35cacd1..ede9f54 100644 --- a/MiNotes-master/app/src/main/res/menu/note_edit.xml +++ b/MiNotes-master/app/src/main/res/menu/note_edit.xml @@ -30,6 +30,10 @@ android:id="@+id/menu_font_size" android:title="@string/menu_font_size"/> + + diff --git a/MiNotes-master/app/src/main/res/values/strings.xml b/MiNotes-master/app/src/main/res/values/strings.xml index 55df868..f307720 100644 --- a/MiNotes-master/app/src/main/res/values/strings.xml +++ b/MiNotes-master/app/src/main/res/values/strings.xml @@ -57,6 +57,8 @@ Medium Large Super + Bold + Unbold Enter check list Leave check list View folder @@ -132,4 +134,9 @@ %1$s results for \"%2$s\" + + %1$s note + %1$s notes + +