|
|
|
@ -73,8 +73,12 @@ import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
NoteSettingChangedListener, OnTextViewChangeListener {//便签编辑activity
|
|
|
|
|
//继承了点击监听和两个自定义的监听
|
|
|
|
|
=======
|
|
|
|
|
NoteSettingChangedListener, OnTextViewChangeListener {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private class HeadViewHolder {
|
|
|
|
|
public TextView tvModified;
|
|
|
|
|
|
|
|
|
@ -83,8 +87,13 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
public TextView tvAlertDate;
|
|
|
|
|
|
|
|
|
|
public ImageView ibSetBgColor;
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
}//TextView是Android中用于显示文本的一个控件,ImageView是Android中用于显示图像的控件
|
|
|
|
|
//使用Map实现数据存储
|
|
|
|
|
=======
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
|
|
|
|
|
static {
|
|
|
|
|
sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW);
|
|
|
|
@ -92,7 +101,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE);
|
|
|
|
|
sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN);
|
|
|
|
|
sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE);
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
}//put函数是将指定值和指定键相连
|
|
|
|
|
=======
|
|
|
|
|
}
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
|
|
|
|
|
private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
|
|
|
|
|
static {
|
|
|
|
@ -122,6 +135,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
private static final String TAG = "NoteEditActivity";
|
|
|
|
|
|
|
|
|
|
private HeadViewHolder mNoteHeaderHolder;
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//View: 这是Android SDK中的一个核心类,表示用户界面中的一个矩形区域,能够绘制和响应事件。
|
|
|
|
|
// 基本上,一个 View 对象可以是一个按钮、一个文本字段、一个图片,或者其他任何可以出现在用户界面上的组件。
|
|
|
|
|
private View mHeadViewPanel;//表头
|
|
|
|
@ -142,6 +156,23 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
//它的特点是简单、轻量,并且数据是持久的(即使应用被关闭或设备重启,数据也会保留)
|
|
|
|
|
private SharedPreferences mSharedPrefs;
|
|
|
|
|
private int mFontSizeId;//字体大小
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
private View mHeadViewPanel;
|
|
|
|
|
|
|
|
|
|
private View mNoteBgColorSelector;
|
|
|
|
|
|
|
|
|
|
private View mFontSizeSelector;
|
|
|
|
|
|
|
|
|
|
private EditText mNoteEditor;
|
|
|
|
|
|
|
|
|
|
private View mNoteEditorPanel;
|
|
|
|
|
|
|
|
|
|
private WorkingNote mWorkingNote;
|
|
|
|
|
|
|
|
|
|
private SharedPreferences mSharedPrefs;
|
|
|
|
|
private int mFontSizeId;
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
|
|
|
|
|
private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
|
|
|
|
|
|
|
|
|
@ -150,6 +181,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
public static final String TAG_CHECKED = String.valueOf('\u221A');
|
|
|
|
|
public static final String TAG_UNCHECKED = String.valueOf('\u25A1');
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//LinearLayout: 这是Android SDK中的一个布局类,用于创建线性布局。线性布局可以水平或垂直地排列其子视图。
|
|
|
|
|
private LinearLayout mEditTextList;
|
|
|
|
|
|
|
|
|
@ -166,6 +198,18 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
//设置Activity的UI布局。R.layout.note_edit是一个资源引用,它指向一个XML布局文件,该文件定义了Activity的UI。
|
|
|
|
|
this.setContentView(R.layout.note_edit);
|
|
|
|
|
//判断是否是首次创建,不是首次创建从Intent中获取数据
|
|
|
|
|
=======
|
|
|
|
|
private LinearLayout mEditTextList;
|
|
|
|
|
|
|
|
|
|
private String mUserQuery;
|
|
|
|
|
private Pattern mPattern;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
this.setContentView(R.layout.note_edit);
|
|
|
|
|
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
if (savedInstanceState == null && !initActivityState(getIntent())) {
|
|
|
|
|
finish();
|
|
|
|
|
return;
|
|
|
|
@ -177,6 +221,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
* Current activity may be killed when the memory is low. Once it is killed, for another time
|
|
|
|
|
* user load this activity, we should restore the former state
|
|
|
|
|
*/
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/*
|
|
|
|
|
当Android设备的内存不足时,系统会杀死一些不再处于前台的Activity,以释放内存供其他应用或系统进程使用。
|
|
|
|
|
这是Android系统的一种内存管理机制,确保设备能够流畅运行。
|
|
|
|
@ -185,6 +230,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
当Activity即将被杀死时,onSaveInstanceState方法会被调用,开发者可以在这里保存需要恢复的状态。
|
|
|
|
|
用户再次进入这个Activity时用onRestoreInstanceState恢复保存的状态
|
|
|
|
|
*/
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
@Override
|
|
|
|
|
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
|
|
|
|
super.onRestoreInstanceState(savedInstanceState);
|
|
|
|
@ -204,6 +251,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
* If the user specified the {@link Intent#ACTION_VIEW} but not provided with id,
|
|
|
|
|
* then jump to the NotesListActivity
|
|
|
|
|
*/
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//如果用户指定了{@link Intent#ACTION_VIEW}但未提供id,则跳转到NotesListActivity。
|
|
|
|
|
|
|
|
|
|
mWorkingNote = null;
|
|
|
|
@ -217,10 +265,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
* Starting from the searched result
|
|
|
|
|
*/
|
|
|
|
|
//根据键值查找ID
|
|
|
|
|
=======
|
|
|
|
|
mWorkingNote = null;
|
|
|
|
|
if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) {
|
|
|
|
|
long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0);
|
|
|
|
|
mUserQuery = "";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Starting from the searched result
|
|
|
|
|
*/
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) {
|
|
|
|
|
noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY));
|
|
|
|
|
mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY);
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//如果ID在数据库中未找到
|
|
|
|
|
if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) {
|
|
|
|
|
Intent jump = new Intent(this, NotesListActivity.class);
|
|
|
|
@ -232,6 +291,16 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
//ID在数据库中找到
|
|
|
|
|
else {
|
|
|
|
|
=======
|
|
|
|
|
|
|
|
|
|
if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) {
|
|
|
|
|
Intent jump = new Intent(this, NotesListActivity.class);
|
|
|
|
|
startActivity(jump);
|
|
|
|
|
showToast(R.string.error_note_not_exist);
|
|
|
|
|
finish();
|
|
|
|
|
return false;
|
|
|
|
|
} else {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mWorkingNote = WorkingNote.load(this, noteId);
|
|
|
|
|
if (mWorkingNote == null) {
|
|
|
|
|
Log.e(TAG, "load note failed with note id" + noteId);
|
|
|
|
@ -239,6 +308,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//getWindow().setSoftInputMode() 是 Android 开发中用来控制软键盘显示时窗口如何调整的一个方法。
|
|
|
|
|
//SOFT_INPUT_STATE_HIDDEN: 这个常量指定了当活动被创建时,软键盘应该被隐藏。也就是说,当这个活动启动时,输入法键盘不会自动弹出。
|
|
|
|
|
//SOFT_INPUT_ADJUST_RESIZE: 这个常量指定了当软键盘显示时,活动窗口应该调整大小,以确保活动的内容不会被软键盘遮挡。
|
|
|
|
@ -248,6 +318,12 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
//Intent.ACTION_INSERT_OR_EDIT 是 Android 开发中的一个 action,它用于启动一个 activity 来插入或编辑一个特定的数据项。
|
|
|
|
|
else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) {
|
|
|
|
|
=======
|
|
|
|
|
getWindow().setSoftInputMode(
|
|
|
|
|
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
|
|
|
|
|
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
|
|
|
|
} else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
// New note
|
|
|
|
|
long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0);
|
|
|
|
|
int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID,
|
|
|
|
@ -278,7 +354,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
widgetType, bgResId);
|
|
|
|
|
mWorkingNote.convertToCallNote(phoneNumber, callDate);
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
} else {//创建一个新的WorkingNote
|
|
|
|
|
=======
|
|
|
|
|
} else {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType,
|
|
|
|
|
bgResId);
|
|
|
|
|
}
|
|
|
|
@ -296,13 +376,20 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//onResume(): Activity即将恢复到前台运行时被调用。Activity已可见,可以响应用户的操作
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
protected void onResume() {
|
|
|
|
|
super.onResume();
|
|
|
|
|
initNoteScreen();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
private void initNoteScreen() {//对界面的初始化操作
|
|
|
|
|
=======
|
|
|
|
|
private void initNoteScreen() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mNoteEditor.setTextAppearance(this, TextAppearanceResources
|
|
|
|
|
.getTexAppearanceResource(mFontSizeId));
|
|
|
|
|
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
|
|
|
|
@ -329,12 +416,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
showAlertHeader();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
private void showAlertHeader() {//闹钟的显示
|
|
|
|
|
if (mWorkingNote.hasClockAlert()) {
|
|
|
|
|
long time = System.currentTimeMillis();
|
|
|
|
|
if (time > mWorkingNote.getAlertDate()) {//如果系统时间大于了闹钟设置的时间,那么闹钟失效
|
|
|
|
|
mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
|
|
|
|
|
} else {//显示闹钟开启的图标
|
|
|
|
|
=======
|
|
|
|
|
private void showAlertHeader() {
|
|
|
|
|
if (mWorkingNote.hasClockAlert()) {
|
|
|
|
|
long time = System.currentTimeMillis();
|
|
|
|
|
if (time > mWorkingNote.getAlertDate()) {
|
|
|
|
|
mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
|
|
|
|
|
} else {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString(
|
|
|
|
|
mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS));
|
|
|
|
|
}
|
|
|
|
@ -347,11 +443,14 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
/*
|
|
|
|
|
如果 Activity 已经在任务栈的栈顶,并且用户试图再次启动这个 Activity,
|
|
|
|
|
系统不会创建新的 Activity 实例,而是会调用已经在栈顶的 Activity 的 onNewIntent(Intent intent) 方法,
|
|
|
|
|
并传入新的 Intent。这允许 Activity 响应新的 Intent 数据,而不是重新创建整个 Activity。
|
|
|
|
|
*/
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
protected void onNewIntent(Intent intent) {
|
|
|
|
|
super.onNewIntent(intent);
|
|
|
|
|
initActivityState(intent);
|
|
|
|
@ -368,30 +467,47 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
if (!mWorkingNote.existInDatabase()) {
|
|
|
|
|
saveNote();
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//在创建一个新的标签时,先在数据库中匹配
|
|
|
|
|
//如果不存在,那么先在数据库中存储
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId());
|
|
|
|
|
Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//MotionEvent是对屏幕触控的传递机制
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
public boolean dispatchTouchEvent(MotionEvent ev) {
|
|
|
|
|
if (mNoteBgColorSelector.getVisibility() == View.VISIBLE
|
|
|
|
|
&& !inRangeOfView(mNoteBgColorSelector, ev)) {
|
|
|
|
|
mNoteBgColorSelector.setVisibility(View.GONE);
|
|
|
|
|
return true;
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
}//颜色选择器在屏幕上可见
|
|
|
|
|
=======
|
|
|
|
|
}
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
|
|
|
|
|
if (mFontSizeSelector.getVisibility() == View.VISIBLE
|
|
|
|
|
&& !inRangeOfView(mFontSizeSelector, ev)) {
|
|
|
|
|
mFontSizeSelector.setVisibility(View.GONE);
|
|
|
|
|
return true;
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
}//字体大小选择器在屏幕上可见
|
|
|
|
|
return super.dispatchTouchEvent(ev);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//对屏幕触控的坐标进行操作
|
|
|
|
|
=======
|
|
|
|
|
}
|
|
|
|
|
return super.dispatchTouchEvent(ev);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private boolean inRangeOfView(View view, MotionEvent ev) {
|
|
|
|
|
int []location = new int[2];
|
|
|
|
|
view.getLocationOnScreen(location);
|
|
|
|
@ -407,7 +523,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void initResources() {
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//对标签各项属性内容的初始化
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mHeadViewPanel = findViewById(R.id.note_title);
|
|
|
|
|
mNoteHeaderHolder = new HeadViewHolder();
|
|
|
|
|
mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date);
|
|
|
|
@ -418,13 +537,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
mNoteEditor = (EditText) findViewById(R.id.note_edit_view);
|
|
|
|
|
mNoteEditorPanel = findViewById(R.id.sv_note_edit);
|
|
|
|
|
mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector);
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
for (int id : sBgSelectorBtnsMap.keySet()) {//背景颜色
|
|
|
|
|
=======
|
|
|
|
|
for (int id : sBgSelectorBtnsMap.keySet()) {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
ImageView iv = (ImageView) findViewById(id);
|
|
|
|
|
iv.setOnClickListener(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mFontSizeSelector = findViewById(R.id.font_size_selector);
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
for (int id : sFontSizeBtnsMap.keySet()) {//字体大小
|
|
|
|
|
=======
|
|
|
|
|
for (int id : sFontSizeBtnsMap.keySet()) {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
View view = findViewById(id);
|
|
|
|
|
view.setOnClickListener(this);
|
|
|
|
|
};
|
|
|
|
@ -442,8 +569,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//onPause(): 在当前Activity被其他Activity覆盖或锁屏时调用。
|
|
|
|
|
//表示Activity正在停止,准备从前台返回至后台,此时可以做一些停止动画,数据存储等工作
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
protected void onPause() {
|
|
|
|
|
super.onPause();
|
|
|
|
|
if(saveNote()) {
|
|
|
|
@ -452,7 +582,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
clearSettingState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
private void updateWidget() {//和桌面小工具的同步
|
|
|
|
|
=======
|
|
|
|
|
private void updateWidget() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
|
|
|
|
|
if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) {
|
|
|
|
|
intent.setClass(this, NoteWidgetProvider_2x.class);
|
|
|
|
@ -476,7 +610,11 @@ 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(
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
View.VISIBLE);
|
|
|
|
|
=======
|
|
|
|
|
- View.VISIBLE);
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
} else if (sBgSelectorBtnsMap.containsKey(id)) {
|
|
|
|
|
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
|
|
|
|
|
View.GONE);
|
|
|
|
@ -499,7 +637,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
public void onBackPressed() {//返回
|
|
|
|
|
=======
|
|
|
|
|
public void onBackPressed() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
if(clearSettingState()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -519,7 +661,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
public void onBackgroundColorChanged() {//背景颜色
|
|
|
|
|
=======
|
|
|
|
|
public void onBackgroundColorChanged() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
|
|
|
|
|
View.VISIBLE);
|
|
|
|
|
mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
|
|
|
|
@ -527,7 +673,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
public boolean onPrepareOptionsMenu(Menu menu) {//准备选择菜单,在选项菜单被显示之前被调用
|
|
|
|
|
=======
|
|
|
|
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
if (isFinishing()) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
@ -552,6 +702,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//动态改变菜单选项内容
|
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
|
switch (item.getItemId()) {
|
|
|
|
@ -570,11 +721,26 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
//添加“YES”按钮
|
|
|
|
|
builder.setPositiveButton(android.R.string.ok,
|
|
|
|
|
new DialogInterface.OnClickListener() {//建立按键监听器
|
|
|
|
|
=======
|
|
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
|
switch (item.getItemId()) {
|
|
|
|
|
case R.id.menu_new_note:
|
|
|
|
|
createNewNote();
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_delete:
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
|
|
|
|
builder.setTitle(getString(R.string.alert_title_delete));
|
|
|
|
|
builder.setIcon(android.R.drawable.ic_dialog_alert);
|
|
|
|
|
builder.setMessage(getString(R.string.alert_message_delete_note));
|
|
|
|
|
builder.setPositiveButton(android.R.string.ok,
|
|
|
|
|
new DialogInterface.OnClickListener() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
deleteCurrentNote();
|
|
|
|
|
finish();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
builder.setNegativeButton(android.R.string.cancel, null);//添加“NO”的按钮
|
|
|
|
|
builder.show();//显示对话框
|
|
|
|
|
break;
|
|
|
|
@ -598,6 +764,30 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
setReminder();
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_delete_remind://删除提醒
|
|
|
|
|
=======
|
|
|
|
|
builder.setNegativeButton(android.R.string.cancel, null);
|
|
|
|
|
builder.show();
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_font_size:
|
|
|
|
|
mFontSizeSelector.setVisibility(View.VISIBLE);
|
|
|
|
|
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_list_mode:
|
|
|
|
|
mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ?
|
|
|
|
|
TextNote.MODE_CHECK_LIST : 0);
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_share:
|
|
|
|
|
getWorkingText();
|
|
|
|
|
sendTo(this, mWorkingNote.getContent());
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_send_to_desktop:
|
|
|
|
|
sendToDesktop();
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_alert:
|
|
|
|
|
setReminder();
|
|
|
|
|
break;
|
|
|
|
|
case R.id.menu_delete_remind:
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
mWorkingNote.setAlertDate(0, false);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
@ -606,23 +796,36 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
private void setReminder() {//创建提醒
|
|
|
|
|
// 建立修改时间日期的对话框
|
|
|
|
|
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
|
|
|
|
|
//选择提醒的日期
|
|
|
|
|
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {//建立监听器
|
|
|
|
|
=======
|
|
|
|
|
private void setReminder() {
|
|
|
|
|
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
|
|
|
|
|
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
public void OnDateTimeSet(AlertDialog dialog, long date) {
|
|
|
|
|
mWorkingNote.setAlertDate(date , true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
d.show();//显示对话框
|
|
|
|
|
=======
|
|
|
|
|
d.show();
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Share note to apps that support {@link Intent#ACTION_SEND} action
|
|
|
|
|
* and {@text/plain} type
|
|
|
|
|
*/
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//分享便签
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private void sendTo(Context context, String info) {
|
|
|
|
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
|
|
|
|
intent.putExtra(Intent.EXTRA_TEXT, info);
|
|
|
|
@ -630,10 +833,16 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
context.startActivity(intent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//创建新便签
|
|
|
|
|
private void createNewNote() {
|
|
|
|
|
// Firstly, save current editing notes
|
|
|
|
|
saveNote();//保存当前便签
|
|
|
|
|
=======
|
|
|
|
|
private void createNewNote() {
|
|
|
|
|
// Firstly, save current editing notes
|
|
|
|
|
saveNote();
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
|
|
|
|
|
// For safety, start a new NoteEditActivity
|
|
|
|
|
finish();
|
|
|
|
@ -643,7 +852,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//删除当前便签
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private void deleteCurrentNote() {
|
|
|
|
|
if (mWorkingNote.existInDatabase()) {
|
|
|
|
|
HashSet<Long> ids = new HashSet<Long>();
|
|
|
|
@ -653,6 +865,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "Wrong note id, should not happen");
|
|
|
|
|
}
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
// if (!isSyncMode()) {
|
|
|
|
|
// if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
|
|
|
|
|
// Log.e(TAG, "Delete Note error");
|
|
|
|
@ -662,22 +875,40 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
Log.e(TAG, "Move notes to trash folder error, should not happens");
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
=======
|
|
|
|
|
if (!isSyncMode()) {
|
|
|
|
|
if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
|
|
|
|
|
Log.e(TAG, "Delete Note error");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
|
|
|
|
|
Log.e(TAG, "Move notes to trash folder error, should not happens");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
}
|
|
|
|
|
mWorkingNote.markDeleted(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//判断是否为同步模式
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private boolean isSyncMode() {
|
|
|
|
|
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//设置提醒时间
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
public void onClockAlertChanged(long date, boolean set) {
|
|
|
|
|
/**
|
|
|
|
|
* User could set clock to an unsaved note, so before setting the
|
|
|
|
|
* alert clock, we should save the note first
|
|
|
|
|
*/
|
|
|
|
|
if (!mWorkingNote.existInDatabase()) {
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
saveNote();//保存便签
|
|
|
|
|
}
|
|
|
|
|
if (mWorkingNote.getNoteId() > 0) {
|
|
|
|
@ -694,6 +925,22 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
|
|
|
|
|
}
|
|
|
|
|
} else {//没有运行的便签就报错
|
|
|
|
|
=======
|
|
|
|
|
saveNote();
|
|
|
|
|
}
|
|
|
|
|
if (mWorkingNote.getNoteId() > 0) {
|
|
|
|
|
Intent intent = new Intent(this, AlarmReceiver.class);
|
|
|
|
|
intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId()));
|
|
|
|
|
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
|
|
|
|
|
AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE));
|
|
|
|
|
showAlertHeader();
|
|
|
|
|
if(!set) {
|
|
|
|
|
alarmManager.cancel(pendingIntent);
|
|
|
|
|
} else {
|
|
|
|
|
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
/**
|
|
|
|
|
* There is the condition that user has input nothing (the note is
|
|
|
|
|
* not worthy saving), we have no note id, remind the user that he
|
|
|
|
@ -753,7 +1000,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//切换至列表模式
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private void switchToListMode(String text) {
|
|
|
|
|
mEditTextList.removeAllViews();
|
|
|
|
|
String[] items = text.split("\n");
|
|
|
|
@ -788,7 +1038,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
return spannable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//获取列表项
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private View getListItem(String item, int index) {
|
|
|
|
|
View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null);
|
|
|
|
|
final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
|
|
|
|
@ -869,7 +1122,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
return hasChecked;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//保存便签
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private boolean saveNote() {
|
|
|
|
|
getWorkingText();
|
|
|
|
|
boolean saved = mWorkingNote.saveNote();
|
|
|
|
@ -921,7 +1177,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
//编辑小图标的标题
|
|
|
|
|
=======
|
|
|
|
|
>>>>>>> eb3503841352f4e0b24e8be753535ca4439360d0
|
|
|
|
|
private String makeShortcutIconTitle(String content) {
|
|
|
|
|
content = content.replace(TAG_CHECKED, "");
|
|
|
|
|
content = content.replace(TAG_UNCHECKED, "");
|
|
|
|
|