├── AnimationDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ └── vcs.xml ├── AnimationDemo.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── lucifer │ │ │ └── animationdemo │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── lucifer │ │ │ └── animationdemo │ │ │ ├── MainActivity.java │ │ │ ├── drawable │ │ │ ├── CirclePercentDrawable.java │ │ │ └── WatchDrawable.java │ │ │ └── view │ │ │ └── LineView.java │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ ├── checkin_score_bg.png │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── Constructure.suml ├── FrescoDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── dictionaries │ │ └── JunyiZhou.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── FrescoDemo.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── frescodemo │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── frescodemo │ │ │ └── MainActivity.java │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ ├── icon_failure.png │ │ ├── icon_placeholder.png │ │ ├── icon_progress_bar.png │ │ └── icon_retry.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── HealthManager ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── dictionaries │ │ └── JunyiZhou.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── songyang │ │ │ └── healthmanager │ │ │ └── ApplicationTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── songyang │ │ │ │ └── healthmanager │ │ │ │ ├── HealthManagerApplication.java │ │ │ │ ├── bean │ │ │ │ ├── ClinicBean.java │ │ │ │ ├── ExaminationBean.java │ │ │ │ ├── HospitalBean.java │ │ │ │ ├── StepBean.java │ │ │ │ └── UserBean.java │ │ │ │ ├── component │ │ │ │ ├── IOnItemClickListener.java │ │ │ │ ├── IOnItemLongClickListener.java │ │ │ │ ├── LineDiagramView.java │ │ │ │ └── RecyclerListFragment.java │ │ │ │ ├── daily │ │ │ │ ├── model │ │ │ │ │ ├── DailyModel.java │ │ │ │ │ └── IDailyModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── DailyPresenter.java │ │ │ │ │ └── IDailyPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── DailyFragment.java │ │ │ │ │ └── IDailyView.java │ │ │ │ ├── db │ │ │ │ ├── DBManager.java │ │ │ │ ├── HealthSQLiteOpenHelper.java │ │ │ │ └── SQLS.java │ │ │ │ ├── info │ │ │ │ ├── model │ │ │ │ │ ├── IUserModel.java │ │ │ │ │ └── UserModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── IInfoPresenter.java │ │ │ │ │ └── InfoPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── ClinicFragment.java │ │ │ │ │ ├── ExaminationFragment.java │ │ │ │ │ ├── HospitalFragment.java │ │ │ │ │ ├── IInfoView.java │ │ │ │ │ ├── InfoActivity.java │ │ │ │ │ └── ProfileFragment.java │ │ │ │ ├── login │ │ │ │ ├── event │ │ │ │ │ └── UserLoginEvent.java │ │ │ │ ├── model │ │ │ │ │ ├── ILoginModel.java │ │ │ │ │ └── LoginModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── ILoginPresenter.java │ │ │ │ │ └── LoginPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── ILoginView.java │ │ │ │ │ ├── LoginActivity.java │ │ │ │ │ └── LoginFragment.java │ │ │ │ ├── main │ │ │ │ ├── model │ │ │ │ │ ├── IMainModel.java │ │ │ │ │ └── MainModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── IMainPresenter.java │ │ │ │ │ └── MainPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── IMainView.java │ │ │ │ │ └── MainActivity.java │ │ │ │ ├── message │ │ │ │ ├── MessageActivity.java │ │ │ │ └── MessageListFragment.java │ │ │ │ ├── rostrum │ │ │ │ ├── model │ │ │ │ │ ├── IRostrumModel.java │ │ │ │ │ └── RostrumModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── IRostrumPresenter.java │ │ │ │ │ └── RostrumPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── IRostrumView.java │ │ │ │ │ ├── RostrumDetailActivity.java │ │ │ │ │ └── RostrumListFragment.java │ │ │ │ ├── treat │ │ │ │ ├── model │ │ │ │ │ ├── ITreatModel.java │ │ │ │ │ └── TreatModel.java │ │ │ │ ├── presenter │ │ │ │ │ ├── ITreatPresenter.java │ │ │ │ │ └── TreatPresenter.java │ │ │ │ └── view │ │ │ │ │ ├── DepartmentDetailActivity.java │ │ │ │ │ ├── DoctorListFragment.java │ │ │ │ │ ├── ITreatView.java │ │ │ │ │ ├── TreatDetailActivity.java │ │ │ │ │ └── TreatFragment.java │ │ │ │ └── util │ │ │ │ ├── SharedPreferencesWrapper.java │ │ │ │ ├── TimeUtil.java │ │ │ │ └── UserInfoKeeper.java │ │ └── res │ │ │ ├── drawable-v21 │ │ │ ├── ic_menu_camera.xml │ │ │ ├── ic_menu_gallery.xml │ │ │ ├── ic_menu_manage.xml │ │ │ ├── ic_menu_send.xml │ │ │ ├── ic_menu_share.xml │ │ │ └── ic_menu_slideshow.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── hit.png │ │ │ ├── ic_account.png │ │ │ ├── ic_account_box.png │ │ │ ├── ic_arrow_back_white.png │ │ │ ├── ic_description.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_failure.png │ │ │ ├── ic_info.png │ │ │ ├── ic_message_white.png │ │ │ ├── ic_phone.png │ │ │ ├── ic_placeholder.png │ │ │ ├── ic_progress_bar.png │ │ │ ├── ic_retry.png │ │ │ ├── ic_send_grey.png │ │ │ ├── ic_settings.png │ │ │ ├── item_image_placeholder.png │ │ │ ├── linechart_bubble.png │ │ │ └── linechart_point.png │ │ │ ├── drawable │ │ │ ├── btn_doctor_operation.xml │ │ │ ├── bubble_blue.xml │ │ │ ├── bubble_gray.xml │ │ │ └── side_nav_bar.xml │ │ │ ├── layout │ │ │ ├── activity_department_detail.xml │ │ │ ├── activity_info.xml │ │ │ ├── activity_login.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_message.xml │ │ │ ├── activity_rostrum_detail.xml │ │ │ ├── activity_treat_detail.xml │ │ │ ├── fragment_clinic.xml │ │ │ ├── fragment_daily.xml │ │ │ ├── fragment_examination.xml │ │ │ ├── fragment_hospital.xml │ │ │ ├── fragment_login.xml │ │ │ ├── fragment_main.xml │ │ │ ├── fragment_profile.xml │ │ │ ├── fragment_recycler_list.xml │ │ │ ├── fragment_treat.xml │ │ │ ├── item_department.xml │ │ │ ├── item_doctor.xml │ │ │ ├── item_message.xml │ │ │ ├── item_rostrum.xml │ │ │ ├── item_search.xml │ │ │ └── nav_header_main.xml │ │ │ ├── menu │ │ │ ├── activity_main_drawer.xml │ │ │ ├── main2.xml │ │ │ └── menu_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── drawables.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── songyang │ │ └── healthmanager │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── 手机医疗服务数据库设计.docx ├── ImageHandleDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── dictionaries │ │ └── JunyiZhou.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── ImageHandleDemo.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── imagehandledemo │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── decals │ │ │ ├── decal_abdominalmuscles.png │ │ │ ├── decal_awesome.png │ │ │ ├── decal_batman.png │ │ │ ├── decal_baymaxandjianjian.png │ │ │ ├── decal_beaddicted.png │ │ │ ├── decal_beastmode.png │ │ │ ├── decal_beyourself.png │ │ │ ├── decal_broccoli.png │ │ │ ├── decal_captainamerica.png │ │ │ ├── decal_catwoman.png │ │ │ ├── decal_cute.png │ │ │ ├── decal_darkcuisine.png │ │ │ ├── decal_death.png │ │ │ ├── decal_dontwait.png │ │ │ ├── decal_eatingisabelief.png │ │ │ ├── decal_energycore.png │ │ │ ├── decal_energyring.png │ │ │ ├── decal_fallinlove.png │ │ │ ├── decal_fight.png │ │ │ ├── decal_ftmodu.png │ │ │ ├── decal_girlonfire.png │ │ │ ├── decal_healthyandnature.png │ │ │ ├── decal_hulk.png │ │ │ ├── decal_ironman.png │ │ │ ├── decal_itsfittime.png │ │ │ ├── decal_letsrock.png │ │ │ ├── decal_liftiron.png │ │ │ ├── decal_loki.png │ │ │ ├── decal_megabotfight.png │ │ │ ├── decal_megabotnormal.png │ │ │ ├── decal_menzerna.png │ │ │ ├── decal_moring.png │ │ │ ├── decal_noface.png │ │ │ ├── decal_onfire.png │ │ │ ├── decal_push.png │ │ │ ├── decal_run.png │ │ │ ├── decal_runtoendless.png │ │ │ ├── decal_shield.png │ │ │ ├── decal_shout.png │ │ │ ├── decal_soil.png │ │ │ ├── decal_stamp.png │ │ │ ├── decal_steak.png │ │ │ ├── decal_takemefly.png │ │ │ ├── decal_thorshammer.png │ │ │ ├── decal_tobebatman.png │ │ │ ├── decal_vavenger.png │ │ │ ├── decal_vsangel.png │ │ │ ├── decal_warmupgroup.png │ │ │ ├── decal_wolverine.png │ │ │ └── decal_youneedfatloss.png │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── imagehandledemo │ │ │ ├── ImageHandleDemoApplication.java │ │ │ ├── activity │ │ │ ├── MainActivity.java │ │ │ ├── MediaPickerActivity.java │ │ │ └── PageActivity.java │ │ │ └── view │ │ │ ├── BaseView.java │ │ │ ├── CropView.java │ │ │ ├── DecalView.java │ │ │ └── PageView.java │ │ └── res │ │ ├── drawable-xhdpi │ │ ├── clock_cexit.png │ │ ├── demo.jpg │ │ ├── demo1.jpg │ │ ├── ic_camera.png │ │ ├── ic_close.png │ │ ├── page1.jpg │ │ └── page2.jpg │ │ ├── drawable │ │ └── main_func_text_color.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_media_picker.xml │ │ ├── activity_page.xml │ │ └── item_dical.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── ImageLoaderDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ └── vcs.xml ├── ImageLoaderDemo.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── imageloaderdemo │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── imageloaderdemo │ │ │ └── MainActivity.java │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── RecyclerViewDemo ├── .gitignore ├── .idea │ ├── .name │ ├── compiler.xml │ ├── copyright │ │ └── profiles_settings.xml │ ├── dictionaries │ │ └── JunyiZhou.xml │ ├── encodings.xml │ ├── gradle.xml │ ├── misc.xml │ ├── modules.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── RecyclerViewDemo.iml ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── libs │ │ ├── robotium-solo-5.5.3-javadoc.jar │ │ └── robotium-solo-5.5.3.jar │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── recyclerviewdemo │ │ │ ├── ApplicationTest.java │ │ │ └── test │ │ │ ├── TestCaseI.java │ │ │ └── TestCaseII.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── recyclerviewdemo │ │ │ ├── activity │ │ │ └── MainActivity.java │ │ │ ├── decoration │ │ │ ├── DividerGridItemDecoration.java │ │ │ └── DividerItemDecoration.java │ │ │ ├── foundation │ │ │ ├── IOnItemClickListener.java │ │ │ ├── IOnItemLongClickListener.java │ │ │ └── RecyclerListFragment.java │ │ │ └── fragment │ │ │ ├── GridListDemoFragment.java │ │ │ ├── GridSpanSizeDIYListDemoFragment.java │ │ │ ├── LinearListDemoFragment.java │ │ │ ├── StaggeredGridHorizontalListDemoFragment.java │ │ │ ├── StaggeredGridVerticalFlowListDemoFragment.java │ │ │ └── StaggeredGridVerticalListDemoFragment.java │ │ └── res │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── fragment_recycler_list.xml │ │ ├── item_first.xml │ │ ├── item_grid.xml │ │ ├── item_linear.xml │ │ ├── item_second.xml │ │ └── item_third.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle └── RxJavaDemo ├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── dictionaries │ └── JunyiZhou.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── example │ │ └── junyizhou │ │ └── rxjavademo │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── junyizhou │ │ │ └── rxjavademo │ │ │ ├── RxJavaDemoApplication.java │ │ │ ├── TestView.java │ │ │ ├── activity │ │ │ ├── MainActivity.java │ │ │ └── TestActivity.java │ │ │ ├── api │ │ │ ├── ApiManager.java │ │ │ ├── ApiManagerService.java │ │ │ ├── BitmapManager.java │ │ │ └── factory │ │ │ │ ├── BitmapConverterFactory.java │ │ │ │ └── BitmapResponseBodyConverter.java │ │ │ ├── imageloader │ │ │ ├── CacheObservable.java │ │ │ ├── DiskCacheObservable.java │ │ │ ├── MemoryCache.java │ │ │ ├── MemoryCacheOvservable.java │ │ │ ├── NetCacheObservable.java │ │ │ ├── RxImageLoader.java │ │ │ └── Sources.java │ │ │ └── model │ │ │ ├── BitmapData.java │ │ │ ├── User.java │ │ │ └── WeatherData.java │ └── res │ │ ├── drawable-xhdpi │ │ ├── android.png │ │ ├── icon_weather_location.png │ │ └── icon_weather_wind_level.png │ │ ├── drawable │ │ ├── air_quality_great_weather_banner.xml │ │ └── circle_weather_banner.xml │ │ ├── layout-land │ │ └── content_main.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_test.xml │ │ ├── content_main.xml │ │ ├── content_test.xml │ │ └── content_weather.xml │ │ ├── menu │ │ └── menu_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── example │ └── junyizhou │ └── rxjavademo │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── 未命名绘图.drawio /AnimationDemo/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | AnimationDemo -------------------------------------------------------------------------------- /AnimationDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AnimationDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /AnimationDemo/AnimationDemo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /AnimationDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /AnimationDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | defaultConfig { 8 | applicationId "com.example.lucifer.animationdemo" 9 | minSdkVersion 15 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:22.2.1' 25 | } 26 | -------------------------------------------------------------------------------- /AnimationDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/androidTest/java/com/example/lucifer/animationdemo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.lucifer.animationdemo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/java/com/example/lucifer/animationdemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.lucifer.animationdemo; 2 | 3 | import android.animation.ObjectAnimator; 4 | import android.animation.ValueAnimator; 5 | import android.app.Activity; 6 | import android.support.v7.app.ActionBarActivity; 7 | import android.os.Bundle; 8 | import android.view.Menu; 9 | import android.view.MenuItem; 10 | import android.view.View; 11 | import android.widget.Button; 12 | import android.widget.FrameLayout; 13 | 14 | import com.example.lucifer.animationdemo.drawable.CirclePercentDrawable; 15 | import com.example.lucifer.animationdemo.drawable.WatchDrawable; 16 | import com.example.lucifer.animationdemo.view.LineView; 17 | 18 | 19 | public class MainActivity extends Activity { 20 | 21 | private Button button; 22 | private FrameLayout fl; 23 | 24 | @Override 25 | protected void onCreate(Bundle savedInstanceState) { 26 | super.onCreate(savedInstanceState); 27 | setContentView(R.layout.activity_main); 28 | 29 | LineView lineView = (LineView) findViewById(R.id.lineview); 30 | lineView.setCoordinate(10f, 10f, 200f, 200f); 31 | // button = (Button) findViewById(R.id.button); 32 | // button.setOnClickListener(this); 33 | // 34 | // fl = (FrameLayout) findViewById(R.id.fl); 35 | // fl.setBackground(new CirclePercentDrawable(this, 0.7f, "#f0f0f0", "#71d282", 10000)); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/mipmap-xhdpi/checkin_score_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/app/src/main/res/mipmap-xhdpi/checkin_score_bg.png -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 8dp 6 | 7 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | AnimationDemo 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /AnimationDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AnimationDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /AnimationDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /AnimationDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/AnimationDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /AnimationDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /AnimationDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /Constructure.suml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /FrescoDemo/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | FrescoDemo -------------------------------------------------------------------------------- /FrescoDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/dictionaries/JunyiZhou.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /FrescoDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FrescoDemo/FrescoDemo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /FrescoDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /FrescoDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | defaultConfig { 8 | applicationId "com.example.junyizhou.frescodemo" 9 | minSdkVersion 15 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:21.+' 25 | compile 'com.facebook.fresco:fresco:0.8.1+' 26 | } 27 | -------------------------------------------------------------------------------- /FrescoDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\andoridIDE\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/androidTest/java/com/example/junyizhou/frescodemo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.frescodemo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 24 | 25 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_failure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_failure.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_placeholder.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_progress_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_progress_bar.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xhdpi/icon_retry.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | FrescoDemo 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /FrescoDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /FrescoDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /FrescoDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /FrescoDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/FrescoDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /FrescoDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /FrescoDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /HealthManager/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /HealthManager/.idea/.name: -------------------------------------------------------------------------------- 1 | HealthManager -------------------------------------------------------------------------------- /HealthManager/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /HealthManager/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /HealthManager/.idea/dictionaries/JunyiZhou.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /HealthManager/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /HealthManager/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /HealthManager/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /HealthManager/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /HealthManager/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /HealthManager/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /HealthManager/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'com.neenbedankt.android-apt' 3 | 4 | android { 5 | compileSdkVersion 22 6 | buildToolsVersion "22.0.1" 7 | 8 | defaultConfig { 9 | applicationId "com.example.songyang.healthmanager" 10 | minSdkVersion 15 11 | targetSdkVersion 22 12 | versionCode 1 13 | versionName "1.0" 14 | } 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 19 | } 20 | } 21 | } 22 | 23 | dependencies { 24 | compile fileTree(dir: 'libs', include: ['*.jar']) 25 | testCompile 'junit:junit:4.12' 26 | apt 'com.pushtorefresh.storio:sqlite-annotations-processor:1.8.0' 27 | compile 'com.android.support:appcompat-v7:22.2.1' 28 | compile 'com.android.support:design:22.2.1' 29 | compile 'com.pushtorefresh.storio:sqlite:1.8.0' 30 | compile 'com.pushtorefresh.storio:sqlite-annotations:1.8.0' 31 | compile 'io.reactivex:rxandroid:1.1.0' 32 | compile 'io.reactivex:rxjava:1.1.0' 33 | compile 'com.google.code.gson:gson:2.4' 34 | compile 'org.greenrobot:eventbus:3.0.0' 35 | compile 'com.android.support:recyclerview-v7:22.2.1' 36 | compile 'com.android.support:cardview-v7:22.2.1' 37 | compile 'com.facebook.fresco:fresco:0.8.1' 38 | compile 'com.android.support:support-v4:22.2.1' 39 | compile 'com.github.doctoror.aspectratiolayout:library:1.0.3' 40 | } 41 | -------------------------------------------------------------------------------- /HealthManager/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\andoridIDE\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /HealthManager/app/src/androidTest/java/com/example/songyang/healthmanager/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/HealthManagerApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | 6 | import com.example.songyang.healthmanager.bean.UserBean; 7 | import com.example.songyang.healthmanager.db.DBManager; 8 | import com.facebook.drawee.backends.pipeline.Fresco; 9 | 10 | /** 11 | * Created by SongYang on 2016/4/12. 12 | */ 13 | public class HealthManagerApplication extends Application { 14 | private static Context mContext; 15 | 16 | public static Context getContext() { 17 | return mContext; 18 | } 19 | 20 | @Override 21 | public void onCreate() { 22 | super.onCreate(); 23 | mContext = getApplicationContext(); 24 | Fresco.initialize(this); 25 | initData(); 26 | } 27 | 28 | public void initData() { 29 | UserBean userBean = new UserBean(); 30 | userBean.setUserid(1); 31 | userBean.setUsername("admin"); 32 | userBean.setSex("m"); 33 | userBean.setAge(20); 34 | userBean.setPassword("123456"); 35 | userBean.setPhone("13800000000"); 36 | userBean.setIdcard("100000000000000000"); 37 | userBean.setNation("汉族"); 38 | DBManager.getInstance().putUser(userBean); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/bean/StepBean.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.bean; 2 | 3 | import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteColumn; 4 | import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteType; 5 | 6 | /** 7 | * Created by SongYang on 2016/4/14. 8 | */ 9 | @StorIOSQLiteType(table = "step") 10 | public class StepBean { 11 | @StorIOSQLiteColumn(name = "stepid", key = true) 12 | int stepid; 13 | 14 | @StorIOSQLiteColumn(name = "count") 15 | int count; 16 | 17 | @StorIOSQLiteColumn(name = "time") 18 | long time; 19 | 20 | public int getStepid() { 21 | return stepid; 22 | } 23 | 24 | public void setStepid(int stepid) { 25 | this.stepid = stepid; 26 | } 27 | 28 | public int getCount() { 29 | return count; 30 | } 31 | 32 | public void setCount(int count) { 33 | this.count = count; 34 | } 35 | 36 | public long getDate() { 37 | return time; 38 | } 39 | 40 | public void setDate(long date) { 41 | this.time = date; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/component/IOnItemClickListener.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.component; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by SongYang on 2016/1/4. 7 | */ 8 | public interface IOnItemClickListener { 9 | void onItemClick(View view, int position); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/component/IOnItemLongClickListener.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.component; 2 | 3 | import android.view.View; 4 | 5 | /** 6 | * Created by SongYang on 2016/1/4. 7 | */ 8 | public interface IOnItemLongClickListener { 9 | void onItemLongClick(View view, int position); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/daily/model/DailyModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.daily.model; 2 | 3 | import com.example.songyang.healthmanager.bean.StepBean; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by SongYang on 2016/4/13. 9 | */ 10 | public class DailyModel implements IDailyModel { 11 | private List steps; 12 | 13 | @Override 14 | public List getSteps() { 15 | return steps; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/daily/model/IDailyModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.daily.model; 2 | 3 | import com.example.songyang.healthmanager.bean.StepBean; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by SongYang on 2016/4/13. 9 | */ 10 | public interface IDailyModel { 11 | List getSteps(); 12 | } 13 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/daily/presenter/DailyPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.daily.presenter; 2 | 3 | import com.example.songyang.healthmanager.bean.StepBean; 4 | import com.example.songyang.healthmanager.daily.model.DailyModel; 5 | import com.example.songyang.healthmanager.daily.model.IDailyModel; 6 | import com.example.songyang.healthmanager.daily.view.IDailyView; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * Created by SongYang on 2016/4/13. 12 | */ 13 | public class DailyPresenter implements IDailyPresenter { 14 | private IDailyModel mDailyModel; 15 | private IDailyView mDailyView; 16 | 17 | public DailyPresenter(IDailyView view) { 18 | mDailyView = view; 19 | mDailyModel = new DailyModel(); 20 | } 21 | 22 | @Override 23 | public void loadLineDiagramData() { 24 | List steps = mDailyModel.getSteps(); 25 | int[] yParams = {4000, 6000, 8000, 10000}; 26 | float[] values = {4500, 6900, 9000}; 27 | String[] xParams = {"2016-4-12", "2016-4-13", "2016-4-14"}; 28 | 29 | mDailyView.setLineDiagramData(yParams, values, xParams, "步"); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/daily/presenter/IDailyPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.daily.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface IDailyPresenter { 7 | void loadLineDiagramData(); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/daily/view/IDailyView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.daily.view; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/14. 5 | */ 6 | public interface IDailyView { 7 | void setLineDiagramData(int[] yParams, float[] values, String[] xParams, String unite); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/db/HealthSQLiteOpenHelper.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.db; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteOpenHelper; 6 | 7 | /** 8 | * Created by SongYang on 2016/4/11. 9 | */ 10 | public class HealthSQLiteOpenHelper extends SQLiteOpenHelper { 11 | public HealthSQLiteOpenHelper(Context context, String name, int version) { 12 | super(context, name, null, version, null); 13 | } 14 | 15 | @Override 16 | public void onCreate(SQLiteDatabase db) { 17 | db.execSQL(SQLS.CREATE_USER_TABLE); 18 | db.execSQL(SQLS.CREATE_CLINIC_TABLE); 19 | db.execSQL(SQLS.CREATE_HOSPITAL_TABLE); 20 | db.execSQL(SQLS.CREATE_EXAMINATION_TABLE); 21 | } 22 | 23 | @Override 24 | public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 25 | 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/model/IUserModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.model; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/13. 7 | */ 8 | public interface IUserModel { 9 | UserBean get(int id); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/model/UserModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.model; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | import com.example.songyang.healthmanager.db.DBManager; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Created by SongYang on 2016/4/13. 10 | */ 11 | public class UserModel implements IUserModel { 12 | private List users; 13 | 14 | public UserModel() { 15 | users = DBManager.getInstance().getUsers(); 16 | } 17 | 18 | @Override 19 | public UserBean get(int id) { 20 | if (users != null) { 21 | for (UserBean user : users) { 22 | if (user.getUserid() == id) { 23 | return user; 24 | } 25 | } 26 | } 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/presenter/IInfoPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface IInfoPresenter { 7 | void loadInfo(int userId, String infoType); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/view/ClinicFragment.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.view; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | import com.example.songyang.healthmanager.bean.ClinicBean; 11 | import com.example.songyang.healthmanager.bean.UserBean; 12 | 13 | public class ClinicFragment extends Fragment { 14 | private static final String CLINIC_DATA = "CLINIC_DATA"; 15 | 16 | public ClinicFragment() { 17 | } 18 | 19 | public static ClinicFragment newInstance(ClinicBean clinic) { 20 | ClinicFragment fragment = new ClinicFragment(); 21 | Bundle args = new Bundle(); 22 | args.putParcelable(CLINIC_DATA, clinic); 23 | fragment.setArguments(args); 24 | return fragment; 25 | } 26 | 27 | private ClinicBean clinic; 28 | 29 | @Override 30 | public void onCreate(Bundle savedInstanceState) { 31 | super.onCreate(savedInstanceState); 32 | if (getArguments() != null) { 33 | clinic = getArguments().getParcelable(CLINIC_DATA); 34 | } 35 | } 36 | 37 | @Override 38 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 39 | return inflater.inflate(R.layout.fragment_clinic, container, false); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/view/HospitalFragment.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.view; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | import com.example.songyang.healthmanager.bean.HospitalBean; 11 | import com.example.songyang.healthmanager.bean.UserBean; 12 | 13 | public class HospitalFragment extends Fragment { 14 | private static final String HOSPITAL_DATA = "HOSPITAL_DATA"; 15 | 16 | public HospitalFragment() { 17 | } 18 | 19 | public static HospitalFragment newInstance(HospitalBean hospital) { 20 | HospitalFragment fragment = new HospitalFragment(); 21 | Bundle args = new Bundle(); 22 | args.putParcelable(HOSPITAL_DATA, hospital); 23 | fragment.setArguments(args); 24 | return fragment; 25 | } 26 | 27 | private HospitalBean hospital; 28 | 29 | @Override 30 | public void onCreate(Bundle savedInstanceState) { 31 | super.onCreate(savedInstanceState); 32 | if (getArguments() != null) { 33 | hospital = getArguments().getParcelable(HOSPITAL_DATA); 34 | } 35 | } 36 | 37 | @Override 38 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 39 | return inflater.inflate(R.layout.fragment_hospital, container, false); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/view/IInfoView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.view; 2 | 3 | import android.support.v4.app.Fragment; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/21. 7 | */ 8 | public interface IInfoView { 9 | void setFragment(Fragment fragment, String title); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/info/view/ProfileFragment.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.info.view; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | import com.example.songyang.healthmanager.bean.UserBean; 11 | 12 | public class ProfileFragment extends Fragment { 13 | private static final String PROFILE_DATA = "PROFILE_DATA"; 14 | 15 | public ProfileFragment() { 16 | } 17 | 18 | public static ProfileFragment newInstance(UserBean proflie) { 19 | ProfileFragment fragment = new ProfileFragment(); 20 | Bundle args = new Bundle(); 21 | args.putParcelable(PROFILE_DATA, proflie); 22 | fragment.setArguments(args); 23 | return fragment; 24 | } 25 | 26 | private UserBean proflie; 27 | 28 | @Override 29 | public void onCreate(Bundle savedInstanceState) { 30 | super.onCreate(savedInstanceState); 31 | if (getArguments() != null) { 32 | proflie = getArguments().getParcelable(PROFILE_DATA); 33 | } 34 | } 35 | 36 | @Override 37 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 38 | return inflater.inflate(R.layout.fragment_profile, container, false); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/event/UserLoginEvent.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.event; 2 | 3 | /** 4 | * Created by SongYang on 2016/6/11. 5 | */ 6 | public class UserLoginEvent { 7 | public final boolean isLogin; 8 | 9 | public UserLoginEvent(boolean isLogin) { 10 | this.isLogin = isLogin; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/model/ILoginModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.model; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface ILoginModel { 7 | boolean checkUserAuthority(String userName, String password); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/model/LoginModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.model; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | import com.example.songyang.healthmanager.db.DBManager; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Created by SongYang on 2016/4/13. 10 | */ 11 | public class LoginModel implements ILoginModel { 12 | private List users; 13 | 14 | public LoginModel() { 15 | users = DBManager.getInstance().getUsers(); 16 | } 17 | 18 | @Override 19 | public boolean checkUserAuthority(String userName, String password) { 20 | for (UserBean user : users) { 21 | if (user.getUsername().equals(userName) && user.getPassword().equals(password)) { 22 | return true; 23 | } 24 | } 25 | return false; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/presenter/ILoginPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface ILoginPresenter { 7 | void login(String userName, String password); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/presenter/LoginPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.presenter; 2 | 3 | import com.example.songyang.healthmanager.login.model.ILoginModel; 4 | import com.example.songyang.healthmanager.login.model.LoginModel; 5 | import com.example.songyang.healthmanager.login.view.ILoginView; 6 | 7 | /** 8 | * Created by SongYang on 2016/4/13. 9 | */ 10 | public class LoginPresenter implements ILoginPresenter { 11 | 12 | private ILoginModel mLoginModel; 13 | private ILoginView mLoginView; 14 | 15 | public LoginPresenter(ILoginView view) { 16 | mLoginView = view; 17 | mLoginModel = new LoginModel(); 18 | } 19 | 20 | @Override 21 | public void login(String userName, String password) { 22 | boolean result = mLoginModel.checkUserAuthority(userName, password); 23 | mLoginView.showLoginResult(result); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/login/view/ILoginView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.login.view; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/21. 5 | */ 6 | public interface ILoginView { 7 | void showLoginResult(boolean result); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/main/model/IMainModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.main.model; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/13. 7 | */ 8 | public interface IMainModel { 9 | UserBean get(int id); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/main/model/MainModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.main.model; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | import com.example.songyang.healthmanager.db.DBManager; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Created by SongYang on 2016/4/13. 10 | */ 11 | public class MainModel implements IMainModel { 12 | private List users; 13 | 14 | public MainModel() { 15 | users = DBManager.getInstance().getUsers(); 16 | } 17 | 18 | @Override 19 | public UserBean get(int id) { 20 | if (users != null) { 21 | for (UserBean user : users) { 22 | if (user.getUserid() == id) { 23 | return user; 24 | } 25 | } 26 | } 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/main/presenter/IMainPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.main.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface IMainPresenter { 7 | void loadUser(int id); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/main/presenter/MainPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.main.presenter; 2 | 3 | import com.example.songyang.healthmanager.bean.UserBean; 4 | import com.example.songyang.healthmanager.main.model.IMainModel; 5 | import com.example.songyang.healthmanager.main.model.MainModel; 6 | import com.example.songyang.healthmanager.main.view.IMainView; 7 | 8 | /** 9 | * Created by SongYang on 2016/4/13. 10 | */ 11 | public class MainPresenter implements IMainPresenter{ 12 | private IMainModel mUserModel; 13 | private IMainView mMainView; 14 | 15 | public MainPresenter(IMainView view) { 16 | mMainView = view; 17 | mUserModel = new MainModel(); 18 | } 19 | 20 | @Override 21 | public void loadUser(int id) { 22 | UserBean user = mUserModel.get(id); 23 | mMainView.setUserName(user.getUsername()); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/main/view/IMainView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.main.view; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface IMainView { 7 | void setUserName(String name); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/message/MessageActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.message; 2 | 3 | import android.os.Bundle; 4 | import android.app.Activity; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.support.v7.widget.Toolbar; 7 | import android.view.View; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | 11 | /** 12 | * Created by SongYang on 2016/4/13. 13 | */ 14 | public class MessageActivity extends AppCompatActivity { 15 | 16 | private Toolbar toolbar; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_message); 22 | initToorbar("消息"); 23 | getSupportFragmentManager().beginTransaction().replace(R.id.container, new MessageListFragment()).commit(); 24 | } 25 | 26 | public void initToorbar(String title) { 27 | toolbar = (Toolbar) findViewById(R.id.toolbar); 28 | toolbar.setTitle(title); 29 | setSupportActionBar(toolbar); 30 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white); 31 | toolbar.setNavigationOnClickListener(new View.OnClickListener() { 32 | @Override 33 | public void onClick(View v) { 34 | finish(); 35 | } 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/rostrum/model/IRostrumModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.rostrum.model; 2 | 3 | import com.example.songyang.healthmanager.bean.StepBean; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * Created by SongYang on 2016/4/13. 9 | */ 10 | public interface IRostrumModel { 11 | List getRostrumData(); 12 | } 13 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/rostrum/model/RostrumModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.rostrum.model; 2 | 3 | import com.example.songyang.healthmanager.bean.StepBean; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | /** 9 | * Created by SongYang on 2016/4/13. 10 | */ 11 | public class RostrumModel implements IRostrumModel { 12 | @Override 13 | public List getRostrumData() { 14 | List rostrumData = new ArrayList<>(); 15 | for (int i = 0; i < 5; i++) { 16 | rostrumData.add(String.valueOf(i)); 17 | } 18 | return rostrumData; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/rostrum/presenter/IRostrumPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.rostrum.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface IRostrumPresenter { 7 | void load(); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/rostrum/presenter/RostrumPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.rostrum.presenter; 2 | 3 | import com.example.songyang.healthmanager.rostrum.model.IRostrumModel; 4 | import com.example.songyang.healthmanager.rostrum.model.RostrumModel; 5 | import com.example.songyang.healthmanager.rostrum.view.IRostrumView; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by SongYang on 2016/4/13. 11 | */ 12 | public class RostrumPresenter implements IRostrumPresenter { 13 | private IRostrumModel mRostrumModel; 14 | private IRostrumView mRostrumView; 15 | 16 | public RostrumPresenter(IRostrumView view) { 17 | mRostrumView = view; 18 | mRostrumModel = new RostrumModel(); 19 | } 20 | 21 | @Override 22 | public void load() { 23 | List rostrumData = mRostrumModel.getRostrumData(); 24 | mRostrumView.setRostrumData(rostrumData); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/rostrum/view/IRostrumView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.rostrum.view; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/14. 7 | */ 8 | public interface IRostrumView { 9 | void setRostrumData(List rostrumData); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/model/ITreatModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.model; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/13. 7 | */ 8 | public interface ITreatModel { 9 | List getDepartmentData(); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/model/TreatModel.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.model; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | /** 7 | * Created by SongYang on 2016/4/13. 8 | */ 9 | public class TreatModel implements ITreatModel { 10 | 11 | @Override 12 | public List getDepartmentData() { 13 | List departmentData = new ArrayList<>(); 14 | departmentData.add(""); 15 | departmentData.add("儿科"); 16 | departmentData.add("皮肤科"); 17 | departmentData.add("内科"); 18 | departmentData.add("中医科"); 19 | departmentData.add("眼科"); 20 | departmentData.add("口腔科"); 21 | departmentData.add("骨伤科"); 22 | departmentData.add("耳鼻喉科"); 23 | departmentData.add("妇科"); 24 | return departmentData; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/presenter/ITreatPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.presenter; 2 | 3 | /** 4 | * Created by SongYang on 2016/4/13. 5 | */ 6 | public interface ITreatPresenter { 7 | void load(); 8 | } 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/presenter/TreatPresenter.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.presenter; 2 | 3 | import com.example.songyang.healthmanager.treat.model.TreatModel; 4 | import com.example.songyang.healthmanager.treat.model.ITreatModel; 5 | import com.example.songyang.healthmanager.treat.view.ITreatView; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * Created by SongYang on 2016/4/13. 11 | */ 12 | public class TreatPresenter implements ITreatPresenter { 13 | private ITreatModel mTreatModel; 14 | private ITreatView mTreatView; 15 | 16 | public TreatPresenter(ITreatView view) { 17 | mTreatView = view; 18 | mTreatModel = new TreatModel(); 19 | } 20 | 21 | @Override 22 | public void load() { 23 | List departments = mTreatModel.getDepartmentData(); 24 | mTreatView.setDepartmentData(departments); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/view/DepartmentDetailActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.view; 2 | 3 | import android.os.Bundle; 4 | import android.app.Activity; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.support.v7.widget.Toolbar; 7 | import android.view.View; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | import com.example.songyang.healthmanager.message.MessageListFragment; 11 | 12 | /** 13 | * Created by SongYang on 2016/4/13. 14 | */ 15 | public class DepartmentDetailActivity extends AppCompatActivity { 16 | 17 | private Toolbar toolbar; 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | setContentView(R.layout.activity_department_detail); 23 | 24 | initToorbar(getIntent().getStringExtra("DEPARTMENT_NAME")); 25 | getSupportFragmentManager().beginTransaction().replace(R.id.container, new DoctorListFragment()).commit(); 26 | } 27 | 28 | public void initToorbar(String title) { 29 | toolbar = (Toolbar) findViewById(R.id.toolbar); 30 | toolbar.setTitle(title); 31 | setSupportActionBar(toolbar); 32 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white); 33 | toolbar.setNavigationOnClickListener(new View.OnClickListener() { 34 | @Override 35 | public void onClick(View v) { 36 | finish(); 37 | } 38 | }); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/view/ITreatView.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.view; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Created by SongYang on 2016/4/14. 7 | */ 8 | public interface ITreatView { 9 | void setDepartmentData(List departments); 10 | } 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/java/com/example/songyang/healthmanager/treat/view/TreatDetailActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.songyang.healthmanager.treat.view; 2 | 3 | import android.os.Bundle; 4 | import android.app.Activity; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.support.v7.widget.Toolbar; 7 | import android.view.View; 8 | 9 | import com.example.songyang.healthmanager.R; 10 | 11 | /** 12 | * Created by SongYang on 2016/4/13. 13 | */ 14 | public class TreatDetailActivity extends AppCompatActivity { 15 | 16 | private Toolbar toolbar; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_treat_detail); 22 | 23 | initToorbar(getIntent().getStringExtra("CHAT_NAME")); 24 | } 25 | 26 | public void initToorbar(String title) { 27 | toolbar = (Toolbar) findViewById(R.id.toolbar); 28 | toolbar.setTitle(title); 29 | setSupportActionBar(toolbar); 30 | toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white); 31 | toolbar.setNavigationOnClickListener(new View.OnClickListener() { 32 | @Override 33 | public void onClick(View v) { 34 | finish(); 35 | } 36 | }); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-v21/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/hit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/hit.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_account.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_account_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_account_box.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_arrow_back_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_arrow_back_white.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_description.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_description.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_edit.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_failure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_failure.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_info.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_message_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_message_white.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_phone.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_placeholder.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_progress_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_progress_bar.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_retry.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_send_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_send_grey.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/ic_settings.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/item_image_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/item_image_placeholder.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/linechart_bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/linechart_bubble.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable-xhdpi/linechart_point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/drawable-xhdpi/linechart_point.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable/btn_doctor_operation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable/bubble_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable/bubble_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/layout/fragment_main.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/layout/fragment_recycler_list.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/layout/item_department.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 25 | 26 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/layout/item_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 15 | 16 | 22 | 23 | 29 | 30 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/layout/item_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/menu/activity_main_drawer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 26 | 30 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/menu/main2.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/HealthManager/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00AAff 4 | #0099FF 5 | #FF6633 6 | 7 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 8dp 7 | 8 | 16dp 9 | 160dp 10 | 11 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- 1 | 2 | @android:drawable/ic_menu_camera 3 | @android:drawable/ic_menu_gallery 4 | @android:drawable/ic_menu_slideshow 5 | @android:drawable/ic_menu_manage 6 | @android:drawable/ic_menu_share 7 | @android:drawable/ic_menu_send 8 | 9 | -------------------------------------------------------------------------------- /HealthManager/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 17 | 18 | 7 | 8 | -------------------------------------------------------------------------------- /ImageHandleDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ImageHandleDemo/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00000000 4 | #ffffffff 5 | #ff999999 6 | #ff666666 7 | #ff333333 8 | #ff000000 9 | -------------------------------------------------------------------------------- /ImageHandleDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ImageHandleDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 15 | 19 | 20 | -------------------------------------------------------------------------------- /ImageHandleDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ImageHandleDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ImageHandleDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageHandleDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ImageHandleDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /ImageHandleDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | ImageLoaderDemo -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ImageLoaderDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ImageLoaderDemo/ImageLoaderDemo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | defaultConfig { 8 | applicationId "com.example.junyizhou.imageloaderdemo" 9 | minSdkVersion 14 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:22.+' 25 | } 26 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\andoridIDE\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/androidTest/java/com/example/junyizhou/imageloaderdemo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.imageloaderdemo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/java/com/example/junyizhou/imageloaderdemo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.imageloaderdemo; 2 | 3 | import android.support.v7.app.ActionBarActivity; 4 | import android.os.Bundle; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.Menu; 7 | import android.view.MenuItem; 8 | 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_main); 16 | } 17 | 18 | @Override 19 | public boolean onCreateOptionsMenu(Menu menu) { 20 | // Inflate the menu; this adds items to the action bar if it is present. 21 | getMenuInflater().inflate(R.menu.menu_main, menu); 22 | return true; 23 | } 24 | 25 | @Override 26 | public boolean onOptionsItemSelected(MenuItem item) { 27 | // Handle action bar item clicks here. The action bar will 28 | // automatically handle clicks on the Home/Up button, so long 29 | // as you specify a parent activity in AndroidManifest.xml. 30 | int id = item.getItemId(); 31 | 32 | //noinspection SimplifiableIfStatement 33 | if (id == R.id.action_settings) { 34 | return true; 35 | } 36 | 37 | return super.onOptionsItemSelected(item); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageLoaderDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageLoaderDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageLoaderDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageLoaderDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ImageLoaderDemo 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /ImageLoaderDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ImageLoaderDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ImageLoaderDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ImageLoaderDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/ImageLoaderDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ImageLoaderDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /ImageLoaderDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | RecyclerViewDemo -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/dictionaries/JunyiZhou.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /RecyclerViewDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /RecyclerViewDemo/RecyclerViewDemo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 21 5 | buildToolsVersion "21.0.2" 6 | 7 | defaultConfig { 8 | applicationId "com.example.junyizhou.recyclerviewdemo" 9 | minSdkVersion 15 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.android.support:appcompat-v7:21.+' 25 | compile 'com.android.support:recyclerview-v7:21.+' 26 | compile 'com.android.support:cardview-v7:21.+' 27 | compile 'com.github.doctoror.aspectratiolayout:library:1.0.3' 28 | compile files('libs/robotium-solo-5.5.3.jar') 29 | compile files('libs/robotium-solo-5.5.3-javadoc.jar') 30 | androidTestCompile fileTree(dir: 'libs', include: ['robotium-solo-5.5.3.jar']) 31 | testCompile 'junit:junit:4.12' 32 | } -------------------------------------------------------------------------------- /RecyclerViewDemo/app/libs/robotium-solo-5.5.3-javadoc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/libs/robotium-solo-5.5.3-javadoc.jar -------------------------------------------------------------------------------- /RecyclerViewDemo/app/libs/robotium-solo-5.5.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/libs/robotium-solo-5.5.3.jar -------------------------------------------------------------------------------- /RecyclerViewDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\andoridIDE\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/androidTest/java/com/example/junyizhou/recyclerviewdemo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.recyclerviewdemo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/decoration/DividerItemDecoration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/decoration/DividerItemDecoration.java -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/foundation/IOnItemClickListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/foundation/IOnItemClickListener.java -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/foundation/IOnItemLongClickListener.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/java/com/example/junyizhou/recyclerviewdemo/foundation/IOnItemLongClickListener.java -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/fragment_recycler_list.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/item_first.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/item_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/item_linear.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/item_second.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/layout/item_third.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | RecyclerViewDemo 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /RecyclerViewDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RecyclerViewDemo/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.2.3' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /RecyclerViewDemo/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /RecyclerViewDemo/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RecyclerViewDemo/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /RecyclerViewDemo/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /RecyclerViewDemo/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /RxJavaDemo/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/.name: -------------------------------------------------------------------------------- 1 | RxJavaDemo -------------------------------------------------------------------------------- /RxJavaDemo/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/dictionaries/JunyiZhou.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /RxJavaDemo/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /RxJavaDemo/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /RxJavaDemo/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'com.android.databinding' 3 | 4 | android { 5 | compileSdkVersion 22 6 | buildToolsVersion "22.0.1" 7 | 8 | defaultConfig { 9 | applicationId "com.example.junyizhou.rxjavademo" 10 | minSdkVersion 15 11 | targetSdkVersion 22 12 | versionCode 1 13 | versionName "1.0" 14 | } 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 19 | } 20 | } 21 | } 22 | 23 | dependencies { 24 | compile fileTree(dir: 'libs', include: ['*.jar']) 25 | testCompile 'junit:junit:4.12' 26 | compile 'com.android.support:appcompat-v7:22.2.1' 27 | compile 'com.android.support:design:22.2.1' 28 | compile 'io.reactivex:rxandroid:1.1.0' 29 | compile 'io.reactivex:rxjava:1.1.0' 30 | compile 'com.google.code.gson:gson:2.3' 31 | compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' 32 | compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 33 | compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2' 34 | compile 'com.squareup.okhttp:okhttp:2.4.0' 35 | compile 'com.github.bumptech.glide:glide:3.5.2' 36 | compile 'com.android.support:support-v4:22.0.0' 37 | } 38 | -------------------------------------------------------------------------------- /RxJavaDemo/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\andoridIDE\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/androidTest/java/com/example/junyizhou/rxjavademo/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 15 | 16 | 20 | 21 | 22 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/RxJavaDemoApplication.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo; 2 | 3 | import android.app.Application; 4 | 5 | import com.example.junyizhou.rxjavademo.imageloader.RxImageLoader; 6 | 7 | /** 8 | * Created by JunyiZhou on 2016/3/7. 9 | */ 10 | public class RxJavaDemoApplication extends Application { 11 | @Override 12 | public void onCreate() { 13 | super.onCreate(); 14 | RxImageLoader.init(this); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/api/ApiManager.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.api; 2 | 3 | import retrofit.GsonConverterFactory; 4 | import retrofit.Retrofit; 5 | import retrofit.RxJavaCallAdapterFactory; 6 | 7 | /** 8 | * Created by JunyiZhou on 2016/3/2. 9 | */ 10 | public class ApiManager { 11 | private static final String BASE_URL = "http://192.168.51.43:8080/TomcatTest/"; 12 | private static final Retrofit retrofit = new Retrofit 13 | .Builder() 14 | .baseUrl(BASE_URL) 15 | .addConverterFactory(GsonConverterFactory.create()) 16 | .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 17 | .build(); 18 | public static final ApiManagerService apiManager = retrofit.create(ApiManagerService.class); 19 | 20 | public static ApiManagerService getInstance() { 21 | return apiManager; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/api/ApiManagerService.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.api; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | import com.example.junyizhou.rxjavademo.model.User; 6 | import com.example.junyizhou.rxjavademo.model.WeatherData; 7 | 8 | import retrofit.Call; 9 | import retrofit.Response; 10 | import retrofit.http.GET; 11 | import retrofit.http.Path; 12 | import retrofit.http.Query; 13 | import retrofit.http.Url; 14 | import rx.Observable; 15 | 16 | /** 17 | * Created by JunyiZhou on 2016/3/2. 18 | */ 19 | public interface ApiManagerService { 20 | @GET("api/s/getWeatherInfo") 21 | Observable getWeather(@Query("city") String city); 22 | 23 | @GET("ad/{id}.png") 24 | Observable getBitmap(@Path("id") int id); 25 | 26 | @GET 27 | Observable getBitmap(@Url String imageUrl); 28 | 29 | @GET("api/getUser") 30 | Observable getUser(); 31 | } 32 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/api/BitmapManager.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.api; 2 | 3 | import com.example.junyizhou.rxjavademo.api.factory.BitmapConverterFactory; 4 | 5 | import retrofit.GsonConverterFactory; 6 | import retrofit.Retrofit; 7 | import retrofit.RxJavaCallAdapterFactory; 8 | 9 | /** 10 | * Created by JunyiZhou on 2016/3/3. 11 | */ 12 | public class BitmapManager { 13 | private static final Retrofit retrofit = new Retrofit 14 | .Builder() 15 | .baseUrl("http://img01.cheyipai.com/") 16 | .addConverterFactory(BitmapConverterFactory.create()) 17 | .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 18 | .build(); 19 | public static final ApiManagerService apiManager = retrofit.create(ApiManagerService.class); 20 | 21 | public static ApiManagerService getInstance() { 22 | return apiManager; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/api/factory/BitmapConverterFactory.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.api.factory; 2 | 3 | import com.squareup.okhttp.RequestBody; 4 | import com.squareup.okhttp.ResponseBody; 5 | 6 | import java.lang.annotation.Annotation; 7 | import java.lang.reflect.Type; 8 | 9 | import retrofit.Converter; 10 | 11 | /** 12 | * Created by JunyiZhou on 2016/3/3. 13 | */ 14 | public class BitmapConverterFactory extends Converter.Factory { 15 | public static BitmapConverterFactory create() { 16 | return new BitmapConverterFactory(); 17 | } 18 | 19 | @Override 20 | public Converter fromResponseBody(Type type, Annotation[] annotations) { 21 | return new BitmapResponseBodyConverter(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/api/factory/BitmapResponseBodyConverter.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.api.factory; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.BitmapFactory; 5 | 6 | import com.squareup.okhttp.RequestBody; 7 | import com.squareup.okhttp.ResponseBody; 8 | 9 | import java.io.IOException; 10 | import java.lang.annotation.Annotation; 11 | import java.lang.reflect.Type; 12 | 13 | import retrofit.Converter; 14 | 15 | /** 16 | * Created by JunyiZhou on 2016/3/3. 17 | */ 18 | public class BitmapResponseBodyConverter implements Converter { 19 | 20 | @Override 21 | public Bitmap convert(ResponseBody value) throws IOException { 22 | return BitmapFactory.decodeStream(value.byteStream()); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/imageloader/CacheObservable.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.imageloader; 2 | 3 | import com.example.junyizhou.rxjavademo.model.BitmapData; 4 | 5 | import rx.Observable; 6 | 7 | /** 8 | * Created by JunyiZhou on 2016/3/7. 9 | */ 10 | public interface CacheObservable { 11 | Observable getObservable(String url); 12 | } 13 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/imageloader/MemoryCache.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.imageloader; 2 | 3 | import android.graphics.Bitmap; 4 | import android.util.LruCache; 5 | 6 | /** 7 | * Created by JunyiZhou on 2016/3/7. 8 | */ 9 | public class MemoryCache extends LruCache{ 10 | public MemoryCache(int maxSize) { 11 | super(maxSize); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/imageloader/MemoryCacheOvservable.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.imageloader; 2 | 3 | import com.example.junyizhou.rxjavademo.model.BitmapData; 4 | 5 | import rx.Observable; 6 | import rx.Subscriber; 7 | import rx.android.schedulers.AndroidSchedulers; 8 | import rx.schedulers.Schedulers; 9 | 10 | /** 11 | * Created by JunyiZhou on 2016/3/7. 12 | */ 13 | public class MemoryCacheOvservable implements CacheObservable { 14 | public static final int DEFAULT_CACHE_SIZE = (24 /* MiB */ * 1024 * 1024); 15 | MemoryCache mCache = new MemoryCache<>(DEFAULT_CACHE_SIZE); 16 | 17 | @Override 18 | public Observable getObservable(final String url) { 19 | return Observable.create(new Observable.OnSubscribe() { 20 | @Override 21 | public void call(Subscriber subscriber) { 22 | if (!subscriber.isUnsubscribed()) { 23 | subscriber.onNext(new BitmapData(mCache.get(url), url)); 24 | subscriber.onCompleted(); 25 | } 26 | } 27 | }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); 28 | } 29 | 30 | public void putData(BitmapData data) { 31 | mCache.put(data.url, data.bitmap); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/model/BitmapData.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.model; 2 | 3 | import android.graphics.Bitmap; 4 | import android.graphics.BitmapFactory; 5 | 6 | import java.io.File; 7 | import java.io.FileInputStream; 8 | import java.io.FileNotFoundException; 9 | 10 | /** 11 | * Created by JunyiZhou on 2016/3/7. 12 | */ 13 | public class BitmapData { 14 | public Bitmap bitmap; 15 | public String url; 16 | private boolean isAvailable; 17 | 18 | public BitmapData(Bitmap bitmap, String url) { 19 | this.bitmap = bitmap; 20 | this.url = url; 21 | } 22 | 23 | public BitmapData(File f, String url) { 24 | if (f != null && f.exists()) { 25 | this.url = url; 26 | try { 27 | bitmap = BitmapFactory.decodeStream(new FileInputStream(f)); 28 | } catch (FileNotFoundException e) { 29 | e.printStackTrace(); 30 | } 31 | } 32 | } 33 | 34 | public boolean isAvailable() { 35 | isAvailable = url != null && bitmap != null; 36 | return isAvailable; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/java/com/example/junyizhou/rxjavademo/model/User.java: -------------------------------------------------------------------------------- 1 | package com.example.junyizhou.rxjavademo.model; 2 | 3 | public class User { 4 | private String name; 5 | private int age; 6 | 7 | public String getName() { 8 | return name; 9 | } 10 | 11 | public void setName(String name) { 12 | this.name = name; 13 | } 14 | 15 | public int getAge() { 16 | return age; 17 | } 18 | 19 | public void setAge(int age) { 20 | this.age = age; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/drawable-xhdpi/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/drawable-xhdpi/android.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/drawable-xhdpi/icon_weather_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/drawable-xhdpi/icon_weather_location.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/drawable-xhdpi/icon_weather_wind_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/drawable-xhdpi/icon_weather_wind_level.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/drawable/air_quality_great_weather_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/drawable/circle_weather_banner.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/layout-land/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/layout/content_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | 21 | 22 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JunyiZhou/AndroidExercises/aed0fdc6855326d471e9d235538381e219db0b0b/RxJavaDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | > 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | RxJavaDemo 3 | Settings 4 | 5 | 6 | %1$s°/%2$s° 7 | %1$s级 8 | 9 | 10 | 轻度 11 | 中度 12 | 重度 13 | TestActivity 14 | 15 | -------------------------------------------------------------------------------- /RxJavaDemo/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |