Compare commits

...

7 Commits

Author SHA1 Message Date
p4wcefykm fa40f861c1 Delete '1'
2 years ago
p4wcefykm 41bbc5ddce Add 1
2 years ago
rio 7531b00f65 1.2
2 years ago
rio fba6dce80a 1.2
2 years ago
rio df76afab41 1
2 years ago
rio a55db5f85b 文档 + 注释
2 years ago
rio cc6b969660 1
2 years ago

Binary file not shown.

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

@ -1,4 +1,4 @@
#Sun Nov 19 20:20:31 CST 2023
#Thu Dec 14 10:19:33 CST 2023
net.micode.notes.app-main-6\:/color/primary_text_dark.xml=F\:\\work\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat
net.micode.notes.app-main-6\:/color/secondary_text_dark.xml=F\:\\work\\Notes-master\\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=F\:\\work\\Notes-master\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.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>

@ -1,4 +1,4 @@
#Sun Nov 19 20:20:32 CST 2023
#Thu Dec 14 10:19:33 CST 2023
net.micode.notes.app-main-5\:/color/primary_text_dark.xml=F\:\\work\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\color\\primary_text_dark.xml
net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=F\:\\work\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\color\\secondary_text_dark.xml
net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=F\:\\work\\Notes-master\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_btn_set_color.png

@ -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>

@ -0,0 +1,2 @@
<?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="F:\work\Notes-master\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="F:\work\Notes-master\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="F:\work\Notes-master\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="F:\work\Notes-master\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="F:\work\Notes-master\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="F:\work\Notes-master\app\build\generated\res\resValues\androidTest\debug"/></dataSet><mergedItems/></merger>

@ -0,0 +1,2 @@
<?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="F:\work\Notes-master\app\src\androidTest\assets"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\work\Notes-master\app\src\androidTestDebug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\work\Notes-master\app\build\intermediates\shader_assets\debugAndroidTest\out"/></dataSet></merger>

@ -0,0 +1,2 @@
<?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="F:\work\Notes-master\app\src\androidTest\jniLibs"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\work\Notes-master\app\src\androidTestDebug\jniLibs"/></dataSet></merger>

@ -0,0 +1,2 @@
<?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="F:\work\Notes-master\app\src\androidTest\shaders"/></dataSet><dataSet config="androidTestDebug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\work\Notes-master\app\src\androidTestDebug\shaders"/></dataSet></merger>

@ -1,4 +1,4 @@
#Sat Dec 02 21:25:35 CST 2023
#Thu Dec 14 20:24:49 CST 2023
base.0=F\:\\work\\Notes-master\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex
path.0=classes.dex
renamed.0=classes.dex

@ -0,0 +1,4 @@
#Thu Dec 14 10:22:55 CST 2023
base.0=F\:\\work\\Notes-master\\app\\build\\intermediates\\dex\\debugAndroidTest\\mergeDexDebugAndroidTest\\classes.dex
path.0=classes.dex
renamed.0=classes.dex

@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="net.micode.notes.test" >
4
5 <uses-sdk
5-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:5:5-74
6 android:minSdkVersion="14"
6-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:5:15-41
7 android:targetSdkVersion="14" />
7-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:5:42-71
8
9 <instrumentation
9-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:11:5-15:66
10 android:name="android.test.InstrumentationTestRunner"
10-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:11:22-75
11 android:functionalTest="false"
11-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:14:22-52
12 android:handleProfiling="false"
12-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:13:22-53
13 android:label="Tests for net.micode.notes"
13-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:15:22-64
14 android:targetPackage="net.micode.notes" />
14-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:12:22-62
15
16 <application
16-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:7:5-9:19
17 android:debuggable="true"
18 android:extractNativeLibs="true" >
19 <uses-library android:name="android.test.runner" />
19-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:8:9-60
19-->F:\work\Notes-master\app\build\intermediates\tmp\manifest\androidTest\debug\tempFile1ProcessTestManifest5737614761422838372.xml:8:23-57
20 </application>
21
22</manifest>

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

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.micode.notes.test" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:functionalTest="false"
android:handleProfiling="false"
android:label="Tests for net.micode.notes"
android:targetPackage="net.micode.notes" />
<application
android:debuggable="true"
android:extractNativeLibs="true" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>

@ -0,0 +1,18 @@
{
"version": 3,
"artifactType": {
"type": "PACKAGED_MANIFESTS",
"kind": "Directory"
},
"applicationId": "net.micode.notes.test",
"variantName": "debugAndroidTest",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"outputFile": "AndroidManifest.xml"
}
],
"elementType": "File"
}

@ -1,5 +1,5 @@
欢迎使用MIUI便签
MIUI便签启动
很好的介绍来自福元路1号
无论从软件中直接添加还是从桌面拖出widgetMIUI便签能让你快速建立和保存便签
除了调整文字大小、便签背景、文件夹等基础功能外你会发现MIUI便签也提供了清单模式、便签提醒、软件加密、导出到SD卡、同步google task的高级功能让你的生活记录更加美好和安全

