标注代码 #5

Closed
ple93m5su wants to merge 3 commits from zhangchaoqun_branch into main

@ -64,10 +64,6 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
}
private void showNotification(int tickerId, String content) {
Notification notification = new Notification(R.drawable.notification, mContext
.getString(tickerId), System.currentTimeMillis());
notification.defaults = Notification.DEFAULT_LIGHTS;
notification.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent pendingIntent;
if (tickerId != R.string.ticker_success) {
pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
@ -77,8 +73,16 @@ public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
NotesListActivity.class), 0);
}
notification.getLargeIcon(
);
Notification.Builder builder = new Notification.Builder(mContext)
.setAutoCancel(true)
.setContentTitle(mContext.getString(R.string.app_name))
.setContentText(content)
.setContentIntent(pendingIntent)
.setWhen(System.currentTimeMillis())
.setOngoing(true);
Notification notification=builder.getNotification();
mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
}

@ -0,0 +1,276 @@
/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.ui;
import android.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;
/**
* @projectName: xiaomi label
* @package: ui
* @className: AlarmAlertActivity
* @description: ActivityOnClickListener OnDismissListenerOnClickListenerOnDismissListener
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
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;
/**
* @description :
* @param 1:savedInstanceState
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
//从onCreate的参数savedInsanceState中获得状态数据
super.onCreate(savedInstanceState);
//界面显示——无标题
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 {
/*
*ID
* getContentResolver
*/
mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1));
mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId);
//判断标签片段是否达到符合长度
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();
}
}
/**
* @description :isScreen
* @param 1:
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
private boolean isScreenOn() {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
return pm.isScreenOn();
}
/**
* @description :playAlarmSound
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void playAlarmSound() {
//调用系统的铃声管理URI得到闹钟提示音
Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM);
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 {
//setDataSource(Context context, Uri uri),无返回值,设置多媒体数据来源【根据 Uri】
mPlayer.setDataSource(this, url);
//准备同步
mPlayer.prepare();
//设置是否循环播放
mPlayer.setLooping(true);
//开始播放
mPlayer.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 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();
}
}
/**
* @description :showActionDialog
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showActionDialog() {
//创建一个AlertDialog要用到AlertDialog.Builder中的create()方法
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
//为对话框设置标题
dialog.setTitle(R.string.app_name);
//为对话框设置内容
dialog.setMessage(mSnippet);
dialog.setPositiveButton(R.string.notealert_ok, this);
if (isScreenOn()) {
dialog.setNegativeButton(R.string.notealert_enter, this);
}
dialog.show().setOnDismissListener(this);
}
/**
* @description :onClick
* @param 1:dialog
* @param 2:which
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void onClick(DialogInterface dialog, int which) {
switch (which) {
//取消操作
case DialogInterface.BUTTON_NEGATIVE:
//实现两个类间的数据传输
Intent intent = new Intent(this, NoteEditActivity.class);
//设置动作属性
intent.setAction(Intent.ACTION_VIEW);
//实现key-value对
//EXTRA_UID为keymNoteId为键
intent.putExtra(Intent.EXTRA_UID, mNoteId);
//开始动作
startActivity(intent);
break;
//确定操作
default:
break;
}
}
/**
* @description :
* @param 1:dialog
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void onDismiss(DialogInterface dialog) {
//停止闹钟声音
stopAlarmSound();
//完成该动作
finish();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void stopAlarmSound() {
if (mPlayer != null) {
//停止播放
mPlayer.stop();
//释放MediaPlayer对象
mPlayer.release();
mPlayer = null;
}
}
}

@ -28,37 +28,71 @@ import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
/**
* @projectName: xiaomi label
* @package: ui
* @className: AlarmInitReceiver
* @description: BroadcastReceiver
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class AlarmInitReceiver extends BroadcastReceiver {
//声明PROJECTION每个元素包括id和提醒日期
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
@Override//表示重写
/**
* @description :contextintent广
* @param 1:context
* @param 2:intent
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void onReceive(Context context, Intent intent) {
//获取当前日期
long currentDate = System.currentTimeMillis();
//Cursor在这里的作用是通过查找数据库中的标签内容找到和当前系统时间相等的标签
Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI,
PROJECTION,
NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE,
//将long类型的currentDate转变为String类
new String[] { String.valueOf(currentDate) },
null);
/*
*c != nullcursorcursor
*/
if (c != null) {
//移动到开始位置
if (c.moveToFirst()) {
do {
//获取提醒日期
long alertDate = c.getLong(COLUMN_ALERTED_DATE);
//通过定义一个intent方法与AlarmReceiver类建立连接
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);
//调用安卓的AlarmManager设置一个系统提醒事项设置提醒时间为便签中所存的alertDate
alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent);
} while (c.moveToNext());
}
//关闭游标
c.close();
}
}

@ -20,11 +20,36 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
/**
* @projectName: xiaomi label
* @package: ui
* @className: AlarmReceiver
* @description: BroadcastReceiver(广)
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class AlarmReceiver extends BroadcastReceiver {
/**
* @description :onreceive()广
* @param 1:context
* @param 2:intent
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
public void onReceive(Context context, Intent intent) {
//将intent与AlarmAlertActivity类建立连接
intent.setClass(context, AlarmAlertActivity.class);
//添加一个标记创建一个新的task来放置AlarmAlertActivity
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//启动intent所连接的类
context.startActivity(intent);
}
}

@ -28,56 +28,92 @@ import android.view.View;
import android.widget.FrameLayout;
import android.widget.NumberPicker;
/**
* @projectName: xiaomi label
* @package: ui
* @className: DateTimePicker
* @description: FrameLayout
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class DateTimePicker extends 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;
//日期轮转最小值为0表示周天
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 static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1;//周六
private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0;//24小时制下轮转最小值
private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23;//24小时制下轮转最大值
private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1;//12小时制下轮转最小值
private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12;//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;
private Calendar mDate;
private Calendar mDate;//用于操作时间
private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK];
private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK];//定义一个显示时间的字符串
private boolean mIsAm;
private boolean mIsAm;//是否是上午
private boolean mIs24HourView;
private boolean mIs24HourView;//是否是24小时视图
private boolean mIsEnabled = DEFAULT_ENABLE_STATE;
private boolean mIsEnabled = DEFAULT_ENABLE_STATE;//时间选择器是否已经启用
private boolean mInitialising;
private boolean mInitialising;//是否在初始化
private OnDateTimeChangedListener mOnDateTimeChangedListener;
private OnDateTimeChangedListener mOnDateTimeChangedListener;//日期变化监听器
//监听日期变化传送给mData并进行同步更新操作
private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() {
/**
* @description :
* @param 1:picker
* @param 2:oldVal
* @param 3:newVal
* @return :void
* @author zhangchaoqun
*/
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
//新值减去旧值改变时间
mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal);
updateDateControl();
//监听日期变化
onDateTimeChanged();
}
};
//监听时钟变化
private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
//默认没有变化
boolean isDateChanged = false;
Calendar cal = Calendar.getInstance();
//针对12小时制的操作
if (!mIs24HourView) {
if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) {
cal.setTimeInMillis(mDate.getTimeInMillis());
@ -93,7 +129,9 @@ public class DateTimePicker extends FrameLayout {
mIsAm = !mIsAm;
updateAmPmControl();
}
} else {
}
//针对24小时制的操作
else {
if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) {
cal.setTimeInMillis(mDate.getTimeInMillis());
cal.add(Calendar.DAY_OF_YEAR, 1);
@ -115,6 +153,9 @@ public class DateTimePicker extends FrameLayout {
}
};
/*
*
*/
private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
@ -144,6 +185,9 @@ public class DateTimePicker extends FrameLayout {
}
};
/*
*
*/
private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
@ -158,11 +202,13 @@ public class DateTimePicker extends FrameLayout {
}
};
//日期变化监听器
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());
}
@ -214,6 +260,15 @@ public class DateTimePicker extends FrameLayout {
mInitialising = false;
}
/**
* @description :
* @param 1:enabled
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
public void setEnabled(boolean enabled) {
if (mIsEnabled == enabled) {
@ -262,6 +317,17 @@ public class DateTimePicker extends FrameLayout {
* @param hourOfDay The current hourOfDay
* @param minute The current minute
*/
/**
* @description :
* @param 1:year
* @param 2:month
* @param 3:dayOfMonth
* @param 4:hourOfDay
* @param 5:minute
* @return :void
* @author zhangchaoqun
*/
public void setCurrentDate(int year, int month,
int dayOfMonth, int hourOfDay, int minute) {
setCurrentYear(year);
@ -366,6 +432,15 @@ public class DateTimePicker extends FrameLayout {
*
* @param hourOfDay
*/
/**
* @description :
* @param 1:hourOfDay
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setCurrentHour(int hourOfDay) {
if (!mInitialising && hourOfDay == getCurrentHourOfDay()) {
return;
@ -434,6 +509,15 @@ public class DateTimePicker extends FrameLayout {
updateAmPmControl();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void updateDateControl() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(mDate.getTimeInMillis());
@ -448,6 +532,15 @@ public class DateTimePicker extends FrameLayout {
mDateSpinner.invalidate();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void updateAmPmControl() {
if (mIs24HourView) {
mAmPmSpinner.setVisibility(View.GONE);
@ -458,6 +551,15 @@ public class DateTimePicker extends FrameLayout {
}
}
/**
* @description :1224
* @param 1:
* @param 2:
* @param 3:
* @return :
* @author zhangchaoqun
*/
private void updateHourControl() {
if (mIs24HourView) {
mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW);
@ -472,10 +574,28 @@ public class DateTimePicker extends FrameLayout {
* Set the callback that indicates the 'Set' button has been pressed.
* @param callback the callback, if null will do nothing
*/
/**
* @description :
* @param 1:callback
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) {
mOnDateTimeChangedListener = callback;
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void onDateTimeChanged() {
if (mOnDateTimeChangedListener != null) {
mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(),

@ -29,17 +29,44 @@ import android.content.DialogInterface.OnClickListener;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
/**
* @projectName: xiaomi label
* @package: ui
* @className: DateTimePickerDialog
* @description: AlertDialogOnClickListener
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class DateTimePickerDialog extends AlertDialog implements OnClickListener {
//创建一个Calendar类型的变量mDate方便时间操作
private Calendar mDate = Calendar.getInstance();
//是否是24小时视图
private boolean mIs24HourView;
//声明一个日期设置监听器
private OnDateTimeSetListener mOnDateTimeSetListener;
//DateTimePicker控件一般用于让用户可以从日期列表中选择单个值
private DateTimePicker mDateTimePicker;
//接口:日期时间设置监听器
public interface OnDateTimeSetListener {
void OnDateTimeSet(AlertDialog dialog, long date);
}
/**
* @description :
* @param 1:context
* @param 2:date
* @param 3:
* @return :DateTimePickerDialog
* @author zhangchaoqun
*/
public DateTimePickerDialog(Context context, long date) {
super(context);
mDateTimePicker = new DateTimePicker(context);
@ -64,14 +91,41 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
updateTitle(mDate.getTimeInMillis());
}
/**
* @description :24
* @param 1:is24HourView
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void set24HourView(boolean is24HourView) {
mIs24HourView = is24HourView;
}
/**
* @description :
* @param 1:callBack
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) {
mOnDateTimeSetListener = callBack;
}
/**
* @description : DateUtils
* @param 1:date
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void updateTitle(long date) {
int flag =
DateUtils.FORMAT_SHOW_YEAR |
@ -81,6 +135,15 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
setTitle(DateUtils.formatDateTime(this.getContext(), date, flag));
}
/**
* @description :
* @param 1:arg0
* @param 2:arg1arg0
* @param 3:
* @return :
* @author zhangchaoqun
*/
public void onClick(DialogInterface arg0, int arg1) {
if (mOnDateTimeSetListener != null) {
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());

@ -27,16 +27,42 @@ import android.widget.PopupMenu.OnMenuItemClickListener;
import net.micode.notes.R;
/**
* @projectName: xiaomi label
* @package: ui
* @className: DropdownMenu
* @description:
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class DropdownMenu {
private Button mButton;
//声明一个下拉菜单
private PopupMenu mPopupMenu;
private Menu mMenu;
/**
* @description :
* @param 1:context
* @param 2:button
* @param 3:menuIdid
* @return :DropdownMenu
* @author zhangchaoqun
*/
public DropdownMenu(Context context, Button button, int menuId) {
mButton = button;
//设置这个view的背景
mButton.setBackgroundResource(R.drawable.dropdown_icon);
mPopupMenu = new PopupMenu(context, mButton);
mMenu = mPopupMenu.getMenu();
//MenuInflater是用来实例化Menu目录下的Menu布局文件
//根据ID来确认menu的内容选项
mPopupMenu.getMenuInflater().inflate(menuId, mMenu);
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
@ -45,16 +71,35 @@ public class DropdownMenu {
});
}
/**
* @description :
* @param 1:listener
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
}
}
//对于菜单选项的初始化,根据索引搜索菜单需要的选项
public MenuItem findItem(int id) {
return mMenu.findItem(id);
}
/**
* @description :
* @param 1:titleCharSequencestring
* @param 2:
* @param 3:
* @return :
* @author zhangchaoqun
*/
public void setTitle(CharSequence title) {
mButton.setText(title);
}

@ -29,7 +29,15 @@ import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
/*
*FoldersListAdapterCursorAdapter
* CursorAdapterCursorListView
* 便
*/
public class FoldersListAdapter extends CursorAdapter {
/*
*便ID
*/
public static final String [] PROJECTION = {
NoteColumns.ID,
NoteColumns.SNIPPET
@ -43,11 +51,17 @@ public class FoldersListAdapter extends CursorAdapter {
// TODO Auto-generated constructor stub
}
/*
*
*/
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return new FolderListItem(context);
}
/*
*
*/
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view instanceof FolderListItem) {
@ -57,6 +71,9 @@ public class FoldersListAdapter extends CursorAdapter {
}
}
/*
*ID
*/
public String getFolderName(Context context, int position) {
Cursor cursor = (Cursor) getItem(position);
return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context
@ -68,6 +85,7 @@ public class FoldersListAdapter extends CursorAdapter {
public FolderListItem(Context context) {
super(context);
//根据布局文件的名字等信息将其找出来
inflate(context, R.layout.folder_list_item, this);
mName = (TextView) findViewById(R.id.tv_folder_name);
}

@ -72,6 +72,18 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @projectName: xiaomi label
* @package: ui
* @className: NoteEditActivity
* @description:
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener {
private class HeadViewHolder {
@ -86,6 +98,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
static {
//put实现了将指定的颜色的值和对应的按键相连接
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);
@ -123,19 +136,28 @@ public class NoteEditActivity extends Activity implements OnClickListener,
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;
//对模板WorkingNote初始化
private SharedPreferences mSharedPrefs;
//私有化SharedPreferences的数据存储方式本质是存储key-value键值对数据
private int mFontSizeId;
//用于操作字体的大小
private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
@ -153,7 +175,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
//对数据库的访问
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
@ -165,9 +187,19 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* Current activity may be killed when the memory is low. Once it is killed, for another time
* user load this activity, we should restore the former state
*/
/**
* @description :
* @param 1:savedInstanceState
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//当Bundle不为空时通过onRestoreInstanceState是恢复Activity的状态
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));
@ -179,31 +211,51 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
/**
* @description :IntentinitActivityState
* @param 1:intent
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
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;
/*
*intent.getAction()
*broadcast广intentaction
* receiveintent getAction
*/
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);
//程序将跳转到上面声明的jump
startActivity(jump);
showToast(R.string.error_note_not_exist);
finish();
return false;
} else {
}
//ID在数据库中找到
else {
mWorkingNote = WorkingNote.load(this, noteId);
if (mWorkingNote == null) {
Log.e(TAG, "load note failed with note id" + noteId);
@ -211,6 +263,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return false;
}
}
//setSoftInputMode(软键盘输入模式)
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
@ -223,6 +276,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
Notes.TYPE_WIDGET_INVALIDE);
int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID,
ResourceParser.getDefaultBgId(this));
//intent.getTypeExtra()对各个变量进行语法分析
// Parse call-record note
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
@ -232,6 +286,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
Log.w(TAG, "The call record number is null");
}
long noteId = 0;
//通过电话号码和号码数据来查找noteId
if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(),
phoneNumber, callDate)) > 0) {
mWorkingNote = WorkingNote.load(this, noteId);
@ -241,8 +296,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return false;
}
} else {
//创建一个新的WorkingNote
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId,
widgetType, bgResId);
//将电话号码与号码数据相关
mWorkingNote.convertToCallNote(phoneNumber, callDate);
}
} else {
@ -268,7 +325,17 @@ public class NoteEditActivity extends Activity implements OnClickListener,
initNoteScreen();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void initNoteScreen() {
//设置外观
mNoteEditor.setTextAppearance(this, TextAppearanceResources
.getTexAppearanceResource(mFontSizeId));
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
@ -295,18 +362,34 @@ public class NoteEditActivity extends Activity implements OnClickListener,
showAlertHeader();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showAlertHeader() {
//如果设置了闹钟
if (mWorkingNote.hasClockAlert()) {
long time = System.currentTimeMillis();
//如果系统时间大于了闹钟设置的时间,那么闹钟失效
if (time > mWorkingNote.getAlertDate()) {
mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
} else {
}
//否则开启闹钟
else {
mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString(
mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS));
}
//显示闹钟图标
mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE);
} else {
}
//没有设置闹钟
else {
mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE);
};
@ -326,6 +409,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* 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();
}
@ -335,12 +422,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//MotionEvent是触屏传递机制
//颜色选择器在屏幕上可见
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);
@ -349,11 +439,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return super.dispatchTouchEvent(ev);
}
/**
* @description :
* @param 1:view
* @param 2:ev
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
private boolean inRangeOfView(View view, MotionEvent ev) {
int []location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
//如果触控的位置超出了给定的范围返回false
if (ev.getX() < x
|| ev.getX() > (x + view.getWidth())
|| ev.getY() < y
@ -364,6 +464,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private void initResources() {
//对标签各项属性内容的初始化
mHeadViewPanel = findViewById(R.id.note_title);
mNoteHeaderHolder = new HeadViewHolder();
mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date);
@ -379,6 +480,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
iv.setOnClickListener(this);
}
//对字体大小的选择
mFontSizeSelector = findViewById(R.id.font_size_selector);
for (int id : sFontSizeBtnsMap.keySet()) {
View view = findViewById(id);
@ -406,6 +508,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
clearSettingState();
}
/**
* @description :Widget
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void updateWidget() {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) {
@ -425,12 +536,21 @@ public class NoteEditActivity extends Activity implements OnClickListener,
setResult(RESULT_OK, intent);
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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);
- View.VISIBLE);
} else if (sBgSelectorBtnsMap.containsKey(id)) {
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.GONE);
@ -480,6 +600,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
}
/**
* @description :
* @param 1:menu
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (isFinishing()) {
@ -489,6 +618,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
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);
}
@ -505,51 +635,100 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return true;
}
/**
* @description :
* @param 1:item
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//根据菜单的id来编辑相关项目
int itemId = item.getItemId();
//创建一个新的便签
if (itemId == R.id.menu_new_note) {
createNewNote();
} else if (itemId == R.id.menu_delete) {
}
//删除一个便签
else if (itemId == R.id.menu_delete) {
//创建关于删除操作的对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
/*
*
*
*
*/
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_note));
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
//建立按键监听器
public void onClick(DialogInterface dialog, int which) {
//通过点击来触发操作
//删除当前便签
deleteCurrentNote();
finish();
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
} else if (itemId == R.id.menu_font_size) {
}
//字体大小的设置
else if (itemId == R.id.menu_font_size) {
//字体选择器设置为可见并通过id找字体大小
mFontSizeSelector.setVisibility(View.VISIBLE);
findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE);
} else if (itemId == R.id.menu_list_mode) {
}
//选择列表模式
else if (itemId == R.id.menu_list_mode) {
mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ?
TextNote.MODE_CHECK_LIST : 0);
} else if (itemId == R.id.menu_share) {
}
//菜单共享
else if (itemId == R.id.menu_share) {
getWorkingText();
//sendto函数将运行文本发送到遍历的本文内
sendTo(this, mWorkingNote.getContent());
} else if (itemId == R.id.menu_send_to_desktop) {
}
//发送到桌面
else if (itemId == R.id.menu_send_to_desktop) {
sendToDesktop();
} else if (itemId == R.id.menu_alert) {
}
//创建提醒
else if (itemId == R.id.menu_alert) {
setReminder();
} else if (itemId == R.id.menu_delete_remind) {
}
//删除提醒
else if (itemId == R.id.menu_delete_remind) {
mWorkingNote.setAlertDate(0, false);
}
return true;
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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();
}
@ -557,59 +736,129 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* Share note to apps that support {@link Intent#ACTION_SEND} action
* and {@text/plain} type
*/
/**
* @description :便
* @param 1:context
* @param 2:info
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void sendTo(Context context, String info) {
//建立intent链接选项
Intent intent = new Intent(Intent.ACTION_SEND);
//将需要传递的便签信息放入text文件中
intent.putExtra(Intent.EXTRA_TEXT, info);
//设置连接器的类型
intent.setType("text/plain");
//在activity中进行链接
context.startActivity(intent);
}
/**
* @description :便
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void createNewNote() {
// Firstly, save current editing notes
//保存当前便签
saveNote();
// For safety, start a new NoteEditActivity
finish(); //finish():这是一个 Activity 类的方法,用于结束当前活动(即关闭当前界面)。
Intent intent = new Intent(this, NoteEditActivity.class);//创建一个新的 Intent 对象,用于启动 NoteEditActivity 类。
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);//设置 Intent 的操作为 "插入或编辑",用于告诉 NoteEditActivity 类进行相应的操作
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());//将额外的数据放入 Intent 中。这里使用了键值对的形式,将文件夹的 ID 作为键,从当前工作的笔记对象 mWorkingNote 中获取该 ID 的值,并将其作为额外数据传递给 NoteEditActivity。
startActivity(intent);//启动 NoteEditActivity打开一个新的界面
finish();
//设置链接器
Intent intent = new Intent(this, NoteEditActivity.class);
//该活动定义为创建或编辑
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
//将运行便签的id添加到INTENT_EXTRA_FOLDER_ID标记中
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());
//开始activity并链接
startActivity(intent);
}
/**
* @description :便
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void deleteCurrentNote() {
//若当前便签中有数据
if (mWorkingNote.existInDatabase()) {
HashSet<Long> ids = new HashSet<Long>();
long id = mWorkingNote.getNoteId();
//如果不是根文件则建立一个hash表把便签id存起来
if (id != Notes.ID_ROOT_FOLDER) {
ids.add(id);
} else {
}
//否则报错
else {
Log.d(TAG, "Wrong note id, should not happen");
}
//如果是在非同步模式下
if (!isSyncMode()) {
//删除
if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) {
Log.e(TAG, "Delete Note error");
}
} else {
}
//在同步模式下
else {
//移动至垃圾文件夹中
if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) {
Log.e(TAG, "Move notes to trash folder error, should not happens");
}
}
}
//便签的删除标记位置为true
mWorkingNote.markDeleted(true);
}
/**
* @description :NotesPreferenceActivity
* @param 1:
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
private boolean isSyncMode() {
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
}
/**
* @description :
* @param 1:date
* @param 2:set
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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();
}
/*
*便iduri
*
*
*/
if (mWorkingNote.getNoteId() > 0) {
Intent intent = new Intent(this, AlarmReceiver.class);
intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId()));
@ -621,7 +870,11 @@ public class NoteEditActivity extends Activity implements OnClickListener,
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent);
}
} else {
}
/*
*便
*/
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
@ -632,23 +885,37 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
//Widget发生改变时就更新
public void onWidgetChanged() {
updateWidget();
}
/**
* @description :
* @param 1:index
* @param 2:text
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void onEditTextDelete(int index, String text) {
int childCount = mEditTextList.getChildCount();
//没有编辑框的话直接返回
if (childCount == 1) {
return;
}
//通过id把编辑框存在便签编辑框中
for (int i = index + 1; i < childCount; i++) {
((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text))
.setIndex(i - 1);
}
//删除特定位置的视图
mEditTextList.removeViewAt(index);
NoteEditText edit = null;
//通过id把编辑框存在空的NoteEditText中
if(index == 0) {
edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById(
R.id.et_edit_text);
@ -662,29 +929,54 @@ public class NoteEditActivity extends Activity implements OnClickListener,
edit.setSelection(length);
}
/**
* @description :
* @param 1:index
* @param 2:text
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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);
}
}
/**
* @description :
* @param 1:text
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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));
@ -695,30 +987,55 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus();
mNoteEditor.setVisibility(View.GONE);
//将文本编辑框置为可见
mEditTextList.setVisibility(View.VISIBLE);
}
/**
* @description :
* @param 1:fullText
* @param 2:userQuery
* @param 3:
* @return :Spannable
* @author zhangchaoqun
*/
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);
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;
}
/**
* @description :
* @param 1:item
* @param 2:index
* @param 3:
* @return :View
* @author zhangchaoqun
*/
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) {
@ -730,27 +1047,42 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
});
//选择勾选
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)) {
}
//选择不勾选
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;
}
/**
* @description :便
* @param 1:index
* @param 2:hasText
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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 {
@ -758,7 +1090,17 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
/**
* @description :
* @param 1:oldMode
* @param 2:newMode
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void onCheckListModeChanged(int oldMode, int newMode) {
//检查模式是否切换到列表模式
if (newMode == TextNote.MODE_CHECK_LIST) {
switchToListMode(mNoteEditor.getText().toString());
} else {
@ -772,30 +1114,58 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
private boolean getWorkingText() {
//初始化check标记
boolean hasChecked = false;
// 若模式为CHECK_LIST
if (mWorkingNote.getCheckListMode() == TextNote.MODE_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()) {
//扩展字符串为已打钩并把标记置true
sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n");
hasChecked = true;
} else {
//扩展字符串添加未打钩
sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n");
}
}
}
//利用编辑好的字符串设置运行便签的内容
mWorkingNote.setWorkingText(sb.toString());
} else {
// 若不是list模式直接用编辑器中的内容设置运行中标签的内容
mWorkingNote.setWorkingText(mNoteEditor.getText().toString());
}
return hasChecked;
}
/**
* @description :便
* @param 1:
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
private boolean saveNote() {
//运行 getWorkingText()之后保存
getWorkingText();
boolean saved = mWorkingNote.saveNote();
if (saved) {
@ -806,25 +1176,42 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* 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;
}
/**
* @description :便
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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,
@ -832,10 +1219,14 @@ public class NoteEditActivity extends Activity implements OnClickListener,
sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app));
sender.putExtra("duplicate", true);
//设置sneder的行为是发送
sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
//显示到桌面
showToast(R.string.info_note_enter_desktop);
sendBroadcast(sender);
} else {
}
//空便签直接报错
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
@ -846,17 +1237,45 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
/**
* @description :
* @param 1:content
* @param 2:
* @param 3:
* @return :String
* @author zhangchaoqun
*/
private String makeShortcutIconTitle(String content) {
//直接设置为content中的内容并返回有勾选和未勾选2种
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;
}
/**
* @description :
* @param 1:resId
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
}
/**
* @description :duration
* @param 1:resId
* @param 2:duration
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show();
}

@ -78,6 +78,19 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
/**
* @projectName: xiaomi label
* @package: ui
* @className: NotesListActivity
* @description: ActivityOnClickListenerOnItemLongClickListenerAPP
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener {
private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0;
@ -135,6 +148,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private final static int REQUEST_CODE_OPEN_NODE = 102;
private final static int REQUEST_CODE_NEW_NODE = 103;
/**
* @description :
* @param 1:savedInstanceState
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -147,6 +169,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
setAppInfoFromRawRes();
}
/**
* @description :
* @param 1:requestCode
* @param 2:resultCode
* @param 3:data
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK
@ -157,6 +188,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
}
/**
* @description :APP
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void setAppInfoFromRawRes() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) {

@ -0,0 +1,367 @@
/*
* Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.micode.notes.ui;
import android.content.Context;
import android.database.Cursor;
import android.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;
/**
* @projectName: xiaomi label
* @package: ui
* @className: NotesListAdapter
* @description: 便CursorAdapter便
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class NotesListAdapter extends CursorAdapter {
private static final String TAG = "NotesListAdapter";
private Context mContext;
private HashMap<Integer, Boolean> mSelectedIndex;
private int mNotesCount;//便签数
private boolean mChoiceMode;//选择模式标记
/**
* @projectName: xiaomi label
* @package: ui
* @className: AppWidgetAttribute
* @description: widget
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public static class AppWidgetAttribute {
public int widgetId;
public int widgetType;
};
/**
* @description :便
* @param 1:context
* @param 2:
* @param 3:
* @return :NotesListAdapter
* @author zhangchaoqun
*/
public NotesListAdapter(Context context) {
//父类对象置空
super(context, null);
//新建选项下标的hash表
mSelectedIndex = new HashMap<Integer, Boolean>();
mContext = context;
mNotesCount = 0;
}
/**
* @description :使NotesListItem
* @param 1:context
* @param 2:cursor
* @param 3:parent
* @return :View
* @author zhangchaoqun
*/
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return new NotesListItem(context);
}
/**
* @description :
* @param 1:view
* @param 2:context
* @param 3:cursor
* @return :void
* @author zhangchaoqun
*/
@Override
public void bindView(View view, Context context, Cursor cursor) {
//若view是NotesListItem的一个实例
if (view instanceof NotesListItem) {
//则新建一个项目选项并且用bind跟将view和鼠标内容便签数据捆绑在一起
NoteItemData itemData = new NoteItemData(context, cursor);
((NotesListItem) view).bind(context, itemData, mChoiceMode,
isSelectedItem(cursor.getPosition()));
}
}
/**
* @description :
* @param 1:position
* @param 2:checked
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setCheckedItem(final int position, final boolean checked) {
//根据定位和是否勾选设置下标
mSelectedIndex.put(position, checked);
//在修改后刷新activity
notifyDataSetChanged();
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
public boolean isInChoiceMode() {
return mChoiceMode;
}
/**
* @description :mode
* @param 1:mode
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public void setChoiceMode(boolean mode) {
mSelectedIndex.clear();
mChoiceMode = mode;
}
/**
* @description :
* @param 1:checked
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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);
}
}
}
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :HashSet
* @author zhangchaoqun
*/
public HashSet<Long> getSelectedItemIds() {
//建立hash表
HashSet<Long> itemSet = new HashSet<Long>();
//遍历所有的关键
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");
}
//否则将id该下标加入选项集合中
else {
itemSet.add(id);
}
}
}
return itemSet;
}
/**
* @description :Widget
* @param 1:
* @param 2:
* @param 3:
* @return :HashSetwidget
* @author zhangchaoqun
*/
public HashSet<AppWidgetAttribute> getSelectedWidget() {
HashSet<AppWidgetAttribute> itemSet = new HashSet<AppWidgetAttribute>();
for (Integer position : mSelectedIndex.keySet()) {
if (mSelectedIndex.get(position) == true) {
Cursor c = (Cursor) getItem(position);
//光标位置可用的话就建立新的Widget属性并编辑下标和类型最后添加到选项集中
if (c != null) {
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;
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :int
* @author zhangchaoqun
*/
public int getSelectedCount() {
//首先获取选项下标的值
Collection<Boolean> values = mSelectedIndex.values();
if (null == values) {
return 0;
}
//初始化叠加器
Iterator<Boolean> iter = values.iterator();
int count = 0;
while (iter.hasNext()) {
//若value值为真计数则+1
if (true == iter.next()) {
count++;
}
}
return count;
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :boolean
* @author zhangchaoqun
*/
public boolean isAllSelected() {
//获取选项数看是否等于便签的个数
int checkedCount = getSelectedCount();
return (checkedCount != 0 && checkedCount == mNotesCount);
}
/**
* @description :
* @param 1:position
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
public boolean isSelectedItem(final int position) {
if (null == mSelectedIndex.get(position)) {
return false;
}
return mSelectedIndex.get(position);
}
/**
* @description :activity便
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onContentChanged() {
super.onContentChanged();
calcNotesCount();
}
/**
* @description :activity便
* @param 1:cursor
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
public void changeCursor(Cursor cursor) {
super.changeCursor(cursor);
calcNotesCount();
}
/**
* @description :便
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void calcNotesCount() {
mNotesCount = 0;
//获取总数同时遍历
for (int i = 0; i < getCount(); i++) {
Cursor c = (Cursor) getItem(i);
//若该位置不为空并且文本类型为便签就+1
if (c != null) {
if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) {
mNotesCount++;
}
}
//否则报错
else {
Log.e(TAG, "Invalid cursor");
return;
}
}
}
}

@ -30,14 +30,36 @@ import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
/**
* @projectName: xiaomi label
* @package: ui
* @className: NotesListItem
* @description: LinearLayout便
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class NotesListItem extends LinearLayout {
private ImageView mAlert;
private TextView mTitle;
private TextView mTime;
private TextView mCallName;
private NoteItemData mItemData;
private CheckBox mCheckBox;
private ImageView mAlert;//闹钟图片
private TextView mTitle;//标题
private TextView mTime;//时间
private TextView mCallName;//名称
private NoteItemData mItemData;//标签数据
private CheckBox mCheckBox;//打勾框
/**
* @description :
* @param 1:context
* @param 2:
* @param 3:
* @return :NotesListItem
* @author zhangchaoqun
*/
public NotesListItem(Context context) {
super(context);
inflate(context, R.layout.note_item, this);
@ -48,15 +70,27 @@ public class NotesListItem extends LinearLayout {
mCheckBox = (CheckBox) findViewById(android.R.id.checkbox);
}
/**
* @description :dataVisibilitysetTextsetTextAppearance
* @param 1:context
* @param 2:data
* @param 3:choiceMode
* @param 4:checked
* @return :void
* @author zhangchaoqun
*/
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);
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);
@ -94,24 +128,44 @@ public class NotesListItem extends LinearLayout {
}
}
}
//设置内容获取相关时间从data里编辑的日期中获取
mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate()));
setBackground(data);
}
/**
* @description :data
* @param 1:data
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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()) {
}
//是最后一个数据
else if (data.isLast()) {
setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id));
} else if (data.isFirst() || data.isMultiFollowingFolder()) {
}
//是一个数据并有多个子文件夹
else if (data.isFirst() || data.isMultiFollowingFolder()) {
setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id));
} else {
}
//其他
else {
setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id));
}
} else {
}
//若不是note直接调用文件夹的背景来源
else {
setBackgroundResource(NoteItemBgResources.getFolderBgRes());
}
}

@ -46,100 +46,96 @@ 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;
/*
* @description
* @param
* @return
* @author
* @time 2023/12/20 23:31
*/
/**
* @projectName: xiaomi label
* @package: ui
* @className: NotesPreferenceActivity
* @description: PreferenceActivityActivity便
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
public class NotesPreferenceActivity extends PreferenceActivity {
// 定义偏好设置的名称常量
public static final String PREFERENCE_NAME = "notes_preferences";
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_SYNC_ACCOUNT_NAME = "pref_key_account_name";//同步账号
// 定义上次同步时间的偏好设置键常量
public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time";
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 static final String AUTHORITIES_FILTER_KEY = "authorities";//本地密码
// 声明一个偏好设置中的账户类别对象变量
private PreferenceCategory mAccountCategory;
private PreferenceCategory mAccountCategory;//账号分组
// 声明一个 GTaskReceiver 对象变量,用于接收 GTask 的广播
private GTaskReceiver mReceiver;
private GTaskReceiver mReceiver;//同步任务接收器
// 声明一个原始账户信息的数组变量
private Account[] mOriAccounts;
private Account[] mOriAccounts;//账户
// 声明一个布尔类型变量,用于标记是否已添加账户
private boolean mHasAddedAccount;
private boolean mHasAddedAccount;//账户的hash标记
/**
* @description :activity
* @param 1:icicleactivity
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
/* 使用应用程序图标进行导航 */
/* using the app icon for navigation */
getActionBar().setDisplayHomeAsUpEnabled(true);
// 加载偏好设置资源文件
addPreferencesFromResource(R.xml.preferences);
// 获取账户类别的 PreferenceCategory 对象
mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY);
// 创建一个 GTaskReceiver 对象,用于接收 GTask 的广播
mReceiver = new GTaskReceiver();
// 创建一个 IntentFilter 对象,用于过滤指定的广播
IntentFilter filter = new IntentFilter();
filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME);
// 注册广播接收器,将接收到的广播交给 mReceiver 处理
registerReceiver(mReceiver, filter);
// 初始化 mOriAccounts 为空
mOriAccounts = null;
// 创建一个头部视图,并将其添加到列表中
View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null);
getListView().addHeaderView(header, null, true);
}
/**
* @description :activity
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onResume() {
super.onResume();
// 如果用户已添加新账户,需要自动设置同步账户
// need to set sync account automatically if user has added a new
// account
if (mHasAddedAccount) {
// 获取当前所有的 Google 账户
Account[] accounts = getGoogleAccounts();
// 检查是否有新账户添加进来
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;
@ -148,63 +144,80 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
}
// 刷新界面显示
refreshUI();
}
/**
* @description :activity
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
@Override
protected void onDestroy() {
// 如果广播接收器不为空,取消注册
if (mReceiver != null) {
unregisterReceiver(mReceiver);
}
super.onDestroy();
}
// 加载账户偏好设置
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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.makeText(NotesPreferenceActivity.this,
R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)
R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT)
.show();
}
return true;
}
});
// 将偏好设置项添加到账户类别中
mAccountCategory.addPreference(accountPref);
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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) {
@ -212,7 +225,6 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
});
} else {
// 如果没有在同步中,将按钮文本设置为立即同步,并设置点击事件监听器来开始同步
syncButton.setText(getString(R.string.preferences_button_sync_immediately));
syncButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@ -220,17 +232,13 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
});
}
// 根据是否有同步账户来设置按钮是否可用
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,
@ -238,46 +246,53 @@ public class NotesPreferenceActivity extends PreferenceActivity {
lastSyncTime)));
lastSyncTimeView.setVisibility(View.VISIBLE);
} else {
// 如果最后同步时间为0将最后同步时间文本视图设置为不可见
lastSyncTimeView.setVisibility(View.GONE);
}
}
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void refreshUI() {
// 加载账户偏好设置
loadAccountPreference();
// 加载同步按钮
loadSyncButton();
loadAccountPreference();//上文中的设置账号
loadSyncButton();//上文设置按键
}
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showSelectAccountAlertDialog() {
// 创建一个 AlertDialog.Builder 对象
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// 从布局文件 account_dialog_title 中获取标题视图
View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null);
// 获取标题和副标题的 TextView并设置它们的文本
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
dialogBuilder.setCustomTitle(titleView);
// 设置对话框的确定按钮为空,不显示
dialogBuilder.setPositiveButton(null, null);
// 获取 Google 账户数组,以及当前默认的同步账户名
Account[] accounts = getGoogleAccounts();
String defAccount = getSyncAccountName(this);
// 初始化一些变量
mOriAccounts = accounts;
mHasAddedAccount = false;
// 如果存在 Google 账户
if (accounts.length > 0) {
// 创建一个包含所有账户名的字符串数组,并根据默认账户名设置选中项
CharSequence[] items = new CharSequence[accounts.length];
final CharSequence[] itemMapping = items;
int checkedItem = -1;
@ -288,53 +303,53 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
items[index++] = account.name;
}
// 使用 dialogBuilder.setSingleChoiceItems() 方法设置单选列表项
dialogBuilder.setSingleChoiceItems(items, checkedItem, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 当用户选择一个账户时,设置新的同步账户并关闭对话框,然后刷新界面
setSyncAccount(itemMapping[which].toString());
dialog.dismiss();
refreshUI();
}
});
dialogBuilder.setSingleChoiceItems(items, checkedItem,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
setSyncAccount(itemMapping[which].toString());
dialog.dismiss();
refreshUI();
}
});
}
// 从布局文件 add_account_text 中获取一个视图添加到对话框中
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打开添加账户的系统设置页面并关闭对话框
mHasAddedAccount = true;
Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS");
intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { "gmail-ls" });
intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] {
"gmail-ls"
});
startActivityForResult(intent, -1);
dialog.dismiss();
}
});
}
/**
*
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
private void showChangeAccountConfirmAlertDialog() {
// 创建一个 AlertDialog.Builder 对象
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
// 从布局文件 account_dialog_title 中获取标题视图
View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null);
// 获取标题和副标题的 TextView并设置它们的文本
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
dialogBuilder.setCustomTitle(titleView);
// 设置对话框的选项数组和点击事件监听器
CharSequence[] menuItemArray = new CharSequence[] {
getString(R.string.preferences_menu_change_account),
getString(R.string.preferences_menu_remove_account),
@ -342,37 +357,42 @@ public class NotesPreferenceActivity extends PreferenceActivity {
};
dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 根据用户选择的不同选项执行相应操作
if (which == 0) {
// 如果选择了更改账户,显示选择账户对话框
showSelectAccountAlertDialog();
} else if (which == 1) {
// 如果选择了移除账户,移除同步账户并刷新界面
removeSyncAccount();
refreshUI();
}
}
});
// 显示对话框
dialogBuilder.show();
}
/**
* Google
* @return Google
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :Account
* @author zhangchaoqun
*/
private Account[] getGoogleAccounts() {
AccountManager accountManager = AccountManager.get(this);
return accountManager.getAccountsByType("com.google");
}
/**
*
* @param account
* @description :
* @param 1:account
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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) {
@ -382,10 +402,10 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
editor.commit();
// 清除上次同步时间
// clean up last sync time
setLastSyncTime(this, 0);
// 清除本地 GTasks 相关信息
// clean up local gtask related info
new Thread(new Runnable() {
public void run() {
ContentValues values = new ContentValues();
@ -395,73 +415,103 @@ public class NotesPreferenceActivity extends PreferenceActivity {
}
}).start();
// 显示 Toast 提示用户成功设置了新的账户
Toast.makeText(NotesPreferenceActivity.this,
getString(R.string.preferences_toast_success_set_accout, account),
Toast.LENGTH_SHORT).show();
}
}
/* private void removeSyncAccount() {
GTasks
1.
2. SharedPreferences.Editor
3.
4.
5.
6. 线
1. ContentValues
2. GTasks ID
3. ID 0
4. Notes
*/
/**
* @description :
* @param 1:
* @param 2:
* @param 3:
* @return :void
* @author zhangchaoqun
*/
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();
// 清理本地 GTasks 相关信息
// clean up local gtask related info
new Thread(new Runnable() {
public void run() {
// 创建 ContentValues 对象存储更新的数值
ContentValues values = new ContentValues();
// 将 GTasks ID 设置为空字符串
values.put(NoteColumns.GTASK_ID, "");
// 将同步 ID 设置为 0
values.put(NoteColumns.SYNC_ID, 0);
// 通过内容解析器更新 Notes 表中的数据
getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null);
}
}).start();
}
/**
* @description :
* @param 1:context
* @param 2:
* @param 3:
* @return :String
* @author zhangchaoqun
*/
public static String getSyncAccountName(Context context) {
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
Context.MODE_PRIVATE);
return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, "");
}
/**
* @description :
* @param 1:context
* @param 2:time
* @param 3:
* @return :void
* @author zhangchaoqun
*/
public static void setLastSyncTime(Context context, long time) {
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putLong(PREFERENCE_LAST_SYNC_TIME, time);
editor.commit();
}
/**
* @description :
* @param 1:context
* @param 2:
* @param 3:
* @return :long
* @author zhangchaoqun
*/
public static long getLastSyncTime(Context context) {
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME,
Context.MODE_PRIVATE);
return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0);
}
/**
* @projectName: xiaomi label
* @package: ui
* @className: GTaskReceiver
* @description: roadcastReceiver
* @author: zhangchaoqun
* @createDate: datetime
* @updateUser: user
* @updateDate: datetime
* @updateRemark:
* @version: v1.0
*/
private class GTaskReceiver extends BroadcastReceiver {
@Override
@ -469,25 +519,31 @@ public class NotesPreferenceActivity extends PreferenceActivity {
refreshUI();
if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) {
TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview);
syncStatus.setText(intent.getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG));
syncStatus.setText(intent
.getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG));
}
}
}
/**
* @description :
* @param 1:item
* @param 2:
* @param 3:
* @return :bool
* @author zhangchaoqun
*/
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// 当点击返回按钮时
Intent intent = new Intent(this, NotesListActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// 启动 NotesListActivity
startActivity(intent);
// 返回 true 表示已经处理了此事件
return true;
default:
// 如果选择了未知的菜单项,则返回 false
return false;
}
}
}
}

