├── .gitignore ├── .idea ├── assetWizardSettings.xml ├── caches │ ├── build_file_checksums.ser │ └── gradle_models.ser ├── codeStyles │ └── Project.xml ├── compiler.xml ├── encodings.xml ├── gradle.xml ├── jarRepositories.xml ├── misc.xml ├── runConfigurations.xml └── vcs.xml ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── debug │ ├── app-debug.apk │ └── output.json ├── libs │ └── bdasr_V3_20180801_d6f298a.jar ├── proguard-rules.pro ├── release │ ├── app-release.apk │ └── output.json └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── lulin │ │ └── todolist │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── default_head.png │ ├── ic_launcher-web.png │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── lulin │ │ │ └── todolist │ │ │ ├── Activity │ │ │ ├── AboutActivity.java │ │ │ ├── BasicActivity.java │ │ │ ├── ClockActivity.java │ │ │ ├── EditTodoActivity.java │ │ │ ├── LoginActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── NewClockActivity.java │ │ │ ├── NewTodoActivity.java │ │ │ ├── RegisterActivity.java │ │ │ ├── ScheduleActivity.java │ │ │ ├── SettingsActivity.java │ │ │ ├── SplashActivity.java │ │ │ └── UserDataActivity.java │ │ │ ├── Adapter │ │ │ ├── ClockRecyclerViewAdapter.java │ │ │ ├── FragmentAdapter.java │ │ │ ├── RankRecyclerViewAdapter.java │ │ │ └── TodoRecyclerViewAdapter.java │ │ │ ├── AppBarLayoutOverScrollViewBehavior.java │ │ │ ├── Bean │ │ │ ├── App.java │ │ │ ├── BaiDuVoice.java │ │ │ ├── Clock.java │ │ │ ├── Todos.java │ │ │ ├── Tomato.java │ │ │ └── User.java │ │ │ ├── CircleImageInUsercBehavior.java │ │ │ ├── DBHelper │ │ │ └── MyDatabaseHelper.java │ │ │ ├── Dao │ │ │ ├── ClockDao.java │ │ │ └── ToDoDao.java │ │ │ ├── Fragment │ │ │ ├── ClockFragment.java │ │ │ ├── RankFragment.java │ │ │ ├── SettingsFragment.java │ │ │ ├── StatisticFragment.java │ │ │ └── TodoFragment.java │ │ │ ├── Interface │ │ │ ├── ItemTouchHelperAdapter.java │ │ │ ├── ItemTouchHelperViewHolder.java │ │ │ └── OnStartDragListener.java │ │ │ ├── Interpolator.java │ │ │ ├── Receiver │ │ │ ├── AlarmReceiver.java │ │ │ ├── BootUpReceiver.java │ │ │ └── NetworkReceiver.java │ │ │ ├── Service │ │ │ ├── AlarmService.java │ │ │ ├── ClockService.java │ │ │ └── FocusService.java │ │ │ ├── SpacesItemDecoration.java │ │ │ ├── Utils │ │ │ ├── BitmapUtils.java │ │ │ ├── ClockItemTouchHelperCallback.java │ │ │ ├── CountDownTimer.java │ │ │ ├── FileUtils.java │ │ │ ├── NetWorkUtils.java │ │ │ ├── PermissionPageUtils.java │ │ │ ├── PhotoUtils.java │ │ │ ├── RecyclerItemClickListener.java │ │ │ ├── SPUtils.java │ │ │ ├── SeekBarPreference.java │ │ │ ├── Sound.java │ │ │ ├── TimeFormatUtil.java │ │ │ ├── ToDoUtils.java │ │ │ ├── ToastUtils.java │ │ │ ├── TodoItemTouchHelperCallback.java │ │ │ ├── TomatoUtils.java │ │ │ └── WakeLockHelper.java │ │ │ └── Widget │ │ │ ├── CircleImageView.java │ │ │ ├── ClockApplication.java │ │ │ ├── ClockProgressBar.java │ │ │ ├── ClockView.java │ │ │ ├── ColorFilterToolBar.java │ │ │ ├── DisInterceptNestedScrollView.java │ │ │ ├── RippleWrapper.java │ │ │ └── SmileView.java │ ├── jniLibs │ │ ├── arm64-v8a │ │ │ ├── libBaiduSpeechSDK.so │ │ │ └── libvad.dnn.so │ │ ├── armeabi-v7a │ │ │ ├── libBaiduSpeechSDK.so │ │ │ └── libvad.dnn.so │ │ └── armeabi │ │ │ ├── libBaiduSpeechSDK.so │ │ │ └── libvad.dnn.so │ └── res │ │ ├── anim │ │ ├── actionsheet_dialog_in.xml │ │ └── actionsheet_dialog_out.xml │ │ ├── drawable-hdpi │ │ ├── ic_alarm_on_white_24dp.png │ │ ├── ic_error_outline_black_18dp.png │ │ ├── ic_exit_to_app_black_24dp.png │ │ ├── ic_info_outline_black_24dp.png │ │ ├── ic_insert_chart_black_24dp.png │ │ ├── ic_laptop_mac_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── ic_local_cafe_white_24dp.png │ │ ├── ic_pause_white_24dp.png │ │ ├── ic_play_arrow_white_24dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_stat_notify.png │ │ ├── ic_stop_white_24dp.png │ │ └── ic_weekend_white_24dp.png │ │ ├── drawable-mdpi │ │ ├── ic_alarm_on_white_24dp.png │ │ ├── ic_error_outline_black_18dp.png │ │ ├── ic_exit_to_app_black_24dp.png │ │ ├── ic_info_outline_black_24dp.png │ │ ├── ic_insert_chart_black_24dp.png │ │ ├── ic_laptop_mac_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── ic_local_cafe_white_24dp.png │ │ ├── ic_pause_white_24dp.png │ │ ├── ic_play_arrow_white_24dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_stat_notify.png │ │ ├── ic_stop_white_24dp.png │ │ └── ic_weekend_white_24dp.png │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable-xhdpi │ │ ├── ic_alarm_on_white_24dp.png │ │ ├── ic_error_outline_black_18dp.png │ │ ├── ic_exit_to_app_black_24dp.png │ │ ├── ic_info_outline_black_24dp.png │ │ ├── ic_insert_chart_black_24dp.png │ │ ├── ic_laptop_mac_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── ic_local_cafe_white_24dp.png │ │ ├── ic_pause_white_24dp.png │ │ ├── ic_play_arrow_white_24dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_stat_notify.png │ │ ├── ic_stop_white_24dp.png │ │ └── ic_weekend_white_24dp.png │ │ ├── drawable-xxhdpi │ │ ├── guide_delete.png │ │ ├── guide_head.png │ │ ├── guide_menu.png │ │ ├── guide_new.png │ │ ├── ic_alarm_on_white_24dp.png │ │ ├── ic_error_outline_black_18dp.png │ │ ├── ic_exit_to_app_black_24dp.png │ │ ├── ic_info_outline_black_24dp.png │ │ ├── ic_insert_chart_black_24dp.png │ │ ├── ic_laptop_mac_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── ic_local_cafe_white_24dp.png │ │ ├── ic_pause_white_24dp.png │ │ ├── ic_play_arrow_white_24dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_stat_notify.png │ │ ├── ic_stop_white_24dp.png │ │ └── ic_weekend_white_24dp.png │ │ ├── drawable-xxxhdpi │ │ ├── ic_alarm_on_white_24dp.png │ │ ├── ic_error_outline_black_18dp.png │ │ ├── ic_exit_to_app_black_24dp.png │ │ ├── ic_info_outline_black_24dp.png │ │ ├── ic_insert_chart_black_24dp.png │ │ ├── ic_laptop_mac_white_24dp.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ ├── ic_local_cafe_white_24dp.png │ │ ├── ic_pause_white_24dp.png │ │ ├── ic_play_arrow_white_24dp.png │ │ ├── ic_settings_black_24dp.png │ │ ├── ic_stat_notify.png │ │ ├── ic_stop_white_24dp.png │ │ └── ic_weekend_white_24dp.png │ │ ├── drawable │ │ ├── add_white.png │ │ ├── back.png │ │ ├── c_img1.png │ │ ├── c_img2.png │ │ ├── c_img3.png │ │ ├── c_img4.png │ │ ├── c_img5.png │ │ ├── c_img6.png │ │ ├── c_img7.png │ │ ├── circle_bg.xml │ │ ├── circle_bg_n.xml │ │ ├── circle_bg_p.xml │ │ ├── default_photo.png │ │ ├── delete1.png │ │ ├── designer1.png │ │ ├── designer2.png │ │ ├── designer3.png │ │ ├── designer4.png │ │ ├── divider.xml │ │ ├── do_it.png │ │ ├── done.png │ │ ├── edit.png │ │ ├── github.png │ │ ├── ic_about.png │ │ ├── ic_assignment_black_48dp.png │ │ ├── ic_back.png │ │ ├── ic_back_white.png │ │ ├── ic_bird.png │ │ ├── ic_clock_black_48dp.png │ │ ├── ic_edit.png │ │ ├── ic_fire.png │ │ ├── ic_img1.png │ │ ├── ic_img10.png │ │ ├── ic_img11.png │ │ ├── ic_img12.png │ │ ├── ic_img2.png │ │ ├── ic_img3.png │ │ ├── ic_img4.png │ │ ├── ic_img5.png │ │ ├── ic_img6.png │ │ ├── ic_img7.png │ │ ├── ic_img8.png │ │ ├── ic_img9.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_background.xml │ │ ├── ic_marker.xml │ │ ├── ic_menu_camera.xml │ │ ├── ic_menu_gallery.xml │ │ ├── ic_menu_manage.xml │ │ ├── ic_menu_send.xml │ │ ├── ic_menu_share.xml │ │ ├── ic_menu_slideshow.xml │ │ ├── ic_music.png │ │ ├── ic_music_off.png │ │ ├── ic_rain.png │ │ ├── ic_river.png │ │ ├── ic_setting.png │ │ ├── ic_voice.png │ │ ├── ic_voice_fill.png │ │ ├── ic_wave.png │ │ ├── image_button_click.xml │ │ ├── img_1.png │ │ ├── img_2.png │ │ ├── img_3.png │ │ ├── img_4.png │ │ ├── img_5.png │ │ ├── img_6.png │ │ ├── img_7.png │ │ ├── img_8.png │ │ ├── layout_corner.xml │ │ ├── layout_n.xml │ │ ├── layout_p.xml │ │ ├── layout_selector.xml │ │ ├── login_bg.png │ │ ├── music_bt_bg.xml │ │ ├── music_bt_n.xml │ │ ├── music_bt_p.xml │ │ ├── play_clock.png │ │ ├── project_detail_cir.png │ │ ├── radius_drawable_bg.xml │ │ ├── rotate_layout_bg.xml │ │ ├── round.xml │ │ ├── shape.xml │ │ ├── shape1.xml │ │ ├── side_nav_bar.xml │ │ ├── team_logo.png │ │ ├── text_bg.xml │ │ ├── text_press.xml │ │ └── translucent.xml │ │ ├── layout │ │ ├── activity_basic.xml │ │ ├── activity_clock.xml │ │ ├── activity_edit_todo.xml │ │ ├── activity_login.xml │ │ ├── activity_main.xml │ │ ├── activity_new_clock.xml │ │ ├── activity_new_todo.xml │ │ ├── activity_register.xml │ │ ├── activity_schedule.xml │ │ ├── activity_settings.xml │ │ ├── activity_user_data.xml │ │ ├── app_bar_main.xml │ │ ├── content_main.xml │ │ ├── content_new_clock.xml │ │ ├── content_new_todo.xml │ │ ├── content_user_data.xml │ │ ├── dialog_edit.xml │ │ ├── dialog_focus.xml │ │ ├── dialog_music.xml │ │ ├── dialog_reset_pwd.xml │ │ ├── dialog_voice.xml │ │ ├── fragment_clock.xml │ │ ├── fragment_rank.xml │ │ ├── fragment_statistic.xml │ │ ├── fragment_todo.xml │ │ ├── guide_main.xml │ │ ├── guide_user_info.xml │ │ ├── item_clock.xml │ │ ├── item_rank.xml │ │ ├── item_todo.xml │ │ ├── layout_uc_head_middle.xml │ │ ├── login_input_layout.xml │ │ ├── login_layout_progress.xml │ │ ├── login_title_layout.xml │ │ ├── nav_header_main.xml │ │ ├── pop_menu.xml │ │ ├── register_input_layout.xml │ │ ├── register_layout_progress.xml │ │ └── register_title_layout.xml │ │ ├── menu │ │ ├── activity_main_drawer.xml │ │ └── main.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── clock.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ ├── ic_launcher_round.png │ │ └── today.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ ├── ic_launcher_foreground.png │ │ └── ic_launcher_round.png │ │ ├── raw │ │ ├── bird.ogg │ │ ├── breakend.ogg │ │ ├── fire.ogg │ │ ├── ocean.ogg │ │ ├── rain.ogg │ │ ├── river.ogg │ │ ├── ticking.ogg │ │ └── workend.ogg │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── global_constants.xml │ │ ├── integers.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── file_paths.xml │ │ └── preferences.xml │ └── test │ └── java │ └── com │ └── example │ └── lulin │ └── todolist │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── pic ├── Bomb.png ├── device-2018-09-27-200612.png ├── device-2018-09-27-201432.png ├── device-2018-09-27-201607.png └── device-2018-09-28-190951.png └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/libraries 5 | /.idea/modules.xml 6 | /.idea/workspace.xml 7 | .DS_Store 8 | /build 9 | /captures 10 | .externalNativeBuild 11 | -------------------------------------------------------------------------------- /.idea/assetWizardSettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 66 | 67 | -------------------------------------------------------------------------------- /.idea/caches/build_file_checksums.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/.idea/caches/build_file_checksums.ser -------------------------------------------------------------------------------- /.idea/caches/gradle_models.ser: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/.idea/caches/gradle_models.ser -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | xmlns:android 14 | 15 | ^$ 16 | 17 | 18 | 19 |
20 |
21 | 22 | 23 | 24 | xmlns:.* 25 | 26 | ^$ 27 | 28 | 29 | BY_NAME 30 | 31 |
32 |
33 | 34 | 35 | 36 | .*:id 37 | 38 | http://schemas.android.com/apk/res/android 39 | 40 | 41 | 42 |
43 |
44 | 45 | 46 | 47 | .*:name 48 | 49 | http://schemas.android.com/apk/res/android 50 | 51 | 52 | 53 |
54 |
55 | 56 | 57 | 58 | name 59 | 60 | ^$ 61 | 62 | 63 | 64 |
65 |
66 | 67 | 68 | 69 | style 70 | 71 | ^$ 72 | 73 | 74 | 75 |
76 |
77 | 78 | 79 | 80 | .* 81 | 82 | ^$ 83 | 84 | 85 | BY_NAME 86 | 87 |
88 |
89 | 90 | 91 | 92 | .* 93 | 94 | http://schemas.android.com/apk/res/android 95 | 96 | 97 | ANDROID_ATTRIBUTE_ORDER 98 | 99 |
100 |
101 | 102 | 103 | 104 | .* 105 | 106 | .* 107 | 108 | 109 | BY_NAME 110 | 111 |
112 |
113 |
114 |
115 |
116 |
-------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | 39 | 40 | 44 | 45 | 49 | 50 | 54 | 55 | 59 | 60 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 24 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Doit (停止维护) 2 | ### Bmob云自2022 年 5 月 5 日起,将对开发版应用创建时间超过 12 个月的停止免费服务(即2021年5月5日前创建的开发版应用),请自行创建Bmob云数据库 3 | 基于 Android 时间管理App--待办事项提醒,番茄时钟,后端使用[Bmob云](https://www.bmob.cn/) 4 | 5 | ## App截图 6 | ![登录](https://github.com/LeeLulin/ToDoList/blob/master/pic/device-2018-09-27-200612.png) 7 | ![主界面](https://github.com/LeeLulin/ToDoList/blob/master/pic/device-2018-09-27-201432.png) 8 | ![新建待办](https://github.com/LeeLulin/ToDoList/blob/master/pic/device-2018-09-28-190951.png) 9 | ![番茄时钟](https://github.com/LeeLulin/ToDoList/blob/master/pic/device-2018-09-27-201607.png) 10 | 11 | ## Bmob云数据库结构 12 | ![Bmob](https://github.com/LeeLulin/ToDoList/blob/master/pic/Bomb.png) 13 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/debug/app-debug.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/debug/app-debug.apk -------------------------------------------------------------------------------- /app/debug/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":12,"versionName":"1.2.2","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"app-debug.apk","properties":{}}] -------------------------------------------------------------------------------- /app/libs/bdasr_V3_20180801_d6f298a.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/libs/bdasr_V3_20180801_d6f298a.jar -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/release/app-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/release/app-release.apk -------------------------------------------------------------------------------- /app/release/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":12,"versionName":"1.2.2","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}] -------------------------------------------------------------------------------- /app/src/androidTest/java/com/example/lulin/todolist/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist; 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("com.example.lulin.todolist", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/assets/default_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/assets/default_head.png -------------------------------------------------------------------------------- /app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Activity/AboutActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Activity; 2 | 3 | import android.support.annotation.NonNull; 4 | import android.widget.ImageView; 5 | import android.widget.TextView; 6 | 7 | import com.example.lulin.todolist.BuildConfig; 8 | import com.example.lulin.todolist.R; 9 | 10 | import me.drakeet.multitype.Items; 11 | import me.drakeet.support.about.AbsAboutActivity; 12 | import me.drakeet.support.about.Card; 13 | import me.drakeet.support.about.Category; 14 | import me.drakeet.support.about.Contributor; 15 | 16 | public class AboutActivity extends AbsAboutActivity { 17 | 18 | @Override 19 | protected void onCreateHeader(@NonNull ImageView icon, @NonNull TextView slogan, @NonNull TextView version) { 20 | icon.setImageResource(R.mipmap.ic_launcher); 21 | slogan.setText("生命不息,奋斗不止"); 22 | version.setText("v" + BuildConfig.VERSION_NAME); 23 | } 24 | 25 | 26 | @Override 27 | protected void onItemsCreated(@NonNull Items items) { 28 | items.add(new Category("介绍")); 29 | items.add(new Card(getString(R.string.about_app))); 30 | 31 | items.add(new Category("功能特性")); 32 | items.add(new Card(getString(R.string.about_function))); 33 | 34 | items.add(new Category("开发者")); 35 | items.add(new Contributor(R.drawable.designer1,"LeeLulin", "Developer & designer", "https://github.com/LeeLulin")); 36 | items.add(new Contributor(R.drawable.designer2,"Snowaaaas", "Developer & designer","https://github.com/Snowaaaas")); 37 | items.add(new Contributor(R.drawable.designer3,"xiaoying8023", "Developer & designer","https://github.com/xiaoying8023")); 38 | items.add(new Contributor(R.drawable.designer4,"VinceDing123", "Developer & designer","https://github.com/VinceDing123")); 39 | 40 | items.add(new Category("项目地址")); 41 | items.add(new Contributor(R.drawable.github,"Github","ToDoList","https://github.com/LeeLulin/ToDoList")); 42 | 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Activity/BasicActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Activity; 2 | 3 | import android.content.IntentFilter; 4 | import android.net.ConnectivityManager; 5 | import android.net.wifi.WifiManager; 6 | import android.os.Bundle; 7 | import android.support.v7.app.AppCompatActivity; 8 | 9 | import com.example.lulin.todolist.R; 10 | import com.example.lulin.todolist.Receiver.NetworkReceiver; 11 | 12 | import cn.bmob.v3.Bmob; 13 | import es.dmoral.toasty.Toasty; 14 | 15 | /** 16 | * Activity基类:实时获取网络状态 17 | */ 18 | public class BasicActivity extends AppCompatActivity { 19 | private boolean isRegistered = false; 20 | private NetworkReceiver networkReceiver; 21 | private static final String APP_ID = "1c54d5b204e98654778c77547afc7a66"; 22 | 23 | @Override 24 | protected void onCreate(Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | Bmob.resetDomain("https://open3.bmob.cn/8/"); 27 | Bmob.initialize(getApplication(), APP_ID); 28 | //注册网络状态监听广播 29 | networkReceiver = new NetworkReceiver(); 30 | IntentFilter filter = new IntentFilter(); 31 | filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); 32 | filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 33 | filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 34 | registerReceiver(networkReceiver, filter); 35 | isRegistered = true; 36 | 37 | Toasty.Config.getInstance() 38 | .setSuccessColor(getResources().getColor(R.color.toastSuccess)) 39 | .setErrorColor(getResources().getColor(R.color.toastError)) 40 | .setInfoColor(getResources().getColor(R.color.toastInfo)) 41 | .apply(); 42 | 43 | } 44 | 45 | @Override 46 | protected void onDestroy() { 47 | super.onDestroy(); 48 | //解绑 49 | if (isRegistered) { 50 | unregisterReceiver(networkReceiver); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Activity/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Activity; 2 | 3 | import android.os.Bundle; 4 | import android.view.MenuItem; 5 | import android.support.v7.widget.Toolbar; 6 | 7 | import com.example.lulin.todolist.R; 8 | import com.example.lulin.todolist.Fragment.SettingsFragment; 9 | 10 | public class SettingsActivity extends BasicActivity { 11 | 12 | private Toolbar toolbar; 13 | 14 | @Override 15 | protected void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_settings); 18 | toolbar = (Toolbar) findViewById(R.id.toolbar_preference); 19 | setSupportActionBar(toolbar); 20 | getSupportActionBar().setDisplayShowTitleEnabled(false); 21 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 22 | getFragmentManager().beginTransaction().replace(R.id.content_frame, new SettingsFragment()).commit(); 23 | } 24 | 25 | /** 26 | * 返回按钮监听 27 | */ 28 | @Override 29 | public void onBackPressed() { 30 | super.onBackPressed(); 31 | finish(); 32 | } 33 | 34 | @Override 35 | public boolean onOptionsItemSelected(MenuItem item) 36 | { 37 | // TODO Auto-generated method stub 38 | if(item.getItemId() == android.R.id.home) 39 | { 40 | finish(); 41 | return true; 42 | } 43 | return super.onOptionsItemSelected(item); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Activity/SplashActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Activity; 2 | 3 | import android.content.Intent; 4 | import android.content.res.Resources; 5 | import android.os.Handler; 6 | import android.os.Bundle; 7 | import android.view.WindowManager; 8 | 9 | import com.example.lulin.todolist.R; 10 | import com.example.lulin.todolist.Receiver.NetworkReceiver; 11 | import com.example.lulin.todolist.Service.AlarmService; 12 | import com.example.lulin.todolist.Utils.FileUtils; 13 | import com.example.lulin.todolist.Utils.NetWorkUtils; 14 | import com.example.lulin.todolist.Utils.SPUtils; 15 | import com.example.lulin.todolist.Bean.User; 16 | 17 | import cn.bmob.v3.Bmob; 18 | import site.gemus.openingstartanimation.NormalDrawStrategy; 19 | import site.gemus.openingstartanimation.OpeningStartAnimation; 20 | 21 | public class SplashActivity extends BasicActivity { 22 | 23 | private final int SPLASH_DISPLAY_LENGTH = 1500; 24 | private static final String APP_ID = "1c54d5b204e98654778c77547afc7a66"; 25 | private NetworkReceiver networkReceiver; 26 | private FileUtils fileUtils; 27 | private static final String KEY_VIBRATE = "vibrator"; 28 | 29 | @Override 30 | protected void onCreate(Bundle savedInstanceState) { 31 | getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 32 | super.onCreate(savedInstanceState); 33 | 34 | //复制assets下的资源文件到sd卡 35 | fileUtils = new FileUtils(); 36 | fileUtils.copyData(getApplicationContext()); 37 | SPUtils.put(this,"isFocus",false); 38 | 39 | if (NetWorkUtils.isNetworkConnected(getApplication())){ 40 | Bmob.resetDomain("https://open3.bmob.cn/8/"); 41 | Bmob.initialize(getApplication(), APP_ID); 42 | } 43 | 44 | 45 | Resources res = this.getResources(); 46 | startService(new Intent(this, AlarmService.class)); 47 | OpeningStartAnimation openingStartAnimation = new OpeningStartAnimation.Builder(this) 48 | .setDrawStategy(new NormalDrawStrategy()) //设置动画效果 49 | .setAppIcon(res.getDrawable(R.drawable.ic_launcher)) //设置图 50 | // .setColorOfAppIcon() //设置绘制图标线条的颜色 51 | // .setAppName("Do it") //设置app名称 52 | .setColorOfAppName(R.color.icon_color) //设置app名称颜色 53 | .setAppStatement("生命不息,奋斗不止") //设置一句话描述 54 | .setColorOfAppStatement(R.color.icon_color) // 设置一句话描述的颜色 55 | .create(); 56 | openingStartAnimation.show(this); 57 | new Handler().postDelayed(new Runnable() { 58 | @Override 59 | public void run() { 60 | /* Create an Intent that will start the Menu-Activity. */ 61 | if (User.getCurrentUser(User.class)==null){ 62 | Intent mainIntent = new Intent(SplashActivity.this, LoginActivity.class); 63 | startActivity(mainIntent); 64 | finish(); 65 | } else { 66 | Intent mainIntent = new Intent(SplashActivity.this, MainActivity.class); 67 | startActivity(mainIntent); 68 | finish(); 69 | } 70 | 71 | } 72 | }, SPLASH_DISPLAY_LENGTH); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Adapter/FragmentAdapter.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentStatePagerAdapter; 6 | 7 | import java.util.List; 8 | 9 | public class FragmentAdapter extends FragmentStatePagerAdapter { 10 | private List mFragments; 11 | private List mTitles; 12 | 13 | public FragmentAdapter(FragmentManager fm, List fragments, List titles) { 14 | super(fm); 15 | mFragments = fragments; 16 | mTitles = titles; 17 | } 18 | 19 | @Override 20 | public Fragment getItem(int position) { 21 | return mFragments.get(position); 22 | } 23 | 24 | @Override 25 | public int getCount() { 26 | return mFragments.size(); 27 | } 28 | 29 | @Override 30 | public CharSequence getPageTitle(int position) { 31 | return mTitles.get(position); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Adapter/RankRecyclerViewAdapter.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Adapter; 2 | 3 | import android.content.Context; 4 | import android.graphics.Color; 5 | import android.support.v7.widget.RecyclerView; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.TextView; 10 | 11 | import com.example.lulin.todolist.R; 12 | import com.example.lulin.todolist.Bean.User; 13 | 14 | import java.util.List; 15 | /** 16 | * RecyclerView适配器 17 | */ 18 | public class RankRecyclerViewAdapter extends RecyclerView.Adapter { 19 | 20 | private List rankList; 21 | private Context context; 22 | private User user; 23 | 24 | 25 | public RankRecyclerViewAdapter(List rankList, Context context) { 26 | this.rankList = rankList; 27 | this.context = context; 28 | } 29 | 30 | 31 | //自定义ViewHolder类 32 | static class ViewHolder extends RecyclerView.ViewHolder{ 33 | 34 | TextView user_name; 35 | TextView total; 36 | 37 | 38 | 39 | public ViewHolder(View itemView) { 40 | super(itemView); 41 | user_name = (TextView) itemView.findViewById(R.id.u_name); 42 | total = (TextView) itemView.findViewById(R.id.user_total); 43 | 44 | } 45 | 46 | 47 | } 48 | 49 | @Override 50 | public RankRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 51 | View v= LayoutInflater.from(context).inflate(R.layout.item_rank,viewGroup,false); 52 | ViewHolder viewHolder=new ViewHolder(v); 53 | return viewHolder; 54 | } 55 | 56 | @Override 57 | public void onBindViewHolder(RankRecyclerViewAdapter.ViewHolder ViewHolder, int i) { 58 | 59 | user = User.getCurrentUser(User.class); 60 | ViewHolder.user_name.setText(rankList.get(rankList.size()-1-i).getNickName()); 61 | ViewHolder.total.setText(rankList.get(rankList.size()-1-i).getTotal().toString() + "分钟"); 62 | if (rankList.get(rankList.size()-1-i).getNickName().equals(user.getNickName())){ 63 | ViewHolder.user_name.setTextColor(Color.parseColor("#54aadb")); 64 | ViewHolder.total.setTextColor(Color.parseColor("#54aadb")); 65 | } 66 | 67 | 68 | } 69 | 70 | @Override 71 | public int getItemCount() { 72 | return rankList.size(); 73 | } 74 | 75 | 76 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/App.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | 4 | import android.graphics.drawable.Drawable; 5 | 6 | public class App { 7 | 8 | private int id; 9 | private String packageName; 10 | private Drawable image; 11 | private String appName; 12 | private byte[] imageBlob; 13 | 14 | 15 | 16 | public int getId(){ 17 | return id; 18 | } 19 | 20 | public Drawable getImage() { 21 | return image; 22 | } 23 | 24 | public String getPackageName() { 25 | return packageName; 26 | } 27 | 28 | 29 | 30 | public String getName() { 31 | return appName; 32 | } 33 | 34 | public byte[] getImageBlob(){ 35 | return imageBlob; 36 | } 37 | 38 | public void setId(int id){ 39 | this.id = id; 40 | } 41 | 42 | public void setName(String appName) { 43 | this.appName = appName; 44 | } 45 | 46 | public void setPackageName(String packageName) { 47 | this.packageName = packageName; 48 | } 49 | 50 | public void setImage(Drawable image) { 51 | this.image = image; 52 | } 53 | 54 | public void setImageBlob(byte[] imageBlob){ 55 | this.imageBlob = imageBlob; 56 | } 57 | 58 | 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/BaiDuVoice.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by Lulin on 2018/9/3. 7 | */ 8 | 9 | public class BaiDuVoice { 10 | 11 | /** 12 | * results_recognition : ["语音识别"] 13 | * origin_result : {"corpus_no":6475907806490892620,"err_no":0,"result":{"word":["语音识别"]},"sn":"c006252d-2993-4982-a363-2628053181cc_s-0"} 14 | * error : 0 15 | * best_result : 语音识别 16 | * result_type : final_result 17 | */ 18 | 19 | public OriginResultBean origin_result; 20 | public int error; 21 | public String best_result; 22 | public String result_type; 23 | public List results_recognition; 24 | 25 | public static class OriginResultBean { 26 | /** 27 | * corpus_no : 6475907806490892620 28 | * err_no : 0 29 | * result : {"word":["语音识别"]} 30 | * sn : c006252d-2993-4982-a363-2628053181cc_s-0 31 | */ 32 | 33 | public long corpus_no; 34 | public int err_no; 35 | public ResultBean result; 36 | public String sn; 37 | 38 | public static class ResultBean { 39 | public List word; 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return "OriginResultBean{" + 45 | "corpus_no=" + corpus_no + 46 | ", err_no=" + err_no + 47 | ", result=" + result + 48 | ", sn='" + sn + '\'' + 49 | '}'; 50 | } 51 | } 52 | 53 | @Override 54 | public String toString() { 55 | return "BaiDuVoice{" + 56 | "origin_result=" + origin_result + 57 | ", error=" + error + 58 | ", best_result='" + best_result + '\'' + 59 | ", result_type='" + result_type + '\'' + 60 | ", results_recognition=" + results_recognition + 61 | '}'; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/Clock.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | 4 | import cn.bmob.v3.BmobObject; 5 | 6 | public class Clock extends BmobObject{ 7 | private int id; 8 | private String title; 9 | private long time; 10 | private String start_time; 11 | private String end_time; 12 | private long duration; 13 | private String date_add; 14 | private User user; 15 | 16 | public void setId(int id){ 17 | this.id = id; 18 | } 19 | public void setUser(User user){ 20 | this.user = user; 21 | } 22 | public void setTitle(String title){ 23 | this.title = title; 24 | } 25 | public void setTime(long time){ 26 | this.time = time; 27 | } 28 | public void setStart_time(String start_time){ 29 | this.start_time = start_time; 30 | } 31 | public void setEnd_time(String end_time){ 32 | this.end_time = end_time; 33 | } 34 | public void setDuration(long duration){ 35 | this.duration = duration; 36 | } 37 | public void setDate_add(String date_add){ 38 | this.date_add = date_add; 39 | } 40 | 41 | public int getId(){ 42 | return id; 43 | } 44 | public User getUser(){ 45 | return user; 46 | } 47 | public String getTitle(){ 48 | return title; 49 | } 50 | public long getTime(){ 51 | return time; 52 | } 53 | public String getStart_time(){ 54 | return start_time; 55 | } 56 | public String getEnd_time(){ 57 | return end_time; 58 | } 59 | public long getDuration(){ 60 | return duration; 61 | } 62 | public String getDate_add(){ 63 | return date_add; 64 | } 65 | 66 | 67 | } 68 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/Todos.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | 4 | import cn.bmob.v3.BmobObject; 5 | import cn.bmob.v3.datatype.BmobDate; 6 | 7 | public class Todos extends BmobObject{ 8 | private String title; 9 | private String desc; 10 | private String date; 11 | private String time; 12 | private long remindTime,remindTimeNoDay; 13 | private int id,isAlerted,isRepeat,imgId; 14 | private BmobDate bmobDate; 15 | private User user; 16 | private String dbObjectId; 17 | 18 | public Todos(){} 19 | 20 | // public Todos(int id,String title, String desc, String date, String time,long remindTime,long remindTimeNoDay,int isAlerted,int isRepeat,int imgId) { 21 | // 22 | // this.id = id; 23 | // this.title = title; 24 | // this.desc = desc; 25 | // this.date = date; 26 | // this.time = time; 27 | // this.isAlerted = isAlerted; 28 | // this.remindTime = remindTime; 29 | // this.remindTimeNoDay = remindTimeNoDay; 30 | // this.isRepeat = isRepeat; 31 | // this.imgId = imgId; 32 | // } 33 | 34 | public void setId(int id){ 35 | this.id = id; 36 | } 37 | 38 | public void setDesc(String desc) { 39 | this.desc = desc; 40 | } 41 | 42 | 43 | 44 | public void setTitle(String title) { 45 | this.title = title; 46 | } 47 | 48 | public void setDate(String date){ 49 | this.date = date; 50 | } 51 | 52 | public void setTime(String time){ 53 | this.time = time; 54 | } 55 | 56 | public void setisAlerted(int hasAlerted){ 57 | this.isAlerted = hasAlerted; 58 | } 59 | 60 | public void setRemindTime(long remindTime){ 61 | this.remindTime = remindTime; 62 | } 63 | 64 | public void setRemindTimeNoDay(long remindTimeNoDay){ 65 | this.remindTimeNoDay = remindTimeNoDay; 66 | } 67 | 68 | public void setIsRepeat(int isRepeat){ 69 | this.isRepeat = isRepeat; 70 | } 71 | 72 | public void setImgId(int imgId){ 73 | this.imgId = imgId; 74 | } 75 | 76 | public void setBmobDate(BmobDate bmobDate){ 77 | this.bmobDate = bmobDate; 78 | } 79 | 80 | public void setUser(User user){ 81 | this.user = user; 82 | } 83 | 84 | public void setDbObjectId(String dbObjectId){ 85 | this.dbObjectId = dbObjectId; 86 | } 87 | 88 | 89 | 90 | public int getId(){ 91 | return id; 92 | } 93 | 94 | public String getDesc() { 95 | return desc; 96 | } 97 | 98 | 99 | public String getTitle() { 100 | return title; 101 | } 102 | 103 | public String getDate(){ 104 | return date; 105 | } 106 | 107 | public String getTime(){ 108 | return time; 109 | } 110 | 111 | public int getisAlerted(){ 112 | return isAlerted; 113 | } 114 | 115 | public long getRemindTime(){ 116 | return remindTime; 117 | } 118 | 119 | public long getRemindTimeNoDay(){ 120 | return remindTimeNoDay; 121 | } 122 | 123 | public int getIsRepeat(){ 124 | return isRepeat; 125 | } 126 | 127 | public int getImgId(){ 128 | return imgId; 129 | } 130 | 131 | public BmobDate getBmobDate() { 132 | return bmobDate; 133 | } 134 | 135 | public User getUser() { 136 | return user; 137 | } 138 | 139 | public String getDbObjectId(){ 140 | return dbObjectId; 141 | } 142 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/Tomato.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | import cn.bmob.v3.BmobObject; 4 | 5 | public class Tomato extends BmobObject { 6 | private String title; 7 | private User user; 8 | private Clock clock; 9 | private int imgId; 10 | private int workLength; 11 | private int shortBreak; 12 | private int longBreak; 13 | private int frequency; 14 | 15 | public void setTitle(String title){ 16 | this.title = title; 17 | } 18 | public void setClock(Clock clock){ 19 | this.clock = clock; 20 | } 21 | public void setUser(User user){ 22 | this.user = user; 23 | } 24 | public void setImgId(int imgId){ 25 | this.imgId = imgId; 26 | } 27 | public void setWorkLength(int workLength){ 28 | this.workLength = workLength; 29 | } 30 | public void setShortBreak(int shortBreak){ 31 | this.shortBreak = shortBreak; 32 | } 33 | public void setLongBreak(int longBreak){ 34 | this.longBreak = longBreak; 35 | } 36 | public void setFrequency(int frequency){ 37 | this.frequency = frequency; 38 | } 39 | 40 | public String getTitle(){ 41 | return title; 42 | } 43 | public Clock getClock(){ 44 | return clock; 45 | } 46 | public User getUser(){ 47 | return user; 48 | } 49 | public int getImgId(){ 50 | return imgId; 51 | } 52 | public int getWorkLength(){ 53 | return workLength; 54 | } 55 | public int getShortBreak(){ 56 | return shortBreak; 57 | } 58 | public int getLongBreak(){ 59 | return longBreak; 60 | } 61 | public int getFrequency(){ 62 | return frequency; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Bean/User.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Bean; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import cn.bmob.v3.BmobUser; 6 | import cn.bmob.v3.datatype.BmobFile; 7 | 8 | public class User extends BmobUser { 9 | 10 | private BmobFile img; 11 | private String nickName; 12 | private String autograph; 13 | private String sex; 14 | private Bitmap localImg; 15 | private Integer total; 16 | 17 | public User(){} 18 | 19 | public String getSex(){return sex;} 20 | public String getNickName(){ 21 | return nickName; 22 | } 23 | public String getAutograph(){return autograph;} 24 | public BmobFile getImg() { 25 | return img; 26 | } 27 | public Bitmap getLocalImg(){ 28 | return localImg; 29 | } 30 | public Integer getTotal(){ 31 | return total; 32 | } 33 | 34 | 35 | public void setNickName(String nickName){ 36 | this.nickName = nickName; 37 | } 38 | public void setAutograph(String autograph){this.autograph = autograph;} 39 | public void setImg(BmobFile img) { 40 | this.img = img; 41 | } 42 | public void setSex(String sex){this.sex = sex;} 43 | public void setLocalImg(Bitmap localImg){ 44 | this.localImg = localImg; 45 | } 46 | public void setTotal(Integer total){ 47 | this.total = total; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/CircleImageInUsercBehavior.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist; 2 | 3 | import android.content.Context; 4 | import android.support.design.widget.CoordinatorLayout; 5 | import android.support.v4.view.ViewCompat; 6 | import android.support.v7.widget.Toolbar; 7 | import android.util.AttributeSet; 8 | import android.view.View; 9 | 10 | import com.example.lulin.todolist.Widget.CircleImageView; 11 | import com.example.lulin.todolist.Widget.DisInterceptNestedScrollView; 12 | 13 | 14 | /** 15 | * 类用于头像的行为 具体使用在Strings.xml中的引用 16 | */ 17 | public class CircleImageInUsercBehavior extends CoordinatorLayout.Behavior { 18 | 19 | private final String TAG_TOOLBAR = "user_toolbar"; 20 | 21 | private float mStartAvatarY; 22 | 23 | private float mStartAvatarX; 24 | 25 | private int mAvatarMaxHeight; 26 | 27 | private int mToolBarHeight; 28 | 29 | private float mStartDependencyY; 30 | 31 | public CircleImageInUsercBehavior(Context context, AttributeSet attrs) { 32 | super(context, attrs); 33 | } 34 | 35 | 36 | @Override 37 | public boolean layoutDependsOn(CoordinatorLayout parent, CircleImageView child, View dependency) { 38 | return dependency instanceof DisInterceptNestedScrollView; 39 | } 40 | 41 | 42 | //当dependency变化的时候调用 43 | @Override 44 | public boolean onDependentViewChanged(CoordinatorLayout parent, CircleImageView child, View dependency) { 45 | //初始化一些基础参数 46 | init(parent, child, dependency); 47 | //计算比例 48 | if (child.getY() <= 0) return false; 49 | float percent = (child.getY() - mToolBarHeight) / (mStartAvatarY - mToolBarHeight); 50 | 51 | if (percent < 0) { 52 | percent = 0; 53 | } 54 | if (this.percent == percent || percent > 1) return true; 55 | this.percent = percent; 56 | //设置头像的大小 57 | ViewCompat.setScaleX(child, percent); 58 | ViewCompat.setScaleY(child, percent); 59 | 60 | return false; 61 | } 62 | 63 | /** 64 | * 初始化数据 65 | * @param parent 66 | * @param child 67 | * @param dependency 68 | */ 69 | private void init(CoordinatorLayout parent, CircleImageView child, View dependency) { 70 | if (mStartAvatarY == 0) { 71 | mStartAvatarY = child.getY(); 72 | } 73 | if (mStartDependencyY == 0) { 74 | mStartDependencyY = dependency.getY(); 75 | } 76 | if (mStartAvatarX == 0) { 77 | mStartAvatarX = child.getX(); 78 | } 79 | 80 | if (mAvatarMaxHeight == 0) { 81 | mAvatarMaxHeight = child.getHeight(); 82 | } 83 | if (mToolBarHeight == 0) { 84 | Toolbar toolbar = (Toolbar) parent.findViewById(R.id.user_toolbar); 85 | mToolBarHeight = toolbar.getHeight(); 86 | } 87 | } 88 | 89 | float percent = 0; 90 | } 91 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/DBHelper/MyDatabaseHelper.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.DBHelper; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteOpenHelper; 6 | 7 | /** 8 | * 数据库帮助类 9 | * Created by Lulin on 2018/5/5. 10 | */ 11 | 12 | public class MyDatabaseHelper extends SQLiteOpenHelper { 13 | 14 | public static final String TODO = "create table Todo (" 15 | + "id integer primary key autoincrement, " 16 | + "todotitle String, " 17 | + "tododsc String," 18 | + "tododate String," 19 | + "todotime String," 20 | + "objectId String," 21 | + "remindTime long," 22 | + "remindTimeNoDay long," 23 | + "isAlerted int," 24 | + "imgId int," 25 | + "isRepeat int )"; 26 | 27 | public static final String CLOCK = "create table Clock (" 28 | + "id integer primary key autoincrement," 29 | + "objectId String," 30 | + "clocktitle String," 31 | + "workLength int," 32 | + "shortBreak int," 33 | + "longBreak int," 34 | + "frequency int," 35 | + "imgId int )"; 36 | 37 | public static final String TIME = "create table timer_schedule (" 38 | + "_id integer primary key autoincrement," 39 | + "clocktitle String," 40 | + "start_time DATETIME," 41 | + "end_time DATETIME," 42 | + "duration INTEGER," 43 | + "date_add DATE)"; 44 | 45 | 46 | private Context mContext; 47 | 48 | public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){ 49 | super(context, name, factory, version); 50 | mContext = context; 51 | } 52 | 53 | @Override 54 | public void onCreate(SQLiteDatabase db){ 55 | db.execSQL(TODO); 56 | db.execSQL(CLOCK); 57 | db.execSQL(TIME); 58 | 59 | } 60 | 61 | @Override 62 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 63 | db.execSQL("drop table if exists Todo"); 64 | db.execSQL("drop table if exists Clock"); 65 | db.execSQL("drop table if exists timer_schedule"); 66 | onCreate(db); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Fragment/RankFragment.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Fragment; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v7.widget.LinearLayoutManager; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.util.Log; 8 | import android.view.LayoutInflater; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | 12 | import com.example.lulin.todolist.R; 13 | import com.example.lulin.todolist.Adapter.RankRecyclerViewAdapter; 14 | import com.example.lulin.todolist.Bean.User; 15 | 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | import cn.bmob.v3.BmobQuery; 20 | import cn.bmob.v3.exception.BmobException; 21 | import cn.bmob.v3.listener.FindListener; 22 | 23 | 24 | /** 25 | * A fragment representing a list of Items. 26 | *