@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "PROCESSED_RES",
"kind": "Directory"
},
"applicationId": "net.micode.notes.test",
"variantName": "debugAndroidTest",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 0,
"versionName": "",
"outputFile": "resources.ap_"
}
],
"elementType": "File"
}

@ -0,0 +1 @@
{"enableV1Signing":true,"enableV2Signing":true,"enableV3Signing":false,"enableV4Signing":false}

@ -0,0 +1,4 @@
net.micode.notes.test.app-androidTest-0 F:\work\Notes-master\app\build\generated\res\resValues\androidTest\debug
net.micode.notes.test.app-mergeDebugAndroidTestResources-1 F:\work\Notes-master\app\build\intermediates\incremental\debugAndroidTest\mergeDebugAndroidTestResources\merged.dir
net.micode.notes.test.app-mergeDebugAndroidTestResources-2 F:\work\Notes-master\app\build\intermediates\incremental\debugAndroidTest\mergeDebugAndroidTestResources\stripped.dir
net.micode.notes.test.app-merged_res-3 F:\work\Notes-master\app\build\intermediates\merged_res\debugAndroidTest

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

@ -14,7 +14,7 @@ import java.util.HashMap;// 联系人类,用于管理联系人信息
public class Contact {
// 缓存联系人名称与电话号码的映射关系
private static HashMap<String, String> sContactCache;
// 类的标签用于Log输出
// 类的标签用于Log输出,缓存电话号码和联系人名称的对应关系
private static final String TAG = "Contact";
// SQL选择语句用于查询匹配电话号码的联系人信息
@ -72,18 +72,6 @@ public class Contact {
}
}
//用于与联系人相关数据交互的助手类。该类主要目的是从设备的联系人数据库中检索并缓存联系人名称。
//
//核心操作是 `getContact` 函数,它检查给定电话号码是否已缓存。如果没有,在联系人数据库中查找匹配的联系人,并将结果缓存以加速后续查询。
//
//以下是对这段代码的解释和注释:
//
//- `Context` 类是Android应用程序的环境信息接口通过它可以访问资源、启动活动或服务等。
//- `Cursor` 提供了遍历数据库查询结果集的接口。
//- `ContactsContract.CommonDataKinds.Phone` 和 `ContactsContract.Data` 提供了访问联系人相关数据的特定字段和常量。
//- `PhoneNumberUtils` 包含了一些与电话号码操作相关的辅助函数,如格式化电话号码。
//- `Log` 用于输出调试信息。
//- `HashMap<String, String>` 用于缓存电话号码和联系人名称的对应关系。
//
//在 `getContact` 函数中代码通过查询Android的联系人数据库来获取电话号码对应的显示名称。查询使用了特定的选择字符串 `CALLER_ID_SELECTION`,其中采用了匹配电话号码的过滤条件。
//
//当找到匹配的电话号码时,联系人名称会被放入缓存中并返回。如果没有找到匹配项或查询过程中发生异常,将会记录相应的日志。

@ -16,19 +16,21 @@
package net.micode.notes.gtask.data;
import android.database.Cursor;
import android.util.Log;
import android.database.Cursor;//操作SQLite数据库的对象
import android.util.Log;//Log是Android中用于记录日志的工具类。
import net.micode.notes.tool.GTaskStringUtils;
import org.json.JSONException;
import org.json.JSONObject;
import net.micode.notes.tool.GTaskStringUtils;//GTasks中用于处理GoogleTask字符串的工具类。
import org.json.JSONException;//用于处理JSON解析异常的异常类。
import org.json.JSONObject;//org.json包中用于处理JSON对象的类。
//处理与任务相关的元数据
public class MetaData extends Task {
private final static String TAG = MetaData.class.getSimpleName();
private String mRelatedGid = null;
//用于设置元数据信息。它接收一个gid和一个包含元数据信息的JSONObject作为参数
// 并将gid添加到元数据信息中。然后将元数据信息转换为字符串并将其设置为任务的备注信息。最后将任务名称设置为"Meta Note Name"。
public void setMeta(String gid, JSONObject metaInfo) {
try {
@ -39,16 +41,19 @@ public class MetaData extends Task {
setNotes(metaInfo.toString());
setName(GTaskStringUtils.META_NOTE_NAME);
}
//用于获取相关的gid。
public String getRelatedGid() {
return mRelatedGid;
}
//用于判断是否值得保存。如果备注信息不为null则返回true否则返回false。
@Override
public boolean isWorthSaving() {
return getNotes() != null;
}
//从远程的JSON对象中设置任务的内容。它首先调用父类的方法设置任务的内容
// 然后从备注信息中提取相关的gid并将其赋值给mRelatedGid。
@Override
public void setContentByRemoteJSON(JSONObject js) {
super.setContentByRemoteJSON(js);
@ -63,20 +68,25 @@ public class MetaData extends Task {
}
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public void setContentByLocalJSON(JSONObject js) {
// this function should not be called
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public JSONObject getLocalJSONFromContent() {
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public int getSyncAction(Cursor c) {
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
}
//用于处理与任务相关的元数据例如与Google任务相关的gid值。
//封装了操作元数据的方法并提供了一些辅助方法来获取和设置相关的gid值。

@ -20,6 +20,7 @@ import android.database.Cursor;
import org.json.JSONObject;
//包含了一些常量,用于表示同步操作的不同状态,初始化了成员变量的默认值
public abstract class Node {
public static final int SYNC_ACTION_NONE = 0;
@ -47,6 +48,8 @@ public abstract class Node {
private boolean mDeleted;
//定义了一些成员变量包括mGid节点的全局唯一标识符、mName节点的名称
// mLastModified节点的最后修改时间和mDeleted节点是否被删除
public Node() {
mGid = null;
mName = "";
@ -54,6 +57,7 @@ public abstract class Node {
mDeleted = false;
}
//定义了一些抽象方法
public abstract JSONObject getCreateAction(int actionId);
public abstract JSONObject getUpdateAction(int actionId);
@ -66,6 +70,9 @@ public abstract class Node {
public abstract int getSyncAction(Cursor c);
//set方法用于设置节点的属性值。
//get方法用于获取节点的属性值。
public void setGid(String gid) {
this.mGid = gid;
}
@ -99,3 +106,5 @@ public abstract class Node {
}
}
//抽象基类,用于表示各种类型的节点。定义了一些抽象方法和成员变量,以及节点属性的访问方法。

@ -34,7 +34,7 @@ import net.micode.notes.gtask.exception.ActionFailureException;
import org.json.JSONException;
import org.json.JSONObject;
//包含了一些常量和成员变量,用于表示数据库中的数据
public class SqlData {
private static final String TAG = SqlData.class.getSimpleName();
@ -96,7 +96,8 @@ public class SqlData {
mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN);
mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN);
}
//设置数据的内容。它接收一个JSONObject作为参数
//并从中获取数据的各个属性值,并将其设置到相应的成员变量中。
public void setContent(JSONObject js) throws JSONException {
long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID;
if (mIsCreate || mDataId != dataId) {
@ -129,7 +130,7 @@ public class SqlData {
}
mDataContentData3 = dataContentData3;
}
//获取数据的内容。它将数据的各个属性值封装到一个JSONObject对象中并返回该对象
public JSONObject getContent() throws JSONException {
if (mIsCreate) {
Log.e(TAG, "it seems that we haven't created this in database yet");
@ -144,6 +145,7 @@ public class SqlData {
return js;
}
//用于提交数据的更改。它根据数据的状态(是否已创建)和更改的属性值,执行插入或更新操作。
public void commit(long noteId, boolean validateVersion, long version) {
if (mIsCreate) {
@ -182,8 +184,10 @@ public class SqlData {
mDiffDataValues.clear();
mIsCreate = false;
}
//获取数据的ID。
public long getId() {
return mDataId;
}
}
//操作和管理数据库中的数据。它通过设置和获取数据的属性值,并根据数据的状态执行相应的数据库操作。在提交更改之前,
//可以使用getContent方法获取数据的内容并使用setId方法设置数据的ID。在调用commit方法后数据的更改将被保存到数据库中。

@ -37,8 +37,9 @@ import org.json.JSONObject;
import java.util.ArrayList;
//与GTask服务同步时代表一个便笺对象
public class SqlNote {
//定义静态常量和字段
private static final String TAG = SqlNote.class.getSimpleName();
private static final int INVALID_ID = -99999;
@ -86,12 +87,13 @@ public class SqlNote {
public static final int VERSION_COLUMN = 16;
// 上下文对象用于访问App的资源和数据库
private Context mContext;
// 用于与内容提供者通信的内容解析器
private ContentResolver mContentResolver;
// 用于标记便笺是否新创建的标志
private boolean mIsCreate;
// 便笺的各种属性 ID、日期、背景颜色等
private long mId;
private long mAlertDate;
@ -119,9 +121,9 @@ public class SqlNote {
private long mVersion;
private ContentValues mDiffNoteValues;
// 存放从便笺中不同数据内容的列表
private ArrayList<SqlData> mDataList;
//// 构造函数,用于初始化上下文和内容解析器,设置默认值
public SqlNote(Context context) {
mContext = context;
mContentResolver = context.getContentResolver();
@ -142,7 +144,7 @@ public class SqlNote {
mDiffNoteValues = new ContentValues();
mDataList = new ArrayList<SqlData>();
}
//另一个构造函数,通过游标初始化便笺对象
public SqlNote(Context context, Cursor c) {
mContext = context;
mContentResolver = context.getContentResolver();
@ -153,7 +155,7 @@ public class SqlNote {
loadDataContent();
mDiffNoteValues = new ContentValues();
}
// 第三个构造函数通过便笺ID加载便笺
public SqlNote(Context context, long id) {
mContext = context;
mContentResolver = context.getContentResolver();
@ -165,7 +167,7 @@ public class SqlNote {
mDiffNoteValues = new ContentValues();
}
// loadFromCursor方法通过游标加载便笺的信息
private void loadFromCursor(long id) {
Cursor c = null;
try {
@ -184,7 +186,7 @@ public class SqlNote {
c.close();
}
}
// loadDataContent方法加载便笺的数据内容
private void loadFromCursor(Cursor c) {
mId = c.getLong(ID_COLUMN);
mAlertDate = c.getLong(ALERTED_DATE_COLUMN);
@ -225,7 +227,7 @@ public class SqlNote {
c.close();
}
}
// setContent方法根据JSON对象设置便笺内容
public boolean setContent(JSONObject js) {
try {
JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE);
@ -358,7 +360,7 @@ public class SqlNote {
}
return true;
}
// getContent方法获取转换为JSON格式的便笺内容
public JSONObject getContent() {
try {
JSONObject js = new JSONObject();
@ -406,20 +408,20 @@ public class SqlNote {
}
return null;
}
// setParentId方法设置便笺的父ID
public void setParentId(long id) {
mParentId = id;
mDiffNoteValues.put(NoteColumns.PARENT_ID, id);
}
// setGtaskId方法设置同步时便笺关联的GTask ID
public void setGtaskId(String gid) {
mDiffNoteValues.put(NoteColumns.GTASK_ID, gid);
}
// setSyncId方法设置同步ID
public void setSyncId(long syncId) {
mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId);
mDiffNoteValues.put(NoteColumns.SYNC_ID,syncId);
}
// resetLocalModified方法重置本地修改标志
public void resetLocalModified() {
mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0);
}
@ -498,7 +500,6 @@ public class SqlNote {
loadFromCursor(mId);
if (mType == Notes.TYPE_NOTE)
loadDataContent();
mDiffNoteValues.clear();
mIsCreate = false;
}

@ -0,0 +1,988 @@
/*
* 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.app.Dialog;
import android.appwidget.AppWidgetManager;
import android.content.AsyncQueryHandler;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Display;
import android.view.HapticFeedbackConstants;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnTouchListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.gtask.remote.GTaskSyncService;
import net.micode.notes.model.WorkingNote;
import net.micode.notes.tool.BackupUtils;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser;
import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
public class NotesListActivity2 extends Activity implements OnClickListener, OnItemLongClickListener {
private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0;
private static final int FOLDER_LIST_QUERY_TOKEN = 1;
private static final int MENU_FOLDER_DELETE = 0;
private static final int MENU_FOLDER_VIEW = 1;
private static final int MENU_FOLDER_CHANGE_NAME = 2;
private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction";
private enum ListEditState {
NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER
};
private ListEditState mState;
private BackgroundQueryHandler mBackgroundQueryHandler;
private NotesListAdapter mNotesListAdapter;
private ListView mNotesListView;
private Button mAddNewNote;
private boolean mDispatch;
private int mOriginY;
private int mDispatchY;
private TextView mTitleBar;
private long mCurrentFolderId;
private ContentResolver mContentResolver;
private ModeCallback mModeCallBack;
private static final String TAG = "NotesListActivity";
public static final int NOTES_LISTVIEW_SCROLL_RATE = 30;
private NoteItemData mFocusNoteDataItem;
private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?";
private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>"
+ Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR ("
+ NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND "
+ NoteColumns.NOTES_COUNT + ">0)";
private final static int REQUEST_CODE_OPEN_NODE = 102;
private final static int REQUEST_CODE_NEW_NODE = 103;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_list);
initResources();
/**
* Insert an introduction when user firstly use this application
*/
setAppInfoFromRawRes();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK
&& (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) {
mNotesListAdapter.changeCursor(null);
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
private void setAppInfoFromRawRes() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) {
StringBuilder sb = new StringBuilder();
InputStream in = null;
try {
in = getResources().openRawResource(R.raw.introduction);
if (in != null) {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
char [] buf = new char[1024];
int len = 0;
while ((len = br.read(buf)) > 0) {
sb.append(buf, 0, len);
}
} else {
Log.e(TAG, "Read introduction file error");
return;
}
} catch (IOException e) {
e.printStackTrace();
return;
} finally {
if(in != null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER,
AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE,
ResourceParser.RED);
note.setWorkingText(sb.toString());
if (note.saveNote()) {
sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit();
} else {
Log.e(TAG, "Save introduction note error");
return;
}
}
}
@Override
protected void onStart() {
super.onStart();
startAsyncNotesListQuery();
}
private void initResources() {
mContentResolver = this.getContentResolver();
mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver());
mCurrentFolderId = Notes.ID_ROOT_FOLDER;
mNotesListView = (ListView) findViewById(R.id.notes_list);
mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null),
null, false);
mNotesListView.setOnItemClickListener(new OnListItemClickListener());
mNotesListView.setOnItemLongClickListener(this);
mNotesListAdapter = new NotesListAdapter(this);
mNotesListView.setAdapter(mNotesListAdapter);
mAddNewNote = (Button) findViewById(R.id.btn_new_note);
mAddNewNote.setOnClickListener(this);
mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener());
mDispatch = false;
mDispatchY = 0;
mOriginY = 0;
mTitleBar = (TextView) findViewById(R.id.tv_title_bar);
mState = ListEditState.NOTE_LIST;
mModeCallBack = new ModeCallback();
}
private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener {
private DropdownMenu mDropDownMenu;
private ActionMode mActionMode;
private MenuItem mMoveMenu;
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.note_list_options, menu);
menu.findItem(R.id.delete).setOnMenuItemClickListener(this);
mMoveMenu = menu.findItem(R.id.move);
if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER
|| DataUtils.getUserFolderCount(mContentResolver) == 0) {
mMoveMenu.setVisible(false);
} else {
mMoveMenu.setVisible(true);
mMoveMenu.setOnMenuItemClickListener(this);
}
mActionMode = mode;
mNotesListAdapter.setChoiceMode(true);
mNotesListView.setLongClickable(false);
mAddNewNote.setVisibility(View.GONE);
View customView = LayoutInflater.from(NotesListActivity2.this).inflate(
R.layout.note_list_dropdown_menu, null);
mode.setCustomView(customView);
mDropDownMenu = new DropdownMenu(NotesListActivity2.this,
(Button) customView.findViewById(R.id.selection_menu),
R.menu.note_list_dropdown);
mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){
public boolean onMenuItemClick(MenuItem item) {
mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected());
updateMenu();
return true;
}
});
return true;
}
private void updateMenu() {
int selectedCount = mNotesListAdapter.getSelectedCount();
// Update dropdown menu
String format = getResources().getString(R.string.menu_select_title, selectedCount);
mDropDownMenu.setTitle(format);
MenuItem item = mDropDownMenu.findItem(R.id.action_select_all);
if (item != null) {
if (mNotesListAdapter.isAllSelected()) {
item.setChecked(true);
item.setTitle(R.string.menu_deselect_all);
} else {
item.setChecked(false);
item.setTitle(R.string.menu_select_all);
}
}
}
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// TODO Auto-generated method stub
return false;
}
public void onDestroyActionMode(ActionMode mode) {
mNotesListAdapter.setChoiceMode(false);
mNotesListView.setLongClickable(true);
mAddNewNote.setVisibility(View.VISIBLE);
}
public void finishActionMode() {
mActionMode.finish();
}
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
boolean checked) {
mNotesListAdapter.setCheckedItem(position, checked);
updateMenu();
}
public boolean onMenuItemClick(MenuItem item) {
if (mNotesListAdapter.getSelectedCount() == 0) {
Toast.makeText(NotesListActivity2.this, getString(R.string.menu_select_none),
Toast.LENGTH_SHORT).show();
return true;
}
if(item.getItemId()== R.id.delete) {
AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity2.this);
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_notes,
mNotesListAdapter.getSelectedCount()));
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
batchDelete();
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
}
else if(item.getItemId()== R.id.move) {
startQueryDestinationFolders();
}
else
{
return false;
}
return true;
}
}
private class NewNoteOnTouchListener implements OnTouchListener {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
Display display = getWindowManager().getDefaultDisplay();
int screenHeight = display.getHeight();
int newNoteViewHeight = mAddNewNote.getHeight();
int start = screenHeight - newNoteViewHeight;
int eventY = start + (int) event.getY();
/**
* Minus TitleBar's height
*/
if (mState == ListEditState.SUB_FOLDER) {
eventY -= mTitleBar.getHeight();
start -= mTitleBar.getHeight();
}
/**
* HACKME:When click the transparent part of "New Note" button, dispatch
* the event to the list view behind this button. The transparent part of
* "New Note" button could be expressed by formula y=-0.12x+94Unit:pixel
* and the line top of the button. The coordinate based on left of the "New
* Note" button. The 94 represents maximum height of the transparent part.
* Notice that, if the background of the button changes, the formula should
* also change. This is very bad, just for the UI designer's strong requirement.
*/
if (event.getY() < (event.getX() * (-0.12) + 94)) {
View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1
- mNotesListView.getFooterViewsCount());
if (view != null && view.getBottom() > start
&& (view.getTop() < (start + 94))) {
mOriginY = (int) event.getY();
mDispatchY = eventY;
event.setLocation(event.getX(), mDispatchY);
mDispatch = true;
return mNotesListView.dispatchTouchEvent(event);
}
}
break;
}
case MotionEvent.ACTION_MOVE: {
if (mDispatch) {
mDispatchY += (int) event.getY() - mOriginY;
event.setLocation(event.getX(), mDispatchY);
return mNotesListView.dispatchTouchEvent(event);
}
break;
}
default: {
if (mDispatch) {
event.setLocation(event.getX(), mDispatchY);
mDispatch = false;
return mNotesListView.dispatchTouchEvent(event);
}
break;
}
}
return false;
}
};
private void startAsyncNotesListQuery() {
String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION
: NORMAL_SELECTION;
mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null,
Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] {
String.valueOf(mCurrentFolderId)
}, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC");
}
private final class BackgroundQueryHandler extends AsyncQueryHandler {
public BackgroundQueryHandler(ContentResolver contentResolver) {
super(contentResolver);
}
@Override
protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
switch (token) {
case FOLDER_NOTE_LIST_QUERY_TOKEN:
mNotesListAdapter.changeCursor(cursor);
break;
case FOLDER_LIST_QUERY_TOKEN:
if (cursor != null && cursor.getCount() > 0) {
showFolderListMenu(cursor);
} else {
Log.e(TAG, "Query folder failed");
}
break;
default:
return;
}
}
}
private void showFolderListMenu(Cursor cursor) {
AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity2.this);
builder.setTitle(R.string.menu_title_select_folder);
final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor);
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
DataUtils.batchMoveToFolder(mContentResolver,
mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which));
Toast.makeText(
NotesListActivity2.this,
getString(R.string.format_move_notes_to_folder,
mNotesListAdapter.getSelectedCount(),
adapter.getFolderName(NotesListActivity2.this, which)),
Toast.LENGTH_SHORT).show();
mModeCallBack.finishActionMode();
}
});
builder.show();
}
private void createNewNote() {
Intent intent = new Intent(this, NoteEditActivity.class);
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId);
this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE);
}
private void batchDelete() {
new AsyncTask<Void, Void, HashSet<AppWidgetAttribute>>() {
protected HashSet<AppWidgetAttribute> doInBackground(Void... unused) {
HashSet<AppWidgetAttribute> widgets = mNotesListAdapter.getSelectedWidget();
if (!isSyncMode()) {
// if not synced, delete notes directly
if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter
.getSelectedItemIds())) {
} else {
Log.e(TAG, "Delete notes error, should not happens");
}
} else {
// in sync mode, we'll move the deleted note into the trash
// folder
if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter
.getSelectedItemIds(), Notes.ID_TRASH_FOLER)) {
Log.e(TAG, "Move notes to trash folder error, should not happens");
}
}
return widgets;
}
@Override
protected void onPostExecute(HashSet<AppWidgetAttribute> widgets) {
if (widgets != null) {
for (AppWidgetAttribute widget : widgets) {
if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID
&& widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) {
updateWidget(widget.widgetId, widget.widgetType);
}
}
}
mModeCallBack.finishActionMode();
}
}.execute();
}
private void deleteFolder(long folderId) {
if (folderId == Notes.ID_ROOT_FOLDER) {
Log.e(TAG, "Wrong folder id, should not happen " + folderId);
return;
}
HashSet<Long> ids = new HashSet<Long>();
ids.add(folderId);
HashSet<AppWidgetAttribute> widgets = DataUtils.getFolderNoteWidget(mContentResolver,
folderId);
if (!isSyncMode()) {
// if not synced, delete folder directly
DataUtils.batchDeleteNotes(mContentResolver, ids);
} else {
// in sync mode, we'll move the deleted folder into the trash folder
DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER);
}
if (widgets != null) {
for (AppWidgetAttribute widget : widgets) {
if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID
&& widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) {
updateWidget(widget.widgetId, widget.widgetType);
}
}
}
}
private void openNode(NoteItemData data) {
Intent intent = new Intent(this, NoteEditActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.putExtra(Intent.EXTRA_UID, data.getId());
this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE);
}
private void openFolder(NoteItemData data) {
mCurrentFolderId = data.getId();
startAsyncNotesListQuery();
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
mState = ListEditState.CALL_RECORD_FOLDER;
mAddNewNote.setVisibility(View.GONE);
} else {
mState = ListEditState.SUB_FOLDER;
}
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
mTitleBar.setText(R.string.call_record_folder_name);
} else {
mTitleBar.setText(data.getSnippet());
}
mTitleBar.setVisibility(View.VISIBLE);
}
public void onClick(View v) {
/* switch (v.getId()) {
case R.id.btn_new_note:
createNewNote();
break;
default:
break;
}*/
if(v.getId()==R.id.btn_new_note) {
createNewNote();
}
}
private void showSoftInput() {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
}
private void hideSoftInput(View view) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
private void showCreateOrModifyFolderDialog(final boolean create) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null);
final EditText etName = (EditText) view.findViewById(R.id.et_foler_name);
showSoftInput();
if (!create) {
if (mFocusNoteDataItem != null) {
etName.setText(mFocusNoteDataItem.getSnippet());
builder.setTitle(getString(R.string.menu_folder_change_name));
} else {
Log.e(TAG, "The long click data item is null");
return;
}
} else {
etName.setText("");
builder.setTitle(this.getString(R.string.menu_create_folder));
}
builder.setPositiveButton(android.R.string.ok, null);
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
hideSoftInput(etName);
}
});
final Dialog dialog = builder.setView(view).show();
final Button positive = (Button)dialog.findViewById(android.R.id.button1);
positive.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
hideSoftInput(etName);
String name = etName.getText().toString();
if (DataUtils.checkVisibleFolderName(mContentResolver, name)) {
Toast.makeText(NotesListActivity2.this, getString(R.string.folder_exist, name),
Toast.LENGTH_LONG).show();
etName.setSelection(0, etName.length());
return;
}
if (!create) {
if (!TextUtils.isEmpty(name)) {
ContentValues values = new ContentValues();
values.put(NoteColumns.SNIPPET, name);
values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
values.put(NoteColumns.LOCAL_MODIFIED, 1);
mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID
+ "=?", new String[] {
String.valueOf(mFocusNoteDataItem.getId())
});
}
} else if (!TextUtils.isEmpty(name)) {
ContentValues values = new ContentValues();
values.put(NoteColumns.SNIPPET, name);
values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER);
mContentResolver.insert(Notes.CONTENT_NOTE_URI, values);
}
dialog.dismiss();
}
});
if (TextUtils.isEmpty(etName.getText())) {
positive.setEnabled(false);
}
/**
* When the name edit text is null, disable the positive button
*/
etName.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (TextUtils.isEmpty(etName.getText())) {
positive.setEnabled(false);
} else {
positive.setEnabled(true);
}
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}
@Override
public void onBackPressed() {
switch (mState) {
case SUB_FOLDER:
mCurrentFolderId = Notes.ID_ROOT_FOLDER;
mState = ListEditState.NOTE_LIST;
startAsyncNotesListQuery();
mTitleBar.setVisibility(View.GONE);
break;
case CALL_RECORD_FOLDER:
mCurrentFolderId = Notes.ID_ROOT_FOLDER;
mState = ListEditState.NOTE_LIST;
mAddNewNote.setVisibility(View.VISIBLE);
mTitleBar.setVisibility(View.GONE);
startAsyncNotesListQuery();
break;
case NOTE_LIST:
super.onBackPressed();
break;
default:
break;
}
}
private void updateWidget(int appWidgetId, int appWidgetType) {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
if (appWidgetType == Notes.TYPE_WIDGET_2X) {
intent.setClass(this, NoteWidgetProvider_2x.class);
} else if (appWidgetType == Notes.TYPE_WIDGET_4X) {
intent.setClass(this, NoteWidgetProvider_4x.class);
} else {
Log.e(TAG, "Unspported widget type");
return;
}
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
appWidgetId
});
sendBroadcast(intent);
setResult(RESULT_OK, intent);
}
private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if (mFocusNoteDataItem != null) {
menu.setHeaderTitle(mFocusNoteDataItem.getSnippet());
menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view);
menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete);
menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name);
}
}
};
@Override
public void onContextMenuClosed(Menu menu) {
if (mNotesListView != null) {
mNotesListView.setOnCreateContextMenuListener(null);
}
super.onContextMenuClosed(menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if (mFocusNoteDataItem == null) {
Log.e(TAG, "The long click data item is null");
return false;
}
switch (item.getItemId()) {
case MENU_FOLDER_VIEW:
openFolder(mFocusNoteDataItem);
break;
case MENU_FOLDER_DELETE:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_folder));
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
deleteFolder(mFocusNoteDataItem.getId());
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
break;
case MENU_FOLDER_CHANGE_NAME:
showCreateOrModifyFolderDialog(false);
break;
default:
break;
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
menu.clear();
if (mState == ListEditState.NOTE_LIST) {
getMenuInflater().inflate(R.menu.note_list, menu);
// set sync or sync_cancel
menu.findItem(R.id.menu_sync).setTitle(
GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync);
} else if (mState == ListEditState.SUB_FOLDER) {
getMenuInflater().inflate(R.menu.sub_folder, menu);
} else if (mState == ListEditState.CALL_RECORD_FOLDER) {
getMenuInflater().inflate(R.menu.call_record_folder, menu);
} else {
Log.e(TAG, "Wrong state:" + mState);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId()==R.id.menu_new_folder){
showCreateOrModifyFolderDialog(true);
}
else if(item.getItemId()==R.id.menu_export_text ){
exportNoteToText();
}
else if(item.getItemId()==R.id.menu_sync) {
if (isSyncMode()) {
if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) {
GTaskSyncService.startSync(this);
} else {
GTaskSyncService.cancelSync(this);
}
} else {
startPreferenceActivity();
}
}
else if(item.getItemId()==R.id.menu_setting){
startPreferenceActivity();
}
else if(item.getItemId()==R.id.menu_new_note) {
createNewNote();
}
else if(item.getItemId()==R.id.menu_search) {
onSearchRequested();
}
/*switch (item.getItemId()) {
case R.id.menu_new_folder: {
showCreateOrModifyFolderDialog(true);
break;
}
case R.id.menu_export_text: {
exportNoteToText();
break;
}
case R.id.menu_sync: {
if (isSyncMode()) {
if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) {
GTaskSyncService.startSync(this);
} else {
GTaskSyncService.cancelSync(this);
}
} else {
startPreferenceActivity();
}
break;
}
case R.id.menu_setting: {
startPreferenceActivity();
break;
}
case R.id.menu_new_note: {
createNewNote();
break;
}
case R.id.menu_search:
onSearchRequested();
break;
default:
break;
}*/
return true;
}
@Override
public boolean onSearchRequested() {
startSearch(null, false, null /* appData */, false);
return true;
}
private void exportNoteToText() {
final BackupUtils backup = BackupUtils.getInstance(NotesListActivity2.this);
new AsyncTask<Void, Void, Integer>() {
@Override
protected Integer doInBackground(Void... unused) {
return backup.exportToText();
}
@Override
protected void onPostExecute(Integer result) {
if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) {
AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity2.this);
builder.setTitle(NotesListActivity2.this
.getString(R.string.failed_sdcard_export));
builder.setMessage(NotesListActivity2.this
.getString(R.string.error_sdcard_unmounted));
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
} else if (result == BackupUtils.STATE_SUCCESS) {
AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity2.this);
builder.setTitle(NotesListActivity2.this
.getString(R.string.success_sdcard_export));
builder.setMessage(NotesListActivity2.this.getString(
R.string.format_exported_file_location, backup
.getExportedTextFileName(), backup.getExportedTextFileDir()));
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
} else if (result == BackupUtils.STATE_SYSTEM_ERROR) {
AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity2.this);
builder.setTitle(NotesListActivity2.this
.getString(R.string.failed_sdcard_export));
builder.setMessage(NotesListActivity2.this
.getString(R.string.error_sdcard_export));
builder.setPositiveButton(android.R.string.ok, null);
builder.show();
}
}
}.execute();
}
private boolean isSyncMode() {
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
}
private void startPreferenceActivity() {
Activity from = getParent() != null ? getParent() : this;
Intent intent = new Intent(from, NotesPreferenceActivity.class);
from.startActivityIfNeeded(intent, -1);
}
private class OnListItemClickListener implements OnItemClickListener {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (view instanceof NotesListItem) {
NoteItemData item = ((NotesListItem) view).getItemData();
if (mNotesListAdapter.isInChoiceMode()) {
if (item.getType() == Notes.TYPE_NOTE) {
position = position - mNotesListView.getHeaderViewsCount();
mModeCallBack.onItemCheckedStateChanged(null, position, id,
!mNotesListAdapter.isSelectedItem(position));
}
return;
}
switch (mState) {
case NOTE_LIST:
if (item.getType() == Notes.TYPE_FOLDER
|| item.getType() == Notes.TYPE_SYSTEM) {
openFolder(item);
} else if (item.getType() == Notes.TYPE_NOTE) {
openNode(item);
} else {
Log.e(TAG, "Wrong note type in NOTE_LIST");
}
break;
case SUB_FOLDER:
case CALL_RECORD_FOLDER:
if (item.getType() == Notes.TYPE_NOTE) {
openNode(item);
} else {
Log.e(TAG, "Wrong note type in SUB_FOLDER");
}
break;
default:
break;
}
}
}
}
private void startQueryDestinationFolders() {
String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?";
selection = (mState == ListEditState.NOTE_LIST) ? selection:
"(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
null,
Notes.CONTENT_NOTE_URI,
FoldersListAdapter.PROJECTION,
selection,
new String[] {
String.valueOf(Notes.TYPE_FOLDER),
String.valueOf(Notes.ID_TRASH_FOLER),
String.valueOf(mCurrentFolderId)
},
NoteColumns.MODIFIED_DATE + " DESC");
}
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (view instanceof NotesListItem) {
mFocusNoteDataItem = ((NotesListItem) view).getItemData();
if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) {
if (mNotesListView.startActionMode(mModeCallBack) != null) {
mModeCallBack.onItemCheckedStateChanged(null, position, id, true);
mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
} else {
Log.e(TAG, "startActionMode fails");
}
} else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) {
mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener);
}
}
return false;
}
}

