├── app ├── .gitignore ├── libs │ ├── quicknotecore.aar │ └── bdasr_V3_20180801_d6f298a.jar ├── src │ ├── main │ │ ├── assets │ │ │ └── WakeUp.bin │ │ ├── jniLibs │ │ │ ├── armeabi │ │ │ │ ├── libvad.dnn.so │ │ │ │ ├── libbdSpilWakeup.so │ │ │ │ ├── libBaiduSpeechSDK.so │ │ │ │ ├── libbdEASRAndroid.so │ │ │ │ └── libbd_easr_s1_merge_normal_20151216.dat.so │ │ │ └── armeabi-v7a │ │ │ │ ├── libvad.dnn.so │ │ │ │ ├── libbdEASRAndroid.so │ │ │ │ ├── libbdSpilWakeup.so │ │ │ │ ├── libBaiduSpeechSDK.so │ │ │ │ └── libbd_easr_s1_merge_normal_20151216.dat.so │ │ ├── res │ │ │ ├── mipmap-mdpi │ │ │ │ ├── thumbtack.png │ │ │ │ ├── purchase_wx.jpg │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ │ ├── drawables.xml │ │ │ │ ├── arrays.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ └── dimens.xml │ │ │ ├── drawable-v21 │ │ │ │ ├── shape_bg_pop_window_input.xml │ │ │ │ └── ic_menu_share.xml │ │ │ ├── xml │ │ │ │ ├── file_provider_paths.xml │ │ │ │ └── preferences_setting.xml │ │ │ ├── layout │ │ │ │ ├── fragment_dialog_list.xml │ │ │ │ ├── content_main.xml │ │ │ │ ├── fragment_note_detail.xml │ │ │ │ ├── activity_note_detail.xml │ │ │ │ ├── view_pop_content_input.xml │ │ │ │ ├── fragment_main_page.xml │ │ │ │ ├── no_data_view.xml │ │ │ │ ├── popup_menu_attachment_item.xml │ │ │ │ ├── fragment_dialog_list_item.xml │ │ │ │ ├── activity_search.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── nav_header_main.xml │ │ │ │ ├── fragment_purchase.xml │ │ │ │ ├── activity_welcome.xml │ │ │ │ ├── fragment_about.xml │ │ │ │ ├── activity_voice_shorthand.xml │ │ │ │ ├── recycle_main_page_note_item.xml │ │ │ │ ├── activity_lock.xml │ │ │ │ ├── activity_freehand.xml │ │ │ │ └── app_bar_main.xml │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── values-night │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ ├── drawable │ │ │ │ ├── check_update_btn_bg.xml │ │ │ │ ├── ic_done_white_24dp.xml │ │ │ │ ├── ic_sort_white_24dp.xml │ │ │ │ ├── ic_waste_basket.xml │ │ │ │ ├── ic_auto_update_24dp.xml │ │ │ │ ├── ic_photo_black_24dp.xml │ │ │ │ ├── ic_rename_black_24dp.xml │ │ │ │ ├── ic_record_white_24dp.xml │ │ │ │ ├── ic_revert_unactivated_24dp.xml │ │ │ │ ├── ic_all_notes.xml │ │ │ │ ├── ic_delete_forever_24dp.xml │ │ │ │ ├── ic_revert_activated_24dp.xml │ │ │ │ ├── ic_revocation_unactivated_24dp.xml │ │ │ │ ├── ic_recent_edit.xml │ │ │ │ ├── ic_revocation_activated_24dp.xml │ │ │ │ ├── ic_text_note_white_24dp.xml │ │ │ │ ├── ic_attachment_white_24dp.xml │ │ │ │ ├── ic_search_white_24dp.xml │ │ │ │ ├── ic_record_black_24dp.xml │ │ │ │ ├── ic_delete_black_24dp.xml │ │ │ │ ├── ic_encrypt_black_24dp.xml │ │ │ │ ├── ic_record_active_24dp.xml │ │ │ │ ├── ic_attachment_white_vertical_24dp.xml │ │ │ │ ├── ic_brush_activated_24dp.xml │ │ │ │ ├── ic_brush_unactivated_24dp.xml │ │ │ │ ├── ic_restore_black_24dp.xml │ │ │ │ ├── ic_camera_white_24dp.xml │ │ │ │ ├── ic_freehand_white_24dp.xml │ │ │ │ ├── ic_freehand_black_24dp.xml │ │ │ │ ├── ic_settings.xml │ │ │ │ ├── ic_language_24dp.xml │ │ │ │ ├── ic_default_avatar_24dp.xml │ │ │ │ ├── ic_gesture_24dp.xml │ │ │ │ ├── ic_donate_24dp.xml │ │ │ │ ├── ic_about_24dp.xml │ │ │ │ ├── ic_recommend_24dp.xml │ │ │ │ ├── ic_eraser_unactivated_24dp.xml │ │ │ │ ├── ic_eraser_activated_24dp.xml │ │ │ │ ├── ic_skin_24dp.xml │ │ │ │ ├── ic_app.xml │ │ │ │ └── ic_app_welcome.xml │ │ │ ├── drawable-night │ │ │ │ ├── ic_revert_activated_24dp.xml │ │ │ │ ├── ic_auto_update_24dp.xml │ │ │ │ ├── ic_revocation_activated_24dp.xml │ │ │ │ ├── ic_record_active_24dp.xml │ │ │ │ ├── ic_brush_activated_24dp.xml │ │ │ │ ├── ic_language_24dp.xml │ │ │ │ ├── ic_gesture_24dp.xml │ │ │ │ ├── ic_donate_24dp.xml │ │ │ │ ├── ic_about_24dp.xml │ │ │ │ ├── ic_recommend_24dp.xml │ │ │ │ ├── ic_eraser_activated_24dp.xml │ │ │ │ └── ic_skin_24dp.xml │ │ │ ├── menu │ │ │ │ ├── menu_toolbar_sort.xml │ │ │ │ ├── activity_main_drawer.xml │ │ │ │ ├── menu_search_activity.xml │ │ │ │ ├── menu_toolbar_detail.xml │ │ │ │ └── menu_toolbar_common.xml │ │ │ └── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ │ └── tech │ │ │ │ └── huqi │ │ │ │ └── quicknote │ │ │ │ ├── adapter │ │ │ │ ├── base │ │ │ │ │ ├── OnItemClickListener.java │ │ │ │ │ ├── OnItemLongClickListener.java │ │ │ │ │ ├── IAdapterItem.java │ │ │ │ │ └── BaseAdapter.java │ │ │ │ ├── PopUpMenuAdapter.java │ │ │ │ ├── MainPageAdapter.java │ │ │ │ └── MainPageAdapter2.java │ │ │ │ ├── QuickNoteApplication.java │ │ │ │ ├── util │ │ │ │ ├── TimeUtil.java │ │ │ │ ├── QuickNoteContextWrapper.java │ │ │ │ ├── AttachmentHelper.java │ │ │ │ ├── PopupWindowFactory.java │ │ │ │ ├── DialogFactory.java │ │ │ │ ├── SharedPreferencesUtil.java │ │ │ │ └── BitmapUtil.java │ │ │ │ ├── entity │ │ │ │ ├── Attachment.java │ │ │ │ └── Note.java │ │ │ │ ├── ui │ │ │ │ ├── fragment │ │ │ │ │ ├── PurchaseFragment.java │ │ │ │ │ ├── RecentEditFragment.java │ │ │ │ │ ├── NoteDetailFragment.java │ │ │ │ │ ├── AboutFragment.java │ │ │ │ │ ├── WasteBasketFragment.java │ │ │ │ │ └── AllNoteFragment.java │ │ │ │ └── activity │ │ │ │ │ ├── WelcomeActivity.java │ │ │ │ │ ├── BaseActivity.java │ │ │ │ │ ├── SearchActivity.java │ │ │ │ │ └── VoiceShorthandActivity.java │ │ │ │ ├── config │ │ │ │ ├── Constants.java │ │ │ │ └── QuickNote.java │ │ │ │ ├── db │ │ │ │ └── DatabaseHelper.java │ │ │ │ └── view │ │ │ │ └── ItemListDialogFragment.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── tech │ │ │ └── huqi │ │ │ └── quicknote │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── tech │ │ └── huqi │ │ └── quicknote │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── _config.yml ├── settings.gradle ├── screenshort ├── download.png └── screen_short_all.jpg ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── README.md └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /screenshort/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/screenshort/download.png -------------------------------------------------------------------------------- /app/libs/quicknotecore.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/libs/quicknotecore.aar -------------------------------------------------------------------------------- /app/src/main/assets/WakeUp.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/assets/WakeUp.bin -------------------------------------------------------------------------------- /screenshort/screen_short_all.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/screenshort/screen_short_all.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | -------------------------------------------------------------------------------- /app/libs/bdasr_V3_20180801_d6f298a.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/libs/bdasr_V3_20180801_d6f298a.jar -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/thumbtack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-mdpi/thumbtack.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/purchase_wx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-mdpi/purchase_wx.jpg -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbdEASRAndroid.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi-v7a/libbdEASRAndroid.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbdSpilWakeup.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi-v7a/libbdSpilWakeup.so -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libbd_easr_s1_merge_normal_20151216.dat.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HuTianQi/QuickNote/HEAD/app/src/main/jniLibs/armeabi-v7a/libbd_easr_s1_merge_normal_20151216.dat.so -------------------------------------------------------------------------------- /app/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- 1 | 2 | @android:drawable/ic_menu_share 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/shape_bg_pop_window_input.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Apr 06 17:34:39 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/xml/file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 11 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/adapter/base/OnItemClickListener.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.adapter.base; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by hzhuqi on 2019/4/10 7 | */ 8 | public interface OnItemClickListener { 9 | void onItemClick(View v, int position); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_dialog_list.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/adapter/base/OnItemLongClickListener.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.adapter.base; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by hzhuqi on 2019/4/10 7 | */ 8 | public interface OnItemLongClickListener { 9 | void onItemLongClick(View v, int position); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #212121 4 | @color/colorPrimary 5 | #3dadf9 6 | @color/colorPrimary 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/check_update_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_done_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/adapter/base/IAdapterItem.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.adapter.base; 2 | 3 | /** 4 | * Created by hzhuqi on 2019/4/10 5 | */ 6 | public interface IAdapterItem { 7 | /** 8 | * 将数据data绑定到position位置的View上 9 | * 10 | * @param data 11 | * @param position 12 | */ 13 | void bindDataToView(T data, int position); 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_sort_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/QuickNoteApplication.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote; 2 | 3 | import android.app.Application; 4 | 5 | import tech.huqi.quicknote.config.QuickNote; 6 | 7 | /** 8 | * Created by hzhuqi on 2019/4/15 9 | */ 10 | public class QuickNoteApplication extends Application { 11 | 12 | @Override 13 | public void onCreate() { 14 | super.onCreate(); 15 | QuickNote.init(this); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_waste_basket.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_auto_update_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_photo_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/test/java/tech/huqi/quicknote/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_rename_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_record_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_revert_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_revert_unactivated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_auto_update_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_all_notes.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_forever_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_revert_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_revocation_unactivated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_revocation_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_recent_edit.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_revocation_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_text_note_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_attachment_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_search_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_record_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_delete_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/util/TimeUtil.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.util; 2 | 3 | /** 4 | * Created by hzhuqi on 2019/4/15 5 | */ 6 | 7 | import java.text.SimpleDateFormat; 8 | import java.util.Date; 9 | 10 | /** 11 | * 和时间以及日期操作相关的工具类 12 | */ 13 | public class TimeUtil { 14 | 15 | /** 16 | * 根据指定格式format返回当前系统时间 17 | * 18 | * @param format 19 | * @return 20 | */ 21 | public static String getDataTime(String format) { 22 | SimpleDateFormat df = new SimpleDateFormat(format); 23 | return df.format(new Date()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_encrypt_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_record_active_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_record_active_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_attachment_white_vertical_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-night/ic_brush_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brush_activated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_brush_unactivated_24dp.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_restore_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_camera_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_note_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_note_detail.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/view_pop_content_input.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # QuickNote(随心记) 2 | 3 | ## 前言 4 | 一直想开发一个个人App,但是一方面工作太忙没时间,另一方面方向不好确定,在今年3月份的时候看到了一则关于字节跳动(今日头条母公司,下文简称头条)收购幕布的消息,当时很好奇,幕布是个什么鬼?为何头条会收购它,然后第一次了解了下幕布,是一个办公软件,下载体验了下,被其一键生成思维导图功能给吸引了,很好奇它是怎么实现的,原本想着破解它,看它的实现思路。结果发现里面大量用到了RN,说明里面的一些关键的富文本编辑功能很可能是js端实现的,仔细想想也对,幕布作为一个支持PC客户端,移动端(Android/IOS)以及Web端的办公软件,不论是从开发成本还是维护成本上来考虑,这些功能使用JS实现能够尽可能做到多端复用的效果。另一方面富文本编辑功能在JS端已经有相对成熟的框架,纯移动端实现的话一般是EditText + Span方案或者多布局方案,但这2种方案都存在一个很大的缺陷就是不够灵活,开发与维护成本高。因为核心功能是使用JS代码来实现的,所以就没破解的欲望了,但是方向却因此确定下来了就是做一个个人笔记类App,大概花了一个月的时间(主要是非工作日的碎片化时间)开发了以下这个1.0.0版本,考虑到以后可能会逐步增加更多功能以及考虑上架,因此以下开源版功能及代码做了精简 5 | 6 | ## 简约好用的笔记类App 7 | 8 | > 这是一款简约好用的笔记App,支持图文混淆,手写涂鸦,语音速记等高级功能。贴心的最近编辑,废纸篓,夜间模式,排序,搜索,误删恢复,手势密码等功能无不透露着作者对用户使用体验的重视与追求! 9 | 10 | ![screen_short_all](./screenshort/screen_short_all.jpg) 11 | 12 | ## 开源版扫码下载 13 | 因平时工作较忙,正式版业余时间开发进度较慢,还未上线,可扫码体验开源版 14 | ![download](./screenshort/download.png) -------------------------------------------------------------------------------- /app/src/androidTest/java/tech/huqi/quicknote/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("tech.huqi.quicknote", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_main_page.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @string/preference_theme_entry_default 5 | @string/preference_theme_entry_night 6 | 7 | 8 | @string/theme_value_default 9 | @string/theme_value_night 10 | 11 | 12 | 13 | @string/preference_lang_entry_chinese 14 | @string/preference_lang_entry_english 15 | 16 | 17 | 18 | @string/lang_value_chinese 19 | @string/lang_value_english 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3dadf9 4 | #98d0f7 5 | #3dadf9 6 | 7 | 8 | #FFFFFFFF 9 | #F8EFF2 10 | #8a8a8a 11 | #3dadf9 12 | 13 | 14 | #999999 15 | #EDEDED 16 | 17 | 18 | #666666 19 | #F3323B 20 | @color/colorPrimary 21 | @color/gesture_inner_color 22 | @color/gesture_border_color_error 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/no_data_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | 14 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_freehand_white_24dp.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/popup_menu_attachment_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_dialog_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_search.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_freehand_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/entity/Attachment.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.entity; 2 | 3 | import android.net.Uri; 4 | 5 | /** 6 | * Created by hzhuqi on 2019/4/14 7 | */ 8 | public class Attachment { 9 | /** 10 | * 附件的Uri描述 11 | */ 12 | private Uri uri; 13 | /** 14 | * 附件的路径 15 | */ 16 | private String path; 17 | /** 18 | * 附件类型 19 | */ 20 | private int type; 21 | 22 | public Attachment() { 23 | } 24 | 25 | public Attachment(Uri uri, String path, int type) { 26 | this.uri = uri; 27 | this.path = path; 28 | this.type = type; 29 | } 30 | 31 | public Uri getUri() { 32 | return uri; 33 | } 34 | 35 | public void setUri(Uri uri) { 36 | this.uri = uri; 37 | } 38 | 39 | public String getPath() { 40 | return path; 41 | } 42 | 43 | public void setPath(String path) { 44 | this.path = path; 45 | } 46 | 47 | public int getType() { 48 | return type; 49 | } 50 | 51 | public void setType(int type) { 52 | this.type = type; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_toolbar_sort.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/tech/huqi/quicknote/ui/fragment/PurchaseFragment.java: -------------------------------------------------------------------------------- 1 | package tech.huqi.quicknote.ui.fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.NonNull; 5 | import android.support.annotation.Nullable; 6 | import android.support.v4.app.Fragment; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | 11 | import tech.huqi.quicknote.R; 12 | 13 | /** 14 | * Created by hzhuqi on 2019/4/6 15 | */ 16 | public class PurchaseFragment extends Fragment { 17 | 18 | @Nullable 19 | @Override 20 | public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 21 | return inflater.inflate(R.layout.fragment_purchase, container, false); 22 | } 23 | 24 | @Override 25 | public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 26 | super.onViewCreated(view, savedInstanceState); 27 | initView(view); 28 | initData(); 29 | } 30 | 31 | private void initView(View root) { 32 | 33 | } 34 | 35 | private void initData() { 36 | 37 | } 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 16 | 17 | 20 | 21 | 24 | 25 |