27 | */ 28 | public class RankFragment extends Fragment { 29 | 30 | private RecyclerView recyclerView; 31 | private RankRecyclerViewAdapter rankRecyclerViewAdapter; 32 | private List rankList = new ArrayList<>(); 33 | 34 | @Override 35 | public void onCreate(Bundle savedInstanceState) { 36 | super.onCreate(savedInstanceState); 37 | getRank(); 38 | } 39 | 40 | @Override 41 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 42 | 43 | View view = inflater.inflate(R.layout.fragment_rank, container, false); 44 | recyclerView = view.findViewById(R.id.rank_recycler); 45 | rankRecyclerViewAdapter = new RankRecyclerViewAdapter(rankList, getContext()); 46 | recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 47 | recyclerView.setAdapter(rankRecyclerViewAdapter); 48 | return view; 49 | } 50 | 51 | private void getRank(){ 52 | BmobQuery bmobQuery = new BmobQuery(); 53 | bmobQuery.order("total"); 54 | bmobQuery.findObjects(new FindListener() { 55 | @Override 56 | public void done(List list, BmobException e) { 57 | if (e==null){ 58 | Log.i("Rank", "查询到: "+list.size()+" 条数据"); 59 | setListData(list); 60 | Log.i("Rank", ""+rankList.size()); 61 | } 62 | } 63 | }); 64 | } 65 | 66 | /** 67 | * 设置list数据 68 | */ 69 | private void setListData(List newList) { 70 | rankList.addAll(newList); 71 | rankRecyclerViewAdapter.notifyDataSetChanged(); 72 | } 73 | 74 | 75 | 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Interface/ItemTouchHelperAdapter.java: -------------------------------------------------------------------------------- 1 | 2 | package com.example.lulin.todolist.Interface; 3 | 4 | import android.support.v7.widget.RecyclerView; 5 | import android.support.v7.widget.helper.ItemTouchHelper; 6 | 7 | /** 8 | * Interface to listen for a move or dismissal event from a {@link ItemTouchHelper.Callback}. 9 | * 10 | * @author Paul Burke (ipaulpro) 11 | */ 12 | public interface ItemTouchHelperAdapter { 13 | 14 | /** 15 | * Called when an item has been dragged far enough to trigger a move. This is called every time 16 | * an item is shifted, and not at the end of a "drop" event.
17 | *
18 | * Implementations should call {@link RecyclerView.Adapter#notifyItemMoved(int, int)} after 19 | * adjusting the underlying data to reflect this move. 20 | * 21 | * @param fromPosition The start position of the moved item. 22 | * @param toPosition Then resolved position of the moved item. 23 | * @return True if the item was moved to the new adapter position. 24 | * 25 | * @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder) 26 | * @see RecyclerView.ViewHolder#getAdapterPosition() 27 | */ 28 | boolean onItemMove(int fromPosition, int toPosition); 29 | 30 | 31 | /** 32 | * Called when an item has been dismissed by a swipe.
33 | *
34 | * Implementations should call {@link RecyclerView.Adapter#notifyItemRemoved(int)} after 35 | * adjusting the underlying data to reflect this removal. 36 | * 37 | * @param position The position of the item dismissed. 38 | * 39 | * @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder) 40 | * @see RecyclerView.ViewHolder#getAdapterPosition() 41 | */ 42 | void removeItem(int position); 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Interface/ItemTouchHelperViewHolder.java: -------------------------------------------------------------------------------- 1 | 2 | package com.example.lulin.todolist.Interface; 3 | 4 | import android.support.v7.widget.helper.ItemTouchHelper; 5 | 6 | /** 7 | * Interface to notify an item ViewHolder of relevant callbacks from {@link 8 | * android.support.v7.widget.helper.ItemTouchHelper.Callback}. 9 | * 10 | * @author Paul Burke (ipaulpro) 11 | */ 12 | public interface ItemTouchHelperViewHolder { 13 | 14 | /** 15 | * Called when the {@link ItemTouchHelper} first registers an item as being moved or swiped. 16 | * Implementations should update the item view to indicate it's active state. 17 | */ 18 | void onItemSelected(); 19 | 20 | 21 | /** 22 | * Called when the {@link ItemTouchHelper} has completed the move or swipe, and the active item 23 | * state should be cleared. 24 | */ 25 | void onItemClear(); 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Interface/OnStartDragListener.java: -------------------------------------------------------------------------------- 1 | 2 | package com.example.lulin.todolist.Interface; 3 | 4 | import android.support.v7.widget.RecyclerView; 5 | 6 | /** 7 | * Listener for manual initiation of a drag. 8 | */ 9 | public interface OnStartDragListener { 10 | 11 | /** 12 | * Called when a view is requesting a start of a drag. 13 | * 14 | * @param viewHolder The holder of the view to drag. 15 | */ 16 | void onStartDrag(RecyclerView.ViewHolder viewHolder); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Interpolator.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist; 2 | 3 | import android.view.animation.LinearInterpolator; 4 | 5 | public class Interpolator extends LinearInterpolator { 6 | private float factor; 7 | 8 | public Interpolator() { 9 | this.factor = 0.15f; 10 | } 11 | 12 | @Override 13 | public float getInterpolation(float input) { 14 | return (float) (Math.pow(2, -10 * input) 15 | * Math.sin((input - factor / 4) * (2 * Math.PI) / factor) + 1); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Receiver/BootUpReceiver.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Receiver; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.util.Log; 7 | import android.widget.Toast; 8 | 9 | import com.example.lulin.todolist.Activity.BasicActivity; 10 | import com.example.lulin.todolist.Activity.MainActivity; 11 | import com.example.lulin.todolist.Service.AlarmService; 12 | 13 | /** 14 | * 自启动 15 | */ 16 | public class BootUpReceiver extends BroadcastReceiver { 17 | 18 | @Override 19 | public void onReceive(Context context, Intent intent) { 20 | if (intent.getAction().equals("android.media.AUDIO_BECOMING_NOISY")) { 21 | /* 服务开机自启动 */ 22 | Intent service = new Intent(context, AlarmService.class); 23 | context.startService(service); 24 | Log.i("BootUp", "自启动成功"); 25 | } 26 | 27 | if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 28 | /* 应用开机自启动 */ 29 | Intent intent_n = new Intent(context, MainActivity.class); 30 | 31 | intent_n.setAction("android.intent.action.MAIN"); 32 | intent_n.addCategory("android.intent.category.LAUNCHER"); 33 | intent_n.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 34 | context.startActivity(intent_n); 35 | Log.i("BootUp", "自启动成功"); 36 | } 37 | 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Receiver/NetworkReceiver.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Receiver; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.net.ConnectivityManager; 7 | import android.net.NetworkInfo; 8 | import android.util.Log; 9 | 10 | import cn.bmob.v3.Bmob; 11 | 12 | public class NetworkReceiver extends BroadcastReceiver { 13 | 14 | private static final String APP_ID = "1c54d5b204e98654778c77547afc7a66"; 15 | 16 | @Override 17 | public void onReceive(Context context, Intent intent) { 18 | //**判断当前的网络连接状态是否可用*/ 19 | ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 20 | NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 21 | if ( info != null && info.isAvailable()){ 22 | //当前网络状态可用 23 | Bmob.resetDomain("https://open3.bmob.cn/8/"); 24 | Bmob.initialize(context, APP_ID); 25 | Log.i("网络状态", "网络已连接"); 26 | }else { 27 | //当前网络不可用 28 | Log.i("网络状态", "无网络连接"); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/SpacesItemDecoration.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist; 2 | 3 | import android.graphics.Rect; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.View; 6 | 7 | 8 | public class SpacesItemDecoration extends RecyclerView.ItemDecoration { 9 | int mSpace; 10 | 11 | /** 12 | * 设置Item间隔 13 | */ 14 | @Override 15 | public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 16 | super.getItemOffsets(outRect, view, parent, state); 17 | outRect.left = mSpace; 18 | outRect.right = mSpace; 19 | outRect.bottom = mSpace; 20 | if (parent.getChildAdapterPosition(view) == 0) { 21 | outRect.top = mSpace; 22 | } 23 | 24 | } 25 | 26 | public SpacesItemDecoration(int space) { 27 | this.mSpace = space; 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/BitmapUtils.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.graphics.BitmapFactory; 6 | 7 | import java.io.InputStream; 8 | 9 | public class BitmapUtils { 10 | /** 11 | * 压缩图片,防止内存溢出 12 | * @param context 13 | * @param resId 14 | * @return 15 | */ 16 | public static Bitmap readBitMap(Context context, int resId){ 17 | BitmapFactory.Options opt = new BitmapFactory.Options(); 18 | opt.inPreferredConfig = Bitmap.Config.RGB_565; 19 | opt.inPurgeable = true; 20 | opt.inInputShareable = true; 21 | // 获取资源图片 22 | InputStream is = context.getResources().openRawResource(resId); 23 | return BitmapFactory.decodeStream(is, null, opt); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/FileUtils.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.util.Log; 5 | 6 | import java.io.File; 7 | import java.io.FileOutputStream; 8 | import java.io.IOException; 9 | import java.io.InputStream; 10 | 11 | /** 12 | * 复制assets下的默认头像 13 | * 到sd卡包目录的工具类 14 | */ 15 | public class FileUtils { 16 | 17 | public void copyData(Context context) { 18 | InputStream in = null; 19 | FileOutputStream out = null; 20 | String path = context.getFilesDir().getAbsolutePath() + "/default_head.png"; // data/data目录 21 | Log.i("MainActivity", path); 22 | File file = new File(path); 23 | if (!file.exists()) { 24 | try 25 | { 26 | in = context.getAssets().open("default_head.png"); // 从assets目录下复制 27 | out = new FileOutputStream(file); 28 | int length = -1; 29 | byte[] buf = new byte[1024]; 30 | while ((length = in.read(buf)) != -1) 31 | { 32 | out.write(buf, 0, length); 33 | } 34 | out.flush(); 35 | } 36 | catch (Exception e) 37 | { 38 | e.printStackTrace(); 39 | } 40 | finally{ 41 | if (in != null) 42 | { 43 | try { 44 | 45 | in.close(); 46 | 47 | } catch (IOException e1) { 48 | 49 | // TODO Auto-generated catch block 50 | 51 | e1.printStackTrace(); 52 | } 53 | } 54 | if (out != null) 55 | { 56 | try { 57 | out.close(); 58 | } catch (IOException e1) { 59 | // TODO Auto-generated catch block 60 | e1.printStackTrace(); 61 | } 62 | } 63 | } 64 | } 65 | } 66 | 67 | } 68 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/RecyclerItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.support.v7.widget.RecyclerView; 5 | import android.view.GestureDetector; 6 | import android.view.MotionEvent; 7 | import android.view.View; 8 | 9 | /** 10 | * RecyclerView的Item事件监听器 11 | */ 12 | public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener { 13 | public interface OnItemClickListener { 14 | void onItemClick(View view, int position); 15 | 16 | void onItemLongClick(View view, int position); 17 | } 18 | 19 | private OnItemClickListener mListener; 20 | 21 | private GestureDetector mGestureDetector; 22 | 23 | public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) { 24 | mListener = listener; 25 | 26 | mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 27 | @Override 28 | public boolean onSingleTapUp(MotionEvent e) { 29 | return true; 30 | } 31 | 32 | @Override 33 | public void onLongPress(MotionEvent e) { 34 | View childView = recyclerView.findChildViewUnder(e.getX(), e.getY()); 35 | 36 | if (childView != null && mListener != null) { 37 | mListener.onItemLongClick(childView, recyclerView.getChildAdapterPosition(childView)); 38 | } 39 | } 40 | }); 41 | } 42 | 43 | @Override 44 | public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) { 45 | View childView = view.findChildViewUnder(e.getX(), e.getY()); 46 | 47 | if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) { 48 | mListener.onItemClick(childView, view.getChildAdapterPosition(childView)); 49 | } 50 | 51 | return false; 52 | } 53 | 54 | @Override 55 | public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { 56 | } 57 | 58 | @Override 59 | public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 60 | } 61 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/Sound.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.media.MediaPlayer; 5 | import android.media.MediaPlayer.OnCompletionListener; 6 | import android.preference.PreferenceManager; 7 | 8 | 9 | /** 10 | * 4.4 出现 MediaPlayer: Should have subtitle controller already set 错误 11 | * Don't care about this "Exception". 12 | * 13 | * @link https://stackoverflow.com/questions/20087804/should-have-subtitle-controller-already-set-mediaplayer-error-android 14 | */ 15 | public class Sound { 16 | private Context mContext; 17 | private MediaPlayer mMediaPlayer; 18 | private MediaPlayer mNextPlayer; 19 | 20 | private OnCompletionListener mOnCompletionListener = new OnCompletionListener() { 21 | @Override 22 | public void onCompletion(MediaPlayer mediaPlayer) { 23 | mediaPlayer.stop(); 24 | mediaPlayer.release(); 25 | mMediaPlayer = mNextPlayer; 26 | setNextMediaPlayer(getMusicid()); 27 | } 28 | }; 29 | 30 | public Sound(Context context) { 31 | mContext = context; 32 | build(getMusicid()); 33 | } 34 | 35 | 36 | /** 37 | * setLooping(true) 虽然能循环播放,但不能做到无缝播放处理,会出现短暂的暂停 38 | * 这里采用 setNextMediaPlayer 来解决这问题 39 | * 40 | * @link https://stackoverflow.com/questions/13409657/how-to-loop-a-sound-without-gaps-in-android 41 | * @link https://developer.android.com/reference/android/media/MediaPlayer.html#setNextMediaPlayer(android.media.MediaPlayer) 42 | */ 43 | private void build(int id) { 44 | mMediaPlayer = MediaPlayer.create(mContext, id); 45 | setNextMediaPlayer(id); 46 | } 47 | 48 | private void setNextMediaPlayer(int id) { 49 | mNextPlayer = MediaPlayer.create(mContext, id); 50 | mMediaPlayer.setNextMediaPlayer(mNextPlayer); 51 | mMediaPlayer.setOnCompletionListener(mOnCompletionListener); 52 | } 53 | 54 | public void play() { 55 | if (isSoundOn()) { 56 | if (!mMediaPlayer.isPlaying()) { 57 | mMediaPlayer.start(); 58 | } 59 | } 60 | } 61 | 62 | public void pause() { 63 | if (mMediaPlayer.isPlaying()) { 64 | mMediaPlayer.pause(); 65 | } 66 | } 67 | 68 | public void resume() { 69 | if (isSoundOn()) { 70 | if (!mMediaPlayer.isPlaying()) { 71 | mMediaPlayer.start(); 72 | } 73 | } 74 | } 75 | 76 | /** 77 | * 不要调用 MediaPlayer.stop 停止播放音频,调用这个方法后的 MediaPlayer 对象无法再播放音频 78 | */ 79 | public void stop() { 80 | if (mMediaPlayer.isPlaying()) { 81 | release(); 82 | build(getMusicid()); 83 | } 84 | } 85 | 86 | public void release() { 87 | if (mMediaPlayer != null) { 88 | mMediaPlayer.stop(); 89 | mMediaPlayer.release(); 90 | mMediaPlayer = null; 91 | 92 | mNextPlayer.stop(); 93 | mNextPlayer.release(); 94 | mNextPlayer = null; 95 | } 96 | } 97 | 98 | public void reset(){ 99 | mMediaPlayer.reset(); 100 | build(getMusicid()); 101 | } 102 | 103 | private boolean isSoundOn() { 104 | return PreferenceManager.getDefaultSharedPreferences(mContext) 105 | .getBoolean("pref_key_tick_sound", true); 106 | } 107 | 108 | private int getMusicid(){ 109 | return (int)SPUtils.get(mContext, "music_id",1); 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/TimeFormatUtil.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.text.format.DateUtils; 4 | 5 | import java.util.concurrent.TimeUnit; 6 | 7 | public class TimeFormatUtil { 8 | public static String formatTime(long millis) { 9 | long seconds = TimeUnit.MILLISECONDS.toSeconds(millis); 10 | return DateUtils.formatElapsedTime(new StringBuilder(8), seconds); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/ToastUtils.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.view.ViewGroup; 5 | import android.widget.Toast; 6 | 7 | /** 8 | * Toast统一管理类 9 | * 10 | */ 11 | public class ToastUtils 12 | { 13 | 14 | private ViewGroup.LayoutParams layoutParams; 15 | 16 | private ToastUtils() 17 | { 18 | /* cannot be instantiated */ 19 | throw new UnsupportedOperationException("cannot be instantiated"); 20 | } 21 | 22 | public static boolean isShow = true; 23 | 24 | /** 25 | * 短时间显示Toast 26 | * 27 | * @param context 28 | * @param message 29 | */ 30 | public static void showShort(Context context, CharSequence message) 31 | { 32 | if (isShow) 33 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 34 | } 35 | 36 | /** 37 | * 短时间显示Toast 38 | * 39 | * @param context 40 | * @param message 41 | */ 42 | public static void showShort(Context context, int message) 43 | { 44 | if (isShow) 45 | Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 46 | } 47 | 48 | /** 49 | * 长时间显示Toast 50 | * 51 | * @param context 52 | * @param message 53 | */ 54 | public static void showLong(Context context, CharSequence message) 55 | { 56 | if (isShow) 57 | Toast.makeText(context, message, Toast.LENGTH_LONG).show(); 58 | } 59 | 60 | /** 61 | * 长时间显示Toast 62 | * 63 | * @param context 64 | * @param message 65 | */ 66 | public static void showLong(Context context, int message) 67 | { 68 | if (isShow) 69 | Toast.makeText(context, message, Toast.LENGTH_LONG).show(); 70 | } 71 | 72 | /** 73 | * 自定义显示Toast时间 74 | * 75 | * @param context 76 | * @param message 77 | * @param duration 78 | */ 79 | public static void show(Context context, CharSequence message, int duration) 80 | { 81 | if (isShow) 82 | Toast.makeText(context, message, duration).show(); 83 | } 84 | 85 | /** 86 | * 自定义显示Toast时间 87 | * 88 | * @param context 89 | * @param message 90 | * @param duration 91 | */ 92 | public static void show(Context context, int message, int duration) 93 | { 94 | if (isShow) 95 | Toast.makeText(context, message, duration).show(); 96 | } 97 | 98 | 99 | 100 | } -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/TomatoUtils.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.util.Log; 5 | 6 | import com.example.lulin.todolist.Bean.Tomato; 7 | import com.example.lulin.todolist.Bean.User; 8 | import com.example.lulin.todolist.Dao.ClockDao; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | import cn.bmob.v3.BmobQuery; 14 | import cn.bmob.v3.exception.BmobException; 15 | import cn.bmob.v3.listener.FindListener; 16 | import cn.bmob.v3.listener.UpdateListener; 17 | 18 | public class TomatoUtils { 19 | 20 | /** 21 | * 返回数据库用户所有的番茄钟 22 | * 23 | * @param context 24 | * @return 25 | * @throws Exception 26 | */ 27 | public static List getAllTomato(Context context) { 28 | List temp = new ArrayList(); 29 | List findAll = new ClockDao(context).getDbAllTomato(); 30 | Log.i("ClockDao","番茄任务个数" + findAll.size()); 31 | if (findAll != null && findAll.size() > 0) { 32 | temp.addAll(findAll); 33 | } 34 | return temp; 35 | } 36 | 37 | /** 38 | * 返回网络上用户所有的番茄钟列表 39 | * 40 | * @param context 41 | * @param currentUser 42 | * @throws Exception 43 | */ 44 | public static void getNetAllTomato(final Context context, User currentUser, final GetTomatoCallBack getTomatoCallBack ) { 45 | BmobQuery query = new BmobQuery(); 46 | query.addWhereEqualTo("user", currentUser).order("createdAt"); 47 | query.findObjects(new FindListener() { 48 | @Override 49 | public void done(List list, BmobException e) { 50 | if (e==null){ 51 | Log.i("TomatoUtils", "查询到网络任务个数: " + list.size()); 52 | // 1.更新本地数据库 53 | // if (list.size() > 0) { 54 | // ClockDao clockDao = new ClockDao(context); 55 | // clockDao.saveAll(list); 56 | // } 57 | getTomatoCallBack.onSuccess(list); 58 | 59 | } else { 60 | Log.i("TomatoUtils", "查询失败:"+e.getMessage()); 61 | getTomatoCallBack.onError(e.getErrorCode(),e.getMessage()); 62 | } 63 | 64 | } 65 | }); 66 | } 67 | 68 | public static void deleteNetTomato(final Context context, Tomato tomato, final DeleteTomatoListener deleteTomatoListener) { 69 | tomato.delete(new UpdateListener() { 70 | @Override 71 | public void done(BmobException e) { 72 | if (e==null){ 73 | deleteTomatoListener.onSuccess(); 74 | } else { 75 | deleteTomatoListener.onError(e.getErrorCode(),e.getMessage()); 76 | } 77 | } 78 | }); 79 | } 80 | 81 | public interface GetTomatoCallBack { 82 | void onSuccess(List tomato); 83 | 84 | void onError(int errorCode, String msg); 85 | } 86 | 87 | public interface DeleteTomatoListener { 88 | void onSuccess(); 89 | 90 | void onError(int errorCord, String msg); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Utils/WakeLockHelper.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Utils; 2 | 3 | import android.content.Context; 4 | import android.os.PowerManager; 5 | 6 | public class WakeLockHelper { 7 | private final String mWakeLockId; 8 | private PowerManager.WakeLock mWakeLock; 9 | 10 | public WakeLockHelper(final String wakeLockId) { 11 | mWakeLockId = wakeLockId; 12 | } 13 | 14 | public void acquire(final Context context) { 15 | if (mWakeLock == null) { 16 | final PowerManager pm = (PowerManager) 17 | context.getSystemService(Context.POWER_SERVICE); 18 | mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, mWakeLockId); 19 | mWakeLock.acquire(); 20 | } 21 | } 22 | 23 | public void release() { 24 | if (mWakeLock != null) { 25 | try { 26 | mWakeLock.release(); 27 | mWakeLock = null; 28 | } catch (RuntimeException ex) { 29 | ex.printStackTrace(); 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Widget/ClockProgressBar.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Canvas; 5 | import android.graphics.Paint; 6 | import android.graphics.RectF; 7 | import android.support.annotation.Nullable; 8 | import android.support.v4.content.ContextCompat; 9 | import android.util.AttributeSet; 10 | import android.view.View; 11 | 12 | import com.example.lulin.todolist.R; 13 | 14 | public class ClockProgressBar extends View { 15 | private int mColorArc; 16 | private int mColorCircle; 17 | private long mMaxProgress; 18 | private long mProgress; 19 | private Paint mPaintArc; 20 | private Paint mPaintCircle; 21 | private RectF mRectF; 22 | 23 | public ClockProgressBar(Context context) { 24 | this(context, null, 0); 25 | } 26 | 27 | public ClockProgressBar(Context context, @Nullable AttributeSet attrs) { 28 | this(context, attrs, 0); 29 | } 30 | 31 | public ClockProgressBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { 32 | super(context, attrs, defStyleAttr); 33 | init(context); 34 | } 35 | 36 | private void init(Context context) { 37 | mColorArc = ContextCompat.getColor(context, R.color.colorStrokeArc); 38 | mColorCircle = ContextCompat.getColor(context, R.color.colorStrokeCircle); 39 | 40 | setFocusable(false); 41 | initPainters(); 42 | } 43 | 44 | private void initPainters() { 45 | mPaintCircle = getPaint(); 46 | mPaintCircle.setColor(mColorCircle); 47 | mPaintArc = getPaint(); 48 | mPaintArc.setColor(mColorArc); 49 | 50 | mRectF = new RectF(); 51 | } 52 | 53 | @Override 54 | protected void onDraw(Canvas canvas) { 55 | super.onDraw(canvas); 56 | setRectF(); 57 | canvas.drawArc(mRectF, -90.0f, 360.0f, false, mPaintCircle); 58 | canvas.drawArc(mRectF, -90.0f, getSweepAngle(), false, mPaintArc); 59 | } 60 | 61 | private Paint getPaint() { 62 | Paint paint = new Paint(); 63 | paint.setAntiAlias(true); 64 | paint.setStrokeWidth(6.0f); 65 | paint.setStyle(Paint.Style.STROKE); 66 | return paint; 67 | } 68 | 69 | private void setRectF() { 70 | int width = getWidth(); 71 | int height = getHeight(); 72 | 73 | int size = width > height ? height : width; 74 | float radius = (float) (size / 2); 75 | float halfWidth = (float) (width / 2); 76 | 77 | float scale = 0.618f; // 黄金分割 78 | float top = radius - radius * scale; 79 | float left = halfWidth - radius * scale; 80 | float right = halfWidth + radius * scale; 81 | float bottom = radius + radius * scale; 82 | mRectF.set(left, top, right, bottom); 83 | } 84 | 85 | private float getSweepAngle() { 86 | return 360.0f * ((float) mProgress / (float) mMaxProgress); 87 | } 88 | 89 | public void setMaxProgress(long maxProgress) { 90 | mMaxProgress = maxProgress; 91 | } 92 | 93 | public void setProgress(long progress) { 94 | mProgress = mMaxProgress - progress; 95 | invalidate(); 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Widget/ColorFilterToolBar.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Widget; 2 | 3 | import android.content.Context; 4 | import android.graphics.Canvas; 5 | import android.graphics.Paint; 6 | import android.support.annotation.Nullable; 7 | import android.support.v7.widget.Toolbar; 8 | import android.util.AttributeSet; 9 | import android.view.WindowManager; 10 | 11 | public class ColorFilterToolBar extends Toolbar { 12 | 13 | public static final int STRAT_BLUE= 0xFF4D8DFF; 14 | public static final int END_BLUE= 0xFF37B7FB; 15 | private Paint mPaint; 16 | private float windowWidth; 17 | private int height; 18 | 19 | public ColorFilterToolBar(Context context) { 20 | this(context, null); 21 | } 22 | 23 | public ColorFilterToolBar(Context context, @Nullable AttributeSet attrs) { 24 | this(context, attrs, 0); 25 | } 26 | 27 | 28 | public ColorFilterToolBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { 29 | super(context, attrs, defStyleAttr); 30 | mPaint = new Paint(); 31 | mPaint.setStyle(Paint.Style.FILL); 32 | mPaint.setAntiAlias(true); 33 | WindowManager wm = (WindowManager) getContext() 34 | .getSystemService(Context.WINDOW_SERVICE); 35 | windowWidth = wm.getDefaultDisplay().getWidth();//获取屏幕宽度 36 | } 37 | 38 | @Override 39 | protected void onDraw(Canvas canvas) { 40 | for (int i = 1; i <= windowWidth; i++) { 41 | // 设置画笔颜色为自定义颜色 42 | mPaint.setColor((Integer) evaluateColor(Math.pow(i/ windowWidth,2),STRAT_BLUE,END_BLUE)); 43 | canvas.drawRect(i-1, 0, i, height,mPaint); 44 | } 45 | } 46 | 47 | @Override 48 | protected void onSizeChanged(int w, int h, int oldw, int oldh) { 49 | super.onSizeChanged(w, h, oldw, oldh); 50 | height = h; 51 | } 52 | 53 | /** 54 | * 颜色变化过度 55 | * 56 | * @param fraction 57 | * @param startValue 58 | * @param endValue 59 | * @return 60 | */ 61 | public Object evaluateColor(double fraction, Object startValue, Object endValue) { 62 | int startInt = (Integer) startValue; 63 | int startA = (startInt >> 24) & 0xff; 64 | int startR = (startInt >> 16) & 0xff; 65 | int startG = (startInt >> 8) & 0xff; 66 | int startB = startInt & 0xff; 67 | 68 | int endInt = (Integer) endValue; 69 | int endA = (endInt >> 24) & 0xff; 70 | int endR = (endInt >> 16) & 0xff; 71 | int endG = (endInt >> 8) & 0xff; 72 | int endB = endInt & 0xff; 73 | 74 | return (startA + (int) (fraction * (endA - startA))) << 24 | 75 | (startR + (int) (fraction * (endR - startR))) << 16 | 76 | (startG + (int) (fraction * (endG - startG))) << 8 | 77 | (startB + (int) (fraction * (endB - startB))); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /app/src/main/java/com/example/lulin/todolist/Widget/DisInterceptNestedScrollView.java: -------------------------------------------------------------------------------- 1 | package com.example.lulin.todolist.Widget; 2 | 3 | import android.content.Context; 4 | import android.support.v4.widget.NestedScrollView; 5 | import android.util.AttributeSet; 6 | import android.view.MotionEvent; 7 | 8 | /** 9 | * Func:用于子类防止父类拦截子类的事件 10 | */ 11 | public class DisInterceptNestedScrollView extends NestedScrollView { 12 | public DisInterceptNestedScrollView(Context context) { 13 | super(context); 14 | requestDisallowInterceptTouchEvent(true); 15 | } 16 | 17 | public DisInterceptNestedScrollView(Context context, AttributeSet attrs) { 18 | super(context, attrs); 19 | requestDisallowInterceptTouchEvent(true); 20 | } 21 | 22 | public DisInterceptNestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { 23 | super(context, attrs, defStyleAttr); 24 | requestDisallowInterceptTouchEvent(true); 25 | } 26 | 27 | 28 | public boolean dispatchTouchEvent(MotionEvent ev) { 29 | getParent().requestDisallowInterceptTouchEvent(true); 30 | return super.dispatchTouchEvent(ev); 31 | } 32 | 33 | @Override 34 | public boolean onTouchEvent(MotionEvent event) { 35 | switch (event.getAction()) { 36 | case MotionEvent.ACTION_MOVE: 37 | requestDisallowInterceptTouchEvent(true); 38 | break; 39 | case MotionEvent.ACTION_UP: 40 | case MotionEvent.ACTION_CANCEL: 41 | requestDisallowInterceptTouchEvent(false); 42 | break; 43 | } 44 | return super.onTouchEvent(event); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/arm64-v8a/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/arm64-v8a/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/arm64-v8a/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/armeabi-v7a/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/armeabi-v7a/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/armeabi/libBaiduSpeechSDK.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libvad.dnn.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/jniLibs/armeabi/libvad.dnn.so -------------------------------------------------------------------------------- /app/src/main/res/anim/actionsheet_dialog_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/actionsheet_dialog_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_alarm_on_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_alarm_on_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_error_outline_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_error_outline_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_exit_to_app_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_exit_to_app_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_insert_chart_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_insert_chart_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_laptop_mac_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_laptop_mac_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_local_cafe_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_local_cafe_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_pause_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_pause_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_play_arrow_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stat_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_stat_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_weekend_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-hdpi/ic_weekend_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_alarm_on_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_alarm_on_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_error_outline_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_error_outline_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_exit_to_app_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_exit_to_app_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_insert_chart_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_insert_chart_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_laptop_mac_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_laptop_mac_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_local_cafe_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_local_cafe_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_pause_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_pause_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_play_arrow_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stat_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_stat_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_weekend_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-mdpi/ic_weekend_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_alarm_on_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_alarm_on_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_error_outline_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_error_outline_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_exit_to_app_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_exit_to_app_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_insert_chart_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_insert_chart_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_laptop_mac_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_laptop_mac_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_local_cafe_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_local_cafe_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_pause_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_pause_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_play_arrow_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stat_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_stat_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_weekend_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xhdpi/ic_weekend_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/guide_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/guide_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/guide_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/guide_head.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/guide_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/guide_menu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/guide_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/guide_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_alarm_on_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_alarm_on_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_error_outline_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_error_outline_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_exit_to_app_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_exit_to_app_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_insert_chart_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_insert_chart_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_laptop_mac_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_laptop_mac_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_local_cafe_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_local_cafe_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pause_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_pause_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_play_arrow_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stat_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_stat_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_weekend_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxhdpi/ic_weekend_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_alarm_on_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_alarm_on_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_error_outline_black_18dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_error_outline_black_18dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_exit_to_app_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_exit_to_app_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_insert_chart_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_insert_chart_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_laptop_mac_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_laptop_mac_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_local_cafe_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_local_cafe_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_pause_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_pause_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_play_arrow_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_stat_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_stat_notify.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_stop_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_stop_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxxhdpi/ic_weekend_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable-xxxhdpi/ic_weekend_white_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/add_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/add_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/c_img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/c_img7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_bg_n.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_bg_p.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/default_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/default_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/delete1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/delete1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/designer1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/designer1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/designer2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/designer2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/designer3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/designer3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/designer4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/designer4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/do_it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/do_it.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/done.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/github.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_assignment_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_assignment_black_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_back_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_bird.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_clock_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_clock_black_48dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_fire.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_fire.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_img9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_img9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_marker.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_music.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_music_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_music_off.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_rain.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_river.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_river.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_setting.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_voice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_voice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_voice_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_voice_fill.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_wave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/ic_wave.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/image_button_click.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/img_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/img_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/layout_corner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layout_n.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layout_p.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/layout_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/login_bg.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/music_bt_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/music_bt_n.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/music_bt_p.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/play_clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/play_clock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/project_detail_cir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/project_detail_cir.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/radius_drawable_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rotate_layout_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shape1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/team_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeLulin/ToDoList/1191c50e8110f2f867817a91d810068321a62bbe/app/src/main/res/drawable/team_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/text_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/text_press.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/translucent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_basic.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_register.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 13 | 14 | 19 | 20 | 25 | 26 | 33 | 34 | 35 | 36 | 40 | 41 | 46 | 47 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |