From 8520940050d8f680e2c37d05ebfb5ebbf963d686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=A6=B9=E6=98=95?= <2819428065@qq.com> Date: Thu, 27 Apr 2023 18:49:19 +0800 Subject: [PATCH] =?UTF-8?q?210340006=E6=9D=9C=E7=85=9C=E6=99=97ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui包/AlarmAlertActivity.txt | 192 +++ .../ui包/AlarmReceiver.txt | 20 + .../ui包/AlarmlnitReceiver.txt | 56 + .../ui包/DateTimePacker.txt | 491 ++++++++ .../ui包/DateTimePackerDialog.txt | 87 ++ doc/210340006杜煜晗/ui包/DropdownMenu.txt | 49 + .../ui包/FoldersListAdapter.txt | 71 ++ .../ui包/NoteEditActivity.txt | 1068 +++++++++++++++++ doc/210340006杜煜晗/ui包/NoteEditText.txt | 270 +++++ doc/210340006杜煜晗/ui包/NoteItemData.txt | 214 ++++ .../ui包/NotesListActivity.txt | 1002 ++++++++++++++++ .../ui包/NotesListAdapter.txt | 257 ++++ .../ui包/NotesListItem.txt | 116 ++ .../ui包/NotesPreferenceActivity.txt | 514 ++++++++ doc/陈禹昕组泛读报告.docx | Bin 0 -> 396804 bytes 15 files changed, 4407 insertions(+) create mode 100644 doc/210340006杜煜晗/ui包/AlarmAlertActivity.txt create mode 100644 doc/210340006杜煜晗/ui包/AlarmReceiver.txt create mode 100644 doc/210340006杜煜晗/ui包/AlarmlnitReceiver.txt create mode 100644 doc/210340006杜煜晗/ui包/DateTimePacker.txt create mode 100644 doc/210340006杜煜晗/ui包/DateTimePackerDialog.txt create mode 100644 doc/210340006杜煜晗/ui包/DropdownMenu.txt create mode 100644 doc/210340006杜煜晗/ui包/FoldersListAdapter.txt create mode 100644 doc/210340006杜煜晗/ui包/NoteEditActivity.txt create mode 100644 doc/210340006杜煜晗/ui包/NoteEditText.txt create mode 100644 doc/210340006杜煜晗/ui包/NoteItemData.txt create mode 100644 doc/210340006杜煜晗/ui包/NotesListActivity.txt create mode 100644 doc/210340006杜煜晗/ui包/NotesListAdapter.txt create mode 100644 doc/210340006杜煜晗/ui包/NotesListItem.txt create mode 100644 doc/210340006杜煜晗/ui包/NotesPreferenceActivity.txt create mode 100644 doc/陈禹昕组泛读报告.docx diff --git a/doc/210340006杜煜晗/ui包/AlarmAlertActivity.txt b/doc/210340006杜煜晗/ui包/AlarmAlertActivity.txt new file mode 100644 index 0000000..e3327bd --- /dev/null +++ b/doc/210340006杜煜晗/ui包/AlarmAlertActivity.txt @@ -0,0 +1,192 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnDismissListener; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; +import android.view.Window; +import android.view.WindowManager; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; + +import java.io.IOException; + +public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener { + private long mNoteId; //文本在数据库存储中的ID号 + private String mSnippet; //闹钟提示时出现的文本片段 + private static final int SNIPPET_PREW_MAX_LEN = 60; + MediaPlayer mPlayer; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //Bundle类型的数据与Map类型的数据相似,都是以key-value的形式存储数据的 + //onsaveInstanceState方法是用来保存Activity的状态的 + //能从onCreate的参数savedInsanceState中获得状态数据 + requestWindowFeature(Window.FEATURE_NO_TITLE); + //界面显示——无标题 + + final Window win = getWindow(); + win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + + if (!isScreenOn()) { + win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + //保持窗体点亮 + | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON + //将窗体点亮 + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + //允许窗体点亮时锁屏 + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + }//在手机锁屏后如果到了闹钟提示时间,点亮屏幕 + + Intent intent = getIntent(); + + try { + mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1)); + mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId); + //根据ID从数据库中获取标签的内容; + //getContentResolver()是实现数据共享,实例存储。 + mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0, + SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info) + : mSnippet; + //判断标签片段是否达到符合长度 + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return; + } + /* + try + { + // 代码区 + } + catch(Exception e) + { + // 异常处理 + } + 代码区如果有错误,就会返回所写异常的处理。*/ + mPlayer = new MediaPlayer(); + if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { + showActionDialog(); + //弹出对话框 + playAlarmSound(); + //闹钟提示音激发 + } else { + finish(); + //完成闹钟动作 + } + } + + private boolean isScreenOn() { + //判断屏幕是否锁屏,调用系统函数判断,最后返回值是布尔类型 + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + return pm.isScreenOn(); + } + + private void playAlarmSound() { + //闹钟提示音激发 + Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); + //调用系统的铃声管理URI,得到闹钟提示音 + int silentModeStreams = Settings.System.getInt(getContentResolver(), + Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0); + + if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) { + mPlayer.setAudioStreamType(silentModeStreams); + } else { + mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); + } + try { + mPlayer.setDataSource(this, url); + //方法:setDataSource(Context context, Uri uri) + //解释:无返回值,设置多媒体数据来源【根据 Uri】 + mPlayer.prepare(); + //准备同步 + mPlayer.setLooping(true); + //设置是否循环播放 + mPlayer.start(); + //开始播放 + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + //e.printStackTrace()函数功能是抛出异常, 还将显示出更深的调用信息 + //System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常 + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalStateException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private void showActionDialog() { + AlertDialog.Builder dialog = new AlertDialog.Builder(this); + //AlertDialog的构造方法全部是Protected的 + //所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。 + //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法 + //如这里的dialog就是新建了一个AlertDialog + dialog.setTitle(R.string.app_name); + //为对话框设置标题 + dialog.setMessage(mSnippet); + //为对话框设置内容 + dialog.setPositiveButton(R.string.notealert_ok, this); + //给对话框添加"Yes"按钮 + if (isScreenOn()) { + dialog.setNegativeButton(R.string.notealert_enter, this); + }//对话框添加"No"按钮 + dialog.show().setOnDismissListener(this); + } + + public void onClick(DialogInterface dialog, int which) { + switch (which) { + //用which来选择click后下一步的操作 + case DialogInterface.BUTTON_NEGATIVE: + //这是取消操作 + Intent intent = new Intent(this, NoteEditActivity.class); + //实现两个类间的数据传输 + intent.setAction(Intent.ACTION_VIEW); + //设置动作属性 + intent.putExtra(Intent.EXTRA_UID, mNoteId); + //实现key-value对 + //EXTRA_UID为key;mNoteId为键 + startActivity(intent); + //开始动作 + break; + default: + //这是确定操作 + break; + } + } + + public void onDismiss(DialogInterface dialog) { + //忽略 + stopAlarmSound(); + //停止闹钟声音 + finish(); + //完成该动作 + } + + private void stopAlarmSound() { + if (mPlayer != null) { + mPlayer.stop(); + //停止播放 + mPlayer.release(); + //释放MediaPlayer对象 + mPlayer = null; + } + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/AlarmReceiver.txt b/doc/210340006杜煜晗/ui包/AlarmReceiver.txt new file mode 100644 index 0000000..f35ed7b --- /dev/null +++ b/doc/210340006杜煜晗/ui包/AlarmReceiver.txt @@ -0,0 +1,20 @@ +package net.micode.notes.ui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class AlarmReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + intent.setClass(context, AlarmAlertActivity.class); + //启动AlarmAlertActivity + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + //activity要存在于activity的栈中,而非activity的途径启动activity时必然不存在一个activity的栈 + //所以要新起一个栈装入启动的activity + context.startActivity(intent); + } +} +//这是实现alarm这个功能最接近用户层的包,基于上面的两个包, +//作用还需要深究但是对于setClass和addFlags的 + \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/AlarmlnitReceiver.txt b/doc/210340006杜煜晗/ui包/AlarmlnitReceiver.txt new file mode 100644 index 0000000..353f4ae --- /dev/null +++ b/doc/210340006杜煜晗/ui包/AlarmlnitReceiver.txt @@ -0,0 +1,56 @@ +package net.micode.notes.ui; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +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 + }; + //对数据库的操作,调用标签ID和闹钟时间 + 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(); + //System.currentTimeMillis()产生一个当前的毫秒 + //这个毫秒其实就是自1970年1月1日0时起的毫秒数 + Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, + new String[] { String.valueOf(currentDate) }, + //将long变量currentDate转化为字符串 + null); + //Cursor在这里的作用是通过查找数据库中的标签内容,找到和当前系统时间相等的标签 + + if (c != null) { + if (c.moveToFirst()) { + do { + long alertDate = c.getLong(COLUMN_ALERTED_DATE); + Intent sender = new Intent(context, AlarmReceiver.class); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); + AlarmManager alermManager = (AlarmManager) context + .getSystemService(Context.ALARM_SERVICE); + alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); + } while (c.moveToNext()); + } + c.close(); + } + //然而通过网上查找资料发现,对于闹钟机制的启动,通常需要上面的几个步骤 + //如新建Intent、PendingIntent以及AlarmManager等 + //这里就是根据数据库里的闹钟时间创建一个闹钟机制 + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/DateTimePacker.txt b/doc/210340006杜煜晗/ui包/DateTimePacker.txt new file mode 100644 index 0000000..c7fbbcd --- /dev/null +++ b/doc/210340006杜煜晗/ui包/DateTimePacker.txt @@ -0,0 +1,491 @@ +package net.micode.notes.ui; + +import java.text.DateFormatSymbols; +import java.util.Calendar; + +import net.micode.notes.R; + + +import android.content.Context; +import android.text.format.DateFormat; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.NumberPicker; + +public class DateTimePicker extends FrameLayout { + //FrameLayout是布局模板之一 + //所有的子元素全部在屏幕的右上方 + private static final boolean DEFAULT_ENABLE_STATE = true; + + 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; + private static final int DATE_SPINNER_MIN_VAL = 0; + private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + private static final int MINUT_SPINNER_MIN_VAL = 0; + private static final int MINUT_SPINNER_MAX_VAL = 59; + 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; + private final NumberPicker mAmPmSpinner; + //NumberPicker是数字选择器 + //这里定义的四个变量全部是在设置闹钟时需要选择的变量(如日期、时、分、上午或者下午) + private Calendar mDate; + //定义了Calendar类型的变量mDate,用于操作时间 + private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + + private boolean mIsAm; + + 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(); + } + };//OnValueChangeListener,这是时间改变监听器,这里主要是对日期的监听 + //将现在日期的值传递给mDate;updateDateControl是同步操作 + + private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { + //这里是对 小时(Hour) 的监听 + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + boolean isDateChanged = false; + Calendar cal = Calendar.getInstance(); + //声明一个Calendar的变量cal,便于后续的操作 + if (!mIs24HourView) { + if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + //这里是对于12小时制时,晚上11点和12点交替时对日期的更改 + } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + //这里是对于12小时制时,凌晨11点和12点交替时对日期的更改 + if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY || + oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + mIsAm = !mIsAm; + updateAmPmControl(); + }//这里是对于12小时制时,中午11点和12点交替时对AM和PM的更改 + } else { + if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + //这里是对于24小时制时,晚上11点和12点交替时对日期的更改 + } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + isDateChanged = true; + } + } //这里是对于12小时制时,凌晨11点和12点交替时对日期的更改 + int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY); + //通过数字选择器对newHour的赋值 + mDate.set(Calendar.HOUR_OF_DAY, newHour); + //通过set函数将新的Hour值传给mDate + onDateTimeChanged(); + if (isDateChanged) { + setCurrentYear(cal.get(Calendar.YEAR)); + setCurrentMonth(cal.get(Calendar.MONTH)); + setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); + } + } + }; + + private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + //这里是对 分钟(Minute)改变的监听 + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + int minValue = mMinuteSpinner.getMinValue(); + int maxValue = mMinuteSpinner.getMaxValue(); + int offset = 0; + //设置offset,作为小时改变的一个记录数据 + if (oldVal == maxValue && newVal == minValue) { + offset += 1; + } else if (oldVal == minValue && newVal == maxValue) { + offset -= 1; + } + //如果原值为59,新值为0,则offset加1 + //如果原值为0,新值为59,则offset减1 + if (offset != 0) { + mDate.add(Calendar.HOUR_OF_DAY, offset); + mHourSpinner.setValue(getCurrentHour()); + updateDateControl(); + int newHour = getCurrentHourOfDay(); + if (newHour >= HOURS_IN_HALF_DAY) { + mIsAm = false; + updateAmPmControl(); + } else { + mIsAm = true; + updateAmPmControl(); + } + } + mDate.set(Calendar.MINUTE, newVal); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { + //对AM和PM的监听 + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mIsAm = !mIsAm; + if (mIsAm) { + mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); + } else { + mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); + } + updateAmPmControl(); + onDateTimeChanged(); + } + }; + + public interface OnDateTimeChangedListener { + void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute); + } + + public DateTimePicker(Context context) { + this(context, System.currentTimeMillis()); + }//通过对数据库的访问,获取当前的系统时间 + + public DateTimePicker(Context context, long date) { + this(context, date, DateFormat.is24HourFormat(context)); + }//上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义 + + public DateTimePicker(Context context, long date, boolean is24HourView) { + super(context); + //获取系统时间 + mDate = Calendar.getInstance(); + mInitialising = true; + mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY; + inflate(context, R.layout.datetime_picker, this); + //如果当前Activity里用到别的layout,比如对话框layout + //还要设置这个layout上的其他组件的内容,就必须用inflate()方法先将对话框的layout找出来 + //然后再用findViewById()找到它上面的其它组件 + mDateSpinner = (NumberPicker) findViewById(R.id.date); + mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL); + mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL); + mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); + + mHourSpinner = (NumberPicker) findViewById(R.id.hour); + mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); + mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); + mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); + mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); + mMinuteSpinner.setOnLongPressUpdateInterval(100); + mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener); + + String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); + mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); + mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); + mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); + mAmPmSpinner.setDisplayedValues(stringsForAmPm); + mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener); + + // update controls to initial state + updateDateControl(); + updateHourControl(); + updateAmPmControl(); + + set24HourView(is24HourView); + + // set to current time + setCurrentDate(date); + + setEnabled(isEnabled()); + + // set the content descriptions + mInitialising = false; + } + + @Override + public void setEnabled(boolean enabled) { + if (mIsEnabled == enabled) { + return; + } + super.setEnabled(enabled); + mDateSpinner.setEnabled(enabled); + mMinuteSpinner.setEnabled(enabled); + mHourSpinner.setEnabled(enabled); + mAmPmSpinner.setEnabled(enabled); + mIsEnabled = enabled; + } + //存在疑问!!!!!!!!!!!!!setEnabled的作用 + //下面的代码通过原程序的注释已经比较清晰,另外可以通过函数名来判断 + //下面的各函数主要是对上面代码引用到的各函数功能的实现 + @Override + public boolean isEnabled() { + return mIsEnabled; + } + + /** + * Get the current date in millis + * + * @return the current date in millis + */ + public long getCurrentDateInTimeMillis() { + return mDate.getTimeInMillis(); + }//实现函数——得到当前的秒数 + + /** + * Set the current date + * + * @param date The current date in millis + */ + public void setCurrentDate(long date) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(date); + setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); + }//实现函数功能——设置当前的时间,参数是date + + /** + * Set the current date + * + * @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 + */ + public void setCurrentDate(int year, int month, + int dayOfMonth, int hourOfDay, int minute) { + setCurrentYear(year); + setCurrentMonth(month); + setCurrentDay(dayOfMonth); + setCurrentHour(hourOfDay); + setCurrentMinute(minute); + }//实现函数功能——设置当前的时间,参数是各详细的变量 + + /** + * Get current year + * + * @return The current year + */ + //下面是得到year、month、day等值 + public int getCurrentYear() { + return mDate.get(Calendar.YEAR); + } + + /** + * Set current year + * + * @param year The current year + */ + public void setCurrentYear(int year) { + if (!mInitialising && year == getCurrentYear()) { + return; + } + mDate.set(Calendar.YEAR, year); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current month in the year + * + * @return The current month in the year + */ + public int getCurrentMonth() { + return mDate.get(Calendar.MONTH); + } + + /** + * Set current month in the year + * + * @param month The month in the year + */ + public void setCurrentMonth(int month) { + if (!mInitialising && month == getCurrentMonth()) { + return; + } + mDate.set(Calendar.MONTH, month); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current day of the month + * + * @return The day of the month + */ + public int getCurrentDay() { + return mDate.get(Calendar.DAY_OF_MONTH); + } + + /** + * Set current day of the month + * + * @param dayOfMonth The day of the month + */ + public void setCurrentDay(int dayOfMonth) { + if (!mInitialising && dayOfMonth == getCurrentDay()) { + return; + } + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current hour in 24 hour mode, in the range (0~23) + * @return The current hour in 24 hour mode + */ + public int getCurrentHourOfDay() { + return mDate.get(Calendar.HOUR_OF_DAY); + } + + private int getCurrentHour() { + if (mIs24HourView){ + return getCurrentHourOfDay(); + } else { + int hour = getCurrentHourOfDay(); + if (hour > HOURS_IN_HALF_DAY) { + return hour - HOURS_IN_HALF_DAY; + } else { + return hour == 0 ? HOURS_IN_HALF_DAY : hour; + } + } + } + + /** + * Set current hour in 24 hour mode, in the range (0~23) + * + * @param hourOfDay + */ + public void setCurrentHour(int hourOfDay) { + if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { + return; + } + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + if (!mIs24HourView) { + if (hourOfDay >= HOURS_IN_HALF_DAY) { + mIsAm = false; + if (hourOfDay > HOURS_IN_HALF_DAY) { + hourOfDay -= HOURS_IN_HALF_DAY; + } + } else { + mIsAm = true; + if (hourOfDay == 0) { + hourOfDay = HOURS_IN_HALF_DAY; + } + } + updateAmPmControl(); + } + mHourSpinner.setValue(hourOfDay); + onDateTimeChanged(); + } + + /** + * Get currentMinute + * + * @return The Current Minute + */ + public int getCurrentMinute() { + return mDate.get(Calendar.MINUTE); + } + + /** + * Set current minute + */ + public void setCurrentMinute(int minute) { + if (!mInitialising && minute == getCurrentMinute()) { + return; + } + mMinuteSpinner.setValue(minute); + mDate.set(Calendar.MINUTE, minute); + onDateTimeChanged(); + } + + /** + * @return true if this is in 24 hour view else false. + */ + public boolean is24HourView () { + return mIs24HourView; + } + + /** + * Set whether in 24 hour or AM/PM mode. + * + * @param is24HourView True for 24 hour mode. False for AM/PM mode. + */ + public void set24HourView(boolean is24HourView) { + if (mIs24HourView == is24HourView) { + return; + } + mIs24HourView = is24HourView; + mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); + int hour = getCurrentHourOfDay(); + updateHourControl(); + setCurrentHour(hour); + updateAmPmControl(); + } + + private void updateDateControl() { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); + mDateSpinner.setDisplayedValues(null); + for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { + cal.add(Calendar.DAY_OF_YEAR, 1); + mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); + } + mDateSpinner.setDisplayedValues(mDateDisplayValues); + mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); + mDateSpinner.invalidate(); + }// 对于星期几的算法 + + private void updateAmPmControl() { + if (mIs24HourView) { + mAmPmSpinner.setVisibility(View.GONE); + } else { + int index = mIsAm ? Calendar.AM : Calendar.PM; + mAmPmSpinner.setValue(index); + mAmPmSpinner.setVisibility(View.VISIBLE); + }// 对于上下午操作的算法 + } + + private void updateHourControl() { + if (mIs24HourView) { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); + } else { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); + }// 对与小时的算法 + } + + /** + * 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()); + } + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/DateTimePackerDialog.txt b/doc/210340006杜煜晗/ui包/DateTimePackerDialog.txt new file mode 100644 index 0000000..c11de32 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/DateTimePackerDialog.txt @@ -0,0 +1,87 @@ +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 { + + private Calendar mDate = Calendar.getInstance(); + //创建一个Calendar类型的变量 mDate,方便时间的操作 + private boolean mIs24HourView; + private OnDateTimeSetListener mOnDateTimeSetListener; + //声明一个时间日期滚动选择控件 mOnDateTimeSetListener + private DateTimePicker mDateTimePicker; + //DateTimePicker控件,控件一般用于让用户可以从日期列表中选择单个值。 + //运行时,单击控件边上的下拉箭头,会显示为两个部分:一个下拉列表,一个用于选择日期的 + + 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); + //将秒数设置为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()); + } + + 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)); + }//android开发中常见日期管理工具类(API)——DateUtils:按照上下午显示时间 + + public void onClick(DialogInterface arg0, int arg1) { + if (mOnDateTimeSetListener != null) { + mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); + } + }//第一个参数arg0是接收到点击事件的对话框 + //第二个参数arg1是该对话框上的按钮 + +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/DropdownMenu.txt b/doc/210340006杜煜晗/ui包/DropdownMenu.txt new file mode 100644 index 0000000..4c4cf90 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/DropdownMenu.txt @@ -0,0 +1,49 @@ +package net.micode.notes.ui; + +import android.content.Context; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.PopupMenu; +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) { + mButton = button; + mButton.setBackgroundResource(R.drawable.dropdown_icon); + //设置这个view的背景 + mPopupMenu = new PopupMenu(context, mButton); + mMenu = mPopupMenu.getMenu(); + mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + //MenuInflater是用来实例化Menu目录下的Menu布局文件 + //根据ID来确认menu的内容选项 + mButton.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + mPopupMenu.show(); + } + }); + } + + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); + }//设置菜单的监听 + } + + public MenuItem findItem(int id) { + return mMenu.findItem(id); + }//对于菜单选项的初始化,根据索引搜索菜单需要的选项 + + public void setTitle(CharSequence title) { + mButton.setText(title); + }//布局文件,设置标题 +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/FoldersListAdapter.txt b/doc/210340006杜煜晗/ui包/FoldersListAdapter.txt new file mode 100644 index 0000000..4fbe285 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/FoldersListAdapter.txt @@ -0,0 +1,71 @@ +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 { + //CursorAdapter是Cursor和ListView的接口 + //FoldersListAdapter继承了CursorAdapter的类 + //主要作用是便签数据库和用户的交互 + //这里就是用folder(文件夹)的形式展现给用户 + public static final String [] PROJECTION = { + NoteColumns.ID, + NoteColumns.SNIPPET + };//调用数据库中便签的ID和片段 + + 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) { + //ViewGroup是容器 + return new FolderListItem(context); + }//创建一个文件夹,对于各文件夹中子标签的初始化 + + @Override + public void bindView(View view, Context context, Cursor cursor) { + 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) getItem(position); + return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context + .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + }//根据数据库中标签的ID得到标签的各项内容 + + 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); + } + } + +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NoteEditActivity.txt b/doc/210340006杜煜晗/ui包/NoteEditActivity.txt new file mode 100644 index 0000000..40d766a --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NoteEditActivity.txt @@ -0,0 +1,1068 @@ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlarmManager; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.text.style.BackgroundColorSpan; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.model.WorkingNote; +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.DateTimePickerDialog.OnDateTimeSetListener; +import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class NoteEditActivity extends Activity implements OnClickListener, + NoteSettingChangedListener, OnTextViewChangeListener { + //该类主要是针对标签的编辑 + //继承了系统内部许多和监听有关的类 + private class HeadViewHolder { + public TextView tvModified; + + public ImageView ivAlertIcon; + + public TextView tvAlertDate; + + public ImageView ibSetBgColor; + } + //使用Map实现数据存储 + 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); + 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); + //put函数是将指定值和指定键相连 + } + + 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); + sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); + sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); + sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); + //put函数是将指定值和指定键相连 + } + + 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); + sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); + sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); + //put函数是将指定值和指定键相连 + } + + 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); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); + //put函数是将指定值和指定键相连 + } + + private static final String TAG = "NoteEditActivity"; + + private HeadViewHolder mNoteHeaderHolder; + + private View mHeadViewPanel; + //私有化一个界面操作mHeadViewPanel,对表头的操作 + private View mNoteBgColorSelector; + //私有化一个界面操作mNoteBgColorSelector,对背景颜色的操作 + private View mFontSizeSelector; + //私有化一个界面操作mFontSizeSelector,对标签字体的操作 + private EditText mNoteEditor; + //声明编辑控件,对文本操作 + private View mNoteEditorPanel; + //私有化一个界面操作mNoteEditorPanel,文本编辑的控制板 + //private WorkingNote mWorkingNote; + public WorkingNote mWorkingNote; + //对模板WorkingNote的初始化 + private SharedPreferences mSharedPrefs; + //私有化SharedPreferences的数据存储方式 + //它的本质是基于XML文件存储key-value键值对数据 + private int mFontSizeId; + //用于操作字体的大小 + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + + public static final String TAG_CHECKED = String.valueOf('\u221A'); + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + + private LinearLayout mEditTextList; + //线性布局 + private String mUserQuery; + private Pattern mPattern; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setContentView(R.layout.note_edit); + //对数据库的访问操作 + if (savedInstanceState == null && !initActivityState(getIntent())) { + finish(); + return; + } + initResources(); + } + + /** + * 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 + */ + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); + if (!initActivityState(intent)) { + finish(); + return; + } + Log.d(TAG, "Restoring from killed activity"); + }//为防止内存不足时程序的终止,在这里有一个保存现场的函数 + } + + private boolean initActivityState(Intent intent) { + /** + * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, + * then jump to the NotesListActivity + */ + mWorkingNote = null; + if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { + long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); + mUserQuery = ""; + //如果用户实例化标签时,系统并未给出标签ID + /** + * Starting from the searched result + */ + //根据键值查找ID + if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { + noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); + mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY); + } + //如果ID在数据库中未找到 + if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { + Intent jump = new Intent(this, NotesListActivity.class); + startActivity(jump); + //程序将跳转到上面声明的intent——jump + showToast(R.string.error_note_not_exist); + finish(); + return false; + } + //ID在数据库中找到 + else { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load note failed with note id" + noteId); + //打印出红色的错误信息 + finish(); + return false; + } + } + //setSoftInputMode——软键盘输入模式 + 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())) { + // intent.getAction() + // 大多用于broadcast发送广播时给机制(intent)设置一个action,就是一个字符串 + // 用户可以通过receive(接受)intent,通过 getAction得到的字符串,来决定做什么 + long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); + int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, + Notes.TYPE_WIDGET_INVALIDE); + int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, + ResourceParser.getDefaultBgId(this)); + // intent.getInt(Long、String)Extra是对各变量的语法分析 + // Parse call-record note + String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); + long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0); + if (callDate != 0 && phoneNumber != null) { + if (TextUtils.isEmpty(phoneNumber)) { + Log.w(TAG, "The call record number is null"); + } + long noteId = 0; + if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), + phoneNumber, callDate)) > 0) { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load call note failed with note id" + noteId); + finish(); + return false; + } + //将电话号码与手机的号码簿相关 + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, + widgetType, bgResId); + mWorkingNote.convertToCallNote(phoneNumber, callDate); + // + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, + bgResId); + }//创建一个新的WorkingNote + + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + } else { + Log.e(TAG, "Intent not specified action, should not support"); + finish(); + return false; + } + mWorkingNote.setOnSettingStatusChangedListener(this); + return true; + } + + @Override + protected void onResume() { + super.onResume(); + initNoteScreen(); + } + + private void initNoteScreen() { + //对界面的初始化操作 + mNoteEditor.setTextAppearance(this, TextAppearanceResources + .getTexAppearanceResource(mFontSizeId)); + //设置外观 + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mNoteEditor.setSelection(mNoteEditor.getText().length()); + } + for (Integer id : sBgSelectorSelectionMap.keySet()) { + findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); + } + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + + mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this, + mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE + | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME + | DateUtils.FORMAT_SHOW_YEAR)); + + /** + * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker + * is not ready + */ + showAlertHeader(); + } + //设置闹钟的显示 + private void showAlertHeader() { + if (mWorkingNote.hasClockAlert()) { + long time = System.currentTimeMillis(); + if (time > mWorkingNote.getAlertDate()) { + mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); + } + //如果系统时间大于了闹钟设置的时间,那么闹钟失效 + else { + mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( + mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); + } + mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); + //显示闹钟开启的图标 + } else { + mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); + }; + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + initActivityState(intent); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + /** + * For new note without note id, we should firstly save it to + * generate a id. If the editing note is not worth saving, there + * is no id which is equivalent to create new note + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + //在创建一个新的标签时,先在数据库中匹配 + //如果不存在,那么先在数据库中存储 + outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); + } + + @Override + //MotionEvent是对屏幕触控的传递机制 + public boolean dispatchTouchEvent(MotionEvent ev) { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mNoteBgColorSelector, ev)) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + }//颜色选择器在屏幕上可见 + + if (mFontSizeSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mFontSizeSelector, ev)) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + }//字体大小选择器在屏幕上可见 + return super.dispatchTouchEvent(ev); + } + //对屏幕触控的坐标进行操作 + private boolean inRangeOfView(View view, MotionEvent ev) { + int []location = new int[2]; + view.getLocationOnScreen(location); + int x = location[0]; + int y = location[1]; + if (ev.getX() < x + || ev.getX() > (x + view.getWidth()) + || ev.getY() < y + || ev.getY() > (y + view.getHeight())) + //如果触控的位置超出了给定的范围,返回false + { + return false; + } + return true; + } + + private void initResources() { + mHeadViewPanel = findViewById(R.id.note_title); + mNoteHeaderHolder = new HeadViewHolder(); + mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); + mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); + mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); + mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); + mNoteEditor = (EditText) findViewById(R.id.note_edit_view); + mNoteEditorPanel = findViewById(R.id.sv_note_edit); + mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); + for (int id : sBgSelectorBtnsMap.keySet()) { + ImageView iv = (ImageView) findViewById(id); + iv.setOnClickListener(this); + }//对标签各项属性内容的初始化 + + mFontSizeSelector = findViewById(R.id.font_size_selector); + 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); + /** + * HACKME: Fix bug of store the resource id in shared preference. + * The id may larger than the length of resources, in this case, + * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + */ + if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { + mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; + } + mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + } + + @Override + protected void onPause() { + super.onPause(); + if(saveNote()) { + Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); + } + clearSettingState(); + } + //和桌面小工具的同步 + private void updateWidget() { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + mWorkingNote.getWidgetId() + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + public void onClick(View v) { + int id = v.getId(); + if (id == R.id.btn_set_bg_color) { + mNoteBgColorSelector.setVisibility(View.VISIBLE); + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + - View.VISIBLE); + } else if (sBgSelectorBtnsMap.containsKey(id)) { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.GONE); + mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); + mNoteBgColorSelector.setVisibility(View.GONE); + } else if (sFontSizeBtnsMap.containsKey(id)) { + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE); + mFontSizeId = sFontSizeBtnsMap.get(id); + mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit(); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + getWorkingText(); + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setTextAppearance(this, + TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + } + mFontSizeSelector.setVisibility(View.GONE); + } + }//************************存在问题 + + @Override + public void onBackPressed() { + if(clearSettingState()) { + return; + } + + saveNote(); + super.onBackPressed(); + } + + private boolean clearSettingState() { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return false; + } + + public void onBackgroundColorChanged() { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + } + + @Override + //对选择菜单的准备 + public boolean onPrepareOptionsMenu(Menu menu) { + if (isFinishing()) { + return true; + } + clearSettingState(); + menu.clear(); + if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_note_edit, menu); + // MenuInflater是用来实例化Menu目录下的Menu布局文件的 + } else { + getMenuInflater().inflate(R.menu.note_edit, menu); + } + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); + } else { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); + } + if (mWorkingNote.hasClockAlert()) { + menu.findItem(R.id.menu_alert).setVisible(false); + } else { + menu.findItem(R.id.menu_delete_remind).setVisible(false); + } + return true; + } + + @Override + /* + * 函数功能:动态改变菜单选项内容 + * 函数实现:如下注释 + */ + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + //根据菜单的id来编剧相关项目 + 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)); + // 设置标签的标题为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() { + //建立按键监听器 + public void onClick(DialogInterface dialog, int which) { + //点击所触发事件 + deleteCurrentNote(); + // 删除单签便签 + finish(); + } + }); + //添加“YES”按钮 + builder.setNegativeButton(android.R.string.cancel, null); + //添加“NO”的按钮 + builder.show(); + //显示对话框 + break; + case R.id.menu_font_size: + //字体大小的编辑 + mFontSizeSelector.setVisibility(View.VISIBLE); + // 将字体选择器置为可见 + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + // 通过id找到相应的大小 + 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()); + // 用sendto函数将运行文本发送到遍历的本文内 + break; + case R.id.menu_send_to_desktop: + //发送到桌面 + sendToDesktop(); + break; + case R.id.menu_alert: + //创建提醒器 + setReminder(); + break; + case R.id.menu_delete_remind: + //删除日期提醒 + mWorkingNote.setAlertDate(0, false); + break; + default: + break; + } + return true; + } + + /* + * 函数功能:建立事件提醒器 + * 函数实现:如下注释 + */ + private void setReminder() { + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); + // 建立修改时间日期的对话框 + d.setOnDateTimeSetListener(new OnDateTimeSetListener() { + public void OnDateTimeSet(AlertDialog dialog, long date) { + mWorkingNote.setAlertDate(date , true); + //选择提醒的日期 + } + }); + //建立时间日期的监听器 + d.show(); + //显示对话框 + } + + /** + * Share note to apps that support {@link Intent#ACTION_SEND} action + * and {@text/plain} type + */ + /* + * 函数功能:共享便签 + * 函数实现:如下注释 + */ + private void sendTo(Context context, String info) { + Intent intent = new Intent(Intent.ACTION_SEND); + //建立intent链接选项 + intent.putExtra(Intent.EXTRA_TEXT, info); + //将需要传递的便签信息放入text文件中 + intent.setType("text/plain"); + //编辑连接器的类型 + context.startActivity(intent); + //在acti中进行链接 + } + + /* + * 函数功能:创建一个新的便签 + * 函数实现:如下注释 + */ + private void createNewNote() { + // Firstly, save current editing notes + //保存当前便签 + saveNote(); + + // For safety, start a new NoteEditActivity + finish(); + Intent intent = new Intent(this, NoteEditActivity.class); + //设置链接器 + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + //该活动定义为创建或编辑 + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); + //将运行便签的id添加到INTENT_EXTRA_FOLDER_ID标记中 + startActivity(intent); + //开始activity并链接 + } + + /* + * 函数功能:删除当前便签 + * 函数实现:如下注释 + */ + private void deleteCurrentNote() { + if (mWorkingNote.existInDatabase()) { + //假如当前运行的便签内存有数据 + HashSet ids = new HashSet(); + long id = mWorkingNote.getNoteId(); + if (id != Notes.ID_ROOT_FOLDER) { + ids.add(id); + //如果不是头文件夹建立一个hash表把便签id存起来 + } else { + Log.d(TAG, "Wrong note id, should not happen"); + //否则报错 + } + 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"); + } + } + } + mWorkingNote.markDeleted(true); + //将这些标签的删除标记置为true + } + + /* + * 函数功能:判断是否为同步模式 + * 函数实现:直接看NotesPreferenceActivity中同步名称是否为空 + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /* + * 函数功能:设置提醒时间 + * 函数实现:如下注释 + */ + 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()) { + //首先保存已有的便签 + saveNote(); + } + if (mWorkingNote.getNoteId() > 0) { + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); + //若有有运行的便签就是建立一个链接器将标签id都存在uri中 + 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 { + /** + * 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 + * should input something + */ + //没有运行的便签就报错 + Log.e(TAG, "Clock alert setting error"); + showToast(R.string.error_note_empty_for_clock); + } + } + + /* + * 函数功能:Widget发生改变的所触发的事件 + */ + public void onWidgetChanged() { + updateWidget();//更新Widget + } + + /* + * 函数功能: 删除编辑文本框所触发的事件 + * 函数实现:如下注释 + */ + public void onEditTextDelete(int index, String text) { + int childCount = mEditTextList.getChildCount(); + if (childCount == 1) { + return; + } + //没有编辑框的话直接返回 + for (int i = index + 1; i < childCount; i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i - 1); + //通过id把编辑框存在便签编辑框中 + } + + mEditTextList.removeViewAt(index); + //删除特定位置的视图 + NoteEditText edit = null; + if(index == 0) { + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( + R.id.et_edit_text); + } else { + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + R.id.et_edit_text); + } + //通过id把编辑框存在空的NoteEditText中 + int length = edit.length(); + edit.append(text); + edit.requestFocus();//请求优先完成该此 编辑 + edit.setSelection(length);//定位到length位置处的条目 + } + + /* + * 函数功能:进入编辑文本框所触发的事件 + * 函数实现:如下注释 + */ + public void onEditTextEnter(int index, String text) { + /** + * Should not happen, check for debug + */ + if(index > mEditTextList.getChildCount()) { + Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); + //越界把偶偶 + } + + View view = getListItem(text, index); + mEditTextList.addView(view, index); + //建立一个新的视图并添加到编辑文本框内 + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.requestFocus();//请求优先操作 + edit.setSelection(0);//定位到起始位置 + for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i); + //遍历子文本框并设置对应对下标 + } + } + + /* + * 函数功能:切换至列表模式 + * 函数实现:如下注释 + */ + private void switchToListMode(String text) { + mEditTextList.removeAllViews(); + String[] items = text.split("\n"); + int index = 0; + //清空所有视图,初始化下标 + for (String item : items) { + if(!TextUtils.isEmpty(item)) { + mEditTextList.addView(getListItem(item, index)); + index++; + //遍历所有文本单元并添加到文本框中 + } + } + mEditTextList.addView(getListItem("", index)); + mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); + //优先请求此操作 + + mNoteEditor.setVisibility(View.GONE); + //便签编辑器不可见 + mEditTextList.setVisibility(View.VISIBLE); + //将文本编辑框置为可见 + } + + /* + * 函数功能:获取高亮效果的反馈情况 + * 函数实现:如下注释 + */ + private Spannable getHighlightQueryResult(String fullText, String userQuery) { + SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); + //新建一个效果选项 + if (!TextUtils.isEmpty(userQuery)) { + mPattern = Pattern.compile(userQuery); + //将用户的询问进行解析 + Matcher m = mPattern.matcher(fullText); + //建立一个状态机检查Pattern并进行匹配 + int start = 0; + while (m.find(start)) { + spannable.setSpan( + new BackgroundColorSpan(this.getResources().getColor( + R.color.user_query_highlight)), m.start(), m.end(), + Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + //设置背景颜色 + start = m.end(); + //跟新起始位置 + } + } + return spannable; + } + + /* + * 函数功能:获取列表项 + * 函数实现:如下注释 + */ + 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); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + //创建一个文本编辑框并设置可见性 + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + } + } + }); + //建立一个打钩框并设置监听器 + + if (item.startsWith(TAG_CHECKED)) { + //选择勾选 + cb.setChecked(true); + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + item = item.substring(TAG_CHECKED.length(), item.length()).trim(); + } else if (item.startsWith(TAG_UNCHECKED)) { + //选择不勾选 + cb.setChecked(false); + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); + } + + edit.setOnTextViewChangeListener(this); + edit.setIndex(index); + edit.setText(getHighlightQueryResult(item, mUserQuery)); + //运行编辑框的监听器对该行为作出反应,并设置下标及文本内容 + return view; + } + + /* + * 函数功能:便签内容发生改变所 触发的事件 + * 函数实现:如下注释 + */ + public void onTextChange(int index, boolean hasText) { + if (index >= mEditTextList.getChildCount()) { + Log.e(TAG, "Wrong index, should not happen"); + return; + //越界报错 + } + 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); + } + //如果内容不为空则将其子编辑框可见性置为可见,否则不可见 + } + + /* + * 函数功能:检查模式和列表模式的切换 + * 函数实现:如下注释 + */ + public void onCheckListModeChanged(int oldMode, int newMode) { + if (newMode == TextNote.MODE_CHECK_LIST) { + switchToListMode(mNoteEditor.getText().toString()); + //检查模式切换到列表模式 + } else { + if (!getWorkingText()) { + mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", + "")); + } + //若是获取到文本就改变其检查标记 + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mEditTextList.setVisibility(View.GONE); + mNoteEditor.setVisibility(View.VISIBLE); + //修改文本编辑器的内容和可见性 + } + } + + /* + * 函数功能:设置勾选选项表并返回是否勾选的标记 + * 函数实现:如下注释 + */ + private boolean getWorkingText() { + boolean hasChecked = false; + //初始化check标记 + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + // 若模式为CHECK_LIST + StringBuilder sb = new StringBuilder(); + //创建可变字符串 + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + //遍历所有子编辑框的视图 + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + if (!TextUtils.isEmpty(edit.getText())) { + //若文本不为空 + if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { + //该选项框已打钩 + sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); + hasChecked = true; + //扩展字符串为已打钩并把标记置true + } else { + sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); + //扩展字符串添加未打钩 + } + } + } + mWorkingNote.setWorkingText(sb.toString()); + //利用编辑好的字符串设置运行便签的内容 + } else { + mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + // 若不是该模式直接用编辑器中的内容设置运行中标签的内容 + } + return hasChecked; + } + + /* + * 函数功能:保存便签 + * 函数实现:如下注释 + */ + private boolean saveNote() { + getWorkingText(); + boolean saved = mWorkingNote.saveNote(); + //运行 getWorkingText()之后保存 + if (saved) { + /** + * There are two modes from List view to edit view, open one note, + * create/edit a node. Opening node requires to the original + * position in the list when back from edit view, while creating a + * new node requires to the top of the list. This code + * {@link #RESULT_OK} is used to identify the create/edit state + */ + //如英文注释所说链接RESULT_OK是为了识别保存的2种情况,一是创建后保存,二是修改后保存 + setResult(RESULT_OK); + } + return saved; + } + + /* + * 函数功能:将便签发送至桌面 + * 函数实现:如下注释 + */ + private void sendToDesktop() { + /** + * Before send message to home, we should make sure that current + * editing note is exists in databases. So, for new note, firstly + * save it + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + //若不存在数据也就是新的标签就保存起来先 + } + + if (mWorkingNote.getNoteId() > 0) { + //若是有内容 + Intent sender = new Intent(); + Intent shortcutIntent = new Intent(this, NoteEditActivity.class); + //建立发送到桌面的连接器 + shortcutIntent.setAction(Intent.ACTION_VIEW); + //链接为一个视图 + shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + makeShortcutIconTitle(mWorkingNote.getContent())); + sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); + sender.putExtra("duplicate", true); + //将便签的相关信息都添加到要发送的文件里 + sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + //设置sneder的行为是发送 + showToast(R.string.info_note_enter_desktop); + sendBroadcast(sender); + //显示到桌面 + } else { + /** + * 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 + * should input something + */ + Log.e(TAG, "Send to desktop error"); + showToast(R.string.error_note_empty_for_send_to_desktop); + //空便签直接报错 + } + } + + /* + * 函数功能:编辑小图标的标题 + * 函数实现:如下注释 + */ + private String makeShortcutIconTitle(String content) { + content = content.replace(TAG_CHECKED, ""); + content = content.replace(TAG_UNCHECKED, ""); + return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, + SHORTCUT_ICON_TITLE_MAX_LEN) : content; + //直接设置为content中的内容并返回,有勾选和未勾选2种 + } + + /* + * 函数功能:显示提示的视图 + * 函数实现:根据下标显示对应的提示 + */ + private void showToast(int resId) { + showToast(resId, Toast.LENGTH_SHORT); + } + + /* + * 函数功能:持续显示提示的视图 + * 函数实现:根据下标和持续的时间(duration)编辑提示视图并显示 + */ + private void showToast(int resId, int duration) { + Toast.makeText(this, resId, duration).show(); + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NoteEditText.txt b/doc/210340006杜煜晗/ui包/NoteEditText.txt new file mode 100644 index 0000000..fa3db89 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NoteEditText.txt @@ -0,0 +1,270 @@ +package net.micode.notes.ui; + +import android.content.Context; +import android.graphics.Rect; +import android.text.Layout; +import android.text.Selection; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.widget.EditText; + +import net.micode.notes.R; + +import java.util.HashMap; +import java.util.Map; + +//继承edittext,设置便签设置文本框 +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:" ; + + ///建立一个字符和整数的hash表,用于链接电话,网站,还有邮箱 + 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); + sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); + } + + /** + * Call by the {@link NoteEditActivity} to delete or add edit text + */ + //在NoteEditActivity中删除或添加文本的操作,可以看做是一个文本是否被变的标记,英文注释已说明的很清楚 + public interface OnTextViewChangeListener { + /** + * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens + * and the text is null + */ + //处理删除按键时的操作 + void onEditTextDelete(int index, String text); + + /** + * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} + * happen + */ + //处理进入按键时的操作 + void onEditTextEnter(int index, String text); + + /** + * Hide or show item option when text change + */ + void onTextChange(int index, boolean hasText); + } + + private OnTextViewChangeListener mOnTextViewChangeListener; + + //根据context设置文本 + public NoteEditText(Context context) { + super(context, null);//用super引用父类变量 + mIndex = 0; + } + + //设置当前光标 + public void setIndex(int index) { + mIndex = index; + } + + //初始化文本修改标记 + public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { + mOnTextViewChangeListener = listener; + } + + //AttributeSet 百度了一下是自定义空控件属性,用于维护便签动态变化的属性 + //初始化便签 + public NoteEditText(Context context, AttributeSet attrs) { + super(context, attrs, android.R.attr.editTextStyle); + } + + // 根据defstyle自动初始化 + public NoteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated construct or stub + } + + @Override + //view里的函数,处理手机屏幕的所有事件 + /*参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息, + 例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。*/ + public boolean onTouchEvent(MotionEvent event) { + switch (event.getAction()) { + //重写了需要处理屏幕被按下的事件 + case MotionEvent.ACTION_DOWN: + //跟新当前坐标值 + int x = (int) event.getX(); + int y = (int) event.getY(); + x -= getTotalPaddingLeft(); + y -= getTotalPaddingTop(); + x += getScrollX(); + y += getScrollY(); + + //用布局控件layout根据x,y的新值设置新的位置 + Layout layout = getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + + //更新光标新的位置 + Selection.setSelection(getText(), off); + break; + } + + return super.onTouchEvent(event); + } + + @Override + /* + * 函数功能:处理用户按下一个键盘按键时会触发 的事件 + * 实现过程:如下注释 + */ + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + //根据按键的 Unicode 编码值来处理 + case KeyEvent.KEYCODE_ENTER: + //“进入”按键 + if (mOnTextViewChangeListener != null) { + return false; + } + break; + case KeyEvent.KEYCODE_DEL: + //“删除”按键 + mSelectionStartBeforeDelete = getSelectionStart(); + break; + default: + break; + } + //继续执行父类的其他点击事件 + return super.onKeyDown(keyCode, event); + } + + @Override + /* + * 函数功能:处理用户松开一个键盘按键时会触发 的事件 + * 实现方式:如下注释 + */ + public boolean onKeyUp(int keyCode, KeyEvent event) { + switch(keyCode) { + //根据按键的 Unicode 编码值来处理,有删除和进入2种操作 + case KeyEvent.KEYCODE_DEL: + if (mOnTextViewChangeListener != null) { + //若是被修改过 + if (0 == mSelectionStartBeforeDelete && mIndex != 0) { + //若之前有被修改并且文档不为空 + mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); + //利用上文OnTextViewChangeListener对KEYCODE_DEL按键情况的删除函数进行删除 + return true; + } + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + //其他情况报错,文档的改动监听器并没有建立 + } + break; + case KeyEvent.KEYCODE_ENTER: + //同上也是分为监听器是否建立2种情况 + if (mOnTextViewChangeListener != null) { + int selectionStart = getSelectionStart(); + //获取当前位置 + String text = getText().subSequence(selectionStart, length()).toString(); + //获取当前文本 + setText(getText().subSequence(0, selectionStart)); + //根据获取的文本设置当前文本 + mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); + //当{@link KeyEvent#KEYCODE_ENTER}添加新文本 + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + //其他情况报错,文档的改动监听器并没有建立 + } + break; + default: + break; + } + //继续执行父类的其他按键弹起的事件 + return super.onKeyUp(keyCode, event); + } + + @Override + /* + * 函数功能:当焦点发生变化时,会自动调用该方法来处理焦点改变的事件 + * 实现方式:如下注释 + * 参数:focused表示触发该事件的View是否获得了焦点,当该控件获得焦点时,Focused等于true,否则等于false。 + direction表示焦点移动的方向,用数值表示 + Rect:表示在触发事件的View的坐标系中,前一个获得焦点的矩形区域,即表示焦点是从哪里来的。如果不可用则为null + */ + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (mOnTextViewChangeListener != null) { + //若监听器已经建立 + if (!focused && TextUtils.isEmpty(getText())) { + //获取到焦点并且文本不为空 + mOnTextViewChangeListener.onTextChange(mIndex, false); + //mOnTextViewChangeListener子函数,置false隐藏事件选项 + } else { + mOnTextViewChangeListener.onTextChange(mIndex, true); + //mOnTextViewChangeListener子函数,置true显示事件选项 + } + } + //继续执行父类的其他焦点变化的事件 + super.onFocusChanged(focused, direction, previouslyFocusedRect); + } + + @Override + /* + * 函数功能:生成上下文菜单 + * 函数实现:如下注释 + */ + protected void onCreateContextMenu(ContextMenu menu) { + if (getText() instanceof Spanned) { + //有文本存在 + int selStart = getSelectionStart(); + int selEnd = getSelectionEnd(); + //获取文本开始和结尾位置 + + int min = Math.min(selStart, selEnd); + int max = Math.max(selStart, selEnd); + //获取开始到结尾的最大值和最小值 + + final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); + //设置url的信息的范围值 + if (urls.length == 1) { + int defaultResId = 0; + for(String schema: sSchemaActionResMap.keySet()) { + //获取计划表中所有的key值 + if(urls[0].getURL().indexOf(schema) >= 0) { + //若url可以添加则在添加后将defaultResId置为key所映射的值 + defaultResId = sSchemaActionResMap.get(schema); + break; + } + } + + if (defaultResId == 0) { + //defaultResId == 0则说明url并没有添加任何东西,所以置为连接其他SchemaActionResMap的值 + defaultResId = R.string.note_link_other; + } + + //建立菜单 + menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( + new OnMenuItemClickListener() { + //新建按键监听器 + public boolean onMenuItemClick(MenuItem item) { + // goto a new intent + urls[0].onClick(NoteEditText.this); + //根据相应的文本设置菜单的按键 + return true; + } + }); + } + } + //继续执行父类的其他菜单创建的事件 + super.onCreateContextMenu(menu); + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NoteItemData.txt b/doc/210340006杜煜晗/ui包/NoteItemData.txt new file mode 100644 index 0000000..7b9be8d --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NoteItemData.txt @@ -0,0 +1,214 @@ +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; + +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; + + +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, + }; + //常量标记和数据就不一一标记了,意义翻译基本就知道 + 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; + private int mBgColorId; + private long mCreatedDate; + private boolean mHasAttachment; + private long mModifiedDate; + private int mNotesCount; + private long mParentId; + private String mSnippet; + private int mType; + private int mWidgetId; + private int mWidgetType; + private String mName; + private String mPhoneNumber; + + private boolean mIsLastItem; + private boolean mIsFirstItem; + private boolean mIsOnlyOneItem; + private boolean mIsOneNoteFollowingFolder; + private boolean mIsMultiNotesFollowingFolder; + //初始化NoteItemData,主要利用光标cursor获取的东西 + public NoteItemData(Context context, Cursor cursor) { + //getxxx为转换格式 + mId = cursor.getLong(ID_COLUMN); + 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; + mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN); + mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); + mParentId = cursor.getLong(PARENT_ID_COLUMN); + mSnippet = cursor.getString(SNIPPET_COLUMN); + mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace( + NoteEditActivity.TAG_UNCHECKED, ""); + mType = cursor.getInt(TYPE_COLUMN); + mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + + //初始化电话号码的信息 + mPhoneNumber = ""; + if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { + mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); + if (!TextUtils.isEmpty(mPhoneNumber)) {//mphonenumber里有符合字符串,则用contart功能连接 + mName = Contact.getContact(context, mPhoneNumber); + if (mName == null) { + mName = mPhoneNumber; + } + } + } + + if (mName == null) { + mName = ""; + } + checkPostion(cursor); + } + ///根据鼠标的位置设置标记,和位置 + private void checkPostion(Cursor cursor) { + //初始化几个标记,cursor具体功能笔记中已提到,不一一叙述 + mIsLastItem = cursor.isLast() ? true : false; + mIsFirstItem = cursor.isFirst() ? true : false; + mIsOnlyOneItem = (cursor.getCount() == 1); + //初始化“多重子文件”“单一子文件”2个标记 + mIsMultiNotesFollowingFolder = false; + mIsOneNoteFollowingFolder = false; + + //主要是设置上诉2标记 + if (mType == Notes.TYPE_NOTE && !mIsFirstItem) {//若是note格式并且不是第一个元素 + int position = cursor.getPosition(); + if (cursor.moveToPrevious()) {//获取光标位置后看上一行 + if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER + || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) {//若光标满足系统或note格式 + if (cursor.getCount() > (position + 1)) { + mIsMultiNotesFollowingFolder = true;//若是数据行数大于但前位置+1则设置成正确 + } else { + mIsOneNoteFollowingFolder = true;//否则单一文件夹标记为true + } + } + if (!cursor.moveToNext()) {//若不能再往下走则报错 + throw new IllegalStateException("cursor move to previous but can't move back"); + } + } + } + } +///以下都是获取标记没什么好说的,不过倒数第二个需要说明下,很具体看下面 + public boolean isOneFollowingFolder() { + return mIsOneNoteFollowingFolder; + } + + public boolean isMultiFollowingFolder() { + return mIsMultiNotesFollowingFolder; + } + + public boolean isLast() { + return mIsLastItem; + } + + public String getCallName() { + return mName; + } + + public boolean isFirst() { + return mIsFirstItem; + } + + public boolean isSingle() { + return mIsOnlyOneItem; + } + + public long getId() { + return mId; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getCreatedDate() { + return mCreatedDate; + } + + public boolean hasAttachment() { + return mHasAttachment; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorId() { + return mBgColorId; + } + + public long getParentId() { + return mParentId; + } + + public int getNotesCount() { + return mNotesCount; + } + + public long getFolderId () { + return mParentId; + } + + public int getType() { + return mType; + } + + public int getWidgetType() { + return mWidgetType; + } + + public int getWidgetId() { + return mWidgetId; + } + + public String getSnippet() { + return mSnippet; + } + + public boolean hasAlert() { + return (mAlertDate > 0); + } + + //若数据父id为保存至文件夹模式的id且满足电话号码单元不为空,则isCallRecord为true + public boolean isCallRecord() { + return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); + } + + public static int getNoteType(Cursor cursor) { + return cursor.getInt(TYPE_COLUMN); + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NotesListActivity.txt b/doc/210340006杜煜晗/ui包/NotesListActivity.txt new file mode 100644 index 0000000..bc6c868 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NotesListActivity.txt @@ -0,0 +1,1002 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Display; +import android.view.HapticFeedbackConstants; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnCreateContextMenuListener; +import android.view.View.OnTouchListener; +import android.view.inputmethod.InputMethodManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupMenu; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; +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.NotesListAdapter.AppWidgetAttribute; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; +//主界面,一进入就是这个界面 +/** + * @author k + * + */ +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 MENU_FOLDER_DELETE = 0; + + private static final int MENU_FOLDER_VIEW = 1; + + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; //单行超过80个字符 + + private enum ListEditState { + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + }; + + private ListEditState mState; + + private BackgroundQueryHandler mBackgroundQueryHandler; + + private NotesListAdapter mNotesListAdapter; + + private ListView mNotesListView; + + private Button mAddNewNote; + + private boolean mDispatch; + + private int mOriginY; + + private int mDispatchY; + + private TextView mTitleBar; + + private long mCurrentFolderId; + + private ContentResolver mContentResolver; + + private ModeCallback mModeCallBack; + + private static final String TAG = "NotesListActivity"; + + public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + + private NoteItemData mFocusNoteDataItem; + + private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; + + private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR (" + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + + NoteColumns.NOTES_COUNT + ">0)"; + + private final static int REQUEST_CODE_OPEN_NODE = 102; + private final static int REQUEST_CODE_NEW_NODE = 103; + + @Override + // 创建类 + protected void onCreate(final Bundle savedInstanceState) { //需要是final类型 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。 + // final类不能被继承,没有子类,final类中的方法默认是final的。 + //final方法不能被子类的方法覆盖,但可以被继承。 + //final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 + //final不能用于修饰构造方法。 + super.onCreate(savedInstanceState); // 调用父类的onCreate函数 + setContentView(R.layout.note_list); + initResources(); + + /** + * Insert an introduction when user firstly use this application + */ + setAppInfoFromRawRes(); + } + + @Override + // 返回一些子模块完成的数据交给主Activity处理 + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // 结果值 和 要求值 符合要求 + if (resultCode == RESULT_OK + && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { + mNotesListAdapter.changeCursor(null); + } else { + super.onActivityResult(requestCode, resultCode, data); + // 调用 Activity 的onActivityResult() + } + } + + private void setAppInfoFromRawRes() { + // Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。 + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + StringBuilder sb = new StringBuilder(); + InputStream in = null; + try { + // 把资源文件放到应用程序的/raw/raw下,那么就可以在应用中使用getResources获取资源后, + // 以openRawResource方法(不带后缀的资源文件名)打开这个文件。 + in = getResources().openRawResource(R.raw.introduction); + if (in != null) { + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + char [] buf = new char[1024]; // 自行定义的数值,使用者不知道有什么意义 + int len = 0; + while ((len = br.read(buf)) > 0) { + sb.append(buf, 0, len); + } + } else { + Log.e(TAG, "Read introduction file error"); + return; + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + // 创建空的WorkingNote + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, + AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, + ResourceParser.RED); + note.setWorkingText(sb.toString()); + if (note.saveNote()) { + // 更新保存note的信息 + sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); + } else { + Log.e(TAG, "Save introduction note error"); + return; + } + } + } + + @Override + protected void onStart() { + super.onStart(); + startAsyncNotesListQuery(); + } + + // 初始化资源 + private void initResources() { + mContentResolver = this.getContentResolver(); // 获取应用程序的数据,得到类似数据表的东西 + mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + + // findViewById 是安卓编程的定位函数,主要是引用.R文件里的引用名 + mNotesListView = (ListView) findViewById(R.id.notes_list); // 绑定XML中的ListView,作为Item的容器 + mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), + null, false); + mNotesListView.setOnItemClickListener(new OnListItemClickListener()); + mNotesListView.setOnItemLongClickListener(this); + mNotesListAdapter = new NotesListAdapter(this); + mNotesListView.setAdapter(mNotesListAdapter); + mAddNewNote = (Button) findViewById(R.id.btn_new_note);// 在activity中要获取该按钮 + mAddNewNote.setOnClickListener(this); + mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); + mDispatch = false; + mDispatchY = 0; + mOriginY = 0; + mTitleBar = (TextView) findViewById(R.id.tv_title_bar); + mState = ListEditState.NOTE_LIST; + mModeCallBack = new ModeCallback(); + } + + // 继承自ListView.MultiChoiceModeListener 和 OnMenuItemClickListener + private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + private DropdownMenu mDropDownMenu; + private ActionMode mActionMode; + private MenuItem mMoveMenu; + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + getMenuInflater().inflate(R.menu.note_list_options, menu); + menu.findItem(R.id.delete).setOnMenuItemClickListener(this); + mMoveMenu = menu.findItem(R.id.move); + if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER + || DataUtils.getUserFolderCount(mContentResolver) == 0) { + mMoveMenu.setVisible(false); + } else { + mMoveMenu.setVisible(true); + mMoveMenu.setOnMenuItemClickListener(this); + } + mActionMode = mode; + mNotesListAdapter.setChoiceMode(true); + mNotesListView.setLongClickable(false); + mAddNewNote.setVisibility(View.GONE); + + View customView = LayoutInflater.from(NotesListActivity.this).inflate( + R.layout.note_list_dropdown_menu, null); + mode.setCustomView(customView); + mDropDownMenu = new DropdownMenu(NotesListActivity.this, + (Button) customView.findViewById(R.id.selection_menu), + R.menu.note_list_dropdown); + mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ + public boolean onMenuItemClick(final MenuItem item) { + mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); + updateMenu(); + return true; + } + + }); + return true; + } + + // 更新菜单 + private void updateMenu() { + int selectedCount = mNotesListAdapter.getSelectedCount(); + // Update dropdown menu + String format = getResources().getString(R.string.menu_select_title, selectedCount); + mDropDownMenu.setTitle(format); // 更改标题 + MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); + if (item != null) { + if (mNotesListAdapter.isAllSelected()) { + item.setChecked(true); + item.setTitle(R.string.menu_deselect_all); + } else { + item.setChecked(false); + item.setTitle(R.string.menu_select_all); + } + } + } + + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + // TODO Auto-generated method stub + return false; + } + + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + // TODO Auto-generated method stub + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + mNotesListAdapter.setChoiceMode(false); + mNotesListView.setLongClickable(true); + mAddNewNote.setVisibility(View.VISIBLE); + } + + public void finishActionMode() { + mActionMode.finish(); + } + + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, + boolean checked) { + mNotesListAdapter.setCheckedItem(position, checked); + updateMenu(); + } + + public boolean onMenuItemClick(MenuItem item) { + if (mNotesListAdapter.getSelectedCount() == 0) { + Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), + Toast.LENGTH_SHORT).show(); + return true; + } + + switch (item.getItemId()) { + case R.id.delete: + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.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_notes, + mNotesListAdapter.getSelectedCount())); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.move: + startQueryDestinationFolders(); + break; + default: + return false; + } + return true; + } + } + + private class NewNoteOnTouchListener implements OnTouchListener { + + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + Display display = getWindowManager().getDefaultDisplay(); + int screenHeight = display.getHeight(); + int newNoteViewHeight = mAddNewNote.getHeight(); + int start = screenHeight - newNoteViewHeight; + int eventY = start + (int) event.getY(); + /** + * Minus TitleBar's height + */ + if (mState == ListEditState.SUB_FOLDER) { + eventY -= mTitleBar.getHeight(); + start -= mTitleBar.getHeight(); + } + /** + * HACKME:When click the transparent part of "New Note" button, dispatch + * the event to the list view behind this button. The transparent part of + * "New Note" button could be expressed by formula y=-0.12x+94锛圲nit:pixel锛 + * and the line top of the button. The coordinate based on left of the "New + * Note" button. The 94 represents maximum height of the transparent part. + * Notice that, if the background of the button changes, the formula should + * also change. This is very bad, just for the UI designer's strong requirement. + */ + if (event.getY() < (event.getX() * (-0.12) + 94)) { + View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 + - mNotesListView.getFooterViewsCount()); + if (view != null && view.getBottom() > start + && (view.getTop() < (start + 94))) { + mOriginY = (int) event.getY(); + mDispatchY = eventY; + event.setLocation(event.getX(), mDispatchY); + mDispatch = true; + return mNotesListView.dispatchTouchEvent(event); + } + } + break; + } + case MotionEvent.ACTION_MOVE: { + if (mDispatch) { + mDispatchY += (int) event.getY() - mOriginY; + event.setLocation(event.getX(), mDispatchY); + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + default: { + if (mDispatch) { + event.setLocation(event.getX(), mDispatchY); + mDispatch = false; + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + } + 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) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + + private final class BackgroundQueryHandler extends AsyncQueryHandler { + public BackgroundQueryHandler(ContentResolver contentResolver) { + super(contentResolver); + } + + @Override + protected void onQueryComplete(int token, Object cookie, Cursor cursor) { + switch (token) { + case FOLDER_NOTE_LIST_QUERY_TOKEN: + mNotesListAdapter.changeCursor(cursor); + break; + case FOLDER_LIST_QUERY_TOKEN: + if (cursor != null && cursor.getCount() > 0) { + showFolderListMenu(cursor); + } else { + Log.e(TAG, "Query folder failed"); + } + break; + default: + return; + } + } + } + + private void showFolderListMenu(Cursor cursor) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(R.string.menu_title_select_folder); + final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); + builder.setAdapter(adapter, new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + DataUtils.batchMoveToFolder(mContentResolver, + mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); + Toast.makeText( + NotesListActivity.this, + getString(R.string.format_move_notes_to_folder, + mNotesListAdapter.getSelectedCount(), + adapter.getFolderName(NotesListActivity.this, which)), + Toast.LENGTH_SHORT).show(); + mModeCallBack.finishActionMode(); + } + }); + builder.show(); + } + + private void createNewNote() { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); + this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); + } + + private void batchDelete() { + new AsyncTask>() { + protected HashSet doInBackground(Void... unused) { + HashSet widgets = mNotesListAdapter.getSelectedWidget(); + if (!isSyncMode()) { + // if not synced, delete notes directly + if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter + .getSelectedItemIds())) { + } else { + Log.e(TAG, "Delete notes error, should not happens"); + } + } else { + // in sync mode, we'll move the deleted note into the trash + // folder + if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter + .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + return widgets; + } + + @Override + protected void onPostExecute(HashSet widgets) { + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + private void deleteFolder(long folderId) { + if (folderId == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Wrong folder id, should not happen " + folderId); + return; + } + + HashSet ids = new HashSet(); + ids.add(folderId); + HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, + folderId); + if (!isSyncMode()) { + // if not synced, delete folder directly + DataUtils.batchDeleteNotes(mContentResolver, ids); + } else { + // in sync mode, we'll move the deleted folder into the trash folder + DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); + } + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + } + + private void openNode(NoteItemData data) { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + + private void openFolder(NoteItemData data) { + mCurrentFolderId = data.getId(); + startAsyncNotesListQuery(); + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mState = ListEditState.CALL_RECORD_FOLDER; + mAddNewNote.setVisibility(View.GONE); + } else { + mState = ListEditState.SUB_FOLDER; + } + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mTitleBar.setText(R.string.call_record_folder_name); + } else { + mTitleBar.setText(data.getSnippet()); + } + mTitleBar.setVisibility(View.VISIBLE); + } + + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_new_note: + createNewNote(); + break; + default: + break; + } + } + + private void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (inputMethodManager != null) { + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + } + + private void hideSoftInput(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + private void showCreateOrModifyFolderDialog(final boolean create) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); + final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); + showSoftInput(); + if (!create) { + if (mFocusNoteDataItem != null) { + etName.setText(mFocusNoteDataItem.getSnippet()); + builder.setTitle(getString(R.string.menu_folder_change_name)); + } else { + Log.e(TAG, "The long click data item is null"); + return; + } + } else { + etName.setText(""); + builder.setTitle(this.getString(R.string.menu_create_folder)); + } + + builder.setPositiveButton(android.R.string.ok, null); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + hideSoftInput(etName); + } + }); + + final Dialog dialog = builder.setView(view).show(); + final Button positive = (Button)dialog.findViewById(android.R.id.button1); + positive.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + hideSoftInput(etName); + String name = etName.getText().toString(); + if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), + Toast.LENGTH_LONG).show(); + etName.setSelection(0, etName.length()); + return; + } + if (!create) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + 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()) + }); + } + } else if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); + } + dialog.dismiss(); + } + }); + + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } + /** + * When the name edit text is null, disable the positive button + */ + etName.addTextChangedListener(new TextWatcher() { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } else { + positive.setEnabled(true); + } + } + + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + }); + } + + /* (non-Javadoc) + * @see android.app.Activity#onBackPressed() + * 按返回键时根据情况更改类中的数据 + */ + @Override + public void onBackPressed() { switch (mState) { + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + super.onBackPressed(); + break; + default: + break; + } + } + + /** + * @param appWidgetId + * @param appWidgetType + * 根据不同类型的widget更新插件,通过intent传送数据 + */ + private void updateWidget(int appWidgetId, int appWidgetType) { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (appWidgetType == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + appWidgetId + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + /** + * 声明监听器,建立菜单,包括名称,视图,删除操作,更改名称操作; + */ + private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + if (mFocusNoteDataItem != null) { + menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); + menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); + menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); + menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); + } + } + }; + + @Override + public void onContextMenuClosed(Menu menu) { + if (mNotesListView != null) { + mNotesListView.setOnCreateContextMenuListener(null); + } + super.onContextMenuClosed(menu); + } + + /* (non-Javadoc) + * @see android.app.Activity#onContextItemSelected(android.view.MenuItem) + * 针对menu中不同的选择进行不同的处理,里面详细注释 + */ + @Override + public boolean onContextItemSelected(MenuItem item) { + if (mFocusNoteDataItem == null) { + Log.e(TAG, "The long click data item is null"); + return false; + } + switch (item.getItemId()) { + case MENU_FOLDER_VIEW: + openFolder(mFocusNoteDataItem);//打开对应文件 + break; + case MENU_FOLDER_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_folder)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteFolder(mFocusNoteDataItem.getId()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show();//显示对话框 + break; + case MENU_FOLDER_CHANGE_NAME: + showCreateOrModifyFolderDialog(false); + break; + default: + break; + } + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.clear(); + if (mState == ListEditState.NOTE_LIST) { + getMenuInflater().inflate(R.menu.note_list, menu); + // set sync or sync_cancel + menu.findItem(R.id.menu_sync).setTitle( + GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); + } else if (mState == ListEditState.SUB_FOLDER) { + getMenuInflater().inflate(R.menu.sub_folder, menu); + } else if (mState == ListEditState.CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_record_folder, menu); + } else { + Log.e(TAG, "Wrong state:" + mState); + } + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_folder: { + showCreateOrModifyFolderDialog(true); + break; + } + case R.id.menu_export_text: { + exportNoteToText(); + break; + } + case R.id.menu_sync: { + if (isSyncMode()) { + if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { + GTaskSyncService.startSync(this); + } else { + GTaskSyncService.cancelSync(this); + } + } else { + startPreferenceActivity(); + } + break; + } + case R.id.menu_setting: { + startPreferenceActivity(); + break; + } + case R.id.menu_new_note: { + createNewNote(); + break; + } + case R.id.menu_search: + onSearchRequested(); + break; + default: + break; + } + return true; + } + + /* (non-Javadoc) + * @see android.app.Activity#onSearchRequested() + * 直接调用startSearch函数 + */ + @Override + public boolean onSearchRequested() { + startSearch(null, false, null /* appData */, false); + return true; + } + + /** + * 函数功能:实现将便签导出到文本功能 + */ + private void exportNoteToText() { + final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); + new AsyncTask() { + + @Override + protected Integer doInBackground(Void... unused) { + return backup.exportToText(); + } + + @Override + protected void onPostExecute(Integer result) { + if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_unmounted)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SUCCESS) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.success_sdcard_export)); + builder.setMessage(NotesListActivity.this.getString( + R.string.format_exported_file_location, backup + .getExportedTextFileName(), backup.getExportedTextFileDir())); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_export)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } + } + + }.execute(); + } + + /** + * @return + * 功能:判断是否正在同步 + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /** + * 功能:跳转到PreferenceActivity界面 + */ + private void startPreferenceActivity() { + Activity from = getParent() != null ? getParent() : this; + Intent intent = new Intent(from, NotesPreferenceActivity.class); + from.startActivityIfNeeded(intent, -1); + } + + /** + * @author k + * 函数功能:实现对便签列表项的点击事件(短按) + */ + private class OnListItemClickListener implements OnItemClickListener { + + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + NoteItemData item = ((NotesListItem) view).getItemData(); + if (mNotesListAdapter.isInChoiceMode()) { + if (item.getType() == Notes.TYPE_NOTE) { + position = position - mNotesListView.getHeaderViewsCount(); + mModeCallBack.onItemCheckedStateChanged(null, position, id, + !mNotesListAdapter.isSelectedItem(position)); + } + return; + } + + switch (mState) { + case NOTE_LIST: + if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in NOTE_LIST"); + } + break; + case SUB_FOLDER: + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in SUB_FOLDER"); + } + break; + default: + break; + } + } + } + + } + + /** + * 查询目标文件 + */ + 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 + ")"; + + mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, + null, + Notes.CONTENT_NOTE_URI, + FoldersListAdapter.PROJECTION, + selection, + new String[] { + String.valueOf(Notes.TYPE_FOLDER), + String.valueOf(Notes.ID_TRASH_FOLER), + String.valueOf(mCurrentFolderId) + }, + NoteColumns.MODIFIED_DATE + " DESC"); + } + + /* (non-Javadoc) + * @see android.widget.AdapterView.OnItemLongClickListener#onItemLongClick(android.widget.AdapterView, android.view.View, int, long) + * 长按某一项时进行的操作 + * 如果长按的是便签,则通过ActionMode菜单实现;如果长按的是文件夹,则通过ContextMenu菜单实现; + * 具体ActionMOde菜单和ContextMenu菜单的详细见精度笔记 + */ + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { + if (mNotesListView.startActionMode(mModeCallBack) != null) { + mModeCallBack.onItemCheckedStateChanged(null, position, id, true); + mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + } else { + Log.e(TAG, "startActionMode fails"); + } + } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { + mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); + } + } + return false; + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NotesListAdapter.txt b/doc/210340006杜煜晗/ui包/NotesListAdapter.txt new file mode 100644 index 0000000..ea7f9f9 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NotesListAdapter.txt @@ -0,0 +1,257 @@ +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; + + +import net.micode.notes.data.Notes; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + + +/* + * 功能:直译为便签表连接器,继承了CursorAdapter,它为cursor和ListView提供了连接的桥梁。 + * 所以NotesListAdapter实现的是鼠标和编辑便签链接的桥梁 + */ +public class NotesListAdapter extends CursorAdapter { + private static final String TAG = "NotesListAdapter"; + private Context mContext; + private HashMap mSelectedIndex; + private int mNotesCount; //便签数 + private boolean mChoiceMode; //选择模式标记 + + /* + * 桌面widget的属性,包括编号和类型 + */ + public static class AppWidgetAttribute { + public int widgetId; + public int widgetType; + }; + + /* + * 函数功能:初始化便签链接器 + * 函数实现:根据传进来的内容设置相关变量 + */ + public NotesListAdapter(Context context) { + super(context, null); //父类对象置空 + mSelectedIndex = new HashMap(); //新建选项下标的hash表 + mContext = context; + mNotesCount = 0; + } + + @Override + /* + * 函数功能:新建一个视图来存储光标所指向的数据 + * 函数实现:使用兄弟类NotesListItem新建一个项目选项 + */ + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new NotesListItem(context); + } + + /* + * 函数功能:将已经存在的视图和鼠标指向的数据进行捆绑 + * 函数实现:如下注释 + */ + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof NotesListItem) { + //若view是NotesListItem的一个实例 + NoteItemData itemData = new NoteItemData(context, cursor); + ((NotesListItem) view).bind(context, itemData, mChoiceMode, + isSelectedItem(cursor.getPosition())); + //则新建一个项目选项并且用bind跟将view和鼠标,内容,便签数据捆绑在一起 + } + } + + /* + * 函数功能:设置勾选框 + * 函数实现:如下注释 + */ + public void setCheckedItem(final int position, final boolean checked) { + mSelectedIndex.put(position, checked); + //根据定位和是否勾选设置下标 + notifyDataSetChanged(); + //在修改后刷新activity + } + + /* + * 函数功能:判断单选按钮是否勾选 + */ + public boolean isInChoiceMode() { + return mChoiceMode; + } + + /* + * 函数功能:设置单项选项框 + * 函数实现:重置下标并且根据参数mode设置选项 + */ + public void setChoiceMode(boolean mode) { + mSelectedIndex.clear(); + mChoiceMode = mode; + } + + /* + * 函数功能:选择全部选项 + * 函数实现:如下注释 + */ + public void selectAll(boolean checked) { + Cursor cursor = getCursor(); + //获取光标位置 + for (int i = 0; i < getCount(); i++) { + if (cursor.moveToPosition(i)) { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + setCheckedItem(i, checked); + } + } + } + //遍历所有光标可用的位置在判断为便签类型之后勾选单项框 + } + + /* + * 函数功能:建立选择项的下标列表 + * 函数实现:如下注释 + */ + public HashSet getSelectedItemIds() { + HashSet itemSet = new HashSet(); + //建立hash表 + for (Integer position : mSelectedIndex.keySet()) { + //遍历所有的关键 + if (mSelectedIndex.get(position) == true) { + //若光标位置可用 + Long id = getItemId(position); + if (id == Notes.ID_ROOT_FOLDER) { + //原文件不需要添加 + Log.d(TAG, "Wrong item id, should not happen"); + } else { + itemSet.add(id); + } + //则将id该下标假如选项集合中 + + } + } + + return itemSet; + } + + /* + * 函数功能:建立桌面Widget的选项表 + * 函数实现:如下注释 + */ + public HashSet getSelectedWidget() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Cursor c = (Cursor) getItem(position); + //以上4句和getSelectedItemIds一样,不再重复 + if (c != null) { + //光标位置可用的话就建立新的Widget属性并编辑下标和类型,最后添加到选项集中 + AppWidgetAttribute widget = new AppWidgetAttribute(); + NoteItemData item = new NoteItemData(mContext, c); + widget.widgetId = item.getWidgetId(); + widget.widgetType = item.getWidgetType(); + itemSet.add(widget); + /** + * Don't close cursor here, only the adapter could close it + */ + } else { + Log.e(TAG, "Invalid cursor"); + return null; + } + } + } + return itemSet; + } + + /* + * 函数功能:获取选项个数 + * 函数实现:如下注释 + */ + public int getSelectedCount() { + Collection values = mSelectedIndex.values(); + //首先获取选项下标的值 + if (null == values) { + return 0; + } + Iterator iter = values.iterator(); + //初始化叠加器 + int count = 0; + while (iter.hasNext()) { + if (true == iter.next()) { + //若value值为真计数+1 + count++; + } + } + return count; + } + + /* + * 函数功能:判断是否全部选中 + * 函数实现:如下注释 + */ + public boolean isAllSelected() { + int checkedCount = getSelectedCount(); + return (checkedCount != 0 && checkedCount == mNotesCount); + //获取选项数看是否等于便签的个数 + } + + /* + * 函数功能:判断是否为选项表 + * 函数实现:通过传递的下标来确定 + */ + public boolean isSelectedItem(final int position) { + if (null == mSelectedIndex.get(position)) { + return false; + } + return mSelectedIndex.get(position); + } + + @Override + /* + * 函数功能:在activity内容发生局部变动的时候回调该函数计算便签的数量 + * 函数实现:如下注释 + */ + protected void onContentChanged() { + super.onContentChanged(); + //执行基类函数 + calcNotesCount(); + } + + @Override + /* + * 函数功能:在activity光标发生局部变动的时候回调该函数计算便签的数量 + */ + public void changeCursor(Cursor cursor) { + super.changeCursor(cursor); + //执行基类函数 + calcNotesCount(); + } + + /* + * 函数功能:计算便签数量 + * + */ + private void calcNotesCount() { + mNotesCount = 0; + for (int i = 0; i < getCount(); i++) { + //获取总数同时遍历 + Cursor c = (Cursor) getItem(i); + if (c != null) { + if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { + mNotesCount++; + //若该位置不为空并且文本类型为便签就+1 + } + } else { + Log.e(TAG, "Invalid cursor"); + return; + } + //否则报错 + } + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NotesListItem.txt b/doc/210340006杜煜晗/ui包/NotesListItem.txt new file mode 100644 index 0000000..08a8017 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NotesListItem.txt @@ -0,0 +1,116 @@ +package net.micode.notes.ui; + +import android.content.Context; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +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; //标题 + private TextView mTime; //时间 + private TextView mCallName; // + private NoteItemData mItemData; //标签数据 + private CheckBox mCheckBox; //打钩框 + + /*初始化基本信息*/ + public NotesListItem(Context context) { + super(context); //super()它的主要作用是调整调用父类构造函数的顺序 + inflate(context, R.layout.note_item, this);//Inflate可用于将一个xml中定义的布局控件找出来,这里的xml是r。layout + //findViewById用于从contentView中查找指定ID的View,转换出来的形式根据需要而定; + mAlert = (ImageView) findViewById(R.id.iv_alert_icon); + mTitle = (TextView) findViewById(R.id.tv_title); + mTime = (TextView) findViewById(R.id.tv_time); + mCallName = (TextView) findViewById(R.id.tv_name); + mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + } + ///根据data的属性对各个控件的属性的控制,主要是可见性Visibility,内容setText,格式setTextAppearance + public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { + if (choiceMode && data.getType() == Notes.TYPE_NOTE) { + mCheckBox.setVisibility(View.VISIBLE); ///设置可见行为可见 + mCheckBox.setChecked(checked); ///格子打钩 + } else { + mCheckBox.setVisibility(View.GONE); + } + + mItemData = data; + ///设置控件属性,一共三种情况,由data的id和父id是否与保存到文件夹的id一致来决定 + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.GONE); + mAlert.setVisibility(View.VISIBLE); + //设置该textview的style + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + //settext为设置内容 + mTitle.setText(context.getString(R.string.call_record_folder_name) + + context.getString(R.string.format_folder_files_count, data.getNotesCount())); + mAlert.setImageResource(R.drawable.call_record); + } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.VISIBLE); + mCallName.setText(data.getCallName()); + mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + ///关于闹钟的设置 + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock);//图片来源的设置 + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } else { + mCallName.setVisibility(View.GONE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + ///设置title格式 + if (data.getType() == Notes.TYPE_FOLDER) { + mTitle.setText(data.getSnippet() + + context.getString(R.string.format_folder_files_count, + data.getNotesCount())); + mAlert.setVisibility(View.GONE); + } else { + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock);///设置图片来源 + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } + } + ///设置内容,获取相关时间,从data里编辑的日期中获取 + mTime. setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + + setBackground(data); + } + //根据data的文件属性来设置背景 + private void setBackground(NoteItemData data) { + int id = data.getBgColorId(); + //,若是note型文件,则4种情况,对于4种不同情况的背景来源 + if (data.getType() == Notes.TYPE_NOTE) { + //单个数据并且只有一个子文件夹 + if (data.isSingle() || data.isOneFollowingFolder()) { + setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); + } else if (data.isLast()) {//是最后一个数据 + setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); + } else if (data.isFirst() || data.isMultiFollowingFolder()) {//是一个数据并有多个子文件夹 + setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); + } else { + setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); + } + } else { + //若不是note直接调用文件夹的背景来源 + setBackgroundResource(NoteItemBgResources.getFolderBgRes()); + } + } + public NoteItemData getItemData() { + return mItemData; + } +} \ No newline at end of file diff --git a/doc/210340006杜煜晗/ui包/NotesPreferenceActivity.txt b/doc/210340006杜煜晗/ui包/NotesPreferenceActivity.txt new file mode 100644 index 0000000..4ae4976 --- /dev/null +++ b/doc/210340006杜煜晗/ui包/NotesPreferenceActivity.txt @@ -0,0 +1,514 @@ +package net.micode.notes.ui; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.ActionBar; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +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; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; + +/* + *该类功能:NotesPreferenceActivity,在小米便签中主要实现的是对背景颜色和字体大小的数据储存。 + * 继承了PreferenceActivity主要功能为对系统信息和配置进行自动保存的Activity + */ +public class NotesPreferenceActivity extends PreferenceActivity { + public static final String PREFERENCE_NAME = "notes_preferences"; + //优先名 + public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name"; + //同步账号 + public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time"; + //同步时间 + public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear"; + + private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key"; + //同步密码 + private static final String AUTHORITIES_FILTER_KEY = "authorities"; + //本地密码 + private PreferenceCategory mAccountCategory; + //账户分组 + private GTaskReceiver mReceiver; + //同步任务接收器 + private Account[] mOriAccounts; + //账户 + private boolean mHasAddedAccount; + //账户的hash标记 + + @Override + /* + *函数功能:创建一个activity,在函数里要完成所有的正常静态设置 + *参数:Bundle icicle:存放了 activity 当前的状态 + *函数实现:如下注释 + */ + protected void onCreate(Bundle icicle) { + //先执行父类的创建函数 + super.onCreate(icicle); + + /* using the app icon for navigation */ + getActionBar().setDisplayHomeAsUpEnabled(true); + //给左上角图标的左边加上一个返回的图标 + + addPreferencesFromResource(R.xml.preferences); + //添加xml来源并显示 xml + mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY); + //根据同步账户关键码来初始化分组 + mReceiver = new GTaskReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); + registerReceiver(mReceiver, filter); + //初始化同步组件 + + mOriAccounts = null; + View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); + //获取listvivew,ListView的作用:用于列出所有选择 + getListView().addHeaderView(header, null, true); + //在listview组件上方添加其他组件 + } + + @Override + /* + * 函数功能:activity交互功能的实现,用于接受用户的输入 + * 函数实现:如下注释 + */ + protected void onResume() { + //先执行父类 的交互实现 + super.onResume(); + + // need to set sync account automatically if user has added a new + // account + if (mHasAddedAccount) { + //若用户新加了账户则自动设置同步账户 + Account[] accounts = getGoogleAccounts(); + //获取google同步账户 + if (mOriAccounts != null && accounts.length > mOriAccounts.length) { + //若原账户不为空且当前账户有增加 + for (Account accountNew : accounts) { + boolean found = false; + for (Account accountOld : mOriAccounts) { + if (TextUtils.equals(accountOld.name, accountNew.name)) { + //更新账户 + found = true; + break; + } + } + if (!found) { + setSyncAccount(accountNew.name); + //若是没有找到旧的账户,那么同步账号中就只添加新账户 + break; + } + } + } + } + + refreshUI(); + //刷新标签界面 + } + + @Override + /* + * 函数功能:销毁一个activity + * 函数实现:如下注释 + */ + protected void onDestroy() { + if (mReceiver != null) { + unregisterReceiver(mReceiver); + //注销接收器 + } + super.onDestroy(); + //执行父类的销毁动作 + } + + /* + * 函数功能:重新设置账户信息 + * 函数实现:如下注释 + */ + private void loadAccountPreference() { + mAccountCategory.removeAll(); + //销毁所有的分组 + Preference accountPref = new Preference(this); + //建立首选项 + final String defaultAccount = getSyncAccountName(this); + accountPref.setTitle(getString(R.string.preferences_account_title)); + accountPref.setSummary(getString(R.string.preferences_account_summary)); + //设置首选项的大标题和小标题 + accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + public boolean onPreferenceClick(Preference preference) { + //建立监听器 + if (!GTaskSyncService.isSyncing()) { + if (TextUtils.isEmpty(defaultAccount)) { + // the first time to set account + //若是第一次建立账户显示选择账户提示对话框 + showSelectAccountAlertDialog(); + } else { + // if the account has already been set, we need to promp + // user about the risk + //若是已经建立则显示修改对话框并进行修改操作 + showChangeAccountConfirmAlertDialog(); + } + } else { + //若在没有同步的情况下,则在toast中显示不能修改 + Toast.makeText(NotesPreferenceActivity.this, + R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT) + .show(); + } + return true; + } + }); + + //根据新建首选项编辑新的账户分组 + mAccountCategory.addPreference(accountPref); + } + + /* + *函数功能:设置按键的状态和最后同步的时间 + *函数实现:如下注释 + */ + private void loadSyncButton() { + Button syncButton = (Button) findViewById(R.id.preference_sync_button); + TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + //获取同步按钮控件和最终同步时间的的窗口 + // set button state + //设置按钮的状态 + if (GTaskSyncService.isSyncing()) { + //若是在同步状态下 + syncButton.setText(getString(R.string.preferences_button_sync_cancel)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.cancelSync(NotesPreferenceActivity.this); + } + }); + //设置按钮显示的文本为“取消同步”以及监听器 + } else { + syncButton.setText(getString(R.string.preferences_button_sync_immediately)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.startSync(NotesPreferenceActivity.this); + } + }); + //若是不同步则设置按钮显示的文本为“立即同步”以及对应监听器 + } + syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this))); + //设置按键可用还是不可用 + + // set last sync time + // 设置最终同步时间 + if (GTaskSyncService.isSyncing()) { + //若是在同步的情况下 + lastSyncTimeView.setText(GTaskSyncService.getProgressString()); + lastSyncTimeView.setVisibility(View.VISIBLE); + // 根据当前同步服务器设置时间显示框的文本以及可见性 + } else { + //若是非同步情况 + long lastSyncTime = getLastSyncTime(this); + if (lastSyncTime != 0) { + lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time, + DateFormat.format(getString(R.string.preferences_last_sync_time_format), + lastSyncTime))); + lastSyncTimeView.setVisibility(View.VISIBLE); + //则根据最后同步时间的信息来编辑时间显示框的文本内容和可见性 + } else { + //若时间为空直接设置为不可见状态 + lastSyncTimeView.setVisibility(View.GONE); + } + } + } + /* + *函数功能:刷新标签界面 + *函数实现:调用上文设置账号和设置按键两个函数来实现 + */ + private void refreshUI() { + loadAccountPreference(); + loadSyncButton(); + } + + /* + * 函数功能:显示账户选择的对话框并进行账户的设置 + * 函数实现:如下注释 + */ + private void showSelectAccountAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + //创建一个新的对话框 + + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_select_account_title)); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); + //设置标题以及子标题的内容 + dialogBuilder.setCustomTitle(titleView); + dialogBuilder.setPositiveButton(null, null); + //设置对话框的自定义标题,建立一个YES的按钮 + Account[] accounts = getGoogleAccounts(); + String defAccount = getSyncAccountName(this); + //获取同步账户信息 + mOriAccounts = accounts; + mHasAddedAccount = false; + + if (accounts.length > 0) { + //若账户不为空 + CharSequence[] items = new CharSequence[accounts.length]; + final CharSequence[] itemMapping = items; + int checkedItem = -1; + int index = 0; + for (Account account : accounts) { + if (TextUtils.equals(account.name, defAccount)) { + checkedItem = index; + //在账户列表中查询到所需账户 + } + items[index++] = account.name; + } + dialogBuilder.setSingleChoiceItems(items, checkedItem, + //在对话框建立一个单选的复选框 + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setSyncAccount(itemMapping[which].toString()); + dialog.dismiss(); + //取消对话框 + refreshUI(); + } + //设置点击后执行的事件,包括检录新同步账户和刷新标签界面 + }); + //建立对话框网络版的监听器 + } + + View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); + dialogBuilder.setView(addAccountView); + //给新加账户对话框设置自定义样式 + + final AlertDialog dialog = dialogBuilder.show(); + //显示对话框 + addAccountView.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + mHasAddedAccount = true; + //将新加账户的hash置true + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + //建立网络建立组件 + intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { + "gmail-ls" + }); + startActivityForResult(intent, -1); + //跳回上一个选项 + dialog.dismiss(); + } + }); + //建立新加账户对话框的监听器 + } + + /* + * 函数功能:显示账户选择对话框和相关账户操作 + * 函数实现:如下注释 + */ + private void showChangeAccountConfirmAlertDialog() { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + //创建一个新的对话框 + View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); + TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); + titleTextView.setText(getString(R.string.preferences_dialog_change_account_title, + getSyncAccountName(this))); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg)); + //根据同步修改的账户信息设置标题以及子标题的内容 + dialogBuilder.setCustomTitle(titleView); + //设置对话框的自定义标题 + CharSequence[] menuItemArray = new CharSequence[] { + getString(R.string.preferences_menu_change_account), + getString(R.string.preferences_menu_remove_account), + getString(R.string.preferences_menu_cancel) + }; + //定义一些标记字符串 + dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { + //设置对话框要显示的一个list,用于显示几个命令时,即change,remove,cancel + public void onClick(DialogInterface dialog, int which) { + //按键功能,由which来决定 + if (which == 0) { + //进入账户选择对话框 + showSelectAccountAlertDialog(); + } else if (which == 1) { + //删除账户并且跟新便签界面 + removeSyncAccount(); + refreshUI(); + } + } + }); + dialogBuilder.show(); + //显示对话框 + } + + /* + *函数功能:获取谷歌账户 + *函数实现:通过账户管理器直接获取 + */ + private Account[] getGoogleAccounts() { + AccountManager accountManager = AccountManager.get(this); + return accountManager.getAccountsByType("com.google"); + } + + /* + * 函数功能:设置同步账户 + * 函数实现:如下注释: + */ + private void setSyncAccount(String account) { + if (!getSyncAccountName(this).equals(account)) { + //假如该账号不在同步账号列表中 + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + //编辑共享的首选项 + if (account != null) { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); + } else { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + //将该账号加入到首选项中 + + editor.commit(); + //提交修改的数据 + + + setLastSyncTime(this, 0); + //将最后同步时间清零 + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + //重置当地同步任务的信息 + + Toast.makeText(NotesPreferenceActivity.this, + getString(R.string.preferences_toast_success_set_accout, account), + Toast.LENGTH_SHORT).show(); + //将toast的文本信息置为“设置账户成功”并显示出来 + } + } + /* + * 函数功能:删除同步账户 + * 函数实现:如下注释: + */ + private void removeSyncAccount() { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + //设置共享首选项 + + if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); + //假如当前首选项中有账户就删除 + } + if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { + editor.remove(PREFERENCE_LAST_SYNC_TIME); + //删除当前首选项中有账户时间 + } + editor.commit(); + //提交更新后的数据 + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + //重置当地同步任务的信息 + } + + /* + * 函数功能:获取同步账户名称 + * 函数实现:通过共享的首选项里的信息直接获取 + */ + public static String getSyncAccountName(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + + /* + * 函数功能:设置最终同步的时间 + * 函数实现:如下注释 + */ + public static void setLastSyncTime(Context context, long time) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + // 从共享首选项中找到相关账户并获取其编辑器 + editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); + editor.commit(); + //编辑最终同步时间并提交更新 + } + /* + * 函数功能:获取最终同步时间 + * 函数实现:通过共享的首选项里的信息直接获取 + */ + public static long getLastSyncTime(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); + } + + /* + * 函数功能:接受同步信息 + * 函数实现:继承BroadcastReceiver + */ + private class GTaskReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + refreshUI(); + if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { + //获取随广播而来的Intent中的同步服务的数据 + TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + syncStatus.setText(intent + .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); + //通过获取的数据在设置系统的状态 + } + + } + } + + /* + * 函数功能:处理菜单的选项 + * 函数实现:如下注释 + * 参数:MenuItem菜单选项 + */ + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + //根据选项的id选择,这里只有一个主页 + case android.R.id.home: + Intent intent = new Intent(this, NotesListActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + return true; + //在主页情况下在创建连接组件intent,发出清空的信号并开始一个相应的activity + default: + return false; + } + } +} + \ No newline at end of file diff --git a/doc/陈禹昕组泛读报告.docx b/doc/陈禹昕组泛读报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..25635c26ea9efcbcd674e32897e18c6809f7f9cd GIT binary patch literal 396804 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¨3VMOe{|O+UL|)u=ea7zKtQMC`!_(#Lz#$ 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%0A>RLK=q}o9uRy@YN#0`et;ZZr` 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'OZ7)WWC-%HTq`l_{S1z3! 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%0AQL=7vBnYeUzc~wQh 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