You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
note/NoteEditActivity.java

265 lines
7.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 版权声明说明该代码是MiCode开源社区的版权所有并在Apache License 2.0下授权。
*/
package net.micode.notes.ui;
// 导入所需的Android库和自定义包
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 {
// 初始化背景颜色按钮映射
}
private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
// 初始化背景颜色选择器映射
}
private static final Map<Integer, Integer> sFontSizeBtnsMap = new HashMap<Integer, Integer>();
static {
// 初始化字体大小按钮映射
}
private static final Map<Integer, Integer> sFontSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
// 初始化字体大小选择器映射
}
// 类变量定义
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;
// onCreate方法初始化Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
// 省略了部分代码...
}
// onRestoreInstanceState方法用于在Activity被系统销毁后恢复状态
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// 省略了部分代码...
}
// initActivityState方法初始化Activity状态
private boolean initActivityState(Intent intent) {
// 省略了部分代码...
}
// onResume方法初始化笔记屏幕
@Override
protected void onResume() {
super.onResume();
initNoteScreen();
}
// initNoteScreen方法初始化笔记屏幕视图
private void initNoteScreen() {
// 省略了部分代码...
}
// onNewIntent方法处理新的Intent
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
initActivityState(intent);
}
// onSaveInstanceState方法保存Activity状态
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// 省略了部分代码...
}
// dispatchTouchEvent方法处理触摸事件
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// 省略了部分代码...
}
// inRangeOfView方法判断触摸事件是否在视图范围内
private boolean inRangeOfView(View view, MotionEvent ev) {
// 省略了部分代码...
}
// initResources方法初始化资源
private void initResources() {
// 省略了部分代码...
}
// onPause方法保存笔记
@Override
protected void onPause() {
super.onPause();
if(saveNote()) {
Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length());
}
clearSettingState();
}
// updateWidget方法更新Widget
private void updateWidget() {
// 省略了部分代码...
}
// onClick方法处理点击事件
public void onClick(View v) {
// 省略了部分代码...
}
// onBackPressed方法处理返回键事件
@Override
public void onBackPressed() {
// 省略了部分代码...
}
// clearSettingState方法清除设置状态
private boolean clearSettingState() {
// 省略了部分代码...
}
// onBackgroundColorChanged方法处理背景颜色变化
public void onBackgroundColorChanged() {
// 省略了部分代码...
}
// onPrepareOptionsMenu方法准备菜单
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// 省略了部分代码...
}
// onOptionsItemSelected方法处理菜单项点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// 省略了部分代码...
}
// setReminder方法设置提醒
private void setReminder() {
// 省略了部分代码...
}
// sendTo方法分享笔记到其他应用
private void sendTo(Context context, String info) {
// 省略了部分代码...
}
// createNewNote方法创建新笔记
private void createNewNote() {
// 省略了部分代码...
}
// deleteCurrentNote方法删除当前笔记
private void deleteCurrentNote() {
// 省略了部分代码...
}
// isSyncMode方法判断是否是同步模式
private boolean isSyncMode() {
// 省略了部分代码...
}
// onClockAlertChanged方法处理时钟提醒变化
public void onClockAlertChanged(long date, boolean set) {
// 省略了部分代码...
}
// onWidgetChanged方法处理Widget变化
public void onWidgetChanged() {
// 省略了部分代码...
}
// onEditTextDelete方法处理编辑文本删除
public void onEditTextDelete(int index, String text) {
// 省略了部分代码...
}
// onEditTextEnter方法处理编辑文本回车
public void onEditTextEnter(int index, String text) {
// 省略了部分代码...
}
// switchToListMode方法切换到列表模式
private void switchToListMode(String text) {
// 省略了部分代码...
}
// getHighlightQueryResult方法高亮查询结果
private Spannable getHighlightQueryResult(String fullText, String userQuery) {
// 省略了部分代码...
}
// getListItem方法获取列表项视图
private View getListItem(String item, int index) {
// 省略了部分代码...
}
// onTextChange方法处理文本变化
public void onTextChange(int index, boolean hasText) {
// 省略了部分代码...
}
// onCheckListModeChanged方法处理检查列表模式变化
public void onCheckListModeChanged(int oldMode, int newMode) {
// 省略了部分代码...
}
// getWorkingText方法获取工作文本
private boolean getWorkingText() {
// 省略了部分代码...
}
// saveNote方法保存笔记
private boolean saveNote() {
// 省略了部分代码...
}
// sendToDesktop方法发送到桌面
private void sendToDesktop() {
// 省略了部分代码...
}
// makeShortcutIconTitle方法制作快捷方式图标标题
private String makeShortcutIconTitle(String content) {
// 省略了部分代码...
}
// showToast方法显示Toast提示
private void showToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
}
// showToast方法显示Toast提示带持续时间
private void showToast(int resId, int duration) {
}
}