diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java index 7be84dc..1982fda 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -22,26 +22,21 @@ import net.micode.notes.data.Notes.NoteColumns; * @Version: 1.0 */ public class AlarmInitReceiver extends BroadcastReceiver { - private static final String [] PROJECTION = new String [] { NoteColumns.ID, NoteColumns.ALERTED_DATE - }; - //对数据库的操作,调用标签ID和闹钟时间 + };//对数据库的操作,调用标签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时起的毫秒数 + long currentDate = System.currentTimeMillis();//System.currentTimeMillis()产生一个当前的毫秒 Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, PROJECTION, NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, new String[] { String.valueOf(currentDate) }, - //将long变量currentDate转化为字符串 - null); + null);//将long变量currentDate转化为字符串 //Cursor在这里的作用是通过查找数据库中的标签内容,找到和当前系统时间相等的标签 if (c != null) { diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java index a4c7120..646f69f 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -6,7 +6,7 @@ import android.content.Intent; /** * @Package: net.micode.notes.ui * @ClassName: AlarmReceiver - * @Description: + * @Description: 闹钟接收器,接收到闹钟触发的广播后启动AlarmAlertActivity进行闹钟提醒 * @Author: YangYizhe * @CreateDate: 12/17/2023 10:02 AM * @UpdateUser: none @@ -17,14 +17,9 @@ import android.content.Intent; public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - intent.setClass(context, AlarmAlertActivity.class); - //启动AlarmAlertActivity + intent.setClass(context, AlarmAlertActivity.class);//启动AlarmAlertActivity intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - //activity要存在于activity的栈中,而非activity的途径启动activity时必然不存在一个activity的栈 - //所以要新起一个栈装入启动的activity - context.startActivity(intent); + context.startActivity(intent);//启动闹钟提醒界面 } } -//这是实现alarm这个功能最接近用户层的包,基于上面的两个包, -//作用还需要深究但是对于setClass和addFlags的 \ No newline at end of file diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java index bc0485b..9cf4ba6 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -51,8 +51,7 @@ public class DateTimePicker extends FrameLayout { private final NumberPicker mHourSpinner; private final NumberPicker mMinuteSpinner; private final NumberPicker mAmPmSpinner; - //定义了Calendar类型的变量mDate,用于操作时间 - private Calendar mDate; + private Calendar mDate;//定义了Calendar类型的变量mDate,用于操作时间 private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; private boolean mIsAm; @@ -180,25 +179,24 @@ public class DateTimePicker extends FrameLayout { * 构造方法 */ public DateTimePicker(Context context) { - //通过对数据库的访问,获取当前的系统时间 - this(context, System.currentTimeMillis()); + this(context, System.currentTimeMillis());//通过对数据库的访问,获取当前的系统时间 } public DateTimePicker(Context context, long date) { - //上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义 - this(context, date, DateFormat.is24HourFormat(context)); + this(context, date, DateFormat.is24HourFormat(context));//上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义 } public DateTimePicker(Context context, long date, boolean is24HourView) { super(context); - //获取系统时间 - mDate = Calendar.getInstance(); + 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()找到它上面的其它组件 + /* + * 如果当前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); diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java index 273c303..2b0e901 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -832,8 +832,6 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt * @description: 生成便签初始界面 * @date: 2023/12/21 1:16 * @author: WUSHUXIAN - * @param - * @return */ private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java index b165769..4492ca9 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -15,10 +15,15 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; - -/* - * 功能:直译为便签表连接器,继承了CursorAdapter,它为cursor和ListView提供了连接的桥梁。 - * 所以NotesListAdapter实现的是鼠标和编辑便签链接的桥梁 +/** + * @Package: net.micode.notes.ui + * @ClassName: NotesListAdapter + * @Description: + * 直译为便签表连接器,继承了CursorAdapter,它为cursor和ListView提供了连接的桥梁。 + * 所以NotesListAdapter实现的是鼠标和编辑便签链接的桥梁 + * @Author: YangYizhe + * @CreateDate: 12/23/2023 11:35 PM + * @Version: 1.0 */ public class NotesListAdapter extends CursorAdapter { private static final String TAG = "NotesListAdapter"; @@ -34,10 +39,14 @@ public class NotesListAdapter extends CursorAdapter { public int widgetId; public int widgetType; }; - - /* - * 函数功能:初始化便签链接器 + /** + * @method NotesListAdapter + * @description + * 初始化便签链接器 * 函数实现:根据传进来的内容设置相关变量 + * @date: 12/23/2023 11:35 PM + * @author: YangYizhe + * @param context */ public NotesListAdapter(Context context) { super(context, null); //父类对象置空 @@ -47,32 +56,45 @@ public class NotesListAdapter extends CursorAdapter { } @Override - /* - * 函数功能:新建一个视图来存储光标所指向的数据 - * 函数实现:使用兄弟类NotesListItem新建一个项目选项 + /** + * @method newView + * @description + * 新建一个视图来存储光标所指向的数据 + * 通过使用兄弟类NotesListItem新建一个项目选项 + * @date: 12/23/2023 11:35 PM + * @author: YangYizhe + * @param [context, cursor, parent] + * @return android.view.View */ public View newView(Context context, Cursor cursor, ViewGroup parent) { return new NotesListItem(context); } - - /* - * 函数功能:将已经存在的视图和鼠标指向的数据进行捆绑 - * 函数实现:如下注释 - */ @Override + /** + * @method bindView + * @description 将已经存在的视图和鼠标指向的数据进行捆绑 + * @date: 12/23/2023 11:41 PM + * @author: YangYizhe + * @param [view, context, cursor] + * @return void + */ public void bindView(View view, Context context, Cursor cursor) { if (view instanceof NotesListItem) { //若view是NotesListItem的一个实例 + //则新建一个项目选项并且用bind跟将view和鼠标,内容,便签数据捆绑在一起 NoteItemData itemData = new NoteItemData(context, cursor); ((NotesListItem) view).bind(context, itemData, mChoiceMode, isSelectedItem(cursor.getPosition())); - //则新建一个项目选项并且用bind跟将view和鼠标,内容,便签数据捆绑在一起 } } - - /* - * 函数功能:设置勾选框 - * 函数实现:如下注释 + /** + * @method setCheckedItem + * @description 设置勾选框 + * @date: 12/23/2023 11:41 PM + * @author: YangYizhe + * @param checked + * @param position + * @return void */ public void setCheckedItem(final int position, final boolean checked) { mSelectedIndex.put(position, checked); @@ -81,29 +103,32 @@ public class NotesListAdapter extends CursorAdapter { //在修改后刷新activity } - /* - * 函数功能:判断单选按钮是否勾选 - */ public boolean isInChoiceMode() { return mChoiceMode; - } + }//判断单选按钮是否勾选 - /* - * 函数功能:设置单项选项框 - * 函数实现:重置下标并且根据参数mode设置选项 + /** + * @method setChoiceMode + * @description 设置单项选项框 + * @date: 12/23/2023 11:40 PM + * @author: YangYizhe + * @param + * @return */ public void setChoiceMode(boolean mode) { mSelectedIndex.clear(); mChoiceMode = mode; } - /* - * 函数功能:选择全部选项 - * 函数实现:如下注释 + /** + * @method selectAll + * @description 选择全部选项 + * @date: 12/23/2023 11:40 PM + * @author: YangYizhe + * @param checked */ public void selectAll(boolean checked) { - Cursor cursor = getCursor(); - //获取光标位置 + Cursor cursor = getCursor();//获取光标位置 for (int i = 0; i < getCount(); i++) { if (cursor.moveToPosition(i)) { if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { @@ -113,14 +138,16 @@ public class NotesListAdapter extends CursorAdapter { } //遍历所有光标可用的位置在判断为便签类型之后勾选单项框 } - - /* - * 函数功能:建立选择项的下标列表 - * 函数实现:如下注释 + /** + * @method getSelectedItemIds + * @description 建立选择项的下标列表 + * @date: 12/23/2023 11:39 PM + * @author: YangYizhe + * @param + * @return */ public HashSet getSelectedItemIds() { - HashSet itemSet = new HashSet(); - //建立hash表 + HashSet itemSet = new HashSet();//建立hash表 for (Integer position : mSelectedIndex.keySet()) { //遍历所有的关键 if (mSelectedIndex.get(position) == true) { @@ -132,17 +159,18 @@ public class NotesListAdapter extends CursorAdapter { } else { itemSet.add(id); } - //则将id该下标假如选项集合中 - } } return itemSet; } - - /* - * 函数功能:建立桌面Widget的选项表 - * 函数实现:如下注释 + /** + * @method getSelectedWidget + * @description 建立桌面Widget的选项表 + * @date: 12/23/2023 11:39 PM + * @author: YangYizhe + * @param + * @return */ public HashSet getSelectedWidget() { HashSet itemSet = new HashSet(); @@ -169,41 +197,44 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } - /* - * 函数功能:获取选项个数 - * 函数实现:如下注释 + /** + * @method getSelectedCount + * @description 获取选项个数 + * @date: 12/23/2023 11:39 PM + * @author: YangYizhe */ public int getSelectedCount() { - Collection values = mSelectedIndex.values(); - //首先获取选项下标的值 + Collection values = mSelectedIndex.values();//首先获取选项下标的值 if (null == values) { return 0; } - Iterator iter = values.iterator(); - //初始化叠加器 + Iterator iter = values.iterator();//初始化叠加器 int count = 0; while (iter.hasNext()) { if (true == iter.next()) { - //若value值为真计数+1 - count++; + count++;//若value值为真计数+1 } } return count; } - /* - * 函数功能:判断是否全部选中 - * 函数实现:如下注释 + /** + * @method isAllSelected + * @description 判断是否全部选中 + * @date: 12/23/2023 11:38 PM + * @author: YangYizhe */ public boolean isAllSelected() { int checkedCount = getSelectedCount(); - return (checkedCount != 0 && checkedCount == mNotesCount); - //获取选项数看是否等于便签的个数 + return (checkedCount != 0 && checkedCount == mNotesCount);//获取选项数看是否等于便签的个数 } - - /* - * 函数功能:判断是否为选项表 - * 函数实现:通过传递的下标来确定 + /** + * @method isSelectedItem + * @description 判断是否为选项表,通过传递的下标来确定 + * @date: 12/23/2023 11:38 PM + * @author: YangYizhe + * @param + * @return */ public boolean isSelectedItem(final int position) { if (null == mSelectedIndex.get(position)) { @@ -213,29 +244,39 @@ public class NotesListAdapter extends CursorAdapter { } @Override - /* - * 函数功能:在activity内容发生局部变动的时候回调该函数计算便签的数量 - * 函数实现:如下注释 + /** + * @method onContentChanged + * @description 在activity内容发生局部变动的时候回调该函数计算便签的数量 + * @date: 12/23/2023 11:38 PM + * @author: YangYizhe + * @param [] + * @return void */ protected void onContentChanged() { super.onContentChanged(); - //执行基类函数 - calcNotesCount(); + calcNotesCount();//执行基类函数 } @Override - /* - * 函数功能:在activity光标发生局部变动的时候回调该函数计算便签的数量 + /** + * @method changeCursor + * @description 在activity光标发生局部变动的时候回调该函数计算便签的数量 + * @date: 12/23/2023 11:37 PM + * @author: YangYizhe + * @param [cursor] + * @return void */ public void changeCursor(Cursor cursor) { super.changeCursor(cursor); - //执行基类函数 - calcNotesCount(); + calcNotesCount();//执行基类函数 } - - /* - * 函数功能:计算便签数量 - * + /** + * @method calcNotesCount + * @description 计算便签数量 + * @date: 12/23/2023 11:37 PM + * @author: YangYizhe + * @param + * @return */ private void calcNotesCount() { mNotesCount = 0; @@ -244,14 +285,12 @@ public class NotesListAdapter extends CursorAdapter { Cursor c = (Cursor) getItem(i); if (c != null) { if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { - mNotesCount++; - //若该位置不为空并且文本类型为便签就+1 + mNotesCount++;//若该位置不为空并且文本类型为便签就+1 } } else { Log.e(TAG, "Invalid cursor"); return; } - //否则报错 } } } \ No newline at end of file diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListItem.java index fa8b3d2..d32a37b 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListItem.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -14,7 +14,14 @@ import net.micode.notes.tool.DataUtils; import net.micode.notes.tool.ResourceParser.NoteItemBgResources; -//创建便签列表项目选项 +/** + * @Package: net.micode.notes.ui + * @ClassName: NotesListItem + * @Description: + * @Author: YangYizhe + * @CreateDate: 12/23/2023 11:35 PM + * @Version: 1.0 + */ public class NotesListItem extends LinearLayout { private ImageView mAlert;//闹钟图片 private TextView mTitle; //标题 diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java index 6f8a89f..e4109c6 100644 --- a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java +++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -31,78 +31,68 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.gtask.remote.GTaskSyncService; -/* - *该类功能:NotesPreferenceActivity,在小米便签中主要实现的是对背景颜色和字体大小的数据储存。 - * 继承了PreferenceActivity主要功能为对系统信息和配置进行自动保存的Activity +/** + * @Package: net.micode.notes.ui + * @ClassName: NotesPreferenceActivity + * @Description: + * NotesPreferenceActivity,在小米便签中主要实现的是对背景颜色和字体大小的数据储存。 + * 继承了PreferenceActivity主要功能为对系统信息和配置进行自动保存的Activity + * @Author: YangYizhe + * @CreateDate: 12/23/2023 11:42 PM + * @Version: 1.0 */ 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_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 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标记 + private PreferenceCategory mAccountCategory;//账户分组 + private GTaskReceiver mReceiver;//同步任务接收器 + private Account[] mOriAccounts;//账户 + private boolean mHasAddedAccount;//账户的hash标记 @Override - /* - *函数功能:创建一个activity,在函数里要完成所有的正常静态设置 - *参数:Bundle icicle:存放了 activity 当前的状态 - *函数实现:如下注释 + /** + * @method onCreate + * @description 创建一个activity,在函数里要完成所有的正常静态设置 + * @date: 12/23/2023 11:43 PM + * @author: YangYizhe + * @param [icicle] + * @return void */ 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); - //根据同步账户关键码来初始化分组 + 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); - //初始化同步组件 - + registerReceiver(mReceiver, filter);//初始化同步组件 mOriAccounts = null; - View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); - //获取listvivew,ListView的作用:用于列出所有选择 - getListView().addHeaderView(header, null, true); - //在listview组件上方添加其他组件 + View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null);//获取listvivew,ListView的作用:用于列出所有选择 + getListView().addHeaderView(header, null, true);//在listview组件上方添加其他组件 } @Override - /* - * 函数功能:activity交互功能的实现,用于接受用户的输入 - * 函数实现:如下注释 + /** + * @method onResume + * @description activity交互功能的实现,用于接受用户的输入 + * @date: 12/23/2023 11:44 PM + * @author: YangYizhe + * @return void */ protected void onResume() { - //先执行父类 的交互实现 super.onResume(); // need to set sync account automatically if user has added a new // account if (mHasAddedAccount) { //若用户新加了账户则自动设置同步账户 - Account[] accounts = getGoogleAccounts(); - //获取google同步账户 + Account[] accounts = getGoogleAccounts();//获取google同步账户 if (mOriAccounts != null && accounts.length > mOriAccounts.length) { //若原账户不为空且当前账户有增加 for (Account accountNew : accounts) { @@ -123,37 +113,31 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } - refreshUI(); - //刷新标签界面 + refreshUI();//刷新标签界面 } @Override - /* - * 函数功能:销毁一个activity - * 函数实现:如下注释 - */ protected void onDestroy() { if (mReceiver != null) { - unregisterReceiver(mReceiver); - //注销接收器 + unregisterReceiver(mReceiver);//注销接收器 } - super.onDestroy(); - //执行父类的销毁动作 + super.onDestroy();//执行父类的销毁动作 } - /* - * 函数功能:重新设置账户信息 - * 函数实现:如下注释 + /** + * @method loadAccountPreference + * @description 重新设置账户信息 + * @date: 12/23/2023 11:45 PM + * @author: YangYizhe + * @param + * @return */ private void loadAccountPreference() { - mAccountCategory.removeAll(); - //销毁所有的分组 - Preference accountPref = new Preference(this); - //建立首选项 + 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.setSummary(getString(R.string.preferences_account_summary));//设置首选项的大标题和小标题 accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { //建立监听器 @@ -177,14 +161,15 @@ public class NotesPreferenceActivity extends PreferenceActivity { return true; } }); - - //根据新建首选项编辑新的账户分组 - mAccountCategory.addPreference(accountPref); + mAccountCategory.addPreference(accountPref);//根据新建首选项编辑新的账户分组 } - - /* - *函数功能:设置按键的状态和最后同步的时间 - *函数实现:如下注释 + /** + * @method loadSyncButton + * @description 设置按键的状态和最后同步的时间 + * @date: 12/23/2023 11:46 PM + * @author: YangYizhe + * @param + * @return */ private void loadSyncButton() { Button syncButton = (Button) findViewById(R.id.preference_sync_button); @@ -199,20 +184,16 @@ public class NotesPreferenceActivity extends PreferenceActivity { 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))); - //设置按键可用还是不可用 - + syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this)));//设置按键可用还是不可用 // set last sync time // 设置最终同步时间 if (GTaskSyncService.isSyncing()) { @@ -235,35 +216,38 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } } - /* - *函数功能:刷新标签界面 - *函数实现:调用上文设置账号和设置按键两个函数来实现 + /** + * @method refreshUI + * @description + * 刷新标签界面 + * 调用上文设置账号和设置按键两个函数来实现 + * @date: 12/23/2023 11:46 PM + * @author: YangYizhe */ private void refreshUI() { loadAccountPreference(); loadSyncButton(); } - - /* - * 函数功能:显示账户选择的对话框并进行账户的设置 - * 函数实现:如下注释 + /** + * @method showSelectAccountAlertDialog + * @description 显示账户选择的对话框并进行账户的设置 + * @date: 12/23/2023 11:47 PM + * @author: YangYizhe + * @param + * @return */ private void showSelectAccountAlertDialog() { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); - //创建一个新的对话框 + 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)); - //设置标题以及子标题的内容 + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips));//设置标题以及子标题的内容 dialogBuilder.setCustomTitle(titleView); - dialogBuilder.setPositiveButton(null, null); - //设置对话框的自定义标题,建立一个YES的按钮 + dialogBuilder.setPositiveButton(null, null);//设置对话框的自定义标题,建立一个YES的按钮 Account[] accounts = getGoogleAccounts(); - String defAccount = getSyncAccountName(this); - //获取同步账户信息 + String defAccount = getSyncAccountName(this);//获取同步账户信息 mOriAccounts = accounts; mHasAddedAccount = false; @@ -275,8 +259,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { int index = 0; for (Account account : accounts) { if (TextUtils.equals(account.name, defAccount)) { - checkedItem = index; - //在账户列表中查询到所需账户 + checkedItem = index;//在账户列表中查询到所需账户 } items[index++] = account.name; } @@ -285,21 +268,16 @@ public class NotesPreferenceActivity extends PreferenceActivity { new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { setSyncAccount(itemMapping[which].toString()); - dialog.dismiss(); - //取消对话框 + dialog.dismiss();//取消对话框 refreshUI(); } - //设置点击后执行的事件,包括检录新同步账户和刷新标签界面 - }); - //建立对话框网络版的监听器 + });//建立对话框网络版的监听器 } View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); - dialogBuilder.setView(addAccountView); - //给新加账户对话框设置自定义样式 + dialogBuilder.setView(addAccountView);//给新加账户对话框设置自定义样式 - final AlertDialog dialog = dialogBuilder.show(); - //显示对话框 + final AlertDialog dialog = dialogBuilder.show();//显示对话框 addAccountView.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { mHasAddedAccount = true; @@ -313,32 +291,28 @@ public class NotesPreferenceActivity extends PreferenceActivity { //跳回上一个选项 dialog.dismiss(); } - }); - //建立新加账户对话框的监听器 + });//建立新加账户对话框的监听器 } - - /* - * 函数功能:显示账户选择对话框和相关账户操作 - * 函数实现:如下注释 + /** + * @method showChangeAccountConfirmAlertDialog + * @description 显示账户选择对话框和相关账户操作 + * @date: 12/23/2023 11:48 PM + * @author: YangYizhe */ private void showChangeAccountConfirmAlertDialog() { - AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); - //创建一个新的对话框 + 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); - //设置对话框的自定义标题 + 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) { @@ -353,42 +327,42 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } }); - dialogBuilder.show(); - //显示对话框 + dialogBuilder.show();//显示对话框 } - /* - *函数功能:获取谷歌账户 - *函数实现:通过账户管理器直接获取 + /** + * @method getGoogleAccounts + * @description + * 获取谷歌账户 + * 通过账户管理器直接获取 + * @date: 12/23/2023 11:49 PM + * @author: YangYizhe */ private Account[] getGoogleAccounts() { AccountManager accountManager = AccountManager.get(this); return accountManager.getAccountsByType("com.google"); } - /* - * 函数功能:设置同步账户 - * 函数实现:如下注释: + /** + * @method setSyncAccount + * @description 设置同步账户 + * @date: 12/23/2023 11:49 PM + * @author: YangYizhe + * @param account */ private void setSyncAccount(String account) { if (!getSyncAccountName(this).equals(account)) { //假如该账号不在同步账号列表中 SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = settings.edit(); - //编辑共享的首选项 + 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); - //将最后同步时间清零 + editor.commit();//提交修改的数据 + setLastSyncTime(this, 0);//将最后同步时间清零 // clean up local gtask related info new Thread(new Runnable() { @@ -407,25 +381,23 @@ public class NotesPreferenceActivity extends PreferenceActivity { //将toast的文本信息置为“设置账户成功”并显示出来 } } - /* - * 函数功能:删除同步账户 - * 函数实现:如下注释: + /** + * @method removeSyncAccount + * @description 删除同步账户 + * @date: 12/23/2023 11:49 PM + * @author: YangYizhe */ private void removeSyncAccount() { SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = settings.edit(); - //设置共享首选项 + SharedPreferences.Editor editor = settings.edit();//设置共享首选项 if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { - editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); - //假如当前首选项中有账户就删除 + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME);//假如当前首选项中有账户就删除 } if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { - editor.remove(PREFERENCE_LAST_SYNC_TIME); - //删除当前首选项中有账户时间 + editor.remove(PREFERENCE_LAST_SYNC_TIME);//删除当前首选项中有账户时间 } - editor.commit(); - //提交更新后的数据 + editor.commit();//提交更新后的数据 // clean up local gtask related info new Thread(new Runnable() { @@ -438,33 +410,43 @@ public class NotesPreferenceActivity extends PreferenceActivity { }).start(); //重置当地同步任务的信息 } - - /* - * 函数功能:获取同步账户名称 - * 函数实现:通过共享的首选项里的信息直接获取 + /** + * @method getSyncAccountName + * @description + * 获取同步账户名称 + * 通过共享的首选项里的信息直接获取 + * @date: 12/23/2023 11:50 PM + * @author: YangYizhe + * @param context */ public static String getSyncAccountName(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); } - - /* - * 函数功能:设置最终同步的时间 - * 函数实现:如下注释 + /** + * @method setLastSyncTime + * @description 设置最终同步的时间 + * @date: 12/23/2023 11:50 PM + * @author: YangYizhe + * @param + * @return */ public static void setLastSyncTime(Context context, long time) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = settings.edit(); - // 从共享首选项中找到相关账户并获取其编辑器 + SharedPreferences.Editor editor = settings.edit();// 从共享首选项中找到相关账户并获取其编辑器 editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); - editor.commit(); - //编辑最终同步时间并提交更新 + editor.commit();//编辑最终同步时间并提交更新 } - /* - * 函数功能:获取最终同步时间 - * 函数实现:通过共享的首选项里的信息直接获取 + /** + * @method getLastSyncTime + * @description + * 获取最终同步时间 + * 通过共享的首选项里的信息直接获取 + * @date: 12/23/2023 11:51 PM + * @author: YangYizhe + * @param context */ public static long getLastSyncTime(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, @@ -472,10 +454,6 @@ public class NotesPreferenceActivity extends PreferenceActivity { return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); } - /* - * 函数功能:接受同步信息 - * 函数实现:继承BroadcastReceiver - */ private class GTaskReceiver extends BroadcastReceiver { @Override @@ -485,17 +463,17 @@ public class NotesPreferenceActivity extends PreferenceActivity { //获取随广播而来的Intent中的同步服务的数据 TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); syncStatus.setText(intent - .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); - //通过获取的数据在设置系统的状态 + .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG));//通过获取的数据在设置系统的状态 } } } - - /* - * 函数功能:处理菜单的选项 - * 函数实现:如下注释 - * 参数:MenuItem菜单选项 + /** + * @method onOptionsItemSelected + * @description 处理菜单的选项 + * @date: 12/23/2023 11:52 PM + * @author: YangYizhe + * @param item */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) {