@ -1,32 +0,0 @@
apply plugin: 'com.android.application'
android {
namespace "net.micode.notes"
compileSdkVersion 33
buildToolsVersion "34.0.0"
defaultConfig {
applicationId "net.micode.notes"
minSdkVersion 14
targetSdkVersion 14
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dependencies {
implementation files('D:/AAA-CS-SDK/Destinations/gradle/httpcomponents-client-4.5.13-bin/httpcomponents-client-4.5.13/lib/httpclient-osgi-4.5.13.jar')
implementation files('D:/AAA-CS-SDK/Destinations/gradle/httpcomponents-client-4.5.13-bin/httpcomponents-client-4.5.13/lib/httpclient-win-4.5.13.jar')
implementation files('D:/AAA-CS-SDK/Destinations/gradle/httpcomponents-client-4.5.13-bin/httpcomponents-client-4.5.13/lib/httpcore-4.4.13.jar')
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}

@ -1,20 +0,0 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "net.micode.notes",
"variantName": "debug",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 1,
"versionName": "0.1",
"outputFile": "app-debug.apk"
}
],
"elementType": "File"
}

@ -1,2 +0,0 @@
#- File Locator -
listingFile=../../apk/debug/output-metadata.json

@ -1,2 +0,0 @@
#- File Locator -
listingFile=../../../outputs/apk/androidTest/debug/output-metadata.json

