Compare commits
19 Commits
zhuxinyu_b
...
main
Author | SHA1 | Date |
---|---|---|
syl | 7a560e818e | 1 year ago |
syl | fe8309e583 | 1 year ago |
syl | a0682c9ebf | 1 year ago |
p4o8w3shv | 62160f7806 | 1 year ago |
p4o8w3shv | 673001f8f5 | 1 year ago |
p4o8w3shv | 50b648a5a0 | 1 year ago |
syl | 19789fe36b | 1 year ago |
pjyh5tfmc | f3c20028e9 | 1 year ago |
pjyh5tfmc | b7052f6519 | 1 year ago |
syl | 61fc9956bb | 1 year ago |
syl | cab3727a57 | 1 year ago |
syl | 9e6e6bac51 | 1 year ago |
p4o8w3shv | d155a3df70 | 1 year ago |
p4o8w3shv | 6a0439166d | 1 year ago |
p4o8w3shv | 0b91772293 | 1 year ago |
syl | aaea3063be | 1 year ago |
chenzuiyulianmian | be10e0c819 | 1 year ago |
chenzuiyulianmian | f53b735820 | 1 year ago |
chenzuiyulianmian | 2f8158cf2b | 1 year ago |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
软件工程
|
|
@ -0,0 +1,101 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.micode.notes.ui;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import net.micode.notes.R;
|
||||||
|
import net.micode.notes.ui.DateTimePicker;
|
||||||
|
import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.content.DialogInterface.OnClickListener;
|
||||||
|
import android.text.format.DateFormat;
|
||||||
|
import android.text.format.DateUtils;
|
||||||
|
|
||||||
|
|
||||||
|
public class DateTimePickerDialog extends AlertDialog implements OnClickListener {
|
||||||
|
|
||||||
|
// 创建一个Calendar实例
|
||||||
|
private Calendar mDate = Calendar.getInstance();
|
||||||
|
// 是否是24小时制
|
||||||
|
private boolean mIs24HourView;
|
||||||
|
// 设置时间监听器
|
||||||
|
private OnDateTimeSetListener mOnDateTimeSetListener;
|
||||||
|
// 创建一个DateTimePicker实例
|
||||||
|
private DateTimePicker mDateTimePicker;
|
||||||
|
|
||||||
|
// 定义一个接口,用于设置时间
|
||||||
|
public interface OnDateTimeSetListener {
|
||||||
|
void OnDateTimeSet(AlertDialog dialog, long date);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构造函数,传入上下文和时间
|
||||||
|
public DateTimePickerDialog(Context context, long date) {
|
||||||
|
super(context);
|
||||||
|
mDateTimePicker = new DateTimePicker(context);
|
||||||
|
setView(mDateTimePicker);
|
||||||
|
mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() {
|
||||||
|
public void onDateTimeChanged(DateTimePicker view, int year, int month,
|
||||||
|
int dayOfMonth, int hourOfDay, int minute) {
|
||||||
|
mDate.set(Calendar.YEAR, year);
|
||||||
|
mDate.set(Calendar.MONTH, month);
|
||||||
|
mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
||||||
|
mDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
|
||||||
|
mDate.set(Calendar.MINUTE, minute);
|
||||||
|
updateTitle(mDate.getTimeInMillis());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mDate.setTimeInMillis(date);
|
||||||
|
mDate.set(Calendar.SECOND, 0);
|
||||||
|
mDateTimePicker.setCurrentDate(mDate.getTimeInMillis());
|
||||||
|
setButton(context.getString(R.string.datetime_dialog_ok), this);
|
||||||
|
setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null);
|
||||||
|
set24HourView(DateFormat.is24HourFormat(this.getContext()));
|
||||||
|
updateTitle(mDate.getTimeInMillis());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置是否是24小时制
|
||||||
|
public void set24HourView(boolean is24HourView) {
|
||||||
|
mIs24HourView = is24HourView;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置时间监听器
|
||||||
|
public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) {
|
||||||
|
mOnDateTimeSetListener = callBack;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新标题
|
||||||
|
private void updateTitle(long date) {
|
||||||
|
int flag =
|
||||||
|
DateUtils.FORMAT_SHOW_YEAR |
|
||||||
|
DateUtils.FORMAT_SHOW_DATE |
|
||||||
|
DateUtils.FORMAT_SHOW_TIME;
|
||||||
|
flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR;
|
||||||
|
setTitle(DateUtils.formatDateTime(this.getContext(), date, flag));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 点击事件
|
||||||
|
public void onClick(DialogInterface arg0, int arg1) {
|
||||||
|
if (mOnDateTimeSetListener != null) {
|
||||||
|
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.micode.notes.ui;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.CursorAdapter;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import net.micode.notes.R;
|
||||||
|
import net.micode.notes.data.Notes;
|
||||||
|
import net.micode.notes.data.Notes.NoteColumns;
|
||||||
|
|
||||||
|
|
||||||
|
public class FoldersListAdapter extends CursorAdapter {
|
||||||
|
// 定义查询列
|
||||||
|
public static final String [] PROJECTION = {
|
||||||
|
NoteColumns.ID,
|
||||||
|
NoteColumns.SNIPPET
|
||||||
|
};
|
||||||
|
|
||||||
|
// 定义查询列的索引
|
||||||
|
public static final int ID_COLUMN = 0;
|
||||||
|
public static final int NAME_COLUMN = 1;
|
||||||
|
|
||||||
|
public FoldersListAdapter(Context context, Cursor c) {
|
||||||
|
super(context, c);
|
||||||
|
// TODO Auto-generated constructor stub
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View newView(Context context, Cursor cursor, ViewGroup parent) {
|
||||||
|
// 创建一个新的View
|
||||||
|
return new FolderListItem(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bindView(View view, Context context, Cursor cursor) {
|
||||||
|
// 绑定View
|
||||||
|
if (view instanceof FolderListItem) {
|
||||||
|
// 获取文件夹名
|
||||||
|
String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context
|
||||||
|
.getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN);
|
||||||
|
// 绑定文件夹名
|
||||||
|
((FolderListItem) view).bind(folderName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFolderName(Context context, int position) {
|
||||||
|
// 获取指定位置的Cursor
|
||||||
|
Cursor cursor = (Cursor) getItem(position);
|
||||||
|
// 返回文件夹名
|
||||||
|
return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context
|
||||||
|
.getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class FolderListItem extends LinearLayout {
|
||||||
|
// 定义文本框
|
||||||
|
private TextView mName;
|
||||||
|
|
||||||
|
public FolderListItem(Context context) {
|
||||||
|
super(context);
|
||||||
|
// 加载布局
|
||||||
|
inflate(context, R.layout.folder_list_item, this);
|
||||||
|
// 获取文本框
|
||||||
|
mName = (TextView) findViewById(R.id.tv_folder_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void bind(String name) {
|
||||||
|
// 绑定文本框
|
||||||
|
mName.setText(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,197 @@
|
|||||||
|
|
||||||
|
|
||||||
|
package net.micode.notes.data;
|
||||||
|
|
||||||
|
import android.net.Uri;
|
||||||
|
public class Notes {
|
||||||
|
// 定义数据库的权限
|
||||||
|
public static final String AUTHORITY = "micode_notes";
|
||||||
|
// 定义日志标签
|
||||||
|
public static final String TAG = "Notes";
|
||||||
|
// 定义笔记类型
|
||||||
|
public static final int TYPE_NOTE = 0;
|
||||||
|
// 定义文件夹类型
|
||||||
|
public static final int TYPE_FOLDER = 1;
|
||||||
|
// 定义系统类型
|
||||||
|
public static final int TYPE_SYSTEM = 2;
|
||||||
|
|
||||||
|
|
||||||
|
// 定义根文件夹id
|
||||||
|
public static final int ID_ROOT_FOLDER = 0;
|
||||||
|
// 定义临时文件夹id
|
||||||
|
public static final int ID_TEMPARAY_FOLDER = -1;
|
||||||
|
// 定义通话记录文件夹id
|
||||||
|
public static final int ID_CALL_RECORD_FOLDER = -2;
|
||||||
|
// 定义垃圾文件夹id
|
||||||
|
public static final int ID_TRASH_FOLER = -3;
|
||||||
|
|
||||||
|
// 定义意图的额外参数
|
||||||
|
public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date";
|
||||||
|
public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id";
|
||||||
|
public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id";
|
||||||
|
public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type";
|
||||||
|
public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id";
|
||||||
|
public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date";
|
||||||
|
|
||||||
|
// 定义小部件类型
|
||||||
|
public static final int TYPE_WIDGET_INVALIDE = -1;
|
||||||
|
public static final int TYPE_WIDGET_2X = 0;
|
||||||
|
public static final int TYPE_WIDGET_4X = 1;
|
||||||
|
|
||||||
|
// 定义数据常量
|
||||||
|
public static class DataConstants {
|
||||||
|
// 定义笔记类型
|
||||||
|
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
|
||||||
|
// 定义通话记录类型
|
||||||
|
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");
|
||||||
|
|
||||||
|
|
||||||
|
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
|
||||||
|
|
||||||
|
public interface NoteColumns {
|
||||||
|
|
||||||
|
public static final String ID = "_id";
|
||||||
|
|
||||||
|
// 父ID
|
||||||
|
|
||||||
|
public static final String PARENT_ID = "parent_id";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String CREATED_DATE = "created_date";
|
||||||
|
|
||||||
|
// 修改日期
|
||||||
|
|
||||||
|
public static final String MODIFIED_DATE = "modified_date";
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
public static final String ALERTED_DATE = "alert_date";
|
||||||
|
|
||||||
|
// 摘要
|
||||||
|
|
||||||
|
public static final String SNIPPET = "snippet";
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
public static final String WIDGET_ID = "widget_id";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static final String WIDGET_TYPE = "widget_type";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String BG_COLOR_ID = "bg_color_id";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String HAS_ATTACHMENT = "has_attachment";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String NOTES_COUNT = "notes_count";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String TYPE = "type";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String SYNC_ID = "sync_id";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String LOCAL_MODIFIED = "local_modified";
|
||||||
|
|
||||||
|
public static final String ORIGIN_PARENT_ID = "origin_parent_id";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String GTASK_ID = "gtask_id";
|
||||||
|
|
||||||
|
|
||||||
|
public static final String VERSION = "version";
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface DataColumns {
|
||||||
|
|
||||||
|
// 定义_id字段
|
||||||
|
public static final String ID = "_id";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义mime_type字段
|
||||||
|
public static final String MIME_TYPE = "mime_type";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义note_id字段
|
||||||
|
public static final String NOTE_ID = "note_id";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义created_date字段
|
||||||
|
public static final String CREATED_DATE = "created_date";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义modified_date字段
|
||||||
|
public static final String MODIFIED_DATE = "modified_date";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义content字段
|
||||||
|
public static final String CONTENT = "content";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 定义data1字段
|
||||||
|
public static final String DATA1 = "data1";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义data2字段
|
||||||
|
public static final String DATA2 = "data2";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义data3字段
|
||||||
|
public static final String DATA3 = "data3";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义data4字段
|
||||||
|
public static final String DATA4 = "data4";
|
||||||
|
|
||||||
|
|
||||||
|
// 定义data5字段
|
||||||
|
public static final String DATA5 = "data5";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class TextNote implements DataColumns {
|
||||||
|
|
||||||
|
// 数据类型
|
||||||
|
public static final String MODE = DATA1;
|
||||||
|
|
||||||
|
// 检查列表模式
|
||||||
|
public static final int MODE_CHECK_LIST = 1;
|
||||||
|
|
||||||
|
// 内容类型
|
||||||
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note";
|
||||||
|
|
||||||
|
// 内容项类型
|
||||||
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note";
|
||||||
|
|
||||||
|
// 内容URI
|
||||||
|
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class CallNote implements DataColumns {
|
||||||
|
|
||||||
|
// 电话日期
|
||||||
|
public static final String CALL_DATE = DATA1;
|
||||||
|
|
||||||
|
// 电话号码
|
||||||
|
public static final String PHONE_NUMBER = DATA3;
|
||||||
|
|
||||||
|
// 内容类型
|
||||||
|
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note";
|
||||||
|
|
||||||
|
// 内容项类型
|
||||||
|
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note";
|
||||||
|
|
||||||
|
// 内容URI
|
||||||
|
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue