set = null;
@@ -226,9 +227,9 @@ public class DataUtils {
public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) {
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
- new String [] { CallNote.PHONE_NUMBER },
+ new String[]{CallNote.PHONE_NUMBER},
CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?",
- new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE },
+ new String[]{String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE},
null);
if (cursor != null && cursor.moveToFirst()) {
@@ -245,10 +246,10 @@ public class DataUtils {
public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) {
Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI,
- new String [] { CallNote.NOTE_ID },
+ new String[]{CallNote.NOTE_ID},
CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL("
- + CallNote.PHONE_NUMBER + ",?)",
- new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber },
+ + CallNote.PHONE_NUMBER + ",?)",
+ new String[]{String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber},
null);
if (cursor != null) {
@@ -266,9 +267,9 @@ public class DataUtils {
public static String getSnippetById(ContentResolver resolver, long noteId) {
Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI,
- new String [] { NoteColumns.SNIPPET },
+ new String[]{NoteColumns.SNIPPET},
NoteColumns.ID + "=?",
- new String [] { String.valueOf(noteId)},
+ new String[]{String.valueOf(noteId)},
null);
if (cursor != null) {
diff --git a/app/src/main/java/net/micode/notes/tool/ResourceParser.java b/app/src/main/java/net/micode/notes/tool/ResourceParser.java
index 1ad3ad6..ea5fc30 100644
--- a/app/src/main/java/net/micode/notes/tool/ResourceParser.java
+++ b/app/src/main/java/net/micode/notes/tool/ResourceParser.java
@@ -20,40 +20,40 @@ import android.content.Context;
import android.preference.PreferenceManager;
import net.micode.notes.R;
-import net.micode.notes.ui.NotesPreferenceActivity;
+import net.micode.notes.ui.activities.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 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 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,
- R.drawable.edit_white,
- R.drawable.edit_green,
- R.drawable.edit_red
+ private final static int[] BG_EDIT_RESOURCES = new int[]{
+ R.drawable.edit_yellow,
+ R.drawable.edit_blue,
+ R.drawable.edit_white,
+ R.drawable.edit_green,
+ R.drawable.edit_red
};
- private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] {
- R.drawable.edit_title_yellow,
- R.drawable.edit_title_blue,
- R.drawable.edit_title_white,
- R.drawable.edit_title_green,
- R.drawable.edit_title_red
+ private final static int[] BG_EDIT_TITLE_RESOURCES = new int[]{
+ R.drawable.edit_title_yellow,
+ R.drawable.edit_title_blue,
+ R.drawable.edit_title_white,
+ R.drawable.edit_title_green,
+ R.drawable.edit_title_red
};
public static int getNoteBgResource(int id) {
@@ -75,36 +75,36 @@ public class ResourceParser {
}
public static class NoteItemBgResources {
- private final static int [] BG_FIRST_RESOURCES = new int [] {
- R.drawable.list_yellow_up,
- R.drawable.list_blue_up,
- R.drawable.list_white_up,
- R.drawable.list_green_up,
- R.drawable.list_red_up
+ private final static int[] BG_FIRST_RESOURCES = new int[]{
+ R.drawable.list_yellow_up,
+ R.drawable.list_blue_up,
+ R.drawable.list_white_up,
+ R.drawable.list_green_up,
+ R.drawable.list_red_up
};
- private final static int [] BG_NORMAL_RESOURCES = new int [] {
- R.drawable.list_yellow_middle,
- R.drawable.list_blue_middle,
- R.drawable.list_white_middle,
- R.drawable.list_green_middle,
- R.drawable.list_red_middle
+ private final static int[] BG_NORMAL_RESOURCES = new int[]{
+ R.drawable.list_yellow_middle,
+ R.drawable.list_blue_middle,
+ R.drawable.list_white_middle,
+ R.drawable.list_green_middle,
+ R.drawable.list_red_middle
};
- private final static int [] BG_LAST_RESOURCES = new int [] {
- R.drawable.list_yellow_down,
- R.drawable.list_blue_down,
- R.drawable.list_white_down,
- R.drawable.list_green_down,
- R.drawable.list_red_down,
+ private final static int[] BG_LAST_RESOURCES = new int[]{
+ R.drawable.list_yellow_down,
+ R.drawable.list_blue_down,
+ R.drawable.list_white_down,
+ R.drawable.list_green_down,
+ R.drawable.list_red_down,
};
- private final static int [] BG_SINGLE_RESOURCES = new int [] {
- R.drawable.list_yellow_single,
- R.drawable.list_blue_single,
- R.drawable.list_white_single,
- R.drawable.list_green_single,
- R.drawable.list_red_single
+ private final static int[] BG_SINGLE_RESOURCES = new int[]{
+ R.drawable.list_yellow_single,
+ R.drawable.list_blue_single,
+ R.drawable.list_white_single,
+ R.drawable.list_green_single,
+ R.drawable.list_red_single
};
public static int getNoteBgFirstRes(int id) {
@@ -129,24 +129,24 @@ public class ResourceParser {
}
public static class WidgetBgResources {
- private final static int [] BG_2X_RESOURCES = new int [] {
- R.drawable.widget_2x_yellow,
- R.drawable.widget_2x_blue,
- R.drawable.widget_2x_white,
- R.drawable.widget_2x_green,
- R.drawable.widget_2x_red,
+ private final static int[] BG_2X_RESOURCES = new int[]{
+ R.drawable.widget_2x_yellow,
+ R.drawable.widget_2x_blue,
+ R.drawable.widget_2x_white,
+ R.drawable.widget_2x_green,
+ R.drawable.widget_2x_red,
};
public static int getWidget2xBgResource(int id) {
return BG_2X_RESOURCES[id];
}
- private final static int [] BG_4X_RESOURCES = new int [] {
- R.drawable.widget_4x_yellow,
- R.drawable.widget_4x_blue,
- R.drawable.widget_4x_white,
- R.drawable.widget_4x_green,
- R.drawable.widget_4x_red
+ private final static int[] BG_4X_RESOURCES = new int[]{
+ R.drawable.widget_4x_yellow,
+ R.drawable.widget_4x_blue,
+ R.drawable.widget_4x_white,
+ R.drawable.widget_4x_green,
+ R.drawable.widget_4x_red
};
public static int getWidget4xBgResource(int id) {
@@ -155,11 +155,11 @@ public class ResourceParser {
}
public static class TextAppearanceResources {
- private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] {
- R.style.TextAppearanceNormal,
- R.style.TextAppearanceMedium,
- R.style.TextAppearanceLarge,
- R.style.TextAppearanceSuper
+ private final static int[] TEXTAPPEARANCE_RESOURCES = new int[]{
+ R.style.TextAppearanceNormal,
+ R.style.TextAppearanceMedium,
+ R.style.TextAppearanceLarge,
+ R.style.TextAppearanceSuper
};
public static int getTexAppearanceResource(int id) {
diff --git a/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
index f221202..779ca0f 100644
--- a/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
+++ b/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
@@ -27,24 +27,29 @@ import android.database.Cursor;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
-
+/**
+ * 闹钟传回的初始化信息接收者
+ * 在设置闹钟之后该活动类会接受来自闹钟系统传回的消息并进行相关处理
+ */
public class AlarmInitReceiver extends BroadcastReceiver {
- private static final String [] PROJECTION = new String [] {
- NoteColumns.ID,
- NoteColumns.ALERTED_DATE
+ // 数据格式封包
+ private static final String[] PROJECTION = new String[]{
+ NoteColumns.ID,
+ NoteColumns.ALERTED_DATE
};
- private static final int COLUMN_ID = 0;
- private static final int COLUMN_ALERTED_DATE = 1;
+ private static final int COLUMN_ID = 0;
+ private static final int COLUMN_ALERTED_DATE = 1;
+ // 接收到闹钟应用的广播后执行该方法
@Override
public void onReceive(Context context, Intent intent) {
long currentDate = System.currentTimeMillis();
Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI,
PROJECTION,
NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE,
- new String[] { String.valueOf(currentDate) },
+ new String[]{String.valueOf(currentDate)},
null);
if (c != null) {
diff --git a/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
index 54e503b..27cefef 100644
--- a/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
+++ b/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
@@ -20,6 +20,12 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import net.micode.notes.ui.activities.AlarmAlertActivity;
+
+/**
+ * 闹钟广播消息的接收者
+ * 根据消息内容发起 Intent 调用
+ */
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
index 496b0cd..a189109 100644
--- a/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
+++ b/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
@@ -28,10 +28,18 @@ import android.view.View;
import android.widget.FrameLayout;
import android.widget.NumberPicker;
+/**
+ * 日期选择器,是 [FrameLayout] 的子类
+ */
public class DateTimePicker extends FrameLayout {
private static final boolean DEFAULT_ENABLE_STATE = true;
+ /**
+ * 常量声明,包含一些数值范围等
+ * 例如小时可选范围为0~23小时
+ * 分钟可选范围为0~59分钟
+ */
private static final int HOURS_IN_HALF_DAY = 12;
private static final int HOURS_IN_ALL_DAY = 24;
private static final int DAYS_IN_ALL_WEEK = 7;
@@ -46,33 +54,72 @@ public class DateTimePicker extends FrameLayout {
private static final int AMPM_SPINNER_MIN_VAL = 0;
private static final int AMPM_SPINNER_MAX_VAL = 1;
+ /**
+ * 天数选择器
+ */
private final NumberPicker mDateSpinner;
+ /**
+ * 时间选择器
+ */
private final NumberPicker mHourSpinner;
+ /**
+ * 分钟选择器
+ */
private final NumberPicker mMinuteSpinner;
+ /**
+ * AM / PM 早晚选择器
+ */
private final NumberPicker mAmPmSpinner;
+ /**
+ * 日期实例对象
+ */
private Calendar mDate;
-
+ /**
+ * 日期显示的数值
+ */
private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK];
-
+ /**
+ * 是否是早晨
+ */
private boolean mIsAm;
-
+ /**
+ * 是否是24小时制
+ */
private boolean mIs24HourView;
-
+ /**
+ * 是否启用
+ */
private boolean mIsEnabled = DEFAULT_ENABLE_STATE;
-
+ /**
+ * 是否正在初始化中
+ */
private boolean mInitialising;
-
+ /**
+ * 日期变更监听器
+ */
private OnDateTimeChangedListener mOnDateTimeChangedListener;
-
- private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() {
- @Override
- public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
- mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal);
- updateDateControl();
- onDateTimeChanged();
- }
- };
-
+ /**
+ * 数值改变监听器
+ *
+ * 在数值更改时同步修改 mDate 的数值
+ * 并刷新选择器的数值
+ * 触发时间改变监听器
+ */
+ private NumberPicker.OnValueChangeListener mOnDateChangedListener =
+ new NumberPicker.OnValueChangeListener() {
+ @Override
+ public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+ mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal);
+ updateDateControl();
+ onDateTimeChanged();
+ }
+ };
+ /**
+ * 数值改变监听器
+ *
+ * 在数值改变时传入选择器对象和操作前与操作后的数值
+ * 对数值进行具体的分析
+ */
private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
@@ -114,7 +161,9 @@ public class DateTimePicker extends FrameLayout {
}
}
};
-
+ /**
+ * 分钟改变监听器
+ */
private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
@@ -143,7 +192,10 @@ public class DateTimePicker extends FrameLayout {
onDateTimeChanged();
}
};
-
+ /**
+ * 早晚变更的监听器
+ * 在选择AM / PM的时候通知监听器触发方法
+ */
private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
@@ -160,7 +212,7 @@ public class DateTimePicker extends FrameLayout {
public interface OnDateTimeChangedListener {
void onDateTimeChanged(DateTimePicker view, int year, int month,
- int dayOfMonth, int hourOfDay, int minute);
+ int dayOfMonth, int hourOfDay, int minute);
}
public DateTimePicker(Context context) {
@@ -185,7 +237,7 @@ public class DateTimePicker extends FrameLayout {
mHourSpinner = (NumberPicker) findViewById(R.id.hour);
mHourSpinner.setOnValueChangedListener(mOnHourChangedListener);
- mMinuteSpinner = (NumberPicker) findViewById(R.id.minute);
+ mMinuteSpinner = (NumberPicker) findViewById(R.id.minute);
mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL);
mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL);
mMinuteSpinner.setOnLongPressUpdateInterval(100);
@@ -256,14 +308,14 @@ public class DateTimePicker extends FrameLayout {
/**
* Set the current date
*
- * @param year The current year
- * @param month The current month
+ * @param year The current year
+ * @param month The current month
* @param dayOfMonth The current dayOfMonth
- * @param hourOfDay The current hourOfDay
- * @param minute The current minute
+ * @param hourOfDay The current hourOfDay
+ * @param minute The current minute
*/
public void setCurrentDate(int year, int month,
- int dayOfMonth, int hourOfDay, int minute) {
+ int dayOfMonth, int hourOfDay, int minute) {
setCurrentYear(year);
setCurrentMonth(month);
setCurrentDay(dayOfMonth);
@@ -342,6 +394,7 @@ public class DateTimePicker extends FrameLayout {
/**
* Get current hour in 24 hour mode, in the range (0~23)
+ *
* @return The current hour in 24 hour mode
*/
public int getCurrentHourOfDay() {
@@ -349,7 +402,7 @@ public class DateTimePicker extends FrameLayout {
}
private int getCurrentHour() {
- if (mIs24HourView){
+ if (mIs24HourView) {
return getCurrentHourOfDay();
} else {
int hour = getCurrentHourOfDay();
@@ -413,7 +466,7 @@ public class DateTimePicker extends FrameLayout {
/**
* @return true if this is in 24 hour view else false.
*/
- public boolean is24HourView () {
+ public boolean is24HourView() {
return mIs24HourView;
}
@@ -470,16 +523,26 @@ public class DateTimePicker extends FrameLayout {
/**
* Set the callback that indicates the 'Set' button has been pressed.
+ *
* @param callback the callback, if null will do nothing
*/
public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) {
mOnDateTimeChangedListener = callback;
}
+ /**
+ * 在日期时间改变时调用该方法
+ * 如果日期时间改变监听器为空则不处理
+ * 不为空则调用监听器的方法
+ */
private void onDateTimeChanged() {
- if (mOnDateTimeChangedListener != null) {
- mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(),
- getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute());
- }
+ if (mOnDateTimeChangedListener == null) return;
+ mOnDateTimeChangedListener.onDateTimeChanged(this,
+ getCurrentYear(),
+ getCurrentMonth(),
+ getCurrentDay(),
+ getCurrentHourOfDay(),
+ getCurrentMinute()
+ );
}
}
diff --git a/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
index 2c47ba4..05abbf0 100644
--- a/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
+++ b/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
@@ -29,6 +29,12 @@ import android.content.DialogInterface.OnClickListener;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
+/**
+ * 日期选择器 界面
+ * 将用户交互与日期选择器数据类对接
+ * 并保存了一些基础信息,如当前日期、是否为24小时格式等
+ * 也注册了相应的事件监听器
+ */
public class DateTimePickerDialog extends AlertDialog implements OnClickListener {
private Calendar mDate = Calendar.getInstance();
@@ -36,17 +42,18 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
private OnDateTimeSetListener mOnDateTimeSetListener;
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) {
+ int dayOfMonth, int hourOfDay, int minute) {
mDate.set(Calendar.YEAR, year);
mDate.set(Calendar.MONTH, month);
mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
@@ -59,30 +66,31 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
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);
+ 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;
}
-
+ // 初始化 OnDateTimeSetListener 监听器
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;
+ 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));
}
-
+ @Override
public void onClick(DialogInterface arg0, int arg1) {
if (mOnDateTimeSetListener != null) {
+ // onClick 委托至 OnDateTimeSetListener
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
}
}
diff --git a/app/src/main/java/net/micode/notes/ui/DropdownMenu.java b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
index 613dc74..4fb8660 100644
--- a/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
+++ b/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
@@ -27,9 +27,16 @@ import android.widget.PopupMenu.OnMenuItemClickListener;
import net.micode.notes.R;
+/**
+ * 下拉菜单的数据类
+ * 并封装了一个下拉菜单内容选定事件监听器
+ */
public class DropdownMenu {
+ // 菜单按钮
private Button mButton;
+ // 弹出菜单
private PopupMenu mPopupMenu;
+ // 菜单
private Menu mMenu;
public DropdownMenu(Context context, Button button, int menuId) {
@@ -44,17 +51,17 @@ public class DropdownMenu {
}
});
}
-
+ // 绑定监听器
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
}
}
-
+ // 根据id获取MenuItem
public MenuItem findItem(int id) {
return mMenu.findItem(id);
}
-
+ // 设置菜单按钮的文本
public void setTitle(CharSequence title) {
mButton.setText(title);
}
diff --git a/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
index 96b77da..dd77ba9 100644
--- a/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
+++ b/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
@@ -28,14 +28,16 @@ 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 String[] PROJECTION = {
+ NoteColumns.ID,
+ NoteColumns.SNIPPET
};
- public static final int ID_COLUMN = 0;
+ public static final int ID_COLUMN = 0;
public static final int NAME_COLUMN = 1;
public FoldersListAdapter(Context context, Cursor c) {
@@ -43,11 +45,24 @@ public class FoldersListAdapter extends CursorAdapter {
// TODO Auto-generated constructor stub
}
+ /**
+ * 创建新视图
+ * @param context 上下文
+ * @param cursor 数据库指针
+ * @param parent 父视图
+ * @return View 视图对象
+ */
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return new FolderListItem(context);
}
+ /**
+ * 视图绑定方法
+ * @param view 视图
+ * @param context 上下文
+ * @param cursor 数据库指针
+ */
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view instanceof FolderListItem) {
@@ -56,14 +71,20 @@ public class FoldersListAdapter extends CursorAdapter {
((FolderListItem) view).bind(folderName);
}
}
-
+ /**
+ * 获取文件夹名称
+ */
public String getFolderName(Context context, int position) {
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) {
@@ -71,7 +92,7 @@ public class FoldersListAdapter extends CursorAdapter {
inflate(context, R.layout.folder_list_item, this);
mName = (TextView) findViewById(R.id.tv_folder_name);
}
-
+ // 设置文件名
public void bind(String name) {
mName.setText(name);
}
diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditText.java b/app/src/main/java/net/micode/notes/ui/NoteEditText.java
index 2afe2a8..ae2bc44 100644
--- a/app/src/main/java/net/micode/notes/ui/NoteEditText.java
+++ b/app/src/main/java/net/micode/notes/ui/NoteEditText.java
@@ -33,20 +33,26 @@ import android.view.MotionEvent;
import android.widget.EditText;
import net.micode.notes.R;
+import net.micode.notes.ui.activities.NoteEditActivity;
import java.util.HashMap;
import java.util.Map;
+/**
+ * 笔记编辑控件
+ * 扩展了默认控件的一些基础功能
+ */
public class NoteEditText extends EditText {
private static final String TAG = "NoteEditText";
private int mIndex;
private int mSelectionStartBeforeDelete;
- private static final String SCHEME_TEL = "tel:" ;
- private static final String SCHEME_HTTP = "http:" ;
- private static final String SCHEME_EMAIL = "mailto:" ;
+ private static final String SCHEME_TEL = "tel:";
+ private static final String SCHEME_HTTP = "http:";
+ private static final String SCHEME_EMAIL = "mailto:";
- private static final Map sSchemaActionResMap = new HashMap();
+ private static final Map sSchemaActionResMap = new HashMap<>();
+ // 静态初始化
static {
sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel);
sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web);
@@ -74,22 +80,32 @@ public class NoteEditText extends EditText {
*/
void onTextChange(int index, boolean hasText);
}
-
+ /**
+ * 文本视图改变事件监听器
+ */
private OnTextViewChangeListener mOnTextViewChangeListener;
-
+ /**
+ * 构造器
+ */
public NoteEditText(Context context) {
super(context, null);
mIndex = 0;
}
-
+ /**
+ * 设置索引值
+ */
public void setIndex(int index) {
mIndex = index;
}
-
+ /**
+ * 绑定 文本视图改变事件监听器
+ */
public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
mOnTextViewChangeListener = listener;
}
-
+ /**
+ * 构造器
+ */
public NoteEditText(Context context, AttributeSet attrs) {
super(context, attrs, android.R.attr.editTextStyle);
}
@@ -99,6 +115,9 @@ public class NoteEditText extends EditText {
// TODO Auto-generated constructor stub
}
+ /**
+ * 点击事件
+ */
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
@@ -121,6 +140,12 @@ public class NoteEditText extends EditText {
return super.onTouchEvent(event);
}
+ /**
+ * 按下键
+ * @param keyCode 按键对应编码
+ * @param event 键盘事件
+ * @return boolean 是否成功处理
+ */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
@@ -138,9 +163,15 @@ public class NoteEditText extends EditText {
return super.onKeyDown(keyCode, event);
}
+ /**
+ * 松开键
+ * @param keyCode 键对应编码
+ * @param event 键盘事件
+ * @return 是否处理成功
+ */
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
- switch(keyCode) {
+ switch (keyCode) {
case KeyEvent.KEYCODE_DEL:
if (mOnTextViewChangeListener != null) {
if (0 == mSelectionStartBeforeDelete && mIndex != 0) {
@@ -167,6 +198,12 @@ public class NoteEditText extends EditText {
return super.onKeyUp(keyCode, event);
}
+ /**
+ * 焦点事件改变
+ * @param focused 改变的结果是对焦还是失焦
+ * @param direction 方向
+ * @param previouslyFocusedRect 上一个聚焦的区域
+ */
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if (mOnTextViewChangeListener != null) {
@@ -179,6 +216,10 @@ public class NoteEditText extends EditText {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
+ /**
+ * 菜单内容初始化
+ * @param menu 菜单
+ */
@Override
protected void onCreateContextMenu(ContextMenu menu) {
if (getText() instanceof Spanned) {
@@ -191,8 +232,8 @@ public class NoteEditText extends EditText {
final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class);
if (urls.length == 1) {
int defaultResId = 0;
- for(String schema: sSchemaActionResMap.keySet()) {
- if(urls[0].getURL().indexOf(schema) >= 0) {
+ for (String schema : sSchemaActionResMap.keySet()) {
+ if (urls[0].getURL().indexOf(schema) >= 0) {
defaultResId = sSchemaActionResMap.get(schema);
break;
}
diff --git a/app/src/main/java/net/micode/notes/ui/NoteItemData.java b/app/src/main/java/net/micode/notes/ui/NoteItemData.java
index 0f5a878..131866d 100644
--- a/app/src/main/java/net/micode/notes/ui/NoteItemData.java
+++ b/app/src/main/java/net/micode/notes/ui/NoteItemData.java
@@ -24,36 +24,40 @@ import net.micode.notes.data.Contact;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.tool.DataUtils;
+import net.micode.notes.ui.activities.NoteEditActivity;
-
+/**
+ * 便签列表子项
+ * 存储许多便签有关的数据
+ */
public class NoteItemData {
- static final String [] PROJECTION = new String [] {
- NoteColumns.ID,
- NoteColumns.ALERTED_DATE,
- NoteColumns.BG_COLOR_ID,
- NoteColumns.CREATED_DATE,
- NoteColumns.HAS_ATTACHMENT,
- NoteColumns.MODIFIED_DATE,
- NoteColumns.NOTES_COUNT,
- NoteColumns.PARENT_ID,
- NoteColumns.SNIPPET,
- NoteColumns.TYPE,
- NoteColumns.WIDGET_ID,
- NoteColumns.WIDGET_TYPE,
+ public static final String[] PROJECTION = new String[]{
+ NoteColumns.ID,
+ NoteColumns.ALERTED_DATE,
+ NoteColumns.BG_COLOR_ID,
+ NoteColumns.CREATED_DATE,
+ NoteColumns.HAS_ATTACHMENT,
+ NoteColumns.MODIFIED_DATE,
+ NoteColumns.NOTES_COUNT,
+ NoteColumns.PARENT_ID,
+ NoteColumns.SNIPPET,
+ NoteColumns.TYPE,
+ NoteColumns.WIDGET_ID,
+ NoteColumns.WIDGET_TYPE,
};
- private static final int ID_COLUMN = 0;
- private static final int ALERTED_DATE_COLUMN = 1;
- private static final int BG_COLOR_ID_COLUMN = 2;
- private static final int CREATED_DATE_COLUMN = 3;
- private static final int HAS_ATTACHMENT_COLUMN = 4;
- private static final int MODIFIED_DATE_COLUMN = 5;
- private static final int NOTES_COUNT_COLUMN = 6;
- private static final int PARENT_ID_COLUMN = 7;
- private static final int SNIPPET_COLUMN = 8;
- private static final int TYPE_COLUMN = 9;
- private static final int WIDGET_ID_COLUMN = 10;
- private static final int WIDGET_TYPE_COLUMN = 11;
+ private static final int ID_COLUMN = 0;
+ private static final int ALERTED_DATE_COLUMN = 1;
+ private static final int BG_COLOR_ID_COLUMN = 2;
+ private static final int CREATED_DATE_COLUMN = 3;
+ private static final int HAS_ATTACHMENT_COLUMN = 4;
+ private static final int MODIFIED_DATE_COLUMN = 5;
+ private static final int NOTES_COUNT_COLUMN = 6;
+ private static final int PARENT_ID_COLUMN = 7;
+ private static final int SNIPPET_COLUMN = 8;
+ private static final int TYPE_COLUMN = 9;
+ private static final int WIDGET_ID_COLUMN = 10;
+ private static final int WIDGET_TYPE_COLUMN = 11;
private long mId;
private long mAlertDate;
@@ -81,7 +85,7 @@ public class NoteItemData {
mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN);
mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN);
mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN);
- mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false;
+ mHasAttachment = cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0;
mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN);
mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN);
mParentId = cursor.getLong(PARENT_ID_COLUMN);
@@ -110,8 +114,8 @@ public class NoteItemData {
}
private void checkPostion(Cursor cursor) {
- mIsLastItem = cursor.isLast() ? true : false;
- mIsFirstItem = cursor.isFirst() ? true : false;
+ mIsLastItem = cursor.isLast();
+ mIsFirstItem = cursor.isFirst();
mIsOnlyOneItem = (cursor.getCount() == 1);
mIsMultiNotesFollowingFolder = false;
mIsOneNoteFollowingFolder = false;
@@ -190,7 +194,7 @@ public class NoteItemData {
return mNotesCount;
}
- public long getFolderId () {
+ public long getFolderId() {
return mParentId;
}
diff --git a/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java
index 51c9cb9..05b1500 100644
--- a/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java
+++ b/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java
@@ -30,7 +30,9 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
-
+/**
+ * 便签列表适配器
+ */
public class NotesListAdapter extends CursorAdapter {
private static final String TAG = "NotesListAdapter";
private Context mContext;
@@ -38,23 +40,45 @@ public class NotesListAdapter extends CursorAdapter {
private int mNotesCount;
private boolean mChoiceMode;
+ /**
+ * APP页面属性类
+ */
public static class AppWidgetAttribute {
public int widgetId;
public int widgetType;
- };
+ }
+
+ ;
+ /**
+ * 构造器
+ * @param context 便签列表上下文环境
+ */
public NotesListAdapter(Context context) {
super(context, null);
- mSelectedIndex = new HashMap();
+ mSelectedIndex = new HashMap<>();
mContext = context;
mNotesCount = 0;
}
+ /**
+ * 新建便签列表视图的方法
+ * @param context 上下文环境
+ * @param cursor 数据库指针
+ * @param parent 视图父类
+ * @return
+ */
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return new NotesListItem(context);
}
+ /**
+ * 视图绑定
+ * @param view 视图
+ * @param context 上下文
+ * @param cursor 数据库指针
+ */
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view instanceof NotesListItem) {
@@ -64,20 +88,37 @@ public class NotesListAdapter extends CursorAdapter {
}
}
+ /**
+ * 设置子项选中状态
+ * @param position 子项的索引
+ * @param checked 是否选中
+ */
public void setCheckedItem(final int position, final boolean checked) {
mSelectedIndex.put(position, checked);
notifyDataSetChanged();
}
+ /**
+ * 是否在决策模式
+ * @return 结果
+ */
public boolean isInChoiceMode() {
return mChoiceMode;
}
+ /**
+ * 设置决策模式是否启用
+ * @param mode 是否启用
+ */
public void setChoiceMode(boolean mode) {
mSelectedIndex.clear();
mChoiceMode = mode;
}
+ /**
+ * 选择全部便签
+ * @param checked 选中/取消选择
+ */
public void selectAll(boolean checked) {
Cursor cursor = getCursor();
for (int i = 0; i < getCount(); i++) {
@@ -89,6 +130,10 @@ public class NotesListAdapter extends CursorAdapter {
}
}
+ /**
+ * 获取当前选定的所有标签项的Id
+ * @return
+ */
public HashSet getSelectedItemIds() {
HashSet itemSet = new HashSet();
for (Integer position : mSelectedIndex.keySet()) {
@@ -105,6 +150,9 @@ public class NotesListAdapter extends CursorAdapter {
return itemSet;
}
+ /**
+ * 获取选中的界面
+ */
public HashSet getSelectedWidget() {
HashSet itemSet = new HashSet();
for (Integer position : mSelectedIndex.keySet()) {
@@ -128,6 +176,10 @@ public class NotesListAdapter extends CursorAdapter {
return itemSet;
}
+ /**
+ * 获取当前选中的数量
+ * @return 数量
+ */
public int getSelectedCount() {
Collection values = mSelectedIndex.values();
if (null == values) {
@@ -143,11 +195,20 @@ public class NotesListAdapter extends CursorAdapter {
return count;
}
+ /**
+ * 标签是否全部选中
+ * @return 是否全选
+ */
public boolean isAllSelected() {
int checkedCount = getSelectedCount();
return (checkedCount != 0 && checkedCount == mNotesCount);
}
+ /**
+ * 是否选择了指定索引的便签项
+ * @param position
+ * @return
+ */
public boolean isSelectedItem(final int position) {
if (null == mSelectedIndex.get(position)) {
return false;
@@ -155,18 +216,28 @@ public class NotesListAdapter extends CursorAdapter {
return mSelectedIndex.get(position);
}
+ /**
+ * 在内容改变时调用该方法重新计算便签数量
+ */
@Override
protected void onContentChanged() {
super.onContentChanged();
calcNotesCount();
}
+ /**
+ * 修改数据库指针然后重新计算标签项
+ * @param cursor 新的指针
+ */
@Override
public void changeCursor(Cursor cursor) {
super.changeCursor(cursor);
calcNotesCount();
}
+ /**
+ * 计算便签数量
+ */
private void calcNotesCount() {
mNotesCount = 0;
for (int i = 0; i < getCount(); i++) {
diff --git a/app/src/main/java/net/micode/notes/ui/NotesListItem.java b/app/src/main/java/net/micode/notes/ui/NotesListItem.java
index 1221e80..b6094cd 100644
--- a/app/src/main/java/net/micode/notes/ui/NotesListItem.java
+++ b/app/src/main/java/net/micode/notes/ui/NotesListItem.java
@@ -29,7 +29,10 @@ import net.micode.notes.data.Notes;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
-
+/**
+ * 便签项子类
+ * 存储便签列表中便签的状态
+ */
public class NotesListItem extends LinearLayout {
private ImageView mAlert;
private TextView mTitle;
@@ -67,7 +70,7 @@ public class NotesListItem extends LinearLayout {
} else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) {
mCallName.setVisibility(View.VISIBLE);
mCallName.setText(data.getCallName());
- mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem);
+ mTitle.setTextAppearance(context, R.style.TextAppearanceSecondaryItem);
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
if (data.hasAlert()) {
mAlert.setImageResource(R.drawable.clock);
@@ -82,7 +85,7 @@ public class NotesListItem extends LinearLayout {
if (data.getType() == Notes.TYPE_FOLDER) {
mTitle.setText(data.getSnippet()
+ context.getString(R.string.format_folder_files_count,
- data.getNotesCount()));
+ data.getNotesCount()));
mAlert.setVisibility(View.GONE);
} else {
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
@@ -99,6 +102,10 @@ public class NotesListItem extends LinearLayout {
setBackground(data);
}
+ /**
+ * 根据传入的便签项的数据类修改便签背景色
+ * @param data 便签项的数据类
+ */
private void setBackground(NoteItemData data) {
int id = data.getBgColorId();
if (data.getType() == Notes.TYPE_NOTE) {
@@ -116,6 +123,10 @@ public class NotesListItem extends LinearLayout {
}
}
+ /**
+ * 获取该列表便签项绑定的数据类
+ * @return 数据类
+ */
public NoteItemData getItemData() {
return mItemData;
}
diff --git a/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/app/src/main/java/net/micode/notes/ui/activities/AlarmAlertActivity.java
similarity index 90%
rename from app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
rename to app/src/main/java/net/micode/notes/ui/activities/AlarmAlertActivity.java
index 85723be..ae50b19 100644
--- a/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
+++ b/app/src/main/java/net/micode/notes/ui/activities/AlarmAlertActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package net.micode.notes.ui;
+package net.micode.notes.ui.activities;
import android.app.Activity;
import android.app.AlertDialog;
@@ -39,13 +39,19 @@ import net.micode.notes.tool.DataUtils;
import java.io.IOException;
-
+/**
+ * 闹钟应用活动类
+ */
public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener {
private long mNoteId;
private String mSnippet;
private static final int SNIPPET_PREW_MAX_LEN = 60;
MediaPlayer mPlayer;
+ /**
+ * onCreate 生命周期方法
+ * @param savedInstanceState 之前保存的实例状态
+ */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -83,11 +89,18 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
}
}
+ /**
+ * 屏幕是否开着
+ * @return 状态
+ */
private boolean isScreenOn() {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
return pm.isScreenOn();
}
+ /**
+ * 播放闹钟提示音
+ */
private void playAlarmSound() {
Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
@@ -119,6 +132,9 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
}
}
+ /**
+ * 显示操作弹窗
+ */
private void showActionDialog() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle(R.string.app_name);
@@ -130,6 +146,11 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
dialog.show().setOnDismissListener(this);
}
+ /**
+ * 在点击时调用该时间
+ * @param dialog 弹窗接口
+ * @param which 接口类型
+ */
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_NEGATIVE:
@@ -143,11 +164,18 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
}
}
+ /**
+ * 在活动停止调用,停止播放闹钟声音
+ * @param dialog
+ */
public void onDismiss(DialogInterface dialog) {
stopAlarmSound();
finish();
}
+ /**
+ * 停止播放闹钟声音
+ */
private void stopAlarmSound() {
if (mPlayer != null) {
mPlayer.stop();
diff --git a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/app/src/main/java/net/micode/notes/ui/activities/NoteEditActivity.java
similarity index 97%
rename from app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
rename to app/src/main/java/net/micode/notes/ui/activities/NoteEditActivity.java
index 96a9ff8..45e6435 100644
--- a/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
+++ b/app/src/main/java/net/micode/notes/ui/activities/NoteEditActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package net.micode.notes.ui;
+package net.micode.notes.ui.activities;
import android.app.Activity;
import android.app.AlarmManager;
@@ -60,7 +60,10 @@ import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser;
import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
+import net.micode.notes.ui.AlarmReceiver;
+import net.micode.notes.ui.DateTimePickerDialog;
import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
+import net.micode.notes.ui.NoteEditText;
import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
@@ -85,6 +88,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private static final Map sBgSelectorBtnsMap = new HashMap();
+
static {
sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW);
sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED);
@@ -94,6 +98,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private static final Map sBgSelectorSelectionMap = new HashMap();
+
static {
sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select);
sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select);
@@ -103,6 +108,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private static final Map sFontSizeBtnsMap = new HashMap();
+
static {
sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE);
sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL);
@@ -111,6 +117,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private static final Map sFontSelectorSelectionMap = new HashMap();
+
static {
sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select);
sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select);
@@ -214,7 +221,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
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())) {
+ } else if (TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) {
// New note
long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0);
int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID,
@@ -309,7 +316,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
} else {
mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE);
- };
+ }
+ ;
}
@Override
@@ -350,7 +358,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private boolean inRangeOfView(View view, MotionEvent ev) {
- int []location = new int[2];
+ int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
@@ -358,8 +366,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|| ev.getX() > (x + view.getWidth())
|| ev.getY() < y
|| ev.getY() > (y + view.getHeight())) {
- return false;
- }
+ return false;
+ }
return true;
}
@@ -383,7 +391,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
for (int id : sFontSizeBtnsMap.keySet()) {
View view = findViewById(id);
view.setOnClickListener(this);
- };
+ }
+ ;
mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE);
/**
@@ -391,7 +400,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* The id may larger than the length of resources, in this case,
* return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE}
*/
- if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) {
+ if (mFontSizeId >= TextAppearanceResources.getResourcesSize()) {
mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE;
}
mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list);
@@ -400,7 +409,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
@Override
protected void onPause() {
super.onPause();
- if(saveNote()) {
+ if (saveNote()) {
Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length());
}
clearSettingState();
@@ -417,8 +426,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return;
}
- intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
- mWorkingNote.getWidgetId()
+ intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{
+ mWorkingNote.getWidgetId()
});
sendBroadcast(intent);
@@ -430,7 +439,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);
@@ -454,7 +463,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
@Override
public void onBackPressed() {
- if(clearSettingState()) {
+ if (clearSettingState()) {
return;
}
@@ -557,7 +566,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
public void OnDateTimeSet(AlertDialog dialog, long date) {
- mWorkingNote.setAlertDate(date , true);
+ mWorkingNote.setAlertDate(date, true);
}
});
d.show();
@@ -626,7 +635,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE));
showAlertHeader();
- if(!set) {
+ if (!set) {
alarmManager.cancel(pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
@@ -659,7 +668,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mEditTextList.removeViewAt(index);
NoteEditText edit = null;
- if(index == 0) {
+ if (index == 0) {
edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById(
R.id.et_edit_text);
} else {
@@ -676,7 +685,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
/**
* Should not happen, check for debug
*/
- if(index > mEditTextList.getChildCount()) {
+ if (index > mEditTextList.getChildCount()) {
Log.e(TAG, "Index out of mEditTextList boundrary, should not happen");
}
@@ -696,7 +705,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
String[] items = text.split("\n");
int index = 0;
for (String item : items) {
- if(!TextUtils.isEmpty(item)) {
+ if (!TextUtils.isEmpty(item)) {
mEditTextList.addView(getListItem(item, index));
index++;
}
@@ -761,7 +770,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
Log.e(TAG, "Wrong index, should not happen");
return;
}
- if(hasText) {
+ if (hasText) {
mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE);
} else {
mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE);
diff --git a/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/app/src/main/java/net/micode/notes/ui/activities/NotesListActivity.java
similarity index 96%
rename from app/src/main/java/net/micode/notes/ui/NotesListActivity.java
rename to app/src/main/java/net/micode/notes/ui/activities/NotesListActivity.java
index e843aec..9d4d15a 100644
--- a/app/src/main/java/net/micode/notes/ui/NotesListActivity.java
+++ b/app/src/main/java/net/micode/notes/ui/activities/NotesListActivity.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package net.micode.notes.ui;
+package net.micode.notes.ui.activities;
import android.app.Activity;
import android.app.AlertDialog;
@@ -68,7 +68,12 @@ import net.micode.notes.model.WorkingNote;
import net.micode.notes.tool.BackupUtils;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser;
+import net.micode.notes.ui.DropdownMenu;
+import net.micode.notes.ui.FoldersListAdapter;
+import net.micode.notes.ui.NoteItemData;
+import net.micode.notes.ui.NotesListAdapter;
import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
+import net.micode.notes.ui.NotesListItem;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
@@ -81,7 +86,7 @@ import java.util.HashSet;
public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener {
private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0;
- private static final int FOLDER_LIST_QUERY_TOKEN = 1;
+ private static final int FOLDER_LIST_QUERY_TOKEN = 1;
private static final int MENU_FOLDER_DELETE = 0;
@@ -93,7 +98,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private enum ListEditState {
NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER
- };
+ }
+
+ ;
private ListEditState mState;
@@ -133,7 +140,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
+ NoteColumns.NOTES_COUNT + ">0)";
private final static int REQUEST_CODE_OPEN_NODE = 102;
- private final static int REQUEST_CODE_NEW_NODE = 103;
+ private final static int REQUEST_CODE_NEW_NODE = 103;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -163,11 +170,11 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
StringBuilder sb = new StringBuilder();
InputStream in = null;
try {
- in = getResources().openRawResource(R.raw.introduction);
+ in = getResources().openRawResource(R.raw.introduction);
if (in != null) {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
- char [] buf = new char[1024];
+ char[] buf = new char[1024];
int len = 0;
while ((len = br.read(buf)) > 0) {
sb.append(buf, 0, len);
@@ -180,7 +187,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
e.printStackTrace();
return;
} finally {
- if(in != null) {
+ if (in != null) {
try {
in.close();
} catch (IOException e) {
@@ -258,7 +265,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
mDropDownMenu = new DropdownMenu(NotesListActivity.this,
(Button) customView.findViewById(R.id.selection_menu),
R.menu.note_list_dropdown);
- mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
+ mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected());
updateMenu();
@@ -307,7 +314,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
- boolean checked) {
+ boolean checked) {
mNotesListAdapter.setCheckedItem(position, checked);
updateMenu();
}
@@ -325,14 +332,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_notes,
- mNotesListAdapter.getSelectedCount()));
+ mNotesListAdapter.getSelectedCount()));
builder.setPositiveButton(android.R.string.ok,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
- batchDelete();
- }
- });
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+ batchDelete();
+ }
+ });
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
break;
@@ -406,14 +413,16 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
return false;
}
- };
+ }
+
+ ;
private void startAsyncNotesListQuery() {
String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION
: NORMAL_SELECTION;
mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null,
- Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] {
- String.valueOf(mCurrentFolderId)
+ Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[]{
+ String.valueOf(mCurrentFolderId)
}, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC");
}
@@ -605,7 +614,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
});
final Dialog dialog = builder.setView(view).show();
- final Button positive = (Button)dialog.findViewById(android.R.id.button1);
+ final Button positive = (Button) dialog.findViewById(android.R.id.button1);
positive.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
hideSoftInput(etName);
@@ -623,8 +632,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
values.put(NoteColumns.LOCAL_MODIFIED, 1);
mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID
- + "=?", new String[] {
- String.valueOf(mFocusNoteDataItem.getId())
+ + "=?", new String[]{
+ String.valueOf(mFocusNoteDataItem.getId())
});
}
} else if (!TextUtils.isEmpty(name)) {
@@ -699,8 +708,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
return;
}
- intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
- appWidgetId
+ intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{
+ appWidgetId
});
sendBroadcast(intent);
@@ -919,15 +928,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private void startQueryDestinationFolders() {
String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?";
- selection = (mState == ListEditState.NOTE_LIST) ? selection:
- "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
+ selection = (mState == ListEditState.NOTE_LIST) ? selection :
+ "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
null,
Notes.CONTENT_NOTE_URI,
FoldersListAdapter.PROJECTION,
selection,
- new String[] {
+ new String[]{
String.valueOf(Notes.TYPE_FOLDER),
String.valueOf(Notes.ID_TRASH_FOLER),
String.valueOf(mCurrentFolderId)
diff --git a/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/app/src/main/java/net/micode/notes/ui/activities/NotesPreferenceActivity.java
similarity index 98%
rename from app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java
rename to app/src/main/java/net/micode/notes/ui/activities/NotesPreferenceActivity.java
index 07c5f7e..a705a89 100644
--- a/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java
+++ b/app/src/main/java/net/micode/notes/ui/activities/NotesPreferenceActivity.java
@@ -14,11 +14,10 @@
* limitations under the License.
*/
-package net.micode.notes.ui;
+package net.micode.notes.ui.activities;
import android.accounts.Account;
import android.accounts.AccountManager;
-import android.app.ActionBar;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.ContentValues;
@@ -35,7 +34,6 @@ import android.preference.PreferenceCategory;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
-import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
@@ -144,7 +142,7 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
} else {
Toast.makeText(NotesPreferenceActivity.this,
- R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)
+ R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)
.show();
}
return true;
@@ -245,8 +243,8 @@ public class NotesPreferenceActivity extends PreferenceActivity {
public void onClick(View v) {
mHasAddedAccount = true;
Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS");
- intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] {
- "gmail-ls"
+ intent.putExtra(AUTHORITIES_FILTER_KEY, new String[]{
+ "gmail-ls"
});
startActivityForResult(intent, -1);
dialog.dismiss();
@@ -265,7 +263,7 @@ public class NotesPreferenceActivity extends PreferenceActivity {
subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg));
dialogBuilder.setCustomTitle(titleView);
- CharSequence[] menuItemArray = new CharSequence[] {
+ CharSequence[] menuItemArray = new CharSequence[]{
getString(R.string.preferences_menu_change_account),
getString(R.string.preferences_menu_remove_account),
getString(R.string.preferences_menu_cancel)
diff --git a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java
index ec6f819..99575d1 100644
--- a/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java
+++ b/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java
@@ -15,6 +15,7 @@
*/
package net.micode.notes.widget;
+
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
@@ -29,19 +30,19 @@ import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.tool.ResourceParser;
-import net.micode.notes.ui.NoteEditActivity;
-import net.micode.notes.ui.NotesListActivity;
+import net.micode.notes.ui.activities.NoteEditActivity;
+import net.micode.notes.ui.activities.NotesListActivity;
public abstract class NoteWidgetProvider extends AppWidgetProvider {
- public static final String [] PROJECTION = new String [] {
- NoteColumns.ID,
- NoteColumns.BG_COLOR_ID,
- NoteColumns.SNIPPET
+ public static final String[] PROJECTION = new String[]{
+ NoteColumns.ID,
+ NoteColumns.BG_COLOR_ID,
+ NoteColumns.SNIPPET
};
- public static final int COLUMN_ID = 0;
- public static final int COLUMN_BG_COLOR_ID = 1;
- public static final int COLUMN_SNIPPET = 2;
+ public static final int COLUMN_ID = 0;
+ public static final int COLUMN_BG_COLOR_ID = 1;
+ public static final int COLUMN_SNIPPET = 2;
private static final String TAG = "NoteWidgetProvider";
@@ -53,7 +54,7 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
context.getContentResolver().update(Notes.CONTENT_NOTE_URI,
values,
NoteColumns.WIDGET_ID + "=?",
- new String[] { String.valueOf(appWidgetIds[i])});
+ new String[]{String.valueOf(appWidgetIds[i])});
}
}
@@ -61,7 +62,7 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
return context.getContentResolver().query(Notes.CONTENT_NOTE_URI,
PROJECTION,
NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?",
- new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) },
+ new String[]{String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER)},
null);
}
@@ -70,7 +71,7 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider {
}
private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds,
- boolean privacyMode) {
+ boolean privacyMode) {
for (int i = 0; i < appWidgetIds.length; i++) {
if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) {
int bgId = ResourceParser.getDefaultBgId(context);
diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx
new file mode 100644
index 0000000..17cfa75
Binary files /dev/null and b/doc/小米便签开源代码的泛读报告.docx differ