@ -1,2 +0,0 @@
appMetadataVersion=1.1
androidGradlePluginVersion=8.1.3

@ -1,10 +0,0 @@
{
"version": 3,
"artifactType": {
"type": "COMPATIBLE_SCREEN_MANIFEST",
"kind": "Directory"
},
"applicationId": "net.micode.notes",
"variantName": "debug",
"elements": []
}

@ -1,96 +0,0 @@
#Sun Nov 19 21:12:20 CST 2023
net.micode.notes.app-main-6\:/color/primary_text_dark.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat
net.micode.notes.app-main-6\:/color/secondary_text_dark.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\color_secondary_text_dark.xml.flat
net.micode.notes.app-main-6\:/drawable-hdpi/bg_btn_set_color.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_color_btn_mask.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/call_record.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_call_record.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/clock.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_clock.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/delete.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_delete.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/dropdown_icon.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_dropdown_icon.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_blue.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_blue.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_green.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_green.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_red.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_red.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_blue.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_blue.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_green.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_green.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_red.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_red.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_white.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_white.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_title_yellow.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_white.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_white.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/edit_yellow.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_edit_yellow.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/font_large.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_large.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/font_normal.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_normal.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_size_selector_bg.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/font_small.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_small.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/font_super.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_font_super.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/icon_app.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_icon_app.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_background.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_background.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_down.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_middle.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_single.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_blue_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_blue_up.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_folder.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_folder.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_footer_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_footer_bg.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_green_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_down.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_green_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_middle.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_green_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_single.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_green_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_green_up.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_red_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_down.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_red_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_middle.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_red_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_single.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_red_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_red_up.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_white_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_down.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_white_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_middle.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_white_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_single.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_white_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_white_up.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_down.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_middle.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_single.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/list_yellow_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_list_yellow_up.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/menu_delete.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_delete.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/menu_move.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_menu_move.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/new_note_normal.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_normal.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/new_note_pressed.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_new_note_pressed.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_note_edit_color_selector_panel.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/notification.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_notification.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/search_result.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_search_result.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/selected.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_selected.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/title_alert.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_alert.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/title_bar_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_title_bar_bg.9.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_blue.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_blue.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_green.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_green.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_red.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_red.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_white.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_white.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_2x_yellow.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_2x_yellow.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_blue.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_blue.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_green.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_green.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_red.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_red.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_white.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_white.png.flat
net.micode.notes.app-main-6\:/drawable-hdpi/widget_4x_yellow.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_widget_4x_yellow.png.flat
net.micode.notes.app-main-6\:/drawable/new_note.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\drawable_new_note.xml.flat
net.micode.notes.app-main-6\:/layout/account_dialog_title.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_account_dialog_title.xml.flat
net.micode.notes.app-main-6\:/layout/add_account_text.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_add_account_text.xml.flat
net.micode.notes.app-main-6\:/layout/datetime_picker.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_datetime_picker.xml.flat
net.micode.notes.app-main-6\:/layout/dialog_edit_text.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_dialog_edit_text.xml.flat
net.micode.notes.app-main-6\:/layout/folder_list_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_folder_list_item.xml.flat
net.micode.notes.app-main-6\:/layout/note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit.xml.flat
net.micode.notes.app-main-6\:/layout/note_edit_list_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_edit_list_item.xml.flat
net.micode.notes.app-main-6\:/layout/note_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_item.xml.flat
net.micode.notes.app-main-6\:/layout/note_list.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list.xml.flat
net.micode.notes.app-main-6\:/layout/note_list_dropdown_menu.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_dropdown_menu.xml.flat
net.micode.notes.app-main-6\:/layout/note_list_footer.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_note_list_footer.xml.flat
net.micode.notes.app-main-6\:/layout/settings_header.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_settings_header.xml.flat
net.micode.notes.app-main-6\:/layout/widget_2x.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_2x.xml.flat
net.micode.notes.app-main-6\:/layout/widget_4x.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\layout_widget_4x.xml.flat
net.micode.notes.app-main-6\:/menu/call_note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_call_note_edit.xml.flat
net.micode.notes.app-main-6\:/menu/call_record_folder.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_call_record_folder.xml.flat
net.micode.notes.app-main-6\:/menu/note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_note_edit.xml.flat
net.micode.notes.app-main-6\:/menu/note_list.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list.xml.flat
net.micode.notes.app-main-6\:/menu/note_list_dropdown.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_dropdown.xml.flat
net.micode.notes.app-main-6\:/menu/note_list_options.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_note_list_options.xml.flat
net.micode.notes.app-main-6\:/menu/sub_folder.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\menu_sub_folder.xml.flat
net.micode.notes.app-main-6\:/raw-zh-rCN/introduction=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\raw-zh-rCN_introduction.flat
net.micode.notes.app-main-6\:/raw/introduction=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\raw_introduction.flat
net.micode.notes.app-main-6\:/xml/preferences.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\xml_preferences.xml.flat
net.micode.notes.app-main-6\:/xml/searchable.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\xml_searchable.xml.flat
net.micode.notes.app-main-6\:/xml/widget_2x_info.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_2x_info.xml.flat
net.micode.notes.app-main-6\:/xml/widget_4x_info.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\merged_res\\debug\\xml_widget_4x_info.xml.flat

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="menu_share_ways">
<item>短信</item>
<item>邮件</item>
</string-array>
<plurals name="search_results_title">
<item quantity="other"><ns1:g id="NUMBER">%1$s</ns1:g> 条符合“<ns1:g id="SEARCH">%2$s</ns1:g>”的搜索结果</item>
</plurals>
<string name="alert_message_delete_folder">确认删除文件夹及所包含的便签吗?</string>
<string name="alert_message_delete_note">确认要删除该条便签吗?</string>
<string name="alert_message_delete_notes">确认要删除所选的 %d 条便签吗?</string>
<string name="alert_title_delete">删除</string>
<string name="app_name">便签</string>
<string name="app_widget2x2">便签2x2</string>
<string name="app_widget4x4">便签4x4</string>
<string name="button_delete">删除</string>
<string name="call_record_folder_name">通话便签</string>
<string name="datetime_dialog_cancel">取消</string>
<string name="datetime_dialog_ok">设置</string>
<string name="delete_remind_time_message">成功删除提醒</string>
<string name="error_note_empty_for_clock">不能为空便签设置闹钟提醒</string>
<string name="error_note_empty_for_send_to_desktop">不能将空便签发送到桌面</string>
<string name="error_note_not_exist">要查看的便签不存在</string>
<string name="error_sdcard_export">导出文本时发生错误请检查SD卡</string>
<string name="error_sdcard_unmounted">SD卡被占用不能操作</string>
<string name="error_sync_cancelled">同步已取消</string>
<string name="error_sync_internal">同步失败,发生内部错误</string>
<string name="error_sync_network">同步失败,请检查网络和帐号设置</string>
<string name="failed_sdcard_export">导出失败</string>
<string name="folder_exist">文件夹 %1$s 已存在,请重新命名</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MM月dd日 kk:mm</string>
<string name="format_exported_file_location">已将文本文件(%1$s)输出至SD卡(%2$s)目录</string>
<string name="format_move_notes_to_folder">已将所选 %1$d 条便签移到 %2$s 文件夹</string>
<string name="hint_foler_name">请输入名称</string>
<string name="info_note_enter_desktop">已添加到桌面</string>
<string name="menu_alert">提醒我</string>
<string name="menu_create_folder">新建文件夹</string>
<string name="menu_delete">删除</string>
<string name="menu_deselect_all">取消全选</string>
<string name="menu_export_text">导出文本</string>
<string name="menu_folder_change_name">修改文件夹名称</string>
<string name="menu_folder_delete">刪除文件夹</string>
<string name="menu_folder_view">查看文件夹</string>
<string name="menu_font_large"></string>
<string name="menu_font_normal">正常</string>
<string name="menu_font_size">文字大小</string>
<string name="menu_font_small"></string>
<string name="menu_font_super">超大</string>
<string name="menu_list_mode">进入清单模式</string>
<string name="menu_move">移动到文件夹</string>
<string name="menu_move_parent_folder">上一级文件夹</string>
<string name="menu_normal_mode">退出清单模式</string>
<string name="menu_remove_remind">删除提醒</string>
<string name="menu_search">搜索</string>
<string name="menu_select_all">全选</string>
<string name="menu_select_none">没有选中项,操作无效</string>
<string name="menu_select_title">选中了 %d 项</string>
<string name="menu_send_to_desktop">发送到桌面</string>
<string name="menu_setting">设置</string>
<string name="menu_share">分享</string>
<string name="menu_sync">同步</string>
<string name="menu_sync_cancel">取消同步</string>
<string name="menu_title_select_folder">选择文件夹</string>
<string name="note_alert_expired">已过期</string>
<string name="note_link_email">发送邮件</string>
<string name="note_link_other">打开地图</string>
<string name="note_link_tel">呼叫电话</string>
<string name="note_link_web">浏览网页</string>
<string name="notealert_enter">查看</string>
<string name="notealert_ok">知道了</string>
<string name="notelist_menu_new">新建便签</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">与google task同步便签记录</string>
<string name="preferences_account_title">同步账号</string>
<string name="preferences_add_account">添加账号</string>
<string name="preferences_bg_random_appear_title">新建便签背景颜色随机</string>
<string name="preferences_button_sync_cancel">取消同步</string>
<string name="preferences_button_sync_immediately">立即同步</string>
<string name="preferences_dialog_change_account_title">当前帐号 %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复</string>
<string name="preferences_dialog_select_account_tips">请选择google帐号便签将与该帐号的google task内容同步。</string>
<string name="preferences_dialog_select_account_title">同步便签</string>
<string name="preferences_last_sync_time">上次同步于 %1$s</string>
<string name="preferences_menu_cancel">取消</string>
<string name="preferences_menu_change_account">更换账号</string>
<string name="preferences_menu_remove_account">删除账号</string>
<string name="preferences_title">设置</string>
<string name="preferences_toast_cannot_change_account">正在同步中,不能修改同步帐号</string>
<string name="preferences_toast_success_set_accout">同步帐号已设置为%1$s</string>
<string name="search">便签</string>
<string name="search_hint">搜索便签</string>
<string name="search_label">正在搜索便签</string>
<string name="search_setting_description">便签中的文字</string>
<string name="set_remind_time_message">创建提醒</string>
<string name="success_sdcard_export">导出成功</string>
<string name="success_sync_account">与%1$s同步成功</string>
<string name="sync_progress_init_list">正在获取服务器便签列表...</string>
<string name="sync_progress_login">登录%1$s...</string>
<string name="sync_progress_syncing">正在同步本地便签...</string>
<string name="ticker_cancel">同步已取消</string>
<string name="ticker_fail">同步失败</string>
<string name="ticker_success">同步成功</string>
<string name="ticker_syncing">同步便签...</string>
<string name="widget_havenot_content">没有关联内容,点击新建便签。</string>
<string name="widget_under_visit_mode">访客模式下,便签内容不可见</string>
</resources>

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="menu_share_ways">
<item>短信</item>
<item>郵件</item>
</string-array>
<plurals name="search_results_title">
<item quantity="other"><ns1:g id="NUMBER">%1$s</ns1:g> 條符合”<ns1:g id="SEARCH">%2$s</ns1:g>“的搜尋結果</item>
</plurals>
<string name="alert_message_delete_folder">確認刪除檔夾及所包含的便簽嗎?</string>
<string name="alert_message_delete_note">确认要删除該條便籤嗎?</string>
<string name="alert_message_delete_notes">确认要刪除所選的 %d 條便籤嗎?</string>
<string name="alert_title_delete">刪除</string>
<string name="app_name">便簽</string>
<string name="app_widget2x2">便簽2x2</string>
<string name="app_widget4x4">便簽4x4</string>
<string name="button_delete">刪除</string>
<string name="call_record_folder_name">通話便籤</string>
<string name="datetime_dialog_cancel">取消</string>
<string name="datetime_dialog_ok">設置</string>
<string name="delete_remind_time_message">成功刪除提醒</string>
<string name="error_note_empty_for_clock">不能爲空便籤設置鬧鐘提醒</string>
<string name="error_note_empty_for_send_to_desktop">不能將空便籤發送到桌面</string>
<string name="error_note_not_exist">要查看的便籤不存在</string>
<string name="error_sdcard_export">導出TXT時發生錯誤請檢查SD卡</string>
<string name="error_sdcard_unmounted">SD卡被佔用不能操作</string>
<string name="error_sync_cancelled">同步已取消</string>
<string name="error_sync_internal">同步失敗,發生內部錯誤</string>
<string name="error_sync_network">同步失敗,請檢查網絡和帳號設置</string>
<string name="failed_sdcard_export">導出失敗</string>
<string name="folder_exist">文件夾 %1$s 已存在,請重新命名</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MM月dd日 kk:mm</string>
<string name="format_exported_file_location">已將文本文件(%1$s)導出至SD(%2$s)目錄</string>
<string name="format_move_notes_to_folder">已將所選 %1$d 便籤移到 %2$s 文件夾</string>
<string name="hint_foler_name">請輸入名稱</string>
<string name="info_note_enter_desktop">已添加到桌面</string>
<string name="menu_alert">提醒我</string>
<string name="menu_create_folder">新建文件夾</string>
<string name="menu_delete">刪除</string>
<string name="menu_deselect_all">取消全選</string>
<string name="menu_export_text">導出文本</string>
<string name="menu_folder_change_name">修改文件夾名稱</string>
<string name="menu_folder_delete">刪除文件夾</string>
<string name="menu_folder_view">查看文件夾</string>
<string name="menu_font_large"></string>
<string name="menu_font_normal">正常</string>
<string name="menu_font_size">文字大小</string>
<string name="menu_font_small"></string>
<string name="menu_font_super">超大</string>
<string name="menu_list_mode">進入清單模式</string>
<string name="menu_move">移動到文件夾</string>
<string name="menu_move_parent_folder">上一級文件夾</string>
<string name="menu_normal_mode">退出清單模式</string>
<string name="menu_remove_remind">刪除提醒</string>
<string name="menu_search">搜尋</string>
<string name="menu_select_all">全選</string>
<string name="menu_select_none">沒有選中項,操作無效</string>
<string name="menu_select_title">選中了 %d 項</string>
<string name="menu_send_to_desktop">發送到桌面</string>
<string name="menu_setting">設置</string>
<string name="menu_share">分享</string>
<string name="menu_sync">同步</string>
<string name="menu_sync_cancel">取消同步</string>
<string name="menu_title_select_folder">選擇文件夾</string>
<string name="note_alert_expired">已過期</string>
<string name="note_link_email">發送郵件</string>
<string name="note_link_other">打開地圖</string>
<string name="note_link_tel">呼叫電話</string>
<string name="note_link_web">浏覽網頁</string>
<string name="notealert_enter">查看</string>
<string name="notealert_ok">知道了</string>
<string name="notelist_menu_new">新建便簽</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">与google task同步便簽記錄</string>
<string name="preferences_account_title">同步賬號</string>
<string name="preferences_add_account">添加賬號</string>
<string name="preferences_bg_random_appear_title">新建便籤背景顏色隨機</string>
<string name="preferences_button_sync_cancel">取消同步</string>
<string name="preferences_button_sync_immediately">立即同步</string>
<string name="preferences_dialog_change_account_title">當前帳號 %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復</string>
<string name="preferences_dialog_select_account_tips">請選擇google帳號便簽將與該帳號的google task內容同步。</string>
<string name="preferences_dialog_select_account_title">同步便簽</string>
<string name="preferences_last_sync_time">上次同步于 %1$s</string>
<string name="preferences_menu_cancel">取消</string>
<string name="preferences_menu_change_account">更換賬號</string>
<string name="preferences_menu_remove_account">刪除賬號</string>
<string name="preferences_title">設置</string>
<string name="preferences_toast_cannot_change_account">正在同步中,不能修改同步帳號</string>
<string name="preferences_toast_success_set_accout">同步帳號已設置為%1$s</string>
<string name="search">便籤</string>
<string name="search_hint">搜索便籤</string>
<string name="search_label">正在搜索便籤</string>
<string name="search_setting_description">便籤中的文字</string>
<string name="set_remind_time_message">創建提醒</string>
<string name="success_sdcard_export">導出成功</string>
<string name="success_sync_account">與%1$s同步成功</string>
<string name="sync_progress_init_list">正在獲取服務器便籤列表...</string>
<string name="sync_progress_login">登陸%1$s...</string>
<string name="sync_progress_syncing">正在同步本地便籤...</string>
<string name="ticker_cancel">同步已取消</string>
<string name="ticker_fail">同步失敗</string>
<string name="ticker_success">同步成功</string>
<string name="ticker_syncing">同步便簽...</string>
<string name="widget_havenot_content">沒有關聯內容,點擊新建便簽。</string>
<string name="widget_under_visit_mode">訪客模式下,便籤內容不可見</string>
</resources>