@ -0,0 +1,58 @@
package net.micode.notes.ui;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import net.micode.notes.R;
public class Cypher implements View.OnClickListener{
//声明控件
private Button confirm;
private EditText passwd;
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setConteneView(R.layout.cypher);
//找到控件
confirm = findViewById(R.id.confirm);
passwd = findViewById(R.id.edittext);
//实现跳转
confirm.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = null;
intent = new Intent(NotesListActivity.this.NotesListActivity2.class);
startActivity(intent);
}
});
//匹配后跳转
confirm.setOnClickListener(this);
}
//密码匹配
public void onClick(View v){
//获取密码
String password = passwd.getText().toString();
Intent intent = null;
//弹出内容设置
String fail = "密码错误"
//一般调用锁屏密码这里使用123456
if(password.equals("123456")){
//匹配正确后,跳转到密码箱
Toast.makeText(getApplicationContext)
intent = new Intent(Cypher.this, NotesListActivity2.class)
startActivity(intent);
}
else{
//提示错误toast
Toast.makeText(getApplicationContext(),fail,Toast.LENGTH_SHORT).show();
}
}
@Override
public void onPointerCaptureChanged(boolean hasCapture){
}
}

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="@drawable/list_background"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="请输入密码"
android:textColor="#FFFFFF"
android:textSize="28sp"
android:gravity="center"
android:layout_marginTop="200dp"
/>
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:background="@android:color/black"
android:hint="密 码"
android:inputType="textPassword"
android:maxLines="1"
android:padding="5dp"
android:textColor="color/colorBlack"
android:textSize="16sp" />
<Button
android:id="@+id/confirm"
android:layout_width="243dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="确 认"
tools:ignore="InvalidId" />
</LinearLayout>

@ -1,5 +1,5 @@
欢迎使用MIUI便签
MIUI便签启动
很好的介绍来自福元路1号
无论从软件中直接添加还是从桌面拖出widgetMIUI便签能让你快速建立和保存便签
除了调整文字大小、便签背景、文件夹等基础功能外你会发现MIUI便签也提供了清单模式、便签提醒、软件加密、导出到SD卡、同步google task的高级功能让你的生活记录更加美好和安全

Loading…
Cancel
Save