@ -1,169 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="format_for_exported_note">
<item>-%s</item>
<item>--%s</item>
<item>--%s</item>
<item>--%s</item>
</string-array>
<string-array name="menu_share_ways">
<item>Messaging</item>
<item>Email</item>
</string-array>
<color name="user_query_highlight">#335b5b5b</color>
<dimen name="text_font_size_large">26sp</dimen>
<dimen name="text_font_size_medium">20sp</dimen>
<dimen name="text_font_size_normal">17sp</dimen>
<dimen name="text_font_size_small">14sp</dimen>
<dimen name="text_font_size_super">33sp</dimen>
<plurals name="search_results_title">
<item quantity="one"><ns1:g example="1" id="number">%1$s</ns1:g> result for \"<ns1:g example="???" id="search">%2$s</ns1:g>\"</item>
<item quantity="other"><ns1:g example="15" id="number">%1$s</ns1:g> results for \"<ns1:g example="???" id="search">%2$s</ns1:g>\"</item>
</plurals>
<string name="alert_message_delete_folder">Confirm to delete folder and its notes?</string>
<string name="alert_message_delete_note">Confirm to delete this note?</string>
<string name="alert_message_delete_notes">Confirm to delete the selected %d notes?</string>
<string name="alert_title_delete">Delete selected notes</string>
<string name="app_name">Notes</string>
<string name="app_widget2x2">Notes 2x2</string>
<string name="app_widget4x4">Notes 4x4</string>
<string name="button_delete">Delete</string>
<string name="call_record_folder_name">Call notes</string>
<string name="datetime_dialog_cancel">cancel</string>
<string name="datetime_dialog_ok">set</string>
<string name="delete_remind_time_message">Delete reminder successfully</string>
<string name="error_note_empty_for_clock">Sorry, can not set clock on empty note</string>
<string name="error_note_empty_for_send_to_desktop">Sorry, can not send and empty note to home</string>
<string name="error_note_not_exist">The note is not exist</string>
<string name="error_sdcard_export">Export failed, please check SD card</string>
<string name="error_sdcard_unmounted">SD card busy, not available now</string>
<string name="error_sync_cancelled">Sync is canceled</string>
<string name="error_sync_internal">Sync failed, internal error occurs</string>
<string name="error_sync_network">Sync failed, please check network and account settings</string>
<string name="failed_sdcard_export">Export fail</string>
<string name="file_name_txt_format">notes_%s.txt</string>
<string name="file_path">/MIUI/notes/</string>
<string name="folder_exist">The folder %1$s exist, please rename</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MMMd kk:mm</string>
<string name="format_exported_file_location">Export text file (%1$s) to SD (%2$s) directory</string>
<string name="format_folder_files_count">(%d)</string>
<string name="format_move_notes_to_folder">Have moved selected %1$d notes to %2$s folder</string>
<string name="hint_foler_name">Input name</string>
<string name="info_note_enter_desktop">Note added to home</string>
<string name="menu_alert">Remind me</string>
<string name="menu_create_folder">New Folder</string>
<string name="menu_delete">Delete</string>
<string name="menu_deselect_all">Deselect all</string>
<string name="menu_export_text">Export text</string>
<string name="menu_folder_change_name">Change folder name</string>
<string name="menu_folder_delete">Delete folder</string>
<string name="menu_folder_view">View folder</string>
<string name="menu_font_large">Large</string>
<string name="menu_font_normal">Medium</string>
<string name="menu_font_size">Font size</string>
<string name="menu_font_small">Small</string>
<string name="menu_font_super">Super</string>
<string name="menu_list_mode">Enter check list</string>
<string name="menu_move">Move to folder</string>
<string name="menu_move_parent_folder">Parent folder</string>
<string name="menu_normal_mode">Leave check list</string>
<string name="menu_remove_remind">Delete reminder</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_select_none">Nothing selected, the operation is invalid</string>
<string name="menu_select_title">%d selected</string>
<string name="menu_send_to_desktop">Send to home</string>
<string name="menu_setting">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_sync">Sync</string>
<string name="menu_sync_cancel">Cancel syncing</string>
<string name="menu_title_select_folder">Select folder</string>
<string name="note_alert_expired">Expired</string>
<string name="note_link_email">Send email</string>
<string name="note_link_other">Open map</string>
<string name="note_link_tel">Call</string>
<string name="note_link_web">Browse web</string>
<string name="notealert_enter">Take a look</string>
<string name="notealert_ok">Got it</string>
<string name="notelist_menu_new">Add note</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">Sync notes with google task</string>
<string name="preferences_account_title">Sync account</string>
<string name="preferences_add_account">Add account</string>
<string name="preferences_bg_random_appear_title">New note background color random</string>
<string name="preferences_button_sync_cancel">Cancel syncing</string>
<string name="preferences_button_sync_immediately">Sync immediately</string>
<string name="preferences_dialog_change_account_title">Current account %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">All sync related information will be deleted, which may result in duplicated items sometime</string>
<string name="preferences_dialog_select_account_tips">Please select a google account. Local notes will be synced with google task.</string>
<string name="preferences_dialog_select_account_title">Sync notes</string>
<string name="preferences_last_sync_time">Last sync time %1$s</string>
<string name="preferences_last_sync_time_format">yyyy-MM-dd hh:mm:ss</string>
<string name="preferences_menu_cancel">Cancel</string>
<string name="preferences_menu_change_account">Change sync account</string>
<string name="preferences_menu_remove_account">Remove sync account</string>
<string name="preferences_title">Settings</string>
<string name="preferences_toast_cannot_change_account">Cannot change the account because sync is in progress</string>
<string name="preferences_toast_success_set_accout">%1$s has been set as the sync account</string>
<string name="search">Notes</string>
<string name="search_hint">Search notes</string>
<string name="search_label">Searching Notes</string>
<string name="search_setting_description">Text in your notes</string>
<string name="set_remind_time_message">Set reminder</string>
<string name="success_sdcard_export">Export successful</string>
<string name="success_sync_account">Sync is successful with account %1$s</string>
<string name="sync_progress_init_list">Getting remote note list...</string>
<string name="sync_progress_login">Logging into %1$s...</string>
<string name="sync_progress_syncing">Synchronize local notes with Google Task...</string>
<string name="ticker_cancel">Sync is canceled</string>
<string name="ticker_fail">Sync is failed</string>
<string name="ticker_success">Sync is successful</string>
<string name="ticker_syncing">Syncing notes...</string>
<string name="widget_havenot_content">No associated note found, click to create associated note.</string>
<string name="widget_under_visit_mode">Privacy modecan not see note content</string>
<style name="HighlightTextAppearancePrimary">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@color/primary_text_dark</item>
</style>
<style name="HighlightTextAppearanceSecondary">
<item name="android:textSize">@dimen/text_font_size_small</item>
<item name="android:textColor">@color/secondary_text_dark</item>
</style>
<style name="NoteActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:displayOptions"/>
<item name="android:visibility">gone</item>
</style>
<style name="NoteTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/NoteActionBarStyle</item>
</style>
<style name="TextAppearanceLarge">
<item name="android:textSize">@dimen/text_font_size_large</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceMedium">
<item name="android:textSize">@dimen/text_font_size_medium</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceNormal">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearancePrimaryItem">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@color/primary_text_dark</item>
</style>
<style name="TextAppearanceSecondaryItem">
<item name="android:textSize">@dimen/text_font_size_small</item>
<item name="android:textColor">@color/secondary_text_dark</item>
</style>
<style name="TextAppearanceSuper">
<item name="android:textSize">@dimen/text_font_size_super</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceUnderMenuIcon">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@android:color/black</item>
</style>
</resources>

File diff suppressed because one or more lines are too long

@ -1,96 +0,0 @@
#Sun Nov 19 21:12:21 CST 2023
net.micode.notes.app-main-5\:/color/primary_text_dark.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\color\\primary_text_dark.xml
net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\color\\secondary_text_dark.xml
net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_btn_set_color.png
net.micode.notes.app-main-5\:/drawable-hdpi/bg_color_btn_mask.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_color_btn_mask.png
net.micode.notes.app-main-5\:/drawable-hdpi/call_record.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\call_record.png
net.micode.notes.app-main-5\:/drawable-hdpi/clock.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\clock.png
net.micode.notes.app-main-5\:/drawable-hdpi/delete.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\delete.png
net.micode.notes.app-main-5\:/drawable-hdpi/dropdown_icon.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\dropdown_icon.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_blue.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_blue.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_green.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_green.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_red.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_red.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_blue.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_blue.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_green.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_green.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_red.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_red.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_white.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_white.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_title_yellow.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_title_yellow.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_white.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_white.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/edit_yellow.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\edit_yellow.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/font_large.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_large.png
net.micode.notes.app-main-5\:/drawable-hdpi/font_normal.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_normal.png
net.micode.notes.app-main-5\:/drawable-hdpi/font_size_selector_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_size_selector_bg.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/font_small.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_small.png
net.micode.notes.app-main-5\:/drawable-hdpi/font_super.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\font_super.png
net.micode.notes.app-main-5\:/drawable-hdpi/icon_app.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\icon_app.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_background.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_background.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_down.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_middle.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_single.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_blue_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_blue_up.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_folder.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_folder.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_footer_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_footer_bg.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_down.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_middle.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_single.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_green_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_green_up.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_down.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_middle.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_single.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_red_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_red_up.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_down.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_middle.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_single.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_white_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_white_up.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_down.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_down.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_middle.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_middle.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_single.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_single.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/list_yellow_up.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\list_yellow_up.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/menu_delete.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\menu_delete.png
net.micode.notes.app-main-5\:/drawable-hdpi/menu_move.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\menu_move.png
net.micode.notes.app-main-5\:/drawable-hdpi/new_note_normal.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\new_note_normal.png
net.micode.notes.app-main-5\:/drawable-hdpi/new_note_pressed.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\new_note_pressed.png
net.micode.notes.app-main-5\:/drawable-hdpi/note_edit_color_selector_panel.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\note_edit_color_selector_panel.png
net.micode.notes.app-main-5\:/drawable-hdpi/notification.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\notification.png
net.micode.notes.app-main-5\:/drawable-hdpi/search_result.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\search_result.png
net.micode.notes.app-main-5\:/drawable-hdpi/selected.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\selected.png
net.micode.notes.app-main-5\:/drawable-hdpi/title_alert.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\title_alert.png
net.micode.notes.app-main-5\:/drawable-hdpi/title_bar_bg.9.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\title_bar_bg.9.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_blue.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_blue.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_green.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_green.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_red.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_red.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_white.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_white.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_2x_yellow.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_2x_yellow.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_blue.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_blue.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_green.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_green.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_red.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_red.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_white.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_white.png
net.micode.notes.app-main-5\:/drawable-hdpi/widget_4x_yellow.png=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\widget_4x_yellow.png
net.micode.notes.app-main-5\:/drawable/new_note.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\drawable\\new_note.xml
net.micode.notes.app-main-5\:/layout/account_dialog_title.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\account_dialog_title.xml
net.micode.notes.app-main-5\:/layout/add_account_text.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\add_account_text.xml
net.micode.notes.app-main-5\:/layout/datetime_picker.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\datetime_picker.xml
net.micode.notes.app-main-5\:/layout/dialog_edit_text.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\dialog_edit_text.xml
net.micode.notes.app-main-5\:/layout/folder_list_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\folder_list_item.xml
net.micode.notes.app-main-5\:/layout/note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_edit.xml
net.micode.notes.app-main-5\:/layout/note_edit_list_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_edit_list_item.xml
net.micode.notes.app-main-5\:/layout/note_item.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_item.xml
net.micode.notes.app-main-5\:/layout/note_list.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list.xml
net.micode.notes.app-main-5\:/layout/note_list_dropdown_menu.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list_dropdown_menu.xml
net.micode.notes.app-main-5\:/layout/note_list_footer.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\note_list_footer.xml
net.micode.notes.app-main-5\:/layout/settings_header.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\settings_header.xml
net.micode.notes.app-main-5\:/layout/widget_2x.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\widget_2x.xml
net.micode.notes.app-main-5\:/layout/widget_4x.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\layout\\widget_4x.xml
net.micode.notes.app-main-5\:/menu/call_note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\call_note_edit.xml
net.micode.notes.app-main-5\:/menu/call_record_folder.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\call_record_folder.xml
net.micode.notes.app-main-5\:/menu/note_edit.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_edit.xml
net.micode.notes.app-main-5\:/menu/note_list.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list.xml
net.micode.notes.app-main-5\:/menu/note_list_dropdown.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list_dropdown.xml
net.micode.notes.app-main-5\:/menu/note_list_options.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\note_list_options.xml
net.micode.notes.app-main-5\:/menu/sub_folder.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\menu\\sub_folder.xml
net.micode.notes.app-main-5\:/raw-zh-rCN/introduction=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\raw-zh-rCN\\introduction
net.micode.notes.app-main-5\:/raw/introduction=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\raw\\introduction
net.micode.notes.app-main-5\:/xml/preferences.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\xml\\preferences.xml
net.micode.notes.app-main-5\:/xml/searchable.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\xml\\searchable.xml
net.micode.notes.app-main-5\:/xml/widget_2x_info.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\xml\\widget_2x_info.xml
net.micode.notes.app-main-5\:/xml/widget_4x_info.xml=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\packaged_res\\debug\\xml\\widget_4x_info.xml

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="menu_share_ways">
<item>短信</item>
<item>邮件</item>
</string-array>
<plurals name="search_results_title">
<item quantity="other"><ns1:g id="NUMBER">%1$s</ns1:g> 条符合“<ns1:g id="SEARCH">%2$s</ns1:g>”的搜索结果</item>
</plurals>
<string name="alert_message_delete_folder">确认删除文件夹及所包含的便签吗?</string>
<string name="alert_message_delete_note">确认要删除该条便签吗?</string>
<string name="alert_message_delete_notes">确认要删除所选的 %d 条便签吗?</string>
<string name="alert_title_delete">删除</string>
<string name="app_name">便签</string>
<string name="app_widget2x2">便签2x2</string>
<string name="app_widget4x4">便签4x4</string>
<string name="button_delete">删除</string>
<string name="call_record_folder_name">通话便签</string>
<string name="datetime_dialog_cancel">取消</string>
<string name="datetime_dialog_ok">设置</string>
<string name="delete_remind_time_message">成功删除提醒</string>
<string name="error_note_empty_for_clock">不能为空便签设置闹钟提醒</string>
<string name="error_note_empty_for_send_to_desktop">不能将空便签发送到桌面</string>
<string name="error_note_not_exist">要查看的便签不存在</string>
<string name="error_sdcard_export">导出文本时发生错误请检查SD卡</string>
<string name="error_sdcard_unmounted">SD卡被占用不能操作</string>
<string name="error_sync_cancelled">同步已取消</string>
<string name="error_sync_internal">同步失败,发生内部错误</string>
<string name="error_sync_network">同步失败,请检查网络和帐号设置</string>
<string name="failed_sdcard_export">导出失败</string>
<string name="folder_exist">文件夹 %1$s 已存在,请重新命名</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MM月dd日 kk:mm</string>
<string name="format_exported_file_location">已将文本文件(%1$s)输出至SD卡(%2$s)目录</string>
<string name="format_move_notes_to_folder">已将所选 %1$d 条便签移到 %2$s 文件夹</string>
<string name="hint_foler_name">请输入名称</string>
<string name="info_note_enter_desktop">已添加到桌面</string>
<string name="menu_alert">提醒我</string>
<string name="menu_create_folder">新建文件夹</string>
<string name="menu_delete">删除</string>
<string name="menu_deselect_all">取消全选</string>
<string name="menu_export_text">导出文本</string>
<string name="menu_folder_change_name">修改文件夹名称</string>
<string name="menu_folder_delete">刪除文件夹</string>
<string name="menu_folder_view">查看文件夹</string>
<string name="menu_font_large"></string>
<string name="menu_font_normal">正常</string>
<string name="menu_font_size">文字大小</string>
<string name="menu_font_small"></string>
<string name="menu_font_super">超大</string>
<string name="menu_list_mode">进入清单模式</string>
<string name="menu_move">移动到文件夹</string>
<string name="menu_move_parent_folder">上一级文件夹</string>
<string name="menu_normal_mode">退出清单模式</string>
<string name="menu_remove_remind">删除提醒</string>
<string name="menu_search">搜索</string>
<string name="menu_select_all">全选</string>
<string name="menu_select_none">没有选中项,操作无效</string>
<string name="menu_select_title">选中了 %d 项</string>
<string name="menu_send_to_desktop">发送到桌面</string>
<string name="menu_setting">设置</string>
<string name="menu_share">分享</string>
<string name="menu_sync">同步</string>
<string name="menu_sync_cancel">取消同步</string>
<string name="menu_title_select_folder">选择文件夹</string>
<string name="note_alert_expired">已过期</string>
<string name="note_link_email">发送邮件</string>
<string name="note_link_other">打开地图</string>
<string name="note_link_tel">呼叫电话</string>
<string name="note_link_web">浏览网页</string>
<string name="notealert_enter">查看</string>
<string name="notealert_ok">知道了</string>
<string name="notelist_menu_new">新建便签</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">与google task同步便签记录</string>
<string name="preferences_account_title">同步账号</string>
<string name="preferences_add_account">添加账号</string>
<string name="preferences_bg_random_appear_title">新建便签背景颜色随机</string>
<string name="preferences_button_sync_cancel">取消同步</string>
<string name="preferences_button_sync_immediately">立即同步</string>
<string name="preferences_dialog_change_account_title">当前帐号 %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">如更换同步帐号,过去的帐号同步信息将被清空,再次切换的同时可能会造成数据重复</string>
<string name="preferences_dialog_select_account_tips">请选择google帐号便签将与该帐号的google task内容同步。</string>
<string name="preferences_dialog_select_account_title">同步便签</string>
<string name="preferences_last_sync_time">上次同步于 %1$s</string>
<string name="preferences_menu_cancel">取消</string>
<string name="preferences_menu_change_account">更换账号</string>
<string name="preferences_menu_remove_account">删除账号</string>
<string name="preferences_title">设置</string>
<string name="preferences_toast_cannot_change_account">正在同步中,不能修改同步帐号</string>
<string name="preferences_toast_success_set_accout">同步帐号已设置为%1$s</string>
<string name="search">便签</string>
<string name="search_hint">搜索便签</string>
<string name="search_label">正在搜索便签</string>
<string name="search_setting_description">便签中的文字</string>
<string name="set_remind_time_message">创建提醒</string>
<string name="success_sdcard_export">导出成功</string>
<string name="success_sync_account">与%1$s同步成功</string>
<string name="sync_progress_init_list">正在获取服务器便签列表...</string>
<string name="sync_progress_login">登录%1$s...</string>
<string name="sync_progress_syncing">正在同步本地便签...</string>
<string name="ticker_cancel">同步已取消</string>
<string name="ticker_fail">同步失败</string>
<string name="ticker_success">同步成功</string>
<string name="ticker_syncing">同步便签...</string>
<string name="widget_havenot_content">没有关联内容,点击新建便签。</string>
<string name="widget_under_visit_mode">访客模式下,便签内容不可见</string>
</resources>

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="menu_share_ways">
<item>短信</item>
<item>郵件</item>
</string-array>
<plurals name="search_results_title">
<item quantity="other"><ns1:g id="NUMBER">%1$s</ns1:g> 條符合”<ns1:g id="SEARCH">%2$s</ns1:g>“的搜尋結果</item>
</plurals>
<string name="alert_message_delete_folder">確認刪除檔夾及所包含的便簽嗎?</string>
<string name="alert_message_delete_note">确认要删除該條便籤嗎?</string>
<string name="alert_message_delete_notes">确认要刪除所選的 %d 條便籤嗎?</string>
<string name="alert_title_delete">刪除</string>
<string name="app_name">便簽</string>
<string name="app_widget2x2">便簽2x2</string>
<string name="app_widget4x4">便簽4x4</string>
<string name="button_delete">刪除</string>
<string name="call_record_folder_name">通話便籤</string>
<string name="datetime_dialog_cancel">取消</string>
<string name="datetime_dialog_ok">設置</string>
<string name="delete_remind_time_message">成功刪除提醒</string>
<string name="error_note_empty_for_clock">不能爲空便籤設置鬧鐘提醒</string>
<string name="error_note_empty_for_send_to_desktop">不能將空便籤發送到桌面</string>
<string name="error_note_not_exist">要查看的便籤不存在</string>
<string name="error_sdcard_export">導出TXT時發生錯誤請檢查SD卡</string>
<string name="error_sdcard_unmounted">SD卡被佔用不能操作</string>
<string name="error_sync_cancelled">同步已取消</string>
<string name="error_sync_internal">同步失敗,發生內部錯誤</string>
<string name="error_sync_network">同步失敗,請檢查網絡和帳號設置</string>
<string name="failed_sdcard_export">導出失敗</string>
<string name="folder_exist">文件夾 %1$s 已存在,請重新命名</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MM月dd日 kk:mm</string>
<string name="format_exported_file_location">已將文本文件(%1$s)導出至SD(%2$s)目錄</string>
<string name="format_move_notes_to_folder">已將所選 %1$d 便籤移到 %2$s 文件夾</string>
<string name="hint_foler_name">請輸入名稱</string>
<string name="info_note_enter_desktop">已添加到桌面</string>
<string name="menu_alert">提醒我</string>
<string name="menu_create_folder">新建文件夾</string>
<string name="menu_delete">刪除</string>
<string name="menu_deselect_all">取消全選</string>
<string name="menu_export_text">導出文本</string>
<string name="menu_folder_change_name">修改文件夾名稱</string>
<string name="menu_folder_delete">刪除文件夾</string>
<string name="menu_folder_view">查看文件夾</string>
<string name="menu_font_large"></string>
<string name="menu_font_normal">正常</string>
<string name="menu_font_size">文字大小</string>
<string name="menu_font_small"></string>
<string name="menu_font_super">超大</string>
<string name="menu_list_mode">進入清單模式</string>
<string name="menu_move">移動到文件夾</string>
<string name="menu_move_parent_folder">上一級文件夾</string>
<string name="menu_normal_mode">退出清單模式</string>
<string name="menu_remove_remind">刪除提醒</string>
<string name="menu_search">搜尋</string>
<string name="menu_select_all">全選</string>
<string name="menu_select_none">沒有選中項,操作無效</string>
<string name="menu_select_title">選中了 %d 項</string>
<string name="menu_send_to_desktop">發送到桌面</string>
<string name="menu_setting">設置</string>
<string name="menu_share">分享</string>
<string name="menu_sync">同步</string>
<string name="menu_sync_cancel">取消同步</string>
<string name="menu_title_select_folder">選擇文件夾</string>
<string name="note_alert_expired">已過期</string>
<string name="note_link_email">發送郵件</string>
<string name="note_link_other">打開地圖</string>
<string name="note_link_tel">呼叫電話</string>
<string name="note_link_web">浏覽網頁</string>
<string name="notealert_enter">查看</string>
<string name="notealert_ok">知道了</string>
<string name="notelist_menu_new">新建便簽</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">与google task同步便簽記錄</string>
<string name="preferences_account_title">同步賬號</string>
<string name="preferences_add_account">添加賬號</string>
<string name="preferences_bg_random_appear_title">新建便籤背景顏色隨機</string>
<string name="preferences_button_sync_cancel">取消同步</string>
<string name="preferences_button_sync_immediately">立即同步</string>
<string name="preferences_dialog_change_account_title">當前帳號 %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">如更換同步帳號,過去的帳號同步信息將被清空,再次切換的同時可能會造成數據重復</string>
<string name="preferences_dialog_select_account_tips">請選擇google帳號便簽將與該帳號的google task內容同步。</string>
<string name="preferences_dialog_select_account_title">同步便簽</string>
<string name="preferences_last_sync_time">上次同步于 %1$s</string>
<string name="preferences_menu_cancel">取消</string>
<string name="preferences_menu_change_account">更換賬號</string>
<string name="preferences_menu_remove_account">刪除賬號</string>
<string name="preferences_title">設置</string>
<string name="preferences_toast_cannot_change_account">正在同步中,不能修改同步帳號</string>
<string name="preferences_toast_success_set_accout">同步帳號已設置為%1$s</string>
<string name="search">便籤</string>
<string name="search_hint">搜索便籤</string>
<string name="search_label">正在搜索便籤</string>
<string name="search_setting_description">便籤中的文字</string>
<string name="set_remind_time_message">創建提醒</string>
<string name="success_sdcard_export">導出成功</string>
<string name="success_sync_account">與%1$s同步成功</string>
<string name="sync_progress_init_list">正在獲取服務器便籤列表...</string>
<string name="sync_progress_login">登陸%1$s...</string>
<string name="sync_progress_syncing">正在同步本地便籤...</string>
<string name="ticker_cancel">同步已取消</string>
<string name="ticker_fail">同步失敗</string>
<string name="ticker_success">同步成功</string>
<string name="ticker_syncing">同步便簽...</string>
<string name="widget_havenot_content">沒有關聯內容,點擊新建便簽。</string>
<string name="widget_under_visit_mode">訪客模式下,便籤內容不可見</string>
</resources>

@ -1,169 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:ns1="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="format_for_exported_note">
<item>-%s</item>
<item>--%s</item>
<item>--%s</item>
<item>--%s</item>
</string-array>
<string-array name="menu_share_ways">
<item>Messaging</item>
<item>Email</item>
</string-array>
<color name="user_query_highlight">#335b5b5b</color>
<dimen name="text_font_size_large">26sp</dimen>
<dimen name="text_font_size_medium">20sp</dimen>
<dimen name="text_font_size_normal">17sp</dimen>
<dimen name="text_font_size_small">14sp</dimen>
<dimen name="text_font_size_super">33sp</dimen>
<plurals name="search_results_title">
<item quantity="one"><ns1:g example="1" id="number">%1$s</ns1:g> result for \"<ns1:g example="???" id="search">%2$s</ns1:g>\"</item>
<item quantity="other"><ns1:g example="15" id="number">%1$s</ns1:g> results for \"<ns1:g example="???" id="search">%2$s</ns1:g>\"</item>
</plurals>
<string name="alert_message_delete_folder">Confirm to delete folder and its notes?</string>
<string name="alert_message_delete_note">Confirm to delete this note?</string>
<string name="alert_message_delete_notes">Confirm to delete the selected %d notes?</string>
<string name="alert_title_delete">Delete selected notes</string>
<string name="app_name">Notes</string>
<string name="app_widget2x2">Notes 2x2</string>
<string name="app_widget4x4">Notes 4x4</string>
<string name="button_delete">Delete</string>
<string name="call_record_folder_name">Call notes</string>
<string name="datetime_dialog_cancel">cancel</string>
<string name="datetime_dialog_ok">set</string>
<string name="delete_remind_time_message">Delete reminder successfully</string>
<string name="error_note_empty_for_clock">Sorry, can not set clock on empty note</string>
<string name="error_note_empty_for_send_to_desktop">Sorry, can not send and empty note to home</string>
<string name="error_note_not_exist">The note is not exist</string>
<string name="error_sdcard_export">Export failed, please check SD card</string>
<string name="error_sdcard_unmounted">SD card busy, not available now</string>
<string name="error_sync_cancelled">Sync is canceled</string>
<string name="error_sync_internal">Sync failed, internal error occurs</string>
<string name="error_sync_network">Sync failed, please check network and account settings</string>
<string name="failed_sdcard_export">Export fail</string>
<string name="file_name_txt_format">notes_%s.txt</string>
<string name="file_path">/MIUI/notes/</string>
<string name="folder_exist">The folder %1$s exist, please rename</string>
<string name="format_date_ymd">yyyyMMdd</string>
<string name="format_datetime_mdhm">MMMd kk:mm</string>
<string name="format_exported_file_location">Export text file (%1$s) to SD (%2$s) directory</string>
<string name="format_folder_files_count">(%d)</string>
<string name="format_move_notes_to_folder">Have moved selected %1$d notes to %2$s folder</string>
<string name="hint_foler_name">Input name</string>
<string name="info_note_enter_desktop">Note added to home</string>
<string name="menu_alert">Remind me</string>
<string name="menu_create_folder">New Folder</string>
<string name="menu_delete">Delete</string>
<string name="menu_deselect_all">Deselect all</string>
<string name="menu_export_text">Export text</string>
<string name="menu_folder_change_name">Change folder name</string>
<string name="menu_folder_delete">Delete folder</string>
<string name="menu_folder_view">View folder</string>
<string name="menu_font_large">Large</string>
<string name="menu_font_normal">Medium</string>
<string name="menu_font_size">Font size</string>
<string name="menu_font_small">Small</string>
<string name="menu_font_super">Super</string>
<string name="menu_list_mode">Enter check list</string>
<string name="menu_move">Move to folder</string>
<string name="menu_move_parent_folder">Parent folder</string>
<string name="menu_normal_mode">Leave check list</string>
<string name="menu_remove_remind">Delete reminder</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_select_none">Nothing selected, the operation is invalid</string>
<string name="menu_select_title">%d selected</string>
<string name="menu_send_to_desktop">Send to home</string>
<string name="menu_setting">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_sync">Sync</string>
<string name="menu_sync_cancel">Cancel syncing</string>
<string name="menu_title_select_folder">Select folder</string>
<string name="note_alert_expired">Expired</string>
<string name="note_link_email">Send email</string>
<string name="note_link_other">Open map</string>
<string name="note_link_tel">Call</string>
<string name="note_link_web">Browse web</string>
<string name="notealert_enter">Take a look</string>
<string name="notealert_ok">Got it</string>
<string name="notelist_menu_new">Add note</string>
<string name="notelist_string_info">...</string>
<string name="preferences_account_summary">Sync notes with google task</string>
<string name="preferences_account_title">Sync account</string>
<string name="preferences_add_account">Add account</string>
<string name="preferences_bg_random_appear_title">New note background color random</string>
<string name="preferences_button_sync_cancel">Cancel syncing</string>
<string name="preferences_button_sync_immediately">Sync immediately</string>
<string name="preferences_dialog_change_account_title">Current account %1$s</string>
<string name="preferences_dialog_change_account_warn_msg">All sync related information will be deleted, which may result in duplicated items sometime</string>
<string name="preferences_dialog_select_account_tips">Please select a google account. Local notes will be synced with google task.</string>
<string name="preferences_dialog_select_account_title">Sync notes</string>
<string name="preferences_last_sync_time">Last sync time %1$s</string>
<string name="preferences_last_sync_time_format">yyyy-MM-dd hh:mm:ss</string>
<string name="preferences_menu_cancel">Cancel</string>
<string name="preferences_menu_change_account">Change sync account</string>
<string name="preferences_menu_remove_account">Remove sync account</string>
<string name="preferences_title">Settings</string>
<string name="preferences_toast_cannot_change_account">Cannot change the account because sync is in progress</string>
<string name="preferences_toast_success_set_accout">%1$s has been set as the sync account</string>
<string name="search">Notes</string>
<string name="search_hint">Search notes</string>
<string name="search_label">Searching Notes</string>
<string name="search_setting_description">Text in your notes</string>
<string name="set_remind_time_message">Set reminder</string>
<string name="success_sdcard_export">Export successful</string>
<string name="success_sync_account">Sync is successful with account %1$s</string>
<string name="sync_progress_init_list">Getting remote note list...</string>
<string name="sync_progress_login">Logging into %1$s...</string>
<string name="sync_progress_syncing">Synchronize local notes with Google Task...</string>
<string name="ticker_cancel">Sync is canceled</string>
<string name="ticker_fail">Sync is failed</string>
<string name="ticker_success">Sync is successful</string>
<string name="ticker_syncing">Syncing notes...</string>
<string name="widget_havenot_content">No associated note found, click to create associated note.</string>
<string name="widget_under_visit_mode">Privacy modecan not see note content</string>
<style name="HighlightTextAppearancePrimary">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@color/primary_text_dark</item>
</style>
<style name="HighlightTextAppearanceSecondary">
<item name="android:textSize">@dimen/text_font_size_small</item>
<item name="android:textColor">@color/secondary_text_dark</item>
</style>
<style name="NoteActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:displayOptions"/>
<item name="android:visibility">gone</item>
</style>
<style name="NoteTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/NoteActionBarStyle</item>
</style>
<style name="TextAppearanceLarge">
<item name="android:textSize">@dimen/text_font_size_large</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceMedium">
<item name="android:textSize">@dimen/text_font_size_medium</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceNormal">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearancePrimaryItem">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@color/primary_text_dark</item>
</style>
<style name="TextAppearanceSecondaryItem">
<item name="android:textSize">@dimen/text_font_size_small</item>
<item name="android:textColor">@color/secondary_text_dark</item>
</style>
<style name="TextAppearanceSuper">
<item name="android:textSize">@dimen/text_font_size_super</item>
<item name="android:textColorLink">#0000ff</item>
</style>
<style name="TextAppearanceUnderMenuIcon">
<item name="android:textSize">@dimen/text_font_size_normal</item>
<item name="android:textColor">@android:color/black</item>
</style>
</resources>

File diff suppressed because one or more lines are too long

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="androidTest$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTest\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="androidTest" generated-set="androidTest$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTest\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="androidTestDebug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTestDebug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="androidTestDebug" generated-set="androidTestDebug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTestDebug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\build\generated\res\resValues\androidTest\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\build\generated\res\resValues\androidTest\debug"/></dataSet><mergedItems/></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="androidTest" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTest\assets"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTestDebug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\build\intermediates\shader_assets\debugAndroidTest\out"/></dataSet></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="androidTest" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTest\jniLibs"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTestDebug\jniLibs"/></dataSet></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="androidTest" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTest\shaders"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\androidTestDebug\shaders"/></dataSet></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\main\assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\debug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\build\intermediates\shader_assets\debug\out"/></dataSet></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\debug\jniLibs"/></dataSet></merger>

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\AAA-CS-SDK\Destinations\app\src\debug\shaders"/></dataSet></merger>

@ -1,4 +0,0 @@
#Mon Nov 20 10:05:31 CST 2023
base.0=D\:\\AAA-CS-SDK\\Destinations\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex
path.0=classes.dex
renamed.0=classes.dex

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save